diff options
author | Javier García Orduña <javier.garcia@sonarsource.com> | 2025-02-10 09:11:22 +0100 |
---|---|---|
committer | sonartech <sonartech@sonarsource.com> | 2025-02-19 20:03:12 +0000 |
commit | c57cc761d6997f839407fcb98db91b24bf83eb13 (patch) | |
tree | 24119f5e967332f5fccbd2cb90059e9236f11dca /server/sonar-db-dao/src | |
parent | bb40b3b17279e64d21f757ba4295148fd0214b75 (diff) | |
download | sonarqube-c57cc761d6997f839407fcb98db91b24bf83eb13.tar.gz sonarqube-c57cc761d6997f839407fcb98db91b24bf83eb13.zip |
SQRP-188 Add filtering to "search" dependencies REST API
Diffstat (limited to 'server/sonar-db-dao/src')
5 files changed, 174 insertions, 97 deletions
diff --git a/server/sonar-db-dao/src/it/java/org/sonar/db/sca/ScaDependenciesDaoIT.java b/server/sonar-db-dao/src/it/java/org/sonar/db/sca/ScaDependenciesDaoIT.java index acc2dc567d0..9f96f5cff22 100644 --- a/server/sonar-db-dao/src/it/java/org/sonar/db/sca/ScaDependenciesDaoIT.java +++ b/server/sonar-db-dao/src/it/java/org/sonar/db/sca/ScaDependenciesDaoIT.java @@ -21,8 +21,6 @@ package org.sonar.db.sca; import java.util.List; import java.util.Map; -import java.util.function.Consumer; -import javax.annotation.Nullable; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; import org.sonar.api.utils.System2; @@ -35,8 +33,6 @@ import static org.assertj.core.api.Assertions.assertThat; class ScaDependenciesDaoIT { - private static final String PROJECT_BRANCH_UUID = "branchUuid"; - @RegisterExtension private final DbTester db = DbTester.create(System2.INSTANCE); @@ -44,7 +40,8 @@ class ScaDependenciesDaoIT { @Test void insert_shouldPersistScaDependencies() { - var scaDependencyDto = insertScaDependency(); + ComponentDto componentDto = prepareComponentDto("1"); + ScaDependencyDto scaDependencyDto = db.getScaDependenciesDbTester().insertScaDependency(componentDto.uuid(), "1", true, PackageManager.MAVEN, "foo.bar"); List<Map<String, Object>> select = db.select(db.getSession(), "select * from sca_dependencies"); assertThat(select).hasSize(1); @@ -70,7 +67,8 @@ class ScaDependenciesDaoIT { @Test void deleteByUuid_shouldDeleteScaDependencies() { - var scaDependencyDto = insertScaDependency(); + ComponentDto componentDto = prepareComponentDto("1"); + ScaDependencyDto scaDependencyDto = db.getScaDependenciesDbTester().insertScaDependency(componentDto.uuid(), "1", true, PackageManager.MAVEN, "foo.bar"); List<Map<String, Object>> select = db.select(db.getSession(), "select * from sca_dependencies"); assertThat(select).isNotEmpty(); @@ -83,7 +81,8 @@ class ScaDependenciesDaoIT { @Test void selectByUuid_shouldLoadScaDependency() { - var scaDependencyDto = insertScaDependency(); + ComponentDto componentDto = prepareComponentDto("1"); + ScaDependencyDto scaDependencyDto = db.getScaDependenciesDbTester().insertScaDependency(componentDto.uuid(), "1", true, PackageManager.MAVEN, "foo.bar"); var loadedOptional = scaDependenciesDao.selectByUuid(db.getSession(), scaDependencyDto.uuid()); @@ -92,10 +91,10 @@ class ScaDependenciesDaoIT { @Test void selectByQuery_shouldReturnScaDependencies_whenQueryByBranchUuid() { - ProjectData projectData = db.components().insertPublicProject(); - ScaDependencyDto scaDependencyDto = db.getScaDependenciesDbTester().insertScaDependency(projectData.mainBranchUuid()); + ComponentDto componentDto = prepareComponentDto("1"); + ScaDependencyDto scaDependencyDto = db.getScaDependenciesDbTester().insertScaDependency(componentDto.uuid(), "1", true, PackageManager.MAVEN, "foo.bar"); - ScaDependenciesQuery scaDependenciesQuery = new ScaDependenciesQuery(projectData.mainBranchUuid(), null); + ScaDependenciesQuery scaDependenciesQuery = new ScaDependenciesQuery(componentDto.branchUuid(), null, null, null); List<ScaDependencyDto> results = scaDependenciesDao.selectByQuery(db.getSession(), scaDependenciesQuery, Pagination.all()); assertThat(results).hasSize(1); @@ -104,12 +103,13 @@ class ScaDependenciesDaoIT { @Test void selectByQuery_shouldReturnPaginatedScaDependencies() { - ScaDependencyDto scaDependencyDto1 = insertScaDependency("1"); - ScaDependencyDto scaDependencyDto2 = insertScaDependency("2"); - ScaDependencyDto scaDependencyDto3 = insertScaDependency("3"); - ScaDependencyDto scaDependencyDto4 = insertScaDependency("4"); + ComponentDto componentDto = prepareComponentDto("1"); + ScaDependencyDto scaDependencyDto1 = db.getScaDependenciesDbTester().insertScaDependency(componentDto.uuid(), "1", true, PackageManager.MAVEN, "foo.bar"); + ScaDependencyDto scaDependencyDto2 = db.getScaDependenciesDbTester().insertScaDependency(componentDto.uuid(), "2", true, PackageManager.MAVEN, "foo.bar"); + ScaDependencyDto scaDependencyDto3 = db.getScaDependenciesDbTester().insertScaDependency(componentDto.uuid(), "3", true, PackageManager.MAVEN, "foo.bar"); + ScaDependencyDto scaDependencyDto4 = db.getScaDependenciesDbTester().insertScaDependency(componentDto.uuid(), "4", true, PackageManager.MAVEN, "foo.bar"); - ScaDependenciesQuery scaDependenciesQuery = new ScaDependenciesQuery(PROJECT_BRANCH_UUID, null); + ScaDependenciesQuery scaDependenciesQuery = new ScaDependenciesQuery(componentDto.branchUuid(), null, null, null); List<ScaDependencyDto> page1Results = scaDependenciesDao.selectByQuery(db.getSession(), scaDependenciesQuery, Pagination.forPage(1).andSize(2)); List<ScaDependencyDto> page2Results = scaDependenciesDao.selectByQuery(db.getSession(), scaDependenciesQuery, Pagination.forPage(2).andSize(2)); @@ -122,36 +122,75 @@ class ScaDependenciesDaoIT { } @Test - void selectByQuery_shouldPartiallyMatchLongName_whenQueriedByText() { - ScaDependencyDto projectDepSearched = insertScaDependency("sEArched"); - insertScaDependency("notWanted"); - ScaDependencyDto projectDepSearchAsWell = insertScaDependency("sEArchedAsWell"); - insertScaDependency("notwantedeither"); - - ScaDependenciesQuery scaDependenciesQuery = new ScaDependenciesQuery(PROJECT_BRANCH_UUID, "long_nameSearCHed"); + void selectByQuery_shouldPartiallyMatchPackageName_whenQueriedByText() { + ComponentDto componentDto = prepareComponentDto("1"); + ScaDependencyDto scaDependencyDto1 = db.getScaDependenciesDbTester().insertScaDependency(componentDto.uuid(), "1", true, PackageManager.MAVEN, "foo.bar"); + @SuppressWarnings("unused") + ScaDependencyDto scaDependencyDto2 = db.getScaDependenciesDbTester().insertScaDependency(componentDto.uuid(), "2", true, PackageManager.MAVEN, "bar.mee"); + ScaDependencyDto scaDependencyDto3 = db.getScaDependenciesDbTester().insertScaDependency(componentDto.uuid(), "3", true, PackageManager.MAVEN, "foo.bar.me"); + @SuppressWarnings("unused") + ScaDependencyDto scaDependencyDto4 = db.getScaDependenciesDbTester().insertScaDependency(componentDto.uuid(), "4", true, PackageManager.MAVEN, "some.foo.bar"); + + ScaDependenciesQuery scaDependenciesQuery = new ScaDependenciesQuery(componentDto.branchUuid(), null, null, "foo.bar"); List<ScaDependencyDto> results = scaDependenciesDao.selectByQuery(db.getSession(), scaDependenciesQuery, Pagination.all()); assertThat(results).hasSize(2); - assertThat(results.get(0)).usingRecursiveComparison().isEqualTo(projectDepSearched); - assertThat(results.get(1)).usingRecursiveComparison().isEqualTo(projectDepSearchAsWell); + assertThat(results.get(0)).usingRecursiveComparison().isEqualTo(scaDependencyDto1); + assertThat(results.get(1)).usingRecursiveComparison().isEqualTo(scaDependencyDto3); + + ScaDependenciesQuery scaDependenciesCaseInsensitiveQuery = new ScaDependenciesQuery(componentDto.branchUuid(), null, null, "Foo.Bar"); + List<ScaDependencyDto> resultsCaseInsensitive = scaDependenciesDao.selectByQuery(db.getSession(), scaDependenciesCaseInsensitiveQuery, Pagination.all()); + + assertThat(resultsCaseInsensitive).hasSize(2); + assertThat(resultsCaseInsensitive.get(0)).usingRecursiveComparison().isEqualTo(scaDependencyDto1); + assertThat(resultsCaseInsensitive.get(1)).usingRecursiveComparison().isEqualTo(scaDependencyDto3); } @Test - void selectByQuery_shouldExactlyMatchKee_whenQueriedByText() { - ScaDependencyDto projectDepSearched = insertScaDependency("1", dto -> dto.setKey("keySearched")); - insertScaDependency("2", dto -> dto.setKey("KEySearCHed")); - insertScaDependency("3", dto -> dto.setKey("some_keySearched")); + void selectByQuery_shouldReturnScaDependencies_whenQueryByDirect() { + ComponentDto componentDto = prepareComponentDto("1"); + ScaDependencyDto scaDependencyDto1 = db.getScaDependenciesDbTester().insertScaDependency(componentDto.uuid(), "1", true, PackageManager.MAVEN, "foo.bar"); + ScaDependencyDto scaDependencyDto2 = db.getScaDependenciesDbTester().insertScaDependency(componentDto.uuid(), "2", false, PackageManager.MAVEN, "foo.bar"); - ScaDependenciesQuery scaDependenciesQuery = new ScaDependenciesQuery(PROJECT_BRANCH_UUID, "keySearched"); - List<ScaDependencyDto> results = scaDependenciesDao.selectByQuery(db.getSession(), scaDependenciesQuery, Pagination.all()); + ScaDependenciesQuery scaDependenciesDirectQuery = new ScaDependenciesQuery(componentDto.branchUuid(), true, null, null); + List<ScaDependencyDto> resultsDirect = scaDependenciesDao.selectByQuery(db.getSession(), scaDependenciesDirectQuery, Pagination.all()); - assertThat(results).hasSize(1); - assertThat(results.get(0)).usingRecursiveComparison().isEqualTo(projectDepSearched); + assertThat(resultsDirect).hasSize(1); + assertThat(resultsDirect.get(0)).usingRecursiveComparison().isEqualTo(scaDependencyDto1); + + ScaDependenciesQuery scaDependenciesNoDirectQuery = new ScaDependenciesQuery(componentDto.branchUuid(), false, null, null); + List<ScaDependencyDto> resultsNoDirect = scaDependenciesDao.selectByQuery(db.getSession(), scaDependenciesNoDirectQuery, Pagination.all()); + + assertThat(resultsNoDirect).hasSize(1); + assertThat(resultsNoDirect.get(0)).usingRecursiveComparison().isEqualTo(scaDependencyDto2); + } + + @Test + void selectByQuery_shouldReturnScaDependencies_whenQueryByPackageManager() { + ComponentDto componentDto = prepareComponentDto("1"); + ScaDependencyDto scaDependencyDto1 = db.getScaDependenciesDbTester().insertScaDependency(componentDto.uuid(), "1", true, PackageManager.MAVEN, "foo.bar"); + ScaDependencyDto scaDependencyDto2 = db.getScaDependenciesDbTester().insertScaDependency(componentDto.uuid(), "2", true, PackageManager.NPM, "foo.bar"); + ScaDependencyDto scaDependencyDto3 = db.getScaDependenciesDbTester().insertScaDependency(componentDto.uuid(), "3", true, PackageManager.CARGO, "foo.bar"); + + ScaDependenciesQuery scaDependenciesMavenQuery = new ScaDependenciesQuery(componentDto.branchUuid(), null, List.of(PackageManager.MAVEN.name()), null); + List<ScaDependencyDto> resultsMaven = scaDependenciesDao.selectByQuery(db.getSession(), scaDependenciesMavenQuery, Pagination.all()); + + assertThat(resultsMaven).hasSize(1); + assertThat(resultsMaven.get(0)).usingRecursiveComparison().isEqualTo(scaDependencyDto1); + + ScaDependenciesQuery scaDependenciesNpmAndCargoQuery = new ScaDependenciesQuery(componentDto.branchUuid(), null, + List.of(PackageManager.NPM.name(), PackageManager.CARGO.name()), null); + List<ScaDependencyDto> resultsNpm = scaDependenciesDao.selectByQuery(db.getSession(), scaDependenciesNpmAndCargoQuery, Pagination.all()); + + assertThat(resultsNpm).hasSize(2); + assertThat(resultsNpm.get(0)).usingRecursiveComparison().isEqualTo(scaDependencyDto2); + assertThat(resultsNpm.get(1)).usingRecursiveComparison().isEqualTo(scaDependencyDto3); } @Test void update_shouldUpdateScaDependency() { - ScaDependencyDto scaDependencyDto = insertScaDependency(); + ComponentDto componentDto = prepareComponentDto("1"); + ScaDependencyDto scaDependencyDto = db.getScaDependenciesDbTester().insertScaDependency(componentDto.uuid(), "1", true, PackageManager.MAVEN, "foo.bar"); ScaDependencyDto updatedScaDependency = scaDependencyDto.toBuilder().setUpdatedAt(scaDependencyDto.updatedAt() + 1).setVersion("newVersion").build(); @@ -181,27 +220,20 @@ class ScaDependenciesDaoIT { @Test void countByQuery_shouldReturnTheTotalOfDependencies() { - insertScaDependency("sEArched"); - insertScaDependency("notWanted"); - insertScaDependency("sEArchedAsWell"); - db.getScaDependenciesDbTester().insertScaDependency("another_branch_uuid", "searched"); + ComponentDto componentDto1 = prepareComponentDto("1"); + db.getScaDependenciesDbTester().insertScaDependency(componentDto1.uuid(), "1", true, PackageManager.MAVEN, "foo.bar"); + db.getScaDependenciesDbTester().insertScaDependency(componentDto1.uuid(), "2", true, PackageManager.MAVEN, "foo.bar.mee"); + db.getScaDependenciesDbTester().insertScaDependency(componentDto1.uuid(), "3", true, PackageManager.MAVEN, "bar.foo"); - ScaDependenciesQuery scaDependenciesQuery = new ScaDependenciesQuery(PROJECT_BRANCH_UUID, "long_nameSearCHed"); + ScaDependenciesQuery scaDependenciesQuery = new ScaDependenciesQuery(componentDto1.branchUuid(), null, null, "foo"); assertThat(scaDependenciesDao.countByQuery(db.getSession(), scaDependenciesQuery)).isEqualTo(2); - assertThat(scaDependenciesDao.countByQuery(db.getSession(), new ScaDependenciesQuery(PROJECT_BRANCH_UUID, null))).isEqualTo(3); - assertThat(scaDependenciesDao.countByQuery(db.getSession(), new ScaDependenciesQuery("another_branch_uuid", null))).isEqualTo(1); + assertThat(scaDependenciesDao.countByQuery(db.getSession(), new ScaDependenciesQuery(componentDto1.branchUuid(), null, null, null))).isEqualTo(3); + assertThat(scaDependenciesDao.countByQuery(db.getSession(), new ScaDependenciesQuery("another_branch_uuid", null, null, null))).isZero(); } - private ScaDependencyDto insertScaDependency() { - return db.getScaDependenciesDbTester().insertScaDependency(PROJECT_BRANCH_UUID); - } - - private ScaDependencyDto insertScaDependency(String suffix) { - return insertScaDependency(suffix, null); - } - - private ScaDependencyDto insertScaDependency(String suffix, @Nullable Consumer<ComponentDto> dtoPopulator) { - return db.getScaDependenciesDbTester().insertScaDependency(PROJECT_BRANCH_UUID, suffix, dtoPopulator); + private ComponentDto prepareComponentDto(String suffix) { + ProjectData projectData = db.components().insertPublicProject(); + return db.getScaDependenciesDbTester().insertComponent(projectData.mainBranchUuid(), suffix); } } diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/sca/ScaDependenciesQuery.java b/server/sonar-db-dao/src/main/java/org/sonar/db/sca/ScaDependenciesQuery.java index 7dde3be94b2..5a2c3fca89a 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/sca/ScaDependenciesQuery.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/sca/ScaDependenciesQuery.java @@ -19,20 +19,26 @@ */ package org.sonar.db.sca; +import java.util.List; import java.util.Locale; import javax.annotation.CheckForNull; import javax.annotation.Nullable; import static org.sonar.db.DaoUtils.buildLikeValue; -import static org.sonar.db.WildcardPosition.BEFORE_AND_AFTER; +import static org.sonar.db.WildcardPosition.AFTER; -public record ScaDependenciesQuery(String branchUuid, @Nullable String query) { +public record ScaDependenciesQuery( + String branchUuid, + @Nullable Boolean direct, + @Nullable List<String> packageManagers, + @Nullable String query +) { /** * Used by MyBatis mapper */ @CheckForNull public String likeQuery() { - return query == null ? null : buildLikeValue(query, BEFORE_AND_AFTER).toLowerCase(Locale.ENGLISH); + return query == null ? null : buildLikeValue(query.toLowerCase(Locale.ENGLISH), AFTER); } } diff --git a/server/sonar-db-dao/src/main/resources/org/sonar/db/sca/ScaDependenciesMapper.xml b/server/sonar-db-dao/src/main/resources/org/sonar/db/sca/ScaDependenciesMapper.xml index e321a9dd3ce..10ec3da425d 100644 --- a/server/sonar-db-dao/src/main/resources/org/sonar/db/sca/ScaDependenciesMapper.xml +++ b/server/sonar-db-dao/src/main/resources/org/sonar/db/sca/ScaDependenciesMapper.xml @@ -70,7 +70,7 @@ <select id="selectByQuery" parameterType="map" resultType="org.sonar.db.sca.ScaDependencyDto"> select <include refid="scaDependenciesColumns"/> <include refid="sqlSelectByQuery" /> - ORDER BY c.kee ASC + ORDER BY sd.created_at ASC <include refid="org.sonar.db.common.Common.pagination"/> </select> @@ -83,11 +83,17 @@ from sca_dependencies sd inner join components c on sd.component_uuid = c.uuid where c.branch_uuid = #{query.branchUuid,jdbcType=VARCHAR} + <if test="query.direct != null"> + AND sd.direct = #{query.direct,jdbcType=BOOLEAN} + </if> + <if test="query.packageManagers != null and !query.packageManagers.isEmpty()"> + AND sd.package_manager IN + <foreach collection="query.packageManagers" open="(" close=")" item="packageManager" separator=","> + #{packageManager,jdbcType=VARCHAR} + </foreach> + </if> <if test="query.query() != null"> - AND ( - c.kee = #{query.query,jdbcType=VARCHAR} - OR lower(c.long_name) LIKE #{query.likeQuery} ESCAPE '/' - ) + AND lower(sd.package_name) LIKE #{query.likeQuery} ESCAPE '/' </if> </sql> diff --git a/server/sonar-db-dao/src/test/java/org/sonar/db/sca/ScaDependenciesQueryTest.java b/server/sonar-db-dao/src/test/java/org/sonar/db/sca/ScaDependenciesQueryTest.java new file mode 100644 index 00000000000..0f310ff5ef4 --- /dev/null +++ b/server/sonar-db-dao/src/test/java/org/sonar/db/sca/ScaDependenciesQueryTest.java @@ -0,0 +1,39 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.db.sca; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +class ScaDependenciesQueryTest { + + @Test + void testLikeQuery() { + ScaDependenciesQuery scaDependenciesQuery = new ScaDependenciesQuery("branchUuid", null, null, "QUERY"); + assertEquals("query%", scaDependenciesQuery.likeQuery()); + } + + @Test + void testLikeQueryWithNullQuery() { + ScaDependenciesQuery scaDependenciesQuery = new ScaDependenciesQuery("branchUuid", null, null, null); + assertNull(scaDependenciesQuery.likeQuery()); + } +} diff --git a/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/sca/ScaDependenciesDbTester.java b/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/sca/ScaDependenciesDbTester.java index fec30bea3fa..666660bf524 100644 --- a/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/sca/ScaDependenciesDbTester.java +++ b/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/sca/ScaDependenciesDbTester.java @@ -19,14 +19,10 @@ */ package org.sonar.db.sca; -import java.util.function.Consumer; -import javax.annotation.Nullable; import org.sonar.db.DbClient; import org.sonar.db.DbTester; import org.sonar.db.component.ComponentDto; -import static org.apache.commons.lang3.StringUtils.EMPTY; - public class ScaDependenciesDbTester { private final DbTester db; private final DbClient dbClient; @@ -36,51 +32,49 @@ public class ScaDependenciesDbTester { this.dbClient = db.getDbClient(); } - public ComponentDto newPackageComponentDto(String branchUuid, String suffix, @Nullable Consumer<ComponentDto> dtoPopulator) { - var name = "foo:bar"; - ComponentDto componentDto = new ComponentDto().setUuid("uuid" + suffix) + public ComponentDto newPackageComponentDto(String branchUuid, String suffix) { + return new ComponentDto().setUuid("uuid" + suffix) .setKey("key" + suffix) .setUuidPath("uuidPath" + suffix) - .setName(name + suffix) + .setName("name" + suffix) .setLongName("long_name" + suffix) .setBranchUuid(branchUuid); - - if (dtoPopulator != null) { - dtoPopulator.accept(componentDto); - } - - return componentDto; - } - - public ScaDependencyDto newScaDependencyDto(ComponentDto componentDto, String suffix) { - return new ScaDependencyDto("scaDependencyUuid" + suffix, - componentDto.uuid(), - "packageUrl" + suffix, - PackageManager.MAVEN, - componentDto.name(), - "1.0.0", - true, - "compile", - "pom.xml", - "BSD-3-Clause", - true, - 1L, - 2L); } - public ScaDependencyDto insertScaDependency(String branchUuid) { - return insertScaDependency(branchUuid, EMPTY, null); + public ComponentDto insertComponent(String branchUuid, String suffix) { + ComponentDto componentDto = newPackageComponentDto(branchUuid, suffix); + db.components().insertComponent(componentDto); + return componentDto; } - public ScaDependencyDto insertScaDependency(String branchUuid, String suffix) { - return insertScaDependency(branchUuid, suffix, null); + public ScaDependencyDto newScaDependencyDto(String componentUuid, String suffix, boolean direct, PackageManager packageManager, String packageName) { + long now = System.currentTimeMillis(); + try { + return new ScaDependencyDto("scaDependencyUuid" + suffix, + componentUuid, + "packageUrl" + suffix, + packageManager, + packageName, + "1.0.0", + direct, + "compile", + "pom.xml", + "BSD-3-Clause", + true, + now, + now + ); + } finally { + try { + Thread.sleep(5); + } catch (InterruptedException ignored) { + // ignore + } + } } - public ScaDependencyDto insertScaDependency(String branchUuid, String suffix, @Nullable Consumer<ComponentDto> dtoPopulator) { - var componentDto = newPackageComponentDto(branchUuid, suffix, dtoPopulator); - - db.components().insertComponent(componentDto); - var scaDependencyDto = newScaDependencyDto(componentDto, suffix); + public ScaDependencyDto insertScaDependency(String componentUuid, String suffix, boolean direct, PackageManager packageManager, String packageName) { + ScaDependencyDto scaDependencyDto = newScaDependencyDto(componentUuid, suffix, direct, packageManager, packageName); dbClient.scaDependenciesDao().insert(db.getSession(), scaDependencyDto); return scaDependencyDto; } |