diff options
author | GAUDIN <gaudol@gmail.com> | 2011-09-30 16:31:22 +0200 |
---|---|---|
committer | GAUDIN <gaudol@gmail.com> | 2011-09-30 16:31:22 +0200 |
commit | b5016f504b3a7a29654e41c19ca78da2c8fa3be6 (patch) | |
tree | c61c40da1dd802fc974ee7cb441d7924236faf01 /sonar-batch | |
parent | 43f27118331e8395365562c3859986489e38fb0a (diff) | |
parent | 520ebfd35bc581fa12c8e8267a548dc4d56317c6 (diff) | |
download | sonarqube-2.11.tar.gz sonarqube-2.11.zip |
Merge branch Release-2.112.11
Diffstat (limited to 'sonar-batch')
10 files changed, 61 insertions, 53 deletions
diff --git a/sonar-batch/pom.xml b/sonar-batch/pom.xml index fe8783f7090..c938203745e 100644 --- a/sonar-batch/pom.xml +++ b/sonar-batch/pom.xml @@ -4,7 +4,7 @@ <parent> <groupId>org.codehaus.sonar</groupId> <artifactId>sonar</artifactId> - <version>2.10</version> + <version>2.11</version> </parent> <groupId>org.codehaus.sonar</groupId> diff --git a/sonar-batch/src/main/java/org/sonar/batch/AbstractMavenPluginExecutor.java b/sonar-batch/src/main/java/org/sonar/batch/AbstractMavenPluginExecutor.java index 2c4c0d12ed8..fdd219cecf6 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/AbstractMavenPluginExecutor.java +++ b/sonar-batch/src/main/java/org/sonar/batch/AbstractMavenPluginExecutor.java @@ -35,17 +35,14 @@ public abstract class AbstractMavenPluginExecutor implements MavenPluginExecutor public final MavenPluginHandler execute(Project project, ProjectDefinition projectDefinition, MavenPluginHandler handler) { for (String goal : handler.getGoals()) { MavenPlugin plugin = MavenPlugin.getPlugin(project.getPom(), handler.getGroupId(), handler.getArtifactId()); - execute(project, getGoal(handler.getGroupId(), handler.getArtifactId(), (plugin!=null && plugin.getPlugin()!=null ? plugin.getPlugin().getVersion() : null), goal)); + execute(project, + projectDefinition, + getGoal(handler.getGroupId(), handler.getArtifactId(), (plugin != null && plugin.getPlugin() != null ? plugin.getPlugin().getVersion() : null), goal)); } - - if (project.getPom()!=null) { - MavenProjectConverter.synchronizeFileSystem(project.getPom(), projectDefinition); - } - return handler; } - public final void execute(Project project, String goal) { + public final void execute(Project project, ProjectDefinition projectDefinition, String goal) { TimeProfiler profiler = new TimeProfiler().start("Execute " + goal); ClassLoader currentClassLoader = Thread.currentThread().getContextClassLoader(); try { @@ -57,6 +54,10 @@ public abstract class AbstractMavenPluginExecutor implements MavenPluginExecutor Thread.currentThread().setContextClassLoader(currentClassLoader); profiler.stop(); } + + if (project.getPom() != null) { + MavenProjectConverter.synchronizeFileSystem(project.getPom(), projectDefinition); + } } public abstract void concreteExecute(MavenProject pom, String goal) throws Exception; diff --git a/sonar-batch/src/main/java/org/sonar/batch/FakeMavenPluginExecutor.java b/sonar-batch/src/main/java/org/sonar/batch/FakeMavenPluginExecutor.java index 539d2962ec2..c8e0bc75ea7 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/FakeMavenPluginExecutor.java +++ b/sonar-batch/src/main/java/org/sonar/batch/FakeMavenPluginExecutor.java @@ -24,7 +24,7 @@ import org.sonar.api.batch.maven.MavenPluginHandler; import org.sonar.api.resources.Project; public final class FakeMavenPluginExecutor implements MavenPluginExecutor { - public void execute(Project project, String goal) { + public void execute(Project project, ProjectDefinition projectDef, String goal) { // do nothing } diff --git a/sonar-batch/src/main/java/org/sonar/batch/MavenPluginExecutor.java b/sonar-batch/src/main/java/org/sonar/batch/MavenPluginExecutor.java index 891c9fd1c4b..bc095fe0625 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/MavenPluginExecutor.java +++ b/sonar-batch/src/main/java/org/sonar/batch/MavenPluginExecutor.java @@ -26,7 +26,7 @@ import org.sonar.api.resources.Project; public interface MavenPluginExecutor extends BatchComponent { - void execute(Project project, String goal); + void execute(Project project, ProjectDefinition def, String goal); MavenPluginHandler execute(Project project, ProjectDefinition def, MavenPluginHandler handler); diff --git a/sonar-batch/src/main/java/org/sonar/batch/ServerMetadata.java b/sonar-batch/src/main/java/org/sonar/batch/ServerMetadata.java index b8accd4e6d1..97dae9df62f 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/ServerMetadata.java +++ b/sonar-batch/src/main/java/org/sonar/batch/ServerMetadata.java @@ -31,43 +31,39 @@ import java.util.Date; public class ServerMetadata extends Server { - private String id; - private String version; - private String url; - private Date startTime; + private Configuration conf; public ServerMetadata(Configuration conf) { - id = conf.getString(CoreProperties.SERVER_ID); - version = conf.getString(CoreProperties.SERVER_VERSION); - url = getURL(conf); - String dateString = conf.getString(CoreProperties.SERVER_STARTTIME); - if (dateString!=null) { - try { - this.startTime = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ").parse(dateString); - - } catch (ParseException e) { - LoggerFactory.getLogger(getClass()).error("The property " + CoreProperties.SERVER_STARTTIME + " is badly formatted.", e); - } - } - } - - public static String getURL(Configuration conf) { - return StringUtils.removeEnd(conf.getString("sonar.host.url", "http://localhost:9000"), "/"); + this.conf = conf; } public String getId() { - return id; + return conf.getString(CoreProperties.SERVER_ID); } public String getVersion() { - return version; + return conf.getString(CoreProperties.SERVER_VERSION); } public Date getStartedAt() { - return startTime; + String dateString = conf.getString(CoreProperties.SERVER_STARTTIME); + if (dateString != null) { + try { + return new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ").parse(dateString); + + } catch (ParseException e) { + LoggerFactory.getLogger(getClass()).error("The property " + CoreProperties.SERVER_STARTTIME + " is badly formatted.", e); + } + } + return null; } public String getURL() { - return url; + return StringUtils.removeEnd(conf.getString("sonar.host.url", "http://localhost:9000"), "/"); + } + + @Override + public String getPermanentServerId() { + return conf.getString(CoreProperties.PERMANENT_SERVER_ID); } } diff --git a/sonar-batch/src/main/java/org/sonar/batch/bootstrap/BatchExtensionInstaller.java b/sonar-batch/src/main/java/org/sonar/batch/bootstrap/BatchExtensionInstaller.java index f91054793b8..75dec73bac8 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/bootstrap/BatchExtensionInstaller.java +++ b/sonar-batch/src/main/java/org/sonar/batch/bootstrap/BatchExtensionInstaller.java @@ -64,12 +64,14 @@ public final class BatchExtensionInstaller implements BatchComponent { List<ExtensionProvider> providers = module.getComponents(ExtensionProvider.class); for (ExtensionProvider provider : providers) { Object obj = provider.provide(); - if (obj instanceof Iterable) { - for (Object extension : (Iterable) obj) { - installExtension(module, extension); + if (obj != null) { + if (obj instanceof Iterable) { + for (Object extension : (Iterable) obj) { + installExtension(module, extension); + } + } else { + installExtension(module, obj); } - } else { - installExtension(module, obj); } } } diff --git a/sonar-batch/src/main/java/org/sonar/batch/index/EventPersister.java b/sonar-batch/src/main/java/org/sonar/batch/index/EventPersister.java index 74835f2ffab..a36255b6065 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/index/EventPersister.java +++ b/sonar-batch/src/main/java/org/sonar/batch/index/EventPersister.java @@ -46,7 +46,7 @@ public final class EventPersister { } public void deleteEvent(Event event) { - session.remove(event); + session.removeWithoutFlush(event); session.commit(); } diff --git a/sonar-batch/src/main/java/org/sonar/batch/phases/MavenPhaseExecutor.java b/sonar-batch/src/main/java/org/sonar/batch/phases/MavenPhaseExecutor.java index a20548145a3..c3f2ad5cf90 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/phases/MavenPhaseExecutor.java +++ b/sonar-batch/src/main/java/org/sonar/batch/phases/MavenPhaseExecutor.java @@ -21,6 +21,7 @@ package org.sonar.batch.phases; import org.apache.commons.lang.StringUtils; import org.sonar.api.BatchComponent; +import org.sonar.api.batch.bootstrap.ProjectDefinition; import org.sonar.api.resources.Project; import org.sonar.batch.MavenPluginExecutor; @@ -29,15 +30,17 @@ public class MavenPhaseExecutor implements BatchComponent { public static final String PROP_PHASE = "sonar.phase"; private MavenPluginExecutor executor; + private ProjectDefinition projectDef; - public MavenPhaseExecutor(MavenPluginExecutor executor) { + public MavenPhaseExecutor(ProjectDefinition projectDef, MavenPluginExecutor executor) { + this.projectDef = projectDef; this.executor = executor; } public void execute(Project project) { String mavenPhase = (String) project.getProperty(PROP_PHASE); if (!StringUtils.isBlank(mavenPhase)) { - executor.execute(project, mavenPhase); + executor.execute(project, projectDef, mavenPhase); } } } diff --git a/sonar-batch/src/test/java/org/sonar/batch/bootstrap/BootstrapModuleTest.java b/sonar-batch/src/test/java/org/sonar/batch/bootstrap/BootstrapModuleTest.java index ff62f837bbd..f92f6084c35 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/bootstrap/BootstrapModuleTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/bootstrap/BootstrapModuleTest.java @@ -19,6 +19,9 @@ */ package org.sonar.batch.bootstrap; +import static org.hamcrest.Matchers.is; +import static org.junit.Assert.assertThat; + import org.junit.Test; import org.sonar.api.batch.bootstrap.ProjectDefinition; import org.sonar.api.batch.bootstrap.ProjectReactor; @@ -26,13 +29,10 @@ import org.sonar.api.batch.maven.MavenPluginHandler; import org.sonar.api.resources.Project; import org.sonar.batch.MavenPluginExecutor; -import static org.hamcrest.Matchers.is; -import static org.junit.Assert.assertThat; - public class BootstrapModuleTest { class MyMavenPluginExecutor implements MavenPluginExecutor { - public void execute(Project project, String goal) { + public void execute(Project project, ProjectDefinition projectDef, String goal) { } public MavenPluginHandler execute(Project project, ProjectDefinition projectDef, MavenPluginHandler handler) { diff --git a/sonar-batch/src/test/java/org/sonar/batch/phases/MavenPhaseExecutorTest.java b/sonar-batch/src/test/java/org/sonar/batch/phases/MavenPhaseExecutorTest.java index 49effe0b450..28cb920be2a 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/phases/MavenPhaseExecutorTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/phases/MavenPhaseExecutorTest.java @@ -19,32 +19,38 @@ */ package org.sonar.batch.phases; +import static org.mockito.Matchers.anyString; +import static org.mockito.Matchers.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.verify; + import org.apache.commons.configuration.PropertiesConfiguration; import org.junit.Test; +import org.sonar.api.batch.bootstrap.ProjectDefinition; import org.sonar.api.resources.Project; import org.sonar.batch.MavenPluginExecutor; -import static org.mockito.Matchers.anyString; -import static org.mockito.Mockito.*; - public class MavenPhaseExecutorTest { @Test public void doNothingIfNoPhase() { + ProjectDefinition projectDef = ProjectDefinition.create(); MavenPluginExecutor mavenPluginExecutor = mock(MavenPluginExecutor.class); - MavenPhaseExecutor phaseExecutor = new MavenPhaseExecutor(mavenPluginExecutor); + MavenPhaseExecutor phaseExecutor = new MavenPhaseExecutor(projectDef, mavenPluginExecutor); Project project = new Project("key"); phaseExecutor.execute(project); - verify(mavenPluginExecutor, never()).execute(eq(project), anyString()); + verify(mavenPluginExecutor, never()).execute(eq(project), eq(projectDef), anyString()); } @Test public void executePhase() { + ProjectDefinition projectDef = ProjectDefinition.create(); MavenPluginExecutor mavenPluginExecutor = mock(MavenPluginExecutor.class); - MavenPhaseExecutor phaseExecutor = new MavenPhaseExecutor(mavenPluginExecutor); + MavenPhaseExecutor phaseExecutor = new MavenPhaseExecutor(projectDef, mavenPluginExecutor); Project project = new Project("key"); PropertiesConfiguration conf = new PropertiesConfiguration(); @@ -53,6 +59,6 @@ public class MavenPhaseExecutorTest { phaseExecutor.execute(project); - verify(mavenPluginExecutor).execute(project, "myphase"); + verify(mavenPluginExecutor).execute(project, projectDef, "myphase"); } } |