You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by dj...@apache.org on 2010/02/27 00:56:58 UTC
svn commit: r916872 - in
/incubator/aries/trunk/application/eba-maven-plugin: ./
src/main/java/org/apache/aries/plugin/eba/
src/test/java/org/apache/aries/plugin/eba/
src/test/resources/unit/basic-eba-test/
src/test/resources/unit/basic-eba-with-descri...
Author: djencks
Date: Fri Feb 26 23:56:58 2010
New Revision: 916872
URL: http://svn.apache.org/viewvc?rev=916872&view=rev
Log:
ARIES-120 use zip archiver to avoid manifest.mf
Modified:
incubator/aries/trunk/application/eba-maven-plugin/pom.xml
incubator/aries/trunk/application/eba-maven-plugin/src/main/java/org/apache/aries/plugin/eba/EbaMojo.java
incubator/aries/trunk/application/eba-maven-plugin/src/test/java/org/apache/aries/plugin/eba/EbaMojoTest.java
incubator/aries/trunk/application/eba-maven-plugin/src/test/resources/unit/basic-eba-test/plugin-config.xml
incubator/aries/trunk/application/eba-maven-plugin/src/test/resources/unit/basic-eba-with-descriptor/plugin-config.xml
incubator/aries/trunk/application/eba-maven-plugin/src/test/resources/unit/basic-eba-with-manifest/plugin-config.xml
Modified: incubator/aries/trunk/application/eba-maven-plugin/pom.xml
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/application/eba-maven-plugin/pom.xml?rev=916872&r1=916871&r2=916872&view=diff
==============================================================================
--- incubator/aries/trunk/application/eba-maven-plugin/pom.xml (original)
+++ incubator/aries/trunk/application/eba-maven-plugin/pom.xml Fri Feb 26 23:56:58 2010
@@ -57,7 +57,7 @@
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-archiver</artifactId>
- <version>2.2</version>
+ <version>2.3</version>
</dependency>
<dependency>
<groupId>org.apache.maven.shared</groupId>
Modified: incubator/aries/trunk/application/eba-maven-plugin/src/main/java/org/apache/aries/plugin/eba/EbaMojo.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/application/eba-maven-plugin/src/main/java/org/apache/aries/plugin/eba/EbaMojo.java?rev=916872&r1=916871&r2=916872&view=diff
==============================================================================
--- incubator/aries/trunk/application/eba-maven-plugin/src/main/java/org/apache/aries/plugin/eba/EbaMojo.java (original)
+++ incubator/aries/trunk/application/eba-maven-plugin/src/main/java/org/apache/aries/plugin/eba/EbaMojo.java Fri Feb 26 23:56:58 2010
@@ -19,22 +19,21 @@
* under the License.
*/
+import org.apache.maven.archiver.PomPropertiesUtil;
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.resolver.filter.ScopeArtifactFilter;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.archiver.MavenArchiver;
-import org.apache.maven.archiver.MavenArchiveConfiguration;
import org.apache.maven.project.MavenProject;
-import org.apache.maven.artifact.Artifact;
import org.codehaus.plexus.archiver.ArchiverException;
-import org.codehaus.plexus.archiver.jar.JarArchiver;
-import org.codehaus.plexus.util.FileUtils;
+import org.codehaus.plexus.archiver.zip.ZipArchiver;
import org.codehaus.plexus.util.DirectoryScanner;
+import org.codehaus.plexus.util.FileUtils;
import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import java.util.Set;
-import org.apache.maven.artifact.resolver.filter.ScopeArtifactFilter;
/**
* Builds Aries Enterprise Bundle Archive (eba) files.
@@ -125,17 +124,31 @@
/**
* The Jar archiver.
*
- * @component role="org.codehaus.plexus.archiver.Archiver" roleHint="jar"
+ * @parameter expression="${component.org.codehaus.plexus.archiver.Archiver#zip}"
+ * @required
*/
- private JarArchiver jarArchiver;
+ private ZipArchiver zipArchiver;
/**
- * The archive configuration to use.
- * See <a href="http://maven.apache.org/shared/maven-archiver/index.html">Maven Archiver Reference</a>.
+ * Adding pom.xml and pom.properties to the archive.
*
- * @parameter
+ * @parameter expression="${addMavenDescriptor}" default-value="true"
+ */
+ private boolean addMavenDescriptor;
+
+ /**
+ * Include or not empty directories
+ *
+ * @parameter expression="${zip.includeEmptyDirs}" default-value="true"
+ */
+ private boolean includeEmptyDirs;
+
+ /**
+ * Whether creating the archive should be forced.
+ *
+ * @parameter expression="${zip.forceCreation}" default-value="false"
*/
- private MavenArchiveConfiguration archive = new MavenArchiveConfiguration();
+ private boolean forceCreation;
private File buildDir;
@@ -152,6 +165,9 @@
getLog().debug( "outputDirectory[" + outputDirectory + "]" );
getLog().debug( "finalName[" + finalName + "]" );
+ zipArchiver.setIncludeEmptyDirs( includeEmptyDirs );
+ zipArchiver.setCompress( true );
+ zipArchiver.setForced( forceCreation );
// Check if jar file is there and if requested, copy it
try
{
@@ -159,7 +175,7 @@
File generatedJarFile = new File( outputDirectory, finalName + ".jar" );
if (generatedJarFile.exists()) {
getLog().info( "Including generated jar file["+generatedJarFile.getName()+"]");
- jarArchiver.addFile(generatedJarFile, finalName + ".jar");
+ zipArchiver.addFile(generatedJarFile, finalName + ".jar");
}
}
}
@@ -182,7 +198,7 @@
{
getLog().info("Copying artifact[" + artifact.getGroupId() + ", " + artifact.getId() + ", " +
artifact.getScope() + "]");
- jarArchiver.addFile(artifact.getFile(), artifact.getArtifactId() + "-" + artifact.getVersion() + "." + (artifact.getType() == null? "jar": artifact.getType()));
+ zipArchiver.addFile(artifact.getFile(), artifact.getArtifactId() + "-" + artifact.getVersion() + "." + (artifact.getType() == null? "jar": artifact.getType()));
}
}
}
@@ -250,24 +266,34 @@
try
{
- File ebaFile = new File( outputDirectory, finalName + ".eba" );
- MavenArchiver archiver = new MavenArchiver();
- archiver.setArchiver( jarArchiver );
- archiver.setOutputFile( ebaFile );
+ if (addMavenDescriptor) {
+ if (project.getArtifact().isSnapshot()) {
+ project.setVersion(project.getArtifact().getVersion());
+ }
+
+ String groupId = project.getGroupId();
+
+ String artifactId = project.getArtifactId();
- // Include custom manifest if necessary
- includeCustomManifestFile();
+ zipArchiver.addFile(project.getFile(), "META-INF/maven/" + groupId + "/" + artifactId + "/pom.xml");
+ PomPropertiesUtil pomPropertiesUtil = new PomPropertiesUtil();
+ File dir = new File(project.getBuild().getDirectory(), "maven-zip-plugin");
+ File pomPropertiesFile = new File(dir, "pom.properties");
+ pomPropertiesUtil.createPomProperties(project, zipArchiver, pomPropertiesFile, forceCreation);
+ }
+ File ebaFile = new File( outputDirectory, finalName + ".eba" );
+ zipArchiver.setDestFile(ebaFile);
File buildDir = getBuildDir();
if (buildDir.isDirectory()) {
- jarArchiver.addDirectory(buildDir);
+ zipArchiver.addDirectory(buildDir);
}
//include legal files if any
File sharedResourcesDir = new File(sharedResources);
if (sharedResourcesDir.isDirectory()) {
- jarArchiver.addDirectory(sharedResourcesDir);
+ zipArchiver.addDirectory(sharedResourcesDir);
}
- archiver.createArchive( project, archive );
+ zipArchiver.createArchive();
project.getArtifact().setFile( ebaFile );
}
@@ -286,23 +312,6 @@
return buildDir;
}
- private void includeCustomManifestFile()
- throws IOException
- {
- File customManifestFile = manifestFile;
- if ( !customManifestFile.exists() )
- {
- getLog().info( "Could not find manifest file: " + manifestFile +" - Generating one");
- }
- else
- {
- getLog().info( "Including custom manifest file[" + customManifestFile + "]" );
- archive.setManifestFile( customManifestFile );
- File metaInfDir = new File(getBuildDir(), "META-INF");
- FileUtils.copyFileToDirectory( customManifestFile, metaInfDir );
- }
- }
-
private void includeCustomApplicationManifestFile()
throws IOException
{
Modified: incubator/aries/trunk/application/eba-maven-plugin/src/test/java/org/apache/aries/plugin/eba/EbaMojoTest.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/application/eba-maven-plugin/src/test/java/org/apache/aries/plugin/eba/EbaMojoTest.java?rev=916872&r1=916871&r2=916872&view=diff
==============================================================================
--- incubator/aries/trunk/application/eba-maven-plugin/src/test/java/org/apache/aries/plugin/eba/EbaMojoTest.java (original)
+++ incubator/aries/trunk/application/eba-maven-plugin/src/test/java/org/apache/aries/plugin/eba/EbaMojoTest.java Fri Feb 26 23:56:58 2010
@@ -87,7 +87,7 @@
expectedFiles.add( "META-INF/maven/org.apache.maven.test/maven-eba-test/" );
expectedFiles.add( "META-INF/maven/org.apache.maven.test/" );
expectedFiles.add( "META-INF/maven/" );
- expectedFiles.add( "META-INF/MANIFEST.MF" );
+// expectedFiles.add( "META-INF/MANIFEST.MF" );
expectedFiles.add( "META-INF/" );
expectedFiles.add( "maven-artifact01-1.0-SNAPSHOT.jar" );
expectedFiles.add( "maven-artifact02-1.0-SNAPSHOT.jar" );
@@ -99,7 +99,10 @@
assertTrue( entries.hasMoreElements() );
- assertEquals( 0, getSizeOfExpectedFiles( entries, expectedFiles ) );
+ assertTrue( entries.hasMoreElements() );
+
+ int missing = getSizeOfExpectedFiles(entries, expectedFiles);
+ assertEquals("Missing files: " + expectedFiles, 0, missing);
}
public void testBasicEbaWithDescriptor()
@@ -133,7 +136,7 @@
expectedFiles.add( "META-INF/maven/org.apache.maven.test/maven-eba-test/" );
expectedFiles.add( "META-INF/maven/org.apache.maven.test/" );
expectedFiles.add( "META-INF/maven/" );
- expectedFiles.add( "META-INF/MANIFEST.MF" );
+// expectedFiles.add( "META-INF/MANIFEST.MF" );
expectedFiles.add( "META-INF/application.mf" );
expectedFiles.add( "META-INF/" );
expectedFiles.add( "maven-artifact01-1.0-SNAPSHOT.jar" );
@@ -145,7 +148,10 @@
assertTrue( entries.hasMoreElements() );
- assertEquals( 0, getSizeOfExpectedFiles( entries, expectedFiles ) );
+ assertTrue( entries.hasMoreElements() );
+
+ int missing = getSizeOfExpectedFiles(entries, expectedFiles);
+ assertEquals("Missing files: " + expectedFiles, 0, missing);
}
public void testBasicEbaWithManifest()
@@ -192,7 +198,8 @@
assertTrue( entries.hasMoreElements() );
- assertEquals( 0, getSizeOfExpectedFiles( entries, expectedFiles ) );
+ int missing = getSizeOfExpectedFiles(entries, expectedFiles);
+ assertEquals("Missing files: " + expectedFiles, 0, missing);
}
private int getSizeOfExpectedFiles( Enumeration entries, List expectedFiles )
@@ -214,41 +221,4 @@
return expectedFiles.size();
}
- private int getSizeOfExpectedFiles( List fileList, List expectedFiles )
- {
- for( Iterator iter=fileList.iterator(); iter.hasNext(); )
- {
- String fileName = ( String ) iter.next();
-
- if( expectedFiles.contains( fileName ) )
- {
- expectedFiles.remove( fileName );
- assertFalse( expectedFiles.contains( fileName ) );
- }
- else
- {
- fail( fileName + " is not included in the expected files" );
- }
- }
- return expectedFiles.size();
- }
-
- private void addFileToList( File file, List fileList )
- {
- if( !file.isDirectory() )
- {
- fileList.add( file.getName() );
- }
- else
- {
- fileList.add( file.getName() );
-
- File[] files = file.listFiles();
-
- for( int i=0; i<files.length; i++ )
- {
- addFileToList( files[i], fileList );
- }
- }
- }
}
Modified: incubator/aries/trunk/application/eba-maven-plugin/src/test/resources/unit/basic-eba-test/plugin-config.xml
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/application/eba-maven-plugin/src/test/resources/unit/basic-eba-test/plugin-config.xml?rev=916872&r1=916871&r2=916872&view=diff
==============================================================================
--- incubator/aries/trunk/application/eba-maven-plugin/src/test/resources/unit/basic-eba-test/plugin-config.xml (original)
+++ incubator/aries/trunk/application/eba-maven-plugin/src/test/resources/unit/basic-eba-test/plugin-config.xml Fri Feb 26 23:56:58 2010
@@ -26,6 +26,8 @@
<ebaSourceDirectory>${basedir}/src/test/resources/unit/basic-eba-test/src/main/eba</ebaSourceDirectory>
<applicationManifestFile>${basedir}/src/test/resources/unit/basic-eba-test/src/main/eba/META-INF/application.mf</applicationManifestFile>
<includeJar>true</includeJar>
+ <addMavenDescriptor>true</addMavenDescriptor>
+ <includeEmptyDirs>true</includeEmptyDirs>
<manifestFile>${basedir}/src/main/eba/META-INF/MANIFEST.MF</manifestFile>
<workDirectory>${basedir}/target/unit/basic-eba-test/target/eba-test</workDirectory>
<sharedResources>${basedir}/target/unit/basic-eba-test/target/maven-shared-archive-resources</sharedResources>
Modified: incubator/aries/trunk/application/eba-maven-plugin/src/test/resources/unit/basic-eba-with-descriptor/plugin-config.xml
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/application/eba-maven-plugin/src/test/resources/unit/basic-eba-with-descriptor/plugin-config.xml?rev=916872&r1=916871&r2=916872&view=diff
==============================================================================
--- incubator/aries/trunk/application/eba-maven-plugin/src/test/resources/unit/basic-eba-with-descriptor/plugin-config.xml (original)
+++ incubator/aries/trunk/application/eba-maven-plugin/src/test/resources/unit/basic-eba-with-descriptor/plugin-config.xml Fri Feb 26 23:56:58 2010
@@ -26,6 +26,8 @@
<ebaSourceDirectory>${basedir}/src/test/resources/unit/basic-eba-with-descriptor/src/main/eba</ebaSourceDirectory>
<applicationManifestFile>${basedir}/src/test/resources/unit/basic-eba-with-descriptor/src/main/eba/META-INF/application.mf</applicationManifestFile>
<includeJar>false</includeJar>
+ <addMavenDescriptor>true</addMavenDescriptor>
+ <includeEmptyDirs>true</includeEmptyDirs>
<manifestFile>${basedir}/src/test/resources/unit/basic-eba-with-descriptor/src/main/eba/META-INF/MANIFEST.MF</manifestFile>
<workDirectory>${basedir}/target/unit/basic-eba-with-descriptor/target/eba-test-with-descriptor</workDirectory>
<sharedResources>${basedir}/target/unit/basic-eba-with-descriptor/target/maven-shared-archive-resources</sharedResources>
Modified: incubator/aries/trunk/application/eba-maven-plugin/src/test/resources/unit/basic-eba-with-manifest/plugin-config.xml
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/application/eba-maven-plugin/src/test/resources/unit/basic-eba-with-manifest/plugin-config.xml?rev=916872&r1=916871&r2=916872&view=diff
==============================================================================
--- incubator/aries/trunk/application/eba-maven-plugin/src/test/resources/unit/basic-eba-with-manifest/plugin-config.xml (original)
+++ incubator/aries/trunk/application/eba-maven-plugin/src/test/resources/unit/basic-eba-with-manifest/plugin-config.xml Fri Feb 26 23:56:58 2010
@@ -26,6 +26,8 @@
<ebaSourceDirectory>${basedir}/src/test/resources/unit/basic-eba-with-manifest/src/main/eba</ebaSourceDirectory>
<applicationManifestFile>${basedir}/src/test/resources/unit/basic-eba-with-manifest/src/main/eba/META-INF/application.mf</applicationManifestFile>
<includeJar>false</includeJar>
+ <addMavenDescriptor>true</addMavenDescriptor>
+ <includeEmptyDirs>true</includeEmptyDirs>
<manifestFile>${basedir}/src/test/resources/unit/basic-eba-with-manifest/src/main/eba/META-INF/MANIFEST.MF</manifestFile>
<workDirectory>${basedir}/target/unit/basic-eba-with-manifest/target/eba-test-with-manifest</workDirectory>
<sharedResources>${basedir}/target/unit/basic-eba-with-manifest/target/maven-shared-archive-resources</sharedResources>