org.apache.tools.ant.taskdefs.optional.ejb

Class GenericDeploymentTool

  • java.lang.Object
    • org.apache.tools.ant.taskdefs.optional.ejb.GenericDeploymentTool
    • Field Summary

      Fields 
      Modifier and Type Field and Description
      static java.lang.String ANALYZER_CLASS_FULL
      The analyzer class for the super analyzer
      static java.lang.String ANALYZER_CLASS_SUPER
      The analyzer class for the super analyzer
      static java.lang.String ANALYZER_FULL
      A dependency analyzer name to find all related classes
      static java.lang.String ANALYZER_NONE
      A dependency analyzer name for no analyzer
      static java.lang.String ANALYZER_SUPER
      A dependency analyzer name to find ancestor classes
      static java.lang.String DEFAULT_ANALYZER
      The default analyzer
      static int DEFAULT_BUFFER_SIZE
      The default buffer byte size to use for IO
      protected static java.lang.String EJB_DD
      Name for EJB Deployment descriptor within EJB jars
      static int JAR_COMPRESS_LEVEL
      The level to use for compression
      protected static java.lang.String MANIFEST
      The standard MANIFEST file
      protected static java.lang.String META_DIR
      The standard META-INF directory in jar files
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method and Description
      protected void addFileToJar(java.util.jar.JarOutputStream jStream, java.io.File inputFile, java.lang.String logicalFilename)
      Utility method that encapsulates the logic of adding a file entry to a .jar file.
      protected void addSupportClasses(java.util.Hashtable ejbFiles)
      Adds any classes the user specifies using support nested elements to the ejbFiles Hashtable.
      protected void addVendorFiles(java.util.Hashtable ejbFiles, java.lang.String ddPrefix)
      Add any vendor specific files which should be included in the EJB Jar.
      protected void checkAndAddDependants(java.util.Hashtable checkEntries)
      Add all available classes, that depend on Remote, Home, Bean, PK
      protected void checkConfiguration(java.lang.String descriptorFileName, javax.xml.parsers.SAXParser saxParser)
      This method is called as the first step in the processDescriptor method to allow vendor-specific subclasses to validate the task configuration prior to processing the descriptor.
      void configure(org.apache.tools.ant.taskdefs.optional.ejb.EjbJar.Config config)
      Configure this tool for use in the ejbjar task.
      Path createClasspath()
      Add the classpath for the user classes
      protected java.lang.ClassLoader getClassLoaderForBuild()
      Returns a Classloader object which parses the passed in generic EjbJar classpath.
      protected Path getCombinedClasspath()
      Get the classpath by combining the one from the surrounding task, if any and the one from this tool.
      protected org.apache.tools.ant.taskdefs.optional.ejb.EjbJar.Config getConfig()
      Get the basename terminator.
      protected DescriptorHandler getDescriptorHandler(java.io.File srcDir)
      Get a descriptionHandler.
      protected java.io.File getDestDir()
      Get the destination directory.
      protected java.lang.String getJarBaseName(java.lang.String descriptorFileName)
      Using the EJB descriptor file name passed from the ejbjar task, this method returns the "basename" which will be used to name the completed JAR file.
      protected Location getLocation()
      Get the build file location associated with this element's task.
      protected java.io.File getManifestFile(java.lang.String prefix)
      Get the manifest file to use for building the generic jar.
      protected java.lang.String getPublicId()
      Returns the Public ID of the DTD specified in the EJB descriptor.
      protected Task getTask()
      Get the task for this tool.
      java.lang.String getVendorDDPrefix(java.lang.String baseName, java.lang.String descriptorFileName)
      Get the prefix for vendor deployment descriptors.
      protected void log(java.lang.String message, int level)
      Log a message to the Ant output.
      protected boolean needToRebuild(java.util.Hashtable ejbFiles, java.io.File jarFile)
      This method checks the timestamp on each file listed in the ejbFiles and compares them to the timestamp on the jarFile .
      protected java.util.Hashtable parseEjbFiles(java.lang.String descriptorFileName, javax.xml.parsers.SAXParser saxParser)
      This method returns a list of EJB files found when the specified EJB descriptor is parsed and processed.
      void processDescriptor(java.lang.String descriptorFileName, javax.xml.parsers.SAXParser saxParser)
      Process a deployment descriptor, generating the necessary vendor specific deployment files.
      protected void registerKnownDTDs(DescriptorHandler handler)
      Register the locations of all known DTDs.
      void setClasspath(Path classpath)
      Set the classpath to be used for this compilation.
      void setDestdir(java.io.File inDir)
      Set the destination directory; required.
      void setGenericJarSuffix(java.lang.String inString)
      Set the suffix for the generated jar file.
      void setTask(Task task)
      Set the task which owns this tool
      protected boolean usingBaseJarName()
      Indicate if this build is using the base jar name.
      void validateConfigured()
      Called to validate that the tool parameters have been configured.
      protected void writeJar(java.lang.String baseName, java.io.File jarfile, java.util.Hashtable files, java.lang.String publicId)
      Method used to encapsulate the writing of the JAR file.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • DEFAULT_BUFFER_SIZE

        public static final int DEFAULT_BUFFER_SIZE
        The default buffer byte size to use for IO
        See Also:
        Constant Field Values
      • JAR_COMPRESS_LEVEL

        public static final int JAR_COMPRESS_LEVEL
        The level to use for compression
        See Also:
        Constant Field Values
      • META_DIR

        protected static final java.lang.String META_DIR
        The standard META-INF directory in jar files
        See Also:
        Constant Field Values
      • MANIFEST

        protected static final java.lang.String MANIFEST
        The standard MANIFEST file
        See Also:
        Constant Field Values
      • EJB_DD

        protected static final java.lang.String EJB_DD
        Name for EJB Deployment descriptor within EJB jars
        See Also:
        Constant Field Values
      • ANALYZER_SUPER

        public static final java.lang.String ANALYZER_SUPER
        A dependency analyzer name to find ancestor classes
        See Also:
        Constant Field Values
      • ANALYZER_FULL

        public static final java.lang.String ANALYZER_FULL
        A dependency analyzer name to find all related classes
        See Also:
        Constant Field Values
      • ANALYZER_NONE

        public static final java.lang.String ANALYZER_NONE
        A dependency analyzer name for no analyzer
        See Also:
        Constant Field Values
      • DEFAULT_ANALYZER

        public static final java.lang.String DEFAULT_ANALYZER
        The default analyzer
        See Also:
        Constant Field Values
      • ANALYZER_CLASS_SUPER

        public static final java.lang.String ANALYZER_CLASS_SUPER
        The analyzer class for the super analyzer
        See Also:
        Constant Field Values
      • ANALYZER_CLASS_FULL

        public static final java.lang.String ANALYZER_CLASS_FULL
        The analyzer class for the super analyzer
        See Also:
        Constant Field Values
    • Constructor Detail

      • GenericDeploymentTool

        public GenericDeploymentTool()
        No arg constructor
    • Method Detail

      • setDestdir

        public void setDestdir(java.io.File inDir)
        Set the destination directory; required.
        Parameters:
        inDir - the destination directory.
      • getDestDir

        protected java.io.File getDestDir()
        Get the destination directory.
        Returns:
        the destination directory into which EJB jars are to be written
      • setTask

        public void setTask(Task task)
        Set the task which owns this tool
        Specified by:
        setTask in interface EJBDeploymentTool
        Parameters:
        task - the Task to which this deployment tool is associated.
      • getTask

        protected Task getTask()
        Get the task for this tool.
        Returns:
        the Task instance this tool is associated with.
      • getConfig

        protected org.apache.tools.ant.taskdefs.optional.ejb.EjbJar.Config getConfig()
        Get the basename terminator.
        Returns:
        an ejbjar task configuration
      • usingBaseJarName

        protected boolean usingBaseJarName()
        Indicate if this build is using the base jar name.
        Returns:
        true if the name of the generated jar is coming from the basejarname attribute
      • setGenericJarSuffix

        public void setGenericJarSuffix(java.lang.String inString)
        Set the suffix for the generated jar file.
        Parameters:
        inString - the string to use as the suffix.
      • createClasspath

        public Path createClasspath()
        Add the classpath for the user classes
        Returns:
        a Path instance to be configured by Ant.
      • setClasspath

        public void setClasspath(Path classpath)
        Set the classpath to be used for this compilation.
        Parameters:
        classpath - the classpath to be used for this build.
      • getCombinedClasspath

        protected Path getCombinedClasspath()
        Get the classpath by combining the one from the surrounding task, if any and the one from this tool.
        Returns:
        the combined classpath
      • log

        protected void log(java.lang.String message,
                           int level)
        Log a message to the Ant output.
        Parameters:
        message - the message to be logged.
        level - the severity of this message.
      • getLocation

        protected Location getLocation()
        Get the build file location associated with this element's task.
        Returns:
        the task's location instance.
      • configure

        public void configure(org.apache.tools.ant.taskdefs.optional.ejb.EjbJar.Config config)
        Configure this tool for use in the ejbjar task.
        Specified by:
        configure in interface EJBDeploymentTool
        Parameters:
        config - the configuration from the surrounding ejbjar task.
      • addFileToJar

        protected void addFileToJar(java.util.jar.JarOutputStream jStream,
                                    java.io.File inputFile,
                                    java.lang.String logicalFilename)
                             throws BuildException
        Utility method that encapsulates the logic of adding a file entry to a .jar file. Used by execute() to add entries to the jar file as it is constructed.
        Parameters:
        jStream - A JarOutputStream into which to write the jar entry.
        inputFile - A File from which to read the contents the file being added.
        logicalFilename - A String representing the name, including all relevant path information, that should be stored for the entry being added.
        Throws:
        BuildException - if there is a problem.
      • getDescriptorHandler

        protected DescriptorHandler getDescriptorHandler(java.io.File srcDir)
        Get a descriptionHandler.
        Parameters:
        srcDir - the source directory.
        Returns:
        a handler.
      • registerKnownDTDs

        protected void registerKnownDTDs(DescriptorHandler handler)
        Register the locations of all known DTDs. vendor-specific subclasses should override this method to define the vendor-specific locations of the EJB DTDs
        Parameters:
        handler - no used in this class.
      • processDescriptor

        public void processDescriptor(java.lang.String descriptorFileName,
                                      javax.xml.parsers.SAXParser saxParser)
        Process a deployment descriptor, generating the necessary vendor specific deployment files..
        Specified by:
        processDescriptor in interface EJBDeploymentTool
        Parameters:
        descriptorFileName - the name of the deployment descriptor
        saxParser - a SAX parser which can be used to parse the deployment descriptor.
      • checkConfiguration

        protected void checkConfiguration(java.lang.String descriptorFileName,
                                          javax.xml.parsers.SAXParser saxParser)
                                   throws BuildException
        This method is called as the first step in the processDescriptor method to allow vendor-specific subclasses to validate the task configuration prior to processing the descriptor. If the configuration is invalid, a BuildException should be thrown.
        Parameters:
        descriptorFileName - String representing the file name of an EJB descriptor to be processed
        saxParser - SAXParser which may be used to parse the XML descriptor
        Throws:
        BuildException - if there is a problem.
      • parseEjbFiles

        protected java.util.Hashtable parseEjbFiles(java.lang.String descriptorFileName,
                                                    javax.xml.parsers.SAXParser saxParser)
                                             throws java.io.IOException,
                                                    org.xml.sax.SAXException
        This method returns a list of EJB files found when the specified EJB descriptor is parsed and processed.
        Parameters:
        descriptorFileName - String representing the file name of an EJB descriptor to be processed
        saxParser - SAXParser which may be used to parse the XML descriptor
        Returns:
        Hashtable of EJB class (and other) files to be added to the completed JAR file
        Throws:
        org.xml.sax.SAXException - Any SAX exception, possibly wrapping another exception
        java.io.IOException - An IOException from the parser, possibly from a the byte stream or character stream
      • addSupportClasses

        protected void addSupportClasses(java.util.Hashtable ejbFiles)
        Adds any classes the user specifies using support nested elements to the ejbFiles Hashtable.
        Parameters:
        ejbFiles - Hashtable of EJB classes (and other) files that will be added to the completed JAR file
      • getJarBaseName

        protected java.lang.String getJarBaseName(java.lang.String descriptorFileName)
        Using the EJB descriptor file name passed from the ejbjar task, this method returns the "basename" which will be used to name the completed JAR file.
        Parameters:
        descriptorFileName - String representing the file name of an EJB descriptor to be processed
        Returns:
        The "basename" which will be used to name the completed JAR file
      • getVendorDDPrefix

        public java.lang.String getVendorDDPrefix(java.lang.String baseName,
                                                  java.lang.String descriptorFileName)
        Get the prefix for vendor deployment descriptors. This will contain the path and the start of the descriptor name, depending on the naming scheme
        Parameters:
        baseName - the base name to use.
        descriptorFileName - the file name to use.
        Returns:
        the prefix.
      • addVendorFiles

        protected void addVendorFiles(java.util.Hashtable ejbFiles,
                                      java.lang.String ddPrefix)
        Add any vendor specific files which should be included in the EJB Jar.
        Parameters:
        ejbFiles - a hashtable entryname -> file.
        ddPrefix - a prefix to use.
      • needToRebuild

        protected boolean needToRebuild(java.util.Hashtable ejbFiles,
                                        java.io.File jarFile)
        This method checks the timestamp on each file listed in the ejbFiles and compares them to the timestamp on the jarFile . If the jarFile's timestamp is more recent than each EJB file, true is returned. Otherwise, false is returned. TODO: find a way to check the manifest-file, that is found by naming convention
        Parameters:
        ejbFiles - Hashtable of EJB classes (and other) files that will be added to the completed JAR file
        jarFile - JAR file which will contain all of the EJB classes (and other) files
        Returns:
        boolean indicating whether or not the jarFile is up to date
      • getPublicId

        protected java.lang.String getPublicId()
        Returns the Public ID of the DTD specified in the EJB descriptor. Not every vendor-specific DeploymentTool will need to reference this value or may want to determine this value in a vendor-specific way.
        Returns:
        Public ID of the DTD specified in the EJB descriptor.
      • getManifestFile

        protected java.io.File getManifestFile(java.lang.String prefix)
        Get the manifest file to use for building the generic jar. If the file does not exist the global manifest from the config is used otherwise the default Ant manifest will be used.
        Parameters:
        prefix - the prefix where to llook for the manifest file based on the naming convention.
        Returns:
        the manifest file or null if the manifest file does not exist
      • writeJar

        protected void writeJar(java.lang.String baseName,
                                java.io.File jarfile,
                                java.util.Hashtable files,
                                java.lang.String publicId)
                         throws BuildException
        Method used to encapsulate the writing of the JAR file. Iterates over the filenames/java.io.Files in the Hashtable stored on the instance variable ejbFiles.
        Parameters:
        baseName - the base name to use.
        jarfile - the jar file to write to.
        files - the files to write to the jar.
        publicId - the id to use.
        Throws:
        BuildException - if there is a problem.
      • checkAndAddDependants

        protected void checkAndAddDependants(java.util.Hashtable checkEntries)
                                      throws BuildException
        Add all available classes, that depend on Remote, Home, Bean, PK
        Parameters:
        checkEntries - files, that are extracted from the deployment descriptor
        Throws:
        BuildException - if there is a problem.
      • getClassLoaderForBuild

        protected java.lang.ClassLoader getClassLoaderForBuild()
        Returns a Classloader object which parses the passed in generic EjbJar classpath. The loader is used to dynamically load classes from javax.ejb.* and the classes being added to the jar.
        Returns:
        a classloader.