]> source.dussan.org Git - sonarqube.git/commitdiff
rename package org.sonar.server.computation to org.sonar.ce.task
authorSébastien Lesaint <sebastien.lesaint@sonarsource.com>
Fri, 22 Jun 2018 07:02:27 +0000 (09:02 +0200)
committersonartech <sonartech@sonarsource.com>
Fri, 29 Jun 2018 07:10:14 +0000 (09:10 +0200)
in module sonar-ce-task

202 files changed:
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/ProjectAnalysisTaskModule.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/analysis/AnalysisMetadataHolderImpl.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/api/posttask/PostProjectAnalysisTasksExecutor.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/batch/BatchReportDirectoryHolder.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/container/ContainerFactory.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/container/ContainerFactoryImpl.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/container/ProjectAnalysisTaskContainerPopulator.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/dbmigration/PopulateFileSourceLineCount.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/filemove/FileMoveDetectionStep.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/filemove/ScoreMatrixDumperImpl.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/measure/PostMeasuresComputationChecksStep.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/purge/IndexPurgeListener.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/purge/ProjectCleaner.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/purge/PurgeDatastoresStep.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/purge/package-info.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/AbstractComputationSteps.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/BuildComponentTreeStep.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/CommentMeasuresStep.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/ComplexityMeasuresStep.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/ComputeMeasureVariationsStep.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/ComputeQProfileMeasureStep.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/CoverageMeasuresStep.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/CustomMeasuresCopyStep.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/DbMigrationsStep.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/DuplicationDataMeasuresStep.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/DuplicationMeasuresStep.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/EnableAnalysisStep.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/ExecuteVisitorsStep.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/ExtractReportStep.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/GenerateAnalysisUuid.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/IndexAnalysisStep.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/LanguageDistributionMeasuresStep.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/LoadCrossProjectDuplicationsRepositoryStep.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/LoadDuplicationsFromReportStep.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/LoadMeasureComputersStep.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/LoadPeriodsStep.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/LoadQualityGateStep.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/LoadQualityProfilesStep.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/LoadReportAnalysisMetadataHolderStep.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/NewCoverageMeasuresStep.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/NewSizeMeasuresStep.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistAnalysisPropertiesStep.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistAnalysisStep.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistComponentsStep.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistCrossProjectDuplicationIndexStep.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistEventsStep.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistExternalRulesStep.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistFileSourcesStep.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistIssuesStep.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistLiveMeasuresStep.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistMeasuresStep.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistProjectLinksStep.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistScannerContextStep.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistTestsStep.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PublishTaskResultStep.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/QualityGateEventsStep.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/QualityGateMeasuresStep.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/QualityProfileEventsStep.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/ReportComputationSteps.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/SendIssueNotificationsStep.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/SizeMeasuresStep.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/TriggerViewRefreshStep.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/UnitTestMeasuresStep.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/UpdateQualityProfilesLastUsedDateStep.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/ValidateProjectStep.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/VerifyBillingStep.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/taskprocessor/ReportTaskProcessor.java
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/analysis/AnalysisMetadataHolderRule.java
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/api/posttask/PostProjectAnalysisTasksExecutorTest.java
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/container/ProjectAnalysisTaskContainerPopulatorTest.java
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/dbmigration/PopulateFileSourceLineCountTest.java
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/dbmigration/ProjectAnalysisDataChangesImplTest.java
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/filemove/ScoreMatrixDumperImplTest.java
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/purge/IndexPurgeListenerTest.java
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/purge/ProjectCleanerTest.java
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/purge/PurgeDatastoresStepTest.java
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/BaseStepTest.java
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/DuplicationDataMeasuresStepTest.java
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/DuplicationMeasuresStepTest.java
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ExecuteVisitorsStepTest.java
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ExtractReportStepTest.java
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/IndexAnalysisStepTest.java
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/LoadCrossProjectDuplicationsRepositoryStepTest.java
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/LoadMeasureComputersStepTest.java
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/LoadPeriodsStepTest.java
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/LoadReportAnalysisMetadataHolderStepTest.java
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistCrossProjectDuplicationIndexStepTest.java
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistEventsStepTest.java
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistExternalRulesStepTest.java
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistFileSourcesStepTest.java
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistIssuesStepTest.java
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistLiveMeasuresStepTest.java
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistMeasuresStepTest.java
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistProjectLinksStepTest.java
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistScannerContextStepTest.java
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistTestsStepTest.java
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PublishTaskResultStepTest.java
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ReportCommentMeasuresStepTest.java
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ReportComplexityMeasuresStepTest.java
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ReportComputationStepsTest.java
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ReportLanguageDistributionMeasuresStepTest.java
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ReportPersistAnalysisStepTest.java
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ReportPersistComponentsStepTest.java
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ReportUnitTestMeasuresStepTest.java
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/SendIssueNotificationsStepTest.java
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ViewsCommentMeasuresStepTest.java
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ViewsComplexityMeasuresStepTest.java
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ViewsLanguageDistributionMeasuresStepTest.java
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ViewsPersistAnalysisStepTest.java
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ViewsPersistComponentsStepTest.java
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ViewsUnitTestMeasuresStepTest.java
server/sonar-ce-task/src/main/java/org/sonar/ce/task/CeTask.java [new file with mode: 0644]
server/sonar-ce-task/src/main/java/org/sonar/ce/task/CeTaskResult.java [new file with mode: 0644]
server/sonar-ce-task/src/main/java/org/sonar/ce/task/container/EagerStart.java [new file with mode: 0644]
server/sonar-ce-task/src/main/java/org/sonar/ce/task/container/TaskContainer.java [new file with mode: 0644]
server/sonar-ce-task/src/main/java/org/sonar/ce/task/container/TaskContainerImpl.java [new file with mode: 0644]
server/sonar-ce-task/src/main/java/org/sonar/ce/task/container/package-info.java [new file with mode: 0644]
server/sonar-ce-task/src/main/java/org/sonar/ce/task/log/CeTaskLogging.java [new file with mode: 0644]
server/sonar-ce-task/src/main/java/org/sonar/ce/task/log/package-info.java [new file with mode: 0644]
server/sonar-ce-task/src/main/java/org/sonar/ce/task/package-info.java [new file with mode: 0644]
server/sonar-ce-task/src/main/java/org/sonar/ce/task/step/ComputationStep.java [new file with mode: 0644]
server/sonar-ce-task/src/main/java/org/sonar/ce/task/step/ComputationStepExecutor.java [new file with mode: 0644]
server/sonar-ce-task/src/main/java/org/sonar/ce/task/step/ComputationSteps.java [new file with mode: 0644]
server/sonar-ce-task/src/main/java/org/sonar/ce/task/step/ExecuteStatelessInitExtensionsStep.java [new file with mode: 0644]
server/sonar-ce-task/src/main/java/org/sonar/ce/task/step/StatelessInitExtension.java [new file with mode: 0644]
server/sonar-ce-task/src/main/java/org/sonar/ce/task/step/TypedException.java [new file with mode: 0644]
server/sonar-ce-task/src/main/java/org/sonar/ce/task/step/package-info.java [new file with mode: 0644]
server/sonar-ce-task/src/main/java/org/sonar/ce/task/taskprocessor/MutableTaskResultHolder.java [new file with mode: 0644]
server/sonar-ce-task/src/main/java/org/sonar/ce/task/taskprocessor/MutableTaskResultHolderImpl.java [new file with mode: 0644]
server/sonar-ce-task/src/main/java/org/sonar/ce/task/taskprocessor/TaskResultHolder.java [new file with mode: 0644]
server/sonar-ce-task/src/main/java/org/sonar/ce/task/util/InitializedProperty.java [new file with mode: 0644]
server/sonar-ce-task/src/main/java/org/sonar/ce/task/util/package-info.java [new file with mode: 0644]
server/sonar-ce-task/src/main/java/org/sonar/server/computation/CeTask.java [deleted file]
server/sonar-ce-task/src/main/java/org/sonar/server/computation/CeTaskResult.java [deleted file]
server/sonar-ce-task/src/main/java/org/sonar/server/computation/log/CeTaskLogging.java [deleted file]
server/sonar-ce-task/src/main/java/org/sonar/server/computation/log/package-info.java [deleted file]
server/sonar-ce-task/src/main/java/org/sonar/server/computation/package-info.java [deleted file]
server/sonar-ce-task/src/main/java/org/sonar/server/computation/task/container/EagerStart.java [deleted file]
server/sonar-ce-task/src/main/java/org/sonar/server/computation/task/container/TaskContainer.java [deleted file]
server/sonar-ce-task/src/main/java/org/sonar/server/computation/task/container/TaskContainerImpl.java [deleted file]
server/sonar-ce-task/src/main/java/org/sonar/server/computation/task/container/package-info.java [deleted file]
server/sonar-ce-task/src/main/java/org/sonar/server/computation/task/step/ComputationStep.java [deleted file]
server/sonar-ce-task/src/main/java/org/sonar/server/computation/task/step/ComputationStepExecutor.java [deleted file]
server/sonar-ce-task/src/main/java/org/sonar/server/computation/task/step/ComputationSteps.java [deleted file]
server/sonar-ce-task/src/main/java/org/sonar/server/computation/task/step/ExecuteStatelessInitExtensionsStep.java [deleted file]
server/sonar-ce-task/src/main/java/org/sonar/server/computation/task/step/StatelessInitExtension.java [deleted file]
server/sonar-ce-task/src/main/java/org/sonar/server/computation/task/step/TypedException.java [deleted file]
server/sonar-ce-task/src/main/java/org/sonar/server/computation/task/step/package-info.java [deleted file]
server/sonar-ce-task/src/main/java/org/sonar/server/computation/taskprocessor/MutableTaskResultHolder.java [deleted file]
server/sonar-ce-task/src/main/java/org/sonar/server/computation/taskprocessor/MutableTaskResultHolderImpl.java [deleted file]
server/sonar-ce-task/src/main/java/org/sonar/server/computation/taskprocessor/TaskResultHolder.java [deleted file]
server/sonar-ce-task/src/main/java/org/sonar/server/computation/util/InitializedProperty.java [deleted file]
server/sonar-ce-task/src/main/java/org/sonar/server/computation/util/package-info.java [deleted file]
server/sonar-ce-task/src/test/java/org/sonar/ce/task/CeTaskTest.java [new file with mode: 0644]
server/sonar-ce-task/src/test/java/org/sonar/ce/task/ChangeLogLevel.java [new file with mode: 0644]
server/sonar-ce-task/src/test/java/org/sonar/ce/task/container/TaskContainerImplTest.java [new file with mode: 0644]
server/sonar-ce-task/src/test/java/org/sonar/ce/task/log/CeTaskLoggingTest.java [new file with mode: 0644]
server/sonar-ce-task/src/test/java/org/sonar/ce/task/step/ComputationStepExecutorTest.java [new file with mode: 0644]
server/sonar-ce-task/src/test/java/org/sonar/ce/task/step/ExecuteStatelessInitExtensionsStepTest.java [new file with mode: 0644]
server/sonar-ce-task/src/test/java/org/sonar/ce/task/step/StepsExplorer.java [new file with mode: 0644]
server/sonar-ce-task/src/test/java/org/sonar/ce/task/taskprocessor/MutableTaskResultHolderImplTest.java [new file with mode: 0644]
server/sonar-ce-task/src/test/java/org/sonar/server/computation/CeTaskTest.java [deleted file]
server/sonar-ce-task/src/test/java/org/sonar/server/computation/log/CeTaskLoggingTest.java [deleted file]
server/sonar-ce-task/src/test/java/org/sonar/server/computation/task/ChangeLogLevel.java [deleted file]
server/sonar-ce-task/src/test/java/org/sonar/server/computation/task/container/TaskContainerImplTest.java [deleted file]
server/sonar-ce-task/src/test/java/org/sonar/server/computation/task/step/ComputationStepExecutorTest.java [deleted file]
server/sonar-ce-task/src/test/java/org/sonar/server/computation/task/step/ExecuteStatelessInitExtensionsStepTest.java [deleted file]
server/sonar-ce-task/src/test/java/org/sonar/server/computation/task/step/StepsExplorer.java [deleted file]
server/sonar-ce-task/src/test/java/org/sonar/server/computation/taskprocessor/MutableTaskResultHolderImplTest.java [deleted file]
server/sonar-ce/src/main/java/org/sonar/ce/CeConfigurationModule.java
server/sonar-ce/src/main/java/org/sonar/ce/CeTaskCommonsModule.java
server/sonar-ce/src/main/java/org/sonar/ce/notification/ReportAnalysisFailureNotificationExecutionListener.java
server/sonar-ce/src/main/java/org/sonar/ce/queue/InternalCeQueue.java
server/sonar-ce/src/main/java/org/sonar/ce/queue/InternalCeQueueImpl.java
server/sonar-ce/src/main/java/org/sonar/ce/taskprocessor/CeLoggingWorkerExecutionListener.java
server/sonar-ce/src/main/java/org/sonar/ce/taskprocessor/CeTaskProcessorRepository.java
server/sonar-ce/src/main/java/org/sonar/ce/taskprocessor/CeTaskProcessorRepositoryImpl.java
server/sonar-ce/src/main/java/org/sonar/ce/taskprocessor/CeWorker.java
server/sonar-ce/src/main/java/org/sonar/ce/taskprocessor/CeWorkerImpl.java
server/sonar-ce/src/test/java/org/sonar/ce/notification/ReportAnalysisFailureNotificationExecutionListenerTest.java
server/sonar-ce/src/test/java/org/sonar/ce/queue/InternalCeQueueImplTest.java
server/sonar-ce/src/test/java/org/sonar/ce/taskprocessor/CeTaskLoggingWorkerExecutionListenerTest.java
server/sonar-ce/src/test/java/org/sonar/ce/taskprocessor/CeTaskProcessorRepositoryImplTest.java
server/sonar-ce/src/test/java/org/sonar/ce/taskprocessor/CeTaskProcessorRepositoryRule.java
server/sonar-ce/src/test/java/org/sonar/ce/taskprocessor/CeWorkerImplTest.java
server/sonar-server/src/main/java/org/sonar/ce/CeModule.java
server/sonar-server/src/main/java/org/sonar/ce/log/CeProcessLogging.java
server/sonar-server/src/main/java/org/sonar/ce/queue/CeQueue.java
server/sonar-server/src/main/java/org/sonar/ce/queue/CeQueueImpl.java
server/sonar-server/src/main/java/org/sonar/ce/taskprocessor/CeTaskProcessor.java
server/sonar-server/src/main/java/org/sonar/ce/taskprocessor/ReportTaskProcessorDeclaration.java
server/sonar-server/src/main/java/org/sonar/server/ce/queue/ReportSubmitter.java
server/sonar-server/src/main/java/org/sonar/server/ce/ws/SubmitAction.java
server/sonar-server/src/main/java/org/sonar/server/computation/organization/DefaultOrganizationLoader.java
server/sonar-server/src/main/java/org/sonar/server/computation/organization/package-info.java
server/sonar-server/src/main/java/org/sonar/server/computation/settings/SettingsLoader.java
server/sonar-server/src/main/java/org/sonar/server/computation/settings/package-info.java
server/sonar-server/src/test/java/org/sonar/ce/queue/CeQueueImplTest.java
server/sonar-server/src/test/java/org/sonar/ce/taskprocessor/ReportTaskProcessorDeclarationTest.java
server/sonar-server/src/test/java/org/sonar/server/ce/ws/CancelActionTest.java
server/sonar-server/src/test/java/org/sonar/server/ce/ws/SubmitActionTest.java
server/sonar-server/src/test/java/org/sonar/server/ce/ws/TaskTypesActionTest.java

index cdaf4160067184a4b8a22a50f4cb34c69d25817a..109e88a0accdda06f80364367bb566bc5db9aaab 100644 (file)
@@ -21,9 +21,9 @@ package org.sonar.ce.task.projectanalysis;
 
 import org.sonar.ce.task.projectanalysis.container.ContainerFactoryImpl;
 import org.sonar.ce.task.projectanalysis.taskprocessor.ReportTaskProcessor;
-import org.sonar.server.ce.queue.ReportSubmitter;
+import org.sonar.ce.task.step.ComputationStepExecutor;
 import org.sonar.core.platform.Module;
