From 9f8c4529453c43ed2d63b6789cd0e30f1e7b3574 Mon Sep 17 00:00:00 2001 From: Dominik Przybysz Date: Tue, 26 Apr 2016 18:40:07 +0200 Subject: [PATCH] [ARIES-1539] Allow for setting name of generated file --- .../blueprint/plugin/FilteredClassFinder.java | 14 ++---- .../aries/blueprint/plugin/GenerateMojo.java | 50 +++++++++++-------- 2 files changed, 35 insertions(+), 29 deletions(-) diff --git a/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/FilteredClassFinder.java b/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/FilteredClassFinder.java index ef6a303f19..a9f630dfdc 100644 --- a/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/FilteredClassFinder.java +++ b/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/FilteredClassFinder.java @@ -18,17 +18,16 @@ */ package org.apache.aries.blueprint.plugin; +import org.apache.xbean.finder.ClassFinder; +import org.springframework.stereotype.Component; + +import javax.inject.Named; +import javax.inject.Singleton; import java.lang.annotation.Annotation; import java.util.Collection; import java.util.HashSet; import java.util.Set; -import javax.inject.Named; -import javax.inject.Singleton; - -import org.apache.xbean.finder.ClassFinder; -import org.springframework.stereotype.Component; - public class FilteredClassFinder { @SuppressWarnings("unchecked") @@ -50,12 +49,9 @@ private static Set> filterByBasePackages(Set> rawClasses, Coll for (String packageName : packageNames) { if (clazz.getPackage().getName().startsWith(packageName)) { filteredClasses.add(clazz); - continue; } } } - //System.out.println("Raw: " + rawClasses); - //System.out.println("Filtered: " + beanClasses); return filteredClasses; } } 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 1314954d06..a234c64e6e 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 @@ -6,9 +6,9 @@ * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * + *

+ * http://www.apache.org/licenses/LICENSE-2.0 + *

* Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY @@ -18,15 +18,6 @@ */ package org.apache.aries.blueprint.plugin; -import java.io.File; -import java.io.OutputStream; -import java.net.MalformedURLException; -import java.net.URL; -import java.net.URLClassLoader; -import java.util.ArrayList; -import java.util.List; -import java.util.Set; - import org.apache.aries.blueprint.plugin.model.Context; import org.apache.maven.artifact.Artifact; import org.apache.maven.model.Resource; @@ -37,8 +28,18 @@ import org.apache.xbean.finder.ClassFinder; import org.sonatype.plexus.build.incremental.BuildContext; +import java.io.File; +import java.io.OutputStream; +import java.net.MalformedURLException; +import java.net.URL; +import java.net.URLClassLoader; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + /** * Generates blueprint from spring annotations + * * @goal blueprint-generate * @phase process-classes * @requiresDependencyResolution compile @@ -63,8 +64,8 @@ public class GenerateMojo extends AbstractMojo { /** * Which extension namespaces should the plugin support - * - * @parameter + * + * @parameter */ protected Set namespaces; @@ -73,6 +74,13 @@ public class GenerateMojo extends AbstractMojo { */ private BuildContext buildContext; + /** + * Name of file to generate, default: autowire.xml + * + * @parameter + */ + protected String generatedFileName; + public void execute() throws MojoExecutionException, MojoFailureException { if (!buildContext.hasDelta(new File(project.getCompileSourceRoots().iterator().next()))) { return; @@ -99,7 +107,9 @@ private void writeBlueprint(Context context) throws Exception { resource.setDirectory(generatedDir); project.addResource(resource); - File file = new File(generatedDir, "OSGI-INF/blueprint/autowire.xml"); + String fileName = generatedFileName != null ? generatedFileName : "autowire.xml"; + + File file = new File(generatedDir, "OSGI-INF/blueprint/" + fileName); file.getParentFile().mkdirs(); System.out.println("Generating blueprint to " + file); @@ -111,12 +121,12 @@ private void writeBlueprint(Context context) throws Exception { private ClassFinder createProjectScopeFinder() throws MalformedURLException { List urls = new ArrayList(); - urls.add( new File(project.getBuild().getOutputDirectory()).toURI().toURL() ); - for ( Object artifactO : project.getArtifacts() ) { - Artifact artifact = (Artifact)artifactO; + urls.add(new File(project.getBuild().getOutputDirectory()).toURI().toURL()); + for (Object artifactO : project.getArtifacts()) { + Artifact artifact = (Artifact) artifactO; File file = artifact.getFile(); - if ( file != null ) { - urls.add( file.toURI().toURL() ); + if (file != null) { + urls.add(file.toURI().toURL()); } } ClassLoader loader = new URLClassLoader(urls.toArray(new URL[urls.size()]), getClass().getClassLoader());