Skip to content

Commit

Permalink
address pr review comments
Browse files Browse the repository at this point in the history
Signed-off-by: mehab <[email protected]>
  • Loading branch information
mehab committed Oct 20, 2023
1 parent 1f6c805 commit dec7141
Show file tree
Hide file tree
Showing 6 changed files with 35 additions and 50 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@
import org.dependencytrack.model.RepositoryMetaComponent;
import org.dependencytrack.model.RepositoryType;
import org.dependencytrack.resources.v1.vo.DependencyGraphResponse;
import org.dependencytrack.util.ComponentMetaInformationUtil;

import javax.jdo.PersistenceManager;
import javax.jdo.Query;
Expand Down Expand Up @@ -201,7 +200,7 @@ public PaginatedResult getComponents(final Project project, final boolean includ
if (RepositoryType.UNSUPPORTED != type) {
final RepositoryMetaComponent repoMetaComponent = getRepositoryMetaComponent(type, purl.getNamespace(), purl.getName());
component.setRepositoryMeta(repoMetaComponent);
component.setComponentMetaInformation(ComponentMetaInformationUtil.getMetaInformation(purl, component.getUuid()));
component.setComponentMetaInformation(QueryManager.getMetaInformation(purl, component.getUuid()));
}
}
}
Expand Down Expand Up @@ -333,7 +332,7 @@ public PaginatedResult getComponents(ComponentIdentity identity, Project project
if (RepositoryType.UNSUPPORTED != type) {
final RepositoryMetaComponent repoMetaComponent = getRepositoryMetaComponent(type, purl.getNamespace(), purl.getName());
component.setRepositoryMeta(repoMetaComponent);
component.setComponentMetaInformation(ComponentMetaInformationUtil.getMetaInformation(purl, component.getUuid()));
component.setComponentMetaInformation(QueryManager.getMetaInformation(purl, component.getUuid()));
}
}
}
Expand Down
21 changes: 21 additions & 0 deletions src/main/java/org/dependencytrack/persistence/QueryManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -46,13 +46,15 @@
import org.dependencytrack.model.Classifier;
import org.dependencytrack.model.Component;
import org.dependencytrack.model.ComponentIdentity;
import org.dependencytrack.model.ComponentMetaInformation;
import org.dependencytrack.model.ConfigPropertyConstants;
import org.dependencytrack.model.Cpe;
import org.dependencytrack.model.Cwe;
import org.dependencytrack.model.DependencyMetrics;
import org.dependencytrack.model.Finding;
import org.dependencytrack.model.FindingAttribution;
import org.dependencytrack.model.IntegrityAnalysis;
import org.dependencytrack.model.IntegrityMatchStatus;
import org.dependencytrack.model.IntegrityMetaComponent;
import org.dependencytrack.model.License;
import org.dependencytrack.model.LicenseGroup;
Expand Down Expand Up @@ -1832,4 +1834,23 @@ public IntegrityMetaComponent createIntegrityMetaComponent(IntegrityMetaComponen
public IntegrityAnalysis getIntegrityAnalysisByComponentUuid(UUID uuid) {
return getIntegrityAnalysisQueryManager().getIntegrityAnalysisByComponentUuid(uuid);
}

public static ComponentMetaInformation getMetaInformation(PackageURL purl, UUID uuid) {
Date publishedAt = null;
Date lastFetched = null;
IntegrityMatchStatus integrityMatchStatus = null;

try (QueryManager queryManager = new QueryManager()) {
final IntegrityMetaComponent integrityMetaComponent = queryManager.getIntegrityMetaComponent(purl.toString());
final IntegrityAnalysis integrityAnalysis = queryManager.getIntegrityAnalysisByComponentUuid(uuid);
if (integrityMetaComponent != null) {
publishedAt = integrityMetaComponent.getPublishedAt();
lastFetched = integrityMetaComponent.getLastFetch();
}
if (integrityAnalysis != null) {
integrityMatchStatus = integrityAnalysis.getIntegrityCheckStatus();
}
}
return new ComponentMetaInformation(publishedAt, integrityMatchStatus, lastFetched);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,6 @@
import org.dependencytrack.model.VulnerabilityAnalysisLevel;
import org.dependencytrack.model.VulnerabilityScan;
import org.dependencytrack.persistence.QueryManager;
import org.dependencytrack.util.ComponentMetaInformationUtil;
import org.dependencytrack.util.InternalComponentIdentificationUtil;
import org.dependencytrack.util.PurlUtil;
import org.hyades.proto.repometaanalysis.v1.FetchMeta;
Expand Down Expand Up @@ -154,7 +153,7 @@ public Response getComponentByUuid(
detachedComponent.setRepositoryMeta(repoMetaComponent);
}
if (includeIntegrityMetaData) {
detachedComponent.setComponentMetaInformation(ComponentMetaInformationUtil.getMetaInformation(component.getPurl(), component.getUuid()));
detachedComponent.setComponentMetaInformation(QueryManager.getMetaInformation(component.getPurl(), component.getUuid()));
}
}
}
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.dependencytrack.util;
package org.dependencytrack.persistence;

