Browse Source

Load global and project referentials only one time

tags/4.5-RC1
Julien Lancelot 9 years ago
parent
commit
720d5f84f6

+ 10
- 5
sonar-batch/src/main/java/org/sonar/batch/referential/GlobalReferentialsProvider.java View File

@@ -29,12 +29,17 @@ public class GlobalReferentialsProvider extends ProviderAdapter {

private static final Logger LOG = LoggerFactory.getLogger(GlobalReferentialsProvider.class);

private GlobalReferentials globalReferentials;

public GlobalReferentials provide(GlobalReferentialsLoader loader) {
TimeProfiler profiler = new TimeProfiler(LOG).start("Load global referentials");
try {
return loader.load();
} finally {
profiler.stop();
if (globalReferentials == null) {
TimeProfiler profiler = new TimeProfiler(LOG).start("Load global referentials");
try {
globalReferentials = loader.load();
} finally {
profiler.stop();
}
}
return globalReferentials;
}
}

+ 10
- 5
sonar-batch/src/main/java/org/sonar/batch/referential/ProjectReferentialsProvider.java View File

@@ -32,12 +32,17 @@ public class ProjectReferentialsProvider extends ProviderAdapter {

private static final Logger LOG = LoggerFactory.getLogger(ProjectReferentialsProvider.class);

private ProjectReferentials projectReferentials;

public ProjectReferentials provide(ProjectReferentialsLoader loader, ProjectReactor reactor, Settings settings, Languages languages) {
TimeProfiler profiler = new TimeProfiler(LOG).start("Load project referentials");
try {
return loader.load(reactor, settings, languages);
} finally {
profiler.stop();
if (projectReferentials == null) {
TimeProfiler profiler = new TimeProfiler(LOG).start("Load project referentials");
try {
projectReferentials = loader.load(reactor, settings, languages);
} finally {
profiler.stop();
}
}
return projectReferentials;
}
}

Loading…
Cancel
Save