From: Sébastien Lesaint Date: Fri, 22 Jun 2018 07:02:27 +0000 (+0200) Subject: rename package org.sonar.server.computation to org.sonar.ce.task X-Git-Tag: 7.5~927 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=c002746f61bfb24188e505887a18f5b8214f3464;p=sonarqube.git rename package org.sonar.server.computation to org.sonar.ce.task in module sonar-ce-task --- diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/ProjectAnalysisTaskModule.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/ProjectAnalysisTaskModule.java index cdaf4160067..109e88a0acc 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/ProjectAnalysisTaskModule.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/ProjectAnalysisTaskModule.java @@ -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 diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/analysis/AnalysisMetadataHolderImpl.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/analysis/AnalysisMetadataHolderImpl.java index ed4ba4c8eea..2f19d8d11d4 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/analysis/AnalysisMetadataHolderImpl.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/analysis/AnalysisMetadataHolderImpl.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/api/posttask/PostProjectAnalysisTasksExecutor.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/api/posttask/PostProjectAnalysisTasksExecutor.java index ceebf5dc91e..3c6f89c7c85 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/api/posttask/PostProjectAnalysisTasksExecutor.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/api/posttask/PostProjectAnalysisTasksExecutor.java @@ -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(), diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/batch/BatchReportDirectoryHolder.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/batch/BatchReportDirectoryHolder.java index 44fd4958a83..a7329f23ac3 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/batch/BatchReportDirectoryHolder.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/batch/BatchReportDirectoryHolder.java @@ -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 { /** diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/container/ContainerFactory.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/container/ContainerFactory.java index edfdec24ec6..f305d8aef8c 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/container/ContainerFactory.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/container/ContainerFactory.java @@ -20,10 +20,10 @@ 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 { diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/container/ContainerFactoryImpl.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/container/ContainerFactoryImpl.java index b12e44dac98..21611e656c1 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/container/ContainerFactoryImpl.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/container/ContainerFactoryImpl.java @@ -20,11 +20,11 @@ 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 diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/container/ProjectAnalysisTaskContainerPopulator.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/container/ProjectAnalysisTaskContainerPopulator.java index e2e143df05e..124589cce06 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/container/ProjectAnalysisTaskContainerPopulator.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/container/ProjectAnalysisTaskContainerPopulator.java @@ -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 { diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/dbmigration/PopulateFileSourceLineCount.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/dbmigration/PopulateFileSourceLineCount.java index ce24294946e..6de4c30557a 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/dbmigration/PopulateFileSourceLineCount.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/dbmigration/PopulateFileSourceLineCount.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/filemove/FileMoveDetectionStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/filemove/FileMoveDetectionStep.java index d7069351e74..e757af1b60b 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/filemove/FileMoveDetectionStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/filemove/FileMoveDetectionStep.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/filemove/ScoreMatrixDumperImpl.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/filemove/ScoreMatrixDumperImpl.java index a14629e59d0..f906b2aeba1 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/filemove/ScoreMatrixDumperImpl.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/filemove/ScoreMatrixDumperImpl.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/measure/PostMeasuresComputationChecksStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/measure/PostMeasuresComputationChecksStep.java index ec788322725..a7369b4e687 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/measure/PostMeasuresComputationChecksStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/measure/PostMeasuresComputationChecksStep.java @@ -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. diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/purge/IndexPurgeListener.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/purge/IndexPurgeListener.java index 5a2ea59ae04..7a8d50da4b2 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/purge/IndexPurgeListener.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/purge/IndexPurgeListener.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/purge/ProjectCleaner.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/purge/ProjectCleaner.java index 63b2170ad0e..68e13d07db2 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/purge/ProjectCleaner.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/purge/ProjectCleaner.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/purge/PurgeDatastoresStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/purge/PurgeDatastoresStep.java index 380730f9eb7..5313c8eca04 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/purge/PurgeDatastoresStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/purge/PurgeDatastoresStep.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/purge/package-info.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/purge/package-info.java index c73fe5406ae..9bf4b445299 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/purge/package-info.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/purge/package-info.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/AbstractComputationSteps.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/AbstractComputationSteps.java index 5f46ebb9577..2567689a721 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/AbstractComputationSteps.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/AbstractComputationSteps.java @@ -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()} diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/BuildComponentTreeStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/BuildComponentTreeStep.java index 88e224bda64..de462b9ac8a 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/BuildComponentTreeStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/BuildComponentTreeStep.java @@ -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} diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/CommentMeasuresStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/CommentMeasuresStep.java index 6b5f6d1b5e4..bbb427e4a85 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/CommentMeasuresStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/CommentMeasuresStep.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/ComplexityMeasuresStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/ComplexityMeasuresStep.java index 506e2f50a1b..cfd4a240e4d 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/ComplexityMeasuresStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/ComplexityMeasuresStep.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/ComputeMeasureVariationsStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/ComputeMeasureVariationsStep.java index 568dbcb2c18..8b94a1fdc36 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/ComputeMeasureVariationsStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/ComputeMeasureVariationsStep.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/ComputeQProfileMeasureStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/ComputeQProfileMeasureStep.java index c0a5c784412..5e9fbd930cf 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/ComputeQProfileMeasureStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/ComputeQProfileMeasureStep.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/CoverageMeasuresStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/CoverageMeasuresStep.java index 26cd17354a8..d71f253ac4d 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/CoverageMeasuresStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/CoverageMeasuresStep.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/CustomMeasuresCopyStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/CustomMeasuresCopyStep.java index c3a18db9121..384f7768b7f 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/CustomMeasuresCopyStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/CustomMeasuresCopyStep.java @@ -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 { diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/DbMigrationsStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/DbMigrationsStep.java index da30c091d09..5c8d046ee28 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/DbMigrationsStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/DbMigrationsStep.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/DuplicationDataMeasuresStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/DuplicationDataMeasuresStep.java index 0f6d2da8ffa..2519f093343 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/DuplicationDataMeasuresStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/DuplicationDataMeasuresStep.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/DuplicationMeasuresStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/DuplicationMeasuresStep.java index ec8b797a0b5..1f4c8077c59 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/DuplicationMeasuresStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/DuplicationMeasuresStep.java @@ -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. diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/EnableAnalysisStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/EnableAnalysisStep.java index c29701921e4..25ea4fa86f1 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/EnableAnalysisStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/EnableAnalysisStep.java @@ -19,13 +19,12 @@ */ 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 { diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/ExecuteVisitorsStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/ExecuteVisitorsStep.java index f656553cbe2..c854d394fde 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/ExecuteVisitorsStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/ExecuteVisitorsStep.java @@ -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 { diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/ExtractReportStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/ExtractReportStep.java index 339aa1b1c96..3ea69a18b20 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/ExtractReportStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/ExtractReportStep.java @@ -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} diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/GenerateAnalysisUuid.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/GenerateAnalysisUuid.java index cd4630aa883..c52167f8905 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/GenerateAnalysisUuid.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/GenerateAnalysisUuid.java @@ -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 { diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/IndexAnalysisStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/IndexAnalysisStep.java index 6f61c990230..7139d68755c 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/IndexAnalysisStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/IndexAnalysisStep.java @@ -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 { diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/LanguageDistributionMeasuresStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/LanguageDistributionMeasuresStep.java index 7bae369216b..81b0bb7c595 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/LanguageDistributionMeasuresStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/LanguageDistributionMeasuresStep.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/LoadCrossProjectDuplicationsRepositoryStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/LoadCrossProjectDuplicationsRepositoryStep.java index 033dbac937d..9fac502e6d9 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/LoadCrossProjectDuplicationsRepositoryStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/LoadCrossProjectDuplicationsRepositoryStep.java @@ -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. diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/LoadDuplicationsFromReportStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/LoadDuplicationsFromReportStep.java index 20e1e32f2e6..13921b17ffe 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/LoadDuplicationsFromReportStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/LoadDuplicationsFromReportStep.java @@ -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}. diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/LoadMeasureComputersStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/LoadMeasureComputersStep.java index 93a47e3305b..d82c3ca07d3 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/LoadMeasureComputersStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/LoadMeasureComputersStep.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/LoadPeriodsStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/LoadPeriodsStep.java index dfb579f926f..2a308af44d3 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/LoadPeriodsStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/LoadPeriodsStep.java @@ -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} diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/LoadQualityGateStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/LoadQualityGateStep.java index 2309369b692..7e0c7521ef2 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/LoadQualityGateStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/LoadQualityGateStep.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/LoadQualityProfilesStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/LoadQualityProfilesStep.java index d7e021b4c92..e07a9035bb1 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/LoadQualityProfilesStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/LoadQualityProfilesStep.java @@ -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 { diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/LoadReportAnalysisMetadataHolderStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/LoadReportAnalysisMetadataHolderStep.java index ace3f49bc34..cdf158d8b09 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/LoadReportAnalysisMetadataHolderStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/LoadReportAnalysisMetadataHolderStep.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/NewCoverageMeasuresStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/NewCoverageMeasuresStep.java index 09187f082ad..21b8e702307 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/NewCoverageMeasuresStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/NewCoverageMeasuresStep.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/NewSizeMeasuresStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/NewSizeMeasuresStep.java index 4ad3916da9f..278a0815d04 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/NewSizeMeasuresStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/NewSizeMeasuresStep.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistAnalysisPropertiesStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistAnalysisPropertiesStep.java index 9aa11ec71b7..00049703d70 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistAnalysisPropertiesStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistAnalysisPropertiesStep.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistAnalysisStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistAnalysisStep.java index fb8bf05fe8e..696707b188f 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistAnalysisStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistAnalysisStep.java @@ -20,14 +20,6 @@ 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 diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistComponentsStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistComponentsStep.java index c4c47bff7e3..7abaece8c43 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistComponentsStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistComponentsStep.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistCrossProjectDuplicationIndexStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistCrossProjectDuplicationIndexStep.java index 183347f27cf..2c0da8b5351 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistCrossProjectDuplicationIndexStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistCrossProjectDuplicationIndexStep.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistEventsStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistEventsStep.java index 3f574225171..4107d1cebaa 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistEventsStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistEventsStep.java @@ -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 { diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistExternalRulesStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistExternalRulesStep.java index b672e40996d..3ebc3be6a49 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistExternalRulesStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistExternalRulesStep.java @@ -20,10 +20,9 @@ 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 { diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistFileSourcesStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistFileSourcesStep.java index 5c836c67dc1..e743dc9516b 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistFileSourcesStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistFileSourcesStep.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistIssuesStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistIssuesStep.java index 6c6acff2867..3d843d964bf 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistIssuesStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistIssuesStep.java @@ -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 { diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistLiveMeasuresStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistLiveMeasuresStep.java index 2d3c3a87c30..f8dd0c70bb0 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistLiveMeasuresStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistLiveMeasuresStep.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistMeasuresStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistMeasuresStep.java index f4f9b5ed5aa..a65030af84b 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistMeasuresStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistMeasuresStep.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistProjectLinksStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistProjectLinksStep.java index 9f0cfc61804..6bd943aac3b 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistProjectLinksStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistProjectLinksStep.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistScannerContextStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistScannerContextStep.java index 18af9f117b3..37a22511cf4 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistScannerContextStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistScannerContextStep.java @@ -19,12 +19,12 @@ */ 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; diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistTestsStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistTestsStep.java index 3fb9fb410aa..0135404606b 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistTestsStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistTestsStep.java @@ -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 { diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PublishTaskResultStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PublishTaskResultStep.java index 9f009138959..156d007e63f 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PublishTaskResultStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PublishTaskResultStep.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/QualityGateEventsStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/QualityGateEventsStep.java index 0739d7cf267..deed07a778b 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/QualityGateEventsStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/QualityGateEventsStep.java @@ -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; /** diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/QualityGateMeasuresStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/QualityGateMeasuresStep.java index 8bae1bff76a..a3e0e9ead5f 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/QualityGateMeasuresStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/QualityGateMeasuresStep.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/QualityProfileEventsStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/QualityProfileEventsStep.java index c8b947d85c6..7571450714a 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/QualityProfileEventsStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/QualityProfileEventsStep.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/ReportComputationSteps.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/ReportComputationSteps.java index ed7f10a69ac..631acb001b2 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/ReportComputationSteps.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/ReportComputationSteps.java @@ -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 diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/SendIssueNotificationsStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/SendIssueNotificationsStep.java index 9f142add4dd..2344309af6a 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/SendIssueNotificationsStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/SendIssueNotificationsStep.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/SizeMeasuresStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/SizeMeasuresStep.java index 083f04ead01..f8beb8f1c0e 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/SizeMeasuresStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/SizeMeasuresStep.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/TriggerViewRefreshStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/TriggerViewRefreshStep.java index ef5510026a6..3cf6db44b28 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/TriggerViewRefreshStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/TriggerViewRefreshStep.java @@ -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. diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/UnitTestMeasuresStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/UnitTestMeasuresStep.java index ac07bce66ff..fc9854c4e90 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/UnitTestMeasuresStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/UnitTestMeasuresStep.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/UpdateQualityProfilesLastUsedDateStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/UpdateQualityProfilesLastUsedDateStep.java index 9cb2725243e..c9fc9d294c5 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/UpdateQualityProfilesLastUsedDateStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/UpdateQualityProfilesLastUsedDateStep.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/ValidateProjectStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/ValidateProjectStep.java index 84f15aaf175..287c7fe3b00 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/ValidateProjectStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/ValidateProjectStep.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/VerifyBillingStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/VerifyBillingStep.java index 32c880c2190..5eb0baef0a8 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/VerifyBillingStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/VerifyBillingStep.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/taskprocessor/ReportTaskProcessor.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/taskprocessor/ReportTaskProcessor.java index 8ea6b797784..512a5d17e00 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/taskprocessor/ReportTaskProcessor.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/taskprocessor/ReportTaskProcessor.java @@ -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 { diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/analysis/AnalysisMetadataHolderRule.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/analysis/AnalysisMetadataHolderRule.java index bbb6d8d85ca..e8107f02f84 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/analysis/AnalysisMetadataHolderRule.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/analysis/AnalysisMetadataHolderRule.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/api/posttask/PostProjectAnalysisTasksExecutorTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/api/posttask/PostProjectAnalysisTasksExecutorTest.java index c714a7c47ac..fabd35b9dbc 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/api/posttask/PostProjectAnalysisTasksExecutorTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/api/posttask/PostProjectAnalysisTasksExecutorTest.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/container/ProjectAnalysisTaskContainerPopulatorTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/container/ProjectAnalysisTaskContainerPopulatorTest.java index 3ad2f042bf4..17739c64335 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/container/ProjectAnalysisTaskContainerPopulatorTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/container/ProjectAnalysisTaskContainerPopulatorTest.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/dbmigration/PopulateFileSourceLineCountTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/dbmigration/PopulateFileSourceLineCountTest.java index 88f24bffb4c..2b103c4b3a9 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/dbmigration/PopulateFileSourceLineCountTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/dbmigration/PopulateFileSourceLineCountTest.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/dbmigration/ProjectAnalysisDataChangesImplTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/dbmigration/ProjectAnalysisDataChangesImplTest.java index afa25e58896..cb7dfd57a06 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/dbmigration/ProjectAnalysisDataChangesImplTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/dbmigration/ProjectAnalysisDataChangesImplTest.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/filemove/ScoreMatrixDumperImplTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/filemove/ScoreMatrixDumperImplTest.java index 5bbba7bf6d9..4b3356bf871 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/filemove/ScoreMatrixDumperImplTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/filemove/ScoreMatrixDumperImplTest.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/purge/IndexPurgeListenerTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/purge/IndexPurgeListenerTest.java index a1d8afc8ae6..cd741fedf9c 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/purge/IndexPurgeListenerTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/purge/IndexPurgeListenerTest.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/purge/ProjectCleanerTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/purge/ProjectCleanerTest.java index 12ae7f4eefd..48f95265bc6 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/purge/ProjectCleanerTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/purge/ProjectCleanerTest.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/purge/PurgeDatastoresStepTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/purge/PurgeDatastoresStepTest.java index 911a160e2a6..58058f364ab 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/purge/PurgeDatastoresStepTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/purge/PurgeDatastoresStepTest.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/BaseStepTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/BaseStepTest.java index 69df9220bd3..3ef87292cce 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/BaseStepTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/BaseStepTest.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/DuplicationDataMeasuresStepTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/DuplicationDataMeasuresStepTest.java index 82bd1d8e0e5..3a4089cd9aa 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/DuplicationDataMeasuresStepTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/DuplicationDataMeasuresStepTest.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/DuplicationMeasuresStepTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/DuplicationMeasuresStepTest.java index c1fe2a4f7f5..5c24ce6a795 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/DuplicationMeasuresStepTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/DuplicationMeasuresStepTest.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ExecuteVisitorsStepTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ExecuteVisitorsStepTest.java index f72a8260b31..af80de32ec5 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ExecuteVisitorsStepTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ExecuteVisitorsStepTest.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ExtractReportStepTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ExtractReportStepTest.java index d2b6857f196..27def2e2682 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ExtractReportStepTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ExtractReportStepTest.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/IndexAnalysisStepTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/IndexAnalysisStepTest.java index 419d6bb049e..8a19d093f62 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/IndexAnalysisStepTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/IndexAnalysisStepTest.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/LoadCrossProjectDuplicationsRepositoryStepTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/LoadCrossProjectDuplicationsRepositoryStepTest.java index 1e6ad5596d4..29d66394a89 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/LoadCrossProjectDuplicationsRepositoryStepTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/LoadCrossProjectDuplicationsRepositoryStepTest.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/LoadMeasureComputersStepTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/LoadMeasureComputersStepTest.java index df68f74079b..3b38127268d 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/LoadMeasureComputersStepTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/LoadMeasureComputersStepTest.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/LoadPeriodsStepTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/LoadPeriodsStepTest.java index be2d57630ef..b370fc0f7c6 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/LoadPeriodsStepTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/LoadPeriodsStepTest.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/LoadReportAnalysisMetadataHolderStepTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/LoadReportAnalysisMetadataHolderStepTest.java index 4a50e63a217..5f7bf561297 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/LoadReportAnalysisMetadataHolderStepTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/LoadReportAnalysisMetadataHolderStepTest.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistCrossProjectDuplicationIndexStepTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistCrossProjectDuplicationIndexStepTest.java index eb5a09029eb..f66e15a1dcd 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistCrossProjectDuplicationIndexStepTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistCrossProjectDuplicationIndexStepTest.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistEventsStepTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistEventsStepTest.java index ff849d666f8..28cb70b8c4e 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistEventsStepTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistEventsStepTest.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistExternalRulesStepTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistExternalRulesStepTest.java index a7c58a6be21..a5abc7708ca 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistExternalRulesStepTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistExternalRulesStepTest.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistFileSourcesStepTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistFileSourcesStepTest.java index 1dfe5faf520..180fd48977b 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistFileSourcesStepTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistFileSourcesStepTest.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistIssuesStepTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistIssuesStepTest.java index b3c51231db7..ff98a1abbff 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistIssuesStepTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistIssuesStepTest.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistLiveMeasuresStepTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistLiveMeasuresStepTest.java index 2f96bccdc86..f78c86e1b72 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistLiveMeasuresStepTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistLiveMeasuresStepTest.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistMeasuresStepTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistMeasuresStepTest.java index 0a383929eb2..c710d08fc35 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistMeasuresStepTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistMeasuresStepTest.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistProjectLinksStepTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistProjectLinksStepTest.java index ddc6159d344..052cc1052b5 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistProjectLinksStepTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistProjectLinksStepTest.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistScannerContextStepTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistScannerContextStepTest.java index 5ef9b400825..6fad5e539fe 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistScannerContextStepTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistScannerContextStepTest.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistTestsStepTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistTestsStepTest.java index 160e7a0525e..eda6f5a3865 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistTestsStepTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistTestsStepTest.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PublishTaskResultStepTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PublishTaskResultStepTest.java index b876286cd41..227967e2abe 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PublishTaskResultStepTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PublishTaskResultStepTest.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ReportCommentMeasuresStepTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ReportCommentMeasuresStepTest.java index 11ff75e3f03..87b0bb3b0da 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ReportCommentMeasuresStepTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ReportCommentMeasuresStepTest.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ReportComplexityMeasuresStepTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ReportComplexityMeasuresStepTest.java index 07de8c510bb..edbd84ecd1c 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ReportComplexityMeasuresStepTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ReportComplexityMeasuresStepTest.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ReportComputationStepsTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ReportComputationStepsTest.java index eaf6ef87807..4e45b6e51b0 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ReportComputationStepsTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ReportComputationStepsTest.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ReportLanguageDistributionMeasuresStepTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ReportLanguageDistributionMeasuresStepTest.java index 6604529f7d8..668129ab181 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ReportLanguageDistributionMeasuresStepTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ReportLanguageDistributionMeasuresStepTest.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ReportPersistAnalysisStepTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ReportPersistAnalysisStepTest.java index c7260262f29..ae55c80742a 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ReportPersistAnalysisStepTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ReportPersistAnalysisStepTest.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ReportPersistComponentsStepTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ReportPersistComponentsStepTest.java index 29aaef1fc1f..8ff4bab7717 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ReportPersistComponentsStepTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ReportPersistComponentsStepTest.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ReportUnitTestMeasuresStepTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ReportUnitTestMeasuresStepTest.java index 7e1982eaa51..b10ca89a135 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ReportUnitTestMeasuresStepTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ReportUnitTestMeasuresStepTest.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/SendIssueNotificationsStepTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/SendIssueNotificationsStepTest.java index 896884ee566..0acf8a25e97 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/SendIssueNotificationsStepTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/SendIssueNotificationsStepTest.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ViewsCommentMeasuresStepTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ViewsCommentMeasuresStepTest.java index 7bc652a89c3..858e3582cfd 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ViewsCommentMeasuresStepTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ViewsCommentMeasuresStepTest.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ViewsComplexityMeasuresStepTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ViewsComplexityMeasuresStepTest.java index 293e36e11de..4a1aa869367 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ViewsComplexityMeasuresStepTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ViewsComplexityMeasuresStepTest.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ViewsLanguageDistributionMeasuresStepTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ViewsLanguageDistributionMeasuresStepTest.java index a160518198d..5287c71237c 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ViewsLanguageDistributionMeasuresStepTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ViewsLanguageDistributionMeasuresStepTest.java @@ -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-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ViewsPersistAnalysisStepTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ViewsPersistAnalysisStepTest.java index 08e92109e9f..e4fb3374a77 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ViewsPersistAnalysisStepTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ViewsPersistAnalysisStepTest.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ViewsPersistComponentsStepTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ViewsPersistComponentsStepTest.java index 16ec376a0f6..5246f8c021a 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ViewsPersistComponentsStepTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ViewsPersistComponentsStepTest.java @@ -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; diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ViewsUnitTestMeasuresStepTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ViewsUnitTestMeasuresStepTest.java index d17978af25a..8bb4b85d011 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ViewsUnitTestMeasuresStepTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ViewsUnitTestMeasuresStepTest.java @@ -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 index 00000000000..68cb82edb9a --- /dev/null +++ b/server/sonar-ce-task/src/main/java/org/sonar/ce/task/CeTask.java @@ -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 index 00000000000..3607b638f9a --- /dev/null +++ b/server/sonar-ce-task/src/main/java/org/sonar/ce/task/CeTaskResult.java @@ -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 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 index 00000000000..ca4447ed725 --- /dev/null +++ b/server/sonar-ce-task/src/main/java/org/sonar/ce/task/container/EagerStart.java @@ -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 index 00000000000..aeb438c88ed --- /dev/null +++ b/server/sonar-ce-task/src/main/java/org/sonar/ce/task/container/TaskContainer.java @@ -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 index 00000000000..e899ebecf3e --- /dev/null +++ b/server/sonar-ce-task/src/main/java/org/sonar/ce/task/container/TaskContainerImpl.java @@ -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 populator) { + super(createContainer(requireNonNull(parent)), parent.getComponentByType(PropertyDefinitions.class)); + + populateContainer(requireNonNull(populator)); + } + + private void populateContainer(ContainerPopulator populator) { + populator.populateContainer(this); + populateFromModules(); + } + + private void populateFromModules() { + List modules = getComponentsByType(Module.class); + for (Module module : modules) { + module.configure(this); + } + } + + /** + * Creates a PicContainer which extends the specified ComponentContainer but is not referenced in return + * 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 index 00000000000..fead6234845 --- /dev/null +++ b/server/sonar-ce-task/src/main/java/org/sonar/ce/task/container/package-info.java @@ -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 index 00000000000..2cb97d0312d --- /dev/null +++ b/server/sonar-ce-task/src/main/java/org/sonar/ce/task/log/CeTaskLogging.java @@ -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 index 00000000000..9a45145224b --- /dev/null +++ b/server/sonar-ce-task/src/main/java/org/sonar/ce/task/log/package-info.java @@ -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 index 00000000000..3c38c43fcfb --- /dev/null +++ b/server/sonar-ce-task/src/main/java/org/sonar/ce/task/package-info.java @@ -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 index 00000000000..3766ecd826f --- /dev/null +++ b/server/sonar-ce-task/src/main/java/org/sonar/ce/task/step/ComputationStep.java @@ -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 index 00000000000..3187f37b7cd --- /dev/null +++ b/server/sonar-ce-task/src/main/java/org/sonar/ce/task/step/ComputationStepExecutor.java @@ -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 index 00000000000..7b7eacf6c27 --- /dev/null +++ b/server/sonar-ce-task/src/main/java/org/sonar/ce/task/step/ComputationSteps.java @@ -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> orderedStepClasses(); + + /** + * List of all {@link ComputationStep}, + * ordered by execution sequence. + */ + Iterable 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 index 00000000000..6508d1d5e0b --- /dev/null +++ b/server/sonar-ce-task/src/main/java/org/sonar/ce/task/step/ExecuteStatelessInitExtensionsStep.java @@ -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 index 00000000000..ec13b7e9a8e --- /dev/null +++ b/server/sonar-ce-task/src/main/java/org/sonar/ce/task/step/StatelessInitExtension.java @@ -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 index 00000000000..cc8680828f1 --- /dev/null +++ b/server/sonar-ce-task/src/main/java/org/sonar/ce/task/step/TypedException.java @@ -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 index 00000000000..c2e62f92087 --- /dev/null +++ b/server/sonar-ce-task/src/main/java/org/sonar/ce/task/step/package-info.java @@ -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 index 00000000000..cc06b85c831 --- /dev/null +++ b/server/sonar-ce-task/src/main/java/org/sonar/ce/task/taskprocessor/MutableTaskResultHolder.java @@ -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 index 00000000000..898c26a5e6d --- /dev/null +++ b/server/sonar-ce-task/src/main/java/org/sonar/ce/task/taskprocessor/MutableTaskResultHolderImpl.java @@ -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 index 00000000000..593dc88ad12 --- /dev/null +++ b/server/sonar-ce-task/src/main/java/org/sonar/ce/task/taskprocessor/TaskResultHolder.java @@ -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 index 00000000000..76a7288d3ac --- /dev/null +++ b/server/sonar-ce-task/src/main/java/org/sonar/ce/task/util/InitializedProperty.java @@ -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 { + private E property; + private boolean initialized = false; + + public InitializedProperty 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 index 00000000000..3aba5ede035 --- /dev/null +++ b/server/sonar-ce-task/src/main/java/org/sonar/ce/task/util/package-info.java @@ -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 index f0d4f06ddcf..00000000000 --- a/server/sonar-ce-task/src/main/java/org/sonar/server/computation/CeTask.java +++ /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 index 73dcb927513..00000000000 --- a/server/sonar-ce-task/src/main/java/org/sonar/server/computation/CeTaskResult.java +++ /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 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 index 8f1dbba3ced..00000000000 --- a/server/sonar-ce-task/src/main/java/org/sonar/server/computation/log/CeTaskLogging.java +++ /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 index 1088bac9be7..00000000000 --- a/server/sonar-ce-task/src/main/java/org/sonar/server/computation/log/package-info.java +++ /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 index 2b97ccbf4fc..00000000000 --- a/server/sonar-ce-task/src/main/java/org/sonar/server/computation/package-info.java +++ /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 index 10ab10abf01..00000000000 --- a/server/sonar-ce-task/src/main/java/org/sonar/server/computation/task/container/EagerStart.java +++ /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 index ba9a14b28c0..00000000000 --- a/server/sonar-ce-task/src/main/java/org/sonar/server/computation/task/container/TaskContainer.java +++ /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 index 3902a1b9709..00000000000 --- a/server/sonar-ce-task/src/main/java/org/sonar/server/computation/task/container/TaskContainerImpl.java +++ /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 populator) { - super(createContainer(requireNonNull(parent)), parent.getComponentByType(PropertyDefinitions.class)); - - populateContainer(requireNonNull(populator)); - } - - private void populateContainer(ContainerPopulator populator) { - populator.populateContainer(this); - populateFromModules(); - } - - private void populateFromModules() { - List modules = getComponentsByType(Module.class); - for (Module module : modules) { - module.configure(this); - } - } - - /** - * Creates a PicContainer which extends the specified ComponentContainer but is not referenced in return - * 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 index f01956fbb38..00000000000 --- a/server/sonar-ce-task/src/main/java/org/sonar/server/computation/task/container/package-info.java +++ /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 index f8fd66fe961..00000000000 --- a/server/sonar-ce-task/src/main/java/org/sonar/server/computation/task/step/ComputationStep.java +++ /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 index 536121f29ca..00000000000 --- a/server/sonar-ce-task/src/main/java/org/sonar/server/computation/task/step/ComputationStepExecutor.java +++ /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 index c35ca8f6a38..00000000000 --- a/server/sonar-ce-task/src/main/java/org/sonar/server/computation/task/step/ComputationSteps.java +++ /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> orderedStepClasses(); - - /** - * List of all {@link ComputationStep}, - * ordered by execution sequence. - */ - Iterable 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 index b587083d88b..00000000000 --- a/server/sonar-ce-task/src/main/java/org/sonar/server/computation/task/step/ExecuteStatelessInitExtensionsStep.java +++ /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 index aedc81e8347..00000000000 --- a/server/sonar-ce-task/src/main/java/org/sonar/server/computation/task/step/StatelessInitExtension.java +++ /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 index b600f90f7e3..00000000000 --- a/server/sonar-ce-task/src/main/java/org/sonar/server/computation/task/step/TypedException.java +++ /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 index 5868b7cccc4..00000000000 --- a/server/sonar-ce-task/src/main/java/org/sonar/server/computation/task/step/package-info.java +++ /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 index 5e4409b1b73..00000000000 --- a/server/sonar-ce-task/src/main/java/org/sonar/server/computation/taskprocessor/MutableTaskResultHolder.java +++ /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 index 6fe1e53913e..00000000000 --- a/server/sonar-ce-task/src/main/java/org/sonar/server/computation/taskprocessor/MutableTaskResultHolderImpl.java +++ /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 index b4c3e978150..00000000000 --- a/server/sonar-ce-task/src/main/java/org/sonar/server/computation/taskprocessor/TaskResultHolder.java +++ /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 index 01170eb9fde..00000000000 --- a/server/sonar-ce-task/src/main/java/org/sonar/server/computation/util/InitializedProperty.java +++ /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 { - private E property; - private boolean initialized = false; - - public InitializedProperty 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 index 415bc7b76f9..00000000000 --- a/server/sonar-ce-task/src/main/java/org/sonar/server/computation/util/package-info.java +++ /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 index 00000000000..842c17de1a3 --- /dev/null +++ b/server/sonar-ce-task/src/test/java/org/sonar/ce/task/CeTaskTest.java @@ -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 index 00000000000..a873432514f --- /dev/null +++ b/server/sonar-ce-task/src/test/java/org/sonar/ce/task/ChangeLogLevel.java @@ -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 index 00000000000..5360c7a1ac6 --- /dev/null +++ b/server/sonar-ce-task/src/test/java/org/sonar/ce/task/container/TaskContainerImplTest.java @@ -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 index 00000000000..a06386a952b --- /dev/null +++ b/server/sonar-ce-task/src/test/java/org/sonar/ce/task/log/CeTaskLoggingTest.java @@ -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 index 00000000000..ca3af2117f3 --- /dev/null +++ b/server/sonar-ce-task/src/test/java/org/sonar/ce/task/step/ComputationStepExecutorTest.java @@ -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 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 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 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 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 index 00000000000..15d0664f2ba --- /dev/null +++ b/server/sonar-ce-task/src/test/java/org/sonar/ce/task/step/ExecuteStatelessInitExtensionsStepTest.java @@ -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 index 00000000000..d433ff8d120 --- /dev/null +++ b/server/sonar-ce-task/src/test/java/org/sonar/ce/task/step/StepsExplorer.java @@ -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 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> { + INSTANCE; + + @Override + public boolean apply(Class input) { + return !Modifier.isAbstract(input.getModifiers()); + } + } + + public static Function, String> toCanonicalName() { + return ClassToCanonicalName.INSTANCE; + } + + private enum ClassToCanonicalName implements Function, 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 index 00000000000..8797e4a6cf4 --- /dev/null +++ b/server/sonar-ce-task/src/test/java/org/sonar/ce/task/taskprocessor/MutableTaskResultHolderImplTest.java @@ -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 index b42261f5eb7..00000000000 --- a/server/sonar-ce-task/src/test/java/org/sonar/server/computation/CeTaskTest.java +++ /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 index 5193eb1efd8..00000000000 --- a/server/sonar-ce-task/src/test/java/org/sonar/server/computation/log/CeTaskLoggingTest.java +++ /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 index 3260b7263cd..00000000000 --- a/server/sonar-ce-task/src/test/java/org/sonar/server/computation/task/ChangeLogLevel.java +++ /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 index debaac8a916..00000000000 --- a/server/sonar-ce-task/src/test/java/org/sonar/server/computation/task/container/TaskContainerImplTest.java +++ /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 index 19050a279bf..00000000000 --- a/server/sonar-ce-task/src/test/java/org/sonar/server/computation/task/step/ComputationStepExecutorTest.java +++ /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 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 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 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 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 index fdf4049bf35..00000000000 --- a/server/sonar-ce-task/src/test/java/org/sonar/server/computation/task/step/ExecuteStatelessInitExtensionsStepTest.java +++ /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 index 1f836dee41c..00000000000 --- a/server/sonar-ce-task/src/test/java/org/sonar/server/computation/task/step/StepsExplorer.java +++ /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 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> { - INSTANCE; - - @Override - public boolean apply(Class input) { - return !Modifier.isAbstract(input.getModifiers()); - } - } - - public static Function, String> toCanonicalName() { - return ClassToCanonicalName.INSTANCE; - } - - private enum ClassToCanonicalName implements Function, 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 index f81de440ad6..00000000000 --- a/server/sonar-ce-task/src/test/java/org/sonar/server/computation/taskprocessor/MutableTaskResultHolderImplTest.java +++ /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)); - } -} diff --git a/server/sonar-ce/src/main/java/org/sonar/ce/CeConfigurationModule.java b/server/sonar-ce/src/main/java/org/sonar/ce/CeConfigurationModule.java index e2a6de90f34..c8bbfdfce4e 100644 --- a/server/sonar-ce/src/main/java/org/sonar/ce/CeConfigurationModule.java +++ b/server/sonar-ce/src/main/java/org/sonar/ce/CeConfigurationModule.java @@ -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; diff --git a/server/sonar-ce/src/main/java/org/sonar/ce/CeTaskCommonsModule.java b/server/sonar-ce/src/main/java/org/sonar/ce/CeTaskCommonsModule.java index 9db406ab7c9..b9d34891980 100644 --- a/server/sonar-ce/src/main/java/org/sonar/ce/CeTaskCommonsModule.java +++ b/server/sonar-ce/src/main/java/org/sonar/ce/CeTaskCommonsModule.java @@ -19,10 +19,10 @@ */ 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. diff --git a/server/sonar-ce/src/main/java/org/sonar/ce/notification/ReportAnalysisFailureNotificationExecutionListener.java b/server/sonar-ce/src/main/java/org/sonar/ce/notification/ReportAnalysisFailureNotificationExecutionListener.java index 9c5cbea5aaa..e7533f5a50e 100644 --- a/server/sonar-ce/src/main/java/org/sonar/ce/notification/ReportAnalysisFailureNotificationExecutionListener.java +++ b/server/sonar-ce/src/main/java/org/sonar/ce/notification/ReportAnalysisFailureNotificationExecutionListener.java @@ -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; diff --git a/server/sonar-ce/src/main/java/org/sonar/ce/queue/InternalCeQueue.java b/server/sonar-ce/src/main/java/org/sonar/ce/queue/InternalCeQueue.java index 012ecd6dc3c..9932e2e3986 100644 --- a/server/sonar-ce/src/main/java/org/sonar/ce/queue/InternalCeQueue.java +++ b/server/sonar-ce/src/main/java/org/sonar/ce/queue/InternalCeQueue.java @@ -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 diff --git a/server/sonar-ce/src/main/java/org/sonar/ce/queue/InternalCeQueueImpl.java b/server/sonar-ce/src/main/java/org/sonar/ce/queue/InternalCeQueueImpl.java index 4117f810407..8f9b6eb34a5 100644 --- a/server/sonar-ce/src/main/java/org/sonar/ce/queue/InternalCeQueueImpl.java +++ b/server/sonar-ce/src/main/java/org/sonar/ce/queue/InternalCeQueueImpl.java @@ -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; diff --git a/server/sonar-ce/src/main/java/org/sonar/ce/taskprocessor/CeLoggingWorkerExecutionListener.java b/server/sonar-ce/src/main/java/org/sonar/ce/taskprocessor/CeLoggingWorkerExecutionListener.java index 34630cd54bd..d9d2836e2fc 100644 --- a/server/sonar-ce/src/main/java/org/sonar/ce/taskprocessor/CeLoggingWorkerExecutionListener.java +++ b/server/sonar-ce/src/main/java/org/sonar/ce/taskprocessor/CeLoggingWorkerExecutionListener.java @@ -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; /** diff --git a/server/sonar-ce/src/main/java/org/sonar/ce/taskprocessor/CeTaskProcessorRepository.java b/server/sonar-ce/src/main/java/org/sonar/ce/taskprocessor/CeTaskProcessorRepository.java index cadfd400e4e..9f9f25112db 100644 --- a/server/sonar-ce/src/main/java/org/sonar/ce/taskprocessor/CeTaskProcessorRepository.java +++ b/server/sonar-ce/src/main/java/org/sonar/ce/taskprocessor/CeTaskProcessorRepository.java @@ -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 { diff --git a/server/sonar-ce/src/main/java/org/sonar/ce/taskprocessor/CeTaskProcessorRepositoryImpl.java b/server/sonar-ce/src/main/java/org/sonar/ce/taskprocessor/CeTaskProcessorRepositoryImpl.java index 99e2aeb845e..ba0c97d34e9 100644 --- a/server/sonar-ce/src/main/java/org/sonar/ce/taskprocessor/CeTaskProcessorRepositoryImpl.java +++ b/server/sonar-ce/src/main/java/org/sonar/ce/taskprocessor/CeTaskProcessorRepositoryImpl.java @@ -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; diff --git a/server/sonar-ce/src/main/java/org/sonar/ce/taskprocessor/CeWorker.java b/server/sonar-ce/src/main/java/org/sonar/ce/taskprocessor/CeWorker.java index c257ecef19e..6bf1301cec3 100644 --- a/server/sonar-ce/src/main/java/org/sonar/ce/taskprocessor/CeWorker.java +++ b/server/sonar-ce/src/main/java/org/sonar/ce/taskprocessor/CeWorker.java @@ -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; /** diff --git a/server/sonar-ce/src/main/java/org/sonar/ce/taskprocessor/CeWorkerImpl.java b/server/sonar-ce/src/main/java/org/sonar/ce/taskprocessor/CeWorkerImpl.java index 2ed412a6a12..06cc90b2546 100644 --- a/server/sonar-ce/src/main/java/org/sonar/ce/taskprocessor/CeWorkerImpl.java +++ b/server/sonar-ce/src/main/java/org/sonar/ce/taskprocessor/CeWorkerImpl.java @@ -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; diff --git a/server/sonar-ce/src/test/java/org/sonar/ce/notification/ReportAnalysisFailureNotificationExecutionListenerTest.java b/server/sonar-ce/src/test/java/org/sonar/ce/notification/ReportAnalysisFailureNotificationExecutionListenerTest.java index 574e2fdf133..6d73b4c81fe 100644 --- a/server/sonar-ce/src/test/java/org/sonar/ce/notification/ReportAnalysisFailureNotificationExecutionListenerTest.java +++ b/server/sonar-ce/src/test/java/org/sonar/ce/notification/ReportAnalysisFailureNotificationExecutionListenerTest.java @@ -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; diff --git a/server/sonar-ce/src/test/java/org/sonar/ce/queue/InternalCeQueueImplTest.java b/server/sonar-ce/src/test/java/org/sonar/ce/queue/InternalCeQueueImplTest.java index 15f76d2f131..ee5680b24b7 100644 --- a/server/sonar-ce/src/test/java/org/sonar/ce/queue/InternalCeQueueImplTest.java +++ b/server/sonar-ce/src/test/java/org/sonar/ce/queue/InternalCeQueueImplTest.java @@ -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; diff --git a/server/sonar-ce/src/test/java/org/sonar/ce/taskprocessor/CeTaskLoggingWorkerExecutionListenerTest.java b/server/sonar-ce/src/test/java/org/sonar/ce/taskprocessor/CeTaskLoggingWorkerExecutionListenerTest.java index fc80542b72f..9450da8b076 100644 --- a/server/sonar-ce/src/test/java/org/sonar/ce/taskprocessor/CeTaskLoggingWorkerExecutionListenerTest.java +++ b/server/sonar-ce/src/test/java/org/sonar/ce/taskprocessor/CeTaskLoggingWorkerExecutionListenerTest.java @@ -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; diff --git a/server/sonar-ce/src/test/java/org/sonar/ce/taskprocessor/CeTaskProcessorRepositoryImplTest.java b/server/sonar-ce/src/test/java/org/sonar/ce/taskprocessor/CeTaskProcessorRepositoryImplTest.java index d5691e1bb08..04cdeac6834 100644 --- a/server/sonar-ce/src/test/java/org/sonar/ce/taskprocessor/CeTaskProcessorRepositoryImplTest.java +++ b/server/sonar-ce/src/test/java/org/sonar/ce/taskprocessor/CeTaskProcessorRepositoryImplTest.java @@ -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; diff --git a/server/sonar-ce/src/test/java/org/sonar/ce/taskprocessor/CeTaskProcessorRepositoryRule.java b/server/sonar-ce/src/test/java/org/sonar/ce/taskprocessor/CeTaskProcessorRepositoryRule.java index 075c5deae31..451ebf1fefd 100644 --- a/server/sonar-ce/src/test/java/org/sonar/ce/taskprocessor/CeTaskProcessorRepositoryRule.java +++ b/server/sonar-ce/src/test/java/org/sonar/ce/taskprocessor/CeTaskProcessorRepositoryRule.java @@ -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; diff --git a/server/sonar-ce/src/test/java/org/sonar/ce/taskprocessor/CeWorkerImplTest.java b/server/sonar-ce/src/test/java/org/sonar/ce/taskprocessor/CeWorkerImplTest.java index bd39488a6bf..f7222a95a48 100644 --- a/server/sonar-ce/src/test/java/org/sonar/ce/taskprocessor/CeWorkerImplTest.java +++ b/server/sonar-ce/src/test/java/org/sonar/ce/taskprocessor/CeWorkerImplTest.java @@ -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; diff --git a/server/sonar-server/src/main/java/org/sonar/ce/CeModule.java b/server/sonar-server/src/main/java/org/sonar/ce/CeModule.java index 6b9e1c58a5a..74e5b22bf6e 100644 --- a/server/sonar-server/src/main/java/org/sonar/ce/CeModule.java +++ b/server/sonar-server/src/main/java/org/sonar/ce/CeModule.java @@ -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; diff --git a/server/sonar-server/src/main/java/org/sonar/ce/log/CeProcessLogging.java b/server/sonar-server/src/main/java/org/sonar/ce/log/CeProcessLogging.java index 0779ba4c04c..2788981d9a6 100644 --- a/server/sonar-server/src/main/java/org/sonar/ce/log/CeProcessLogging.java +++ b/server/sonar-server/src/main/java/org/sonar/ce/log/CeProcessLogging.java @@ -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. diff --git a/server/sonar-server/src/main/java/org/sonar/ce/queue/CeQueue.java b/server/sonar-server/src/main/java/org/sonar/ce/queue/CeQueue.java index 86cff2af7bf..cb6810f5a86 100644 --- a/server/sonar-server/src/main/java/org/sonar/ce/queue/CeQueue.java +++ b/server/sonar-server/src/main/java/org/sonar/ce/queue/CeQueue.java @@ -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 diff --git a/server/sonar-server/src/main/java/org/sonar/ce/queue/CeQueueImpl.java b/server/sonar-server/src/main/java/org/sonar/ce/queue/CeQueueImpl.java index 3b8dd3832c4..01b113bd64d 100644 --- a/server/sonar-server/src/main/java/org/sonar/ce/queue/CeQueueImpl.java +++ b/server/sonar-server/src/main/java/org/sonar/ce/queue/CeQueueImpl.java @@ -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; diff --git a/server/sonar-server/src/main/java/org/sonar/ce/taskprocessor/CeTaskProcessor.java b/server/sonar-server/src/main/java/org/sonar/ce/taskprocessor/CeTaskProcessor.java index 215a97aaa0a..441c227d0a3 100644 --- a/server/sonar-server/src/main/java/org/sonar/ce/taskprocessor/CeTaskProcessor.java +++ b/server/sonar-server/src/main/java/org/sonar/ce/taskprocessor/CeTaskProcessor.java @@ -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 diff --git a/server/sonar-server/src/main/java/org/sonar/ce/taskprocessor/ReportTaskProcessorDeclaration.java b/server/sonar-server/src/main/java/org/sonar/ce/taskprocessor/ReportTaskProcessorDeclaration.java index d25b24d865f..9c2c6f98b31 100644 --- a/server/sonar-server/src/main/java/org/sonar/ce/taskprocessor/ReportTaskProcessorDeclaration.java +++ b/server/sonar-server/src/main/java/org/sonar/ce/taskprocessor/ReportTaskProcessorDeclaration.java @@ -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; /** diff --git a/server/sonar-server/src/main/java/org/sonar/server/ce/queue/ReportSubmitter.java b/server/sonar-server/src/main/java/org/sonar/server/ce/queue/ReportSubmitter.java index bee5e24269b..92c60e4f0d9 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/ce/queue/ReportSubmitter.java +++ b/server/sonar-server/src/main/java/org/sonar/server/ce/queue/ReportSubmitter.java @@ -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; diff --git a/server/sonar-server/src/main/java/org/sonar/server/ce/ws/SubmitAction.java b/server/sonar-server/src/main/java/org/sonar/server/ce/ws/SubmitAction.java index e869d82cc8c..b266254de78 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/ce/ws/SubmitAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/ce/ws/SubmitAction.java @@ -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; diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/organization/DefaultOrganizationLoader.java b/server/sonar-server/src/main/java/org/sonar/server/computation/organization/DefaultOrganizationLoader.java index 8c36d2227a3..6ec301fc39e 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/organization/DefaultOrganizationLoader.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/organization/DefaultOrganizationLoader.java @@ -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 diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/organization/package-info.java b/server/sonar-server/src/main/java/org/sonar/server/computation/organization/package-info.java index 8e76145cb54..236691aec20 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/organization/package-info.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/organization/package-info.java @@ -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; diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/settings/SettingsLoader.java b/server/sonar-server/src/main/java/org/sonar/server/computation/settings/SettingsLoader.java index 7ccf1e50b7f..a06aea409b8 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/settings/SettingsLoader.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/settings/SettingsLoader.java @@ -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; /** diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/settings/package-info.java b/server/sonar-server/src/main/java/org/sonar/server/computation/settings/package-info.java index dc49a51c135..71c26a744ea 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/settings/package-info.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/settings/package-info.java @@ -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; diff --git a/server/sonar-server/src/test/java/org/sonar/ce/queue/CeQueueImplTest.java b/server/sonar-server/src/test/java/org/sonar/ce/queue/CeQueueImplTest.java index bceb8f980dd..8d0c5db35b2 100644 --- a/server/sonar-server/src/test/java/org/sonar/ce/queue/CeQueueImplTest.java +++ b/server/sonar-server/src/test/java/org/sonar/ce/queue/CeQueueImplTest.java @@ -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; diff --git a/server/sonar-server/src/test/java/org/sonar/ce/taskprocessor/ReportTaskProcessorDeclarationTest.java b/server/sonar-server/src/test/java/org/sonar/ce/taskprocessor/ReportTaskProcessorDeclarationTest.java index 4c496ce8480..fd967656814 100644 --- a/server/sonar-server/src/test/java/org/sonar/ce/taskprocessor/ReportTaskProcessorDeclarationTest.java +++ b/server/sonar-server/src/test/java/org/sonar/ce/taskprocessor/ReportTaskProcessorDeclarationTest.java @@ -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; diff --git a/server/sonar-server/src/test/java/org/sonar/server/ce/ws/CancelActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/ce/ws/CancelActionTest.java index b3b5561a9a3..3765b154bc2 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/ce/ws/CancelActionTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/ce/ws/CancelActionTest.java @@ -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; diff --git a/server/sonar-server/src/test/java/org/sonar/server/ce/ws/SubmitActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/ce/ws/SubmitActionTest.java index 6073f05a9cb..8892098fe9f 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/ce/ws/SubmitActionTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/ce/ws/SubmitActionTest.java @@ -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; diff --git a/server/sonar-server/src/test/java/org/sonar/server/ce/ws/TaskTypesActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/ce/ws/TaskTypesActionTest.java index 627e25d28b0..18aec801e52 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/ce/ws/TaskTypesActionTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/ce/ws/TaskTypesActionTest.java @@ -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;