Skip to content

Commit

Permalink
Use ImmutableProjectReactor when possible
Browse files Browse the repository at this point in the history
  • Loading branch information
henryju committed Jun 1, 2015
1 parent 1b4f976 commit df86e9c
Show file tree
Hide file tree
Showing 5 changed files with 23 additions and 26 deletions.
Expand Up @@ -20,30 +20,28 @@
package org.sonar.batch.issue.tracking; package org.sonar.batch.issue.tracking;


import com.google.common.base.Function; import com.google.common.base.Function;
import org.sonar.api.batch.BatchSide; import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import javax.annotation.Nullable;
import org.sonar.api.batch.AnalysisMode; import org.sonar.api.batch.AnalysisMode;
import org.sonar.api.batch.BatchSide;
import org.sonar.api.batch.InstantiationStrategy; import org.sonar.api.batch.InstantiationStrategy;
import org.sonar.api.batch.bootstrap.ProjectReactor;
import org.sonar.api.batch.fs.InputFile; import org.sonar.api.batch.fs.InputFile;
import org.sonar.api.batch.fs.InputFile.Status; import org.sonar.api.batch.fs.InputFile.Status;
import org.sonar.api.utils.log.Logger; import org.sonar.api.utils.log.Logger;
import org.sonar.api.utils.log.Loggers; import org.sonar.api.utils.log.Loggers;
import org.sonar.api.utils.log.Profiler; import org.sonar.api.utils.log.Profiler;
import org.sonar.batch.index.BatchComponent; import org.sonar.batch.index.BatchComponent;
import org.sonar.batch.index.BatchComponentCache;
import org.sonar.batch.index.Cache; import org.sonar.batch.index.Cache;
import org.sonar.batch.index.Caches; import org.sonar.batch.index.Caches;
import org.sonar.batch.index.BatchComponentCache;
import org.sonar.batch.protocol.input.BatchInput.ServerIssue; import org.sonar.batch.protocol.input.BatchInput.ServerIssue;
import org.sonar.batch.repository.ServerIssuesLoader; import org.sonar.batch.repository.ServerIssuesLoader;
import org.sonar.batch.scan.ImmutableProjectReactor;
import org.sonar.batch.scan.filesystem.InputPathCache; import org.sonar.batch.scan.filesystem.InputPathCache;
import org.sonar.core.component.ComponentKeys; import org.sonar.core.component.ComponentKeys;


import javax.annotation.Nullable;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

