summaryrefslogtreecommitdiff
path: root/src/main/java/org/apache/maven/plugin/nar/AbstractCompileMojo.java
diff options
context:
space:
mode:
authorMark Donszelmann <Mark.Donszelmann@gmail.com>2009-11-05 16:17:51 +0100
committerMark Donszelmann <Mark.Donszelmann@gmail.com>2009-11-05 16:17:51 +0100
commit5f3d4a7de54c13dff30f3e61761b693e26c406fa (patch)
tree083bfae72124c0e3a2b68854cae58c426d0bea3c /src/main/java/org/apache/maven/plugin/nar/AbstractCompileMojo.java
parent707da2d176a5c04878cfb84c4f71bdb799a128e0 (diff)
downloadmaven-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.java37
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;
}
}