ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bode...@apache.org
Subject cvs commit: jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/ejb WebsphereDeploymentTool.java
Date Thu, 10 Jan 2002 14:28:55 GMT
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:ant-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:ant-dev-help@jakarta.apache.org>


Mime
View raw message