diff --git a/build.gradle b/build.gradle index 4f958cad8..93f36ff37 100644 --- a/build.gradle +++ b/build.gradle @@ -40,7 +40,7 @@ repositories { } } -def sonarqubeVersion = '10.0.0.68432' +def sonarqubeVersion = '10.1.0.73491' def sonarqubeLibDir = "${projectDir}/sonarqube-lib" def sonarLibraries = "${sonarqubeLibDir}/sonarqube-${sonarqubeVersion}/lib" diff --git a/src/main/java/com/github/mc1arke/sonarqube/plugin/server/CommunityBranchSupportDelegate.java b/src/main/java/com/github/mc1arke/sonarqube/plugin/server/CommunityBranchSupportDelegate.java index 6880d4645..28b2ca906 100644 --- a/src/main/java/com/github/mc1arke/sonarqube/plugin/server/CommunityBranchSupportDelegate.java +++ b/src/main/java/com/github/mc1arke/sonarqube/plugin/server/CommunityBranchSupportDelegate.java @@ -98,7 +98,7 @@ public ComponentDto createBranchComponent(DbSession dbSession, BranchSupport.Com .setUuidPath(ComponentDto.UUID_PATH_OF_ROOT) .setMainBranchProjectUuid(mainComponentDto.uuid()) .setCreatedAt(new Date(clock.millis())); - dbClient.componentDao().insert(dbSession, componentDto); + dbClient.componentDao().insert(dbSession, componentDto, mainComponentBranchDto.isMain()); BranchDto branchDto = new BranchDto() .setProjectUuid(mainComponentDto.uuid()) @@ -107,7 +107,7 @@ public ComponentDto createBranchComponent(DbSession dbSession, BranchSupport.Com .setExcludeFromPurge(false) .setKey(pullRequestKey)); componentKey.getBranchName().ifPresent(branchName -> branchDto.setBranchType(BranchType.BRANCH) - .setExcludeFromPurge(isBranchExcludedFromPurge(projectConfigurationLoader.loadProjectConfiguration(dbSession, mainComponentDto), branchName)) + .setExcludeFromPurge(isBranchExcludedFromPurge(projectConfigurationLoader.loadProjectConfiguration(dbSession, branchDto.getProjectUuid()), branchName)) .setKey(branchName)); dbClient.branchDao().insert(dbSession, branchDto); diff --git a/src/test/java/com/github/mc1arke/sonarqube/plugin/CommunityBranchAgentTest.java b/src/test/java/com/github/mc1arke/sonarqube/plugin/CommunityBranchAgentTest.java index 4e63e115e..ea8bd6afa 100644 --- a/src/test/java/com/github/mc1arke/sonarqube/plugin/CommunityBranchAgentTest.java +++ b/src/test/java/com/github/mc1arke/sonarqube/plugin/CommunityBranchAgentTest.java @@ -32,11 +32,12 @@ import java.lang.instrument.UnmodifiableClassException; import java.lang.reflect.Field; import java.util.Optional; - import org.apache.commons.io.IOUtils; import org.junit.jupiter.api.Test; import org.mockito.ArgumentCaptor; import org.sonar.api.SonarRuntime; +import org.sonar.core.documentation.DefaultDocumentationLinkGenerator; +import org.sonar.core.documentation.DocumentationLinkGenerator; import org.sonar.core.platform.EditionProvider; import org.sonar.core.platform.PlatformEditionProvider; import org.sonar.db.DbClient; @@ -85,6 +86,7 @@ void shouldRedefineMultipleAlmFeatureClassForWebLaunch() throws ReflectiveOperat void shouldRedefineSetActionClassForWebLaunch() throws ReflectiveOperationException, IOException, UnmodifiableClassException, IllegalClassFormatException { CustomClassloader classLoader = new CustomClassloader(); Instrumentation instrumentation = mock(Instrumentation.class); + DocumentationLinkGenerator documentationLinkGenerator = mock(DefaultDocumentationLinkGenerator.class); CommunityBranchAgent.premain("web", instrumentation); @@ -104,8 +106,8 @@ void shouldRedefineSetActionClassForWebLaunch() throws ReflectiveOperationExcept PlatformEditionProvider platformEditionProvider = mock(PlatformEditionProvider.class); NewCodePeriodDao newCodePeriodDao = mock(NewCodePeriodDao.class); - Object setAction = setActionClass.getConstructor(DbClient.class, UserSession.class, ComponentFinder.class, PlatformEditionProvider.class, NewCodePeriodDao.class) - .newInstance(dbClient, userSession, componentFinder, platformEditionProvider, newCodePeriodDao); + Object setAction = setActionClass.getConstructor(DbClient.class, UserSession.class, ComponentFinder.class, PlatformEditionProvider.class, NewCodePeriodDao.class, DocumentationLinkGenerator.class) + .newInstance(dbClient, userSession, componentFinder, platformEditionProvider, newCodePeriodDao, documentationLinkGenerator); Field editionProviderField = setActionClass.getDeclaredField("editionProvider"); editionProviderField.setAccessible(true); @@ -119,6 +121,7 @@ void shouldRedefinesUnsetActionClassForWebLaunch() throws IOException, Unmodifia Instrumentation instrumentation = mock(Instrumentation.class); CommunityBranchAgent.premain("web", instrumentation); + DocumentationLinkGenerator documentationLinkGenerator = mock(DefaultDocumentationLinkGenerator.class); ArgumentCaptor classFileTransformerArgumentCaptor = ArgumentCaptor.forClass(ClassFileTransformer.class); verify(instrumentation).retransformClasses(UnsetAction.class); @@ -135,8 +138,8 @@ void shouldRedefinesUnsetActionClassForWebLaunch() throws IOException, Unmodifia PlatformEditionProvider platformEditionProvider = mock(PlatformEditionProvider.class); NewCodePeriodDao newCodePeriodDao = mock(NewCodePeriodDao.class); - Object setAction = unsetActionClass.getConstructor(DbClient.class, UserSession.class, ComponentFinder.class, PlatformEditionProvider.class, NewCodePeriodDao.class) - .newInstance(dbClient, userSession, componentFinder, platformEditionProvider, newCodePeriodDao); + Object setAction = unsetActionClass.getConstructor(DbClient.class, UserSession.class, ComponentFinder.class, PlatformEditionProvider.class, NewCodePeriodDao.class, DocumentationLinkGenerator.class) + .newInstance(dbClient, userSession, componentFinder, platformEditionProvider, newCodePeriodDao, documentationLinkGenerator); Field editionProviderField = unsetActionClass.getDeclaredField("editionProvider"); editionProviderField.setAccessible(true); diff --git a/src/test/java/com/github/mc1arke/sonarqube/plugin/server/CommunityBranchSupportDelegateTest.java b/src/test/java/com/github/mc1arke/sonarqube/plugin/server/CommunityBranchSupportDelegateTest.java index af78184a8..f1b15c5ff 100644 --- a/src/test/java/com/github/mc1arke/sonarqube/plugin/server/CommunityBranchSupportDelegateTest.java +++ b/src/test/java/com/github/mc1arke/sonarqube/plugin/server/CommunityBranchSupportDelegateTest.java @@ -183,7 +183,7 @@ void shouldCreateComponentAndBranchDtoIfValidationPasses(String branchName, Stri ComponentDto result = underTest.createBranchComponent(dbSession, componentKey, componentDto, branchDto); - verify(componentDao).insert(dbSession, copyComponentDto); + verify(componentDao).insert(dbSession, copyComponentDto, branchDto.isMain()); verify(copyComponentDto).setUuid("uuid0"); verify(copyComponentDto).setUuidPath("."); verify(copyComponentDto).setMainBranchProjectUuid("componentUuid");