diff options
author | Duarte Meneses <duarte.meneses@sonarsource.com> | 2015-08-14 14:49:49 +0200 |
---|---|---|
committer | Duarte Meneses <duarte.meneses@sonarsource.com> | 2015-08-18 09:36:10 +0200 |
commit | 2a5eea17c29c46566a13f84eead54b202a9bae83 (patch) | |
tree | 6e360aeea61672f86d090e52f281f6319953d4e2 /it/it-plugins/project-builder-plugin/src/main/java | |
parent | 48bb07308a21354e7f904a03b0c593158bde82b5 (diff) | |
download | sonarqube-2a5eea17c29c46566a13f84eead54b202a9bae83.tar.gz sonarqube-2a5eea17c29c46566a13f84eead54b202a9bae83.zip |
Migrate batch ITs
Diffstat (limited to 'it/it-plugins/project-builder-plugin/src/main/java')
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"); + } +} |