bodewig 02/01/10 06:28:55
Modified: src/main/org/apache/tools/ant/taskdefs/optional/ejb
WebsphereDeploymentTool.java
Log:
untabify
Revision Changes Path
1.4 +510 -510
jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WebsphereDeploymentTool.java
Index: WebsphereDeploymentTool.java
===================================================================
RCS file:
/home/cvs/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WebsphereDeploymentTool.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- WebsphereDeploymentTool.java 10 Jan 2002 13:59:35 -0000 1.3
+++ WebsphereDeploymentTool.java 10 Jan 2002 14:28:54 -0000 1.4
@@ -75,41 +75,41 @@
* Enumerated attribute with the values for the database vendor types
*/
public static class DBVendor extends EnumeratedAttribute {
- public String[] getValues() {
- return new String[] {
- "SQL92", "SQL99", "DB2UDBWIN_V71", "DB2UDBOS390_V6",
"DB2UDBAS400_V4R5",
- "ORACLE_V8", "INFORMIX_V92", "SYBASE_V1192", "MSSQLSERVER_V7",
"MYSQL_V323"
- };
- }
+ public String[] getValues() {
+ return new String[] {
+ "SQL92", "SQL99", "DB2UDBWIN_V71", "DB2UDBOS390_V6",
"DB2UDBAS400_V4R5",
+ "ORACLE_V8", "INFORMIX_V92", "SYBASE_V1192",
"MSSQLSERVER_V7", "MYSQL_V323"
+ };
+ }
}
-
+
public static final String PUBLICID_EJB11
- = "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN";
+ = "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN";
public static final String PUBLICID_EJB20
- = "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN";
+ = "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN";
protected static final String SCHEMA_DIR = "Schema/";
-
+
protected static final String WAS_EXT = "ibm-ejb-jar-ext.xmi";
protected static final String WAS_BND = "ibm-ejb-jar-bnd.xmi";
protected static final String WAS_CMP_MAP = "Map.mapxmi";
protected static final String WAS_CMP_SCHEMA = "Schema.dbxmi";
-
+
/** Instance variable that stores the suffix for the websphere jarfile.
*/
private String jarSuffix = ".jar";
-
+
/** Instance variable that stores the location of the ejb 1.1 DTD file.
*/
private String ejb11DTD;
-
+
/** Instance variable that determines whether generic ejb jars are kept.
*/
-
+
private boolean keepgenerated = false;
-
+
private String additionalArgs = "";
-
+
private boolean keepGeneric = false;
-
+
private String compiler = null;
-
+
private boolean alwaysRebuild = true;
private boolean ejbdeploy = true;
@@ -124,206 +124,206 @@
/** The DB Vendor name, the EJB is persisted against */
private String dbVendor;
-
+
/** The name of the database to create. (For top-down mapping only) */
private String dbName;
-
+
/** The name of the schema to create. (For top-down mappings only) */
private String dbSchema;
-
+
/** true - Only generate the deployment code, do not run RMIC or Javac */
private boolean codegen;
-
+
/** true - Only output error messages, suppress informational messages */
private boolean quiet = true;
-
+
/** true - Disable the validation steps */
private boolean novalidate;
-
+
/** true - Disable warning and informational messages */
private boolean nowarn;
-
+
/** true - Disable informational messages */
private boolean noinform;
-
+
/** true - Enable internal tracing */
private boolean trace;
-
+
/** Additional options for RMIC */
private String rmicOptions;
-
+
/** true- Use the WebSphere 3.5 compatible mapping rules */
private boolean use35MappingRules;
-
+
/** the scratchdir for the ejbdeploy operation */
private String tempdir = "_ejbdeploy_temp";
-
+
/**
* Get the classpath to the websphere classpaths
*/
public Path createWASClasspath() {
- if (wasClasspath == null) {
- wasClasspath = new Path(getTask().getProject());
- }
- return wasClasspath.createPath();
+ if (wasClasspath == null) {
+ wasClasspath = new Path(getTask().getProject());
+ }
+ return wasClasspath.createPath();
}
-
+
public void setWASClasspath(Path wasClasspath) {
- this.wasClasspath = wasClasspath;
+ this.wasClasspath = wasClasspath;
}
-
+
/**
* Sets the DB Vendor for the Entity Bean mapping
*/
public void setDbvendor(DBVendor dbvendor) {
- this.dbVendor = dbvendor.getValue();
+ this.dbVendor = dbvendor.getValue();
}
-
+
/**
* Sets the name of the Database to create
* @param String
*/
public void setDbname(String dbName) {
- this.dbName = dbName;
+ this.dbName = dbName;
}
-
+
/**
* Sets the name of the schema to create
* @param String
*/
public void setDbschema(String dbSchema) {
- this.dbSchema = dbSchema;
+ this.dbSchema = dbSchema;
}
-
+
/**
* (true) Only generate the deployment code, do not run RMIC or Javac
* @param boolean
*/
public void setCodegen(boolean codegen) {
- this.codegen = codegen;
+ this.codegen = codegen;
}
-
+
/**
* (true) Only output error messages, suppress informational messages
* @param boolean
*/
public void setQuiet(boolean quiet) {
- this.quiet = quiet;
+ this.quiet = quiet;
}
-
+
/**
* (true) Disable the validation steps
* @param boolean
*/
public void setNovalidate(boolean novalidate) {
- this.novalidate = novalidate;
+ this.novalidate = novalidate;
}
-
+
/**
* (true) Disable warning and informational messages
* @param boolean
*/
public void setNowarn(boolean nowarn) {
- this.nowarn = nowarn;
+ this.nowarn = nowarn;
}
-
+
/**
* (true) Disable informational messages
* @param boolean
*/
public void setNoinform(boolean noinfom) {
- this.noinform = noinform;
+ this.noinform = noinform;
}
-
+
/**
* (true) Enable internal tracing
* @param boolean
*/
public void setTrace(boolean trace) {
- this.trace = trace;
+ this.trace = trace;
}
-
+
/**
* (true) Use the WebSphere 3.5 compatible mapping rules
* @param boolean
*/
public void setUse35(boolean attr) {
- use35MappingRules = attr;
+ use35MappingRules = attr;
}
-
+
/**
* The compiler (switch <code>-compiler</code>) to use
*/
public void setCompiler(String compiler) {
- this.compiler = compiler;
+ this.compiler = compiler;
}
-
+
/**
* Set the rebuild flag to false to only update changes in the
* jar rather than rerunning ejbdeploy
*/
public void setRebuild(boolean rebuild) {
- this.alwaysRebuild = rebuild;
+ this.alwaysRebuild = rebuild;
}
-
-
+
+
/**
* Setter used to store the suffix for the generated websphere jar file.
* @param inString the string to use as the suffix.
*/
public void setSuffix(String inString) {
- this.jarSuffix = inString;
+ this.jarSuffix = inString;
}
-
+
/**
* Setter used to store the value of keepGeneric
* @param inValue a string, either 'true' or 'false'.
*/
public void setKeepgeneric(boolean inValue) {
- this.keepGeneric = inValue;
+ this.keepGeneric = inValue;
}
-
+
/**
* Sets whether -keepgenerated is passed to ejbdeploy (that is,
* the .java source files are kept).
* @param inValue either 'true' or 'false'
*/
public void setKeepgenerated(String inValue) {
- this.keepgenerated = Boolean.valueOf(inValue).booleanValue();
+ this.keepgenerated = Boolean.valueOf(inValue).booleanValue();
}
-
+
/**
* Decide, wether ejbdeploy should be called or not
* @param ejbdeploy
*/
public void setEjbdeploy(boolean ejbdeploy) {
- this.ejbdeploy = ejbdeploy;
+ this.ejbdeploy = ejbdeploy;
}
/**
* sets some additional args to send to ejbdeploy.
*/
public void setArgs(String args) {
- this.additionalArgs = args;
+ this.additionalArgs = args;
}
-
+
/**
* Setter used to store the location of the Sun's Generic EJB DTD.
* This can be a file on the system or a resource on the classpath.
* @param inString the string to use as the DTD location.
*/
public void setEJBdtd(String inString) {
- this.ejb11DTD = inString;
+ this.ejb11DTD = inString;
}
-
+
/**
* Set the value of the oldCMP scheme. This is an antonym for
* newCMP
*/
public void setOldCMP(boolean oldCMP) {
- this.newCMP = !oldCMP;
+ this.newCMP = !oldCMP;
}
-
+
/**
* Set the value of the newCMP scheme. The old CMP scheme locates the
* websphere CMP descriptor based on the naming convention where the
@@ -335,171 +335,171 @@
*
*/
public void setNewCMP(boolean newCMP) {
- this.newCMP = newCMP;
+ this.newCMP = newCMP;
}
-
+
/**
* Sets the temporary directory for the ejbdeploy task
*/
public void setTempdir(String tempdir) {
- this.tempdir = tempdir;
+ this.tempdir = tempdir;
}
-
+
protected DescriptorHandler getDescriptorHandler(File srcDir) {
- DescriptorHandler handler = new DescriptorHandler(getTask(), srcDir);
- // register all the DTDs, both the ones that are known and
- // any supplied by the user
- handler.registerDTD(PUBLICID_EJB11, ejb11DTD);
-
- for (Iterator i = getConfig().dtdLocations.iterator(); i.hasNext();) {
- EjbJar.DTDLocation dtdLocation = (EjbJar.DTDLocation)i.next();
- handler.registerDTD(dtdLocation.getPublicId(),
dtdLocation.getLocation());
- }
-
- return handler;
+ DescriptorHandler handler = new DescriptorHandler(getTask(), srcDir);
+ // register all the DTDs, both the ones that are known and
+ // any supplied by the user
+ handler.registerDTD(PUBLICID_EJB11, ejb11DTD);
+
+ for (Iterator i = getConfig().dtdLocations.iterator(); i.hasNext();)
{
+ EjbJar.DTDLocation dtdLocation = (EjbJar.DTDLocation)i.next();
+ handler.registerDTD(dtdLocation.getPublicId(),
dtdLocation.getLocation());
+ }
+
+ return handler;
}
-
+
protected DescriptorHandler getWebsphereDescriptorHandler(final File
srcDir) {
- DescriptorHandler handler = new DescriptorHandler(getTask(), srcDir) {
- protected void processElement() {
- }
- };
-
- for (Iterator i = getConfig().dtdLocations.iterator(); i.hasNext();) {
- EjbJar.DTDLocation dtdLocation = (EjbJar.DTDLocation)i.next();
- handler.registerDTD(dtdLocation.getPublicId(),
dtdLocation.getLocation());
- }
- return handler;
+ DescriptorHandler handler = new DescriptorHandler(getTask(), srcDir)
{
+ protected void processElement() {
+ }
+ };
+
+ for (Iterator i = getConfig().dtdLocations.iterator(); i.hasNext();)
{
+ EjbJar.DTDLocation dtdLocation = (EjbJar.DTDLocation)i.next();
+ handler.registerDTD(dtdLocation.getPublicId(),
dtdLocation.getLocation());
+ }
+ return handler;
}
-
+
/**
* Add any vendor specific files which should be included in the
* EJB Jar.
*/
protected void addVendorFiles(Hashtable ejbFiles, String baseName) {
- String ddPrefix = (usingBaseJarName() ? "" : baseName);
- String dbPrefix = (dbVendor == null)? "": dbVendor + "-";
-
- // Get the Extensions document
- File websphereEXT = new File(getConfig().descriptorDir, ddPrefix +
WAS_EXT);
- if (websphereEXT.exists()) {
- ejbFiles.put(META_DIR + WAS_EXT,
- websphereEXT);
- } else {
- log("Unable to locate websphere extensions. It was expected to be
in " +
- websphereEXT.getPath(), Project.MSG_VERBOSE);
- }
-
- File websphereBND = new File(getConfig().descriptorDir, ddPrefix +
WAS_BND);
- if (websphereBND.exists()) {
- ejbFiles.put(META_DIR + WAS_BND,
- websphereBND);
- }else {
- log("Unable to locate websphere bindings. It was expected to be in
" +
- websphereBND.getPath(), Project.MSG_VERBOSE);
- }
-
- if (!newCMP) {
- log("The old method for locating CMP files has been DEPRECATED.",
Project.MSG_VERBOSE);
- log("Please adjust your websphere descriptor and set
newCMP=\"true\" " +
- "to use the new CMP descriptor inclusion mechanism. ",
Project.MSG_VERBOSE);
- }
- else {
- // We attempt to put in the MAP and Schema files of CMP beans
- try
- {
- // Add the Map file
- File websphereMAP = new File(getConfig().descriptorDir,
- ddPrefix + dbPrefix +
WAS_CMP_MAP);
- if (websphereMAP.exists()) {
- ejbFiles.put(META_DIR + WAS_CMP_MAP,
- websphereMAP);
- } else {
- log("Unable to locate the websphere Map: " +
- websphereMAP.getPath(), Project.MSG_VERBOSE);
- }
- File websphereSchema = new File(getConfig().descriptorDir,
- ddPrefix + dbPrefix +
WAS_CMP_SCHEMA);
- if (websphereSchema.exists()) {
- ejbFiles.put(META_DIR + SCHEMA_DIR + WAS_CMP_SCHEMA,
- websphereSchema);
- } else {
- log("Unable to locate the websphere Schema: " +
- websphereSchema.getPath(), Project.MSG_VERBOSE);
- }
- // Theres nothing else to see here...keep
moving sonny
- }
- catch(Exception e)
- {
- String msg = "Exception while adding Vendor specific files:
" +
- e.toString();
- throw new BuildException(msg, e);
- }
- }
+ String ddPrefix = (usingBaseJarName() ? "" : baseName);
+ String dbPrefix = (dbVendor == null)? "": dbVendor + "-";
+
+ // Get the Extensions document
+ File websphereEXT = new File(getConfig().descriptorDir, ddPrefix +
WAS_EXT);
+ if (websphereEXT.exists()) {
+ ejbFiles.put(META_DIR + WAS_EXT,
+ websphereEXT);
+ } else {
+ log("Unable to locate websphere extensions. It was expected to
be in " +
+ websphereEXT.getPath(), Project.MSG_VERBOSE);
+ }
+
+ File websphereBND = new File(getConfig().descriptorDir, ddPrefix +
WAS_BND);
+ if (websphereBND.exists()) {
+ ejbFiles.put(META_DIR + WAS_BND,
+ websphereBND);
+ }else {
+ log("Unable to locate websphere bindings. It was expected to be
in " +
+ websphereBND.getPath(), Project.MSG_VERBOSE);
+ }
+
+ if (!newCMP) {
+ log("The old method for locating CMP files has been
DEPRECATED.", Project.MSG_VERBOSE);
+ log("Please adjust your websphere descriptor and set
newCMP=\"true\" " +
+ "to use the new CMP descriptor inclusion mechanism. ",
Project.MSG_VERBOSE);
+ }
+ else {
+ // We attempt to put in the MAP and Schema files of CMP beans
+ try
+ {
+ // Add the Map file
+ File websphereMAP = new File(getConfig().descriptorDir,
+ ddPrefix + dbPrefix +
WAS_CMP_MAP);
+ if (websphereMAP.exists()) {
+ ejbFiles.put(META_DIR + WAS_CMP_MAP,
+ websphereMAP);
+ } else {
+ log("Unable to locate the websphere Map: " +
+ websphereMAP.getPath(), Project.MSG_VERBOSE);
+ }
+ File websphereSchema = new
File(getConfig().descriptorDir,
+ ddPrefix + dbPrefix +
WAS_CMP_SCHEMA);
+ if (websphereSchema.exists()) {
+ ejbFiles.put(META_DIR + SCHEMA_DIR + WAS_CMP_SCHEMA,
+ websphereSchema);
+ } else {
+ log("Unable to locate the websphere Schema: " +
+ websphereSchema.getPath(), Project.MSG_VERBOSE);
+ }
+ // Theres nothing else to see here...keep moving sonny
+ }
+ catch(Exception e)
+ {
+ String msg = "Exception while adding Vendor specific
files: " +
+ e.toString();
+ throw new BuildException(msg, e);
+ }
+ }
}
-
+
/**
* Get the vendor specific name of the Jar that will be output. The
modification date
* of this jar will be checked against the dependent bean classes.
*/
File getVendorOutputJarFile(String baseName) {
- return new File(getDestDir(), baseName + jarSuffix);
+ return new File(getDestDir(), baseName + jarSuffix);
}
-
+
/**
* Gets the options for the EJB Deploy operation
* @return String
*/
protected String getOptions() {
- // Set the options
- StringBuffer options = new StringBuffer();
- if (dbVendor != null) {
- options.append(" -dbvendor ").append(dbVendor);
- }
- if (dbName != null) {
- options.append(" -dbname \"").append(dbName).append("\"");
- }
-
- if (dbSchema != null) {
- options.append(" -dbschema \"").append(dbSchema).append("\"");
- }
-
- if (codegen) {
- options.append(" -codegen");
- }
-
- if (quiet) {
- options.append(" -quiet");
- }
-
- if (novalidate) {
- options.append(" -novalidate");
- }
-
- if (nowarn) {
- options.append(" -nowarn");
- }
-
- if (noinform) {
- options.append(" -noinform");
- }
-
- if (trace) {
- options.append(" -trace");
- }
-
- if (use35MappingRules) {
- options.append(" -35");
- }
-
- if (rmicOptions != null) {
- options.append(" -rmic \"").append(rmicOptions).append("\"");
- }
-
- return options.toString();
+ // Set the options
+ StringBuffer options = new StringBuffer();
+ if (dbVendor != null) {
+ options.append(" -dbvendor ").append(dbVendor);
+ }
+ if (dbName != null) {
+ options.append(" -dbname \"").append(dbName).append("\"");
+ }
+
+ if (dbSchema != null) {
+ options.append(" -dbschema \"").append(dbSchema).append("\"");
+ }
+
+ if (codegen) {
+ options.append(" -codegen");
+ }
+
+ if (quiet) {
+ options.append(" -quiet");
+ }
+
+ if (novalidate) {
+ options.append(" -novalidate");
+ }
+
+ if (nowarn) {
+ options.append(" -nowarn");
+ }
+
+ if (noinform) {
+ options.append(" -noinform");
+ }
+
+ if (trace) {
+ options.append(" -trace");
+ }
+
+ if (use35MappingRules) {
+ options.append(" -35");
+ }
+
+ if (rmicOptions != null) {
+ options.append(" -rmic \"").append(rmicOptions).append("\"");
+ }
+
+ return options.toString();
} // end getOptions
-
+
/**
* Helper method invoked by execute() for each websphere jar to be built.
* Encapsulates the logic of constructing a java task for calling
@@ -509,120 +509,120 @@
* jarfile.
*/
private void buildWebsphereJar(File sourceJar, File destJar) {
- try {
- if (ejbdeploy) {
- String args =
- " " + sourceJar.getPath() +
- " " + tempdir +
- " " + destJar.getPath() +
- " " + getOptions();
-
- if (getCombinedClasspath() != null &&
getCombinedClasspath().toString().length() > 0) {
- args += " -cp " + getCombinedClasspath();
- }
-
- // Why do my ""'s get stripped away???
- log("EJB Deploy Options: " + args, Project.MSG_VERBOSE);
-
- Java javaTask = (Java)getTask().getProject().createTask("java");
- // Set the JvmArgs
- javaTask.createJvmarg().setValue("-Xms64m");
- javaTask.createJvmarg().setValue("-Xmx128m");
-
- // Set the Environment variable
- Environment.Variable var = new Environment.Variable();
- var.setKey("websphere.lib.dir");
-
var.setValue(getTask().getProject().getProperty("websphere.home") + "/lib");
- javaTask.addSysproperty(var);
-
- // Set the working directory
- javaTask.setDir(new
File(getTask().getProject().getProperty("websphere.home")));
-
- // Set the Java class name
- javaTask.setTaskName("ejbdeploy");
- javaTask.setClassname("com.ibm.etools.ejbdeploy.EJBDeploy");
-
- Commandline.Argument arguments = javaTask.createArg();
- arguments.setLine(args);
-
- Path classpath = wasClasspath;
- if (classpath == null) {
- classpath = getCombinedClasspath();
- }
-
- if (classpath != null) {
- javaTask.setClasspath(classpath);
- javaTask.setFork(true);
- }
- else {
- javaTask.setFork(true);
- }
-
- log("Calling websphere.ejbdeploy for " + sourceJar.toString(),
- Project.MSG_VERBOSE);
-
- javaTask.execute();
- }
- }
- catch (Exception e) {
- // Have to catch this because of the semantics of calling main()
- String msg = "Exception while calling ejbdeploy. Details: " +
e.toString();
- throw new BuildException(msg, e);
- }
+ try {
+ if (ejbdeploy) {
+ String args =
+ " " + sourceJar.getPath() +
+ " " + tempdir +
+ " " + destJar.getPath() +
+ " " + getOptions();
+
+ if (getCombinedClasspath() != null &&
getCombinedClasspath().toString().length() > 0) {
+ args += " -cp " + getCombinedClasspath();
+ }
+
+ // Why do my ""'s get stripped away???
+ log("EJB Deploy Options: " + args, Project.MSG_VERBOSE);
+
+ Java javaTask =
(Java)getTask().getProject().createTask("java");
+ // Set the JvmArgs
+ javaTask.createJvmarg().setValue("-Xms64m");
+ javaTask.createJvmarg().setValue("-Xmx128m");
+
+ // Set the Environment variable
+ Environment.Variable var = new Environment.Variable();
+ var.setKey("websphere.lib.dir");
+
var.setValue(getTask().getProject().getProperty("websphere.home") + "/lib");
+ javaTask.addSysproperty(var);
+
+ // Set the working directory
+ javaTask.setDir(new
File(getTask().getProject().getProperty("websphere.home")));
+
+ // Set the Java class name
+ javaTask.setTaskName("ejbdeploy");
+ javaTask.setClassname("com.ibm.etools.ejbdeploy.EJBDeploy");
+
+ Commandline.Argument arguments = javaTask.createArg();
+ arguments.setLine(args);
+
+ Path classpath = wasClasspath;
+ if (classpath == null) {
+ classpath = getCombinedClasspath();
+ }
+
+ if (classpath != null) {
+ javaTask.setClasspath(classpath);
+ javaTask.setFork(true);
+ }
+ else {
+ javaTask.setFork(true);
+ }
+
+ log("Calling websphere.ejbdeploy for " +
sourceJar.toString(),
+ Project.MSG_VERBOSE);
+
+ javaTask.execute();
+ }
+ }
+ catch (Exception e) {
+ // Have to catch this because of the semantics of calling main()
+ String msg = "Exception while calling ejbdeploy. Details: " +
e.toString();
+ throw new BuildException(msg, e);
+ }
}
-
+
/**
* 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.
*/
protected void writeJar(String baseName, File jarFile, Hashtable files,
String publicId)
- throws BuildException
+ throws BuildException
{
- if (ejbdeploy) {
- // create the -generic.jar, if required
- File genericJarFile = super.getVendorOutputJarFile(baseName);
- super.writeJar(baseName, genericJarFile, files, publicId);
-
- // create the output .jar, if required
- if (alwaysRebuild || isRebuildRequired(genericJarFile, jarFile)) {
- buildWebsphereJar(genericJarFile, jarFile);
- }
- if (!keepGeneric) {
- log("deleting generic jar " + genericJarFile.toString(),
- Project.MSG_VERBOSE);
- genericJarFile.delete();
- }
- }
- else {
- // create the "undeployed" output .jar, if required
- super.writeJar(baseName, jarFile, files, publicId);
- }
- /*
- // need to create a generic jar first.
- File genericJarFile = super.getVendorOutputJarFile(baseName);
- super.writeJar(baseName, genericJarFile, files, publicId);
-
- if (alwaysRebuild || isRebuildRequired(genericJarFile, jarFile)) {
- buildWebsphereJar(genericJarFile, jarFile);
- }
- if (!keepGeneric) {
- log("deleting generic jar " + genericJarFile.toString(),
- Project.MSG_VERBOSE);
- genericJarFile.delete();
- }
- */
+ if (ejbdeploy) {
+ // create the -generic.jar, if required
+ File genericJarFile = super.getVendorOutputJarFile(baseName);
+ super.writeJar(baseName, genericJarFile, files, publicId);
+
+ // create the output .jar, if required
+ if (alwaysRebuild || isRebuildRequired(genericJarFile, jarFile))
{
+ buildWebsphereJar(genericJarFile, jarFile);
+ }
+ if (!keepGeneric) {
+ log("deleting generic jar " + genericJarFile.toString(),
+ Project.MSG_VERBOSE);
+ genericJarFile.delete();
+ }
+ }
+ else {
+ // create the "undeployed" output .jar, if required
+ super.writeJar(baseName, jarFile, files, publicId);
+ }
+ /*
+ // need to create a generic jar first.
+ File genericJarFile = super.getVendorOutputJarFile(baseName);
+ super.writeJar(baseName, genericJarFile, files, publicId);
+
+ if (alwaysRebuild || isRebuildRequired(genericJarFile, jarFile)) {
+ buildWebsphereJar(genericJarFile, jarFile);
+ }
+ if (!keepGeneric) {
+ log("deleting generic jar " + genericJarFile.toString(),
+ Project.MSG_VERBOSE);
+ genericJarFile.delete();
+ }
+ */
}
-
+
/**
* Called to validate that the tool parameters have been configured.
*
*/
public void validateConfigured() throws BuildException {
- super.validateConfigured();
+ super.validateConfigured();
}
-
-
+
+
/**
* Helper method to check to see if a websphere EBJ1.1 jar needs to be
rebuilt using
* ejbdeploy. Called from writeJar it sees if the "Bean" classes are
the only thing that needs
@@ -644,198 +644,198 @@
*/
protected boolean isRebuildRequired(File genericJarFile, File
websphereJarFile)
{
- boolean rebuild = false;
-
- JarFile genericJar = null;
- JarFile wasJar = null;
- File newwasJarFile = null;
- JarOutputStream newJarStream = null;
-
- try
- {
- log("Checking if websphere Jar needs to be rebuilt for jar " +
websphereJarFile.getName(),
- Project.MSG_VERBOSE);
- // Only go forward if the generic and the websphere file both
exist
- if (genericJarFile.exists() && genericJarFile.isFile()
- && websphereJarFile.exists() && websphereJarFile.isFile())
- {
- //open jar files
- genericJar = new JarFile(genericJarFile);
- wasJar = new JarFile(websphereJarFile);
-
- Hashtable genericEntries = new Hashtable();
- Hashtable wasEntries = new Hashtable();
- Hashtable replaceEntries = new Hashtable();
-
- //get the list of generic jar entries
- for (Enumeration e = genericJar.entries();
e.hasMoreElements();)
- {
- JarEntry je = (JarEntry)e.nextElement();
- genericEntries.put(je.getName().replace('\\',
'/'), je);
- }
- //get the list of websphere jar entries
- for (Enumeration e = wasJar.entries() ;
e.hasMoreElements();)
- {
- JarEntry je = (JarEntry)e.nextElement();
- wasEntries.put(je.getName(), je);
- }
-
- //Cycle Through generic and make sure its in
websphere
- ClassLoader genericLoader =
getClassLoaderFromJar(genericJarFile);
- for (Enumeration e = genericEntries.keys();
e.hasMoreElements();)
- {
- String filepath = (String)e.nextElement();
- if (wasEntries.containsKey(filepath)) //
File name/path match
- {
- // Check files see if same
- JarEntry genericEntry =
(JarEntry)genericEntries.get(filepath);
- JarEntry wasEntry =
(JarEntry)wasEntries.get(filepath);
- if ((genericEntry.getCrc() !=
wasEntry.getCrc()) || // Crc's Match
- (genericEntry.getSize() !=
wasEntry.getSize()) ) // Size Match
- {
- if
(genericEntry.getName().endsWith(".class"))
- {
- //File are different
see if its an object or an interface
- String classname =
genericEntry.getName().replace(File.separatorChar,'.');
- classname =
classname.substring(0,classname.lastIndexOf(".class"));
- Class genclass =
genericLoader.loadClass(classname);
- if
(genclass.isInterface())
- {
- //Interface
changed rebuild jar.
- log("Interface
" + genclass.getName() + " has changed",Project.MSG_VERBOSE);
- rebuild = true;
- break;
- }
- else
- {
- //Object class
Changed update it.
-
replaceEntries.put(filepath, genericEntry);
- }
- }
- else
- {
- // is it the manifest.
If so ignore it
- if
(!genericEntry.getName().equals("META-INF/MANIFEST.MF")) {
- //File other then
class changed rebuild
- log("Non class file
" + genericEntry.getName() + " has changed",Project.MSG_VERBOSE);
- rebuild = true;
- }
- break;
- }
- }
- }
- else // a file doesnt exist rebuild
- {
- log("File " + filepath + " not present
in websphere jar",Project.MSG_VERBOSE);
- rebuild = true;
- break;
- }
- }
-
- if (!rebuild)
- {
- log("No rebuild needed - updating
jar",Project.MSG_VERBOSE);
- newwasJarFile = new
File(websphereJarFile.getAbsolutePath() + ".temp");
- if (newwasJarFile.exists()) {
- newwasJarFile.delete();
- }
-
- newJarStream = new JarOutputStream(new
FileOutputStream(newwasJarFile));
- newJarStream.setLevel(0);
-
- //Copy files from old websphere jar
- for (Enumeration e = wasEntries.elements() ;
e.hasMoreElements();)
- {
- byte[] buffer = new byte[1024];
- int bytesRead;
- InputStream is;
- JarEntry je = (JarEntry)e.nextElement();
- if (je.getCompressedSize() == -1 ||
- je.getCompressedSize() ==
je.getSize()) {
- newJarStream.setLevel(0);
- }
- else {
- newJarStream.setLevel(9);
- }
-
- // Update with changed Bean class
- if
(replaceEntries.containsKey(je.getName()))
- {
- log("Updating Bean class from
generic Jar " + je.getName(),
- Project.MSG_VERBOSE);
- // Use the entry from the
generic jar
- je =
(JarEntry)replaceEntries.get(je.getName());
- is =
genericJar.getInputStream(je);
- }
- else //use fle from original websphere
jar
- {
- is = wasJar.getInputStream(je);
- }
- newJarStream.putNextEntry(new
JarEntry(je.getName()));
-
- while ((bytesRead = is.read(buffer)) !=
-1)
- {
-
newJarStream.write(buffer,0,bytesRead);
- }
- is.close();
- }
- }
- else
- {
- log("websphere Jar rebuild needed due to
changed interface or XML",Project.MSG_VERBOSE);
- }
- }
- else
- {
- rebuild = true;
- }
- }
- catch(ClassNotFoundException cnfe)
- {
- String cnfmsg = "ClassNotFoundException while processing
ejb-jar file"
- + ". Details: "
- + cnfe.getMessage();
- throw new BuildException(cnfmsg, cnfe);
- }
- catch(IOException ioe) {
- String msg = "IOException while processing ejb-jar file "
- + ". Details: "
- + ioe.getMessage();
- throw new BuildException(msg, ioe);
- }
- finally {
- // need to close files and perhaps rename output
- if (genericJar != null) {
- try {
- genericJar.close();
- }
- catch (IOException closeException) {}
- }
-
- if (wasJar != null) {
- try {
- wasJar.close();
- }
- catch (IOException closeException) {}
- }
-
- if (newJarStream != null) {
- try {
- newJarStream.close();
- }
- catch (IOException closeException) {}
-
- websphereJarFile.delete();
- newwasJarFile.renameTo(websphereJarFile);
- if (!websphereJarFile.exists()) {
- rebuild = true;
- }
- }
- }
-
- return rebuild;
+ boolean rebuild = false;
+
+ JarFile genericJar = null;
+ JarFile wasJar = null;
+ File newwasJarFile = null;
+ JarOutputStream newJarStream = null;
+
+ try
+ {
+ log("Checking if websphere Jar needs to be rebuilt for jar "
+ websphereJarFile.getName(),
+ Project.MSG_VERBOSE);
+ // Only go forward if the generic and the websphere file
both exist
+ if (genericJarFile.exists() && genericJarFile.isFile()
+ && websphereJarFile.exists() &&
websphereJarFile.isFile())
+ {
+ //open jar files
+ genericJar = new JarFile(genericJarFile);
+ wasJar = new JarFile(websphereJarFile);
+
+ Hashtable genericEntries = new Hashtable();
+ Hashtable wasEntries = new Hashtable();
+ Hashtable replaceEntries = new Hashtable();
+
+ //get the list of generic jar entries
+ for (Enumeration e = genericJar.entries();
e.hasMoreElements();)
+ {
+ JarEntry je = (JarEntry)e.nextElement();
+
genericEntries.put(je.getName().replace('\\', '/'), je);
+ }
+ //get the list of websphere jar entries
+ for (Enumeration e = wasJar.entries() ;
e.hasMoreElements();)
+ {
+ JarEntry je = (JarEntry)e.nextElement();
+ wasEntries.put(je.getName(), je);
+ }
+
+ //Cycle Through generic and make sure its in
websphere
+ ClassLoader genericLoader =
getClassLoaderFromJar(genericJarFile);
+ for (Enumeration e = genericEntries.keys();
e.hasMoreElements();)
+ {
+ String filepath = (String)e.nextElement();
+ if (wasEntries.containsKey(filepath)) //
File name/path match
+ {
+ // Check files see if same
+ JarEntry genericEntry =
(JarEntry)genericEntries.get(filepath);
+ JarEntry wasEntry =
(JarEntry)wasEntries.get(filepath);
+ if ((genericEntry.getCrc() !=
wasEntry.getCrc()) || // Crc's Match
+ (genericEntry.getSize() !=
wasEntry.getSize()) ) // Size Match
+ {
+ if
(genericEntry.getName().endsWith(".class"))
+ {
+ //File are different
see if its an object or an interface
+ String classname =
genericEntry.getName().replace(File.separatorChar,'.');
+ classname =
classname.substring(0,classname.lastIndexOf(".class"));
+ Class genclass =
genericLoader.loadClass(classname);
+ if
(genclass.isInterface())
+ {
+ //Interface
changed rebuild jar.
+
log("Interface " + genclass.getName() + " has changed",Project.MSG_VERBOSE);
+ rebuild =
true;
+ break;
+ }
+ else
+ {
+ //Object
class Changed update it.
+
replaceEntries.put(filepath, genericEntry);
+ }
+ }
+ else
+ {
+ // is it the
manifest. If so ignore it
+ if
(!genericEntry.getName().equals("META-INF/MANIFEST.MF")) {
+ //File other
then class changed rebuild
+ log("Non class
file " + genericEntry.getName() + " has changed",Project.MSG_VERBOSE);
+ rebuild = true;
+ }
+ break;
+ }
+ }
+ }
+ else // a file doesnt exist rebuild
+ {
+ log("File " + filepath + " not
present in websphere jar",Project.MSG_VERBOSE);
+ rebuild = true;
+ break;
+ }
+ }
+
+ if (!rebuild)
+ {
+ log("No rebuild needed - updating
jar",Project.MSG_VERBOSE);
+ newwasJarFile = new
File(websphereJarFile.getAbsolutePath() + ".temp");
+ if (newwasJarFile.exists()) {
+ newwasJarFile.delete();
+ }
+
+ newJarStream = new JarOutputStream(new
FileOutputStream(newwasJarFile));
+ newJarStream.setLevel(0);
+
+ //Copy files from old websphere jar
+ for (Enumeration e = wasEntries.elements() ;
e.hasMoreElements();)
+ {
+ byte[] buffer = new byte[1024];
+ int bytesRead;
+ InputStream is;
+ JarEntry je =
(JarEntry)e.nextElement();
+ if (je.getCompressedSize() == -1 ||
+ je.getCompressedSize() ==
je.getSize()) {
+ newJarStream.setLevel(0);
+ }
+ else {
+ newJarStream.setLevel(9);
+ }
+
+ // Update with changed Bean class
+ if
(replaceEntries.containsKey(je.getName()))
+ {
+ log("Updating Bean class
from generic Jar " + je.getName(),
+ Project.MSG_VERBOSE);
+ // Use the entry from the
generic jar
+ je =
(JarEntry)replaceEntries.get(je.getName());
+ is =
genericJar.getInputStream(je);
+ }
+ else //use fle from original
websphere jar
+ {
+ is =
wasJar.getInputStream(je);
+ }
+ newJarStream.putNextEntry(new
JarEntry(je.getName()));
+
+ while ((bytesRead = is.read(buffer))
!= -1)
+ {
+
newJarStream.write(buffer,0,bytesRead);
+ }
+ is.close();
+ }
+ }
+ else
+ {
+ log("websphere Jar rebuild needed due to
changed interface or XML",Project.MSG_VERBOSE);
+ }
+ }
+ else
+ {
+ rebuild = true;
+ }
+ }
+ catch(ClassNotFoundException cnfe)
+ {
+ String cnfmsg = "ClassNotFoundException while processing
ejb-jar file"
+ + ". Details: "
+ + cnfe.getMessage();
+ throw new BuildException(cnfmsg, cnfe);
+ }
+ catch(IOException ioe) {
+ String msg = "IOException while processing ejb-jar file "
+ + ". Details: "
+ + ioe.getMessage();
+ throw new BuildException(msg, ioe);
+ }
+ finally {
+ // need to close files and perhaps rename output
+ if (genericJar != null) {
+ try {
+ genericJar.close();
+ }
+ catch (IOException closeException) {}
+ }
+
+ if (wasJar != null) {
+ try {
+ wasJar.close();
+ }
+ catch (IOException closeException) {}
+ }
+
+ if (newJarStream != null) {
+ try {
+ newJarStream.close();
+ }
+ catch (IOException closeException) {}
+
+ websphereJarFile.delete();
+ newwasJarFile.renameTo(websphereJarFile);
+ if (!websphereJarFile.exists()) {
+ rebuild = true;
+ }
+ }
+ }
+
+ return rebuild;
}
-
+
/**
* Helper method invoked by isRebuildRequired to get a ClassLoader for
* a Jar File passed to it.
@@ -844,14 +844,14 @@
*/
protected ClassLoader getClassLoaderFromJar(File classjar) throws
IOException
{
- Path lookupPath = new Path(getTask().getProject());
- lookupPath.setLocation(classjar);
-
- Path classpath = getCombinedClasspath();
- if (classpath != null) {
- lookupPath.append(classpath);
- }
-
- return new AntClassLoader(getTask().getProject(), lookupPath);
+ Path lookupPath = new Path(getTask().getProject());
+ lookupPath.setLocation(classjar);
+
+ Path classpath = getCombinedClasspath();
+ if (classpath != null) {
+ lookupPath.append(classpath);
+ }
+
+ return new AntClassLoader(getTask().getProject(), lookupPath);
}
}
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>