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
  
  
  

Reply via email to