You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by de...@apache.org on 2011/12/06 14:40:23 UTC
svn commit: r1210910 - in /maven/plugins/trunk/maven-ear-plugin/src:
it/skinny-wars/ it/skinny-wars/ear-module/ it/skinny-wars/war-module/
it/skinny-wars/war-module/src/ it/skinny-wars/war-module/src/main/
it/skinny-wars/war-module/src/main/webapp/ it/...
Author: dennisl
Date: Tue Dec 6 13:40:22 2011
New Revision: 1210910
URL: http://svn.apache.org/viewvc?rev=1210910&view=rev
Log:
[MEAR-60] Improve support for skinny war files
Submitted by: Jeroen Ruijgers and Eric Pabst
Reviewed by: Dennis Lundberg
o The original patch by Jeroen was reformatted and rebased to current trunk by Eric.
o I made fixes for a couple of failing tests and added an integration test project.
Added:
maven/plugins/trunk/maven-ear-plugin/src/it/skinny-wars/
maven/plugins/trunk/maven-ear-plugin/src/it/skinny-wars/ear-module/
maven/plugins/trunk/maven-ear-plugin/src/it/skinny-wars/ear-module/pom.xml (with props)
maven/plugins/trunk/maven-ear-plugin/src/it/skinny-wars/pom.xml (with props)
maven/plugins/trunk/maven-ear-plugin/src/it/skinny-wars/verify.bsh (with props)
maven/plugins/trunk/maven-ear-plugin/src/it/skinny-wars/war-module/
maven/plugins/trunk/maven-ear-plugin/src/it/skinny-wars/war-module/pom.xml (with props)
maven/plugins/trunk/maven-ear-plugin/src/it/skinny-wars/war-module/src/
maven/plugins/trunk/maven-ear-plugin/src/it/skinny-wars/war-module/src/main/
maven/plugins/trunk/maven-ear-plugin/src/it/skinny-wars/war-module/src/main/webapp/
maven/plugins/trunk/maven-ear-plugin/src/it/skinny-wars/war-module/src/main/webapp/WEB-INF/
maven/plugins/trunk/maven-ear-plugin/src/it/skinny-wars/war-module/src/main/webapp/WEB-INF/web.xml (with props)
Modified:
maven/plugins/trunk/maven-ear-plugin/src/main/java/org/apache/maven/plugin/ear/AbstractEarModule.java
maven/plugins/trunk/maven-ear-plugin/src/main/java/org/apache/maven/plugin/ear/EarModule.java
maven/plugins/trunk/maven-ear-plugin/src/main/java/org/apache/maven/plugin/ear/EarMojo.java
maven/plugins/trunk/maven-ear-plugin/src/main/java/org/apache/maven/plugin/ear/JarModule.java
maven/plugins/trunk/maven-ear-plugin/src/main/java/org/apache/maven/plugin/ear/WebModule.java
Added: maven/plugins/trunk/maven-ear-plugin/src/it/skinny-wars/ear-module/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-ear-plugin/src/it/skinny-wars/ear-module/pom.xml?rev=1210910&view=auto
==============================================================================
--- maven/plugins/trunk/maven-ear-plugin/src/it/skinny-wars/ear-module/pom.xml (added)
+++ maven/plugins/trunk/maven-ear-plugin/src/it/skinny-wars/ear-module/pom.xml Tue Dec 6 13:40:22 2011
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+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
+
+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
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<project>
+ <modelVersion>4.0.0</modelVersion>
+
+ <groupId>org.apache.maven.its.ear.skinnywars</groupId>
+ <artifactId>ear-module</artifactId>
+ <version>1.0</version>
+ <packaging>ear</packaging>
+
+ <dependencies>
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ <version>2.5</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.its.ear.skinnywars</groupId>
+ <artifactId>war-module</artifactId>
+ <version>1.0</version>
+ <type>war</type>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-ear-plugin</artifactId>
+ <version>@project.version@</version>
+ </plugin>
+ </plugins>
+ </build>
+</project>
Propchange: maven/plugins/trunk/maven-ear-plugin/src/it/skinny-wars/ear-module/pom.xml
------------------------------------------------------------------------------
svn:eol-style = native
Added: maven/plugins/trunk/maven-ear-plugin/src/it/skinny-wars/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-ear-plugin/src/it/skinny-wars/pom.xml?rev=1210910&view=auto
==============================================================================
--- maven/plugins/trunk/maven-ear-plugin/src/it/skinny-wars/pom.xml (added)
+++ maven/plugins/trunk/maven-ear-plugin/src/it/skinny-wars/pom.xml Tue Dec 6 13:40:22 2011
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+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
+
+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
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<project>
+ <modelVersion>4.0.0</modelVersion>
+
+ <groupId>org.apache.maven.its.ear.skinnywars</groupId>
+ <artifactId>pom</artifactId>
+ <version>1.0</version>
+ <packaging>pom</packaging>
+
+ <description>Test Skinny WAR generation</description>
+
+ <modules>
+ <module>ear-module</module>
+ <module>war-module</module>
+ </modules>
+</project>
Propchange: maven/plugins/trunk/maven-ear-plugin/src/it/skinny-wars/pom.xml
------------------------------------------------------------------------------
svn:eol-style = native
Added: maven/plugins/trunk/maven-ear-plugin/src/it/skinny-wars/verify.bsh
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-ear-plugin/src/it/skinny-wars/verify.bsh?rev=1210910&view=auto
==============================================================================
--- maven/plugins/trunk/maven-ear-plugin/src/it/skinny-wars/verify.bsh (added)
+++ maven/plugins/trunk/maven-ear-plugin/src/it/skinny-wars/verify.bsh Tue Dec 6 13:40:22 2011
@@ -0,0 +1,68 @@
+import java.io.*;
+import java.util.*;
+import java.util.jar.*;
+import java.util.regex.*;
+
+File jarFile = new File( basedir, "ear-module/target/ear-module-1.0/war-module-1.0.war" );
+System.out.println( "Checking for existence of " + jarFile );
+if ( !jarFile.isFile() )
+{
+ throw new IllegalStateException( "Missing file: " + jarFile );
+}
+
+JarFile jar = new JarFile( jarFile );
+
+String[] includedEntries = {
+ "WEB-INF/web.xml",
+ "META-INF/MANIFEST.MF"
+};
+for ( String included : includedEntries )
+{
+ System.out.println( "Checking for included archive entry " + included );
+ if ( jar.getEntry( included ) == null )
+ {
+ throw new IllegalStateException( "Missing archive entry: " + included );
+ }
+}
+
+String[] excludedEntries = {
+ "WEB-INF/lib/commons-lang-2.5.jar"
+};
+for ( String excluded : excludedEntries )
+{
+ System.out.println( "Checking for excluded artifact " + excluded );
+ if ( jar.getEntry( excluded ) != null )
+ {
+ throw new IllegalStateException( "Archive entry should be excluded: " + included );
+ }
+}
+
+jar.close();
+
+
+File jarFile = new File( basedir, "war-module/target/war-module-1.0.war" );
+System.out.println( "Checking for existence of " + jarFile );
+if ( !jarFile.isFile() )
+{
+ throw new IllegalStateException( "Missing file: " + jarFile );
+}
+
+JarFile jar = new JarFile( jarFile );
+
+String[] includedEntries = {
+ "WEB-INF/web.xml",
+ "META-INF/MANIFEST.MF",
+ "WEB-INF/lib/commons-lang-2.5.jar"
+};
+for ( String included : includedEntries )
+{
+ System.out.println( "Checking for included archive entry " + included );
+ if ( jar.getEntry( included ) == null )
+ {
+ throw new IllegalStateException( "Missing archive entry: " + included );
+ }
+}
+
+jar.close();
+
+return true;
Propchange: maven/plugins/trunk/maven-ear-plugin/src/it/skinny-wars/verify.bsh
------------------------------------------------------------------------------
svn:eol-style = native
Added: maven/plugins/trunk/maven-ear-plugin/src/it/skinny-wars/war-module/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-ear-plugin/src/it/skinny-wars/war-module/pom.xml?rev=1210910&view=auto
==============================================================================
--- maven/plugins/trunk/maven-ear-plugin/src/it/skinny-wars/war-module/pom.xml (added)
+++ maven/plugins/trunk/maven-ear-plugin/src/it/skinny-wars/war-module/pom.xml Tue Dec 6 13:40:22 2011
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+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
+
+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
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<project>
+ <modelVersion>4.0.0</modelVersion>
+
+ <groupId>org.apache.maven.its.ear.skinnywars</groupId>
+ <artifactId>war-module</artifactId>
+ <version>1.0</version>
+ <packaging>war</packaging>
+
+ <dependencies>
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ <version>2.5</version>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-war-plugin</artifactId>
+ <version>2.1.1</version>
+ </plugin>
+ </plugins>
+ </build>
+</project>
Propchange: maven/plugins/trunk/maven-ear-plugin/src/it/skinny-wars/war-module/pom.xml
------------------------------------------------------------------------------
svn:eol-style = native
Added: maven/plugins/trunk/maven-ear-plugin/src/it/skinny-wars/war-module/src/main/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-ear-plugin/src/it/skinny-wars/war-module/src/main/webapp/WEB-INF/web.xml?rev=1210910&view=auto
==============================================================================
--- maven/plugins/trunk/maven-ear-plugin/src/it/skinny-wars/war-module/src/main/webapp/WEB-INF/web.xml (added)
+++ maven/plugins/trunk/maven-ear-plugin/src/it/skinny-wars/war-module/src/main/webapp/WEB-INF/web.xml Tue Dec 6 13:40:22 2011
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
+
+<web-app >
+</web-app>
Propchange: maven/plugins/trunk/maven-ear-plugin/src/it/skinny-wars/war-module/src/main/webapp/WEB-INF/web.xml
------------------------------------------------------------------------------
svn:eol-style = native
Modified: maven/plugins/trunk/maven-ear-plugin/src/main/java/org/apache/maven/plugin/ear/AbstractEarModule.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-ear-plugin/src/main/java/org/apache/maven/plugin/ear/AbstractEarModule.java?rev=1210910&r1=1210909&r2=1210910&view=diff
==============================================================================
--- maven/plugins/trunk/maven-ear-plugin/src/main/java/org/apache/maven/plugin/ear/AbstractEarModule.java (original)
+++ maven/plugins/trunk/maven-ear-plugin/src/main/java/org/apache/maven/plugin/ear/AbstractEarModule.java Tue Dec 6 13:40:22 2011
@@ -365,4 +365,13 @@ public abstract class AbstractEarModule
this.uri = uri;
}
+
+ public boolean changeManifestClasspath()
+ {
+ return true;
+ }
+
+ public String getLibDir() {
+ return null;
+ }
}
Modified: maven/plugins/trunk/maven-ear-plugin/src/main/java/org/apache/maven/plugin/ear/EarModule.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-ear-plugin/src/main/java/org/apache/maven/plugin/ear/EarModule.java?rev=1210910&r1=1210909&r2=1210910&view=diff
==============================================================================
--- maven/plugins/trunk/maven-ear-plugin/src/main/java/org/apache/maven/plugin/ear/EarModule.java (original)
+++ maven/plugins/trunk/maven-ear-plugin/src/main/java/org/apache/maven/plugin/ear/EarModule.java Tue Dec 6 13:40:22 2011
@@ -111,4 +111,8 @@ public interface EarModule
public void setEarExecutionContext( EarExecutionContext earExecutionContext );
+ public boolean changeManifestClasspath();
+
+ public String getLibDir();
+
}
Modified: maven/plugins/trunk/maven-ear-plugin/src/main/java/org/apache/maven/plugin/ear/EarMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-ear-plugin/src/main/java/org/apache/maven/plugin/ear/EarMojo.java?rev=1210910&r1=1210909&r2=1210910&view=diff
==============================================================================
--- maven/plugins/trunk/maven-ear-plugin/src/main/java/org/apache/maven/plugin/ear/EarMojo.java (original)
+++ maven/plugins/trunk/maven-ear-plugin/src/main/java/org/apache/maven/plugin/ear/EarMojo.java Tue Dec 6 13:40:22 2011
@@ -34,18 +34,26 @@ import org.apache.maven.shared.filtering
import org.codehaus.plexus.archiver.ArchiverException;
import org.codehaus.plexus.archiver.UnArchiver;
import org.codehaus.plexus.archiver.jar.JarArchiver;
+import org.codehaus.plexus.archiver.jar.Manifest;
+import org.codehaus.plexus.archiver.jar.Manifest.Attribute;
+import org.codehaus.plexus.archiver.jar.ManifestException;
import org.codehaus.plexus.archiver.manager.ArchiverManager;
import org.codehaus.plexus.archiver.manager.NoSuchArchiverException;
+import org.codehaus.plexus.archiver.zip.ZipArchiver;
+import org.codehaus.plexus.archiver.zip.ZipUnArchiver;
import org.codehaus.plexus.util.DirectoryScanner;
import org.codehaus.plexus.util.FileUtils;
import org.codehaus.plexus.util.StringUtils;
import java.io.File;
+import java.io.FileReader;
import java.io.IOException;
+import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
+import java.util.zip.ZipException;
/**
* Builds J2EE Enterprise Archive (EAR) files.
@@ -194,6 +202,20 @@ public class EarMojo
private JarArchiver jarArchiver;
/**
+ * The Zip archiver.
+ *
+ * @component role="org.codehaus.plexus.archiver.Archiver" role-hint="zip"
+ */
+ private ZipArchiver zipArchiver;
+
+ /**
+ * The Zip Un archiver.
+ *
+ * @component role="org.codehaus.plexus.archiver.UnArchiver" role-hint="zip"
+ */
+ private ZipUnArchiver zipUnArchiver;
+
+ /**
* The archive configuration to use.
* See <a href="http://maven.apache.org/shared/maven-archiver/index.html">Maven Archiver Reference</a>.
*
@@ -257,7 +279,7 @@ public class EarMojo
if ( !EarModuleFactory.standardArtifactTypes.contains( type ) )
{
throw new MojoExecutionException(
- "Invalid type[" + type + "] supported types are " + EarModuleFactory.standardArtifactTypes );
+ "Invalid type [" + type + "] supported types are " + EarModuleFactory.standardArtifactTypes );
}
}
getLog().debug( "Initialized unpack types " + unpackTypesList );
@@ -289,7 +311,7 @@ public class EarMojo
if ( destinationFile.getCanonicalPath().equals( sourceFile.getCanonicalPath() ) )
{
getLog().info(
- "Skipping artifact[" + module + "], as it already exists at[" + module.getUri() + "]" );
+ "Skipping artifact [" + module + "], as it already exists at [" + module.getUri() + "]" );
continue;
}
@@ -299,22 +321,32 @@ public class EarMojo
( module.shouldUnpack() == null || module.shouldUnpack().booleanValue() ) ) ||
( module.shouldUnpack() != null && module.shouldUnpack().booleanValue() ) )
{
- getLog().info( "Copying artifact[" + module + "] to[" + module.getUri() + "] (unpacked)" );
+ getLog().info( "Copying artifact [" + module + "] to [" + module.getUri() + "] (unpacked)" );
// Make sure that the destination is a directory to avoid plexus nasty stuff :)
destinationFile.mkdirs();
unpack( sourceFile, destinationFile );
+
+ if ( module.changeManifestClasspath() )
+ {
+ changeManifestClasspath( module, destinationFile );
+ }
}
else
{
if ( sourceFile.lastModified() > destinationFile.lastModified() )
{
- getLog().info( "Copying artifact[" + module + "] to[" + module.getUri() + "]" );
+ getLog().info( "Copying artifact [" + module + "] to [" + module.getUri() + "]" );
FileUtils.copyFile( sourceFile, destinationFile );
+
+ if ( module.changeManifestClasspath() )
+ {
+ changeManifestClasspath( module, destinationFile );
+ }
}
else
{
getLog().debug(
- "Skipping artifact[" + module + "], as it is already up to date at[" + module.getUri() +
+ "Skipping artifact [" + module + "], as it is already up to date at [" + module.getUri() +
"]" );
}
}
@@ -398,7 +430,7 @@ public class EarMojo
File earFile = getEarFile( outputDirectory, finalName, classifier );
final MavenArchiver archiver = new EarMavenArchiver( getModules() );
final JarArchiver jarArchiver = getJarArchiver();
- getLog().debug( "Jar archiver implementation[" + jarArchiver.getClass().getName() + "]" );
+ getLog().debug( "Jar archiver implementation [" + jarArchiver.getClass().getName() + "]" );
archiver.setArchiver( jarArchiver );
archiver.setOutputFile( earFile );
@@ -485,7 +517,7 @@ public class EarMojo
}
else
{
- getLog().info( "Including custom manifest file[" + manifestFile + "]" );
+ getLog().info( "Including custom manifest file [" + manifestFile + "]" );
archive.setManifestFile( manifestFile );
}
}
@@ -601,10 +633,142 @@ public class EarMojo
}
catch ( MavenFilteringException e )
{
- getLog().error( "fail to build filering wrappers " + e.getMessage() );
+ getLog().error( "Fail to build filtering wrappers " + e.getMessage() );
throw new MojoExecutionException( e.getMessage(), e );
}
}
return filterWrappers;
}
+
+ private void changeManifestClasspath( EarModule module, File original )
+ throws MojoFailureException
+ {
+ try
+ {
+ File workDirectory;
+
+ // Handle the case that the destination might be a directory (project-038)
+ if( original.isFile() )
+ {
+ // Create a temporary work directory
+ workDirectory = new File( new File(
+ generatedDescriptorLocation, "temp" ), module.getArtifact()
+ .getArtifactId() );
+ workDirectory.mkdirs();
+ getLog().debug( "Created a temporary work directory: " + workDirectory.getAbsolutePath() );
+
+ // Unpack the archive to a temporary work directory
+ zipUnArchiver.setSourceFile( original );
+ zipUnArchiver.setDestDirectory( workDirectory );
+ zipUnArchiver.extract();
+ }
+ else
+ {
+ workDirectory = original;
+ }
+
+ // Create a META-INF/MANIFEST.MF file if it doesn't exist (project-038)
+ File metaInfDirectory = new File( workDirectory, "META-INF" );
+ boolean newMetaInfCreated = metaInfDirectory.mkdirs();
+ if( newMetaInfCreated )
+ {
+ getLog().debug( "This project did not have a META-INF directory before, so a new directory was created." );
+ }
+ File manifestFile = new File( metaInfDirectory, "MANIFEST.MF" );
+ boolean newManifestCreated = manifestFile.createNewFile();
+ if( newManifestCreated )
+ {
+ getLog().debug( "This project did not have a META-INF/MANIFEST.MF file before, so a new file was created." );
+ }
+
+ // Read the manifest from disk
+ Manifest mf = new Manifest( new FileReader( manifestFile ) );
+ Attribute classPath = mf.getMainSection()
+ .getAttribute( "Class-Path" );
+ List classPathElements = new ArrayList();
+
+ if ( classPath != null )
+ {
+ classPathElements.addAll( Arrays.asList( classPath.getValue()
+ .split( " " ) ) );
+ } else
+ {
+ classPath = new Attribute( "Class-Path", "" );
+ mf.getMainSection().addConfiguredAttribute( classPath );
+ }
+
+ // Modify the classpath entries in the manifest
+ for ( Iterator iter = getModules().iterator(); iter.hasNext(); )
+ {
+ Object o = iter.next();
+
+ if ( o instanceof JarModule )
+ {
+ JarModule jm = ( JarModule ) o;
+
+ if ( module.getLibDir() != null )
+ {
+ File artifact = new File( new File(
+ workDirectory, module.getLibDir() ),
+ jm.getBundleFileName() );
+
+ if ( artifact.exists() )
+ {
+ if ( !artifact.delete() )
+ {
+ getLog().error(
+ "Could not delete '" + artifact + "'" );
+ }
+ }
+ }
+
+ if ( classPathElements.contains( jm.getBundleFileName() ) )
+ {
+ classPathElements.set( classPathElements.indexOf( jm
+ .getBundleFileName() ), jm.getUri() );
+ }
+ else
+ {
+ classPathElements.add( jm.getUri() );
+ }
+ }
+ }
+ classPath.setValue( StringUtils.join( classPathElements.iterator(), " " ) );
+
+ // Write the manifest to disk
+ PrintWriter pw = new PrintWriter( manifestFile );
+ mf.write( pw );
+ pw.close();
+
+ if( original.isFile() )
+ {
+ // Pack up the archive again from the work directory
+ if ( !original.delete() )
+ {
+ getLog().error( "Could not delete original artifact file " + original );
+ }
+
+ getLog().debug( "Zipping module" );
+ zipArchiver.setDestFile( original );
+ zipArchiver.addDirectory( workDirectory );
+ zipArchiver.createArchive();
+ }
+ }
+ catch ( ManifestException e )
+ {
+ throw new MojoFailureException( e.getMessage() );
+ }
+ catch ( ZipException e )
+ {
+ throw new MojoFailureException( e.getMessage() );
+ }
+ catch ( IOException e )
+ {
+ throw new MojoFailureException( e.getMessage() );
+ }
+ catch ( ArchiverException e )
+ {
+ throw new MojoFailureException( e.getMessage() );
+ }
+ }
}
Modified: maven/plugins/trunk/maven-ear-plugin/src/main/java/org/apache/maven/plugin/ear/JarModule.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-ear-plugin/src/main/java/org/apache/maven/plugin/ear/JarModule.java?rev=1210910&r1=1210909&r2=1210910&view=diff
==============================================================================
--- maven/plugins/trunk/maven-ear-plugin/src/main/java/org/apache/maven/plugin/ear/JarModule.java (original)
+++ maven/plugins/trunk/maven-ear-plugin/src/main/java/org/apache/maven/plugin/ear/JarModule.java Tue Dec 6 13:40:22 2011
@@ -97,4 +97,8 @@ public class JarModule
this.bundleDir = defaultLibBundleDir;
}
}
+
+ public boolean changeManifestClasspath() {
+ return false;
+ }
}
Modified: maven/plugins/trunk/maven-ear-plugin/src/main/java/org/apache/maven/plugin/ear/WebModule.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-ear-plugin/src/main/java/org/apache/maven/plugin/ear/WebModule.java?rev=1210910&r1=1210909&r2=1210910&view=diff
==============================================================================
--- maven/plugins/trunk/maven-ear-plugin/src/main/java/org/apache/maven/plugin/ear/WebModule.java (original)
+++ maven/plugins/trunk/maven-ear-plugin/src/main/java/org/apache/maven/plugin/ear/WebModule.java Tue Dec 6 13:40:22 2011
@@ -117,4 +117,8 @@ public class WebModule
}
return "/" + a.getArtifactId();
}
+
+ public String getLibDir() {
+ return "WEB-INF/lib";
+ }
}