diff options
author | Mark Donszelmann <Mark.Donszelmann@gmail.com> | 2009-11-05 16:17:51 +0100 |
---|---|---|
committer | Mark Donszelmann <Mark.Donszelmann@gmail.com> | 2009-11-05 16:17:51 +0100 |
commit | 5f3d4a7de54c13dff30f3e61761b693e26c406fa (patch) | |
tree | 083bfae72124c0e3a2b68854cae58c426d0bea3c /src/main/java/org/apache/maven/plugin/nar/AbstractCompileMojo.java | |
parent | 707da2d176a5c04878cfb84c4f71bdb799a128e0 (diff) | |
download | maven-nar-plugin-5f3d4a7de54c13dff30f3e61761b693e26c406fa.tar.gz maven-nar-plugin-5f3d4a7de54c13dff30f3e61761b693e26c406fa.tar.bz2 maven-nar-plugin-5f3d4a7de54c13dff30f3e61761b693e26c406fa.tar.xz maven-nar-plugin-5f3d4a7de54c13dff30f3e61761b693e26c406fa.zip |
Added test for layout change, it0016
Diffstat (limited to 'src/main/java/org/apache/maven/plugin/nar/AbstractCompileMojo.java')
-rw-r--r-- | src/main/java/org/apache/maven/plugin/nar/AbstractCompileMojo.java | 37 |
1 files changed, 34 insertions, 3 deletions
diff --git a/src/main/java/org/apache/maven/plugin/nar/AbstractCompileMojo.java b/src/main/java/org/apache/maven/plugin/nar/AbstractCompileMojo.java index 08ad9f6..5a541ad 100644 --- a/src/main/java/org/apache/maven/plugin/nar/AbstractCompileMojo.java +++ b/src/main/java/org/apache/maven/plugin/nar/AbstractCompileMojo.java @@ -129,6 +129,15 @@ public abstract class AbstractCompileMojo */ private Java java; + /** + * Layout to be used for building and upacking artifacts + * + * @parameter expression="${nar.layout}" default-value="org.apache.maven.plugin.nar.NarLayout21" + * @required + */ + private String layout; + private NarLayout narLayout; + private NarInfo narInfo; private List/* <String> */dependencyLibOrder; @@ -253,9 +262,31 @@ public abstract class AbstractCompileMojo return narInfo; } - // FIXME, needs to be configurable and maybe move up - protected NarLayout getLayout() + // FIXME, needs to maybe move up + protected NarLayout getLayout() throws MojoExecutionException { - return new DefaultNarLayout(); + if (narLayout == null) { + String className = layout.indexOf( '.' ) < 0 ? NarLayout21.class.getPackage().getName()+"."+layout : layout; + getLog().debug( "Using "+className); + Class cls; + try + { + cls = Class.forName( className ); + narLayout = (NarLayout)cls.newInstance(); + } + catch ( ClassNotFoundException e ) + { + throw new MojoExecutionException( "Cannot find class for layout "+className, e ); + } + catch ( InstantiationException e ) + { + throw new MojoExecutionException( "Cannot instantiate class for layout "+className, e ); + } + catch ( IllegalAccessException e ) + { + throw new MojoExecutionException( "Cannot access class for layout "+className, e ); + } + } + return narLayout; } } |