brett 2005/03/30 00:14:52
Modified: maven-archiver/src/main/java/org/apache/maven/archiver
MavenArchiver.java
maven-plugins/maven-war-plugin/src/main/java/org/apache/maven/plugin/war
WarMojo.java
maven-plugins/maven-jar-plugin/src/main/java/org/apache/maven/plugin/jar
JarMojo.java
maven-plugins/maven-ejb-plugin/src/main/java/org/apache/maven/plugin/ejb
EjbMojo.java
Added: maven-archiver/src/main/java/org/apache/maven/archiver
ManifestConfiguration.java
MavenArchiveConfiguration.java
Log:
change archiving plugins to use a shred archive configuration
Revision Changes Path
1.6 +23 -17
maven-components/maven-archiver/src/main/java/org/apache/maven/archiver/MavenArchiver.java
Index: MavenArchiver.java
===================================================================
RCS file:
/home/cvs/maven-components/maven-archiver/src/main/java/org/apache/maven/archiver/MavenArchiver.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- MavenArchiver.java 22 Mar 2005 13:25:58 -0000 1.5
+++ MavenArchiver.java 30 Mar 2005 08:14:52 -0000 1.6
@@ -29,9 +29,9 @@
import java.util.Set;
/**
- * @todo improve the use of this now that plugin fields are used instead of
a request object - add an <archive> element to configuration?
* @author <a href="[EMAIL PROTECTED]">Emmanuel Venisse</a>
* @version $Revision$ $Date$
+ * @todo improve the use of this now that plugin fields are used instead of
a request object - add an <archive> element to configuration?
*/
public class MavenArchiver
{
@@ -44,8 +44,7 @@
*
* @todo Add user attributes list and user groups list
*/
- public Manifest getManifest( MavenProject project, String mainClass,
String packageName, boolean addClasspath,
- boolean addExtensions )
+ public Manifest getManifest( MavenProject project, ManifestConfiguration
config )
throws ManifestException
{
// Added basic entries
@@ -55,16 +54,16 @@
Manifest.Attribute createdAttr = new Manifest.Attribute(
"Created-By", "Apache Maven" );
m.addConfiguredAttribute( createdAttr );
- if ( packageName != null )
+ if ( config.getPackageName() != null )
{
- Manifest.Attribute packageAttr = new Manifest.Attribute(
"Package", packageName );
+ Manifest.Attribute packageAttr = new Manifest.Attribute(
"Package", config.getPackageName() );
m.addConfiguredAttribute( packageAttr );
}
Manifest.Attribute buildJdkAttr = new Manifest.Attribute(
"Build-Jdk", System.getProperty( "java.version" ) );
m.addConfiguredAttribute( buildJdkAttr );
- if ( addClasspath )
+ if ( config.isAddClasspath() )
{
StringBuffer classpath = new StringBuffer();
Set artifacts = project.getArtifacts();
@@ -118,6 +117,7 @@
project.getVersion() );
m.addConfiguredAttribute( implementationVersionAttr );
+ String mainClass = config.getMainClass();
if ( mainClass != null && !"".equals( mainClass ) )
{
Manifest.Attribute mainClassAttr = new Manifest.Attribute(
"Main-Class", mainClass );
@@ -125,7 +125,7 @@
}
// Added extensions
- if ( addExtensions )
+ if ( config.isAddExtensions() )
{
StringBuffer extensionsList = new StringBuffer();
Set artifacts = project.getArtifacts();
@@ -162,11 +162,15 @@
String name = artifact.getArtifactId() +
"-Implementation-Version";
Manifest.Attribute archImplVersionAttr = new
Manifest.Attribute( name, artifact.getVersion() );
m.addConfiguredAttribute( archImplVersionAttr );
- // TODO: make repo configurable
- name = artifact.getArtifactId() + "-Implementation-URL";
- String url = "http://www.ibiblio.org/maven/" +
artifact.toString();
- Manifest.Attribute archImplUrlAttr = new
Manifest.Attribute( name, url );
- m.addConfiguredAttribute( archImplUrlAttr );
+
+ if ( artifact.getRepository() != null )
+ {
+ // TODO: is this correct
+ name = artifact.getArtifactId() +
"-Implementation-URL";
+ String url = artifact.getRepository().getUrl() + "/"
+ artifact.toString();
+ Manifest.Attribute archImplUrlAttr = new
Manifest.Attribute( name, url );
+ m.addConfiguredAttribute( archImplUrlAttr );
+ }
}
}
}
@@ -189,8 +193,7 @@
archiveFile = outputFile;
}
- public void createArchive( MavenProject project, String manifestFile,
boolean compress, boolean index,
- Manifest manifest )
+ public void createArchive( MavenProject project,
MavenArchiveConfiguration archiveConfiguration )
throws ArchiverException, ManifestException, IOException
{
//
----------------------------------------------------------------------
@@ -199,16 +202,19 @@
archiver.addFile( project.getFile(), "META-INF/maven/pom.xml" );
+ String manifestFile = archiveConfiguration.getManifestFile();
if ( manifestFile != null && !"".equals( manifestFile ) )
{
archiver.setManifest( new File( manifestFile ) );
}
+ Manifest manifest = getManifest( project,
archiveConfiguration.getManifest() );
+
// Configure the jar
archiver.addConfiguredManifest( manifest );
- archiver.setCompress( compress );
- archiver.setIndex( index );
+ archiver.setCompress( archiveConfiguration.isCompress() );
+ archiver.setIndex( archiveConfiguration.isIndex() );
archiver.setDestFile( archiveFile );
// create archive
1.1
maven-components/maven-archiver/src/main/java/org/apache/maven/archiver/ManifestConfiguration.java
Index: ManifestConfiguration.java
===================================================================
package org.apache.maven.archiver;
/*
* Copyright 2001-2005 The Apache Software Foundation.
*
* Licensed 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.
*/
/**
* Capture common manifest configuration.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Brett Porter</a>
* @version $Id: ManifestConfiguration.java,v 1.1 2005/03/30 08:14:52 brett
Exp $
* @todo is this general enough to be in Plexus Archiver?
*/
public class ManifestConfiguration
{
private String mainClass;
private String packageName;
/**
* @todo boolean instead
*/
private String addClasspath;
/**
* @todo boolean instead
*/
private String addExtensions;
public String getMainClass()
{
return mainClass;
}
public boolean isAddClasspath()
{
return addClasspath != null ? Boolean.valueOf( addClasspath
).booleanValue() : false;
}
public boolean isAddExtensions()
{
return addExtensions != null ? Boolean.valueOf( addExtensions
).booleanValue() : false;
}
public String getPackageName()
{
return packageName;
}
}
1.1
maven-components/maven-archiver/src/main/java/org/apache/maven/archiver/MavenArchiveConfiguration.java
Index: MavenArchiveConfiguration.java
===================================================================
package org.apache.maven.archiver;
/*
* Copyright 2001-2005 The Apache Software Foundation.
*
* Licensed 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.
*/
/**
* Capture common archive configuration.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Brett Porter</a>
* @version $Id: MavenArchiveConfiguration.java,v 1.1 2005/03/30 08:14:52
brett Exp $
* @todo is this general enough to be in Plexus Archiver?
*/
public class MavenArchiveConfiguration
{
/**
* @todo boolean instead
*/
private String compress;
/**
* @todo boolean instead
*/
private String index;
private String manifestFile;
private ManifestConfiguration manifest;
public boolean isCompress()
{
return compress != null ? Boolean.valueOf( compress ).booleanValue()
: true;
}
public boolean isIndex()
{
return index != null ? Boolean.valueOf( index ).booleanValue() :
false;
}
public String getManifestFile()
{
return manifestFile;
}
public ManifestConfiguration getManifest()
{
if ( manifest == null )
{
manifest = new ManifestConfiguration();
}
return manifest;
}
}
1.12 +8 -67
maven-components/maven-plugins/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/WarMojo.java
Index: WarMojo.java
===================================================================
RCS file:
/home/cvs/maven-components/maven-plugins/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/WarMojo.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- WarMojo.java 22 Mar 2005 13:25:58 -0000 1.11
+++ WarMojo.java 30 Mar 2005 08:14:52 -0000 1.12
@@ -16,13 +16,13 @@
* limitations under the License.
*/
+import org.apache.maven.archiver.MavenArchiveConfiguration;
import org.apache.maven.archiver.MavenArchiver;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.plugin.AbstractPlugin;
import org.apache.maven.plugin.PluginExecutionException;
import org.apache.maven.project.MavenProject;
import org.codehaus.plexus.archiver.ArchiverException;
-import org.codehaus.plexus.archiver.jar.Manifest;
import org.codehaus.plexus.archiver.jar.ManifestException;
import org.codehaus.plexus.archiver.war.WarArchiver;
import org.codehaus.plexus.util.FileUtils;
@@ -44,38 +44,11 @@
* validator=""
* expression="#project.build.finalName"
* description=""
- * @parameter name="compress"
- * type="String"
- * required="false"
- * validator=""
- * expression="#maven.jar.compress"
- * default="true"
- * description=""
- * @parameter name="index"
- * type="String"
- * required="false"
- * validator=""
- * expression="#maven.jar.index"
- * default="false"
- * description=""
- * @parameter name="packageName"
- * type="String"
- * required="false"
- * validator=""
- * expression="#maven.jar.package"
- * description=""
- * @parameter name="manifest"
- * type="String"
- * required="false"
- * validator=""
- * expression="#maven.jar.manifest"
- * description=""
- * @parameter name="addExtensions"
- * type="String"
+ * @parameter name="archive"
+ * type=""
* required="false"
+ * expression=""
* validator=""
- * expression="#maven.jar.addExtensions"
- * default="false"
* description=""
* @parameter name="warSourceDirectory"
* type="String"
@@ -183,31 +156,7 @@
private String warName;
- private String mainClass;
-
- private String packageName;
-
- private String manifest;
-
- /**
- * @todo boolean instead
- */
- private String addClasspath;
-
- /**
- * @todo boolean instead
- */
- private String addExtensions;
-
- /**
- * @todo boolean instead
- */
- private String index;
-
- /**
- * @todo boolean instead
- */
- private String compress;
+ private MavenArchiveConfiguration archive = new
MavenArchiveConfiguration();
public void copyResources( File sourceDirectory, File webappDirectory,
String includes, String excludes,
String webXml )
@@ -302,7 +251,7 @@
catch ( Exception e )
{
// TODO: improve error handling
- throw new PluginExecutionException( "Error assembling EJB", e );
+ throw new PluginExecutionException( "Error assembling WAR", e );
}
}
@@ -335,17 +284,9 @@
warArchiver.setWebxml( new File( webappDirectory,
"WEB-INF/web.xml" ) );
// create archive
- Manifest configuredManifest = archiver.getManifest( project,
mainClass, packageName,
-
convertBoolean( addClasspath ),
-
convertBoolean( addExtensions ) );
- archiver.createArchive( project, manifest, convertBoolean(
compress ), convertBoolean( index ),
- configuredManifest );
+ archiver.createArchive( project, archive );
}
}
}
- private static boolean convertBoolean( String s )
- {
- return Boolean.valueOf( s ).booleanValue();
- }
}
1.21 +7 -80
maven-components/maven-plugins/maven-jar-plugin/src/main/java/org/apache/maven/plugin/jar/JarMojo.java
Index: JarMojo.java
===================================================================
RCS file:
/home/cvs/maven-components/maven-plugins/maven-jar-plugin/src/main/java/org/apache/maven/plugin/jar/JarMojo.java,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- JarMojo.java 29 Mar 2005 06:02:57 -0000 1.20
+++ JarMojo.java 30 Mar 2005 08:14:52 -0000 1.21
@@ -16,11 +16,11 @@
* limitations under the License.
*/
+import org.apache.maven.archiver.MavenArchiveConfiguration;
import org.apache.maven.archiver.MavenArchiver;
import org.apache.maven.plugin.AbstractPlugin;
import org.apache.maven.plugin.PluginExecutionException;
import org.apache.maven.project.MavenProject;
-import org.codehaus.plexus.archiver.jar.Manifest;
import java.io.File;
@@ -36,51 +36,11 @@
* validator=""
* expression="#project.build.finalName"
* description=""
- * @parameter name="compress"
- * type="String"
- * required="false"
- * validator=""
- * expression="#maven.jar.compress"
- * default="true"
- * description=""
- * @parameter name="index"
- * type="String"
- * required="false"
- * validator=""
- * expression="#maven.jar.index"
- * default="false"
- * description=""
- * @parameter name="packageName"
- * type="String"
- * required="false"
- * validator=""
- * expression="#maven.jar.package"
- * description=""
- * @parameter name="manifest"
- * type="String"
- * required="false"
- * validator=""
- * expression="#maven.jar.manifest"
- * description=""
- * @parameter name="mainClass"
- * type="String"
- * required="false"
- * validator=""
- * expression="#maven.jar.mainClass"
- * description=""
- * @parameter name="addClasspath"
- * type="String"
+ * @parameter name="archive"
+ * type=""
* required="false"
+ * expression=""
* validator=""
- * expression="#maven.jar.addClasspath"
- * default="false"
- * description=""
- * @parameter name="addExtensions"
- * type="String"
- * required="false"
- * validator=""
- * expression="#maven.jar.addExtensions"
- * default="false"
* description=""
* @parameter name="outputDirectory"
* type="String"
@@ -119,31 +79,7 @@
private MavenProject project;
- private String manifest;
-
- private String mainClass;
-
- private String packageName;
-
- /**
- * @todo boolean instead
- */
- private String addClasspath;
-
- /**
- * @todo boolean instead
- */
- private String addExtensions;
-
- /**
- * @todo boolean instead
- */
- private String index;
-
- /**
- * @todo boolean instead
- */
- private String compress;
+ private MavenArchiveConfiguration archive = new
MavenArchiveConfiguration();
/**
* @todo Add license files in META-INF directory.
@@ -169,12 +105,7 @@
archiver.getArchiver().addDirectory( contentDirectory,
DEFAULT_INCLUDES, DEFAULT_EXCLUDES );
}
- // create archive
- Manifest configuredManifest = archiver.getManifest( project,
mainClass, packageName,
-
convertBoolean( addClasspath ),
-
convertBoolean( addExtensions ) );
- archiver.createArchive( project, manifest, convertBoolean(
compress ), convertBoolean( index ),
- configuredManifest );
+ archiver.createArchive( project, archive );
}
catch ( Exception e )
{
@@ -183,8 +114,4 @@
}
}
- private static boolean convertBoolean( String s )
- {
- return Boolean.valueOf( s ).booleanValue();
- }
}
1.5 +9 -85
maven-components/maven-plugins/maven-ejb-plugin/src/main/java/org/apache/maven/plugin/ejb/EjbMojo.java
Index: EjbMojo.java
===================================================================
RCS file:
/home/cvs/maven-components/maven-plugins/maven-ejb-plugin/src/main/java/org/apache/maven/plugin/ejb/EjbMojo.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- EjbMojo.java 22 Mar 2005 13:25:58 -0000 1.4
+++ EjbMojo.java 30 Mar 2005 08:14:52 -0000 1.5
@@ -16,11 +16,11 @@
* limitations under the License.
*/
+import org.apache.maven.archiver.MavenArchiveConfiguration;
import org.apache.maven.archiver.MavenArchiver;
import org.apache.maven.plugin.AbstractPlugin;
import org.apache.maven.plugin.PluginExecutionException;
import org.apache.maven.project.MavenProject;
-import org.codehaus.plexus.archiver.jar.Manifest;
import java.io.File;
@@ -36,51 +36,11 @@
* validator=""
* expression="#project.build.finalName"
* description=""
- * @parameter name="compress"
- * type="String"
- * required="false"
- * validator=""
- * expression="#maven.ejb.compress"
- * default="true"
- * description=""
- * @parameter name="index"
- * type="String"
- * required="false"
- * validator=""
- * expression="#maven.ejb.index"
- * default="false"
- * description=""
- * @parameter name="packageName"
- * type="String"
- * required="false"
- * validator=""
- * expression="#maven.ejb.package"
- * description=""
- * @parameter name="manifest"
- * type="String"
- * required="false"
- * validator=""
- * expression="#maven.ejb.manifest"
- * description=""
- * @parameter name="mainClass"
- * type="String"
- * required="false"
- * validator=""
- * expression="#maven.ejb.mainClass"
- * description=""
- * @parameter name="addClasspath"
- * type="String"
- * required="false"
- * validator=""
- * expression="#maven.ejb.addClasspath"
- * default="false"
- * description=""
- * @parameter name="addExtensions"
- * type="String"
+ * @parameter name="archive"
+ * type=""
* required="false"
+ * expression=""
* validator=""
- * expression="#maven.ejb.addExtensions"
- * default="false"
* description=""
* @parameter name="generateClient"
* type="String"
@@ -133,31 +93,7 @@
private MavenProject project;
- private String mainClass;
-
- private String packageName;
-
- private String manifest;
-
- /**
- * @todo boolean instead
- */
- private String addClasspath;
-
- /**
- * @todo boolean instead
- */
- private String addExtensions;
-
- /**
- * @todo boolean instead
- */
- private String index;
-
- /**
- * @todo boolean instead
- */
- private String compress;
+ private MavenArchiveConfiguration archive = new
MavenArchiveConfiguration();
/**
* @todo Add license files in META-INF directory.
@@ -183,13 +119,9 @@
archiver.getArchiver().addFile( new File( outputDirectory,
ejbJarXmlFile ), ejbJarXmlFile );
// create archive
- Manifest configuredManifest = archiver.getManifest( project,
mainClass, packageName,
-
convertBoolean( addClasspath ),
-
convertBoolean( addExtensions ) );
- archiver.createArchive( project, manifest, convertBoolean(
compress ), convertBoolean( index ),
- configuredManifest );
+ archiver.createArchive( project, archive );
- if ( convertBoolean( generateClient ) )
+ if ( new Boolean( generateClient ).booleanValue() )
{
getLog().info( "Building ejb client " + jarName + "-client"
);
@@ -203,11 +135,7 @@
DEFAULT_EXCLUDES
);
// create archive
- configuredManifest =
- clientArchiver.getManifest( project, mainClass,
packageName, convertBoolean( addClasspath ),
- convertBoolean(
addExtensions ) );
- clientArchiver.createArchive( project, manifest,
convertBoolean( compress ), convertBoolean( index ),
- configuredManifest );
+ archiver.createArchive( project, archive );
}
}
catch ( Exception e )
@@ -217,8 +145,4 @@
}
}
- private static boolean convertBoolean( String s )
- {
- return new Boolean( s ).booleanValue();
- }
}
\ No newline at end of file