org.apache.tools.ant.taskdefs.optional.ejb
public class GenericDeploymentTool extends Object implements EJBDeploymentTool
Field Summary | |
---|---|
static String | ANALYZER_CLASS_FULL The analyzer class for the super analyzer |
static String | ANALYZER_CLASS_SUPER The analyzer class for the super analyzer |
static String | ANALYZER_FULL A dependency analyzer name to find all related classes |
static String | ANALYZER_NONE A dependency analyzer name for no analyzer |
static String | ANALYZER_SUPER A dependency analyzer name to find ancestor classes |
static String | DEFAULT_ANALYZER The default analyzer |
static int | DEFAULT_BUFFER_SIZE The default buffer byte size to use for IO |
protected static String | EJB_DD Name for EJB Deployment descriptor within EJB jars |
static int | JAR_COMPRESS_LEVEL The level to use for compression |
protected static String | MANIFEST The standard MANIFEST file |
protected static String | META_DIR The standard META-INF directory in jar files |
Constructor Summary | |
---|---|
GenericDeploymentTool() No arg constructor |
Method Summary | |
---|---|
protected void | addFileToJar(JarOutputStream jStream, File inputFile, String logicalFilename)
Utility method that encapsulates the logic of adding a file entry to
a .jar file. |
protected void | addSupportClasses(Hashtable ejbFiles)
Adds any classes the user specifies using support nested elements
to the ejbFiles Hashtable.
|
protected void | addVendorFiles(Hashtable ejbFiles, String ddPrefix)
Add any vendor specific files which should be included in the
EJB Jar. |
protected void | checkAndAddDependants(Hashtable checkEntries)
Add all available classes, that depend on Remote, Home, Bean, PK |
protected void | checkConfiguration(String descriptorFileName, 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(EjbJar.Config config)
Configure this tool for use in the ejbjar task.
|
Path | createClasspath()
Add the classpath for the user classes
|
protected 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 EjbJar.Config | getConfig()
Get the basename terminator.
|
protected DescriptorHandler | getDescriptorHandler(File srcDir)
Get a descriptionHandler. |
protected File | getDestDir()
Get the destination directory.
|
protected String | getJarBaseName(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 File | getManifestFile(String prefix)
Get the manifets file to use for building the generic jar.
|
protected String | getPublicId()
Returns the Public ID of the DTD specified in the EJB descriptor. |
protected Task | getTask()
Get the task for this tool.
|
String | getVendorDDPrefix(String baseName, String descriptorFileName)
Get the prefix for vendor deployment descriptors.
|
protected void | log(String message, int level)
Log a message to the Ant output.
|
protected boolean | needToRebuild(Hashtable ejbFiles, File jarFile)
This method checks the timestamp on each file listed in the
ejbFiles and compares them to the timestamp on the jarFile
. |
protected Hashtable | parseEjbFiles(String descriptorFileName, SAXParser saxParser)
This method returns a list of EJB files found when the specified EJB
descriptor is parsed and processed.
|
void | processDescriptor(String descriptorFileName, SAXParser saxParser) {@inheritDoc}. |
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 |
void | setClasspath(Path classpath)
Set the classpath to be used for this compilation.
|
void | setDestdir(File inDir)
Set the destination directory; required. |
void | setGenericJarSuffix(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(String baseName, File jarfile, Hashtable files, String publicId)
Method used to encapsulate the writing of the JAR file. |
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.
ejbFiles
Hashtable.
Parameters: ejbFiles Hashtable of EJB classes (and other) files that will be added to the completed JAR file
Parameters: ejbFiles a hashtable entryname -> file. ddPrefix a prefix to use.
Parameters: checkEntries files, that are extracted from the deployment descriptor
Throws: BuildException if there is a problem.
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.
Parameters: config the configuration from the surrounding ejbjar task.
Returns: a Path instance to be configured by Ant.
Returns: a classloader.
Returns: the combined classpath
Returns: an ejbjar task configuration
Parameters: srcDir the source directory.
Returns: a handler.
Returns: the destination directory into which EJB jars are to be written
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
Returns: the task's location instance.
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
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.
Returns: the Task instance this tool is associated with.
Parameters: baseName the base name to use. descriptorFileName the file name to use.
Returns: the prefix.
Parameters: message the message to be logged. level the severity of this message.
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
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: SAXException Any SAX exception, possibly wrapping another exception IOException An IOException from the parser, possibly from a the byte stream or character stream
Parameters: handler no used in this class.
Parameters: classpath the classpath to be used for this build.
Parameters: inDir the destination directory.
Parameters: inString the string to use as the suffix.
Parameters: task the Task to which this deployment tool is associated.
Returns: true if the name of the generated jar is coming from the basejarname attribute
Throws: BuildException If the Deployment Tool's configuration isn't valid
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.