From e7074916ae269313255fb762aff2ecca564b1350 Mon Sep 17 00:00:00 2001 From: Michael Vorburger Date: Tue, 23 Aug 2016 12:28:53 +0200 Subject: [PATCH] [ARIES-1597] blueprint-maven-plugin new option to override generatedDir Signed-off-by: Michael Vorburger --- .../aries/blueprint/plugin/GenerateMojo.java | 25 +++++++++++++------ 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/GenerateMojo.java b/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/GenerateMojo.java index b26920c32f..b61517172d 100644 --- a/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/GenerateMojo.java +++ b/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/GenerateMojo.java @@ -45,7 +45,7 @@ /** * Generates blueprint from CDI annotations */ -@Mojo(name="blueprint-generate", requiresDependencyResolution=ResolutionScope.COMPILE, +@Mojo(name="blueprint-generate", requiresDependencyResolution=ResolutionScope.COMPILE, defaultPhase=LifecyclePhase.PROCESS_CLASSES, inheritByDefault=false) public class GenerateMojo extends AbstractMojo { @@ -54,7 +54,7 @@ public class GenerateMojo extends AbstractMojo { @Parameter(required=true) protected List scanPaths; - + /** * Which extension namespaces should the plugin support */ @@ -70,6 +70,13 @@ public class GenerateMojo extends AbstractMojo { @Parameter(defaultValue="autowire.xml") protected String generatedFileName; + /** + * Base directory to generate into + * (relative to ${project.build.directory}/generated-resources). + */ + @Parameter(defaultValue="OSGI-INF/blueprint/") + private String generatedDir; + /** * Specifies the default activation setting that will be defined for components. * Default is null, which indicates eager (blueprint default). @@ -79,6 +86,7 @@ public class GenerateMojo extends AbstractMojo { @Parameter protected Activation defaultActivation; + @Override public void execute() throws MojoExecutionException, MojoFailureException { if (scanPaths.size() == 0 || scanPaths.iterator().next() == null) { throw new MojoExecutionException("Configuration scanPaths must be set"); @@ -86,10 +94,10 @@ public void execute() throws MojoExecutionException, MojoFailureException { if (!buildContext.hasDelta(new File(project.getCompileSourceRoots().iterator().next()))) { return; } - + try { ClassFinder finder = createProjectScopeFinder(); - + Set> classes = FilteredClassFinder.findClasses(finder, scanPaths); Context context = new Context(classes); context.resolve(); @@ -103,12 +111,13 @@ public void execute() throws MojoExecutionException, MojoFailureException { private void writeBlueprint(Context context) throws Exception { String buildDir = project.getBuild().getDirectory(); - String generatedDir = buildDir + "/generated-resources"; + String generatedBaseDir = buildDir + "/generated-resources"; Resource resource = new Resource(); - resource.setDirectory(generatedDir); + resource.setDirectory(generatedBaseDir); project.addResource(resource); - File file = new File(generatedDir, "OSGI-INF/blueprint/" + generatedFileName); + File dir = new File(generatedBaseDir, generatedDir); + File file = new File(dir, generatedFileName); file.getParentFile().mkdirs(); System.out.println("Generating blueprint to " + file); @@ -118,7 +127,7 @@ private void writeBlueprint(Context context) throws Exception { } private ClassFinder createProjectScopeFinder() throws MalformedURLException { - List urls = new ArrayList(); + List urls = new ArrayList<>(); urls.add(new File(project.getBuild().getOutputDirectory()).toURI().toURL()); for (Object artifactO : project.getArtifacts()) {