summaryrefslogtreecommitdiff
path: root/src/main/java/org/apache/maven/plugin/nar/NarLayout21.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/NarLayout21.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/NarLayout21.java')
-rw-r--r--src/main/java/org/apache/maven/plugin/nar/NarLayout21.java100
1 files changed, 88 insertions, 12 deletions
diff --git a/src/main/java/org/apache/maven/plugin/nar/NarLayout21.java b/src/main/java/org/apache/maven/plugin/nar/NarLayout21.java
index 074d594..61c3a19 100644
--- a/src/main/java/org/apache/maven/plugin/nar/NarLayout21.java
+++ b/src/main/java/org/apache/maven/plugin/nar/NarLayout21.java
@@ -2,6 +2,10 @@ package org.apache.maven.plugin.nar;
import java.io.File;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.MavenProjectHelper;
+
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
@@ -35,16 +39,16 @@ import java.io.File;
* @author Mark Donszelmann (Mark.Donszelmann@gmail.com)
*/
public class NarLayout21
- implements NarLayout
+ extends AbstractNarLayout
{
- public File getAolDirectory( File baseDir )
+ private File getNoarchDirectory( File baseDir )
{
- return new File( baseDir, "aol" );
+ return new File( baseDir, "noarch" );
}
- public File getNoarchDirectory( File baseDir )
+ private File getAolDirectory( File baseDir )
{
- return new File( baseDir, "noarch" );
+ return new File( baseDir, "aol" );
}
private File getAolDirectory( File baseDir, String aol, String type )
@@ -58,23 +62,95 @@ public class NarLayout21
*/
public File getIncludeDirectory( File baseDir )
{
- File dir = getNoarchDirectory( baseDir );
- dir = new File( dir, "include" );
- return dir;
+ return new File( getNoarchDirectory( baseDir ), "include" );
}
/*
* (non-Javadoc)
- * @see org.apache.maven.plugin.nar.NarLayout#getLibDir(org.apache.maven.plugin.nar.AOL, java.lang.String)
+ * @see org.apache.maven.plugin.nar.NarLayout#getLibDir(java.io.File, org.apache.maven.plugin.nar.AOL,
+ * java.lang.String)
*/
public File getLibDirectory( File baseDir, String aol, String type )
{
+ if ( type.equals( Library.EXECUTABLE ) )
+ {
+ System.err.println( "WARNING, Replace call to getLibDirectory with getBinDirectory" );
+ Thread.dumpStack();
+ }
+
File dir = getAolDirectory( baseDir, aol, type );
- dir = new File( dir, type.equals( Library.EXECUTABLE ) ? "bin" : "lib" );
+ dir = new File( dir, "lib" );
dir = new File( dir, aol.toString() );
- if ( !type.equals( Library.EXECUTABLE ) )
- dir = new File( dir, type );
+ dir = new File( dir, type );
return dir;
}
+ /*
+ * (non-Javadoc)
+ * @see org.apache.maven.plugin.nar.NarLayout#getLibDir(java.io.File, org.apache.maven.plugin.nar.AOL,
+ * java.lang.String)
+ */
+ public File getBinDirectory( File baseDir, String aol )
+ {
+ File dir = getAolDirectory( baseDir, aol, Library.EXECUTABLE );
+ dir = new File( dir, "bin" );
+ dir = new File( dir, aol.toString() );
+ return dir;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.apache.maven.plugin.nar.NarLayout#attachNars(java.io.File, org.apache.maven.project.MavenProjectHelper,
+ * org.apache.maven.project.MavenProject, org.apache.maven.plugin.nar.NarInfo)
+ */
+ public void attachNars( File baseDir, MavenProjectHelper projectHelper, MavenProject project, NarInfo narInfo )
+ throws MojoExecutionException
+ {
+ if (getNoarchDirectory( baseDir ).exists()) {
+ attachNar( projectHelper, project, "noarch", getNoarchDirectory( baseDir ), "*/**" );
+ narInfo.setNar( null, "noarch", project.getGroupId() + ":" + project.getArtifactId() + ":"
+ + NarConstants.NAR_TYPE + ":" + "noarch" );
+ }
+
+ String bindingType = null;
+ File classifierDir = getAolDirectory( baseDir );
+ String[] classifier = classifierDir.list();
+ for ( int i = 0; ( classifier != null ) && ( i < classifier.length ); i++ )
+ {
+ File dir = new File( classifierDir, classifier[i] );
+ attachNar( projectHelper, project, classifier[i], dir, "*/**" );
+
+ // look for type in aol/lib/<aol>/type
+ String type = Library.EXECUTABLE;
+ File libDir = new File( dir, "lib" );
+ String[] aolDir = libDir.list();
+ if ( ( aolDir != null ) && aolDir.length > 0 )
+ {
+ String[] typeDir = new File( libDir, aolDir[0] ).list();
+ if ( ( typeDir != null ) && ( typeDir.length > 0 ) )
+ {
+ type = typeDir[0];
+ }
+ }
+
+ narInfo.setNar( null, type, project.getGroupId() + ":" + project.getArtifactId() + ":"
+ + NarConstants.NAR_TYPE + ":" + "${aol}" + "-" + type );
+
+ // set if not Executable
+ if ( !type.equals( Library.EXECUTABLE ) )
+ {
+ // and not set or override if SHARED
+ if ( ( bindingType == null ) || type.equals( Library.SHARED ) )
+ {
+ bindingType = type;
+ }
+ }
+
+ }
+
+ if ( narInfo.getBinding( null, null ) == null )
+ {
+ narInfo.setBinding( null, bindingType != null ? bindingType : Library.NONE );
+ }
+ }
}