ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From co...@apache.org
Subject cvs commit: jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/ejb EjbJar.java
Date Sat, 02 Feb 2002 11:35:40 GMT
conor       02/02/02 03:35:40

  Modified:    src/main/org/apache/tools/ant/taskdefs/optional/ejb
                        EjbJar.java
  Log:
  Clean up ejbjar task a little
  
  Revision  Changes    Path
  1.28      +148 -86   jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/ejb/EjbJar.java
  
  Index: EjbJar.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/ejb/EjbJar.java,v
  retrieving revision 1.27
  retrieving revision 1.28
  diff -u -w -u -r1.27 -r1.28
  --- EjbJar.java	2 Feb 2002 11:04:43 -0000	1.27
  +++ EjbJar.java	2 Feb 2002 11:35:40 -0000	1.28
  @@ -1,7 +1,7 @@
   /*
    * The Apache Software License, Version 1.1
    *
  - * Copyright (c) 2000-2001 The Apache Software Foundation.  All rights
  + * Copyright (c) 2000-2002 The Apache Software Foundation.  All rights
    * reserved.
    *
    * Redistribution and use in source and binary forms, with or without
  @@ -76,53 +76,70 @@
   import org.apache.tools.ant.types.FileSet;
   
   /**
  - * <p>Provides automated ejb jar file creation for ant.  Extends the MatchingTask
  - * class provided in the default ant distribution to provide a directory scanning
  - * EJB jarfile generator.</p>
  + * <p>
  + * Provides automated ejb jar file creation for ant. Extends the
  + * MatchingTask class provided in the default ant distribution to provide a
  + * directory scanning EJB jarfile generator.
  + * </p>
    *
  - * <p>The task works by taking the deployment descriptors one at a time and
  + * <p>
  + * The task works by taking the deployment descriptors one at a time and
    * parsing them to locate the names of the classes which should be placed in
  - * the jar.  The classnames are translated to java.io.Files by replacing periods
  - * with File.separatorChar and resolving the generated filename as a relative
  - * path under the srcDir attribute.  All necessary files are then assembled into
  - * a jarfile.  One jarfile is constructed for each deployment descriptor found.
  + * the jar. The classnames are translated to java.io.Files by replacing
  + * periods with File.separatorChar and resolving the generated filename as a
  + * relative path under the srcDir attribute. All necessary files are then
  + * assembled into a jarfile. One jarfile is constructed for each deployment
  + * descriptor found. 
    * </p>
    *
  - * <p>Functionality is currently provided for standard EJB1.1 jars and Weblogic
  - * 5.1 jars. The weblogic deployment descriptors, used in constructing the
  - * Weblogic jar, are located based on a simple naming convention. The name of the
  - * standard deployment descriptor is taken upto the first instance of a String,
  - * specified by the attribute baseNameTerminator, and then the regular Weblogic
  - * descriptor name is appended. For example if baseNameTerminator is set to '-',
  - * its default value, and a standard descriptor is called Foo-ejb-jar.xml then
  - * the files Foo-weblogic-ejb-jar.xml and Foo-weblogic-cmp-rdbms-jar.xml will be
  - * looked for, and if found, included in the jarfile.</p>
  - *
  - * <p>Attributes and setter methods are provided to support optional generation
  - * of Weblogic5.1 jars, optional deletion of generic jar files, setting alternate
  - * values for baseNameTerminator, and setting the strings to append to the names
  - * of the generated jarfiles.</p>
  - *
    * @author <a href="mailto:tfennell@sapient.com">Tim Fennell</a>
  + * @author <a href="mailto:conor@cortexebusiness.com.au">Conor MacNeill</a>
    */
   public class EjbJar extends MatchingTask {
   
  +    /**
  +     * Inner class used to record information about the location of a local DTD
  +     */
       public static class DTDLocation {
  +        /** The public ID of the DTD */
           private String publicId = null;
  +        /** The DTD's local location */
           private String location = null;
   
  +        
  +        /**
  +         * Sets the publicId of the DTDLocation
  +         *
  +         * @param publicId the new publicId value
  +         */
           public void setPublicId(String publicId) {
               this.publicId = publicId;
           }
   
  +        /**
  +         * Sets the location of the DTDLocation. This value may be file path or
  +         * a local resource on the classpath
  +         *
  +         * @param location the new location value
  +         */
           public void setLocation(String location) {
               this.location = location;
           }
   
  +        /**
  +         * Gets the publicId of the DTDLocation
  +         *
  +         * @return the publicId value
  +         */
           public String getPublicId() {
               return publicId;
           }
   
  +        /**
  +         * Gets the location of the DTDLocation
  +         *
  +         * @return the location value
  +         */
           public String getLocation() {
               return location;
           }
  @@ -133,10 +150,16 @@
        * This state is passed to the deployment tools for configuration
        */
       static class Config {
  -        /** Stores a handle to the directory under which to search for class files */
  +        /** 
  +         * Stores a handle to the directory under which to search for class 
  +         * files 
  +         */
           public File srcDir;
   
  -        /** Stores a handle to the directory under which to search for deployment descriptors
*/
  +        /**
  +         * Stores a handle to the directory under which to search for
  +         * deployment descriptors
  +         */
           public File descriptorDir;
   
           /** Instance variable that marks the end of the 'basename' */
  @@ -178,31 +201,64 @@
           public File manifest;
       }
   
  +    /**
  +     * An EnumeratedAttribute class for handling different EJB jar naming
  +     * schemes
  +     */
       public static class NamingScheme extends EnumeratedAttribute {
  +        /** 
  +         * Naming scheme where generated jar is determined from the ejb-name in
  +         * the deployment descripor 
  +         */
           public final static String EJB_NAME = "ejb-name";
  +
  +        /**
  +         * Naming scheme where the generated jar name is based on the 
  +         * name of the directory containing the deployment descriptor 
  +         */
           public final static String DIRECTORY = "directory";
  +        
  +        /** 
  +         * Naming scheme where the generated jar name is based on the name of
  +         * the deployment descriptor file
  +         */
           public final static String DESCRIPTOR = "descriptor";
  +        
  +        /** 
  +         * Naming scheme where the generated jar is named by the basejarname 
  +         * attribute 
  +         */
           public final static String BASEJARNAME = "basejarname";
  +        
  +        /**
  +         * Gets the values of the NamingScheme
  +         *
  +         * @return an array of the values of this attribute class.
  +         */
           public String[] getValues() {
               return new String[] {EJB_NAME, DIRECTORY, DESCRIPTOR, BASEJARNAME};
           }
       }
   
  +    /**
  +     * The config which is built by this task and used by the various deployment
  +     * tools to access the configuration of the ejbjar task 
  +     */
       private Config config = new Config();
   
   
  -    /** Stores a handle to the directory to put the Jar files in. This is only used
  -        by the generic deployment descriptor tool which is created if no other
  -        deployment descriptor tools are provided. Normally each deployment tool
  -        will specify the desitination dir itself. */
  +    /**
  +     * Stores a handle to the directory to put the Jar files in. This is
  +     * only used by the generic deployment descriptor tool which is created
  +     * if no other deployment descriptor tools are provided. Normally each
  +     * deployment tool will specify the desitination dir itself.
  +     */
       private File destDir;
   
       /** Instance variable that stores the suffix for the generated jarfile. */
       private String genericJarSuffix = "-generic.jar";
   
  -    /**
  -     * The list of deployment tools we are going to run.
  -     */
  +    /** The list of deployment tools we are going to run. */
       private ArrayList deploymentTools = new ArrayList();
   
       /**
  @@ -296,7 +352,8 @@
        * @return the deployment tool instance to be configured.
        */
       public WeblogicTOPLinkDeploymentTool createWeblogictoplink() {
  -        WeblogicTOPLinkDeploymentTool tool = new WeblogicTOPLinkDeploymentTool();
  +        WeblogicTOPLinkDeploymentTool tool 
  +            = new WeblogicTOPLinkDeploymentTool();
           tool.setTask(this);
           deploymentTools.add(tool);
           return tool;
  @@ -318,8 +375,11 @@
       }
   
       /**
  -     * Create a DTD location record. This stores the location of a DTD. The DTD is identified
  -     * by its public Id. The location may either be a file location or a resource location.
  +     * Create a DTD location record. This stores the location of a DTD. The
  +     * DTD is identified by its public Id. The location may either be a file
  +     * location or a resource location.
  +     *
  +     * @return the DTD location object to be configured by Ant
        */
       public DTDLocation createDTD() {
           DTDLocation dtdLocation = new DTDLocation();
  @@ -341,22 +401,24 @@
   
   
        /**
  -      * Set the Manifest file to use when jarring.
  +     * Set the Manifest file to use when jarring. As of EJB 1.1, manifest
  +     * files are no longer used to configure the EJB. However, they still
  +     * have a vital importance if the EJB is intended to be packaged in an
  +     * EAR file. By adding "Class-Path" settings to a Manifest file, the EJB
  +     * can look for classes inside the EAR file itself, allowing for easier
  +     * deployment. This is outlined in the J2EE specification, and all J2EE
  +     * components are meant to support it.
         *
  -      * As of EJB 1.1, manifest files are no longer used to configure the EJB. However,
they
  -      * still have a vital importance if the EJB is intended to be packaged in an EAR file.
  -      * By adding "Class-Path" settings to a Manifest file, the EJB can look for classes
inside
  -      * the EAR file itself, allowing for easier deployment. This is outlined in the J2EE
  -      * specification, and all J2EE components are meant to support it.
  +     * @param manifest the manifest to be used in the EJB jar
         */
        public void setManifest(File manifest) {
            config.manifest = manifest;
        }
   
       /**
  -     * Set the srcdir attribute. The source directory is the directory that contains
  -     * the classes that will be added to the EJB jar. Typically this will include the
  -     * home and remote interfaces and the bean class.
  +     * Set the srcdir attribute. The source directory is the directory that
  +     * contains the classes that will be added to the EJB jar. Typically
  +     * this will include the home and remote interfaces and the bean class.
        *
        * @param inDir the source directory.
        */
  @@ -365,12 +427,11 @@
       }
   
       /**
  -     * Set the descriptor directory.
  -     *
  -     * The descriptor directory contains the EJB deployment descriptors. These are XML
  -     * files that declare the properties of a bean in a particular deployment scenario.
Such
  -     * properties include, for example, the transactional nature of the bean and the security
  -     * access control to the bean's methods.
  +     * Set the descriptor directory. The descriptor directory contains the
  +     * EJB deployment descriptors. These are XML files that declare the
  +     * properties of a bean in a particular deployment scenario. Such
  +     * properties include, for example, the transactional nature of the bean
  +     * and the security access control to the bean's methods.
        *
        * @param inDir the directory containing the deployment descriptors.
        */
  @@ -379,11 +440,11 @@
       }
   
       /**
  -     * Set the base name of the EJB jar that is to be created if it is not to be
  -     * determined from the name of the deployment descriptor files.
  +     * Set the base name of the EJB jar that is to be created if it is not
  +     * to be determined from the name of the deployment descriptor files.
        *
  -     * @param inValue the basename that will be used when writing the jar file containing
  -     * the EJB
  +     * @param inValue the basename that will be used when writing the jar
  +     *      file containing the EJB
        */
       public void setBasejarname(String inValue) {
           config.baseJarName = inValue;
  @@ -401,7 +462,7 @@
        * Set the naming scheme used to determine the name of the generated jars
        * from the deployment descriptor
        *
  -     * @param NamingScheme the namign scheme to be used
  +     * @param namingScheme the naming scheme to be used
        */
       public void setNaming(NamingScheme namingScheme) {
           config.namingScheme = namingScheme;
  @@ -414,16 +475,14 @@
   
   
       /**
  -     * Set the destination directory.
  -     *
  -     * The EJB jar files will be written into this directory. The jar files that exist
in
  -     * this directory are also used when determining if the contents of the jar file
  -     * have changed.
  +     * Set the destination directory. The EJB jar files will be written into
  +     * this directory. The jar files that exist in this directory are also
  +     * used when determining if the contents of the jar file have changed.
  +     * Note that this parameter is only used if no deployment tools are
  +     * specified. Typically each deployment tool will specify its own
  +     * destination directory.
        *
  -     * Note that this parameter is only used if no deployment tools are specified. Typically
  -     * each deployment tool will specify its own destination directory.
  -     *
  -     * @param inFile the destination directory.
  +     * @param inDir the destination directory in which to generate jars
        */
       public void setDestdir(File inDir) {
           this.destDir = inDir;
  @@ -439,13 +498,12 @@
       }
   
       /**
  -     * Set the flat dest dir flag.
  -     *
  -     * This flag controls whether the destination jars are written out in the
  -     * destination directory with the same hierarchal structure from which
  -     * the deployment descriptors have been read. If this is set to true the
  -     * generated EJB jars are written into the root of the destination directory,
  -     * otherwise they are written out in the same relative position as the deployment
  +     * Set the flat dest dir flag. This flag controls whether the
  +     * destination jars are written out in the destination directory with
  +     * the same hierarchal structure from which the deployment descriptors
  +     * have been read. If this is set to true the generated EJB jars are
  +     * written into the root of the destination directory, otherwise they
  +     * are written out in the same relative position as the deployment
        * descriptors in the descriptor directory.
        *
        * @param inValue the new value of the flatdestdir flag.
  @@ -455,11 +513,11 @@
       }
   
       /**
  -     * Set the suffix for the generated jar file.
  -     * When generic jars are generated, they have a suffix which is appended to the
  -     * the bean name to create the name of the jar file. Note that this suffix includes
  -     * the extension fo te jar file and should therefore end with an appropriate
  -     * extension such as .jar or .ear
  +     * Set the suffix for the generated jar file. When generic jars are
  +     * generated, they have a suffix which is appended to the the bean name
  +     * to create the name of the jar file. Note that this suffix includes
  +     * the extension fo te jar file and should therefore end with an
  +     * appropriate extension such as .jar or .ear
        *
        * @param inString the string to use as the suffix.
        */
  @@ -468,12 +526,11 @@
       }
   
       /**
  -     * Set the baseNameTerminator.
  -     *
  -     * The basename terminator is the string which terminates the bean name. The convention
  -     * used by this task is that bean descriptors are named as the BeanName with some suffix.
  -     * The baseNameTerminator string separates the bean name and the suffix and is used
to
  -     * determine the bean name.
  +     * Set the baseNameTerminator. The basename terminator is the string
  +     * which terminates the bean name. The convention used by this task is
  +     * that bean descriptors are named as the BeanName with some suffix. The
  +     * baseNameTerminator string separates the bean name and the suffix and
  +     * is used to determine the bean name.
        *
        * @param inValue a string which marks the end of the basename.
        */
  @@ -481,6 +538,11 @@
           config.baseNameTerminator = inValue;
       }
   
  +    /**
  +     * Validate the config that has been configured from the build file
  +     *
  +     * @throws BuildException if the config is not valid
  +     */
       private void validateConfig() {
           if (config.srcDir == null) {
               throw new BuildException("The srcDir attribute must be specified");
  
  
  

--
To unsubscribe, e-mail:   <mailto:ant-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:ant-dev-help@jakarta.apache.org>


Mime
View raw message