aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-batch
diff options
context:
space:
mode:
authorGAUDIN <gaudol@gmail.com>2011-09-30 16:31:22 +0200
committerGAUDIN <gaudol@gmail.com>2011-09-30 16:31:22 +0200
commitb5016f504b3a7a29654e41c19ca78da2c8fa3be6 (patch)
treec61c40da1dd802fc974ee7cb441d7924236faf01 /sonar-batch
parent43f27118331e8395365562c3859986489e38fb0a (diff)
parent520ebfd35bc581fa12c8e8267a548dc4d56317c6 (diff)
downloadsonarqube-2.11.tar.gz
sonarqube-2.11.zip
Merge branch Release-2.112.11
Diffstat (limited to 'sonar-batch')
-rw-r--r--sonar-batch/pom.xml2
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/AbstractMavenPluginExecutor.java15
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/FakeMavenPluginExecutor.java2
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/MavenPluginExecutor.java2
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/ServerMetadata.java44
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/bootstrap/BatchExtensionInstaller.java12
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/index/EventPersister.java2
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/phases/MavenPhaseExecutor.java7
-rw-r--r--sonar-batch/src/test/java/org/sonar/batch/bootstrap/BootstrapModuleTest.java8
-rw-r--r--sonar-batch/src/test/java/org/sonar/batch/phases/MavenPhaseExecutorTest.java20
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");
}
}