diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/DescriptorHandler.java b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/DescriptorHandler.java index cc0dadddc..ba6da6cbe 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/DescriptorHandler.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/DescriptorHandler.java @@ -115,13 +115,20 @@ public class DescriptorHandler extends org.xml.sax.HandlerBase { this.srcDir = srcDir; } - - public void registerFileDTD(String publicId, File dtdFile) { - fileDTDs.put(publicId, dtdFile); - } - - public void registerResourceDTD(String publicId, String resourceName) { - resourceDTDs.put(publicId, resourceName); + public void registerDTD(String publicId, String location) { + if (location == null) { + return; + } + + File fileDTD = new File(location); + if (fileDTD.exists()) { + fileDTDs.put(publicId, fileDTD); + return; + } + + if (getClass().getResource(location) != null) { + resourceDTDs.put(publicId, location); + } } public InputSource resolveEntity(String publicId, String systemId) @@ -129,7 +136,7 @@ public class DescriptorHandler extends org.xml.sax.HandlerBase { { File dtdFile = (File) fileDTDs.get(publicId); - if (dtdFile != null && dtdFile.exists()) { + if (dtdFile != null) { try { return new InputSource(new FileInputStream(dtdFile)); } catch( FileNotFoundException ex ) { diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/EJBDeploymentTool.java b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/EJBDeploymentTool.java index f8a2e2260..660031171 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/EJBDeploymentTool.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/EJBDeploymentTool.java @@ -72,8 +72,7 @@ public interface EJBDeploymentTool { * @param supportFileSet a fileset containing all the files to be included in the * ` generated jarfile as support classes. */ - public void processDescriptor(String descriptorFilename, SAXParser saxParser, - FileSet supportFileSet) + public void processDescriptor(String descriptorFilename, SAXParser saxParser) throws BuildException; /** @@ -90,6 +89,5 @@ public interface EJBDeploymentTool { /** * Configure this tool for use in the ejbjar task. */ - public void configure(File srcDir, File descriptorDir, String basenameTerminator, - String baseJarName, boolean flatDestDir, Path classpath); + public void configure(EjbJar.Config config); } \ No newline at end of file diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/EjbJar.java b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/EjbJar.java index 7d1f45d49..5c5265a63 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/EjbJar.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/EjbJar.java @@ -102,33 +102,76 @@ import org.apache.tools.ant.types.*; * @author Tim Fennell */ public class EjbJar extends MatchingTask { + + static class DTDLocation { + private String publicId; + private String location; + + public void setPublicId(String publicId) { + this.publicId = publicId; + } + + public void setLocation(String location) { + this.location = location; + } + + public String getPublicId() { + return publicId; + } + + public String getLocation() { + return location; + } + } - /** Stores a handle to the directory under which to search for class files */ - private File srcDir; - - /** Stores a handle to the directory under which to search for deployment descriptors */ - private File descriptorDir; + /** + * A class which contains the configuration state of the ejbjar task. + * This state is passed to the deployment tools for configuration + */ + static class Config { + /** Stores a handle to the directory under which to search for class files */ + public File srcDir; - /** Stores a handle to the directory to put the Jar files in */ - private File destDir; + /** Stores a handle to the directory under which to search for deployment descriptors */ + public File descriptorDir; + + /** Instance variable that marks the end of the 'basename' */ + public String baseNameTerminator = "-"; - /** Stores a handle to the destination EJB Jar file */ - private String baseJarName; + /** Stores a handle to the destination EJB Jar file */ + public String baseJarName; - /** - * The classpath to use when loading classes - */ - private Path classpath; - - /** - * Instance variable that determines whether to use a package structure - * of a flat directory as the destination for the jar files. - */ - private boolean flatDestDir = false; + /** + * Instance variable that determines whether to use a package structure + * of a flat directory as the destination for the jar files. + */ + public boolean flatDestDir = false; + + /** + * The classpath to use when loading classes + */ + public Path classpath; - /** Instance variable that marks the end of the 'basename' */ - private String baseNameTerminator = "-"; + /** + * A Fileset of support classes + */ + public FileSet supportFileSet = null; + + /** + * The list of configured DTD locations + */ + public ArrayList dtdLocations = new ArrayList(); + }; + + private Config config = new Config(); + + /** Stores a handle to the directory to put the Jar files in. This is only used + by the generic deployment descriptor tool which is created if no other + deployment descriptor tools are provided. Normally each deployment tool + will specify the desitination dir itself. */ + private File destDir; + /** Instance variable that stores the suffix for the generated jarfile. */ private String genericJarSuffix = "-generic.jar"; @@ -137,11 +180,6 @@ public class EjbJar extends MatchingTask { */ private ArrayList deploymentTools = new ArrayList(); - /** - * A Fileset of support classes - */ - private FileSet supportClasses = null; - /** * Create a weblogic nested element used to configure a * deployment tool for Weblogic server. @@ -177,10 +215,21 @@ public class EjbJar extends MatchingTask { * @return the path to be configured. */ public Path createClasspath() { - if (classpath == null) { - classpath = new Path(project); + if (config.classpath == null) { + config.classpath = new Path(project); } - return classpath.createPath(); + return config.classpath.createPath(); + } + + /** + * Create a DTD location record. This stores the location of a DTD. The DTD is identified + * by its public Id. The location may either be a file location or a resource location. + */ + public DTDLocation createDTD() { + DTDLocation dtdLocation = new DTDLocation(); + config.dtdLocations.add(dtdLocation); + + return dtdLocation; } /** @@ -189,8 +238,8 @@ public class EjbJar extends MatchingTask { * @return a fileset which can be populated with support files. */ public FileSet createSupport() { - supportClasses = new FileSet(); - return supportClasses; + config.supportFileSet = new FileSet(); + return config.supportFileSet; } @@ -202,7 +251,7 @@ public class EjbJar extends MatchingTask { * @param inDir the source directory. */ public void setSrcdir(File inDir) { - this.srcDir = inDir; + config.srcDir = inDir; } /** @@ -216,7 +265,7 @@ public class EjbJar extends MatchingTask { * @param inDir the directory containing the deployment descriptors. */ public void setDescriptordir(File inDir) { - this.descriptorDir = inDir; + config.descriptorDir = inDir; } /** @@ -227,7 +276,7 @@ public class EjbJar extends MatchingTask { * the EJB */ public void setBasejarname(String inValue) { - this.baseJarName = inValue; + config.baseJarName = inValue; } /** @@ -252,7 +301,7 @@ public class EjbJar extends MatchingTask { * @param classpath the classpath to use. */ public void setClasspath(Path classpath) { - this.classpath = classpath; + config.classpath = classpath; } /** @@ -268,7 +317,7 @@ public class EjbJar extends MatchingTask { * @param inValue the new value of the flatdestdir flag. */ public void setFlatdestdir(boolean inValue) { - this.flatDestDir = inValue; + config.flatDestDir = inValue; } /** @@ -295,9 +344,19 @@ public class EjbJar extends MatchingTask { * @param inValue a string which marks the end of the basename. */ public void setBasenameterminator(String inValue) { - this.baseNameTerminator = inValue; + config.baseNameTerminator = inValue; } + private void validateConfig() { + if (config.srcDir == null) { + throw new BuildException("The srcDir attribute must be specified"); + } + + if (config.descriptorDir == null) { + config.descriptorDir = config.srcDir; + } + } + /** * Invoked by Ant after the task is prepared, when it is ready to execute * this task. @@ -314,26 +373,19 @@ public class EjbJar extends MatchingTask { * that a major problem occurred within this task. */ public void execute() throws BuildException { - if (srcDir == null) { - throw new BuildException("The srcDir attribute must be specified"); - } - + validateConfig(); + if (deploymentTools.size() == 0) { GenericDeploymentTool genericTool = new GenericDeploymentTool(); - genericTool.setDestdir(destDir); genericTool.setTask(this); + genericTool.setDestdir(destDir); genericTool.setGenericJarSuffix(genericJarSuffix); deploymentTools.add(genericTool); } - File scanDir = descriptorDir; - if (scanDir == null) { - scanDir = srcDir; - } - for (Iterator i = deploymentTools.iterator(); i.hasNext(); ) { EJBDeploymentTool tool = (EJBDeploymentTool)i.next(); - tool.configure(srcDir, scanDir, baseNameTerminator, baseJarName, flatDestDir, classpath); + tool.configure(config); tool.validateConfigured(); } @@ -343,8 +395,8 @@ public class EjbJar extends MatchingTask { saxParserFactory.setValidating(true); SAXParser saxParser = saxParserFactory.newSAXParser(); - - DirectoryScanner ds = getDirectoryScanner(scanDir); + + DirectoryScanner ds = getDirectoryScanner(config.descriptorDir); ds.scan(); String[] files = ds.getIncludedFiles(); @@ -357,7 +409,7 @@ public class EjbJar extends MatchingTask { // process the deployment descriptor in each tool for (Iterator i = deploymentTools.iterator(); i.hasNext(); ) { EJBDeploymentTool tool = (EJBDeploymentTool)i.next(); - tool.processDescriptor(files[index], saxParser, supportClasses); + tool.processDescriptor(files[index], saxParser); } } } diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/GenericDeploymentTool.java b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/GenericDeploymentTool.java index 2249d18d5..ebbeb5716 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/GenericDeploymentTool.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/GenericDeploymentTool.java @@ -79,30 +79,20 @@ public class GenericDeploymentTool implements EJBDeploymentTool { protected static final String META_DIR = "META-INF/"; protected static final String EJB_DD = "ejb-jar.xml"; - /** Stores a handle to the directory of the source tree */ - private File srcDir; - - /** Stores a handle to the directory of the deployment descriptors */ - private File descriptorDir; + /** + * The configuration from the containing task. This config combined with the + * settings of the individual attributes here constitues the complete config for + * this deployment tool. + */ + private EjbJar.Config config; /** Stores a handle to the directory to put the Jar files in */ private File destDir; - /** Instance variable that stores the jar file name when not using the naming standard */ - private String baseJarName; - - /** The classpath to use with this deployment tool. */ + /** The classpath to use with this deployment tool. This is appended to + any paths from the ejbjar task itself.*/ private Path classpath; - /** - * Instance variable that determines whether to use a package structure - * of a flat directory as the destination for the jar files. - */ - private boolean flatDestDir = false; - - /** Instance variable that marks the end of the 'basename' */ - private String baseNameTerminator = "-"; - /** Instance variable that stores the suffix for the generated jarfile. */ private String genericJarSuffix = "-generic.jar"; @@ -157,37 +147,15 @@ public class GenericDeploymentTool implements EJBDeploymentTool { /** * Get the basename terminator. */ - protected String getBaseNameTerminator() { - return baseNameTerminator; + protected EjbJar.Config getConfig() { + return config; } - /** - * Get the base jar name. - */ - protected String getBaseJarName() { - return baseJarName; - } - - /** - * Get the source dir. - */ - protected File getSrcDir() { - return srcDir; - } - - /** - * Get the meta-inf dir. - * - */ - protected File getDescriptorDir() { - return descriptorDir; - } - /** * Returns true, if the meta-inf dir is being explicitly set, false otherwise. */ protected boolean usingBaseJarName() { - return baseJarName != null; + return config.baseJarName != null; } /** @@ -199,7 +167,7 @@ public class GenericDeploymentTool implements EJBDeploymentTool { } /** - * creates a nested classpath element. + * Add the classpath for the user classes */ public Path createClasspath() { if (classpath == null) { @@ -215,8 +183,22 @@ public class GenericDeploymentTool implements EJBDeploymentTool { this.classpath = classpath; } - protected Path getClasspath() { - return classpath; + /** + * Get the classpath by combining the one from the surrounding task, if any + * and the one from tis tool. + */ + protected Path getCombinedClasspath() { + Path combinedPath = classpath; + if (config.classpath != null) { + if (combinedPath == null) { + combinedPath = config.classpath; + } + else { + combinedPath.append(config.classpath); + } + } + + return combinedPath; } protected void log(String message, int level) { @@ -227,19 +209,9 @@ public class GenericDeploymentTool implements EJBDeploymentTool { /** * Configure this tool for use in the ejbjar task. */ - public void configure(File srcDir, File descriptorDir, String baseNameTerminator, - String baseJarName, boolean flatDestDir, Path classpath) { - this.srcDir = srcDir; - this.descriptorDir = descriptorDir; - this.baseJarName = baseJarName; - this.baseNameTerminator = baseNameTerminator; - this.flatDestDir = flatDestDir; - if (this.classpath != null) { - this.classpath.append(classpath); - } - else { - this.classpath = classpath; - } + public void configure(EjbJar.Config config) { + this.config = config; + classpathLoader = null; } @@ -301,28 +273,26 @@ public class GenericDeploymentTool implements EJBDeploymentTool { return new DescriptorHandler(srcDir); } - public void processDescriptor(String descriptorFileName, SAXParser saxParser, - FileSet supportFileSet) { + public void processDescriptor(String descriptorFileName, SAXParser saxParser) { FileInputStream descriptorStream = null; try { - DescriptorHandler handler = getDescriptorHandler(srcDir); + DescriptorHandler handler = getDescriptorHandler(config.srcDir); /* Parse the ejb deployment descriptor. While it may not * look like much, we use a SAXParser and an inner class to * get hold of all the classfile names for the descriptor. */ - descriptorStream = new FileInputStream(new File(getDescriptorDir(), descriptorFileName)); + descriptorStream = new FileInputStream(new File(config.descriptorDir, descriptorFileName)); saxParser.parse(new InputSource(descriptorStream), handler); Hashtable ejbFiles = handler.getFiles(); // add in support classes if any - if (supportFileSet != null) { + if (config.supportFileSet != null) { Project project = task.getProject(); - File supportBaseDir = supportFileSet.getDir(project); - - DirectoryScanner supportScanner = supportFileSet.getDirectoryScanner(project); + File supportBaseDir = config.supportFileSet.getDir(project); + DirectoryScanner supportScanner = config.supportFileSet.getDirectoryScanner(project); supportScanner.scan(); String[] supportFiles = supportScanner.getIncludedFiles(); for (int i = 0; i < supportFiles.length; ++i) { @@ -333,17 +303,17 @@ public class GenericDeploymentTool implements EJBDeploymentTool { String baseName = ""; // Work out what the base name is - if (baseJarName != null) { - baseName = baseJarName; + if (config.baseJarName != null) { + baseName = config.baseJarName; } else { int lastSeparatorIndex = descriptorFileName.lastIndexOf(File.separator); int endBaseName = -1; if (lastSeparatorIndex != -1) { - endBaseName = descriptorFileName.indexOf(baseNameTerminator, + endBaseName = descriptorFileName.indexOf(config.baseNameTerminator, lastSeparatorIndex); } else { - endBaseName = descriptorFileName.indexOf(baseNameTerminator); + endBaseName = descriptorFileName.indexOf(config.baseNameTerminator); } if (endBaseName != -1) { @@ -354,7 +324,7 @@ public class GenericDeploymentTool implements EJBDeploymentTool { // First the regular deployment descriptor ejbFiles.put(META_DIR + EJB_DD, - new File(getDescriptorDir(), descriptorFileName)); + new File(config.descriptorDir, descriptorFileName)); // now the vendor specific files, if any addVendorFiles(ejbFiles, baseName); @@ -364,7 +334,7 @@ public class GenericDeploymentTool implements EJBDeploymentTool { // Lastly create File object for the Jar files. If we are using // a flat destination dir, then we need to redefine baseName! - if (flatDestDir && baseName.length() != 0) { + if (config.flatDestDir && baseName.length() != 0) { int startName = baseName.lastIndexOf(File.separator); if (startName == -1) { startName = 0; @@ -510,7 +480,7 @@ public class GenericDeploymentTool implements EJBDeploymentTool { entryName = entryName.substring(0, entryName.lastIndexOf(entryFile.getName())-1) + File.separatorChar + innerfiles[i]; // link the file - entryFile = new File(srcDir, entryName); + entryFile = new File(config.srcDir, entryName); log("adding innerclass file '" + entryName + "'", Project.MSG_VERBOSE); @@ -597,7 +567,7 @@ public class GenericDeploymentTool implements EJBDeploymentTool { private void addInterface(Class theInterface, Hashtable checkEntries) { if (!theInterface.getName().startsWith("java")) // do not add system interfaces { - File interfaceFile = new File(srcDir.getAbsolutePath() + File interfaceFile = new File(config.srcDir.getAbsolutePath() + File.separatorChar + theInterface.getName().replace('.',File.separatorChar) + ".class" @@ -618,7 +588,7 @@ public class GenericDeploymentTool implements EJBDeploymentTool { if (!superClass.getName().startsWith("java")) { - File superClassFile = new File(srcDir.getAbsolutePath() + File superClassFile = new File(config.srcDir.getAbsolutePath() + File.separatorChar + superClass.getName().replace('.',File.separatorChar) + ".class"); @@ -650,12 +620,14 @@ public class GenericDeploymentTool implements EJBDeploymentTool { return classpathLoader; } - // only generate a URLClassLoader if we have a classpath - if (classpath == null) { + Path combinedClasspath = getCombinedClasspath(); + + // only generate a new ClassLoader if we have a classpath + if (combinedClasspath == null) { classpathLoader = getClass().getClassLoader(); } else { - classpathLoader = new AntClassLoader(getTask().getProject(), classpath); + classpathLoader = new AntClassLoader(getTask().getProject(), combinedClasspath); } return classpathLoader; diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WeblogicDeploymentTool.java b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WeblogicDeploymentTool.java index 3c5e721f7..2c7911f3d 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WeblogicDeploymentTool.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WeblogicDeploymentTool.java @@ -67,28 +67,36 @@ import org.apache.tools.ant.types.*; import org.apache.tools.ant.taskdefs.Java; public class WeblogicDeploymentTool extends GenericDeploymentTool { - public static final String PUBLICID_EJB + public static final String PUBLICID_EJB11 = "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN"; - public static final String PUBLICID_WEBLOGIC + public static final String PUBLICID_EJB20 + = "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN"; + + public static final String PUBLICID_WEBLOGIC_EJB = "-//BEA Systems, Inc.//DTD WebLogic 5.1.0 EJB//EN"; - protected static final String WL_DD = "weblogic-ejb-jar.xml"; - protected static final String WL_CMP_DD = "weblogic-cmp-rdbms-jar.xml"; - - protected static final String DEFAULT_EJB_DTD_LOCATION + protected static final String DEFAULT_WL51_EJB11_DTD_LOCATION = "/weblogic/ejb/deployment/xml/ejb-jar.dtd"; + protected static final String DEFAULT_WL60_EJB11_DTD_LOCATION + = "/weblogic/ejb20/dd/xml/ejb11-jar.dtd"; + protected static final String DEFAULT_WL60_EJB20_DTD_LOCATION + = "/weblogic/ejb20/dd/xml/ejb20-jar.dtd"; + protected static final String DEFAULT_WL_DTD_LOCATION = "/weblogic/ejb/deployment/xml/weblogic-ejb-jar.dtd"; + protected static final String WL_DD = "weblogic-ejb-jar.xml"; + protected static final String WL_CMP_DD = "weblogic-cmp-rdbms-jar.xml"; + /** Instance variable that stores the suffix for the weblogic jarfile. */ private String jarSuffix = ".jar"; /** Instance variable that stores the location of the weblogic DTD file. */ private String weblogicDTD; - /** Instance variable that stores the location of the generic EJB DTD file. */ - private String ejbDTD; - + /** 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; @@ -105,7 +113,20 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool { * Indicates if the old CMP location convention is to be used. */ private boolean oldCMP = true; - + + /** The classpath to the weblogic classes. */ + private Path wlClasspath; + + /** + * Get the classpath to the weblogic classpaths + */ + public Path createWLClasspath() { + if (wlClasspath == null) { + wlClasspath = new Path(getTask().getProject()); + } + return wlClasspath.createPath(); + } + /** * The compiler (switch -compiler) to use */ @@ -161,7 +182,7 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool { * @param inString the string to use as the DTD location. */ public void setWeblogicdtd(String inString) { - this.ejbDTD = inString; + setEJBdtd(inString); } /** @@ -179,7 +200,7 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool { * @param inString the string to use as the DTD location. */ public void setEJBdtd(String inString) { - this.ejbDTD = inString; + this.ejb11DTD = inString; } /** @@ -198,24 +219,21 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool { } - /** - * Register the location of the local resource copy of a DTD in a given - * handler. - */ - private void registerDTD(DescriptorHandler handler, - String publicId, String dtdLocation) { - File dtdFile = new File(dtdLocation); - if (dtdFile.exists()) { - handler.registerFileDTD(publicId, dtdFile); - } else { - handler.registerResourceDTD(publicId, dtdLocation); - } - } - protected DescriptorHandler getDescriptorHandler(File srcDir) { DescriptorHandler handler = new DescriptorHandler(srcDir); - registerDTD(handler, PUBLICID_EJB, - ejbDTD == null ? DEFAULT_EJB_DTD_LOCATION : ejbDTD); + // register all the DTDs, both the ones that are known and + // any supplied by the user + handler.registerDTD(PUBLICID_EJB11, DEFAULT_WL51_EJB11_DTD_LOCATION); + handler.registerDTD(PUBLICID_EJB11, DEFAULT_WL60_EJB11_DTD_LOCATION); + handler.registerDTD(PUBLICID_EJB11, ejb11DTD); + handler.registerDTD(PUBLICID_EJB20, DEFAULT_WL60_EJB20_DTD_LOCATION); + + + for (Iterator i = getConfig().dtdLocations.iterator(); i.hasNext();) { + EjbJar.DTDLocation dtdLocation = (EjbJar.DTDLocation)i.next(); + handler.registerDTD(dtdLocation.getPublicId(), dtdLocation.getLocation()); + } + return handler; } @@ -229,14 +247,14 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool { //trim the META_INF\ off of the file name String fileName = fileNameWithMETA.substring(META_DIR.length(), fileNameWithMETA.length() ); - File descriptorFile = new File(getDescriptorDir(), fileName); + File descriptorFile = new File(getConfig().descriptorDir, fileName); ejbFiles.put(fileNameWithMETA, descriptorFile); } } }; - registerDTD(handler, PUBLICID_WEBLOGIC, - weblogicDTD == null ? DEFAULT_WL_DTD_LOCATION : weblogicDTD); + handler.registerDTD(PUBLICID_WEBLOGIC_EJB, + weblogicDTD == null ? DEFAULT_WL_DTD_LOCATION : weblogicDTD); return handler; } @@ -245,9 +263,9 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool { * EJB Jar. */ protected void addVendorFiles(Hashtable ejbFiles, String baseName) { - String ddPrefix = (usingBaseJarName() ? "" : baseName + getBaseNameTerminator()); + String ddPrefix = (usingBaseJarName() ? "" : baseName + getConfig().baseNameTerminator); - File weblogicDD = new File(getDescriptorDir(), ddPrefix + WL_DD); + File weblogicDD = new File(getConfig().descriptorDir, ddPrefix + WL_DD); if (weblogicDD.exists()) { ejbFiles.put(META_DIR + WL_DD, @@ -264,7 +282,7 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool { log("Please adjust your weblogic descriptor and set oldCMP=\"false\" " + "to use the new CMP descriptor inclusion mechanism. ", Project.MSG_VERBOSE); // The the weblogic cmp deployment descriptor - File weblogicCMPDD = new File(getDescriptorDir(), ddPrefix + WL_CMP_DD); + File weblogicCMPDD = new File(getConfig().descriptorDir, ddPrefix + WL_CMP_DD); if (weblogicCMPDD.exists()) { ejbFiles.put(META_DIR + WL_CMP_DD, @@ -335,10 +353,15 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool { args += " -noexit " + sourceJar.getPath() + " " + destJar.getPath(); javaTask = (Java) getTask().getProject().createTask("java"); + javaTask.setTaskName("ejbc"); javaTask.setClassname("weblogic.ejbc"); Commandline.Argument arguments = javaTask.createArg(); arguments.setLine(args); - Path classpath = getClasspath(); + Path classpath = wlClasspath; + if (classpath == null) { + classpath = getCombinedClasspath(); + } + if (classpath != null) { javaTask.setClasspath(classpath); javaTask.setFork(true); @@ -603,7 +626,7 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool { Path lookupPath = new Path(getTask().getProject()); lookupPath.setLocation(classjar); - Path classpath = getClasspath(); + Path classpath = getCombinedClasspath(); if (classpath != null) { lookupPath.append(classpath); } diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WeblogicTOPLinkDeploymentTool.java b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WeblogicTOPLinkDeploymentTool.java index e0bcfc4bb..c647999b9 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WeblogicTOPLinkDeploymentTool.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WeblogicTOPLinkDeploymentTool.java @@ -108,7 +108,7 @@ public class WeblogicTOPLinkDeploymentTool extends WeblogicDeploymentTool { // Setup a naming standard here?. - File toplinkDD = new File(getDescriptorDir(), toplinkDescriptor); + File toplinkDD = new File(getConfig().descriptorDir, toplinkDescriptor); if (toplinkDD.exists()) { ejbFiles.put(META_DIR + toplinkDescriptor,