@InstantiationStrategy(InstantiationStrategy.PER_BATCH) @InstantiationStrategy(InstantiationStrategy.PER_BATCH)
@BatchSide @BatchSide
public class ServerIssueRepository { public class ServerIssueRepository {
Expand All @@ -53,12 +51,12 @@ public class ServerIssueRepository {
private final Caches caches; private final Caches caches;
private Cache<ServerIssue> issuesCache; private Cache<ServerIssue> issuesCache;
private final ServerIssuesLoader previousIssuesLoader; private final ServerIssuesLoader previousIssuesLoader;
private final ProjectReactor reactor; private final ImmutableProjectReactor reactor;
private final BatchComponentCache resourceCache; private final BatchComponentCache resourceCache;
private final AnalysisMode analysisMode; private final AnalysisMode analysisMode;
private final InputPathCache inputPathCache; private final InputPathCache inputPathCache;


public ServerIssueRepository(Caches caches, ServerIssuesLoader previousIssuesLoader, ProjectReactor reactor, BatchComponentCache resourceCache, public ServerIssueRepository(Caches caches, ServerIssuesLoader previousIssuesLoader, ImmutableProjectReactor reactor, BatchComponentCache resourceCache,
AnalysisMode analysisMode, InputPathCache inputPathCache) { AnalysisMode analysisMode, InputPathCache inputPathCache) {
this.caches = caches; this.caches = caches;
this.previousIssuesLoader = previousIssuesLoader; this.previousIssuesLoader = previousIssuesLoader;
Expand Down
Expand Up @@ -32,14 +32,14 @@
import org.sonar.api.CoreProperties; import org.sonar.api.CoreProperties;
import org.sonar.api.batch.BatchSide; import org.sonar.api.batch.BatchSide;
import org.sonar.api.batch.bootstrap.ProjectDefinition; import org.sonar.api.batch.bootstrap.ProjectDefinition;
import org.sonar.api.batch.bootstrap.ProjectReactor;
import org.sonar.api.config.Settings; import org.sonar.api.config.Settings;
import org.sonar.api.platform.Server; import org.sonar.api.platform.Server;
import org.sonar.api.utils.TempFolder; import org.sonar.api.utils.TempFolder;
import org.sonar.api.utils.ZipUtils; import org.sonar.api.utils.ZipUtils;
import org.sonar.batch.bootstrap.DefaultAnalysisMode; import org.sonar.batch.bootstrap.DefaultAnalysisMode;
import org.sonar.batch.bootstrap.ServerClient; import org.sonar.batch.bootstrap.ServerClient;
import org.sonar.batch.protocol.output.BatchReportWriter; import org.sonar.batch.protocol.output.BatchReportWriter;
import org.sonar.batch.scan.ImmutableProjectReactor;


@BatchSide @BatchSide
public class ReportPublisher implements Startable { public class ReportPublisher implements Startable {
Expand All @@ -50,7 +50,7 @@ public class ReportPublisher implements Startable {
private final ServerClient serverClient; private final ServerClient serverClient;
private final Server server; private final Server server;
private final Settings settings; private final Settings settings;
private final ProjectReactor projectReactor; private final ImmutableProjectReactor projectReactor;
private final DefaultAnalysisMode analysisMode; private final DefaultAnalysisMode analysisMode;
private final TempFolder temp; private final TempFolder temp;


Expand All @@ -60,7 +60,7 @@ public class ReportPublisher implements Startable {
private BatchReportWriter writer; private BatchReportWriter writer;


public ReportPublisher(Settings settings, ServerClient serverClient, Server server, public ReportPublisher(Settings settings, ServerClient serverClient, Server server,
ProjectReactor projectReactor, DefaultAnalysisMode analysisMode, TempFolder temp, ReportPublisherStep[] publishers) { ImmutableProjectReactor projectReactor, DefaultAnalysisMode analysisMode, TempFolder temp, ReportPublisherStep[] publishers) {
this.serverClient = serverClient; this.serverClient = serverClient;
this.server = server; this.server = server;
this.projectReactor = projectReactor; this.projectReactor = projectReactor;
Expand Down
Expand Up @@ -27,7 +27,7 @@
import org.sonar.api.batch.bootstrap.ProjectDefinition; import org.sonar.api.batch.bootstrap.ProjectDefinition;


/** /**
* Immutable copy of project reactor after all modifications have been applied (see {@link MutableProjectReactorProvider}). * Immutable copy of project reactor after all modifications have been applied (see {@link ImmutableProjectReactorProvider}).
*/ */
@BatchSide @BatchSide
public class ImmutableProjectReactor { public class ImmutableProjectReactor {
Expand Down
Expand Up @@ -20,22 +20,21 @@
package org.sonar.batch.scm; package org.sonar.batch.scm;


import com.google.common.base.Joiner; import com.google.common.base.Joiner;
import java.util.LinkedHashMap;
import java.util.Map;
import org.picocontainer.Startable; import org.picocontainer.Startable;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.sonar.api.batch.BatchSide;
import org.sonar.api.CoreProperties; import org.sonar.api.CoreProperties;
import org.sonar.api.Properties; import org.sonar.api.Properties;
import org.sonar.api.Property; import org.sonar.api.Property;
import org.sonar.api.PropertyType; import org.sonar.api.PropertyType;
import org.sonar.api.batch.AnalysisMode; import org.sonar.api.batch.AnalysisMode;
import org.sonar.api.batch.BatchSide;
import org.sonar.api.batch.InstantiationStrategy; import org.sonar.api.batch.InstantiationStrategy;
import org.sonar.api.batch.bootstrap.ProjectReactor;
import org.sonar.api.batch.scm.ScmProvider; import org.sonar.api.batch.scm.ScmProvider;
import org.sonar.api.config.Settings; import org.sonar.api.config.Settings;

import org.sonar.batch.scan.ImmutableProjectReactor;
import java.util.LinkedHashMap;
import java.util.Map;


@Properties({ @Properties({
@Property( @Property(
Expand All @@ -57,14 +56,14 @@ public final class ScmConfiguration implements Startable {


public static final String FORCE_RELOAD_KEY = "sonar.scm.forceReloadAll"; public static final String FORCE_RELOAD_KEY = "sonar.scm.forceReloadAll";


private final ProjectReactor projectReactor; private final ImmutableProjectReactor projectReactor;
private final Settings settings; private final Settings settings;
private final Map<String, ScmProvider> providerPerKey = new LinkedHashMap<>(); private final Map<String, ScmProvider> providerPerKey = new LinkedHashMap<>();
private final AnalysisMode analysisMode; private final AnalysisMode analysisMode;


private ScmProvider provider; private ScmProvider provider;


public ScmConfiguration(ProjectReactor projectReactor, AnalysisMode analysisMode, Settings settings, ScmProvider... providers) { public ScmConfiguration(ImmutableProjectReactor projectReactor, AnalysisMode analysisMode, Settings settings, ScmProvider... providers) {
this.projectReactor = projectReactor; this.projectReactor = projectReactor;
this.analysisMode = analysisMode; this.analysisMode = analysisMode;
this.settings = settings; this.settings = settings;
Expand All @@ -73,7 +72,7 @@ public ScmConfiguration(ProjectReactor projectReactor, AnalysisMode analysisMode
} }
} }


public ScmConfiguration(ProjectReactor projectReactor, AnalysisMode analysisMode, Settings settings) { public ScmConfiguration(ImmutableProjectReactor projectReactor, AnalysisMode analysisMode, Settings settings) {
this(projectReactor, analysisMode, settings, new ScmProvider[0]); this(projectReactor, analysisMode, settings, new ScmProvider[0]);
} }


Expand Down
Expand Up @@ -24,13 +24,13 @@
import org.slf4j.Logger; import org.slf4j.Logger;
import org.sonar.api.CoreProperties; import org.sonar.api.CoreProperties;
import org.sonar.api.batch.bootstrap.ProjectDefinition; import org.sonar.api.batch.bootstrap.ProjectDefinition;
import org.sonar.api.batch.bootstrap.ProjectReactor;
import org.sonar.api.config.Settings; import org.sonar.api.config.Settings;
import org.sonar.api.platform.Server; import org.sonar.api.platform.Server;
import org.sonar.api.utils.TempFolder; import org.sonar.api.utils.TempFolder;
import org.sonar.batch.bootstrap.DefaultAnalysisMode; import org.sonar.batch.bootstrap.DefaultAnalysisMode;
import org.sonar.batch.bootstrap.ServerClient; import org.sonar.batch.bootstrap.ServerClient;
import org.sonar.batch.index.BatchComponentCache; import org.sonar.batch.index.BatchComponentCache;
import org.sonar.batch.scan.ImmutableProjectReactor;
import org.sonar.jpa.test.AbstractDbUnitTestCase; import org.sonar.jpa.test.AbstractDbUnitTestCase;


import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock;
Expand All @@ -43,12 +43,12 @@ public class ReportPublisherTest extends AbstractDbUnitTestCase {


BatchComponentCache resourceCache = mock(BatchComponentCache.class); BatchComponentCache resourceCache = mock(BatchComponentCache.class);


private ProjectReactor reactor; private ImmutableProjectReactor reactor;


@Before @Before
public void setUp() { public void setUp() {
mode = mock(DefaultAnalysisMode.class); mode = mock(DefaultAnalysisMode.class);
reactor = mock(ProjectReactor.class); reactor = mock(ImmutableProjectReactor.class);
when(reactor.getRoot()).thenReturn(ProjectDefinition.create().setKey("struts")); when(reactor.getRoot()).thenReturn(ProjectDefinition.create().setKey("struts"));
} }


Expand Down

0 comments on commit df86e9c

Please sign in to comment.