import org.dependencytrack.PersistenceCapableTest;
import org.dependencytrack.model.Component;
Expand All @@ -16,8 +16,7 @@
import static org.dependencytrack.model.IntegrityMatchStatus.HASH_MATCH_PASSED;
import static org.dependencytrack.model.IntegrityMatchStatus.HASH_MATCH_UNKNOWN;

public class ComponentIdentificationUtilTest extends PersistenceCapableTest {

public class QueryManagerTest extends PersistenceCapableTest {
@Test
public void testGetMetaInformation() {
Project project = qm.createProject("Acme Application", null, null, null, null, null, true, false);
Expand All @@ -43,7 +42,7 @@ public void testGetMetaInformation() {
integrityMetaComponent.setStatus(FetchStatus.PROCESSED);
qm.createIntegrityMetaComponent(integrityMetaComponent);
component = qm.createComponent(component, false);
ComponentMetaInformation componentMetaInformation = ComponentMetaInformationUtil.getMetaInformation(component.getPurl(), component.getUuid());
ComponentMetaInformation componentMetaInformation = QueryManager.getMetaInformation(component.getPurl(), component.getUuid());
Assert.assertEquals(HASH_MATCH_PASSED, componentMetaInformation.integrityMatchStatus());
Assert.assertEquals(integrityMetaComponent.getPublishedAt(), componentMetaInformation.publishedDate());
Assert.assertEquals(integrityMetaComponent.getLastFetch(), componentMetaInformation.lastFetched());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,13 @@

import alpine.common.util.UuidUtil;
import alpine.model.ConfigProperty;
import alpine.model.Team;
import alpine.server.filters.ApiFilter;
import alpine.server.filters.AuthenticationFilter;
import alpine.model.Team;
import org.dependencytrack.ResourceTest;
import org.dependencytrack.auth.Permissions;
import org.dependencytrack.model.ConfigPropertyConstants;
import org.dependencytrack.model.Project;
import org.dependencytrack.persistence.QueryManager;
import org.glassfish.jersey.client.ClientProperties;
import org.glassfish.jersey.server.ResourceConfig;
import org.glassfish.jersey.servlet.ServletContainer;
Expand All @@ -48,15 +47,15 @@ public class TeamResourceTest extends ResourceTest {
@Override
protected DeploymentContext configureDeployment() {
return ServletDeploymentContext.forServlet(new ServletContainer(
new ResourceConfig(TeamResource.class)
.register(ApiFilter.class)
.register(AuthenticationFilter.class)))
new ResourceConfig(TeamResource.class)
.register(ApiFilter.class)
.register(AuthenticationFilter.class)))
.build();
}

@Test
public void getTeamsTest() {
for (int i=0; i<1000; i++) {
for (int i = 0; i < 1000; i++) {
qm.createTeam("Team " + i, false);
}
Response response = target(V1_TEAM).request()
Expand Down Expand Up @@ -91,7 +90,7 @@ public void getTeamByInvalidUuidTest() {
String body = getPlainTextBody(response);
Assert.assertEquals("The team could not be found.", body);
}

@Test
public void getTeamSelfTest() {
initializeWithPermissions(Permissions.BOM_UPLOAD, Permissions.PROJECT_CREATION_UPLOAD);
Expand Down Expand Up @@ -187,8 +186,8 @@ public void deleteTeamWithAclTest() {
if (aclToogle == null) {
qm.createConfigProperty(ConfigPropertyConstants.ACCESS_MANAGEMENT_ACL_ENABLED.getGroupName(), ConfigPropertyConstants.ACCESS_MANAGEMENT_ACL_ENABLED.getPropertyName(), "true", ConfigPropertyConstants.ACCESS_MANAGEMENT_ACL_ENABLED.getPropertyType(), ConfigPropertyConstants.ACCESS_MANAGEMENT_ACL_ENABLED.getDescription());
} else {
aclToogle.setPropertyValue("true");
qm.persist(aclToogle);
aclToogle.setPropertyValue("true");
qm.persist(aclToogle);
}
Project project = qm.createProject("Acme Example", null, "1", null, null, null, true, false);
project.addAccessTeam(team);
Expand Down

0 comments on commit dec7141

Please sign in to comment.