-import org.sonar.server.computation.task.step.ComputationStepExecutor;
+import org.sonar.server.ce.queue.ReportSubmitter;
 
 public class ProjectAnalysisTaskModule extends Module {
   @Override
index ed4ba4c8eeafc27616d4c835fdcf741bea3b023c..2f19d8d11d4ca3b7c787bde3cd4df67f947dec47 100644 (file)
@@ -23,8 +23,8 @@ import com.google.common.collect.ImmutableMap;
 import java.util.Map;
 import javax.annotation.CheckForNull;
 import javax.annotation.Nullable;
+import org.sonar.ce.task.util.InitializedProperty;
 import org.sonar.db.component.BranchType;
-import org.sonar.server.computation.util.InitializedProperty;
 import org.sonar.server.project.Project;
 import org.sonar.server.qualityprofile.QualityProfile;
 
index ceebf5dc91ee10bde2f34fbfd484430d805a21b3..3c6f89c7c85c03889b971b89cb69996e6935c98d 100644 (file)
@@ -44,8 +44,8 @@ import org.sonar.ce.task.projectanalysis.qualitygate.ConditionStatus;
 import org.sonar.ce.task.projectanalysis.qualitygate.QualityGateHolder;
 import org.sonar.ce.task.projectanalysis.qualitygate.QualityGateStatus;
 import org.sonar.ce.task.projectanalysis.qualitygate.QualityGateStatusHolder;
+import org.sonar.ce.task.step.ComputationStepExecutor;
 import org.sonar.core.util.stream.MoreCollectors;
-import org.sonar.server.computation.task.step.ComputationStepExecutor;
 
 import static java.lang.String.format;
 import static java.util.Objects.requireNonNull;
@@ -64,7 +64,7 @@ public class PostProjectAnalysisTasksExecutor implements ComputationStepExecutor
 
   private static final Logger LOG = Loggers.get(PostProjectAnalysisTasksExecutor.class);
 
-  private final org.sonar.server.computation.CeTask ceTask;
+  private final org.sonar.ce.task.CeTask ceTask;
   private final AnalysisMetadataHolder analysisMetadataHolder;
   private final QualityGateHolder qualityGateHolder;
   private final QualityGateStatusHolder qualityGateStatusHolder;
@@ -75,14 +75,14 @@ public class PostProjectAnalysisTasksExecutor implements ComputationStepExecutor
   /**
    * Constructor used by Pico when there is no {@link PostProjectAnalysisTask} in the container.
    */
-  public PostProjectAnalysisTasksExecutor(org.sonar.server.computation.CeTask ceTask,
+  public PostProjectAnalysisTasksExecutor(org.sonar.ce.task.CeTask ceTask,
                                           AnalysisMetadataHolder analysisMetadataHolder,
                                           QualityGateHolder qualityGateHolder, QualityGateStatusHolder qualityGateStatusHolder,
                                           BatchReportReader reportReader, System2 system2) {
     this(ceTask, analysisMetadataHolder, qualityGateHolder, qualityGateStatusHolder, reportReader, system2, null);
   }
 
-  public PostProjectAnalysisTasksExecutor(org.sonar.server.computation.CeTask ceTask,
+  public PostProjectAnalysisTasksExecutor(org.sonar.ce.task.CeTask ceTask,
                                           AnalysisMetadataHolder analysisMetadataHolder,
                                           QualityGateHolder qualityGateHolder, QualityGateStatusHolder qualityGateStatusHolder,
                                           BatchReportReader reportReader, System2 system2,
@@ -147,7 +147,7 @@ public class PostProjectAnalysisTasksExecutor implements ComputationStepExecutor
     }
   }
 
-  private static Project createProject(org.sonar.server.computation.CeTask ceTask) {
+  private static Project createProject(org.sonar.ce.task.CeTask ceTask) {
     return new ProjectImpl(
       ceTask.getComponentUuid(),
       ceTask.getComponentKey(),
index 44fd4958a83b730f7ca20c795a1c12355143d1de..a7329f23ac3f1241bcc7a1e7faef31981a44610a 100644 (file)
@@ -20,7 +20,7 @@
 package org.sonar.ce.task.projectanalysis.batch;
 
 import java.io.File;
-import org.sonar.server.computation.CeTask;
+import org.sonar.ce.task.CeTask;
 
 public interface BatchReportDirectoryHolder {
   /**
index edfdec24ec675af588db8c56e43dc45b10d6cd05..f305d8aef8c4cbf4096369c4fac706a1393319a4 100644 (file)
 package org.sonar.ce.task.projectanalysis.container;
 
 import javax.annotation.Nullable;
-import org.sonar.server.computation.CeTask;
+import org.sonar.ce.task.CeTask;
+import org.sonar.ce.task.container.TaskContainer;
 import org.sonar.core.platform.ComponentContainer;
 import org.sonar.plugin.ce.ReportAnalysisComponentProvider;
-import org.sonar.server.computation.task.container.TaskContainer;
 
 public interface ContainerFactory {
 
index b12e44dac98fa1bae794625e632193fa4ec53185..21611e656c196ccc981870f9f16fc0f93bbb40f8 100644 (file)
 package org.sonar.ce.task.projectanalysis.container;
 
 import javax.annotation.Nullable;
-import org.sonar.server.computation.CeTask;
+import org.sonar.ce.task.CeTask;
+import org.sonar.ce.task.container.TaskContainer;
+import org.sonar.ce.task.container.TaskContainerImpl;
 import org.sonar.core.platform.ComponentContainer;
 import org.sonar.plugin.ce.ReportAnalysisComponentProvider;
-import org.sonar.server.computation.task.container.TaskContainer;
-import org.sonar.server.computation.task.container.TaskContainerImpl;
 
 public class ContainerFactoryImpl implements ContainerFactory {
   @Override
index e2e143df05e1606678a9cb2c6a1159d32ccdf1d5..124589cce06b94d8e1520a62fbb2c8c4b5e42500 100644 (file)
@@ -22,9 +22,8 @@ package org.sonar.ce.task.projectanalysis.container;
 import java.util.Arrays;
 import java.util.List;
 import javax.annotation.Nullable;
-import org.sonar.server.computation.organization.DefaultOrganizationLoader;
-import org.sonar.server.computation.CeTask;
-import org.sonar.server.computation.settings.SettingsLoader;
+import org.sonar.ce.task.CeTask;
+import org.sonar.ce.task.container.TaskContainer;
 import org.sonar.ce.task.projectanalysis.analysis.AnalysisMetadataHolderImpl;
 import org.sonar.ce.task.projectanalysis.api.posttask.PostProjectAnalysisTasksExecutor;
 import org.sonar.ce.task.projectanalysis.batch.BatchReportDirectoryHolderImpl;
@@ -121,13 +120,14 @@ import org.sonar.ce.task.projectanalysis.source.SourceLinesRepositoryImpl;
 import org.sonar.ce.task.projectanalysis.step.ReportComputationSteps;
 import org.sonar.ce.task.projectanalysis.step.SmallChangesetQualityGateSpecialCase;
 import org.sonar.ce.task.projectanalysis.webhook.WebhookPostTask;
+import org.sonar.ce.task.step.ComputationStepExecutor;
+import org.sonar.ce.task.step.ComputationSteps;
+import org.sonar.ce.taskprocessor.MutableTaskResultHolderImpl;
 import org.sonar.core.issue.tracking.Tracker;
 import org.sonar.core.platform.ContainerPopulator;
 import org.sonar.plugin.ce.ReportAnalysisComponentProvider;
-import org.sonar.server.computation.task.container.TaskContainer;
-import org.sonar.server.computation.task.step.ComputationStepExecutor;
-import org.sonar.server.computation.task.step.ComputationSteps;
-import org.sonar.server.computation.taskprocessor.MutableTaskResultHolderImpl;
+import org.sonar.server.computation.organization.DefaultOrganizationLoader;
+import org.sonar.server.computation.settings.SettingsLoader;
 import org.sonar.server.view.index.ViewIndex;
 
 public final class ProjectAnalysisTaskContainerPopulator implements ContainerPopulator<TaskContainer> {
index ce24294946e49fa214e600a4edf5dff26e381ec0..6de4c30557a7722a25427ed081ba974575ce12fb 100644 (file)
@@ -21,7 +21,7 @@ package org.sonar.ce.task.projectanalysis.dbmigration;
 
 import com.google.common.collect.Iterables;
 import java.sql.SQLException;
-import org.sonar.server.computation.CeTask;
+import org.sonar.ce.task.CeTask;
 import org.sonar.db.Database;
 import org.sonar.db.source.FileSourceDto;
 import org.sonar.server.platform.db.migration.step.DataChange;
index d7069351e747aa3be24cd22b6907a9801427e461..e757af1b60b1fd00800f1bd928c8c980c52ffcf7 100644 (file)
@@ -50,13 +50,13 @@ import org.sonar.ce.task.projectanalysis.filemove.FileSimilarity.File;
 import org.sonar.ce.task.projectanalysis.filemove.FileSimilarity.FileImpl;
 import org.sonar.ce.task.projectanalysis.filemove.FileSimilarity.LazyFileImpl;
 import org.sonar.ce.task.projectanalysis.source.SourceLinesHashRepository;
+import org.sonar.ce.task.step.ComputationStep;
 import org.sonar.core.util.logs.Profiler;
 import org.sonar.core.util.stream.MoreCollectors;
 import org.sonar.db.DbClient;
 import org.sonar.db.DbSession;
 import org.sonar.db.component.FileMoveRowDto;
 import org.sonar.db.source.LineHashesWithKeyDto;
-import org.sonar.server.computation.task.step.ComputationStep;
 
 import static com.google.common.collect.FluentIterable.from;
 import static org.sonar.ce.task.projectanalysis.component.ComponentVisitor.Order.POST_ORDER;
index a14629e59d055b094608915869b0c2db8f6523eb..f906b2aeba18d6b47920f6d645c16595c1c9d78a 100644 (file)
@@ -26,7 +26,7 @@ import java.nio.file.Path;
 import org.sonar.api.config.Configuration;
 import org.sonar.api.utils.log.Logger;
 import org.sonar.api.utils.log.Loggers;
-import org.sonar.server.computation.CeTask;
+import org.sonar.ce.task.CeTask;
 
 import static java.nio.charset.StandardCharsets.UTF_8;
 
index ec788322725568c47292e755236defe08bfb81ee..a7369b4e687ff4a800db88d611a30aacc882521d 100644 (file)
@@ -22,13 +22,11 @@ package org.sonar.ce.task.projectanalysis.measure;
 import com.google.common.base.Optional;
 import org.sonar.api.ce.ComputeEngineSide;
 import org.sonar.api.measures.CoreMetrics;
-import org.sonar.ce.task.projectanalysis.metric.Metric;
-import org.sonar.ce.task.projectanalysis.metric.MetricRepository;
 import org.sonar.ce.task.projectanalysis.analysis.AnalysisMetadataHolder;
 import org.sonar.ce.task.projectanalysis.component.TreeRootHolder;
 import org.sonar.ce.task.projectanalysis.metric.Metric;
 import org.sonar.ce.task.projectanalysis.metric.MetricRepository;
-import org.sonar.server.computation.task.step.ComputationStep;
+import org.sonar.ce.task.step.ComputationStep;
 
 /**
  * Execute {@link PostMeasuresComputationCheck} instances in no specific order.
index 5a2ea59ae0448517ec536e10d8a17150dc604559..7a8d50da4b2d4198e455e7bf9416add907882d01 100644 (file)
@@ -17,7 +17,7 @@
  * 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.server.computation.dbcleaner;
+package org.sonar.ce.task.dbcleaner;
 
 import java.util.Collection;
 import java.util.List;
index 63b2170ad0e674a7e19aea98af17e1b5cae213ae..68e13d07db27c12123c3bd8bc2c320f797c92de2 100644 (file)
@@ -17,7 +17,7 @@
  * 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.server.computation.dbcleaner;
+package org.sonar.ce.task.dbcleaner;
 
 import java.util.Collection;
 import org.sonar.api.CoreProperties;
index 380730f9eb759d2e8c39db619fecd7012dbafbfa..5313c8eca0419ba6be73f748f3ca948563141ce0 100644 (file)
@@ -19,6 +19,7 @@
  */
 package org.sonar.ce.task.projectanalysis.purge;
 
+import org.sonar.ce.task.dbcleaner.ProjectCleaner;
 import org.sonar.ce.task.projectanalysis.component.Component;
 import org.sonar.ce.task.projectanalysis.component.ConfigurationRepository;
 import org.sonar.ce.task.projectanalysis.component.DbIdsRepository;
@@ -26,11 +27,10 @@ import org.sonar.ce.task.projectanalysis.component.DepthTraversalTypeAwareCrawle
 import org.sonar.ce.task.projectanalysis.component.DisabledComponentsHolder;
 import org.sonar.ce.task.projectanalysis.component.TreeRootHolder;
 import org.sonar.ce.task.projectanalysis.component.TypeAwareVisitorAdapter;
+import org.sonar.ce.task.step.ComputationStep;
 import org.sonar.db.DbClient;
 import org.sonar.db.DbSession;
 import org.sonar.db.purge.IdUuidPair;
-import org.sonar.server.computation.dbcleaner.ProjectCleaner;
-import org.sonar.server.computation.task.step.ComputationStep;
 
 import static org.sonar.ce.task.projectanalysis.component.Component.Type.PROJECT;
 import static org.sonar.ce.task.projectanalysis.component.Component.Type.VIEW;
index c73fe5406aebfe5065be5770dcdb0afe3b21fbf7..9bf4b445299d266842d30cb18b42d6d2b80143bb 100644 (file)
@@ -18,6 +18,6 @@
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 @ParametersAreNonnullByDefault
-package org.sonar.server.computation.dbcleaner;
+package org.sonar.ce.task.dbcleaner;
 
 import javax.annotation.ParametersAreNonnullByDefault;
index 5f46ebb957752a91c623b4ec174e50bb6050a0e8..2567689a7219817bbdb2b3a46772fd8caf1629dc 100644 (file)
@@ -20,9 +20,9 @@
 package org.sonar.ce.task.projectanalysis.step;
 
 import com.google.common.collect.Iterables;
+import org.sonar.ce.task.step.ComputationStep;
+import org.sonar.ce.task.step.ComputationSteps;
 import org.sonar.core.platform.ContainerPopulator;
-import org.sonar.server.computation.task.step.ComputationStep;
-import org.sonar.server.computation.task.step.ComputationSteps;
 
 /**
  * Abstract implementation of {@link ComputationStep} which provides the implementation of {@link ComputationSteps#instances()}
index 88e224bda64c9ef5c0abb91aeef06ddca59fc9fb..de462b9ac8a4338524ec0abb0f774310006ad8d6 100644 (file)
@@ -21,28 +21,22 @@ package org.sonar.ce.task.projectanalysis.step;
 
 import javax.annotation.CheckForNull;
 import javax.annotation.Nullable;
+import org.sonar.ce.task.projectanalysis.analysis.Analysis;
+import org.sonar.ce.task.projectanalysis.analysis.Branch;
+import org.sonar.ce.task.projectanalysis.analysis.MutableAnalysisMetadataHolder;
+import org.sonar.ce.task.projectanalysis.batch.BatchReportReader;
 import org.sonar.ce.task.projectanalysis.component.Component;
 import org.sonar.ce.task.projectanalysis.component.ComponentKeyGenerator;
 import org.sonar.ce.task.projectanalysis.component.ComponentTreeBuilder;
 import org.sonar.ce.task.projectanalysis.component.ComponentUuidFactory;
 import org.sonar.ce.task.projectanalysis.component.DefaultBranchImpl;
 import org.sonar.ce.task.projectanalysis.component.MutableTreeRootHolder;
+import org.sonar.ce.task.step.ComputationStep;
 import org.sonar.db.DbClient;
 import org.sonar.db.DbSession;
 import org.sonar.db.component.SnapshotDto;
 import org.sonar.db.component.SnapshotQuery;
 import org.sonar.scanner.protocol.output.ScannerReport;
-import org.sonar.ce.task.projectanalysis.analysis.Analysis;
-import org.sonar.ce.task.projectanalysis.analysis.Branch;
-import org.sonar.ce.task.projectanalysis.analysis.MutableAnalysisMetadataHolder;
-import org.sonar.ce.task.projectanalysis.batch.BatchReportReader;
-import org.sonar.ce.task.projectanalysis.component.Component;
-import org.sonar.ce.task.projectanalysis.component.ComponentKeyGenerator;
-import org.sonar.ce.task.projectanalysis.component.ComponentTreeBuilder;
-import org.sonar.ce.task.projectanalysis.component.ComponentUuidFactory;
-import org.sonar.ce.task.projectanalysis.component.DefaultBranchImpl;
-import org.sonar.ce.task.projectanalysis.component.MutableTreeRootHolder;
-import org.sonar.server.computation.task.step.ComputationStep;
 
 /**
  * Populates the {@link MutableTreeRootHolder} and {@link MutableAnalysisMetadataHolder} from the {@link BatchReportReader}
index 6b5f6d1b5e4cf81d4bee243e9c3920a5cd22065a..bbb427e4a85edd44ea4d7bc4112b837fbfffc91d 100644 (file)
@@ -21,13 +21,6 @@ package org.sonar.ce.task.projectanalysis.step;
 
 import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableList;
-import org.sonar.ce.task.projectanalysis.component.PathAwareCrawler;
-import org.sonar.ce.task.projectanalysis.formula.Counter;
-import org.sonar.ce.task.projectanalysis.formula.CreateMeasureContext;
-import org.sonar.ce.task.projectanalysis.formula.Formula;
-import org.sonar.ce.task.projectanalysis.formula.FormulaExecutorComponentVisitor;
-import org.sonar.ce.task.projectanalysis.metric.Metric;
-import org.sonar.ce.task.projectanalysis.metric.MetricRepository;
 import org.sonar.ce.task.projectanalysis.component.CrawlerDepthLimit;
 import org.sonar.ce.task.projectanalysis.component.PathAwareCrawler;
 import org.sonar.ce.task.projectanalysis.component.TreeRootHolder;
@@ -42,7 +35,7 @@ import org.sonar.ce.task.projectanalysis.measure.Measure;
 import org.sonar.ce.task.projectanalysis.measure.MeasureRepository;
 import org.sonar.ce.task.projectanalysis.metric.Metric;
 import org.sonar.ce.task.projectanalysis.metric.MetricRepository;
-import org.sonar.server.computation.task.step.ComputationStep;
+import org.sonar.ce.task.step.ComputationStep;
 
 import static org.sonar.api.measures.CoreMetrics.COMMENTED_OUT_CODE_LINES_KEY;
 import static org.sonar.api.measures.CoreMetrics.COMMENT_LINES_DENSITY_KEY;
index 506e2f50a1bf5a0c6997e5b52db9052f8351ae4b..cfd4a240e4d9e0d5e7d555e81c99038e1bc9d1db 100644 (file)
@@ -21,12 +21,6 @@ package org.sonar.ce.task.projectanalysis.step;
 
 import com.google.common.collect.ImmutableList;
 import org.sonar.ce.task.projectanalysis.component.PathAwareCrawler;
-import org.sonar.ce.task.projectanalysis.formula.AverageFormula;
-import org.sonar.ce.task.projectanalysis.formula.DistributionFormula;
-import org.sonar.ce.task.projectanalysis.formula.Formula;
-import org.sonar.ce.task.projectanalysis.formula.FormulaExecutorComponentVisitor;
-import org.sonar.ce.task.projectanalysis.metric.MetricRepository;
-import org.sonar.ce.task.projectanalysis.component.PathAwareCrawler;
 import org.sonar.ce.task.projectanalysis.component.TreeRootHolder;
 import org.sonar.ce.task.projectanalysis.formula.AverageFormula;
 import org.sonar.ce.task.projectanalysis.formula.DistributionFormula;
@@ -34,7 +28,7 @@ import org.sonar.ce.task.projectanalysis.formula.Formula;
 import org.sonar.ce.task.projectanalysis.formula.FormulaExecutorComponentVisitor;
 import org.sonar.ce.task.projectanalysis.measure.MeasureRepository;
 import org.sonar.ce.task.projectanalysis.metric.MetricRepository;
-import org.sonar.server.computation.task.step.ComputationStep;
+import org.sonar.ce.task.step.ComputationStep;
 
 import static org.sonar.api.measures.CoreMetrics.CLASSES_KEY;
 import static org.sonar.api.measures.CoreMetrics.CLASS_COMPLEXITY_DISTRIBUTION_KEY;
index 568dbcb2c189ec0995b8165fca526f3e91da63df..8b94a1fdc366a0117892c18d9646eea9576742d0 100644 (file)
@@ -41,11 +41,11 @@ import org.sonar.ce.task.projectanalysis.metric.Metric;
 import org.sonar.ce.task.projectanalysis.metric.MetricRepository;
 import org.sonar.ce.task.projectanalysis.period.Period;
 import org.sonar.ce.task.projectanalysis.period.PeriodHolder;
+import org.sonar.ce.task.step.ComputationStep;
 import org.sonar.core.util.stream.MoreCollectors;
 import org.sonar.db.DbClient;
 import org.sonar.db.DbSession;
 import org.sonar.db.measure.PastMeasureDto;
-import org.sonar.server.computation.task.step.ComputationStep;
 
 import static com.google.common.base.Preconditions.checkArgument;
 import static java.lang.String.format;
index c0a5c784412777e34848a49037b258690584a0f0..5e9fbd930cf6ac08f583fad5ca7a578d69a68c99 100644 (file)
@@ -32,7 +32,7 @@ import org.sonar.ce.task.projectanalysis.measure.Measure;
 import org.sonar.ce.task.projectanalysis.measure.MeasureRepository;
 import org.sonar.ce.task.projectanalysis.metric.Metric;
 import org.sonar.ce.task.projectanalysis.metric.MetricRepository;
-import org.sonar.server.computation.task.step.ComputationStep;
+import org.sonar.ce.task.step.ComputationStep;
 import org.sonar.server.qualityprofile.QPMeasureData;
 import org.sonar.server.qualityprofile.QualityProfile;
 
index 26cd17354a8c08a557c8d982561e20744615a7bb..d71f253ac4def4f1f0c9c6d0e8d6292f01e2d20e 100644 (file)
@@ -21,12 +21,6 @@ package org.sonar.ce.task.projectanalysis.step;
 
 import com.google.common.collect.ImmutableList;
 import org.sonar.ce.task.projectanalysis.component.PathAwareCrawler;
-import org.sonar.ce.task.projectanalysis.formula.Formula;
-import org.sonar.ce.task.projectanalysis.formula.FormulaExecutorComponentVisitor;
-import org.sonar.ce.task.projectanalysis.formula.coverage.LinesAndConditionsWithUncoveredFormula;
-import org.sonar.ce.task.projectanalysis.formula.coverage.SingleWithUncoveredMetricKeys;
-import org.sonar.ce.task.projectanalysis.metric.MetricRepository;
-import org.sonar.ce.task.projectanalysis.component.PathAwareCrawler;
 import org.sonar.ce.task.projectanalysis.component.TreeRootHolder;
 import org.sonar.ce.task.projectanalysis.formula.Formula;
 import org.sonar.ce.task.projectanalysis.formula.FormulaExecutorComponentVisitor;
@@ -36,7 +30,7 @@ import org.sonar.ce.task.projectanalysis.formula.coverage.SingleWithUncoveredFor
 import org.sonar.ce.task.projectanalysis.formula.coverage.SingleWithUncoveredMetricKeys;
 import org.sonar.ce.task.projectanalysis.measure.MeasureRepository;
 import org.sonar.ce.task.projectanalysis.metric.MetricRepository;
-import org.sonar.server.computation.task.step.ComputationStep;
+import org.sonar.ce.task.step.ComputationStep;
 
 import static org.sonar.api.measures.CoreMetrics.BRANCH_COVERAGE_KEY;
 import static org.sonar.api.measures.CoreMetrics.CONDITIONS_TO_COVER_KEY;
index c3a18db9121ce631a9b494057c7e63e0005c9dbf..384f7768b7f264b17ff551a33c46abc9bc15af7c 100644 (file)
@@ -24,15 +24,6 @@ import java.util.List;
 import org.apache.commons.lang.math.NumberUtils;
 import org.sonar.ce.task.projectanalysis.component.Component;
 import org.sonar.ce.task.projectanalysis.component.ComponentVisitor;
-import org.sonar.ce.task.projectanalysis.component.DepthTraversalTypeAwareCrawler;
-import org.sonar.ce.task.projectanalysis.component.TypeAwareVisitorAdapter;
-import org.sonar.ce.task.projectanalysis.metric.Metric;
-import org.sonar.ce.task.projectanalysis.metric.MetricRepository;
-import org.sonar.db.DbClient;
-import org.sonar.db.DbSession;
-import org.sonar.db.measure.custom.CustomMeasureDto;
-import org.sonar.ce.task.projectanalysis.component.Component;
-import org.sonar.ce.task.projectanalysis.component.ComponentVisitor;
 import org.sonar.ce.task.projectanalysis.component.CrawlerDepthLimit;
 import org.sonar.ce.task.projectanalysis.component.DepthTraversalTypeAwareCrawler;
 import org.sonar.ce.task.projectanalysis.component.TreeRootHolder;
@@ -41,7 +32,10 @@ import org.sonar.ce.task.projectanalysis.measure.Measure;
 import org.sonar.ce.task.projectanalysis.measure.MeasureRepository;
 import org.sonar.ce.task.projectanalysis.metric.Metric;
 import org.sonar.ce.task.projectanalysis.metric.MetricRepository;
-import org.sonar.server.computation.task.step.ComputationStep;
+import org.sonar.ce.task.step.ComputationStep;
+import org.sonar.db.DbClient;
+import org.sonar.db.DbSession;
+import org.sonar.db.measure.custom.CustomMeasureDto;
 
 public class CustomMeasuresCopyStep implements ComputationStep {
 
index da30c091d092668dcecba26f754f7f5c824859d3..5c8d046ee282c8218403c185e1a15df3a13085b7 100644 (file)
@@ -22,9 +22,7 @@ package org.sonar.ce.task.projectanalysis.step;
 import java.sql.SQLException;
 import org.sonar.ce.task.projectanalysis.dbmigration.ProjectAnalysisDataChange;
 import org.sonar.ce.task.projectanalysis.dbmigration.ProjectAnalysisDataChanges;
-import org.sonar.ce.task.projectanalysis.dbmigration.ProjectAnalysisDataChange;
-import org.sonar.ce.task.projectanalysis.dbmigration.ProjectAnalysisDataChanges;
-import org.sonar.server.computation.task.step.ComputationStep;
+import org.sonar.ce.task.step.ComputationStep;
 
 public class DbMigrationsStep implements ComputationStep {
   private final ProjectAnalysisDataChanges dataChanges;
index 0f6d2da8ffa4f6c750eaebd1cc6cc2c8304aac8d..2519f093343f2200bdcab7086a44b181cd2e99a0 100644 (file)
@@ -36,7 +36,7 @@ import org.sonar.ce.task.projectanalysis.measure.Measure;
 import org.sonar.ce.task.projectanalysis.measure.MeasureRepository;
 import org.sonar.ce.task.projectanalysis.metric.Metric;
 import org.sonar.ce.task.projectanalysis.metric.MetricRepository;
-import org.sonar.server.computation.task.step.ComputationStep;
+import org.sonar.ce.task.step.ComputationStep;
 
 import static com.google.common.collect.Iterables.isEmpty;
 import static org.sonar.api.measures.CoreMetrics.DUPLICATIONS_DATA_KEY;
index ec8b797a0b52c88d30a235e415903755611a5b25..1f4c8077c595276863cd7dd67880085d527715ac 100644 (file)
@@ -21,7 +21,7 @@ package org.sonar.ce.task.projectanalysis.step;
 
 import org.sonar.api.measures.CoreMetrics;
 import org.sonar.ce.task.projectanalysis.duplication.DuplicationMeasures;
-import org.sonar.server.computation.task.step.ComputationStep;
+import org.sonar.ce.task.step.ComputationStep;
 
 /**
  * Computes duplication measures on files and then aggregates them on higher components.
index c29701921e4e79dc82195e9bf67db13b77de77b2..25ea4fa86f132e91bc97fdc1a68492e5456c19cb 100644 (file)
  */
 package org.sonar.ce.task.projectanalysis.step;
 
-import org.sonar.ce.task.projectanalysis.component.Component;
-import org.sonar.db.DbClient;
-import org.sonar.db.DbSession;
 import org.sonar.ce.task.projectanalysis.analysis.AnalysisMetadataHolder;
 import org.sonar.ce.task.projectanalysis.component.Component;
 import org.sonar.ce.task.projectanalysis.component.TreeRootHolder;
-import org.sonar.server.computation.task.step.ComputationStep;
+import org.sonar.ce.task.step.ComputationStep;
+import org.sonar.db.DbClient;
+import org.sonar.db.DbSession;
 
 public class EnableAnalysisStep implements ComputationStep {
 
index f656553cbe2461969cc259d063d6fe0937ecf10a..c854d394fde7937e1de6d32fe3b2925b622458e6 100644 (file)
@@ -24,11 +24,9 @@ import java.util.Map;
 import org.sonar.api.utils.log.Logger;
 import org.sonar.api.utils.log.Loggers;
 import org.sonar.ce.task.projectanalysis.component.ComponentVisitor;
-import org.sonar.ce.task.projectanalysis.component.VisitorsCrawler;
-import org.sonar.ce.task.projectanalysis.component.ComponentVisitor;
 import org.sonar.ce.task.projectanalysis.component.TreeRootHolder;
 import org.sonar.ce.task.projectanalysis.component.VisitorsCrawler;
-import org.sonar.server.computation.task.step.ComputationStep;
+import org.sonar.ce.task.step.ComputationStep;
 
 public class ExecuteVisitorsStep implements ComputationStep {
 
index 339aa1b1c9644865e79f2d2602c5eeba31e0bb79..3ea69a18b204fe884b305efd16d955ffab4f924f 100644 (file)
@@ -27,12 +27,12 @@ import java.util.Optional;
 import org.sonar.api.utils.MessageException;
 import org.sonar.api.utils.TempFolder;
 import org.sonar.api.utils.ZipUtils;
-import org.sonar.server.computation.CeTask;
+import org.sonar.ce.task.CeTask;
+import org.sonar.ce.task.projectanalysis.batch.MutableBatchReportDirectoryHolder;
+import org.sonar.ce.task.step.ComputationStep;
 import org.sonar.db.DbClient;
 import org.sonar.db.DbSession;
 import org.sonar.db.ce.CeTaskInputDao;
-import org.sonar.ce.task.projectanalysis.batch.MutableBatchReportDirectoryHolder;
-import org.sonar.server.computation.task.step.ComputationStep;
 
 /**
  * Extracts the content zip file of the {@link CeTask} to a temp directory and adds a {@link File}
index cd4630aa88383de7bae325a90fee6f4cb3460659..c52167f89059a13893ccd882efb2e8dc94d3f1f0 100644 (file)
@@ -19,9 +19,9 @@
  */
 package org.sonar.ce.task.projectanalysis.step;
 
-import org.sonar.core.util.UuidFactory;
 import org.sonar.ce.task.projectanalysis.analysis.MutableAnalysisMetadataHolder;
-import org.sonar.server.computation.task.step.ComputationStep;
+import org.sonar.ce.task.step.ComputationStep;
+import org.sonar.core.util.UuidFactory;
 
 public class GenerateAnalysisUuid implements ComputationStep {
 
index 6f61c99023016dbb03e7fd693ff78581e74782af..7139d68755cdc2794f830f307e41f5e7270c7841 100644 (file)
@@ -22,7 +22,7 @@ package org.sonar.ce.task.projectanalysis.step;
 import org.sonar.api.utils.log.Logger;
 import org.sonar.api.utils.log.Loggers;
 import org.sonar.ce.task.projectanalysis.component.TreeRootHolder;
-import org.sonar.server.computation.task.step.ComputationStep;
+import org.sonar.ce.task.step.ComputationStep;
 import org.sonar.server.es.ProjectIndexer;
 
 public class IndexAnalysisStep implements ComputationStep {
index 7bae369216b15fa964acaa83e51034ff574459ea..81b0bb7c595b4866eef1174d74386919915de54f 100644 (file)
@@ -31,13 +31,6 @@ import org.sonar.api.measures.CoreMetrics;
 import org.sonar.api.utils.KeyValueFormat;
 import org.sonar.ce.task.projectanalysis.component.Component;
 import org.sonar.ce.task.projectanalysis.component.PathAwareCrawler;
-import org.sonar.ce.task.projectanalysis.formula.Counter;
-import org.sonar.ce.task.projectanalysis.formula.CreateMeasureContext;
-import org.sonar.ce.task.projectanalysis.formula.Formula;
-import org.sonar.ce.task.projectanalysis.formula.FormulaExecutorComponentVisitor;
-import org.sonar.ce.task.projectanalysis.metric.MetricRepository;
-import org.sonar.ce.task.projectanalysis.component.Component;
-import org.sonar.ce.task.projectanalysis.component.PathAwareCrawler;
 import org.sonar.ce.task.projectanalysis.component.TreeRootHolder;
 import org.sonar.ce.task.projectanalysis.formula.Counter;
 import org.sonar.ce.task.projectanalysis.formula.CounterInitializationContext;
@@ -47,7 +40,7 @@ import org.sonar.ce.task.projectanalysis.formula.FormulaExecutorComponentVisitor
 import org.sonar.ce.task.projectanalysis.measure.Measure;
 import org.sonar.ce.task.projectanalysis.measure.MeasureRepository;
 import org.sonar.ce.task.projectanalysis.metric.MetricRepository;
-import org.sonar.server.computation.task.step.ComputationStep;
+import org.sonar.ce.task.step.ComputationStep;
 
 import static com.google.common.collect.Maps.asMap;
 import static org.sonar.api.measures.CoreMetrics.NCLOC_LANGUAGE_DISTRIBUTION_KEY;
index 033dbac937dad8517c0302014b0776fc3f1721f5..9fac502e6d90791f14c220be681cb8905c1c8dc6 100644 (file)
@@ -25,11 +25,17 @@ import java.util.List;
 import javax.annotation.Nonnull;
 import org.sonar.api.utils.log.Logger;
 import org.sonar.api.utils.log.Loggers;
+import org.sonar.ce.task.projectanalysis.analysis.Analysis;
+import org.sonar.ce.task.projectanalysis.analysis.AnalysisMetadataHolder;
+import org.sonar.ce.task.projectanalysis.batch.BatchReportReader;
 import org.sonar.ce.task.projectanalysis.component.Component;
+import org.sonar.ce.task.projectanalysis.component.CrawlerDepthLimit;
 import org.sonar.ce.task.projectanalysis.component.DepthTraversalTypeAwareCrawler;
+import org.sonar.ce.task.projectanalysis.component.TreeRootHolder;
 import org.sonar.ce.task.projectanalysis.component.TypeAwareVisitorAdapter;
 import org.sonar.ce.task.projectanalysis.duplication.CrossProjectDuplicationStatusHolder;
 import org.sonar.ce.task.projectanalysis.duplication.IntegrateCrossProjectDuplications;
+import org.sonar.ce.task.step.ComputationStep;
 import org.sonar.core.util.CloseableIterator;
 import org.sonar.db.DbClient;
 import org.sonar.db.DbSession;
@@ -37,21 +43,9 @@ import org.sonar.db.duplication.DuplicationUnitDto;
 import org.sonar.duplications.block.Block;
 import org.sonar.duplications.block.ByteArray;
 import org.sonar.scanner.protocol.output.ScannerReport.CpdTextBlock;
-import org.sonar.ce.task.projectanalysis.analysis.AnalysisMetadataHolder;
-import org.sonar.ce.task.projectanalysis.batch.BatchReportReader;
-import org.sonar.ce.task.projectanalysis.component.Component;
-import org.sonar.ce.task.projectanalysis.component.CrawlerDepthLimit;
-import org.sonar.ce.task.projectanalysis.component.DepthTraversalTypeAwareCrawler;
-import org.sonar.ce.task.projectanalysis.component.TreeRootHolder;
-import org.sonar.ce.task.projectanalysis.component.TypeAwareVisitorAdapter;
-import org.sonar.ce.task.projectanalysis.duplication.CrossProjectDuplicationStatusHolder;
-import org.sonar.ce.task.projectanalysis.duplication.IntegrateCrossProjectDuplications;
-import org.sonar.ce.task.projectanalysis.analysis.Analysis;
-import org.sonar.server.computation.task.step.ComputationStep;
 
 import static com.google.common.collect.FluentIterable.from;
 import static com.google.common.collect.Lists.newArrayList;
-import static org.sonar.ce.task.projectanalysis.component.ComponentVisitor.Order.PRE_ORDER;
 
 /**
  * Feed the duplications repository from the cross project duplication blocks computed with duplications blocks of the analysis report.
index 20e1e32f2e652c5bdba3bc992a4ebf70d227fd1f..13921b17ffe90e9187a2261afd226ed7eec77d36 100644 (file)
@@ -21,21 +21,9 @@ package org.sonar.ce.task.projectanalysis.step;
 
 import com.google.common.base.Function;
 import javax.annotation.Nonnull;
-import org.sonar.ce.task.projectanalysis.component.Component;
-import org.sonar.ce.task.projectanalysis.component.ComponentVisitor;
-import org.sonar.ce.task.projectanalysis.component.DepthTraversalTypeAwareCrawler;
-import org.sonar.ce.task.projectanalysis.component.TypeAwareVisitorAdapter;
-import org.sonar.ce.task.projectanalysis.duplication.DetailedTextBlock;
-import org.sonar.ce.task.projectanalysis.duplication.Duplicate;
-import org.sonar.ce.task.projectanalysis.duplication.Duplication;
-import org.sonar.ce.task.projectanalysis.duplication.DuplicationRepository;
-import org.sonar.ce.task.projectanalysis.duplication.InProjectDuplicate;
-import org.sonar.ce.task.projectanalysis.duplication.InnerDuplicate;
-import org.sonar.ce.task.projectanalysis.duplication.TextBlock;
-import org.sonar.core.util.CloseableIterator;
-import org.sonar.scanner.protocol.output.ScannerReport;
 import org.sonar.ce.task.projectanalysis.batch.BatchReportReader;
 import org.sonar.ce.task.projectanalysis.component.Component;
+import org.sonar.ce.task.projectanalysis.component.ComponentVisitor;
 import org.sonar.ce.task.projectanalysis.component.CrawlerDepthLimit;
 import org.sonar.ce.task.projectanalysis.component.DepthTraversalTypeAwareCrawler;
 import org.sonar.ce.task.projectanalysis.component.TreeRootHolder;
@@ -47,11 +35,12 @@ import org.sonar.ce.task.projectanalysis.duplication.DuplicationRepository;
 import org.sonar.ce.task.projectanalysis.duplication.InProjectDuplicate;
 import org.sonar.ce.task.projectanalysis.duplication.InnerDuplicate;
 import org.sonar.ce.task.projectanalysis.duplication.TextBlock;
-import org.sonar.server.computation.task.step.ComputationStep;
+import org.sonar.ce.task.step.ComputationStep;
+import org.sonar.core.util.CloseableIterator;
+import org.sonar.scanner.protocol.output.ScannerReport;
 
 import static com.google.common.base.Preconditions.checkArgument;
 import static com.google.common.collect.FluentIterable.from;
-import static org.sonar.ce.task.projectanalysis.component.ComponentVisitor.Order.POST_ORDER;
 
 /**
  * Loads duplication information from the report and loads them into the {@link DuplicationRepository}.
index 93a47e3305bbc1875364bd030c3b9d017bcb0827..d82c3ca07d39cde59390ae08987fd16cbc5768a6 100644 (file)
@@ -38,10 +38,8 @@ import org.sonar.api.measures.Metrics;
 import org.sonar.api.utils.dag.DirectAcyclicGraph;
 import org.sonar.ce.task.projectanalysis.api.measurecomputer.MeasureComputerDefinitionImpl;
 import org.sonar.ce.task.projectanalysis.api.measurecomputer.MeasureComputerWrapper;
-import org.sonar.ce.task.projectanalysis.api.measurecomputer.MeasureComputerDefinitionImpl;
-import org.sonar.ce.task.projectanalysis.api.measurecomputer.MeasureComputerWrapper;
 import org.sonar.ce.task.projectanalysis.measure.MutableMeasureComputersHolder;
-import org.sonar.server.computation.task.step.ComputationStep;
+import org.sonar.ce.task.step.ComputationStep;
 
 import static com.google.common.base.Preconditions.checkState;
 import static com.google.common.collect.FluentIterable.from;
index dfb579f926f2197448b3b5fb4681a21dc9dd362f..2a308af44d386512f2a971f885ac9f54554b4db2 100644 (file)
@@ -22,30 +22,21 @@ package org.sonar.ce.task.projectanalysis.step;
 import com.google.common.base.Optional;
 import javax.annotation.CheckForNull;
 import org.sonar.api.config.Configuration;
+import org.sonar.ce.task.projectanalysis.analysis.AnalysisMetadataHolder;
 import org.sonar.ce.task.projectanalysis.component.Component;
 import org.sonar.ce.task.projectanalysis.component.ComponentVisitor;
 import org.sonar.ce.task.projectanalysis.component.ConfigurationRepository;
+import org.sonar.ce.task.projectanalysis.component.CrawlerDepthLimit;
 import org.sonar.ce.task.projectanalysis.component.DepthTraversalTypeAwareCrawler;
+import org.sonar.ce.task.projectanalysis.component.TreeRootHolder;
 import org.sonar.ce.task.projectanalysis.component.TypeAwareVisitorAdapter;
 import org.sonar.ce.task.projectanalysis.period.Period;
 import org.sonar.ce.task.projectanalysis.period.PeriodHolder;
 import org.sonar.ce.task.projectanalysis.period.PeriodHolderImpl;
+import org.sonar.ce.task.step.ComputationStep;
 import org.sonar.db.DbClient;
 import org.sonar.db.DbSession;
 import org.sonar.db.component.ComponentDto;
-import org.sonar.ce.task.projectanalysis.analysis.AnalysisMetadataHolder;
-import org.sonar.ce.task.projectanalysis.component.Component;
-import org.sonar.ce.task.projectanalysis.component.ConfigurationRepository;
-import org.sonar.ce.task.projectanalysis.component.CrawlerDepthLimit;
-import org.sonar.ce.task.projectanalysis.component.DepthTraversalTypeAwareCrawler;
-import org.sonar.ce.task.projectanalysis.component.TreeRootHolder;
-import org.sonar.ce.task.projectanalysis.component.TypeAwareVisitorAdapter;
-import org.sonar.ce.task.projectanalysis.period.Period;
-import org.sonar.ce.task.projectanalysis.period.PeriodHolder;
-import org.sonar.ce.task.projectanalysis.period.PeriodHolderImpl;
-import org.sonar.server.computation.task.step.ComputationStep;
-
-import static org.sonar.ce.task.projectanalysis.component.ComponentVisitor.Order.PRE_ORDER;
 
 /**
  * Populates the {@link PeriodHolder}
index 2309369b692bce1882578925cbe4ac1d708570c1..7e0c7521ef24263f022f052625a60c90a5ad29f3 100644 (file)
@@ -21,16 +21,12 @@ package org.sonar.ce.task.projectanalysis.step;
 
 import java.util.Optional;
 import org.sonar.api.config.Configuration;
-import org.sonar.ce.task.projectanalysis.component.ConfigurationRepository;
-import org.sonar.ce.task.projectanalysis.qualitygate.MutableQualityGateHolder;
-import org.sonar.ce.task.projectanalysis.qualitygate.QualityGate;
-import org.sonar.ce.task.projectanalysis.qualitygate.QualityGateService;
 import org.sonar.ce.task.projectanalysis.analysis.AnalysisMetadataHolder;
 import org.sonar.ce.task.projectanalysis.component.ConfigurationRepository;
 import org.sonar.ce.task.projectanalysis.qualitygate.MutableQualityGateHolder;
 import org.sonar.ce.task.projectanalysis.qualitygate.QualityGate;
 import org.sonar.ce.task.projectanalysis.qualitygate.QualityGateService;
-import org.sonar.server.computation.task.step.ComputationStep;
+import org.sonar.ce.task.step.ComputationStep;
 import org.sonar.server.qualitygate.ShortLivingBranchQualityGate;
 
 import static org.apache.commons.lang.StringUtils.isBlank;
index d7e021b4c927a82c4d503787a9d92c09afd9304a..e07a9035bb17314395c728b72e828d44add7caa2 100644 (file)
@@ -26,18 +26,14 @@ import java.util.Map;
 import java.util.Optional;
 import org.sonar.api.rule.RuleKey;
 import org.sonar.api.rule.RuleStatus;
+import org.sonar.ce.task.projectanalysis.batch.BatchReportReader;
 import org.sonar.ce.task.projectanalysis.issue.Rule;
 import org.sonar.ce.task.projectanalysis.issue.RuleRepository;
 import org.sonar.ce.task.projectanalysis.qualityprofile.ActiveRule;
 import org.sonar.ce.task.projectanalysis.qualityprofile.ActiveRulesHolderImpl;
+import org.sonar.ce.task.step.ComputationStep;
 import org.sonar.core.util.CloseableIterator;
 import org.sonar.scanner.protocol.output.ScannerReport;
-import org.sonar.ce.task.projectanalysis.batch.BatchReportReader;
-import org.sonar.ce.task.projectanalysis.issue.Rule;
-import org.sonar.ce.task.projectanalysis.issue.RuleRepository;
-import org.sonar.ce.task.projectanalysis.qualityprofile.ActiveRule;
-import org.sonar.ce.task.projectanalysis.qualityprofile.ActiveRulesHolderImpl;
-import org.sonar.server.computation.task.step.ComputationStep;
 
 public class LoadQualityProfilesStep implements ComputationStep {
 
index ace3f49bc34e7ae3c1fd643ecc7dbc37aee07c9b..cdf158d8b096bb38c740c4fdab34437181478a9f 100644 (file)
@@ -27,8 +27,13 @@ import javax.annotation.CheckForNull;
 import javax.annotation.Nullable;
 import org.apache.commons.lang.StringUtils;
 import org.sonar.api.utils.MessageException;
-import org.sonar.server.computation.CeTask;
+import org.sonar.ce.task.CeTask;
+import org.sonar.ce.task.projectanalysis.analysis.MutableAnalysisMetadataHolder;
+import org.sonar.ce.task.projectanalysis.analysis.Organization;
+import org.sonar.ce.task.projectanalysis.analysis.ScannerPlugin;
+import org.sonar.ce.task.projectanalysis.batch.BatchReportReader;
 import org.sonar.ce.task.projectanalysis.component.BranchLoader;
+import org.sonar.ce.task.step.ComputationStep;
 import org.sonar.core.component.ComponentKeys;
 import org.sonar.core.platform.PluginRepository;
 import org.sonar.core.util.stream.MoreCollectors;
@@ -40,11 +45,6 @@ import org.sonar.db.qualityprofile.QProfileDto;
 import org.sonar.scanner.protocol.output.ScannerReport;
 import org.sonar.scanner.protocol.output.ScannerReport.Metadata.Plugin;
 import org.sonar.scanner.protocol.output.ScannerReport.Metadata.QProfile;
-import org.sonar.ce.task.projectanalysis.analysis.MutableAnalysisMetadataHolder;
-import org.sonar.ce.task.projectanalysis.analysis.Organization;
-import org.sonar.ce.task.projectanalysis.analysis.ScannerPlugin;
-import org.sonar.ce.task.projectanalysis.batch.BatchReportReader;
-import org.sonar.server.computation.task.step.ComputationStep;
 import org.sonar.server.organization.DefaultOrganizationProvider;
 import org.sonar.server.organization.OrganizationFlags;
 import org.sonar.server.project.Project;
index 09187f082ad5b2fb54fa1988189a009838851c63..21b8e70230747a4e3c8e7c8fe56fbf239a4118b7 100644 (file)
@@ -31,21 +31,6 @@ import javax.annotation.concurrent.Immutable;
 import org.apache.commons.lang.ObjectUtils;
 import org.sonar.api.measures.CoreMetrics;
 import org.sonar.api.utils.KeyValueFormat;
-import org.sonar.ce.task.projectanalysis.component.Component;
-import org.sonar.ce.task.projectanalysis.component.PathAwareCrawler;
-import org.sonar.ce.task.projectanalysis.formula.Counter;
-import org.sonar.ce.task.projectanalysis.formula.CreateMeasureContext;
-import org.sonar.ce.task.projectanalysis.formula.Formula;
-import org.sonar.ce.task.projectanalysis.formula.FormulaExecutorComponentVisitor;
-import org.sonar.ce.task.projectanalysis.formula.coverage.LinesAndConditionsWithUncoveredVariationFormula;
-import org.sonar.ce.task.projectanalysis.formula.coverage.SingleWithUncoveredMetricKeys;
-import org.sonar.ce.task.projectanalysis.formula.coverage.SingleWithUncoveredVariationFormula;
-import org.sonar.ce.task.projectanalysis.metric.Metric;
-import org.sonar.ce.task.projectanalysis.metric.MetricRepository;
-import org.sonar.ce.task.projectanalysis.period.Period;
-import org.sonar.ce.task.projectanalysis.period.PeriodHolder;
-import org.sonar.ce.task.projectanalysis.scm.ScmInfo;
-import org.sonar.ce.task.projectanalysis.scm.ScmInfoRepository;
 import org.sonar.ce.task.projectanalysis.batch.BatchReportReader;
 import org.sonar.ce.task.projectanalysis.component.Component;
 import org.sonar.ce.task.projectanalysis.component.PathAwareCrawler;
@@ -69,7 +54,7 @@ import org.sonar.ce.task.projectanalysis.period.Period;
 import org.sonar.ce.task.projectanalysis.period.PeriodHolder;
 import org.sonar.ce.task.projectanalysis.scm.ScmInfo;
 import org.sonar.ce.task.projectanalysis.scm.ScmInfoRepository;
-import org.sonar.server.computation.task.step.ComputationStep;
+import org.sonar.ce.task.step.ComputationStep;
 
 import static org.sonar.ce.task.projectanalysis.measure.Measure.newMeasureBuilder;
 
index 4ad3916da9f64ad6e036584e17b0144a77305e2e..278a0815d04ce26f4d9ec6369db61c608d2a5d76 100644 (file)
@@ -26,15 +26,6 @@ import java.util.Set;
 import java.util.stream.IntStream;
 import org.sonar.ce.task.projectanalysis.component.Component;
 import org.sonar.ce.task.projectanalysis.component.PathAwareCrawler;
-import org.sonar.ce.task.projectanalysis.duplication.Duplication;
-import org.sonar.ce.task.projectanalysis.duplication.DuplicationRepository;
-import org.sonar.ce.task.projectanalysis.duplication.InnerDuplicate;
-import org.sonar.ce.task.projectanalysis.duplication.TextBlock;
-import org.sonar.ce.task.projectanalysis.metric.MetricRepository;
-import org.sonar.ce.task.projectanalysis.period.Period;
-import org.sonar.ce.task.projectanalysis.period.PeriodHolder;
-import org.sonar.ce.task.projectanalysis.component.Component;
-import org.sonar.ce.task.projectanalysis.component.PathAwareCrawler;
 import org.sonar.ce.task.projectanalysis.component.TreeRootHolder;
 import org.sonar.ce.task.projectanalysis.duplication.Duplication;
 import org.sonar.ce.task.projectanalysis.duplication.DuplicationRepository;
@@ -54,7 +45,7 @@ import org.sonar.ce.task.projectanalysis.period.PeriodHolder;
 import org.sonar.ce.task.projectanalysis.scm.Changeset;
 import org.sonar.ce.task.projectanalysis.scm.ScmInfo;
 import org.sonar.ce.task.projectanalysis.scm.ScmInfoRepository;
-import org.sonar.server.computation.task.step.ComputationStep;
+import org.sonar.ce.task.step.ComputationStep;
 
 import static org.sonar.api.measures.CoreMetrics.NEW_BLOCKS_DUPLICATED_KEY;
 import static org.sonar.api.measures.CoreMetrics.NEW_DUPLICATED_LINES_DENSITY_KEY;
index 9aa11ec71b7d0f76fcfc73334e21203cb50b907a..00049703d70e936e905ed480f4e6f2f914abccfb 100644 (file)
@@ -21,13 +21,13 @@ package org.sonar.ce.task.projectanalysis.step;
 
 import java.util.ArrayList;
 import java.util.List;
+import org.sonar.ce.task.projectanalysis.analysis.AnalysisMetadataHolder;
+import org.sonar.ce.task.projectanalysis.batch.BatchReportReader;
+import org.sonar.ce.task.step.ComputationStep;
 import org.sonar.core.util.UuidFactory;
 import org.sonar.db.DbClient;
 import org.sonar.db.DbSession;
 import org.sonar.db.component.AnalysisPropertyDto;
-import org.sonar.ce.task.projectanalysis.analysis.AnalysisMetadataHolder;
-import org.sonar.ce.task.projectanalysis.batch.BatchReportReader;
-import org.sonar.server.computation.task.step.ComputationStep;
 
 import static org.sonar.core.config.CorePropertyDefinitions.SONAR_ANALYSIS;
 
index fb8bf05fe8e5e3abc77ca9cea2fb4f8a6c68b3e2..696707b188ff707a9bf48667d5298f5f4afb93dd 100644 (file)
 package org.sonar.ce.task.projectanalysis.step;
 
 import org.sonar.api.utils.System2;
-import org.sonar.ce.task.projectanalysis.component.Component;
-import org.sonar.ce.task.projectanalysis.component.DepthTraversalTypeAwareCrawler;
-import org.sonar.ce.task.projectanalysis.component.TypeAwareVisitorAdapter;
-import org.sonar.ce.task.projectanalysis.period.Period;
-import org.sonar.ce.task.projectanalysis.period.PeriodHolder;
-import org.sonar.db.DbClient;
-import org.sonar.db.DbSession;
-import org.sonar.db.component.SnapshotDto;
 import org.sonar.ce.task.projectanalysis.analysis.AnalysisMetadataHolder;
 import org.sonar.ce.task.projectanalysis.component.Component;
 import org.sonar.ce.task.projectanalysis.component.CrawlerDepthLimit;
@@ -36,7 +28,10 @@ import org.sonar.ce.task.projectanalysis.component.TreeRootHolder;
 import org.sonar.ce.task.projectanalysis.component.TypeAwareVisitorAdapter;
 import org.sonar.ce.task.projectanalysis.period.Period;
 import org.sonar.ce.task.projectanalysis.period.PeriodHolder;
-import org.sonar.server.computation.task.step.ComputationStep;
+import org.sonar.ce.task.step.ComputationStep;
+import org.sonar.db.DbClient;
+import org.sonar.db.DbSession;
+import org.sonar.db.component.SnapshotDto;
 
 /**
  * Persist analysis
index c4c47bff7e3d76789d33955ccc41672bb1ab2756..7abaece8c4375e7ad45dcb864e4cbadf2cc9a092 100644 (file)
@@ -46,12 +46,12 @@ import org.sonar.ce.task.projectanalysis.component.PathAwareCrawler;
 import org.sonar.ce.task.projectanalysis.component.PathAwareVisitor;
 import org.sonar.ce.task.projectanalysis.component.PathAwareVisitorAdapter;
 import org.sonar.ce.task.projectanalysis.component.TreeRootHolder;
+import org.sonar.ce.task.step.ComputationStep;
 import org.sonar.core.util.stream.MoreCollectors;
 import org.sonar.db.DbClient;
 import org.sonar.db.DbSession;
 import org.sonar.db.component.ComponentDto;
 import org.sonar.db.component.ComponentUpdateDto;
-import org.sonar.server.computation.task.step.ComputationStep;
 
 import static com.google.common.collect.FluentIterable.from;
 import static java.util.Optional.ofNullable;
index 183347f27cf22648ebb944473c3c148c2dfa20ff..2c0da8b53510e9d107c2d14da1ed7bdb9f709990 100644 (file)
@@ -27,12 +27,12 @@ import org.sonar.ce.task.projectanalysis.component.DepthTraversalTypeAwareCrawle
 import org.sonar.ce.task.projectanalysis.component.TreeRootHolder;
 import org.sonar.ce.task.projectanalysis.component.TypeAwareVisitorAdapter;
 import org.sonar.ce.task.projectanalysis.duplication.CrossProjectDuplicationStatusHolder;
+import org.sonar.ce.task.step.ComputationStep;
 import org.sonar.core.util.CloseableIterator;
 import org.sonar.db.DbClient;
 import org.sonar.db.DbSession;
 import org.sonar.db.duplication.DuplicationUnitDto;
 import org.sonar.scanner.protocol.output.ScannerReport;
-import org.sonar.server.computation.task.step.ComputationStep;
 
 import static org.sonar.ce.task.projectanalysis.component.ComponentVisitor.Order.PRE_ORDER;
 
index 3f5742251717056399840a7e5e439eb2baca9f22..4107d1cebaa27821f7442e0b69e2b1b5dc834de4 100644 (file)
@@ -24,13 +24,6 @@ import java.util.function.Function;
 import java.util.stream.Collectors;
 import java.util.stream.StreamSupport;
 import org.sonar.api.utils.System2;
-import org.sonar.ce.task.projectanalysis.component.Component;
-import org.sonar.ce.task.projectanalysis.component.DepthTraversalTypeAwareCrawler;
-import org.sonar.ce.task.projectanalysis.component.TypeAwareVisitorAdapter;
-import org.sonar.core.util.UuidFactory;
-import org.sonar.db.DbClient;
-import org.sonar.db.DbSession;
-import org.sonar.db.event.EventDto;
 import org.sonar.ce.task.projectanalysis.analysis.AnalysisMetadataHolder;
 import org.sonar.ce.task.projectanalysis.component.Component;
 import org.sonar.ce.task.projectanalysis.component.CrawlerDepthLimit;
@@ -39,7 +32,11 @@ import org.sonar.ce.task.projectanalysis.component.TreeRootHolder;
 import org.sonar.ce.task.projectanalysis.component.TypeAwareVisitorAdapter;
 import org.sonar.ce.task.projectanalysis.event.Event;
 import org.sonar.ce.task.projectanalysis.event.EventRepository;
-import org.sonar.server.computation.task.step.ComputationStep;
+import org.sonar.ce.task.step.ComputationStep;
+import org.sonar.core.util.UuidFactory;
+import org.sonar.db.DbClient;
+import org.sonar.db.DbSession;
+import org.sonar.db.event.EventDto;
 
 public class PersistEventsStep implements ComputationStep {
 
index b672e40996d832a13d0877e5a593bb9203c977d2..3ebc3be6a4937c8913727a802229ed06d734f0e0 100644 (file)
 package org.sonar.ce.task.projectanalysis.step;
 
 import org.sonar.ce.task.projectanalysis.issue.RuleRepository;
+import org.sonar.ce.task.step.ComputationStep;
 import org.sonar.db.DbClient;
 import org.sonar.db.DbSession;
-import org.sonar.ce.task.projectanalysis.issue.RuleRepository;
-import org.sonar.server.computation.task.step.ComputationStep;
 
 public class PersistExternalRulesStep implements ComputationStep {
 
index 5c836c67dc189c633be71bd3b9c7a5321be93cf1..e743dc9516b08e54edadef0bb3680c5944f91cbd 100644 (file)
@@ -51,6 +51,7 @@ import org.sonar.ce.task.projectanalysis.source.linereader.LineReader;
 import org.sonar.ce.task.projectanalysis.source.linereader.RangeOffsetConverter;
 import org.sonar.ce.task.projectanalysis.source.linereader.ScmLineReader;
 import org.sonar.ce.task.projectanalysis.source.linereader.SymbolsLineReader;
+import org.sonar.ce.task.step.ComputationStep;
 import org.sonar.core.util.CloseableIterator;
 import org.sonar.db.DbClient;
 import org.sonar.db.DbSession;
@@ -58,7 +59,6 @@ import org.sonar.db.protobuf.DbFileSources;
 import org.sonar.db.source.FileSourceDto;
 import org.sonar.db.source.FileSourceDto.Type;
 import org.sonar.scanner.protocol.output.ScannerReport;
-import org.sonar.server.computation.task.step.ComputationStep;
 
 import static org.sonar.ce.task.projectanalysis.component.ComponentVisitor.Order.PRE_ORDER;
 
index 6c6acff2867e9d8884ccf0830ab03660e2574810..3d843d964bf111630111cbc9f2b09534e786ebb1 100644 (file)
@@ -23,6 +23,7 @@ import org.sonar.api.utils.System2;
 import org.sonar.ce.task.projectanalysis.issue.IssueCache;
 import org.sonar.ce.task.projectanalysis.issue.RuleRepository;
 import org.sonar.ce.task.projectanalysis.issue.UpdateConflictResolver;
+import org.sonar.ce.task.step.ComputationStep;
 import org.sonar.core.issue.DefaultIssue;
 import org.sonar.core.util.CloseableIterator;
 import org.sonar.db.DbClient;
@@ -30,10 +31,6 @@ import org.sonar.db.DbSession;
 import org.sonar.db.issue.IssueChangeMapper;
 import org.sonar.db.issue.IssueDto;
 import org.sonar.db.issue.IssueMapper;
-import org.sonar.ce.task.projectanalysis.issue.IssueCache;
-import org.sonar.ce.task.projectanalysis.issue.RuleRepository;
-import org.sonar.ce.task.projectanalysis.issue.UpdateConflictResolver;
-import org.sonar.server.computation.task.step.ComputationStep;
 import org.sonar.server.issue.IssueStorage;
 
 public class PersistIssuesStep implements ComputationStep {
index 2d3c3a87c30e0d5eecaccb43bbd4ebc2767fc417..f8dd0c70bb0b238b3e4c7e06f17a081c543aefee 100644 (file)
@@ -38,12 +38,12 @@ import org.sonar.ce.task.projectanalysis.measure.MeasureRepository;
 import org.sonar.ce.task.projectanalysis.measure.MeasureToMeasureDto;
 import org.sonar.ce.task.projectanalysis.metric.Metric;
 import org.sonar.ce.task.projectanalysis.metric.MetricRepository;
+import org.sonar.ce.task.step.ComputationStep;
 import org.sonar.core.util.Uuids;
 import org.sonar.db.DbClient;
 import org.sonar.db.DbSession;
 import org.sonar.db.measure.LiveMeasureDao;
 import org.sonar.db.measure.LiveMeasureDto;
-import org.sonar.server.computation.task.step.ComputationStep;
 
 import static java.util.Arrays.asList;
 import static java.util.Collections.unmodifiableSet;
index f4f9b5ed5aa26755a710c7cd369444643c1fa040..a65030af84b3d487be04701260ab3e21230fcc9c 100644 (file)
@@ -36,12 +36,12 @@ import org.sonar.ce.task.projectanalysis.measure.MeasureRepository;
 import org.sonar.ce.task.projectanalysis.measure.MeasureToMeasureDto;
 import org.sonar.ce.task.projectanalysis.metric.Metric;
 import org.sonar.ce.task.projectanalysis.metric.MetricRepository;
+import org.sonar.ce.task.step.ComputationStep;
 import org.sonar.core.config.PurgeConstants;
 import org.sonar.db.DbClient;
 import org.sonar.db.DbSession;
 import org.sonar.db.measure.MeasureDao;
 import org.sonar.db.measure.MeasureDto;
-import org.sonar.server.computation.task.step.ComputationStep;
 
 import static org.sonar.ce.task.projectanalysis.component.ComponentVisitor.Order.PRE_ORDER;
 
index 9f0cfc618047221c7178f8667dc2507dc48c893c..6bd943aac3b7c6452ff59f80163f6b206e01ac1c 100644 (file)
@@ -25,18 +25,17 @@ import java.util.List;
 import java.util.Map;
 import java.util.Optional;
 import java.util.Set;
+import org.sonar.ce.task.projectanalysis.analysis.AnalysisMetadataHolder;
+import org.sonar.ce.task.projectanalysis.batch.BatchReportReader;
 import org.sonar.ce.task.projectanalysis.component.Component;
+import org.sonar.ce.task.projectanalysis.component.TreeRootHolder;
+import org.sonar.ce.task.step.ComputationStep;
 import org.sonar.core.util.UuidFactory;
 import org.sonar.db.DbClient;
 import org.sonar.db.DbSession;
 import org.sonar.db.component.ProjectLinkDto;
 import org.sonar.scanner.protocol.output.ScannerReport;
 import org.sonar.scanner.protocol.output.ScannerReport.ComponentLink.ComponentLinkType;
-import org.sonar.ce.task.projectanalysis.analysis.AnalysisMetadataHolder;
-import org.sonar.ce.task.projectanalysis.batch.BatchReportReader;
-import org.sonar.ce.task.projectanalysis.component.Component;
-import org.sonar.ce.task.projectanalysis.component.TreeRootHolder;
-import org.sonar.server.computation.task.step.ComputationStep;
 
 import static com.google.common.base.Preconditions.checkArgument;
 
index 18af9f117b30cd7d8b47fb6e6ee58e0d1e43df08..37a22511cf4bb4e6b0146c596845c935a1c2c765 100644 (file)
  */
 package org.sonar.ce.task.projectanalysis.step;
 
-import org.sonar.server.computation.CeTask;
+import org.sonar.ce.task.CeTask;
+import org.sonar.ce.task.projectanalysis.batch.BatchReportReader;
+import org.sonar.ce.task.step.ComputationStep;
 import org.sonar.core.util.CloseableIterator;
 import org.sonar.db.DbClient;
 import org.sonar.db.DbSession;
-import org.sonar.ce.task.projectanalysis.batch.BatchReportReader;
-import org.sonar.server.computation.task.step.ComputationStep;
 
 import static java.util.Collections.singleton;
 
index 3fb9fb410aa6f3c70086134060d6c0028dbec0d4..0135404606b4c68051e7702d612649a41eaeab5d 100644 (file)
@@ -35,10 +35,14 @@ import java.util.Set;
 import org.sonar.api.utils.System2;
 import org.sonar.api.utils.log.Logger;
 import org.sonar.api.utils.log.Loggers;
+import org.sonar.ce.task.projectanalysis.batch.BatchReportReader;
 import org.sonar.ce.task.projectanalysis.component.Component;
 import org.sonar.ce.task.projectanalysis.component.ComponentVisitor;
+import org.sonar.ce.task.projectanalysis.component.CrawlerDepthLimit;
 import org.sonar.ce.task.projectanalysis.component.DepthTraversalTypeAwareCrawler;
+import org.sonar.ce.task.projectanalysis.component.TreeRootHolder;
 import org.sonar.ce.task.projectanalysis.component.TypeAwareVisitorAdapter;
+import org.sonar.ce.task.step.ComputationStep;
 import org.sonar.core.util.CloseableIterator;
 import org.sonar.core.util.Uuids;
 import org.sonar.db.DbClient;
@@ -48,14 +52,6 @@ import org.sonar.db.source.FileSourceDto;
 import org.sonar.db.source.FileSourceDto.Type;
 import org.sonar.scanner.protocol.output.ScannerReport;
 import org.sonar.scanner.protocol.output.ScannerReport.Test.TestStatus;
-import org.sonar.ce.task.projectanalysis.batch.BatchReportReader;
-import org.sonar.ce.task.projectanalysis.component.Component;
-import org.sonar.ce.task.projectanalysis.component.ComponentVisitor;
-import org.sonar.ce.task.projectanalysis.component.CrawlerDepthLimit;
-import org.sonar.ce.task.projectanalysis.component.DepthTraversalTypeAwareCrawler;
-import org.sonar.ce.task.projectanalysis.component.TreeRootHolder;
-import org.sonar.ce.task.projectanalysis.component.TypeAwareVisitorAdapter;
-import org.sonar.server.computation.task.step.ComputationStep;
 
 public class PersistTestsStep implements ComputationStep {
 
index 9f009138959c9d3f596ea23b9191899da4b56eb9..156d007e63f731d92533add34a2235d666344e88 100644 (file)
@@ -21,10 +21,10 @@ package org.sonar.ce.task.projectanalysis.step;
 
 import java.util.Optional;
 import javax.annotation.concurrent.Immutable;
-import org.sonar.server.computation.CeTaskResult;
+import org.sonar.ce.task.CeTaskResult;
 import org.sonar.ce.task.projectanalysis.analysis.AnalysisMetadataHolder;
-import org.sonar.server.computation.task.step.ComputationStep;
-import org.sonar.server.computation.taskprocessor.MutableTaskResultHolder;
+import org.sonar.ce.task.step.ComputationStep;
+import org.sonar.ce.taskprocessor.MutableTaskResultHolder;
 
 public class PublishTaskResultStep implements ComputationStep {
   private final MutableTaskResultHolder taskResultHolder;
index 0739d7cf267286d4f2afc13dbd53cf17020d9065..deed07a778bb3f47646ecb28db6fb6cbddc92116 100644 (file)
@@ -25,12 +25,6 @@ import org.sonar.api.measures.CoreMetrics;
 import org.sonar.api.notifications.Notification;
 import org.sonar.api.utils.log.Logger;
 import org.sonar.api.utils.log.Loggers;
-import org.sonar.ce.task.projectanalysis.component.Component;
-import org.sonar.ce.task.projectanalysis.component.ComponentVisitor;
-import org.sonar.ce.task.projectanalysis.component.DepthTraversalTypeAwareCrawler;
-import org.sonar.ce.task.projectanalysis.component.TypeAwareVisitorAdapter;
-import org.sonar.ce.task.projectanalysis.metric.Metric;
-import org.sonar.ce.task.projectanalysis.metric.MetricRepository;
 import org.sonar.ce.task.projectanalysis.analysis.AnalysisMetadataHolder;
 import org.sonar.ce.task.projectanalysis.analysis.Branch;
 import org.sonar.ce.task.projectanalysis.component.Component;
@@ -46,7 +40,7 @@ import org.sonar.ce.task.projectanalysis.measure.MeasureRepository;
 import org.sonar.ce.task.projectanalysis.measure.QualityGateStatus;
 import org.sonar.ce.task.projectanalysis.metric.Metric;
 import org.sonar.ce.task.projectanalysis.metric.MetricRepository;
-import org.sonar.server.computation.task.step.ComputationStep;
+import org.sonar.ce.task.step.ComputationStep;
 import org.sonar.server.notification.NotificationService;
 
 /**
index 8bae1bff76a351e5fe36305ca7754c49bf1999c2..a3e0e9ead5f96f0731a6af8196a339ccaa3c2e31 100644 (file)
@@ -53,8 +53,8 @@ import org.sonar.ce.task.projectanalysis.qualitygate.EvaluationResultTextConvert
 import org.sonar.ce.task.projectanalysis.qualitygate.MutableQualityGateStatusHolder;
 import org.sonar.ce.task.projectanalysis.qualitygate.QualityGate;
 import org.sonar.ce.task.projectanalysis.qualitygate.QualityGateHolder;
+import org.sonar.ce.task.step.ComputationStep;
 import org.sonar.core.util.stream.MoreCollectors;
-import org.sonar.server.computation.task.step.ComputationStep;
 
 import static com.google.common.collect.FluentIterable.from;
 import static java.lang.String.format;
index c8b947d85c68c4acbd1a6b1bccf76a9bd43c7292..7571450714adea6998a0bda8f621a51d040c6250 100644 (file)
@@ -40,8 +40,8 @@ import org.sonar.ce.task.projectanalysis.language.LanguageRepository;
 import org.sonar.ce.task.projectanalysis.measure.Measure;
 import org.sonar.ce.task.projectanalysis.measure.MeasureRepository;
 import org.sonar.ce.task.projectanalysis.metric.MetricRepository;
+import org.sonar.ce.task.step.ComputationStep;
 import org.sonar.core.util.UtcDateUtils;
-import org.sonar.server.computation.task.step.ComputationStep;
 import org.sonar.server.qualityprofile.QPMeasureData;
 import org.sonar.server.qualityprofile.QualityProfile;
 
index ed7f10a69ac4620c441d7c1f79ad21bd3aec6b06..631acb001b227913c6d7acb3c9cd595336467753 100644 (file)
@@ -21,12 +21,12 @@ package org.sonar.ce.task.projectanalysis.step;
 
 import java.util.Arrays;
 import java.util.List;
-import org.sonar.ce.task.projectanalysis.purge.PurgeDatastoresStep;
-import org.sonar.server.computation.task.container.TaskContainer;
+import org.sonar.ce.task.container.TaskContainer;
 import org.sonar.ce.task.projectanalysis.filemove.FileMoveDetectionStep;
-import org.sonar.server.computation.task.step.ComputationStep;
-import org.sonar.server.computation.task.step.ExecuteStatelessInitExtensionsStep;
 import org.sonar.ce.task.projectanalysis.measure.PostMeasuresComputationChecksStep;
+import org.sonar.ce.task.projectanalysis.purge.PurgeDatastoresStep;
+import org.sonar.ce.task.step.ComputationStep;
+import org.sonar.ce.task.step.ExecuteStatelessInitExtensionsStep;
 
 /**
  * Ordered list of steps classes and instances to be executed for batch processing
index 9f142add4dd88e32c2634bb36f38b2fb1db1b44f..2344309af6aba0c7b650e9741504d0c0c7d409b3 100644 (file)
@@ -42,12 +42,12 @@ import org.sonar.ce.task.projectanalysis.component.TreeRootHolder;
 import org.sonar.ce.task.projectanalysis.component.TypeAwareVisitorAdapter;
 import org.sonar.ce.task.projectanalysis.issue.IssueCache;
 import org.sonar.ce.task.projectanalysis.issue.RuleRepository;
+import org.sonar.ce.task.step.ComputationStep;
 import org.sonar.core.issue.DefaultIssue;
 import org.sonar.core.util.CloseableIterator;
 import org.sonar.db.DbClient;
 import org.sonar.db.DbSession;
 import org.sonar.db.user.UserDto;
-import org.sonar.server.computation.task.step.ComputationStep;
 import org.sonar.server.issue.notification.IssueChangeNotification;
 import org.sonar.server.issue.notification.MyNewIssuesNotification;
 import org.sonar.server.issue.notification.NewIssuesNotification;
index 083f04ead0109b1bc369f6bb9dc755801e211bfe..f8beb8f1c0e80908b0f27c88194bf41f1f4b36a7 100644 (file)
@@ -34,7 +34,7 @@ import org.sonar.ce.task.projectanalysis.measure.Measure;
 import org.sonar.ce.task.projectanalysis.measure.MeasureRepository;
 import org.sonar.ce.task.projectanalysis.metric.Metric;
 import org.sonar.ce.task.projectanalysis.metric.MetricRepository;
-import org.sonar.server.computation.task.step.ComputationStep;
+import org.sonar.ce.task.step.ComputationStep;
 
 import static org.sonar.api.measures.CoreMetrics.CLASSES_KEY;
 import static org.sonar.api.measures.CoreMetrics.DIRECTORIES_KEY;
index ef5510026a6d7204ff6fb0beb3bac1f810b7add8..3cf6db44b28178d3a3e499358d39193f182f77ef 100644 (file)
@@ -23,7 +23,7 @@ package org.sonar.ce.task.projectanalysis.step;
 import javax.annotation.CheckForNull;
 import org.sonar.ce.task.projectanalysis.analysis.AnalysisMetadataHolder;
 import org.sonar.ce.task.projectanalysis.view.TriggerViewRefreshDelegate;
-import org.sonar.server.computation.task.step.ComputationStep;
+import org.sonar.ce.task.step.ComputationStep;
 
 /**
  * This step will trigger refresh of Portfolios and Applications that include the current project.
index ac07bce66ff7687169c18441f98f1964e191dc63..fc9854c4e90b14107c92518c0228c5348bd9f02a 100644 (file)
@@ -23,13 +23,6 @@ import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableList;
 import org.sonar.ce.task.projectanalysis.component.Component;
 import org.sonar.ce.task.projectanalysis.component.PathAwareCrawler;
-import org.sonar.ce.task.projectanalysis.formula.Counter;
-import org.sonar.ce.task.projectanalysis.formula.CreateMeasureContext;
-import org.sonar.ce.task.projectanalysis.formula.Formula;
-import org.sonar.ce.task.projectanalysis.formula.FormulaExecutorComponentVisitor;
-import org.sonar.ce.task.projectanalysis.metric.MetricRepository;
-import org.sonar.ce.task.projectanalysis.component.Component;
-import org.sonar.ce.task.projectanalysis.component.PathAwareCrawler;
 import org.sonar.ce.task.projectanalysis.component.TreeRootHolder;
 import org.sonar.ce.task.projectanalysis.formula.Counter;
 import org.sonar.ce.task.projectanalysis.formula.CounterInitializationContext;
@@ -41,7 +34,7 @@ import org.sonar.ce.task.projectanalysis.formula.counter.LongSumCounter;
 import org.sonar.ce.task.projectanalysis.measure.Measure;
 import org.sonar.ce.task.projectanalysis.measure.MeasureRepository;
 import org.sonar.ce.task.projectanalysis.metric.MetricRepository;
-import org.sonar.server.computation.task.step.ComputationStep;
+import org.sonar.ce.task.step.ComputationStep;
 
 import static org.sonar.api.measures.CoreMetrics.SKIPPED_TESTS_KEY;
 import static org.sonar.api.measures.CoreMetrics.TESTS_KEY;
index 9cb2725243e1e8868c8ef967bd8033798fe3ea08..c9fc9d294c5142e965886d4cc75cb5df9b14c08d 100644 (file)
@@ -24,12 +24,6 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Set;
 import java.util.stream.Collectors;
-import org.sonar.ce.task.projectanalysis.component.Component;
-import org.sonar.ce.task.projectanalysis.metric.Metric;
-import org.sonar.ce.task.projectanalysis.metric.MetricRepository;
-import org.sonar.db.DbClient;
-import org.sonar.db.DbSession;
-import org.sonar.db.qualityprofile.QProfileDto;
 import org.sonar.ce.task.projectanalysis.analysis.AnalysisMetadataHolder;
 import org.sonar.ce.task.projectanalysis.component.Component;
 import org.sonar.ce.task.projectanalysis.component.TreeRootHolder;
@@ -37,7 +31,10 @@ import org.sonar.ce.task.projectanalysis.measure.Measure;
 import org.sonar.ce.task.projectanalysis.measure.MeasureRepository;
 import org.sonar.ce.task.projectanalysis.metric.Metric;
 import org.sonar.ce.task.projectanalysis.metric.MetricRepository;
-import org.sonar.server.computation.task.step.ComputationStep;
+import org.sonar.ce.task.step.ComputationStep;
+import org.sonar.db.DbClient;
+import org.sonar.db.DbSession;
+import org.sonar.db.qualityprofile.QProfileDto;
 import org.sonar.server.qualityprofile.QPMeasureData;
 import org.sonar.server.qualityprofile.QualityProfile;
 
index 84f15aaf1754530720689712c598a6dd47e723f9..287c7fe3b002c629bb6a3460eba114b24ddfe1ca 100644 (file)
@@ -26,25 +26,21 @@ import java.util.Date;
 import java.util.List;
 import java.util.Map;
 import org.sonar.api.utils.MessageException;
+import org.sonar.ce.task.projectanalysis.analysis.AnalysisMetadataHolder;
+import org.sonar.ce.task.projectanalysis.batch.BatchReportReader;
 import org.sonar.ce.task.projectanalysis.component.Component;
 import org.sonar.ce.task.projectanalysis.component.ComponentVisitor;
+import org.sonar.ce.task.projectanalysis.component.CrawlerDepthLimit;
 import org.sonar.ce.task.projectanalysis.component.DepthTraversalTypeAwareCrawler;
+import org.sonar.ce.task.projectanalysis.component.TreeRootHolder;
 import org.sonar.ce.task.projectanalysis.component.TypeAwareVisitorAdapter;
+import org.sonar.ce.task.step.ComputationStep;
 import org.sonar.core.component.ComponentKeys;
 import org.sonar.db.DbClient;
 import org.sonar.db.DbSession;
 import org.sonar.db.component.ComponentDao;
 import org.sonar.db.component.ComponentDto;
 import org.sonar.db.component.SnapshotDto;
-import org.sonar.ce.task.projectanalysis.analysis.AnalysisMetadataHolder;
-import org.sonar.ce.task.projectanalysis.batch.BatchReportReader;
-import org.sonar.ce.task.projectanalysis.component.Component;
-import org.sonar.ce.task.projectanalysis.component.ComponentVisitor;
-import org.sonar.ce.task.projectanalysis.component.CrawlerDepthLimit;
-import org.sonar.ce.task.projectanalysis.component.DepthTraversalTypeAwareCrawler;
-import org.sonar.ce.task.projectanalysis.component.TreeRootHolder;
-import org.sonar.ce.task.projectanalysis.component.TypeAwareVisitorAdapter;
-import org.sonar.server.computation.task.step.ComputationStep;
 
 import static com.google.common.collect.FluentIterable.from;
 import static java.lang.String.format;
index 32c880c21903283ca0f30cb3e9f3785120540e0c..5eb0baef0a89eada5a2211fd624366173ebad107 100644 (file)
@@ -22,7 +22,7 @@ package org.sonar.ce.task.projectanalysis.step;
 import org.sonar.api.utils.MessageException;
 import org.sonar.ce.task.projectanalysis.analysis.AnalysisMetadataHolder;
 import org.sonar.ce.task.projectanalysis.analysis.Organization;
-import org.sonar.server.computation.task.step.ComputationStep;
+import org.sonar.ce.task.step.ComputationStep;
 import org.sonar.server.organization.BillingValidations;
 import org.sonar.server.organization.BillingValidationsProxy;
 
index 8ea6b79778488873f27d15e8ee71eb9155d49ebd..512a5d17e00e8404334ce4c2b184412ba355f054 100644 (file)
@@ -22,16 +22,16 @@ package org.sonar.ce.task.projectanalysis.taskprocessor;
 import java.util.Collections;
 import java.util.Set;
 import javax.annotation.CheckForNull;
-import org.sonar.server.computation.CeTask;
-import org.sonar.server.computation.CeTaskResult;
+import org.sonar.ce.task.CeTask;
+import org.sonar.ce.task.CeTaskResult;
+import org.sonar.ce.task.container.TaskContainer;
 import org.sonar.ce.task.projectanalysis.container.ContainerFactory;
+import org.sonar.ce.task.step.ComputationStepExecutor;
 import org.sonar.ce.taskprocessor.CeTaskProcessor;
+import org.sonar.ce.taskprocessor.TaskResultHolder;
 import org.sonar.core.platform.ComponentContainer;
 import org.sonar.db.ce.CeTaskTypes;
 import org.sonar.plugin.ce.ReportAnalysisComponentProvider;
-import org.sonar.server.computation.task.container.TaskContainer;
-import org.sonar.server.computation.task.step.ComputationStepExecutor;
-import org.sonar.server.computation.taskprocessor.TaskResultHolder;
 
 public class ReportTaskProcessor implements CeTaskProcessor {
 
index bbb6d8d85caa78b229e3c1da360416d920f90ab3..e8107f02f847b8edd5b6e0aab73c950df8d1188c 100644 (file)
@@ -24,9 +24,9 @@ import java.util.Map;
 import javax.annotation.CheckForNull;
 import javax.annotation.Nullable;
 import org.junit.rules.ExternalResource;
+import org.sonar.ce.task.util.InitializedProperty;
 import org.sonar.db.component.BranchType;
 import org.sonar.db.organization.OrganizationDto;
-import org.sonar.server.computation.util.InitializedProperty;
 import org.sonar.server.project.Project;
 import org.sonar.server.qualityprofile.QualityProfile;
 
index c714a7c47ac4df0c6534cd15dcee31f61e97a10f..fabd35b9dbc1991a7d3b07820f828cbe9fb6579e 100644 (file)
@@ -38,7 +38,7 @@ import org.mockito.InOrder;
 import org.sonar.api.ce.posttask.PostProjectAnalysisTask;
 import org.sonar.api.ce.posttask.Project;
 import org.sonar.api.utils.System2;
-import org.sonar.server.computation.CeTask;
+import org.sonar.ce.task.CeTask;
 import org.sonar.ce.task.projectanalysis.analysis.AnalysisMetadataHolderRule;
 import org.sonar.ce.task.projectanalysis.analysis.Branch;
 import org.sonar.ce.task.projectanalysis.analysis.Organization;
index 3ad2f042bf4ccd437dcf1d91562e6a621bcbf4e0..17739c643357d0393917de48c056f6b446597354 100644 (file)
@@ -31,13 +31,13 @@ import javax.annotation.Nullable;
 import org.junit.Test;
 import org.picocontainer.DefaultPicoContainer;
 import org.picocontainer.PicoContainer;
-import org.sonar.server.computation.CeTask;
+import org.sonar.ce.task.CeTask;
+import org.sonar.ce.task.container.TaskContainer;
 import org.sonar.ce.task.projectanalysis.step.PersistComponentsStep;
+import org.sonar.ce.task.step.ComputationStep;
+import org.sonar.ce.task.step.StepsExplorer;
 import org.sonar.core.platform.ComponentContainer;
 import org.sonar.plugin.ce.ReportAnalysisComponentProvider;
-import org.sonar.server.computation.task.container.TaskContainer;
-import org.sonar.server.computation.task.step.ComputationStep;
-import org.sonar.server.computation.task.step.StepsExplorer;
 
 import static com.google.common.base.Predicates.notNull;
 import static com.google.common.collect.FluentIterable.from;
index 88f24bffb4cfdd137a341886bf34ceeeb113f7d4..2b103c4b3a91d13d87273f5b4aeb062d4a08dafa 100644 (file)
@@ -32,7 +32,7 @@ import org.junit.Test;
 import org.junit.rules.ExpectedException;
 import org.junit.runner.RunWith;
 import org.sonar.api.utils.System2;
-import org.sonar.server.computation.CeTask;
+import org.sonar.ce.task.CeTask;
 import org.sonar.db.DbTester;
 import org.sonar.db.source.FileSourceDto;
 
index afa25e58896657e2449238418ef216b855858f8e..cb7dfd57a0664cefccfe525da2e578e80568f908 100644 (file)
@@ -24,7 +24,7 @@ import java.util.stream.Collectors;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
-import org.sonar.server.computation.CeTask;
+import org.sonar.ce.task.CeTask;
 import org.sonar.db.Database;
 
 import static org.assertj.core.api.Assertions.assertThat;
index 5bbba7bf6d9c05755f951860fac697dabcde839f..4b3356bf871f54f6518ebcc32877343399155b93 100644 (file)
@@ -35,7 +35,7 @@ import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.sonar.api.config.Configuration;
 import org.sonar.api.config.internal.MapSettings;
-import org.sonar.server.computation.CeTask;
+import org.sonar.ce.task.CeTask;
 import org.sonar.ce.task.projectanalysis.filemove.ScoreMatrix.ScoreFile;
 
 import static org.apache.commons.lang.RandomStringUtils.randomAlphabetic;
index a1d8afc8ae61dd35e4fa7441b34b6b19d3cebf80..cd741fedf9c8f6750659096f5ae1303a5632d134 100644 (file)
@@ -17,7 +17,7 @@
  * 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.server.computation.dbcleaner;
+package org.sonar.ce.task.dbcleaner;
 
 import java.util.Arrays;
 import java.util.List;
index 12ae7f4eefdab1be6adcd26505d21f52a272df9f..48f95265bc6d769d9d5d3ba6bf4b5faae0fa387b 100644 (file)
@@ -17,7 +17,7 @@
  * 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.server.computation.dbcleaner;
+package org.sonar.ce.task.dbcleaner;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -34,8 +34,8 @@ import org.sonar.db.purge.PurgeProfiler;
 import org.sonar.db.purge.period.DefaultPeriodCleaner;
 
 import static java.util.Collections.emptyList;
-import static org.mockito.ArgumentMatchers.anyLong;
 import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyLong;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.verify;
index 911a160e2a627a27a44884763993d61d5aa2bcb2..58058f364aba4447a09db0fddde05b4f711610f5 100644 (file)
@@ -30,6 +30,7 @@ import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
 import org.mockito.Mockito;
 import org.sonar.api.config.internal.MapSettings;
+import org.sonar.ce.task.dbcleaner.ProjectCleaner;
 import org.sonar.ce.task.projectanalysis.component.Component;
 import org.sonar.ce.task.projectanalysis.component.ConfigurationRepository;
 import org.sonar.ce.task.projectanalysis.component.MutableDbIdsRepositoryRule;
@@ -38,10 +39,9 @@ import org.sonar.ce.task.projectanalysis.component.ReportComponent;
 import org.sonar.ce.task.projectanalysis.component.TreeRootHolderRule;
 import org.sonar.ce.task.projectanalysis.component.ViewsComponent;
 import org.sonar.ce.task.projectanalysis.step.BaseStepTest;
+import org.sonar.ce.task.step.ComputationStep;
 import org.sonar.db.DbClient;
 import org.sonar.db.purge.IdUuidPair;
-import org.sonar.server.computation.dbcleaner.ProjectCleaner;
-import org.sonar.server.computation.task.step.ComputationStep;
 import org.sonar.server.util.WrapInSingleElementArray;
 
 import static java.util.Arrays.asList;
index 69df9220bd3c49ebe5d2fe7d61f80796cae9954b..3ef87292cce646a77eb6ad0e755fd71f07f40b63 100644 (file)
@@ -20,7 +20,7 @@
 package org.sonar.ce.task.projectanalysis.step;
 
 import org.junit.Test;
-import org.sonar.server.computation.task.step.ComputationStep;
+import org.sonar.ce.task.step.ComputationStep;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
index 82bd1d8e0e511b4937e766249a6740cfa9df9132..3a4089cd9aae39d6d4369543941679854782df07 100644 (file)
@@ -26,7 +26,7 @@ import org.sonar.ce.task.projectanalysis.duplication.DuplicationRepositoryRule;
 import org.sonar.ce.task.projectanalysis.duplication.TextBlock;
 import org.sonar.ce.task.projectanalysis.measure.MeasureRepositoryRule;
 import org.sonar.ce.task.projectanalysis.metric.MetricRepositoryRule;
-import org.sonar.server.computation.task.step.ComputationStep;
+import org.sonar.ce.task.step.ComputationStep;
 
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.guava.api.Assertions.assertThat;
index c1fe2a4f7f5741c0484bd101551d994a5a7cc2c8..5c24ce6a795bbdb3ed15df5bbe10891ec6399453 100644 (file)
@@ -21,7 +21,7 @@ package org.sonar.ce.task.projectanalysis.step;
 
 import org.junit.Test;
 import org.sonar.ce.task.projectanalysis.duplication.DuplicationMeasures;
-import org.sonar.server.computation.task.step.ComputationStep;
+import org.sonar.ce.task.step.ComputationStep;
 
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
index f72a8260b31d9567f3763713bd8b0a17fde7f70d..af80de32ec5183202cfd3b67869ffcfad0558da4 100644 (file)
@@ -25,6 +25,7 @@ import org.junit.Rule;
 import org.junit.Test;
 import org.sonar.api.utils.log.LogTester;
 import org.sonar.api.utils.log.LoggerLevel;
+import org.sonar.ce.task.ChangeLogLevel;
 import org.sonar.ce.task.projectanalysis.component.Component;
 import org.sonar.ce.task.projectanalysis.component.ComponentVisitor;
 import org.sonar.ce.task.projectanalysis.component.CrawlerDepthLimit;
@@ -35,7 +36,6 @@ import org.sonar.ce.task.projectanalysis.measure.MeasureRepositoryRule;
 import org.sonar.ce.task.projectanalysis.metric.Metric;
 import org.sonar.ce.task.projectanalysis.metric.MetricImpl;
 import org.sonar.ce.task.projectanalysis.metric.MetricRepositoryRule;
-import org.sonar.server.computation.task.ChangeLogLevel;
 
 import static java.util.Arrays.asList;
 import static java.util.Collections.singletonList;
index d2b6857f196e1d0310a3f2d4b4041c98ae52e04a..27def2e2682b5f69eda870e20d2098b63d10aa43 100644 (file)
@@ -32,7 +32,7 @@ import org.sonar.api.utils.ZipUtils;
 import org.sonar.api.utils.internal.JUnitTempFolder;
 import org.sonar.api.utils.log.LogTester;
 import org.sonar.api.utils.log.LoggerLevel;
-import org.sonar.server.computation.CeTask;
+import org.sonar.ce.task.CeTask;
 import org.sonar.ce.task.projectanalysis.batch.BatchReportDirectoryHolderImpl;
 import org.sonar.ce.task.projectanalysis.batch.MutableBatchReportDirectoryHolder;
 import org.sonar.db.DbTester;
index 419d6bb049ee651d98fd693b7b38a72f4981344d..8a19d093f6217d6e62d90f27e6b985214ff2e844 100644 (file)
@@ -26,7 +26,7 @@ import org.sonar.ce.task.projectanalysis.component.Component;
 import org.sonar.ce.task.projectanalysis.component.ReportComponent;
 import org.sonar.ce.task.projectanalysis.component.TreeRootHolderRule;
 import org.sonar.ce.task.projectanalysis.component.ViewsComponent;
-import org.sonar.server.computation.task.step.ComputationStep;
+import org.sonar.ce.task.step.ComputationStep;
 import org.sonar.server.es.ProjectIndexer;
 
 import static org.mockito.Mockito.mock;
index 1e6ad5596d4c9460754fdd58510bff2f5e545c92..29d66394a899525e8af4a3206eb0f843223e50f1 100644 (file)
@@ -39,6 +39,7 @@ import org.sonar.ce.task.projectanalysis.component.ReportComponent;
 import org.sonar.ce.task.projectanalysis.component.TreeRootHolderRule;
 import org.sonar.ce.task.projectanalysis.duplication.CrossProjectDuplicationStatusHolder;
 import org.sonar.ce.task.projectanalysis.duplication.IntegrateCrossProjectDuplications;
+import org.sonar.ce.task.step.ComputationStep;
 import org.sonar.db.DbClient;
 import org.sonar.db.DbSession;
 import org.sonar.db.DbTester;
@@ -50,7 +51,6 @@ import org.sonar.db.duplication.DuplicationUnitDto;
 import org.sonar.duplications.block.Block;
 import org.sonar.duplications.block.ByteArray;
 import org.sonar.scanner.protocol.output.ScannerReport;
-import org.sonar.server.computation.task.step.ComputationStep;
 
 import static java.util.Arrays.asList;
 import static org.assertj.core.api.Assertions.assertThat;
index df68f74079b13a762ae595bccf3c71bb931c40b8..3b38127268d7451d0f03df241f78d1100e2b3a1d 100644 (file)
@@ -32,7 +32,7 @@ import org.sonar.api.measures.Metric;
 import org.sonar.api.measures.Metrics;
 import org.sonar.ce.task.projectanalysis.api.measurecomputer.MeasureComputerWrapper;
 import org.sonar.ce.task.projectanalysis.measure.MeasureComputersHolderImpl;
-import org.sonar.server.computation.task.step.ComputationStep;
+import org.sonar.ce.task.step.ComputationStep;
 
 import static com.google.common.collect.Lists.newArrayList;
 import static org.assertj.core.api.Assertions.assertThat;
index be2d57630ef7bfda5688a0ca27c795fe1c778fe8..b370fc0f7c628f5aafb9e5473bd9c83fae45cf3b 100644 (file)
@@ -37,12 +37,12 @@ import org.sonar.ce.task.projectanalysis.component.ReportComponent;
 import org.sonar.ce.task.projectanalysis.component.TreeRootHolderRule;
 import org.sonar.ce.task.projectanalysis.period.Period;
 import org.sonar.ce.task.projectanalysis.period.PeriodHolderImpl;
+import org.sonar.ce.task.step.ComputationStep;
 import org.sonar.db.DbClient;
 import org.sonar.db.DbTester;
 import org.sonar.db.component.ComponentDto;
 import org.sonar.db.component.SnapshotDto;
 import org.sonar.db.organization.OrganizationDto;
-import org.sonar.server.computation.task.step.ComputationStep;
 
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.mockito.Mockito.mock;
index 4a50e63a217242c1f236ce8f4ab44b2ed180e799..5f7bf56129795f14e74ecb5199d70bd73da1cecb 100644 (file)
@@ -34,12 +34,13 @@ import org.junit.runner.RunWith;
 import org.sonar.api.Plugin;
 import org.sonar.api.utils.MessageException;
 import org.sonar.api.utils.System2;
-import org.sonar.server.computation.CeTask;
+import org.sonar.ce.task.CeTask;
 import org.sonar.ce.task.projectanalysis.analysis.MutableAnalysisMetadataHolderRule;
 import org.sonar.ce.task.projectanalysis.analysis.Organization;
 import org.sonar.ce.task.projectanalysis.analysis.ScannerPlugin;
 import org.sonar.ce.task.projectanalysis.batch.BatchReportReaderRule;
 import org.sonar.ce.task.projectanalysis.component.BranchLoader;
+import org.sonar.ce.task.step.ComputationStep;
 import org.sonar.core.platform.PluginInfo;
 import org.sonar.core.platform.PluginRepository;
 import org.sonar.db.DbClient;
@@ -47,7 +48,6 @@ import org.sonar.db.DbTester;
 import org.sonar.db.component.ComponentDto;
 import org.sonar.db.organization.OrganizationDto;
 import org.sonar.scanner.protocol.output.ScannerReport;
-import org.sonar.server.computation.task.step.ComputationStep;
 import org.sonar.server.organization.DefaultOrganizationProvider;
 import org.sonar.server.organization.OrganizationFlags;
 import org.sonar.server.organization.TestDefaultOrganizationProvider;
index eb5a09029ebb06abc0c42d12bc7934b39d1528af..f66e15a1dcde738d27992ca5d5ae36e4793b6d6f 100644 (file)
@@ -34,10 +34,10 @@ import org.sonar.ce.task.projectanalysis.component.Component;
 import org.sonar.ce.task.projectanalysis.component.ReportComponent;
 import org.sonar.ce.task.projectanalysis.component.TreeRootHolderRule;
 import org.sonar.ce.task.projectanalysis.duplication.CrossProjectDuplicationStatusHolder;
+import org.sonar.ce.task.step.ComputationStep;
 import org.sonar.db.DbClient;
 import org.sonar.db.DbTester;
 import org.sonar.scanner.protocol.output.ScannerReport;
-import org.sonar.server.computation.task.step.ComputationStep;
 
 import static java.util.Collections.singletonList;
 import static org.assertj.core.api.Assertions.assertThat;
index ff849d666f8c93c944f22f6d3cf7f12fd22db6b0..28cb70b8c4efc6810805d0350a66ab70f0bcc5dd 100644 (file)
@@ -32,10 +32,10 @@ import org.sonar.ce.task.projectanalysis.component.ReportComponent;
 import org.sonar.ce.task.projectanalysis.component.TreeRootHolderRule;
 import org.sonar.ce.task.projectanalysis.event.Event;
 import org.sonar.ce.task.projectanalysis.event.EventRepository;
+import org.sonar.ce.task.step.ComputationStep;
 import org.sonar.core.util.UuidFactory;
 import org.sonar.core.util.UuidFactoryImpl;
 import org.sonar.db.DbTester;
-import org.sonar.server.computation.task.step.ComputationStep;
 
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.mock;
index a7c58a6be21c258e650bb42519d71c05cae3fdc3..a5abc7708ca9d0d4344652953028df264dc3df15 100644 (file)
@@ -27,11 +27,11 @@ import org.sonar.api.rule.RuleKey;
 import org.sonar.api.utils.System2;
 import org.sonar.ce.task.projectanalysis.analysis.AnalysisMetadataHolderRule;
 import org.sonar.ce.task.projectanalysis.issue.RuleRepositoryImpl;
+import org.sonar.ce.task.step.ComputationStep;
 import org.sonar.db.DbClient;
 import org.sonar.db.DbTester;
 import org.sonar.db.rule.RuleDao;
 import org.sonar.db.rule.RuleDefinitionDto;
-import org.sonar.server.computation.task.step.ComputationStep;
 import org.sonar.server.es.EsTester;
 import org.sonar.server.rule.ExternalRuleCreator;
 import org.sonar.server.rule.NewExternalRule;
index 1dfe5faf520e29302b0c228438e8f8994098a4c6..180fd48977b8a5154c065bfaec9d86da1f6c39fb 100644 (file)
@@ -42,6 +42,7 @@ import org.sonar.ce.task.projectanalysis.scm.ScmInfoRepositoryRule;
 import org.sonar.ce.task.projectanalysis.source.SourceLinesHashRepository;
 import org.sonar.ce.task.projectanalysis.source.SourceLinesHashRepositoryImpl;
 import org.sonar.ce.task.projectanalysis.source.SourceLinesRepositoryRule;
+import org.sonar.ce.task.step.ComputationStep;
 import org.sonar.db.DbClient;
 import org.sonar.db.DbSession;
 import org.sonar.db.DbTester;
@@ -52,7 +53,6 @@ import org.sonar.db.source.LineHashVersion;
 import org.sonar.scanner.protocol.output.ScannerReport;
 import org.sonar.scanner.protocol.output.ScannerReport.Component.ComponentType;
 import org.sonar.scanner.protocol.output.ScannerReport.SyntaxHighlightingRule.HighlightingType;
-import org.sonar.server.computation.task.step.ComputationStep;
 
 import static com.google.common.collect.ImmutableList.of;
 import static com.google.common.collect.Lists.newArrayList;
index b3c51231db72545468ebdea66bdd6fa8b3ae67ad..ff98a1abbfff12735802ea0fa93b31de6020e1d0 100644 (file)
@@ -35,6 +35,7 @@ import org.sonar.ce.task.projectanalysis.batch.BatchReportReaderRule;
 import org.sonar.ce.task.projectanalysis.issue.IssueCache;
 import org.sonar.ce.task.projectanalysis.issue.RuleRepositoryImpl;
 import org.sonar.ce.task.projectanalysis.issue.UpdateConflictResolver;
+import org.sonar.ce.task.step.ComputationStep;
 import org.sonar.core.issue.DefaultIssue;
 import org.sonar.core.issue.DefaultIssueComment;
 import org.sonar.core.issue.FieldDiffs;
@@ -49,7 +50,6 @@ import org.sonar.db.organization.OrganizationDto;
 import org.sonar.db.rule.RuleDefinitionDto;
 import org.sonar.db.rule.RuleTesting;
 import org.sonar.scanner.protocol.output.ScannerReport;
-import org.sonar.server.computation.task.step.ComputationStep;
 import org.sonar.server.rule.ExternalRuleCreator;
 import org.sonar.server.util.cache.DiskCache;
 
index 2f96bccdc861f0896fd19ef3762633122ed7857c..f78c86e1b72a0a552c9809293e6e1eb17a73c391 100644 (file)
@@ -33,12 +33,12 @@ import org.sonar.ce.task.projectanalysis.component.ViewsComponent;
 import org.sonar.ce.task.projectanalysis.measure.MeasureRepositoryRule;
 import org.sonar.ce.task.projectanalysis.measure.MeasureToMeasureDto;
 import org.sonar.ce.task.projectanalysis.metric.MetricRepositoryRule;
+import org.sonar.ce.task.step.ComputationStep;
 import org.sonar.db.DbClient;
 import org.sonar.db.DbTester;
 import org.sonar.db.component.ComponentDto;
 import org.sonar.db.measure.LiveMeasureDto;
 import org.sonar.db.metric.MetricDto;
-import org.sonar.server.computation.task.step.ComputationStep;
 import org.sonar.server.project.Project;
 
 import static org.assertj.core.api.Assertions.assertThat;
index 0a383929eb2344c5f990c67733758d4ae54f8cd4..c710d08fc35d57247f70216ca7c21068d41d395a 100644 (file)
@@ -25,11 +25,6 @@ import org.junit.Rule;
 import org.junit.Test;
 import org.sonar.api.measures.Metric;
 import org.sonar.api.utils.System2;
-import org.sonar.db.DbClient;
-import org.sonar.db.DbTester;
-import org.sonar.db.component.ComponentDto;
-import org.sonar.db.measure.MeasureDto;
-import org.sonar.db.metric.MetricDto;
 import org.sonar.ce.task.projectanalysis.analysis.MutableAnalysisMetadataHolderRule;
 import org.sonar.ce.task.projectanalysis.component.Component;
 import org.sonar.ce.task.projectanalysis.component.ReportComponent;
@@ -38,7 +33,12 @@ import org.sonar.ce.task.projectanalysis.component.ViewsComponent;
 import org.sonar.ce.task.projectanalysis.measure.MeasureRepositoryRule;
 import org.sonar.ce.task.projectanalysis.measure.MeasureToMeasureDto;
 import org.sonar.ce.task.projectanalysis.metric.MetricRepositoryRule;
-import org.sonar.server.computation.task.step.ComputationStep;
+import org.sonar.ce.task.step.ComputationStep;
+import org.sonar.db.DbClient;
+import org.sonar.db.DbTester;
+import org.sonar.db.component.ComponentDto;
+import org.sonar.db.measure.MeasureDto;
+import org.sonar.db.metric.MetricDto;
 
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.sonar.ce.task.projectanalysis.component.Component.Type.DIRECTORY;
index ddc6159d3448f71d9cbc7fc8439f52ff503ebd77..052cc1052b5af0f1377527e416c1c3bacfb080dd 100644 (file)
@@ -32,6 +32,7 @@ import org.sonar.ce.task.projectanalysis.component.Component;
 import org.sonar.ce.task.projectanalysis.component.ReportComponent;
 import org.sonar.ce.task.projectanalysis.component.TreeRootHolder;
 import org.sonar.ce.task.projectanalysis.component.TreeRootHolderRule;
+import org.sonar.ce.task.step.ComputationStep;
 import org.sonar.core.util.UuidFactory;
 import org.sonar.core.util.UuidFactoryFast;
 import org.sonar.db.DbClient;
@@ -40,7 +41,6 @@ import org.sonar.db.component.ComponentDto;
 import org.sonar.db.component.ProjectLinkDto;
 import org.sonar.scanner.protocol.output.ScannerReport;
 import org.sonar.scanner.protocol.output.ScannerReport.Component.ComponentType;
-import org.sonar.server.computation.task.step.ComputationStep;
 
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.tuple;
index 5ef9b4008259b14582f3ec6be161149606c5ef0f..6fad5e539fe35d8dc7bf47ee063788907fd3fb49 100644 (file)
@@ -24,7 +24,7 @@ import org.junit.ClassRule;
 import org.junit.Rule;
 import org.junit.Test;
 import org.sonar.api.utils.System2;
-import org.sonar.server.computation.CeTask;
+import org.sonar.ce.task.CeTask;
 import org.sonar.ce.task.projectanalysis.analysis.AnalysisMetadataHolderRule;
 import org.sonar.ce.task.projectanalysis.batch.BatchReportReaderRule;
 import org.sonar.core.util.CloseableIterator;
index 160e7a0525e85ff1d5eafa15fd32153a2d0ede18..eda6f5a386524d08a12abbc2c4101d26e87ea132 100644 (file)
@@ -32,6 +32,7 @@ import org.sonar.ce.task.projectanalysis.component.Component;
 import org.sonar.ce.task.projectanalysis.component.FileAttributes;
 import org.sonar.ce.task.projectanalysis.component.ReportComponent;
 import org.sonar.ce.task.projectanalysis.component.TreeRootHolderRule;
+import org.sonar.ce.task.step.ComputationStep;
 import org.sonar.db.DbClient;
 import org.sonar.db.DbTester;
 import org.sonar.db.protobuf.DbFileSources;
@@ -39,7 +40,6 @@ import org.sonar.db.source.FileSourceDto;
 import org.sonar.scanner.protocol.output.ScannerReport;
 import org.sonar.scanner.protocol.output.ScannerReport.CoverageDetail;
 import org.sonar.scanner.protocol.output.ScannerReport.Test.TestStatus;
-import org.sonar.server.computation.task.step.ComputationStep;
 
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.tuple;
index b876286cd4125e953094e14698e4b6616fd0e8be..227967e2abe9f8a47feb472890336d23966c22a8 100644 (file)
@@ -22,8 +22,8 @@ package org.sonar.ce.task.projectanalysis.step;
 import org.junit.Rule;
 import org.junit.Test;
 import org.sonar.ce.task.projectanalysis.analysis.MutableAnalysisMetadataHolderRule;
-import org.sonar.server.computation.taskprocessor.MutableTaskResultHolder;
-import org.sonar.server.computation.taskprocessor.MutableTaskResultHolderImpl;
+import org.sonar.ce.taskprocessor.MutableTaskResultHolder;
+import org.sonar.ce.taskprocessor.MutableTaskResultHolderImpl;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
index 11ff75e3f0302267c8a4dba3a05d0c3609dec6bb..87b0bb3b0da8c8d3a316a8d904300b83cbed680d 100644 (file)
@@ -25,7 +25,7 @@ import org.junit.Test;
 import org.sonar.ce.task.projectanalysis.component.TreeRootHolderRule;
 import org.sonar.ce.task.projectanalysis.measure.MeasureRepositoryRule;
 import org.sonar.ce.task.projectanalysis.metric.MetricRepositoryRule;
-import org.sonar.server.computation.task.step.ComputationStep;
+import org.sonar.ce.task.step.ComputationStep;
 
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.guava.api.Assertions.assertThat;
index 07de8c510bb3fa9023bb272c9d71fa15792e294b..edbd84ecd1c9526aae7bc6868b0247492dff608b 100644 (file)
@@ -25,7 +25,7 @@ import org.sonar.ce.task.projectanalysis.batch.BatchReportReaderRule;
 import org.sonar.ce.task.projectanalysis.component.TreeRootHolderRule;
 import org.sonar.ce.task.projectanalysis.measure.MeasureRepositoryRule;
 import org.sonar.ce.task.projectanalysis.metric.MetricRepositoryRule;
-import org.sonar.server.computation.task.step.ComputationStep;
+import org.sonar.ce.task.step.ComputationStep;
 
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.guava.api.Assertions.assertThat;
index eaf6ef87807e08dc44863fca05012ed1ba64d334..4e45b6e51b025d4868a455554e0436989f380677 100644 (file)
@@ -23,8 +23,8 @@ import com.google.common.collect.Lists;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
+import org.sonar.ce.task.container.TaskContainerImpl;
 import org.sonar.core.platform.ComponentContainer;
-import org.sonar.server.computation.task.container.TaskContainerImpl;
 
 import static org.mockito.Mockito.mock;
 
index 6604529f7d8f0a3be8f58f5e70d28f70b5511fdf..668129ab1818b8ae3adc397889fe95f08df3917f 100644 (file)
@@ -26,7 +26,7 @@ import org.sonar.ce.task.projectanalysis.component.FileAttributes;
 import org.sonar.ce.task.projectanalysis.component.TreeRootHolderRule;
 import org.sonar.ce.task.projectanalysis.measure.MeasureRepositoryRule;
 import org.sonar.ce.task.projectanalysis.metric.MetricRepositoryRule;
-import org.sonar.server.computation.task.step.ComputationStep;
+import org.sonar.ce.task.step.ComputationStep;
 
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.guava.api.Assertions.assertThat;
index c7260262f29996b1974de2bed19c252f53082fab..ae55c80742a40e3623299cd9483de488f4ba3444 100644 (file)
@@ -32,6 +32,7 @@ import org.sonar.ce.task.projectanalysis.component.ReportComponent;
 import org.sonar.ce.task.projectanalysis.component.TreeRootHolderRule;
 import org.sonar.ce.task.projectanalysis.period.Period;
 import org.sonar.ce.task.projectanalysis.period.PeriodHolderRule;
+import org.sonar.ce.task.step.ComputationStep;
 import org.sonar.db.DbClient;
 import org.sonar.db.DbTester;
 import org.sonar.db.component.ComponentDto;
@@ -40,7 +41,6 @@ import org.sonar.db.component.SnapshotDto;
 import org.sonar.db.component.SnapshotQuery;
 import org.sonar.db.component.SnapshotTesting;
 import org.sonar.db.organization.OrganizationDto;
-import org.sonar.server.computation.task.step.ComputationStep;
 
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.mockito.Mockito.mock;
index 29aaef1fc1f6511684279f09005d52dba9df8606..8ff4bab77178861a3374b12c3aaa6282011fde7c 100644 (file)
@@ -40,6 +40,7 @@ import org.sonar.ce.task.projectanalysis.component.MutableDbIdsRepositoryRule;
 import org.sonar.ce.task.projectanalysis.component.MutableDisabledComponentsHolder;
 import org.sonar.ce.task.projectanalysis.component.ReportComponent;
 import org.sonar.ce.task.projectanalysis.component.TreeRootHolderRule;
+import org.sonar.ce.task.step.ComputationStep;
 import org.sonar.core.component.ComponentKeys;
 import org.sonar.db.DbClient;
 import org.sonar.db.DbTester;
@@ -47,7 +48,6 @@ import org.sonar.db.component.BranchType;
 import org.sonar.db.component.ComponentDto;
 import org.sonar.db.component.ComponentTesting;
 import org.sonar.scanner.protocol.output.ScannerReport;
-import org.sonar.server.computation.task.step.ComputationStep;
 import org.sonar.server.project.Project;
 
 import static org.apache.commons.lang.StringUtils.isEmpty;
index 7e1982eaa5191b628253370a4b4fc1c91c99e28d..b10ca89a1353101fe21f3a51d9e8096e5f4da2ce 100644 (file)
@@ -26,7 +26,7 @@ import org.sonar.ce.task.projectanalysis.component.FileAttributes;
 import org.sonar.ce.task.projectanalysis.component.TreeRootHolderRule;
 import org.sonar.ce.task.projectanalysis.measure.MeasureRepositoryRule;
 import org.sonar.ce.task.projectanalysis.metric.MetricRepositoryRule;
-import org.sonar.server.computation.task.step.ComputationStep;
+import org.sonar.ce.task.step.ComputationStep;
 
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.guava.api.Assertions.assertThat;
index 896884ee566505eb501b3d4b8a6caa56609053ea..0acf8a25e97dfa072486ddf8a7480c4ccc1dbd38 100644 (file)
@@ -43,12 +43,12 @@ import org.sonar.ce.task.projectanalysis.component.DefaultBranchImpl;
 import org.sonar.ce.task.projectanalysis.component.TreeRootHolderRule;
 import org.sonar.ce.task.projectanalysis.issue.IssueCache;
 import org.sonar.ce.task.projectanalysis.issue.RuleRepositoryRule;
+import org.sonar.ce.task.step.ComputationStep;
 import org.sonar.core.issue.DefaultIssue;
 import org.sonar.db.DbTester;
 import org.sonar.db.component.ComponentDto;
 import org.sonar.db.rule.RuleDefinitionDto;
 import org.sonar.db.user.UserDto;
-import org.sonar.server.computation.task.step.ComputationStep;
 import org.sonar.server.issue.notification.DistributedMetricStatsInt;
 import org.sonar.server.issue.notification.IssueChangeNotification;
 import org.sonar.server.issue.notification.MyNewIssuesNotification;
index 7bc652a89c37001e75f8e240eb24466cf61f8125..858e3582cfd252aa9a1ffdffcf09ecb3792aefa1 100644 (file)
@@ -25,7 +25,7 @@ import org.junit.Test;
 import org.sonar.ce.task.projectanalysis.component.TreeRootHolderRule;
 import org.sonar.ce.task.projectanalysis.measure.MeasureRepositoryRule;
 import org.sonar.ce.task.projectanalysis.metric.MetricRepositoryRule;
-import org.sonar.server.computation.task.step.ComputationStep;
+import org.sonar.ce.task.step.ComputationStep;
 
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.guava.api.Assertions.assertThat;
index 293e36e11de2e378a8eae9375ff70fa3e87de25c..4a1aa869367620da2115d76c2c8b8ca24f768bc2 100644 (file)
@@ -25,7 +25,7 @@ import org.sonar.ce.task.projectanalysis.batch.BatchReportReaderRule;
 import org.sonar.ce.task.projectanalysis.component.TreeRootHolderRule;
 import org.sonar.ce.task.projectanalysis.measure.MeasureRepositoryRule;
 import org.sonar.ce.task.projectanalysis.metric.MetricRepositoryRule;
-import org.sonar.server.computation.task.step.ComputationStep;
+import org.sonar.ce.task.step.ComputationStep;
 
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.guava.api.Assertions.assertThat;
index a160518198db8e4190a87b479f98b74bd5363cac..5287c71237cbb635f5ff74ab8435829265d9e2f3 100644 (file)
@@ -24,7 +24,7 @@ import org.junit.Test;
 import org.sonar.ce.task.projectanalysis.component.TreeRootHolderRule;
 import org.sonar.ce.task.projectanalysis.measure.MeasureRepositoryRule;
 import org.sonar.ce.task.projectanalysis.metric.MetricRepositoryRule;
-import org.sonar.server.computation.task.step.ComputationStep;
+import org.sonar.ce.task.step.ComputationStep;
 
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.guava.api.Assertions.assertThat;
index 08e92109e9f264154d432e19daa6ce3530a8d62d..e4fb3374a77ff6d4deb187ff76ef944ef0a9b102 100644 (file)
@@ -31,13 +31,13 @@ import org.sonar.ce.task.projectanalysis.component.TreeRootHolderRule;
 import org.sonar.ce.task.projectanalysis.component.ViewsComponent;
 import org.sonar.ce.task.projectanalysis.period.Period;
 import org.sonar.ce.task.projectanalysis.period.PeriodHolderRule;
+import org.sonar.ce.task.step.ComputationStep;
 import org.sonar.db.DbClient;
 import org.sonar.db.DbTester;
 import org.sonar.db.component.ComponentDto;
 import org.sonar.db.component.SnapshotDto;
 import org.sonar.db.component.SnapshotQuery;
 import org.sonar.db.organization.OrganizationDto;
-import org.sonar.server.computation.task.step.ComputationStep;
 
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.mockito.Mockito.mock;
index 16ec376a0f6f0b08746e39f33b29233619b7860e..5246f8c021a4c8085d35729ff439cb8c49cb5535 100644 (file)
@@ -41,13 +41,13 @@ import org.sonar.ce.task.projectanalysis.component.SubViewAttributes;
 import org.sonar.ce.task.projectanalysis.component.TreeRootHolderRule;
 import org.sonar.ce.task.projectanalysis.component.ViewAttributes;
 import org.sonar.ce.task.projectanalysis.component.ViewsComponent;
+import org.sonar.ce.task.step.ComputationStep;
 import org.sonar.db.DbClient;
 import org.sonar.db.DbTester;
 import org.sonar.db.component.ComponentDbTester;
 import org.sonar.db.component.ComponentDto;
 import org.sonar.db.component.ComponentTesting;
 import org.sonar.db.organization.OrganizationDto;
-import org.sonar.server.computation.task.step.ComputationStep;
 
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
index d17978af25aa34c69bc3610f62fd1a88a40437bd..8bb4b85d01148917371cc1d8b1d2fb15c0b70038 100644 (file)
@@ -24,7 +24,7 @@ import org.junit.Test;
 import org.sonar.ce.task.projectanalysis.component.TreeRootHolderRule;
 import org.sonar.ce.task.projectanalysis.measure.MeasureRepositoryRule;
 import org.sonar.ce.task.projectanalysis.metric.MetricRepositoryRule;
-import org.sonar.server.computation.task.step.ComputationStep;
+import org.sonar.ce.task.step.ComputationStep;
 
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.guava.api.Assertions.assertThat;
diff --git a/server/sonar-ce-task/src/main/java/org/sonar/ce/task/CeTask.java b/server/sonar-ce-task/src/main/java/org/sonar/ce/task/CeTask.java
new file mode 100644 (file)
index 0000000..68cb82e
--- /dev/null
@@ -0,0 +1,166 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2018 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.ce.task;
+
+import com.google.common.base.MoreObjects;
+import javax.annotation.CheckForNull;
+import javax.annotation.Nullable;
+import javax.annotation.concurrent.Immutable;
+
+import static com.google.common.base.Strings.emptyToNull;
+import static java.util.Objects.requireNonNull;
+
+@Immutable
+public class CeTask {
+
+  private final String organizationUuid;
+  private final String type;
+  private final String uuid;
+  private final String componentUuid;
+  private final String componentKey;
+  private final String componentName;
+  private final String submitterUuid;
+
+  private CeTask(Builder builder) {
+    this.organizationUuid = requireNonNull(emptyToNull(builder.organizationUuid), "organizationUuid can't be null nor empty");
+    this.uuid = requireNonNull(emptyToNull(builder.uuid), "uuid can't be null nor empty");
+    this.type = requireNonNull(emptyToNull(builder.type), "type can't be null nor empty");
+    this.componentUuid = emptyToNull(builder.componentUuid);
+    this.componentKey = emptyToNull(builder.componentKey);
+    this.componentName = emptyToNull(builder.componentName);
+    this.submitterUuid = emptyToNull(builder.submitterUuid);
+  }
+
+  public String getOrganizationUuid() {
+    return organizationUuid;
+  }
+
+  public String getUuid() {
+    return uuid;
+  }
+
+  public String getType() {
+    return type;
+  }
+
+  @CheckForNull
+  public String getComponentUuid() {
+    return componentUuid;
+  }
+
+  @CheckForNull
+  public String getComponentKey() {
+    return componentKey;
+  }
+
+  @CheckForNull
+  public String getComponentName() {
+    return componentName;
+  }
+
+  @CheckForNull
+  public String getSubmitterUuid() {
+    return submitterUuid;
+  }
+
+  @Override
+  public String toString() {
+    return MoreObjects.toStringHelper(this)
+      .add("organizationUuid", organizationUuid)
+      .add("type", type)
+      .add("uuid", uuid)
+      .add("componentUuid", componentUuid)
+      .add("componentKey", componentKey)
+      .add("componentName", componentName)
+      .add("submitterUuid", submitterUuid)
+      .toString();
+  }
+
+  @Override
+  public boolean equals(@Nullable Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    CeTask ceTask = (CeTask) o;
+    return uuid.equals(ceTask.uuid);
+  }
+
+  @Override
+  public int hashCode() {
+    return uuid.hashCode();
+  }
+
+  public static final class Builder {
+    private String organizationUuid;
+    private String uuid;
+    private String type;
+    private String componentUuid;
+    private String componentKey;
+    private String componentName;
+    private String submitterUuid;
+
+    public Builder setOrganizationUuid(String organizationUuid) {
+      this.organizationUuid = organizationUuid;
+      return this;
+    }
+
+    // FIXME remove this method when organization support is added to the Compute Engine queue
+    public boolean hasOrganizationUuid() {
+      return organizationUuid != null;
+    }
+
+    public Builder setUuid(String uuid) {
+      this.uuid = uuid;
+      return this;
+    }
+
+    public Builder setType(String type) {
+      this.type = type;
+      return this;
+    }
+
+    public Builder setComponentUuid(String componentUuid) {
+      this.componentUuid = componentUuid;
+      return this;
+    }
+
+    public Builder setComponentKey(@Nullable String s) {
+      this.componentKey = s;
+      return this;
+    }
+
+    public Builder setComponentName(@Nullable String s) {
+      this.componentName = s;
+      return this;
+    }
+
+    public Builder setSubmitterUuid(@Nullable String s) {
+      this.submitterUuid = s;
+      return this;
+    }
+
+    public CeTask build() {
+      return new CeTask(this);
+    }
+  }
+}
diff --git a/server/sonar-ce-task/src/main/java/org/sonar/ce/task/CeTaskResult.java b/server/sonar-ce-task/src/main/java/org/sonar/ce/task/CeTaskResult.java
new file mode 100644 (file)
index 0000000..3607b63
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2018 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.ce.task;
+
+import java.util.Optional;
+
+/**
+ * Represents the result of the processing of a {@link CeTask}.
+ */
+@FunctionalInterface
+public interface CeTaskResult {
+  /**
+   * The UUID of the analysis created, if any, for the Component in {@link CeTask}
+   */
+  Optional<String> getAnalysisUuid();
+}
diff --git a/server/sonar-ce-task/src/main/java/org/sonar/ce/task/container/EagerStart.java b/server/sonar-ce-task/src/main/java/org/sonar/ce/task/container/EagerStart.java
new file mode 100644 (file)
index 0000000..ca4447e
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2018 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.ce.task.container;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Components with this annotation will be eagerly started when loaded into the {@link TaskContainerImpl}.
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.TYPE)
+public @interface EagerStart {
+}
diff --git a/server/sonar-ce-task/src/main/java/org/sonar/ce/task/container/TaskContainer.java b/server/sonar-ce-task/src/main/java/org/sonar/ce/task/container/TaskContainer.java
new file mode 100644 (file)
index 0000000..aeb438c
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2018 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.ce.task.container;
+
+import org.picocontainer.PicoContainer;
+import org.sonar.ce.task.CeTask;
+import org.sonar.core.platform.ComponentContainer;
+import org.sonar.core.platform.ContainerPopulator;
+
+/**
+ * The Compute Engine task container. Created for a specific parent {@link ComponentContainer} and a specific {@link CeTask}.
+ */
+public interface TaskContainer extends ContainerPopulator.Container, AutoCloseable {
+
+  ComponentContainer getParent();
+
+  /**
+   * Starts task container, starting any startable component in it.
+   */
+  void bootup();
+
+  /**
+   * Cleans up resources after process has been called and has returned.
+   */
+  @Override
+  void close();
+
+  /**
+   * Access to the underlying pico container.
+   */
+  PicoContainer getPicoContainer();
+
+}
diff --git a/server/sonar-ce-task/src/main/java/org/sonar/ce/task/container/TaskContainerImpl.java b/server/sonar-ce-task/src/main/java/org/sonar/ce/task/container/TaskContainerImpl.java
new file mode 100644 (file)
index 0000000..e899ebe
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2018 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.ce.task.container;
+
+import java.util.List;
+import org.picocontainer.ComponentAdapter;
+import org.picocontainer.ComponentMonitor;
+import org.picocontainer.DefaultPicoContainer;
+import org.picocontainer.MutablePicoContainer;
+import org.picocontainer.behaviors.OptInCaching;
+import org.picocontainer.lifecycle.ReflectionLifecycleStrategy;
+import org.picocontainer.monitors.NullComponentMonitor;
+import org.sonar.api.config.PropertyDefinitions;
+import org.sonar.api.utils.log.Loggers;
+import org.sonar.core.platform.ComponentContainer;
+import org.sonar.core.platform.ContainerPopulator;
+import org.sonar.core.platform.Module;
+import org.sonar.core.platform.StopSafeReflectionLifecycleStrategy;
+
+import static java.util.Objects.requireNonNull;
+
+public class TaskContainerImpl extends ComponentContainer implements TaskContainer {
+
+  public TaskContainerImpl(ComponentContainer parent, ContainerPopulator<TaskContainer> populator) {
+    super(createContainer(requireNonNull(parent)), parent.getComponentByType(PropertyDefinitions.class));
+
+    populateContainer(requireNonNull(populator));
+  }
+
+  private void populateContainer(ContainerPopulator<TaskContainer> populator) {
+    populator.populateContainer(this);
+    populateFromModules();
+  }
+
+  private void populateFromModules() {
+    List<Module> modules = getComponentsByType(Module.class);
+    for (Module module : modules) {
+      module.configure(this);
+    }
+  }
+
+  /**
+   * Creates a PicContainer which extends the specified ComponentContainer <strong>but is not referenced in return</strong>
+   * and lazily starts its components.
+   */
+  private static MutablePicoContainer createContainer(ComponentContainer parent) {
+    ComponentMonitor componentMonitor = new NullComponentMonitor();
+    ReflectionLifecycleStrategy lifecycleStrategy = new StopSafeReflectionLifecycleStrategy(componentMonitor) {
+      @Override
+      public boolean isLazy(ComponentAdapter<?> adapter) {
+        return adapter.getComponentImplementation().getAnnotation(EagerStart.class) == null;
+      }
+    };
+
+    return new DefaultPicoContainer(new OptInCaching(), lifecycleStrategy, parent.getPicoContainer(), componentMonitor);
+  }
+
+  @Override
+  public void bootup() {
+    startComponents();
+  }
+
+  @Override
+  public String toString() {
+    return "TaskContainerImpl";
+  }
+
+  @Override
+  public void close() {
+    try {
+      stopComponents();
+    } catch (Throwable t) {
+      Loggers.get(TaskContainerImpl.class).error("Cleanup of container failed", t);
+    }
+  }
+}
diff --git a/server/sonar-ce-task/src/main/java/org/sonar/ce/task/container/package-info.java b/server/sonar-ce-task/src/main/java/org/sonar/ce/task/container/package-info.java
new file mode 100644 (file)
index 0000000..fead623
--- /dev/null
@@ -0,0 +1,23 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2018 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.
+ */
+@ParametersAreNonnullByDefault
+package org.sonar.ce.task.container;
+
+import javax.annotation.ParametersAreNonnullByDefault;
diff --git a/server/sonar-ce-task/src/main/java/org/sonar/ce/task/log/CeTaskLogging.java b/server/sonar-ce-task/src/main/java/org/sonar/ce/task/log/CeTaskLogging.java
new file mode 100644 (file)
index 0000000..2cb97d0
--- /dev/null
@@ -0,0 +1,37 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2018 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.ce.task.log;
+
+import org.slf4j.MDC;
+import org.sonar.ce.task.CeTask;
+
+public class CeTaskLogging {
+
+  public static final String MDC_CE_TASK_UUID = "ceTaskUuid";
+
+  public void initForTask(CeTask task) {
+    MDC.put(MDC_CE_TASK_UUID, task.getUuid());
+  }
+
+  public void clearForTask() {
+    MDC.remove(MDC_CE_TASK_UUID);
+  }
+
+}
diff --git a/server/sonar-ce-task/src/main/java/org/sonar/ce/task/log/package-info.java b/server/sonar-ce-task/src/main/java/org/sonar/ce/task/log/package-info.java
new file mode 100644 (file)
index 0000000..9a45145
--- /dev/null
@@ -0,0 +1,23 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2018 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.
+ */
+@ParametersAreNonnullByDefault
+package org.sonar.ce.task.log;
+
+import javax.annotation.ParametersAreNonnullByDefault;
diff --git a/server/sonar-ce-task/src/main/java/org/sonar/ce/task/package-info.java b/server/sonar-ce-task/src/main/java/org/sonar/ce/task/package-info.java
new file mode 100644 (file)
index 0000000..3c38c43
--- /dev/null
@@ -0,0 +1,23 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2018 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.
+ */
+@ParametersAreNonnullByDefault
+package org.sonar.ce.task;
+
+import javax.annotation.ParametersAreNonnullByDefault;
diff --git a/server/sonar-ce-task/src/main/java/org/sonar/ce/task/step/ComputationStep.java b/server/sonar-ce-task/src/main/java/org/sonar/ce/task/step/ComputationStep.java
new file mode 100644 (file)
index 0000000..3766ecd
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2018 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.ce.task.step;
+
+/**
+ * A way of splitting the processing of a task into smaller items which can be executed sequencially
+ * by {@link ComputationStepExecutor}.
+ */
+public interface ComputationStep {
+
+  void execute();
+
+  String getDescription();
+}
diff --git a/server/sonar-ce-task/src/main/java/org/sonar/ce/task/step/ComputationStepExecutor.java b/server/sonar-ce-task/src/main/java/org/sonar/ce/task/step/ComputationStepExecutor.java
new file mode 100644 (file)
index 0000000..3187f37
--- /dev/null
@@ -0,0 +1,83 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2018 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.ce.task.step;
+
+import javax.annotation.CheckForNull;
+import javax.annotation.Nullable;
+import org.sonar.api.utils.log.Logger;
+import org.sonar.api.utils.log.Loggers;
+import org.sonar.core.util.logs.Profiler;
+
+public final class ComputationStepExecutor {
+  private static final Logger LOGGER = Loggers.get(ComputationStepExecutor.class);
+
+  private final ComputationSteps steps;
+  @CheckForNull
+  private final Listener listener;
+
+  /**
+   * Used when no {@link ComputationStepExecutor.Listener} is available in pico
+   * container.
+   */
+  public ComputationStepExecutor(ComputationSteps steps) {
+    this(steps, null);
+  }
+
+  public ComputationStepExecutor(ComputationSteps steps, @Nullable Listener listener) {
+    this.steps = steps;
+    this.listener = listener;
+  }
+
+  public void execute() {
+    Profiler stepProfiler = Profiler.create(LOGGER);
+    boolean allStepsExecuted = false;
+    try {
+      executeSteps(stepProfiler);
+      allStepsExecuted = true;
+    } finally {
+      if (listener != null) {
+        executeListener(allStepsExecuted);
+      }
+    }
+  }
+
+  private void executeSteps(Profiler stepProfiler) {
+    for (ComputationStep step : steps.instances()) {
+      stepProfiler.start();
+      step.execute();
+      stepProfiler.stopDebug(step.getDescription());
+    }
+  }
+
+  private void executeListener(boolean allStepsExecuted) {
+    try {
+      listener.finished(allStepsExecuted);
+    } catch (Throwable e) {
+      // any Throwable throws by the listener going up the stack might hide an Exception/Error thrown by the step and
+      // cause it be swallowed. We don't wan't that => we catch Throwable
+      LOGGER.error("Execution of listener failed", e);
+    }
+  }
+
+  @FunctionalInterface
+  public interface Listener {
+    void finished(boolean allStepsExecuted);
+  }
+}
diff --git a/server/sonar-ce-task/src/main/java/org/sonar/ce/task/step/ComputationSteps.java b/server/sonar-ce-task/src/main/java/org/sonar/ce/task/step/ComputationSteps.java
new file mode 100644 (file)
index 0000000..7b7eacf
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2018 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.ce.task.step;
+
+import java.util.List;
+
+/**
+ * Ordered list of steps classes and instances to be executed in a Compute Engine process.
+ */
+public interface ComputationSteps {
+  /**
+   * List of all {@link ComputationStep},
+   * ordered by execution sequence.
+   */
+  List<Class<? extends ComputationStep>> orderedStepClasses();
+
+  /**
+   * List of all {@link ComputationStep},
+   * ordered by execution sequence.
+   */
+  Iterable<ComputationStep> instances();
+}
diff --git a/server/sonar-ce-task/src/main/java/org/sonar/ce/task/step/ExecuteStatelessInitExtensionsStep.java b/server/sonar-ce-task/src/main/java/org/sonar/ce/task/step/ExecuteStatelessInitExtensionsStep.java
new file mode 100644 (file)
index 0000000..6508d1d
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2018 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.ce.task.step;
+
+import org.sonar.api.ce.ComputeEngineSide;
+
+/**
+ * Execute {@link StatelessInitExtension} instances in no specific order.
+ * If an extension fails (throws an exception), consecutive extensions
+ * won't be called.
+ */
+@ComputeEngineSide
+public class ExecuteStatelessInitExtensionsStep implements ComputationStep {
+
+  private final StatelessInitExtension[] extensions;
+
+  public ExecuteStatelessInitExtensionsStep(StatelessInitExtension[] extensions) {
+    this.extensions = extensions;
+  }
+
+  /**
+   * Used when zero {@link StatelessInitExtension} are registered into container.
+   */
+  public ExecuteStatelessInitExtensionsStep() {
+    this(new StatelessInitExtension[0]);
+  }
+
+  @Override
+  public void execute() {
+    for (StatelessInitExtension extension : extensions) {
+      extension.onInit();
+    }
+  }
+
+  @Override
+  public String getDescription() {
+    return "Initialize";
+  }
+}
diff --git a/server/sonar-ce-task/src/main/java/org/sonar/ce/task/step/StatelessInitExtension.java b/server/sonar-ce-task/src/main/java/org/sonar/ce/task/step/StatelessInitExtension.java
new file mode 100644 (file)
index 0000000..ec13b7e
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2018 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.ce.task.step;
+
+import org.sonar.api.ExtensionPoint;
+import org.sonar.api.ce.ComputeEngineSide;
+
+/**
+ * Extension point that is called during processing of a task
+ * by {@link ExecuteStatelessInitExtensionsStep}.
+ * It is stateless, the same instance is reused for all tasks.
+ * As a consequence Compute Engine task components can't be injected
+ * as dependencies.
+ */
+@ComputeEngineSide
+@ExtensionPoint
+public interface StatelessInitExtension {
+
+  /**
+   * This method can make the task fail by throwing a {@link RuntimeException}
+   */
+  void onInit();
+
+}
diff --git a/server/sonar-ce-task/src/main/java/org/sonar/ce/task/step/TypedException.java b/server/sonar-ce-task/src/main/java/org/sonar/ce/task/step/TypedException.java
new file mode 100644 (file)
index 0000000..cc86808
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2018 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.ce.task.step;
+
+/**
+ * This interface is implemented by the exceptions
+ * that provide a type of error when failing
+ * a Compute Engine task.
+ * The error type is persisted and available in
+ * the tasks returned by the web services api/ce.
+ */
+public interface TypedException {
+
+  String getType();
+
+}
diff --git a/server/sonar-ce-task/src/main/java/org/sonar/ce/task/step/package-info.java b/server/sonar-ce-task/src/main/java/org/sonar/ce/task/step/package-info.java
new file mode 100644 (file)
index 0000000..c2e62f9
--- /dev/null
@@ -0,0 +1,23 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2018 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.
+ */
+@ParametersAreNonnullByDefault
+package org.sonar.ce.task.step;
+
+import javax.annotation.ParametersAreNonnullByDefault;
diff --git a/server/sonar-ce-task/src/main/java/org/sonar/ce/task/taskprocessor/MutableTaskResultHolder.java b/server/sonar-ce-task/src/main/java/org/sonar/ce/task/taskprocessor/MutableTaskResultHolder.java
new file mode 100644 (file)
index 0000000..cc06b85
--- /dev/null
@@ -0,0 +1,30 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2018 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.ce.taskprocessor;
+
+import org.sonar.ce.task.CeTaskResult;
+
+public interface MutableTaskResultHolder extends TaskResultHolder {
+  /**
+   * @throws NullPointerException if {@code taskResult} is {@code null}
+   * @throws IllegalStateException if a {@link CeTaskResult} has already been set in the holder
+   */
+  void setResult(CeTaskResult taskResult);
+}
diff --git a/server/sonar-ce-task/src/main/java/org/sonar/ce/task/taskprocessor/MutableTaskResultHolderImpl.java b/server/sonar-ce-task/src/main/java/org/sonar/ce/task/taskprocessor/MutableTaskResultHolderImpl.java
new file mode 100644 (file)
index 0000000..898c26a
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2018 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.ce.taskprocessor;
+
+import javax.annotation.CheckForNull;
+import org.sonar.ce.task.CeTaskResult;
+
+import static com.google.common.base.Preconditions.checkState;
+import static java.util.Objects.requireNonNull;
+
+public class MutableTaskResultHolderImpl implements MutableTaskResultHolder {
+  @CheckForNull
+  private CeTaskResult result;
+
+  @Override
+  public CeTaskResult getResult() {
+    checkState(this.result != null, "No CeTaskResult has been set in the holder");
+    return this.result;
+  }
+
+  @Override
+  public void setResult(CeTaskResult taskResult) {
+    requireNonNull(taskResult, "taskResult can not be null");
+    checkState(this.result == null, "CeTaskResult has already been set in the holder");
+    this.result = taskResult;
+  }
+}
diff --git a/server/sonar-ce-task/src/main/java/org/sonar/ce/task/taskprocessor/TaskResultHolder.java b/server/sonar-ce-task/src/main/java/org/sonar/ce/task/taskprocessor/TaskResultHolder.java
new file mode 100644 (file)
index 0000000..593dc88
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2018 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.ce.taskprocessor;
+
+import org.sonar.ce.task.CeTaskResult;
+
+public interface TaskResultHolder {
+  /**
+   * @throws IllegalStateException if holder holds no CeTaskResult
+   */
+  CeTaskResult getResult();
+}
diff --git a/server/sonar-ce-task/src/main/java/org/sonar/ce/task/util/InitializedProperty.java b/server/sonar-ce-task/src/main/java/org/sonar/ce/task/util/InitializedProperty.java
new file mode 100644 (file)
index 0000000..76a7288
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2018 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.ce.task.util;
+
+import javax.annotation.CheckForNull;
+import javax.annotation.Nullable;
+
+public class InitializedProperty<E> {
+  private E property;
+  private boolean initialized = false;
+
+  public InitializedProperty<E> setProperty(@Nullable E property) {
+    this.property = property;
+    this.initialized = true;
+    return this;
+  }
+
+  @CheckForNull
+  public E getProperty() {
+    return property;
+  }
+
+  public boolean isInitialized() {
+    return initialized;
+  }
+}
diff --git a/server/sonar-ce-task/src/main/java/org/sonar/ce/task/util/package-info.java b/server/sonar-ce-task/src/main/java/org/sonar/ce/task/util/package-info.java
new file mode 100644 (file)
index 0000000..3aba5ed
--- /dev/null
@@ -0,0 +1,24 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2018 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.
+ */
+@ParametersAreNonnullByDefault
+package org.sonar.ce.task.util;
+
+import javax.annotation.ParametersAreNonnullByDefault;
+
diff --git a/server/sonar-ce-task/src/main/java/org/sonar/server/computation/CeTask.java b/server/sonar-ce-task/src/main/java/org/sonar/server/computation/CeTask.java
deleted file mode 100644 (file)
index f0d4f06..0000000
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2018 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.server.computation;
-
-import com.google.common.base.MoreObjects;
-import javax.annotation.CheckForNull;
-import javax.annotation.Nullable;
-import javax.annotation.concurrent.Immutable;
-
-import static com.google.common.base.Strings.emptyToNull;
-import static java.util.Objects.requireNonNull;
-
-@Immutable
-public class CeTask {
-
-  private final String organizationUuid;
-  private final String type;
-  private final String uuid;
-  private final String componentUuid;
-  private final String componentKey;
-  private final String componentName;
-  private final String submitterUuid;
-
-  private CeTask(Builder builder) {
-    this.organizationUuid = requireNonNull(emptyToNull(builder.organizationUuid), "organizationUuid can't be null nor empty");
-    this.uuid = requireNonNull(emptyToNull(builder.uuid), "uuid can't be null nor empty");
-    this.type = requireNonNull(emptyToNull(builder.type), "type can't be null nor empty");
-    this.componentUuid = emptyToNull(builder.componentUuid);
-    this.componentKey = emptyToNull(builder.componentKey);
-    this.componentName = emptyToNull(builder.componentName);
-    this.submitterUuid = emptyToNull(builder.submitterUuid);
-  }
-
-  public String getOrganizationUuid() {
-    return organizationUuid;
-  }
-
-  public String getUuid() {
-    return uuid;
-  }
-
-  public String getType() {
-    return type;
-  }
-
-  @CheckForNull
-  public String getComponentUuid() {
-    return componentUuid;
-  }
-
-  @CheckForNull
-  public String getComponentKey() {
-    return componentKey;
-  }
-
-  @CheckForNull
-  public String getComponentName() {
-    return componentName;
-  }
-
-  @CheckForNull
-  public String getSubmitterUuid() {
-    return submitterUuid;
-  }
-
-  @Override
-  public String toString() {
-    return MoreObjects.toStringHelper(this)
-      .add("organizationUuid", organizationUuid)
-      .add("type", type)
-      .add("uuid", uuid)
-      .add("componentUuid", componentUuid)
-      .add("componentKey", componentKey)
-      .add("componentName", componentName)
-      .add("submitterUuid", submitterUuid)
-      .toString();
-  }
-
-  @Override
-  public boolean equals(@Nullable Object o) {
-    if (this == o) {
-      return true;
-    }
-    if (o == null || getClass() != o.getClass()) {
-      return false;
-    }
-    CeTask ceTask = (CeTask) o;
-    return uuid.equals(ceTask.uuid);
-  }
-
-  @Override
-  public int hashCode() {
-    return uuid.hashCode();
-  }
-
-  public static final class Builder {
-    private String organizationUuid;
-    private String uuid;
-    private String type;
-    private String componentUuid;
-    private String componentKey;
-    private String componentName;
-    private String submitterUuid;
-
-    public Builder setOrganizationUuid(String organizationUuid) {
-      this.organizationUuid = organizationUuid;
-      return this;
-    }
-
-    // FIXME remove this method when organization support is added to the Compute Engine queue
-    public boolean hasOrganizationUuid() {
-      return organizationUuid != null;
-    }
-
-    public Builder setUuid(String uuid) {
-      this.uuid = uuid;
-      return this;
-    }
-
-    public Builder setType(String type) {
-      this.type = type;
-      return this;
-    }
-
-    public Builder setComponentUuid(String componentUuid) {
-      this.componentUuid = componentUuid;
-      return this;
-    }
-
-    public Builder setComponentKey(@Nullable String s) {
-      this.componentKey = s;
-      return this;
-    }
-
-    public Builder setComponentName(@Nullable String s) {
-      this.componentName = s;
-      return this;
-    }
-
-    public Builder setSubmitterUuid(@Nullable String s) {
-      this.submitterUuid = s;
-      return this;
-    }
-
-    public CeTask build() {
-      return new CeTask(this);
-    }
-  }
-}
diff --git a/server/sonar-ce-task/src/main/java/org/sonar/server/computation/CeTaskResult.java b/server/sonar-ce-task/src/main/java/org/sonar/server/computation/CeTaskResult.java
deleted file mode 100644 (file)
index 73dcb92..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2018 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.server.computation;
-
-import java.util.Optional;
-
-/**
- * Represents the result of the processing of a {@link CeTask}.
- */
-@FunctionalInterface
-public interface CeTaskResult {
-  /**
-   * The UUID of the analysis created, if any, for the Component in {@link CeTask}
-   */
-  Optional<String> getAnalysisUuid();
-}
diff --git a/server/sonar-ce-task/src/main/java/org/sonar/server/computation/log/CeTaskLogging.java b/server/sonar-ce-task/src/main/java/org/sonar/server/computation/log/CeTaskLogging.java
deleted file mode 100644 (file)
index 8f1dbba..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2018 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.server.computation.log;
-
-import org.slf4j.MDC;
-import org.sonar.server.computation.CeTask;
-
-public class CeTaskLogging {
-
-  public static final String MDC_CE_TASK_UUID = "ceTaskUuid";
-
-  public void initForTask(CeTask task) {
-    MDC.put(MDC_CE_TASK_UUID, task.getUuid());
-  }
-
-  public void clearForTask() {
-    MDC.remove(MDC_CE_TASK_UUID);
-  }
-
-}
diff --git a/server/sonar-ce-task/src/main/java/org/sonar/server/computation/log/package-info.java b/server/sonar-ce-task/src/main/java/org/sonar/server/computation/log/package-info.java
deleted file mode 100644 (file)
index 1088bac..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2018 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.
- */
-@ParametersAreNonnullByDefault
-package org.sonar.server.computation.log;
-
-import javax.annotation.ParametersAreNonnullByDefault;
diff --git a/server/sonar-ce-task/src/main/java/org/sonar/server/computation/package-info.java b/server/sonar-ce-task/src/main/java/org/sonar/server/computation/package-info.java
deleted file mode 100644 (file)
index 2b97ccb..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2018 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.
- */
-@ParametersAreNonnullByDefault
-package org.sonar.server.computation;
-
-import javax.annotation.ParametersAreNonnullByDefault;
diff --git a/server/sonar-ce-task/src/main/java/org/sonar/server/computation/task/container/EagerStart.java b/server/sonar-ce-task/src/main/java/org/sonar/server/computation/task/container/EagerStart.java
deleted file mode 100644 (file)
index 10ab10a..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2018 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.server.computation.task.container;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * Components with this annotation will be eagerly started when loaded into the {@link TaskContainerImpl}.
- */
-@Retention(RetentionPolicy.RUNTIME)
-@Target(ElementType.TYPE)
-public @interface EagerStart {
-}
diff --git a/server/sonar-ce-task/src/main/java/org/sonar/server/computation/task/container/TaskContainer.java b/server/sonar-ce-task/src/main/java/org/sonar/server/computation/task/container/TaskContainer.java
deleted file mode 100644 (file)
index ba9a14b..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2018 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.server.computation.task.container;
-
-import org.picocontainer.PicoContainer;
-import org.sonar.server.computation.CeTask;
-import org.sonar.core.platform.ComponentContainer;
-import org.sonar.core.platform.ContainerPopulator;
-
-/**
- * The Compute Engine task container. Created for a specific parent {@link ComponentContainer} and a specific {@link CeTask}.
- */
-public interface TaskContainer extends ContainerPopulator.Container, AutoCloseable {
-
-  ComponentContainer getParent();
-
-  /**
-   * Starts task container, starting any startable component in it.
-   */
-  void bootup();
-
-  /**
-   * Cleans up resources after process has been called and has returned.
-   */
-  @Override
-  void close();
-
-  /**
-   * Access to the underlying pico container.
-   */
-  PicoContainer getPicoContainer();
-
-}
diff --git a/server/sonar-ce-task/src/main/java/org/sonar/server/computation/task/container/TaskContainerImpl.java b/server/sonar-ce-task/src/main/java/org/sonar/server/computation/task/container/TaskContainerImpl.java
deleted file mode 100644 (file)
index 3902a1b..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2018 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.server.computation.task.container;
-
-import java.util.List;
-import org.picocontainer.ComponentAdapter;
-import org.picocontainer.ComponentMonitor;
-import org.picocontainer.DefaultPicoContainer;
-import org.picocontainer.MutablePicoContainer;
-import org.picocontainer.behaviors.OptInCaching;
-import org.picocontainer.lifecycle.ReflectionLifecycleStrategy;
-import org.picocontainer.monitors.NullComponentMonitor;
-import org.sonar.api.config.PropertyDefinitions;
-import org.sonar.api.utils.log.Loggers;
-import org.sonar.core.platform.ComponentContainer;
-import org.sonar.core.platform.ContainerPopulator;
-import org.sonar.core.platform.Module;
-import org.sonar.core.platform.StopSafeReflectionLifecycleStrategy;
-
-import static java.util.Objects.requireNonNull;
-
-public class TaskContainerImpl extends ComponentContainer implements TaskContainer {
-
-  public TaskContainerImpl(ComponentContainer parent, ContainerPopulator<TaskContainer> populator) {
-    super(createContainer(requireNonNull(parent)), parent.getComponentByType(PropertyDefinitions.class));
-
-    populateContainer(requireNonNull(populator));
-  }
-
-  private void populateContainer(ContainerPopulator<TaskContainer> populator) {
-    populator.populateContainer(this);
-    populateFromModules();
-  }
-
-  private void populateFromModules() {
-    List<Module> modules = getComponentsByType(Module.class);
-    for (Module module : modules) {
-      module.configure(this);
-    }
-  }
-
-  /**
-   * Creates a PicContainer which extends the specified ComponentContainer <strong>but is not referenced in return</strong>
-   * and lazily starts its components.
-   */
-  private static MutablePicoContainer createContainer(ComponentContainer parent) {
-    ComponentMonitor componentMonitor = new NullComponentMonitor();
-    ReflectionLifecycleStrategy lifecycleStrategy = new StopSafeReflectionLifecycleStrategy(componentMonitor) {
-      @Override
-      public boolean isLazy(ComponentAdapter<?> adapter) {
-        return adapter.getComponentImplementation().getAnnotation(EagerStart.class) == null;
-      }
-    };
-
-    return new DefaultPicoContainer(new OptInCaching(), lifecycleStrategy, parent.getPicoContainer(), componentMonitor);
-  }
-
-  @Override
-  public void bootup() {
-    startComponents();
-  }
-
-  @Override
-  public String toString() {
-    return "TaskContainerImpl";
-  }
-
-  @Override
-  public void close() {
-    try {
-      stopComponents();
-    } catch (Throwable t) {
-      Loggers.get(TaskContainerImpl.class).error("Cleanup of container failed", t);
-    }
-  }
-}
diff --git a/server/sonar-ce-task/src/main/java/org/sonar/server/computation/task/container/package-info.java b/server/sonar-ce-task/src/main/java/org/sonar/server/computation/task/container/package-info.java
deleted file mode 100644 (file)
index f01956f..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2018 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.
- */
-@ParametersAreNonnullByDefault
-package org.sonar.server.computation.task.container;
-
-import javax.annotation.ParametersAreNonnullByDefault;
diff --git a/server/sonar-ce-task/src/main/java/org/sonar/server/computation/task/step/ComputationStep.java b/server/sonar-ce-task/src/main/java/org/sonar/server/computation/task/step/ComputationStep.java
deleted file mode 100644 (file)
index f8fd66f..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2018 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.server.computation.task.step;
-
-/**
- * A way of splitting the processing of a task into smaller items which can be executed sequencially
- * by {@link ComputationStepExecutor}.
- */
-public interface ComputationStep {
-
-  void execute();
-
-  String getDescription();
-}
diff --git a/server/sonar-ce-task/src/main/java/org/sonar/server/computation/task/step/ComputationStepExecutor.java b/server/sonar-ce-task/src/main/java/org/sonar/server/computation/task/step/ComputationStepExecutor.java
deleted file mode 100644 (file)
index 536121f..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2018 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.server.computation.task.step;
-
-import javax.annotation.CheckForNull;
-import javax.annotation.Nullable;
-import org.sonar.api.utils.log.Logger;
-import org.sonar.api.utils.log.Loggers;
-import org.sonar.core.util.logs.Profiler;
-
-public final class ComputationStepExecutor {
-  private static final Logger LOGGER = Loggers.get(ComputationStepExecutor.class);
-
-  private final ComputationSteps steps;
-  @CheckForNull
-  private final Listener listener;
-
-  /**
-   * Used when no {@link ComputationStepExecutor.Listener} is available in pico
-   * container.
-   */
-  public ComputationStepExecutor(ComputationSteps steps) {
-    this(steps, null);
-  }
-
-  public ComputationStepExecutor(ComputationSteps steps, @Nullable Listener listener) {
-    this.steps = steps;
-    this.listener = listener;
-  }
-
-  public void execute() {
-    Profiler stepProfiler = Profiler.create(LOGGER);
-    boolean allStepsExecuted = false;
-    try {
-      executeSteps(stepProfiler);
-      allStepsExecuted = true;
-    } finally {
-      if (listener != null) {
-        executeListener(allStepsExecuted);
-      }
-    }
-  }
-
-  private void executeSteps(Profiler stepProfiler) {
-    for (ComputationStep step : steps.instances()) {
-      stepProfiler.start();
-      step.execute();
-      stepProfiler.stopDebug(step.getDescription());
-    }
-  }
-
-  private void executeListener(boolean allStepsExecuted) {
-    try {
-      listener.finished(allStepsExecuted);
-    } catch (Throwable e) {
-      // any Throwable throws by the listener going up the stack might hide an Exception/Error thrown by the step and
-      // cause it be swallowed. We don't wan't that => we catch Throwable
-      LOGGER.error("Execution of listener failed", e);
-    }
-  }
-
-  @FunctionalInterface
-  public interface Listener {
-    void finished(boolean allStepsExecuted);
-  }
-}
diff --git a/server/sonar-ce-task/src/main/java/org/sonar/server/computation/task/step/ComputationSteps.java b/server/sonar-ce-task/src/main/java/org/sonar/server/computation/task/step/ComputationSteps.java
deleted file mode 100644 (file)
index c35ca8f..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2018 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.server.computation.task.step;
-
-import java.util.List;
-
-/**
- * Ordered list of steps classes and instances to be executed in a Compute Engine process.
- */
-public interface ComputationSteps {
-  /**
-   * List of all {@link ComputationStep},
-   * ordered by execution sequence.
-   */
-  List<Class<? extends ComputationStep>> orderedStepClasses();
-
-  /**
-   * List of all {@link ComputationStep},
-   * ordered by execution sequence.
-   */
-  Iterable<ComputationStep> instances();
-}
diff --git a/server/sonar-ce-task/src/main/java/org/sonar/server/computation/task/step/ExecuteStatelessInitExtensionsStep.java b/server/sonar-ce-task/src/main/java/org/sonar/server/computation/task/step/ExecuteStatelessInitExtensionsStep.java
deleted file mode 100644 (file)
index b587083..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2018 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.server.computation.task.step;
-
-import org.sonar.api.ce.ComputeEngineSide;
-
-/**
- * Execute {@link StatelessInitExtension} instances in no specific order.
- * If an extension fails (throws an exception), consecutive extensions
- * won't be called.
- */
-@ComputeEngineSide
-public class ExecuteStatelessInitExtensionsStep implements ComputationStep {
-
-  private final StatelessInitExtension[] extensions;
-
-  public ExecuteStatelessInitExtensionsStep(StatelessInitExtension[] extensions) {
-    this.extensions = extensions;
-  }
-
-  /**
-   * Used when zero {@link StatelessInitExtension} are registered into container.
-   */
-  public ExecuteStatelessInitExtensionsStep() {
-    this(new StatelessInitExtension[0]);
-  }
-
-  @Override
-  public void execute() {
-    for (StatelessInitExtension extension : extensions) {
-      extension.onInit();
-    }
-  }
-
-  @Override
-  public String getDescription() {
-    return "Initialize";
-  }
-}
diff --git a/server/sonar-ce-task/src/main/java/org/sonar/server/computation/task/step/StatelessInitExtension.java b/server/sonar-ce-task/src/main/java/org/sonar/server/computation/task/step/StatelessInitExtension.java
deleted file mode 100644 (file)
index aedc81e..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2018 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.server.computation.task.step;
-
-import org.sonar.api.ExtensionPoint;
-import org.sonar.api.ce.ComputeEngineSide;
-
-/**
- * Extension point that is called during processing of a task
- * by {@link ExecuteStatelessInitExtensionsStep}.
- * It is stateless, the same instance is reused for all tasks.
- * As a consequence Compute Engine task components can't be injected
- * as dependencies.
- */
-@ComputeEngineSide
-@ExtensionPoint
-public interface StatelessInitExtension {
-
-  /**
-   * This method can make the task fail by throwing a {@link RuntimeException}
-   */
-  void onInit();
-
-}
diff --git a/server/sonar-ce-task/src/main/java/org/sonar/server/computation/task/step/TypedException.java b/server/sonar-ce-task/src/main/java/org/sonar/server/computation/task/step/TypedException.java
deleted file mode 100644 (file)
index b600f90..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2018 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.server.computation.task.step;
-
-/**
- * This interface is implemented by the exceptions
- * that provide a type of error when failing
- * a Compute Engine task.
- * The error type is persisted and available in
- * the tasks returned by the web services api/ce.
- */
-public interface TypedException {
-
-  String getType();
-
-}
diff --git a/server/sonar-ce-task/src/main/java/org/sonar/server/computation/task/step/package-info.java b/server/sonar-ce-task/src/main/java/org/sonar/server/computation/task/step/package-info.java
deleted file mode 100644 (file)
index 5868b7c..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2018 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.
- */
-@ParametersAreNonnullByDefault
-package org.sonar.server.computation.task.step;
-
-import javax.annotation.ParametersAreNonnullByDefault;
diff --git a/server/sonar-ce-task/src/main/java/org/sonar/server/computation/taskprocessor/MutableTaskResultHolder.java b/server/sonar-ce-task/src/main/java/org/sonar/server/computation/taskprocessor/MutableTaskResultHolder.java
deleted file mode 100644 (file)
index 5e4409b..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2018 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.server.computation.taskprocessor;
-
-import org.sonar.server.computation.CeTaskResult;
-
-public interface MutableTaskResultHolder extends TaskResultHolder {
-  /**
-   * @throws NullPointerException if {@code taskResult} is {@code null}
-   * @throws IllegalStateException if a {@link CeTaskResult} has already been set in the holder
-   */
-  void setResult(CeTaskResult taskResult);
-}
diff --git a/server/sonar-ce-task/src/main/java/org/sonar/server/computation/taskprocessor/MutableTaskResultHolderImpl.java b/server/sonar-ce-task/src/main/java/org/sonar/server/computation/taskprocessor/MutableTaskResultHolderImpl.java
deleted file mode 100644 (file)
index 6fe1e53..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2018 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.server.computation.taskprocessor;
-
-import javax.annotation.CheckForNull;
-import org.sonar.server.computation.CeTaskResult;
-
-import static com.google.common.base.Preconditions.checkState;
-import static java.util.Objects.requireNonNull;
-
-public class MutableTaskResultHolderImpl implements MutableTaskResultHolder {
-  @CheckForNull
-  private CeTaskResult result;
-
-  @Override
-  public CeTaskResult getResult() {
-    checkState(this.result != null, "No CeTaskResult has been set in the holder");
-    return this.result;
-  }
-
-  @Override
-  public void setResult(CeTaskResult taskResult) {
-    requireNonNull(taskResult, "taskResult can not be null");
-    checkState(this.result == null, "CeTaskResult has already been set in the holder");
-    this.result = taskResult;
-  }
-}
diff --git a/server/sonar-ce-task/src/main/java/org/sonar/server/computation/taskprocessor/TaskResultHolder.java b/server/sonar-ce-task/src/main/java/org/sonar/server/computation/taskprocessor/TaskResultHolder.java
deleted file mode 100644 (file)
index b4c3e97..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2018 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.server.computation.taskprocessor;
-
-import org.sonar.server.computation.CeTaskResult;
-
-public interface TaskResultHolder {
-  /**
-   * @throws IllegalStateException if holder holds no CeTaskResult
-   */
-  CeTaskResult getResult();
-}
diff --git a/server/sonar-ce-task/src/main/java/org/sonar/server/computation/util/InitializedProperty.java b/server/sonar-ce-task/src/main/java/org/sonar/server/computation/util/InitializedProperty.java
deleted file mode 100644 (file)
index 01170eb..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2018 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.server.computation.util;
-
-import javax.annotation.CheckForNull;
-import javax.annotation.Nullable;
-
-public class InitializedProperty<E> {
-  private E property;
-  private boolean initialized = false;
-
-  public InitializedProperty<E> setProperty(@Nullable E property) {
-    this.property = property;
-    this.initialized = true;
-    return this;
-  }
-
-  @CheckForNull
-  public E getProperty() {
-    return property;
-  }
-
-  public boolean isInitialized() {
-    return initialized;
-  }
-}
diff --git a/server/sonar-ce-task/src/main/java/org/sonar/server/computation/util/package-info.java b/server/sonar-ce-task/src/main/java/org/sonar/server/computation/util/package-info.java
deleted file mode 100644 (file)
index 415bc7b..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2018 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.
- */
-@ParametersAreNonnullByDefault
-package org.sonar.server.computation.util;
-
-import javax.annotation.ParametersAreNonnullByDefault;
-
diff --git a/server/sonar-ce-task/src/test/java/org/sonar/ce/task/CeTaskTest.java b/server/sonar-ce-task/src/test/java/org/sonar/ce/task/CeTaskTest.java
new file mode 100644 (file)
index 0000000..842c17d
--- /dev/null
@@ -0,0 +1,148 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2018 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.ce.task;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class CeTaskTest {
+  @Rule
+  public ExpectedException expectedException = ExpectedException.none();
+
+  private CeTask.Builder underTest = new CeTask.Builder();
+
+  @Test
+  public void build_fails_with_NPE_if_organizationUuid_is_null() {
+    expectedException.expect(NullPointerException.class);
+    expectedException.expectMessage("organizationUuid can't be null nor empty");
+
+    underTest.build();
+  }
+
+  @Test
+  public void build_fails_with_NPE_if_organizationUuid_is_empty() {
+    underTest.setOrganizationUuid("");
+
+    expectedException.expect(NullPointerException.class);
+    expectedException.expectMessage("organizationUuid can't be null nor empty");
+
+    underTest.build();
+  }
+
+  @Test
+  public void build_fails_with_NPE_if_uid_is_null() {
+    underTest.setOrganizationUuid("org1");
+
+    expectedException.expect(NullPointerException.class);
+    expectedException.expectMessage("uuid can't be null nor empty");
+
+    underTest.build();
+  }
+
+  @Test
+  public void build_fails_with_NPE_if_uuid_is_empty() {
+    underTest.setOrganizationUuid("org1").setUuid("");
+
+    expectedException.expect(NullPointerException.class);
+    expectedException.expectMessage("uuid can't be null nor empty");
+
+    underTest.build();
+  }
+
+  @Test
+  public void build_fails_with_NPE_if_type_is_null() {
+    underTest.setOrganizationUuid("org1").setUuid("uuid");
+
+    expectedException.expect(NullPointerException.class);
+    expectedException.expectMessage("type can't be null nor empty");
+
+    underTest.build();
+  }
+
+  @Test
+  public void build_fails_with_NPE_if_type_is_empty() {
+    underTest.setOrganizationUuid("org1").setUuid("uuid").setType("");
+
+    expectedException.expect(NullPointerException.class);
+    expectedException.expectMessage("type can't be null nor empty");
+
+    underTest.build();
+  }
+
+  @Test
+  public void verify_getters() {
+    underTest.setOrganizationUuid("org1");
+    underTest.setType("TYPE_1");
+    underTest.setUuid("UUID_1");
+    underTest.setSubmitterUuid("LOGIN_1");
+    underTest.setComponentKey("COMPONENT_KEY_1");
+    underTest.setComponentUuid("COMPONENT_UUID_1");
+    underTest.setComponentName("The component");
+
+    CeTask task = underTest.build();
+
+    assertThat(task.getOrganizationUuid()).isEqualTo("org1");
+    assertThat(task.getUuid()).isEqualTo("UUID_1");
+    assertThat(task.getType()).isEqualTo("TYPE_1");
+    assertThat(task.getSubmitterUuid()).isEqualTo("LOGIN_1");
+    assertThat(task.getComponentKey()).isEqualTo("COMPONENT_KEY_1");
+    assertThat(task.getComponentUuid()).isEqualTo("COMPONENT_UUID_1");
+    assertThat(task.getComponentName()).isEqualTo("The component");
+  }
+
+  @Test
+  public void empty_in_component_properties_is_considered_as_null() {
+    CeTask ceTask = underTest.setOrganizationUuid("org1").setUuid("uuid").setType("type")
+      .setComponentKey("")
+      .setComponentName("")
+      .setComponentUuid("")
+      .build();
+
+    assertThat(ceTask.getComponentKey()).isNull();
+    assertThat(ceTask.getComponentName()).isNull();
+    assertThat(ceTask.getComponentUuid()).isNull();
+  }
+
+  @Test
+  public void empty_in_submitterLogin_is_considered_as_null() {
+    CeTask ceTask = underTest.setOrganizationUuid("org1").setUuid("uuid").setType("type")
+      .setSubmitterUuid("")
+      .build();
+
+    assertThat(ceTask.getSubmitterUuid()).isNull();
+  }
+
+  @Test
+  public void equals_and_hashCode_on_uuid() {
+    underTest.setOrganizationUuid("org1").setType("TYPE_1").setUuid("UUID_1");
+    CeTask task1 = underTest.build();
+    CeTask task1bis = underTest.build();
+    CeTask task2 = new CeTask.Builder().setOrganizationUuid("org1").setType("TYPE_1").setUuid("UUID_2").build();
+
+    assertThat(task1.equals(task1)).isTrue();
+    assertThat(task1.equals(task1bis)).isTrue();
+    assertThat(task1.equals(task2)).isFalse();
+    assertThat(task1.hashCode()).isEqualTo(task1.hashCode());
+    assertThat(task1.hashCode()).isEqualTo(task1bis.hashCode());
+  }
+}
diff --git a/server/sonar-ce-task/src/test/java/org/sonar/ce/task/ChangeLogLevel.java b/server/sonar-ce-task/src/test/java/org/sonar/ce/task/ChangeLogLevel.java
new file mode 100644 (file)
index 0000000..a873432
--- /dev/null
@@ -0,0 +1,40 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2018 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.ce.task;
+
+import org.sonar.api.utils.log.Logger;
+import org.sonar.api.utils.log.LoggerLevel;
+import org.sonar.api.utils.log.Loggers;
+
+public final class ChangeLogLevel implements AutoCloseable {
+  private final Logger logger;
+  private final LoggerLevel previous;
+
+  public ChangeLogLevel(Class<?> clazz, LoggerLevel newLevel) {
+    this.logger = Loggers.get(clazz);
+    this.previous = logger.getLevel();
+    logger.setLevel(newLevel);
+  }
+
+  @Override
+  public void close() {
+    logger.setLevel(previous);
+  }
+}
diff --git a/server/sonar-ce-task/src/test/java/org/sonar/ce/task/container/TaskContainerImplTest.java b/server/sonar-ce-task/src/test/java/org/sonar/ce/task/container/TaskContainerImplTest.java
new file mode 100644 (file)
index 0000000..5360c7a
--- /dev/null
@@ -0,0 +1,114 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2018 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.ce.task.container;
+
+import org.junit.Test;
+import org.picocontainer.Startable;
+import org.sonar.core.platform.ComponentContainer;
+import org.sonar.core.platform.ContainerPopulator;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+
+public class TaskContainerImplTest {
+  private ComponentContainer parent = new ComponentContainer();
+  private ContainerPopulator populator = mock(ContainerPopulator.class);
+
+  @Test(expected = NullPointerException.class)
+  public void constructor_fails_fast_on_null_container() {
+    new TaskContainerImpl(null, mock(ContainerPopulator.class));
+  }
+
+  @Test(expected = NullPointerException.class)
+  public void constructor_fails_fast_on_null_item() {
+    new TaskContainerImpl(new ComponentContainer(), null);
+  }
+
+  @Test
+  public void calls_method_populateContainer_of_passed_in_populator() {
+    TaskContainerImpl ceContainer = new TaskContainerImpl(parent, populator);
+
+    verify(populator).populateContainer(ceContainer);
+  }
+
+  @Test
+  public void ce_container_is_not_child_of_specified_container() {
+    TaskContainerImpl ceContainer = new TaskContainerImpl(parent, populator);
+
+    assertThat(parent.getChildren()).isEmpty();
+    verify(populator).populateContainer(ceContainer);
+  }
+
+  @Test
+  public void bootup_starts_components_lazily_unless_they_are_annotated_with_EagerStart() {
+    final DefaultStartable defaultStartable = new DefaultStartable();
+    final EagerStartable eagerStartable = new EagerStartable();
+    TaskContainerImpl ceContainer = new TaskContainerImpl(parent, container -> {
+      container.add(defaultStartable);
+      container.add(eagerStartable);
+    });
+    ceContainer.bootup();
+
+    assertThat(defaultStartable.startCalls).isEqualTo(0);
+    assertThat(defaultStartable.stopCalls).isEqualTo(0);
+    assertThat(eagerStartable.startCalls).isEqualTo(1);
+    assertThat(eagerStartable.stopCalls).isEqualTo(0);
+  }
+
+  @Test
+  public void close_stops_started_components() {
+    final DefaultStartable defaultStartable = new DefaultStartable();
+    final EagerStartable eagerStartable = new EagerStartable();
+    TaskContainerImpl ceContainer = new TaskContainerImpl(parent, container -> {
+      container.add(defaultStartable);
+      container.add(eagerStartable);
+    });
+    ceContainer.bootup();
+
+    ceContainer.close();
+
+    assertThat(defaultStartable.startCalls).isEqualTo(0);
+    assertThat(defaultStartable.stopCalls).isEqualTo(0);
+    assertThat(eagerStartable.startCalls).isEqualTo(1);
+    assertThat(eagerStartable.stopCalls).isEqualTo(1);
+  }
+
+  public static class DefaultStartable implements Startable {
+    protected int startCalls = 0;
+    protected int stopCalls = 0;
+
+    @Override
+    public void start() {
+      startCalls++;
+    }
+
+    @Override
+    public void stop() {
+      stopCalls++;
+    }
+  }
+
+  @EagerStart
+  public static class EagerStartable extends DefaultStartable {
+  }
+
+
+}
diff --git a/server/sonar-ce-task/src/test/java/org/sonar/ce/task/log/CeTaskLoggingTest.java b/server/sonar-ce-task/src/test/java/org/sonar/ce/task/log/CeTaskLoggingTest.java
new file mode 100644 (file)
index 0000000..a06386a
--- /dev/null
@@ -0,0 +1,78 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2018 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.ce.task.log;
+
+import ch.qos.logback.core.joran.spi.JoranException;
+import org.junit.After;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+import org.mockito.Mockito;
+import org.slf4j.MDC;
+import org.sonar.ce.task.CeTask;
+import org.sonar.process.logging.LogbackHelper;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.Mockito.when;
+import static org.sonar.ce.task.log.CeTaskLogging.MDC_CE_TASK_UUID;
+
+public class CeTaskLoggingTest {
+
+  @Rule
+  public ExpectedException expectedException = ExpectedException.none();
+
+  private LogbackHelper helper = new LogbackHelper();
+  private CeTaskLogging underTest = new CeTaskLogging();
+
+  @After
+  public void resetLogback() throws JoranException {
+    helper.resetFromXml("/logback-test.xml");
+  }
+
+  @After
+  public void cleanMDC() {
+    MDC.clear();
+  }
+
+  @Test
+  public void initForTask_stores_task_uuid_in_MDC() {
+    String uuid = "ce_task_uuid";
+
+    underTest.initForTask(createCeTask(uuid));
+
+    assertThat(MDC.get(MDC_CE_TASK_UUID)).isEqualTo(uuid);
+  }
+
+  private CeTask createCeTask(String uuid) {
+    CeTask ceTask = Mockito.mock(CeTask.class);
+    when(ceTask.getUuid()).thenReturn(uuid);
+    return ceTask;
+  }
+
+  @Test
+  public void clearForTask_removes_task_uuid_from_MDC() {
+    MDC.put(MDC_CE_TASK_UUID, "some_value");
+
+    underTest.clearForTask();
+
+    assertThat(MDC.get(MDC_CE_TASK_UUID)).isNull();
+  }
+
+}
diff --git a/server/sonar-ce-task/src/test/java/org/sonar/ce/task/step/ComputationStepExecutorTest.java b/server/sonar-ce-task/src/test/java/org/sonar/ce/task/step/ComputationStepExecutorTest.java
new file mode 100644 (file)
index 0000000..ca3af21
--- /dev/null
@@ -0,0 +1,166 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2018 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.ce.task.step;
+
+import java.util.Arrays;
+import java.util.List;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+import org.mockito.InOrder;
+import org.sonar.api.utils.log.LogTester;
+import org.sonar.api.utils.log.LoggerLevel;
+import org.sonar.ce.task.ChangeLogLevel;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.fail;
+import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.Mockito.doThrow;
+import static org.mockito.Mockito.inOrder;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
+import static org.mockito.Mockito.when;
+
+public class ComputationStepExecutorTest {
+  @Rule
+  public LogTester logTester = new LogTester();
+  @Rule
+  public ExpectedException expectedException = ExpectedException.none();
+
+  private final ComputationStepExecutor.Listener listener = mock(ComputationStepExecutor.Listener.class);
+  private final ComputationStep computationStep1 = mockComputationStep("step1");
+  private final ComputationStep computationStep2 = mockComputationStep("step2");
+  private final ComputationStep computationStep3 = mockComputationStep("step3");
+
+  @Test
+  public void execute_call_execute_on_each_ComputationStep_in_order_returned_by_instances_method() {
+    new ComputationStepExecutor(mockComputationSteps(computationStep1, computationStep2, computationStep3))
+      .execute();
+
+    InOrder inOrder = inOrder(computationStep1, computationStep2, computationStep3);
+    inOrder.verify(computationStep1).execute();
+    inOrder.verify(computationStep1).getDescription();
+    inOrder.verify(computationStep2).execute();
+    inOrder.verify(computationStep2).getDescription();
+    inOrder.verify(computationStep3).execute();
+    inOrder.verify(computationStep3).getDescription();
+    inOrder.verifyNoMoreInteractions();
+  }
+
+  @Test
+  public void execute_let_exception_thrown_by_ComputationStep_go_up_as_is() {
+    String message = "Exception should go up";
+
+    ComputationStep computationStep = mockComputationStep("step1");
+    doThrow(new RuntimeException(message))
+      .when(computationStep)
+      .execute();
+
+    ComputationStepExecutor computationStepExecutor = new ComputationStepExecutor(mockComputationSteps(computationStep));
+
+    expectedException.expect(RuntimeException.class);
+    expectedException.expectMessage(message);
+
+    computationStepExecutor.execute();
+  }
+
+  @Test
+  public void execute_does_not_log_end_timing_for_each_ComputationStep_called_when_level_is_INFO() {
+    List<String> infoLogs = execute_logs_end_timing_for_each_ComputationStep_called_when_(LoggerLevel.INFO);
+    assertThat(infoLogs).isEmpty();
+  }
+
+  @Test
+  public void execute_logs_end_timing_for_each_ComputationStep_called_when_level_is_DEBUG() {
+    List<String> infoLogs = execute_logs_end_timing_for_each_ComputationStep_called_when_(LoggerLevel.DEBUG);
+    assertThat(infoLogs).hasSize(2);
+    assertThat(infoLogs.get(0)).contains("step1 | time=");
+    assertThat(infoLogs.get(1)).contains("step2 | time=");
+  }
+
+  @Test
+  public void execute_logs_end_timing_for_each_ComputationStep_called_when_level_is_TRACE() {
+    List<String> infoLogs = execute_logs_end_timing_for_each_ComputationStep_called_when_(LoggerLevel.TRACE);
+    assertThat(infoLogs).hasSize(2);
+    assertThat(infoLogs.get(0)).contains("step1 | time=");
+    assertThat(infoLogs.get(1)).contains("step2 | time=");
+  }
+
+  private List<String> execute_logs_end_timing_for_each_ComputationStep_called_when_(LoggerLevel level) {
+    try (ChangeLogLevel executor = new ChangeLogLevel(ComputationStepExecutor.class, level);
+      ChangeLogLevel step1 = new ChangeLogLevel(computationStep1.getClass(), level);
+      ChangeLogLevel step2 = new ChangeLogLevel(computationStep2.getClass(), level)) {
+      new ComputationStepExecutor(mockComputationSteps(computationStep1, computationStep2))
+        .execute();
+
+      return logTester.logs(LoggerLevel.DEBUG);
+    }
+  }
+
+  @Test
+  public void execute_calls_listener_finished_method_with_all_step_runs() {
+    new ComputationStepExecutor(mockComputationSteps(computationStep1, computationStep2), listener)
+      .execute();
+
+    verify(listener).finished(true);
+    verifyNoMoreInteractions(listener);
+  }
+
+  @Test
+  public void execute_calls_listener_finished_method_even_if_a_step_throws_an_exception() {
+    RuntimeException toBeThrown = new RuntimeException("simulating failing execute Step method");
+    doThrow(toBeThrown)
+      .when(computationStep1)
+      .execute();
+
+    try {
+      new ComputationStepExecutor(mockComputationSteps(computationStep1, computationStep2), listener)
+        .execute();
+      fail("exception toBeThrown should have been raised");
+    } catch (RuntimeException e) {
+      assertThat(e).isSameAs(toBeThrown);
+      verify(listener).finished(false);
+      verifyNoMoreInteractions(listener);
+    }
+  }
+
+  @Test
+  public void execute_does_not_fail_if_listener_throws_Throwable() {
+    ComputationStepExecutor.Listener listener = mock(ComputationStepExecutor.Listener.class);
+    doThrow(new Error("Facking error thrown by Listener"))
+        .when(listener)
+        .finished(anyBoolean());
+
+    new ComputationStepExecutor(mockComputationSteps(computationStep1), listener).execute();
+  }
+
+  private static ComputationSteps mockComputationSteps(ComputationStep... computationSteps) {
+    ComputationSteps steps = mock(ComputationSteps.class);
+    when(steps.instances()).thenReturn(Arrays.asList(computationSteps));
+    return steps;
+  }
+
+  private static ComputationStep mockComputationStep(String desc) {
+    ComputationStep mock = mock(ComputationStep.class);
+    when(mock.getDescription()).thenReturn(desc);
+    return mock;
+  }
+}
diff --git a/server/sonar-ce-task/src/test/java/org/sonar/ce/task/step/ExecuteStatelessInitExtensionsStepTest.java b/server/sonar-ce-task/src/test/java/org/sonar/ce/task/step/ExecuteStatelessInitExtensionsStepTest.java
new file mode 100644 (file)
index 0000000..15d0664
--- /dev/null
@@ -0,0 +1,89 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2018 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.ce.task.step;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+import org.mockito.InOrder;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.junit.Assert.fail;
+import static org.mockito.Mockito.doThrow;
+import static org.mockito.Mockito.inOrder;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+
+public class ExecuteStatelessInitExtensionsStepTest {
+
+  @Rule
+  public ExpectedException expectedException = ExpectedException.none();
+
+  @Test
+  public void test_getDescription() {
+    ExecuteStatelessInitExtensionsStep underTest = new ExecuteStatelessInitExtensionsStep();
+
+    assertThat(underTest.getDescription()).isEqualTo("Initialize");
+  }
+
+  @Test
+  public void do_nothing_if_no_extensions() {
+    ExecuteStatelessInitExtensionsStep underTest = new ExecuteStatelessInitExtensionsStep();
+
+    // no failure
+    underTest.execute();
+  }
+
+  @Test
+  public void execute_extensions() {
+    StatelessInitExtension ext1 = mock(StatelessInitExtension.class);
+    StatelessInitExtension ext2 = mock(StatelessInitExtension.class);
+
+    ExecuteStatelessInitExtensionsStep underTest = new ExecuteStatelessInitExtensionsStep(
+      new StatelessInitExtension[] {ext1, ext2});
+    underTest.execute();
+
+    InOrder inOrder = inOrder(ext1, ext2);
+    inOrder.verify(ext1).onInit();
+    inOrder.verify(ext2).onInit();
+  }
+
+  @Test
+  public void fail_if_an_extension_throws_an_exception() {
+    StatelessInitExtension ext1 = mock(StatelessInitExtension.class);
+    StatelessInitExtension ext2 = mock(StatelessInitExtension.class);
+    doThrow(new IllegalStateException("BOOM")).when(ext2).onInit();
+    StatelessInitExtension ext3 = mock(StatelessInitExtension.class);
+
+    ExecuteStatelessInitExtensionsStep underTest = new ExecuteStatelessInitExtensionsStep(
+      new StatelessInitExtension[] {ext1, ext2, ext3});
+
+    try {
+      underTest.execute();
+      fail();
+    } catch (IllegalStateException e) {
+      assertThat(e).hasMessage("BOOM");
+      verify(ext1).onInit();
+      verify(ext3, never()).onInit();
+    }
+  }
+
+}
diff --git a/server/sonar-ce-task/src/test/java/org/sonar/ce/task/step/StepsExplorer.java b/server/sonar-ce-task/src/test/java/org/sonar/ce/task/step/StepsExplorer.java
new file mode 100644 (file)
index 0000000..d433ff8
--- /dev/null
@@ -0,0 +1,68 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2018 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.ce.task.step;
+
+import com.google.common.base.Function;
+import com.google.common.base.Predicate;
+import java.lang.reflect.Modifier;
+import java.util.Set;
+import javax.annotation.Nonnull;
+import org.reflections.Reflections;
+
+import static com.google.common.base.Predicates.notNull;
+import static com.google.common.collect.FluentIterable.from;
+
+public class StepsExplorer {
+  /**
+   * Compute set of canonical names of classes implementing ComputationStep in the specified package using reflection.
+   */
+  public static Set<String> retrieveStepPackageStepsCanonicalNames(String packageName) {
+    Reflections reflections = new Reflections(packageName);
+
+    return from(reflections.getSubTypesOf(ComputationStep.class))
+        .filter(NotAbstractClass.INSTANCE)
+        .transform(ClassToCanonicalName.INSTANCE)
+        // anonymous classes do not have canonical names
+        .filter(notNull())
+        .toSet();
+  }
+
+  private enum NotAbstractClass implements Predicate<Class<? extends ComputationStep>> {
+    INSTANCE;
+
+    @Override
+    public boolean apply(Class<? extends ComputationStep> input) {
+      return !Modifier.isAbstract(input.getModifiers());
+    }
+  }
+
+  public static Function<Class<?>, String> toCanonicalName() {
+    return ClassToCanonicalName.INSTANCE;
+  }
+
+  private enum ClassToCanonicalName implements Function<Class<?>, String> {
+    INSTANCE;
+
+    @Override
+    public String apply(@Nonnull Class<?> input) {
+      return input.getCanonicalName();
+    }
+  }
+}
diff --git a/server/sonar-ce-task/src/test/java/org/sonar/ce/task/taskprocessor/MutableTaskResultHolderImplTest.java b/server/sonar-ce-task/src/test/java/org/sonar/ce/task/taskprocessor/MutableTaskResultHolderImplTest.java
new file mode 100644 (file)
index 0000000..8797e4a
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2018 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.ce.taskprocessor;
+
+import org.assertj.core.api.Assertions;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+import org.sonar.ce.task.CeTaskResult;
+
+import static org.mockito.Mockito.mock;
+
+public class MutableTaskResultHolderImplTest {
+  @Rule
+  public ExpectedException expectedException = ExpectedException.none();
+
+  private MutableTaskResultHolder underTest = new MutableTaskResultHolderImpl();
+
+  @Test
+  public void getResult_throws_ISE_if_no_CeTaskResult_is_set() {
+    expectedException.expect(IllegalStateException.class);
+    expectedException.expectMessage("No CeTaskResult has been set in the holder");
+
+    underTest.getResult();
+  }
+
+  @Test
+  public void getResult_returns_object_set_with_setResult() {
+    CeTaskResult taskResult = mock(CeTaskResult.class);
+
+    underTest.setResult(taskResult);
+
+    Assertions.assertThat(underTest.getResult()).isSameAs(taskResult);
+  }
+
+  @Test
+  public void setResult_throws_NPE_if_CeTaskResult_argument_is_null() {
+    expectedException.expect(NullPointerException.class);
+    expectedException.expectMessage("taskResult can not be null");
+
+    underTest.setResult(null);
+  }
+
+  @Test
+  public void setResult_throws_ISE_if_called_twice() {
+    underTest.setResult(mock(CeTaskResult.class));
+
+    expectedException.expect(IllegalStateException.class);
+    expectedException.expectMessage("CeTaskResult has already been set in the holder");
+
+    underTest.setResult(mock(CeTaskResult.class));
+  }
+}
diff --git a/server/sonar-ce-task/src/test/java/org/sonar/server/computation/CeTaskTest.java b/server/sonar-ce-task/src/test/java/org/sonar/server/computation/CeTaskTest.java
deleted file mode 100644 (file)
index b42261f..0000000
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2018 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.server.computation;
-
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.ExpectedException;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-public class CeTaskTest {
-  @Rule
-  public ExpectedException expectedException = ExpectedException.none();
-
-  private CeTask.Builder underTest = new CeTask.Builder();
-
-  @Test
-  public void build_fails_with_NPE_if_organizationUuid_is_null() {
-    expectedException.expect(NullPointerException.class);
-    expectedException.expectMessage("organizationUuid can't be null nor empty");
-
-    underTest.build();
-  }
-
-  @Test
-  public void build_fails_with_NPE_if_organizationUuid_is_empty() {
-    underTest.setOrganizationUuid("");
-
-    expectedException.expect(NullPointerException.class);
-    expectedException.expectMessage("organizationUuid can't be null nor empty");
-
-    underTest.build();
-  }
-
-  @Test
-  public void build_fails_with_NPE_if_uid_is_null() {
-    underTest.setOrganizationUuid("org1");
-
-    expectedException.expect(NullPointerException.class);
-    expectedException.expectMessage("uuid can't be null nor empty");
-
-    underTest.build();
-  }
-
-  @Test
-  public void build_fails_with_NPE_if_uuid_is_empty() {
-    underTest.setOrganizationUuid("org1").setUuid("");
-
-    expectedException.expect(NullPointerException.class);
-    expectedException.expectMessage("uuid can't be null nor empty");
-
-    underTest.build();
-  }
-
-  @Test
-  public void build_fails_with_NPE_if_type_is_null() {
-    underTest.setOrganizationUuid("org1").setUuid("uuid");
-
-    expectedException.expect(NullPointerException.class);
-    expectedException.expectMessage("type can't be null nor empty");
-
-    underTest.build();
-  }
-
-  @Test
-  public void build_fails_with_NPE_if_type_is_empty() {
-    underTest.setOrganizationUuid("org1").setUuid("uuid").setType("");
-
-    expectedException.expect(NullPointerException.class);
-    expectedException.expectMessage("type can't be null nor empty");
-
-    underTest.build();
-  }
-
-  @Test
-  public void verify_getters() {
-    underTest.setOrganizationUuid("org1");
-    underTest.setType("TYPE_1");
-    underTest.setUuid("UUID_1");
-    underTest.setSubmitterUuid("LOGIN_1");
-    underTest.setComponentKey("COMPONENT_KEY_1");
-    underTest.setComponentUuid("COMPONENT_UUID_1");
-    underTest.setComponentName("The component");
-
-    CeTask task = underTest.build();
-
-    assertThat(task.getOrganizationUuid()).isEqualTo("org1");
-    assertThat(task.getUuid()).isEqualTo("UUID_1");
-    assertThat(task.getType()).isEqualTo("TYPE_1");
-    assertThat(task.getSubmitterUuid()).isEqualTo("LOGIN_1");
-    assertThat(task.getComponentKey()).isEqualTo("COMPONENT_KEY_1");
-    assertThat(task.getComponentUuid()).isEqualTo("COMPONENT_UUID_1");
-    assertThat(task.getComponentName()).isEqualTo("The component");
-  }
-
-  @Test
-  public void empty_in_component_properties_is_considered_as_null() {
-    CeTask ceTask = underTest.setOrganizationUuid("org1").setUuid("uuid").setType("type")
-      .setComponentKey("")
-      .setComponentName("")
-      .setComponentUuid("")
-      .build();
-
-    assertThat(ceTask.getComponentKey()).isNull();
-    assertThat(ceTask.getComponentName()).isNull();
-    assertThat(ceTask.getComponentUuid()).isNull();
-  }
-
-  @Test
-  public void empty_in_submitterLogin_is_considered_as_null() {
-    CeTask ceTask = underTest.setOrganizationUuid("org1").setUuid("uuid").setType("type")
-      .setSubmitterUuid("")
-      .build();
-
-    assertThat(ceTask.getSubmitterUuid()).isNull();
-  }
-
-  @Test
-  public void equals_and_hashCode_on_uuid() {
-    underTest.setOrganizationUuid("org1").setType("TYPE_1").setUuid("UUID_1");
-    CeTask task1 = underTest.build();
-    CeTask task1bis = underTest.build();
-    CeTask task2 = new CeTask.Builder().setOrganizationUuid("org1").setType("TYPE_1").setUuid("UUID_2").build();
-
-    assertThat(task1.equals(task1)).isTrue();
-    assertThat(task1.equals(task1bis)).isTrue();
-    assertThat(task1.equals(task2)).isFalse();
-    assertThat(task1.hashCode()).isEqualTo(task1.hashCode());
-    assertThat(task1.hashCode()).isEqualTo(task1bis.hashCode());
-  }
-}
diff --git a/server/sonar-ce-task/src/test/java/org/sonar/server/computation/log/CeTaskLoggingTest.java b/server/sonar-ce-task/src/test/java/org/sonar/server/computation/log/CeTaskLoggingTest.java
deleted file mode 100644 (file)
index 5193eb1..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2018 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.server.computation.log;
-
-import ch.qos.logback.core.joran.spi.JoranException;
-import org.junit.After;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.ExpectedException;
-import org.mockito.Mockito;
-import org.slf4j.MDC;
-import org.sonar.process.logging.LogbackHelper;
-import org.sonar.server.computation.CeTask;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.mockito.Mockito.when;
-import static org.sonar.server.computation.log.CeTaskLogging.MDC_CE_TASK_UUID;
-
-public class CeTaskLoggingTest {
-
-  @Rule
-  public ExpectedException expectedException = ExpectedException.none();
-
-  private LogbackHelper helper = new LogbackHelper();
-  private CeTaskLogging underTest = new CeTaskLogging();
-
-  @After
-  public void resetLogback() throws JoranException {
-    helper.resetFromXml("/logback-test.xml");
-  }
-
-  @After
-  public void cleanMDC() {
-    MDC.clear();
-  }
-
-  @Test
-  public void initForTask_stores_task_uuid_in_MDC() {
-    String uuid = "ce_task_uuid";
-
-    underTest.initForTask(createCeTask(uuid));
-
-    assertThat(MDC.get(MDC_CE_TASK_UUID)).isEqualTo(uuid);
-  }
-
-  private CeTask createCeTask(String uuid) {
-    CeTask ceTask = Mockito.mock(CeTask.class);
-    when(ceTask.getUuid()).thenReturn(uuid);
-    return ceTask;
-  }
-
-  @Test
-  public void clearForTask_removes_task_uuid_from_MDC() {
-    MDC.put(MDC_CE_TASK_UUID, "some_value");
-
-    underTest.clearForTask();
-
-    assertThat(MDC.get(MDC_CE_TASK_UUID)).isNull();
-  }
-
-}
diff --git a/server/sonar-ce-task/src/test/java/org/sonar/server/computation/task/ChangeLogLevel.java b/server/sonar-ce-task/src/test/java/org/sonar/server/computation/task/ChangeLogLevel.java
deleted file mode 100644 (file)
index 3260b72..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2018 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.server.computation.task;
-
-import org.sonar.api.utils.log.Logger;
-import org.sonar.api.utils.log.LoggerLevel;
-import org.sonar.api.utils.log.Loggers;
-
-public final class ChangeLogLevel implements AutoCloseable {
-  private final Logger logger;
-  private final LoggerLevel previous;
-
-  public ChangeLogLevel(Class<?> clazz, LoggerLevel newLevel) {
-    this.logger = Loggers.get(clazz);
-    this.previous = logger.getLevel();
-    logger.setLevel(newLevel);
-  }
-
-  @Override
-  public void close() {
-    logger.setLevel(previous);
-  }
-}
diff --git a/server/sonar-ce-task/src/test/java/org/sonar/server/computation/task/container/TaskContainerImplTest.java b/server/sonar-ce-task/src/test/java/org/sonar/server/computation/task/container/TaskContainerImplTest.java
deleted file mode 100644 (file)
index debaac8..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2018 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.server.computation.task.container;
-
-import org.junit.Test;
-import org.picocontainer.Startable;
-import org.sonar.core.platform.ComponentContainer;
-import org.sonar.core.platform.ContainerPopulator;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-
-public class TaskContainerImplTest {
-  private ComponentContainer parent = new ComponentContainer();
-  private ContainerPopulator populator = mock(ContainerPopulator.class);
-
-  @Test(expected = NullPointerException.class)
-  public void constructor_fails_fast_on_null_container() {
-    new TaskContainerImpl(null, mock(ContainerPopulator.class));
-  }
-
-  @Test(expected = NullPointerException.class)
-  public void constructor_fails_fast_on_null_item() {
-    new TaskContainerImpl(new ComponentContainer(), null);
-  }
-
-  @Test
-  public void calls_method_populateContainer_of_passed_in_populator() {
-    TaskContainerImpl ceContainer = new TaskContainerImpl(parent, populator);
-
-    verify(populator).populateContainer(ceContainer);
-  }
-
-  @Test
-  public void ce_container_is_not_child_of_specified_container() {
-    TaskContainerImpl ceContainer = new TaskContainerImpl(parent, populator);
-
-    assertThat(parent.getChildren()).isEmpty();
-    verify(populator).populateContainer(ceContainer);
-  }
-
-  @Test
-  public void bootup_starts_components_lazily_unless_they_are_annotated_with_EagerStart() {
-    final DefaultStartable defaultStartable = new DefaultStartable();
-    final EagerStartable eagerStartable = new EagerStartable();
-    TaskContainerImpl ceContainer = new TaskContainerImpl(parent, container -> {
-      container.add(defaultStartable);
-      container.add(eagerStartable);
-    });
-    ceContainer.bootup();
-
-    assertThat(defaultStartable.startCalls).isEqualTo(0);
-    assertThat(defaultStartable.stopCalls).isEqualTo(0);
-    assertThat(eagerStartable.startCalls).isEqualTo(1);
-    assertThat(eagerStartable.stopCalls).isEqualTo(0);
-  }
-
-  @Test
-  public void close_stops_started_components() {
-    final DefaultStartable defaultStartable = new DefaultStartable();
-    final EagerStartable eagerStartable = new EagerStartable();
-    TaskContainerImpl ceContainer = new TaskContainerImpl(parent, container -> {
-      container.add(defaultStartable);
-      container.add(eagerStartable);
-    });
-    ceContainer.bootup();
-
-    ceContainer.close();
-
-    assertThat(defaultStartable.startCalls).isEqualTo(0);
-    assertThat(defaultStartable.stopCalls).isEqualTo(0);
-    assertThat(eagerStartable.startCalls).isEqualTo(1);
-    assertThat(eagerStartable.stopCalls).isEqualTo(1);
-  }
-
-  public static class DefaultStartable implements Startable {
-    protected int startCalls = 0;
-    protected int stopCalls = 0;
-
-    @Override
-    public void start() {
-      startCalls++;
-    }
-
-    @Override
-    public void stop() {
-      stopCalls++;
-    }
-  }
-
-  @EagerStart
-  public static class EagerStartable extends DefaultStartable {
-  }
-
-
-}
diff --git a/server/sonar-ce-task/src/test/java/org/sonar/server/computation/task/step/ComputationStepExecutorTest.java b/server/sonar-ce-task/src/test/java/org/sonar/server/computation/task/step/ComputationStepExecutorTest.java
deleted file mode 100644 (file)
index 19050a2..0000000
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2018 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.server.computation.task.step;
-
-import java.util.Arrays;
-import java.util.List;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.ExpectedException;
-import org.mockito.InOrder;
-import org.sonar.api.utils.log.LogTester;
-import org.sonar.api.utils.log.LoggerLevel;
-import org.sonar.server.computation.task.ChangeLogLevel;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.assertj.core.api.Assertions.fail;
-import static org.mockito.ArgumentMatchers.anyBoolean;
-import static org.mockito.Mockito.doThrow;
-import static org.mockito.Mockito.inOrder;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyNoMoreInteractions;
-import static org.mockito.Mockito.when;
-
-public class ComputationStepExecutorTest {
-  @Rule
-  public LogTester logTester = new LogTester();
-  @Rule
-  public ExpectedException expectedException = ExpectedException.none();
-
-  private final ComputationStepExecutor.Listener listener = mock(ComputationStepExecutor.Listener.class);
-  private final ComputationStep computationStep1 = mockComputationStep("step1");
-  private final ComputationStep computationStep2 = mockComputationStep("step2");
-  private final ComputationStep computationStep3 = mockComputationStep("step3");
-
-  @Test
-  public void execute_call_execute_on_each_ComputationStep_in_order_returned_by_instances_method() {
-    new ComputationStepExecutor(mockComputationSteps(computationStep1, computationStep2, computationStep3))
-      .execute();
-
-    InOrder inOrder = inOrder(computationStep1, computationStep2, computationStep3);
-    inOrder.verify(computationStep1).execute();
-    inOrder.verify(computationStep1).getDescription();
-    inOrder.verify(computationStep2).execute();
-    inOrder.verify(computationStep2).getDescription();
-    inOrder.verify(computationStep3).execute();
-    inOrder.verify(computationStep3).getDescription();
-    inOrder.verifyNoMoreInteractions();
-  }
-
-  @Test
-  public void execute_let_exception_thrown_by_ComputationStep_go_up_as_is() {
-    String message = "Exception should go up";
-
-    ComputationStep computationStep = mockComputationStep("step1");
-    doThrow(new RuntimeException(message))
-      .when(computationStep)
-      .execute();
-
-    ComputationStepExecutor computationStepExecutor = new ComputationStepExecutor(mockComputationSteps(computationStep));
-
-    expectedException.expect(RuntimeException.class);
-    expectedException.expectMessage(message);
-
-    computationStepExecutor.execute();
-  }
-
-  @Test
-  public void execute_does_not_log_end_timing_for_each_ComputationStep_called_when_level_is_INFO() {
-    List<String> infoLogs = execute_logs_end_timing_for_each_ComputationStep_called_when_(LoggerLevel.INFO);
-    assertThat(infoLogs).isEmpty();
-  }
-
-  @Test
-  public void execute_logs_end_timing_for_each_ComputationStep_called_when_level_is_DEBUG() {
-    List<String> infoLogs = execute_logs_end_timing_for_each_ComputationStep_called_when_(LoggerLevel.DEBUG);
-    assertThat(infoLogs).hasSize(2);
-    assertThat(infoLogs.get(0)).contains("step1 | time=");
-    assertThat(infoLogs.get(1)).contains("step2 | time=");
-  }
-
-  @Test
-  public void execute_logs_end_timing_for_each_ComputationStep_called_when_level_is_TRACE() {
-    List<String> infoLogs = execute_logs_end_timing_for_each_ComputationStep_called_when_(LoggerLevel.TRACE);
-    assertThat(infoLogs).hasSize(2);
-    assertThat(infoLogs.get(0)).contains("step1 | time=");
-    assertThat(infoLogs.get(1)).contains("step2 | time=");
-  }
-
-  private List<String> execute_logs_end_timing_for_each_ComputationStep_called_when_(LoggerLevel level) {
-    try (ChangeLogLevel executor = new ChangeLogLevel(ComputationStepExecutor.class, level);
-      ChangeLogLevel step1 = new ChangeLogLevel(computationStep1.getClass(), level);
-      ChangeLogLevel step2 = new ChangeLogLevel(computationStep2.getClass(), level)) {
-      new ComputationStepExecutor(mockComputationSteps(computationStep1, computationStep2))
-        .execute();
-
-      return logTester.logs(LoggerLevel.DEBUG);
-    }
-  }
-
-  @Test
-  public void execute_calls_listener_finished_method_with_all_step_runs() {
-    new ComputationStepExecutor(mockComputationSteps(computationStep1, computationStep2), listener)
-      .execute();
-
-    verify(listener).finished(true);
-    verifyNoMoreInteractions(listener);
-  }
-
-  @Test
-  public void execute_calls_listener_finished_method_even_if_a_step_throws_an_exception() {
-    RuntimeException toBeThrown = new RuntimeException("simulating failing execute Step method");
-    doThrow(toBeThrown)
-      .when(computationStep1)
-      .execute();
-
-    try {
-      new ComputationStepExecutor(mockComputationSteps(computationStep1, computationStep2), listener)
-        .execute();
-      fail("exception toBeThrown should have been raised");
-    } catch (RuntimeException e) {
-      assertThat(e).isSameAs(toBeThrown);
-      verify(listener).finished(false);
-      verifyNoMoreInteractions(listener);
-    }
-  }
-
-  @Test
-  public void execute_does_not_fail_if_listener_throws_Throwable() {
-    ComputationStepExecutor.Listener listener = mock(ComputationStepExecutor.Listener.class);
-    doThrow(new Error("Facking error thrown by Listener"))
-        .when(listener)
-        .finished(anyBoolean());
-
-    new ComputationStepExecutor(mockComputationSteps(computationStep1), listener).execute();
-  }
-
-  private static ComputationSteps mockComputationSteps(ComputationStep... computationSteps) {
-    ComputationSteps steps = mock(ComputationSteps.class);
-    when(steps.instances()).thenReturn(Arrays.asList(computationSteps));
-    return steps;
-  }
-
-  private static ComputationStep mockComputationStep(String desc) {
-    ComputationStep mock = mock(ComputationStep.class);
-    when(mock.getDescription()).thenReturn(desc);
-    return mock;
-  }
-}
diff --git a/server/sonar-ce-task/src/test/java/org/sonar/server/computation/task/step/ExecuteStatelessInitExtensionsStepTest.java b/server/sonar-ce-task/src/test/java/org/sonar/server/computation/task/step/ExecuteStatelessInitExtensionsStepTest.java
deleted file mode 100644 (file)
index fdf4049..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2018 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.server.computation.task.step;
-
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.ExpectedException;
-import org.mockito.InOrder;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.junit.Assert.fail;
-import static org.mockito.Mockito.doThrow;
-import static org.mockito.Mockito.inOrder;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.verify;
-
-public class ExecuteStatelessInitExtensionsStepTest {
-
-  @Rule
-  public ExpectedException expectedException = ExpectedException.none();
-
-  @Test
-  public void test_getDescription() {
-    ExecuteStatelessInitExtensionsStep underTest = new ExecuteStatelessInitExtensionsStep();
-
-    assertThat(underTest.getDescription()).isEqualTo("Initialize");
-  }
-
-  @Test
-  public void do_nothing_if_no_extensions() {
-    ExecuteStatelessInitExtensionsStep underTest = new ExecuteStatelessInitExtensionsStep();
-
-    // no failure
-    underTest.execute();
-  }
-
-  @Test
-  public void execute_extensions() {
-    StatelessInitExtension ext1 = mock(StatelessInitExtension.class);
-    StatelessInitExtension ext2 = mock(StatelessInitExtension.class);
-
-    ExecuteStatelessInitExtensionsStep underTest = new ExecuteStatelessInitExtensionsStep(
-      new StatelessInitExtension[] {ext1, ext2});
-    underTest.execute();
-
-    InOrder inOrder = inOrder(ext1, ext2);
-    inOrder.verify(ext1).onInit();
-    inOrder.verify(ext2).onInit();
-  }
-
-  @Test
-  public void fail_if_an_extension_throws_an_exception() {
-    StatelessInitExtension ext1 = mock(StatelessInitExtension.class);
-    StatelessInitExtension ext2 = mock(StatelessInitExtension.class);
-    doThrow(new IllegalStateException("BOOM")).when(ext2).onInit();
-    StatelessInitExtension ext3 = mock(StatelessInitExtension.class);
-
-    ExecuteStatelessInitExtensionsStep underTest = new ExecuteStatelessInitExtensionsStep(
-      new StatelessInitExtension[] {ext1, ext2, ext3});
-
-    try {
-      underTest.execute();
-      fail();
-    } catch (IllegalStateException e) {
-      assertThat(e).hasMessage("BOOM");
-      verify(ext1).onInit();
-      verify(ext3, never()).onInit();
-    }
-  }
-
-}
diff --git a/server/sonar-ce-task/src/test/java/org/sonar/server/computation/task/step/StepsExplorer.java b/server/sonar-ce-task/src/test/java/org/sonar/server/computation/task/step/StepsExplorer.java
deleted file mode 100644 (file)
index 1f836de..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2018 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.server.computation.task.step;
-
-import com.google.common.base.Function;
-import com.google.common.base.Predicate;
-import java.lang.reflect.Modifier;
-import java.util.Set;
-import javax.annotation.Nonnull;
-import org.reflections.Reflections;
-
-import static com.google.common.base.Predicates.notNull;
-import static com.google.common.collect.FluentIterable.from;
-
-public class StepsExplorer {
-  /**
-   * Compute set of canonical names of classes implementing ComputationStep in the specified package using reflection.
-   */
-  public static Set<String> retrieveStepPackageStepsCanonicalNames(String packageName) {
-    Reflections reflections = new Reflections(packageName);
-
-    return from(reflections.getSubTypesOf(ComputationStep.class))
-        .filter(NotAbstractClass.INSTANCE)
-        .transform(ClassToCanonicalName.INSTANCE)
-        // anonymous classes do not have canonical names
-        .filter(notNull())
-        .toSet();
-  }
-
-  private enum NotAbstractClass implements Predicate<Class<? extends ComputationStep>> {
-    INSTANCE;
-
-    @Override
-    public boolean apply(Class<? extends ComputationStep> input) {
-      return !Modifier.isAbstract(input.getModifiers());
-    }
-  }
-
-  public static Function<Class<?>, String> toCanonicalName() {
-    return ClassToCanonicalName.INSTANCE;
-  }
-
-  private enum ClassToCanonicalName implements Function<Class<?>, String> {
-    INSTANCE;
-
-    @Override
-    public String apply(@Nonnull Class<?> input) {
-      return input.getCanonicalName();
-    }
-  }
-}
diff --git a/server/sonar-ce-task/src/test/java/org/sonar/server/computation/taskprocessor/MutableTaskResultHolderImplTest.java b/server/sonar-ce-task/src/test/java/org/sonar/server/computation/taskprocessor/MutableTaskResultHolderImplTest.java
deleted file mode 100644 (file)
index f81de44..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2018 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.server.computation.taskprocessor;
-
-import org.assertj.core.api.Assertions;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.ExpectedException;
-import org.sonar.server.computation.CeTaskResult;
-
-import static org.mockito.Mockito.mock;
-
-public class MutableTaskResultHolderImplTest {
-  @Rule
-  public ExpectedException expectedException = ExpectedException.none();
-
-  private MutableTaskResultHolder underTest = new MutableTaskResultHolderImpl();
-
-  @Test
-  public void getResult_throws_ISE_if_no_CeTaskResult_is_set() {
-    expectedException.expect(IllegalStateException.class);
-    expectedException.expectMessage("No CeTaskResult has been set in the holder");
-
-    underTest.getResult();
-  }
-
-  @Test
-  public void getResult_returns_object_set_with_setResult() {
-    CeTaskResult taskResult = mock(CeTaskResult.class);
-
-    underTest.setResult(taskResult);
-
-    Assertions.assertThat(underTest.getResult()).isSameAs(taskResult);
-  }
-
-  @Test
-  public void setResult_throws_NPE_if_CeTaskResult_argument_is_null() {
-    expectedException.expect(NullPointerException.class);
-    expectedException.expectMessage("taskResult can not be null");
-
-    underTest.setResult(null);
-  }
-
-  @Test
-  public void setResult_throws_ISE_if_called_twice() {
-    underTest.setResult(mock(CeTaskResult.class));
-
-    expectedException.expect(IllegalStateException.class);
-    expectedException.expectMessage("CeTaskResult has already been set in the holder");
-
-    underTest.setResult(mock(CeTaskResult.class));
-  }
-}
index e2a6de90f3492dafb8aeff47142c453a371adbd5..c8bbfdfce4e816e62162c8e773ec424fd135c2c0 100644 (file)
@@ -20,8 +20,8 @@
 package org.sonar.ce;
 
 import org.sonar.ce.configuration.CeConfigurationImpl;
-import org.sonar.server.computation.log.CeTaskLogging;
 import org.sonar.ce.monitoring.CeDatabaseMBeanImpl;
+import org.sonar.ce.task.log.CeTaskLogging;
 import org.sonar.core.platform.Module;
 import org.sonar.process.systeminfo.JvmPropertiesSection;
 import org.sonar.process.systeminfo.JvmStateSection;
index 9db406ab7c936863c5a0698f6488fed84441bd21..b9d348919805b17dc5320934f904b45ff6c918c0 100644 (file)
  */
 package org.sonar.ce;
 
+import org.sonar.ce.task.dbcleaner.IndexPurgeListener;
+import org.sonar.ce.task.dbcleaner.ProjectCleaner;
 import org.sonar.core.platform.Module;
 import org.sonar.db.purge.period.DefaultPeriodCleaner;
-import org.sonar.server.computation.dbcleaner.IndexPurgeListener;
-import org.sonar.server.computation.dbcleaner.ProjectCleaner;
 
 /**
  * Globally available components in CE for tasks to use.
index 9c5cbea5aaac333857428d75c647ad16da736807..e7533f5a50e02a8c858ac68c55fc7263bf038a92 100644 (file)
@@ -23,8 +23,8 @@ import javax.annotation.Nullable;
 import org.sonar.api.resources.Qualifiers;
 import org.sonar.api.resources.Scopes;
 import org.sonar.api.utils.System2;
-import org.sonar.server.computation.CeTask;
-import org.sonar.server.computation.CeTaskResult;
+import org.sonar.ce.task.CeTask;
+import org.sonar.ce.task.CeTaskResult;
 import org.sonar.ce.taskprocessor.CeWorker;
 import org.sonar.db.DbClient;
 import org.sonar.db.DbSession;
index 012ecd6dc3c45b6c1d0e1eba42f3bacee95fb3e6..9932e2e398618cf5b7fa3cfee4ff7a47e8cb1d93 100644 (file)
@@ -22,9 +22,9 @@ package org.sonar.ce.queue;
 import java.util.Optional;
 import java.util.Set;
 import javax.annotation.Nullable;
+import org.sonar.ce.task.CeTask;
+import org.sonar.ce.task.CeTaskResult;
 import org.sonar.db.ce.CeActivityDto.Status;
-import org.sonar.server.computation.CeTask;
-import org.sonar.server.computation.CeTaskResult;
 
 /**
  * Queue of pending Compute Engine tasks. Both producer and consumer actions
index 4117f81040746226a9de3a87aab7a0f6f7527d58..8f9b6eb34a504b936b34e228276c410a67179be2 100644 (file)
@@ -33,16 +33,16 @@ import org.sonar.api.utils.log.Logger;
 import org.sonar.api.utils.log.Loggers;
 import org.sonar.ce.container.ComputeEngineStatus;
 import org.sonar.ce.monitoring.CEQueueStatus;
+import org.sonar.ce.task.CeTask;
+import org.sonar.ce.task.CeTaskResult;
 import org.sonar.ce.task.projectanalysis.component.VisitException;
+import org.sonar.ce.task.step.TypedException;
 import org.sonar.core.util.UuidFactory;
 import org.sonar.db.DbClient;
 import org.sonar.db.DbSession;
 import org.sonar.db.ce.CeActivityDto;
 import org.sonar.db.ce.CeQueueDao;
 import org.sonar.db.ce.CeQueueDto;
-import org.sonar.server.computation.CeTask;
-import org.sonar.server.computation.CeTaskResult;
-import org.sonar.server.computation.task.step.TypedException;
 import org.sonar.server.organization.DefaultOrganizationProvider;
 
 import static com.google.common.base.Preconditions.checkArgument;
index 34630cd54bde261fdf8f5753f074c5e12a3d3a50..d9d2836e2fca4f2faef33ac30a299733292cdbee 100644 (file)
@@ -20,9 +20,9 @@
 package org.sonar.ce.taskprocessor;
 
 import javax.annotation.Nullable;
-import org.sonar.server.computation.log.CeTaskLogging;
-import org.sonar.server.computation.CeTask;
-import org.sonar.server.computation.CeTaskResult;
+import org.sonar.ce.task.CeTask;
+import org.sonar.ce.task.CeTaskResult;
+import org.sonar.ce.task.log.CeTaskLogging;
 import org.sonar.db.ce.CeActivityDto;
 
 /**
index cadfd400e4ee787a2776f7d18e70c4ec01dc955a..9f9f25112dbe3d2745ef6a3ab1bf095218942493 100644 (file)
@@ -20,7 +20,7 @@
 package org.sonar.ce.taskprocessor;
 
 import java.util.Optional;
-import org.sonar.server.computation.CeTask;
+import org.sonar.ce.task.CeTask;
 
 public interface CeTaskProcessorRepository {
 
index 99e2aeb845e6e3763f5d7d078506c1569a36c2a7..ba0c97d34e94e4780ac872671930460bd183a3a3 100644 (file)
@@ -29,7 +29,7 @@ import java.util.Collection;
 import java.util.Map;
 import java.util.Optional;
 import javax.annotation.Nonnull;
-import org.sonar.server.computation.CeTask;
+import org.sonar.ce.task.CeTask;
 
 import static com.google.common.base.Preconditions.checkArgument;
 import static com.google.common.collect.FluentIterable.from;
index c257ecef19ee3906cc680af87beaf03a8acc840f..6bf1301cec38496893f2bcee1098e3099ee1b7c7 100644 (file)
@@ -22,8 +22,8 @@ package org.sonar.ce.taskprocessor;
 import java.util.concurrent.Callable;
 import javax.annotation.Nullable;
 import org.sonar.ce.queue.CeQueue;
-import org.sonar.server.computation.CeTask;
-import org.sonar.server.computation.CeTaskResult;
+import org.sonar.ce.task.CeTask;
+import org.sonar.ce.task.CeTaskResult;
 import org.sonar.db.ce.CeActivityDto;
 
 /**
index 2ed412a6a12300d0d87d1ed278cf10e21822a90a..06cc90b2546aa82e9ea37ec919437819aba4c9dc 100644 (file)
@@ -28,9 +28,9 @@ import javax.annotation.Nullable;
 import org.sonar.api.utils.MessageException;
 import org.sonar.api.utils.log.Logger;
 import org.sonar.api.utils.log.Loggers;
-import org.sonar.server.computation.CeTask;
-import org.sonar.server.computation.CeTaskResult;
 import org.sonar.ce.queue.InternalCeQueue;
+import org.sonar.ce.task.CeTask;
+import org.sonar.ce.task.CeTaskResult;
 import org.sonar.core.util.logs.Profiler;
 import org.sonar.db.ce.CeActivityDto;
 
index 574e2fdf13354b21c55bfd1ec42380fe4368ad56..6d73b4c81fee12a8a540fe1b5f5ad896d11db8a5 100644 (file)
@@ -29,8 +29,8 @@ import org.junit.rules.ExpectedException;
 import org.mockito.ArgumentCaptor;
 import org.sonar.api.notifications.Notification;
 import org.sonar.api.utils.System2;
-import org.sonar.server.computation.CeTask;
-import org.sonar.server.computation.CeTaskResult;
+import org.sonar.ce.task.CeTask;
+import org.sonar.ce.task.CeTaskResult;
 import org.sonar.db.DbClient;
 import org.sonar.db.DbTester;
 import org.sonar.db.RowNotFoundException;
index 15f76d2f13156caec8c9f33c6be42a2a8f153d8b..ee5680b24b70f85c264098bd3b96810984b99429 100644 (file)
@@ -34,6 +34,9 @@ import org.sonar.api.utils.internal.AlwaysIncreasingSystem2;
 import org.sonar.ce.container.ComputeEngineStatus;
 import org.sonar.ce.monitoring.CEQueueStatus;
 import org.sonar.ce.monitoring.CEQueueStatusImpl;
+import org.sonar.ce.task.CeTask;
+import org.sonar.ce.task.CeTaskResult;
+import org.sonar.ce.task.step.TypedException;
 import org.sonar.core.util.UuidFactory;
 import org.sonar.core.util.UuidFactoryImpl;
 import org.sonar.db.DbSession;
@@ -44,9 +47,6 @@ import org.sonar.db.ce.CeTaskTypes;
 import org.sonar.db.component.ComponentDto;
 import org.sonar.db.component.ComponentTesting;
 import org.sonar.db.organization.OrganizationDto;
-import org.sonar.server.computation.CeTask;
-import org.sonar.server.computation.CeTaskResult;
-import org.sonar.server.computation.task.step.TypedException;
 import org.sonar.server.organization.DefaultOrganization;
 import org.sonar.server.organization.DefaultOrganizationProvider;
 
index fc80542b72f8f6f1cec468f1bc68de71d9aef6f7..9450da8b0761f9dae24c5bce14952e78fa856fb2 100644 (file)
@@ -22,8 +22,8 @@ package org.sonar.ce.taskprocessor;
 import java.util.Random;
 import org.junit.Test;
 import org.mockito.Mockito;
-import org.sonar.server.computation.log.CeTaskLogging;
-import org.sonar.server.computation.CeTask;
+import org.sonar.ce.task.CeTask;
+import org.sonar.ce.task.log.CeTaskLogging;
 import org.sonar.db.ce.CeActivityDto;
 
 import static org.mockito.Mockito.mock;
index d5691e1bb08b5960eca64934d015ea858037d5bb..04cdeac683436f44d9124b7ee87e78cfafc7d9e2 100644 (file)
@@ -24,8 +24,8 @@ import java.util.Set;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
-import org.sonar.server.computation.CeTask;
-import org.sonar.server.computation.CeTaskResult;
+import org.sonar.ce.task.CeTask;
+import org.sonar.ce.task.CeTaskResult;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
index 075c5deae31a42ff0bd7344b567cab5d27209e9e..451ebf1fefd7d864f681aa0d66340429dabd345c 100644 (file)
@@ -24,8 +24,8 @@ import java.util.Map;
 import java.util.Optional;
 import java.util.Set;
 import org.junit.rules.ExternalResource;
-import org.sonar.server.computation.CeTask;
-import org.sonar.server.computation.CeTaskResult;
+import org.sonar.ce.task.CeTask;
+import org.sonar.ce.task.CeTaskResult;
 
 import static com.google.common.base.Preconditions.checkState;
 import static java.util.Objects.requireNonNull;
index bd39488a6bfbd4e5c69e343bd4e8cd6e55163074..f7222a95a48ce086adcfe6b9fd7302201f2a32e6 100644 (file)
@@ -35,11 +35,11 @@ import org.mockito.Mockito;
 import org.sonar.api.utils.MessageException;
 import org.sonar.api.utils.log.LogTester;
 import org.sonar.api.utils.log.LoggerLevel;
-import org.sonar.server.computation.CeTask;
 import org.sonar.ce.queue.InternalCeQueue;
+import org.sonar.ce.task.CeTask;
+import org.sonar.ce.task.projectanalysis.taskprocessor.ReportTaskProcessor;
 import org.sonar.db.ce.CeActivityDto;
 import org.sonar.db.ce.CeTaskTypes;
-import org.sonar.ce.task.projectanalysis.taskprocessor.ReportTaskProcessor;
 
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.mockito.ArgumentMatchers.any;
index 6b9e1c58a5a0885dfc0f1ca20a98ebc2f1fc67a8..74e5b22bf6eae4446856ad7ff6538f9d11965e08 100644 (file)
@@ -20,8 +20,8 @@
 package org.sonar.ce;
 
 import org.sonar.ce.http.CeHttpClientImpl;
-import org.sonar.server.computation.log.CeTaskLogging;
 import org.sonar.ce.queue.CeQueueImpl;
+import org.sonar.ce.task.log.CeTaskLogging;
 import org.sonar.ce.taskprocessor.ReportTaskProcessorDeclaration;
 import org.sonar.core.platform.Module;
 import org.sonar.server.ce.queue.ReportSubmitter;
index 0779ba4c04c9efdf3e71fe872a4358e39538f433..2788981d9a65fe4c76a963f9aac383daca244b80 100644 (file)
@@ -25,7 +25,7 @@ import org.sonar.process.logging.LogDomain;
 import org.sonar.process.logging.LogLevelConfig;
 import org.sonar.server.app.ServerProcessLogging;
 
-import static org.sonar.server.computation.log.CeTaskLogging.MDC_CE_TASK_UUID;
+import static org.sonar.ce.task.log.CeTaskLogging.MDC_CE_TASK_UUID;
 
 /**
  * Configure logback for the Compute Engine process. Logs are written to file "ce.log" in SQ's log directory.
index 86cff2af7bf45cd967dfab158c307e53a93a3bbf..cb6810f5a86d43aeaea278aa1393fcd55b44c010 100644 (file)
@@ -21,11 +21,10 @@ package org.sonar.ce.queue;
 
 import java.util.Collection;
 import java.util.List;
-
 import java.util.Optional;
+import org.sonar.ce.task.CeTask;
 import org.sonar.db.DbSession;
 import org.sonar.db.ce.CeQueueDto;
-import org.sonar.server.computation.CeTask;
 
 /**
  * Queue of pending Compute Engine tasks. Both producer and consumer actions
index 3b8dd3832c4542980d17c2ff3ddc535ca1884f4a..01b113bd64d8f1981a488b34fbe145b84b97368a 100644 (file)
@@ -34,6 +34,7 @@ import java.util.function.Predicate;
 import java.util.stream.Collectors;
 import javax.annotation.Nonnull;
 import org.sonar.api.server.ServerSide;
+import org.sonar.ce.task.CeTask;
 import org.sonar.core.util.UuidFactory;
 import org.sonar.core.util.stream.MoreCollectors;
 import org.sonar.db.DbClient;
@@ -41,7 +42,6 @@ import org.sonar.db.DbSession;
 import org.sonar.db.ce.CeActivityDto;
 import org.sonar.db.ce.CeQueueDto;
 import org.sonar.db.component.ComponentDto;
-import org.sonar.server.computation.CeTask;
 import org.sonar.server.organization.DefaultOrganizationProvider;
 import org.sonar.server.property.InternalProperties;
 
index 215a97aaa0a2083f138f82d6418acec18017d0df..441c227d0a3cd91cc5c0fba0886d1e8459c914e7 100644 (file)
@@ -23,8 +23,8 @@ import java.util.Set;
 import javax.annotation.CheckForNull;
 import org.sonar.api.ce.ComputeEngineSide;
 import org.sonar.api.server.ServerSide;
-import org.sonar.server.computation.CeTask;
-import org.sonar.server.computation.CeTaskResult;
+import org.sonar.ce.task.CeTask;
+import org.sonar.ce.task.CeTaskResult;
 
 /**
  * This interface is used to provide the processing code for {@link CeTask}s of one or more type to be called by the
index d25b24d865f06fea8b54df4582d0afc383a361fe..9c2c6f98b31e190afe6655403c63e57981eb5677 100644 (file)
@@ -21,8 +21,8 @@ package org.sonar.ce.taskprocessor;
 
 import java.util.Collections;
 import java.util.Set;
-import org.sonar.server.computation.CeTask;
-import org.sonar.server.computation.CeTaskResult;
+import org.sonar.ce.task.CeTask;
+import org.sonar.ce.task.CeTaskResult;
 import org.sonar.db.ce.CeTaskTypes;
 
 /**
index bee5e24269bc00953e92dde42b513e1d4360f952..92c60e4f0d98717fe8d3b3f5283a40fa25f551b3 100644 (file)
@@ -31,8 +31,8 @@ import org.sonar.api.resources.Qualifiers;
 import org.sonar.api.resources.Scopes;
 import org.sonar.api.server.ServerSide;
 import org.sonar.ce.queue.CeQueue;
-import org.sonar.server.computation.CeTask;
 import org.sonar.ce.queue.CeTaskSubmit;
+import org.sonar.ce.task.CeTask;
 import org.sonar.core.component.ComponentKeys;
 import org.sonar.core.util.UuidFactory;
 import org.sonar.db.DbClient;
index e869d82cc8ce053f618d494984e5e8dec8be080b..b266254de7838878eec97c197b5491fd0714f9e4 100644 (file)
@@ -27,7 +27,7 @@ import org.apache.commons.lang.StringUtils;
 import org.sonar.api.server.ws.Request;
 import org.sonar.api.server.ws.Response;
 import org.sonar.api.server.ws.WebService;
-import org.sonar.server.computation.CeTask;
+import org.sonar.ce.task.CeTask;
 import org.sonar.server.ce.queue.ReportSubmitter;
 import org.sonar.server.organization.DefaultOrganizationProvider;
 import org.sonar.server.ws.WsUtils;
index 8c36d2227a38e97962d1f4ad477da9e44b3e38b6..6ec301fc39e1943b7f8d3908807e5c3d3b6277a8 100644 (file)
@@ -21,7 +21,7 @@ package org.sonar.server.computation.organization;
 
 import org.picocontainer.Startable;
 import org.sonar.api.ce.ComputeEngineSide;
-import org.sonar.server.computation.task.container.EagerStart;
+import org.sonar.ce.task.container.EagerStart;
 import org.sonar.server.organization.DefaultOrganizationCache;
 
 @EagerStart
index 8e76145cb54b251f9dad262053a233f8ec4c89b0..236691aec208b08083825f15d5d9566f7492be9c 100644 (file)
@@ -18,6 +18,6 @@
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 @ParametersAreNonnullByDefault
-package org.sonar.server.computation.organization;
+package org.sonar.ce.task.organization;
 
 import javax.annotation.ParametersAreNonnullByDefault;
index 7ccf1e50b7fe1e5e2eaea66e8e9e27fa878bcb1c..a06aea409b870b1d9bdd46e2497225e291756a05 100644 (file)
@@ -21,8 +21,8 @@ package org.sonar.server.computation.settings;
 
 import org.picocontainer.Startable;
 import org.sonar.api.ce.ComputeEngineSide;
-import org.sonar.server.computation.task.container.EagerStart;
-import org.sonar.server.computation.task.container.TaskContainerImpl;
+import org.sonar.ce.task.container.EagerStart;
+import org.sonar.ce.task.container.TaskContainerImpl;
 import org.sonar.server.setting.ThreadLocalSettings;
 
 /**
index dc49a51c1353af90e2ff793e8f033735561a804d..71c26a744ea167941f25730428b9a238161aca11 100644 (file)
@@ -18,6 +18,6 @@
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 @ParametersAreNonnullByDefault
-package org.sonar.server.computation.settings;
+package org.sonar.ce.task.settings;
 
 import javax.annotation.ParametersAreNonnullByDefault;
index bceb8f980ddcf566a8485e894c04ddfe78d23845..8d0c5db35b2bccbc23f5317d31bd6e9ef342f5b1 100644 (file)
@@ -30,6 +30,7 @@ import org.junit.Test;
 import org.junit.rules.ExpectedException;
 import org.sonar.api.utils.System2;
 import org.sonar.api.utils.internal.TestSystem2;
+import org.sonar.ce.task.CeTask;
 import org.sonar.core.util.UuidFactory;
 import org.sonar.core.util.UuidFactoryFast;
 import org.sonar.core.util.UuidFactoryImpl;
@@ -40,7 +41,6 @@ import org.sonar.db.ce.CeQueueDto;
 import org.sonar.db.ce.CeTaskTypes;
 import org.sonar.db.component.ComponentDto;
 import org.sonar.db.component.ComponentTesting;
-import org.sonar.server.computation.CeTask;
 import org.sonar.server.organization.DefaultOrganizationProvider;
 import org.sonar.server.organization.TestDefaultOrganizationProvider;
 
index 4c496ce8480ad3d3b8994150b3f328014a9aee10..fd967656814d5501cf585353cf5d158dc3990c55 100644 (file)
@@ -22,7 +22,7 @@ package org.sonar.ce.taskprocessor;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
-import org.sonar.server.computation.CeTask;
+import org.sonar.ce.task.CeTask;
 
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.mockito.Mockito.mock;
index b3b5561a9a35a8b7ceb392d1a61b11031631df93..3765b154bc2799ef92f3264957199549eca40943 100644 (file)
@@ -26,8 +26,8 @@ import org.junit.rules.ExpectedException;
 import org.sonar.api.web.UserRole;
 import org.sonar.ce.queue.CeQueue;
 import org.sonar.ce.queue.CeQueueImpl;
-import org.sonar.server.computation.CeTask;
 import org.sonar.ce.queue.CeTaskSubmit;
+import org.sonar.ce.task.CeTask;
 import org.sonar.core.util.UuidFactoryFast;
 import org.sonar.db.DbTester;
 import org.sonar.db.ce.CeActivityDto;
index 6073f05a9cbf0a44d13bb3132e38259c84fa377d..8892098fe9f8f3fe04462af669ec5d4fa871ba55 100644 (file)
@@ -29,7 +29,7 @@ import org.junit.Test;
 import org.mockito.ArgumentCaptor;
 import org.mockito.Captor;
 import org.mockito.MockitoAnnotations;
-import org.sonar.server.computation.CeTask;
+import org.sonar.ce.task.CeTask;
 import org.sonar.db.ce.CeTaskTypes;
 import org.sonar.server.ce.queue.ReportSubmitter;
 import org.sonar.server.organization.DefaultOrganizationProvider;
index 627e25d28b0093922a1872b9e96072bfc9c35617..18aec801e5240f8f12b536d5b5bc237732501b39 100644 (file)
@@ -22,8 +22,8 @@ package org.sonar.server.ce.ws;
 import com.google.common.collect.ImmutableSet;
 import java.util.Set;
 import org.junit.Test;
-import org.sonar.server.computation.CeTask;
-import org.sonar.server.computation.CeTaskResult;
+import org.sonar.ce.task.CeTask;
+import org.sonar.ce.task.CeTaskResult;
 import org.sonar.ce.taskprocessor.CeTaskProcessor;
 import org.sonar.server.ws.WsActionTester;