aboutsummaryrefslogtreecommitdiffstats
path: root/it/it-plugins/project-builder-plugin/src/main/java
diff options
context:
space:
mode:
authorDuarte Meneses <duarte.meneses@sonarsource.com>2015-08-14 14:49:49 +0200
committerDuarte Meneses <duarte.meneses@sonarsource.com>2015-08-18 09:36:10 +0200
commit2a5eea17c29c46566a13f84eead54b202a9bae83 (patch)
tree6e360aeea61672f86d090e52f281f6319953d4e2 /it/it-plugins/project-builder-plugin/src/main/java
parent48bb07308a21354e7f904a03b0c593158bde82b5 (diff)
downloadsonarqube-2a5eea17c29c46566a13f84eead54b202a9bae83.tar.gz
sonarqube-2a5eea17c29c46566a13f84eead54b202a9bae83.zip
Migrate batch ITs
Diffstat (limited to 'it/it-plugins/project-builder-plugin/src/main/java')
-rw-r--r--it/it-plugins/project-builder-plugin/src/main/java/CreateSubProjects.java58
-rw-r--r--it/it-plugins/project-builder-plugin/src/main/java/ProjectBuilderPlugin.java10
-rw-r--r--it/it-plugins/project-builder-plugin/src/main/java/RenameProject.java28
3 files changed, 96 insertions, 0 deletions
diff --git a/it/it-plugins/project-builder-plugin/src/main/java/CreateSubProjects.java b/it/it-plugins/project-builder-plugin/src/main/java/CreateSubProjects.java
new file mode 100644
index 00000000000..7f122494690
--- /dev/null
+++ b/it/it-plugins/project-builder-plugin/src/main/java/CreateSubProjects.java
@@ -0,0 +1,58 @@
+import org.sonar.api.batch.bootstrap.ProjectBuilder;
+import org.sonar.api.batch.bootstrap.ProjectDefinition;
+import org.sonar.api.batch.bootstrap.ProjectReactor;
+import org.sonar.api.config.Settings;
+
+import java.io.File;
+
+/**
+ * This plugin relates to projects/project-builder sample
+ */
+public final class CreateSubProjects extends ProjectBuilder {
+
+ private Settings settings;
+
+ public CreateSubProjects(ProjectReactor reactor, Settings settings) {
+ super(reactor);
+
+ // A real implementation should for example use the configuration
+ this.settings = settings;
+ }
+
+ @Override
+ protected void build(ProjectReactor reactor) {
+ if (!settings.getBoolean("sonar.enableProjectBuilder")) {
+ return;
+ }
+ System.out.println("---> Creating sub-projects");
+ ProjectDefinition root = reactor.getRoot();
+
+ // add two modules
+ createSubProjectWithSourceDir(root);
+ createSubProjectWithSourceFiles(root);
+ }
+
+ private ProjectDefinition createSubProjectWithSourceDir(ProjectDefinition root) {
+ File baseDir = new File(root.getBaseDir(), "module_a");
+ ProjectDefinition subProject = ProjectDefinition.create();
+ subProject.setBaseDir(baseDir).setWorkDir(new File(baseDir, "target/.sonar"));
+ subProject.setKey("com.sonarsource.it.projects.batch:project-builder-module-a");
+ subProject.setVersion(root.getVersion());
+ subProject.setName("Module A");
+ subProject.setSourceDirs("src");
+ root.addSubProject(subProject);
+ return subProject;
+ }
+
+ private ProjectDefinition createSubProjectWithSourceFiles(ProjectDefinition root) {
+ File baseDir = new File(root.getBaseDir(), "module_b");
+ ProjectDefinition subProject = ProjectDefinition.create();
+ subProject.setBaseDir(baseDir).setWorkDir(new File(baseDir, "target/.sonar"));
+ subProject.setKey("com.sonarsource.it.projects.batch:project-builder-module-b");
+ subProject.setVersion(root.getVersion());
+ subProject.setName("Module B");
+ subProject.addSourceFiles("src/HelloB.java");
+ root.addSubProject(subProject);
+ return subProject;
+ }
+}
diff --git a/it/it-plugins/project-builder-plugin/src/main/java/ProjectBuilderPlugin.java b/it/it-plugins/project-builder-plugin/src/main/java/ProjectBuilderPlugin.java
new file mode 100644
index 00000000000..e3d0bdca553
--- /dev/null
+++ b/it/it-plugins/project-builder-plugin/src/main/java/ProjectBuilderPlugin.java
@@ -0,0 +1,10 @@
+import org.sonar.api.SonarPlugin;
+
+import java.util.Arrays;
+import java.util.List;
+
+public class ProjectBuilderPlugin extends SonarPlugin {
+ public List getExtensions() {
+ return Arrays.asList(CreateSubProjects.class, RenameProject.class);
+ }
+}
diff --git a/it/it-plugins/project-builder-plugin/src/main/java/RenameProject.java b/it/it-plugins/project-builder-plugin/src/main/java/RenameProject.java
new file mode 100644
index 00000000000..67971dc208b
--- /dev/null
+++ b/it/it-plugins/project-builder-plugin/src/main/java/RenameProject.java
@@ -0,0 +1,28 @@
+import org.sonar.api.batch.bootstrap.ProjectBuilder;
+import org.sonar.api.batch.bootstrap.ProjectDefinition;
+import org.sonar.api.batch.bootstrap.ProjectReactor;
+import org.sonar.api.config.Settings;
+
+/**
+ * This plugin relates to projects/project-builder sample
+ */
+public final class RenameProject extends ProjectBuilder {
+
+ private Settings settings;
+
+ public RenameProject(ProjectReactor reactor, Settings settings) {
+ super(reactor);
+ this.settings = settings;
+ }
+
+ @Override
+ protected void build(ProjectReactor reactor) {
+ if (!settings.getBoolean("sonar.enableProjectBuilder")) {
+ return;
+ }
+ System.out.println("---> Renaming project");
+ // change name of root project
+ ProjectDefinition root = reactor.getRoot();
+ root.setName("Name changed by plugin");
+ }
+}