From 2b8cc73a602be586c15754f7d87242dbaa5ccfd7 Mon Sep 17 00:00:00 2001 From: Michal Duda Date: Fri, 1 Feb 2019 12:51:32 +0100 Subject: [PATCH] SONARCLOUD-336: Automatically guess the projectKey/organization --- .../ComputeEngineContainerImplTest.java | 2 +- .../org/sonar/db/component/ComponentDao.java | 4 + .../sonar/db/component/ComponentMapper.java | 3 + .../sonar/db/component/ComponentMapper.xml | 11 +++ .../java/org/sonar/db/alm/AlmDbTester.java | 8 ++ .../sonar/core/config/ScannerProperties.java | 7 ++ .../config/CorePropertyDefinitionsTest.java | 2 +- .../sonar/api/config/PropertyDefinitions.java | 10 +- .../scanner/analysis/DefaultAnalysisMode.java | 4 +- .../scanner/bootstrap/GlobalAnalysisMode.java | 2 +- .../GlobalConfigurationProvider.java | 3 +- .../scanner/bootstrap/GlobalContainer.java | 12 +-- .../GlobalServerSettingsProvider.java | 4 +- .../bootstrap/GlobalTempFolderProvider.java | 4 +- .../bootstrap/ProcessedScannerProperties.java | 82 ++++++++++++++++ ...perties.java => RawScannerProperties.java} | 31 +------ .../bootstrap/ScannerWsClientProvider.java | 4 +- .../ProjectRepositoriesProvider.java | 4 +- .../repository/QualityProfilesProvider.java | 6 +- ...oader.java => AbstractSettingsLoader.java} | 46 ++++----- .../settings/DefaultGlobalSettingsLoader.java | 35 +++++++ .../DefaultProjectSettingsLoader.java | 38 ++++++++ .../settings/GlobalSettingsLoader.java | 26 ++++++ ...Loader.java => ProjectSettingsLoader.java} | 4 +- ...mptyExternalProjectKeyAndOrganization.java | 38 ++++++++ .../ExternalProjectKeyAndOrganization.java | 30 ++++++ ...ternalProjectKeyAndOrganizationLoader.java | 28 ++++++ ...rnalProjectKeyAndOrganizationProvider.java | 53 +++++++++++ .../scanner/scan/ProjectReactorBuilder.java | 6 +- .../scanner/scan/ProjectScanContainer.java | 10 +- .../scan/ProjectServerSettingsProvider.java | 4 +- .../analysis/DefaultAnalysisModeTest.java | 21 +++-- .../bootstrap/GlobalAnalysisModeTest.java | 2 +- .../GlobalConfigurationProviderTest.java | 5 +- .../bootstrap/GlobalContainerTest.java | 3 +- .../GlobalTempFolderProviderTest.java | 18 ++-- .../scanner/bootstrap/PluginFilesTest.java | 6 +- ...va => ProcessedScannerPropertiesTest.java} | 7 +- .../ScannerWsClientProviderTest.java | 14 +-- .../bootstrap/ScannerWsClientTest.java | 11 ++- .../scanner/index/AbstractCachesTest.java | 4 +- .../mediumtest/ScannerMediumTester.java | 29 +++--- .../log/ExceptionHandlingMediumTest.java | 13 +-- .../ProjectRepositoriesProviderTest.java | 4 +- .../QualityProfileProviderTest.java | 4 +- ...t.java => AbstractSettingsLoaderTest.java} | 18 ++-- .../DefaultGlobalSettingsLoaderTest.java | 73 +++++++++++++++ .../DefaultProjectSettingsLoaderTest.java | 76 +++++++++++++++ ...ProjectKeyAndOrganizationProviderTest.java | 93 +++++++++++++++++++ .../scan/ProjectReactorBuilderTest.java | 28 ++++-- .../client/project/ProjectsWsParameters.java | 2 + 51 files changed, 775 insertions(+), 177 deletions(-) create mode 100644 sonar-scanner-engine/src/main/java/org/sonar/scanner/bootstrap/ProcessedScannerProperties.java rename sonar-scanner-engine/src/main/java/org/sonar/scanner/bootstrap/{ScannerProperties.java => RawScannerProperties.java} (73%) rename sonar-scanner-engine/src/main/java/org/sonar/scanner/repository/settings/{DefaultSettingsLoader.java => AbstractSettingsLoader.java} (69%) create mode 100644 sonar-scanner-engine/src/main/java/org/sonar/scanner/repository/settings/DefaultGlobalSettingsLoader.java create mode 100644 sonar-scanner-engine/src/main/java/org/sonar/scanner/repository/settings/DefaultProjectSettingsLoader.java create mode 100644 sonar-scanner-engine/src/main/java/org/sonar/scanner/repository/settings/GlobalSettingsLoader.java rename sonar-scanner-engine/src/main/java/org/sonar/scanner/repository/settings/{SettingsLoader.java => ProjectSettingsLoader.java} (92%) create mode 100644 sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/EmptyExternalProjectKeyAndOrganization.java create mode 100644 sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/ExternalProjectKeyAndOrganization.java create mode 100644 sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/ExternalProjectKeyAndOrganizationLoader.java create mode 100644 sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/ExternalProjectKeyAndOrganizationProvider.java rename sonar-scanner-engine/src/test/java/org/sonar/scanner/bootstrap/{ScannerPropertiesTest.java => ProcessedScannerPropertiesTest.java} (83%) rename sonar-scanner-engine/src/test/java/org/sonar/scanner/repository/settings/{DefaultSettingsLoaderTest.java => AbstractSettingsLoaderTest.java} (82%) create mode 100644 sonar-scanner-engine/src/test/java/org/sonar/scanner/repository/settings/DefaultGlobalSettingsLoaderTest.java create mode 100644 sonar-scanner-engine/src/test/java/org/sonar/scanner/repository/settings/DefaultProjectSettingsLoaderTest.java create mode 100644 sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/ExternalProjectKeyAndOrganizationProviderTest.java diff --git a/server/sonar-ce/src/test/java/org/sonar/ce/container/ComputeEngineContainerImplTest.java b/server/sonar-ce/src/test/java/org/sonar/ce/container/ComputeEngineContainerImplTest.java index c42071ea97a..a1b5cb3f75a 100644 --- a/server/sonar-ce/src/test/java/org/sonar/ce/container/ComputeEngineContainerImplTest.java +++ b/server/sonar-ce/src/test/java/org/sonar/ce/container/ComputeEngineContainerImplTest.java @@ -123,7 +123,7 @@ public class ComputeEngineContainerImplTest { + 26 // level 1 + 60 // content of DaoModule + 3 // content of EsModule - + 53 // content of CorePropertyDefinitions + + 54 // content of CorePropertyDefinitions + 1 // StopFlagContainer ); assertThat( diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/component/ComponentDao.java b/server/sonar-db-dao/src/main/java/org/sonar/db/component/ComponentDao.java index 9ff0aa9e174..eca30f4dcd1 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/component/ComponentDao.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/component/ComponentDao.java @@ -430,4 +430,8 @@ public class ComponentDao implements Dao { return mapper(dbSession).selectPrivateProjectsWithNcloc(organizationUuid); } + public Optional selectByAlmIdAndAlmRepositoryId(DbSession dbSession, String almId, String almRepositoryId) { + return Optional.ofNullable(mapper(dbSession).selectByAlmIdAndAlmRepositoryId(almId, almRepositoryId)); + } + } diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/component/ComponentMapper.java b/server/sonar-db-dao/src/main/java/org/sonar/db/component/ComponentMapper.java index 86cac939a71..fac6f2c06da 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/component/ComponentMapper.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/component/ComponentMapper.java @@ -45,6 +45,9 @@ public interface ComponentMapper { @CheckForNull ComponentDto selectByUuid(String uuid); + @CheckForNull + ComponentDto selectByAlmIdAndAlmRepositoryId(@Param("almId") String almId, @Param("almRepositoryId") String almRepositoryId); + /** * Return sub project of component keys */ diff --git a/server/sonar-db-dao/src/main/resources/org/sonar/db/component/ComponentMapper.xml b/server/sonar-db-dao/src/main/resources/org/sonar/db/component/ComponentMapper.xml index fc0a1a5cf37..cbe0e28ce31 100644 --- a/server/sonar-db-dao/src/main/resources/org/sonar/db/component/ComponentMapper.xml +++ b/server/sonar-db-dao/src/main/resources/org/sonar/db/component/ComponentMapper.xml @@ -80,6 +80,17 @@ p.uuid=#{uuid,jdbcType=VARCHAR} + +