cvs commit: jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/util ExtensionValidator.java
remm2004/04/16 04:01:11 Modified:catalina/src/share/org/apache/catalina/util ExtensionValidator.java Log: - Avoid NPE if there are no extensions. Revision ChangesPath 1.12 +2 -6 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/util/ExtensionValidator.java Index: ExtensionValidator.java === RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/util/ExtensionValidator.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- ExtensionValidator.java 10 Apr 2004 23:39:40 - 1.11 +++ ExtensionValidator.java 16 Apr 2004 11:01:11 - 1.12 @@ -63,7 +63,7 @@ StringManager.getManager(org.apache.catalina.util); private static HashMap containerAvailableExtensions = null; -private static ArrayList containerManifestResources = null; +private static ArrayList containerManifestResources = new ArrayList(); private static ResourceBundle messages = null; @@ -209,16 +209,12 @@ * @param jarFile The system JAR whose manifest to add */ public static void addSystemResource(File jarFile) throws IOException { - Manifest manifest = getManifest(new FileInputStream(jarFile)); if (manifest != null) { ManifestResource mre = new ManifestResource(jarFile.getAbsolutePath(), manifest, ManifestResource.SYSTEM); -if (containerManifestResources == null) { -containerManifestResources = new ArrayList(); -} containerManifestResources.add(mre); } } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/util ExtensionValidator.java
remm2004/04/10 16:39:40 Modified:catalina/src/share/org/apache/catalina/util ExtensionValidator.java Log: - Remove the hadcoding of the extension validator. - I think all the JARs from the common and shared CLs should be added to it. Revision ChangesPath 1.11 +55 -43 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/util/ExtensionValidator.java Index: ExtensionValidator.java === RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/util/ExtensionValidator.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- ExtensionValidator.java 5 Apr 2004 20:32:34 - 1.10 +++ ExtensionValidator.java 10 Apr 2004 23:39:40 - 1.11 @@ -102,30 +102,9 @@ } } -// get the files in the extensions directory -String extensionsDir = System.getProperty(java.ext.dirs); -if (extensionsDir != null) { -StringTokenizer extensionsTok -= new StringTokenizer(extensionsDir, File.pathSeparator); -while (extensionsTok.hasMoreTokens()) { -File targetDir = new File(extensionsTok.nextToken()); -if (!targetDir.exists() || !targetDir.isDirectory()) { -continue; -} -File[] files = targetDir.listFiles(); -for (int i = 0; i files.length; i++) { -if (files[i].getName().toLowerCase().endsWith(.jar)) { -try { -addSystemResource(files[i]); -} catch (IOException e) { -log.error -(sm.getString - (extensionValidator.failload, files[i]), e); -} -} -} -} -} +// add specified folders to the list +addFolderList(java.ext.dirs); +addFolderList(catalina.ext.dirs); } @@ -223,6 +202,28 @@ } +/** + * Checks to see if the given system JAR file contains a MANIFEST, and adds + * it to the container's manifest resources. + * + * @param jarFile The system JAR whose manifest to add + */ +public static void addSystemResource(File jarFile) throws IOException { + +Manifest manifest = getManifest(new FileInputStream(jarFile)); +if (manifest != null) { +ManifestResource mre += new ManifestResource(jarFile.getAbsolutePath(), + manifest, + ManifestResource.SYSTEM); +if (containerManifestResources == null) { +containerManifestResources = new ArrayList(); +} +containerManifestResources.add(mre); +} +} + + // Private Methods @@ -384,28 +385,39 @@ return manifest; } - -/* - * Checks to see if the given system JAR file contains a MANIFEST, and adds - * it to the container's manifest resources. - * - * @param jarFile The system JAR whose manifest to add + + +/** + * Add the JARs specified to the extension list. */ -private static void addSystemResource(File jarFile) throws IOException { +private static void addFolderList(String property) { -Manifest manifest = getManifest(new FileInputStream(jarFile)); -if (manifest != null) { -ManifestResource mre -= new ManifestResource(jarFile.getAbsolutePath(), - manifest, - ManifestResource.SYSTEM); -if (containerManifestResources == null) { -containerManifestResources = new ArrayList(); +// get the files in the extensions directory +String extensionsDir = System.getProperty(property); +if (extensionsDir != null) { +StringTokenizer extensionsTok += new StringTokenizer(extensionsDir, File.pathSeparator); +while (extensionsTok.hasMoreTokens()) { +File targetDir = new File(extensionsTok.nextToken()); +if (!targetDir.exists() || !targetDir.isDirectory()) { +continue; +} +File[] files = targetDir.listFiles(); +for (int i = 0; i files.length; i++) { +if (files[i].getName().toLowerCase().endsWith(.jar)) { +try { +
cvs commit: jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/util ExtensionValidator.java LocalStrings.properties
remm2004/04/05 13:32:34 Modified:catalina/src/share/org/apache/catalina/util ExtensionValidator.java LocalStrings.properties Log: - Refactor the Extension validator without using a singleton pattern (since all the methods are static, and getInstance never gets called inside Tomcat). This fixes a NPE I ran into. Revision ChangesPath 1.10 +22 -24 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/util/ExtensionValidator.java Index: ExtensionValidator.java === RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/util/ExtensionValidator.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- ExtensionValidator.java 27 Feb 2004 14:58:50 - 1.9 +++ ExtensionValidator.java 5 Apr 2004 20:32:34 - 1.10 @@ -62,28 +62,23 @@ private static StringManager sm = StringManager.getManager(org.apache.catalina.util); -private static ExtensionValidator validator = null; private static HashMap containerAvailableExtensions = null; private static ArrayList containerManifestResources = null; private static ResourceBundle messages = null; -// --- Constructors +// - Static Initializer /** - * Access to this class can only be made through the factory method - * getInstance() - * - * This private constructor loads the container level extensions that are + * This static initializer loads the container level extensions that are * available to all web applications. This method scans all extension * directories available via the java.ext.dirs System property. * * The System Class-Path is also scanned for jar files that may contain - * available extensions. The system extensions are loaded only the - * first time an instance of the ExtensionValidator is created. + * available extensions. */ -private ExtensionValidator() throws IOException { +static { // check for container level optional packages String systemClasspath = System.getProperty(java.class.path); @@ -97,7 +92,12 @@ if (classpathItem.toLowerCase().endsWith(.jar)) { File item = new File(classpathItem); if (item.exists()) { -addSystemResource(item); +try { +addSystemResource(item); +} catch (IOException e) { +log.error(sm.getString + (extensionValidator.failload, item), e); +} } } } @@ -115,11 +115,18 @@ File[] files = targetDir.listFiles(); for (int i = 0; i files.length; i++) { if (files[i].getName().toLowerCase().endsWith(.jar)) { -addSystemResource(files[i]); +try { +addSystemResource(files[i]); +} catch (IOException e) { +log.error +(sm.getString + (extensionValidator.failload, files[i]), e); +} } } } } + } @@ -214,19 +221,10 @@ return validateManifestResources(appName, appManifestResources); } - -/** - * Return an instance of the ExtensionValidator. - * The ExtensionValidator is a singleton. - */ -public static ExtensionValidator getInstance() throws IOException { -if (validator == null) { -validator = new ExtensionValidator(); -} -return validator; -} - + + // Private Methods + /** * Validates a codeArrayList/code of codeManifestResource/code 1.5 +1 -0 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/util/LocalStrings.properties Index: LocalStrings.properties === RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/util/LocalStrings.properties,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- LocalStrings.properties 24 Sep 2002 15:52:39 - 1.4 +++ LocalStrings.properties 5 Apr 2004 20:32:34 - 1.5 @@ -6,5 +6,6 @@ extensionValidator.web-application-manifest=Web
cvs commit: jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/util ExtensionValidator.java
remm2003/08/02 10:40:31 Modified:catalina/src/share/org/apache/catalina/util ExtensionValidator.java Log: - Tomcat will now ignore a non existent classpath JAR. Revision ChangesPath 1.7 +17 -8 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/util/ExtensionValidator.java Index: ExtensionValidator.java === RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/util/ExtensionValidator.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- ExtensionValidator.java 31 Jul 2003 20:56:25 - 1.6 +++ ExtensionValidator.java 2 Aug 2003 17:40:30 - 1.7 @@ -119,8 +119,12 @@ private static HashMap containerAvailableExtensions = null; private static ArrayList containerManifestResources = null; private static ResourceBundle messages = null; - -/* + + +// --- Constructors + + +/** * Access to this class can only be made through the factory method * getInstance() * @@ -144,7 +148,10 @@ while (strTok.hasMoreTokens()) { String classpathItem = strTok.nextToken(); if (classpathItem.toLowerCase().endsWith(.jar)) { -addSystemResource(new File(classpathItem)); +File item = new File(classpathItem); +if (item.exists()) { +addSystemResource(item); +} } } @@ -168,8 +175,10 @@ } } + // - Public Methods - + + /** * Runtime validation of a Web Applicaiton. * - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/util ExtensionValidator.java ManifestResource.java
luehe 2003/07/31 13:56:25 Modified:catalina/src/share/org/apache/catalina/core StandardContext.java catalina/src/share/org/apache/catalina/util ExtensionValidator.java ManifestResource.java Log: More clean up - Close JarInputStream after reading manifest - Leverage existing StringManager class for localization - Leverage commons-logging Revision ChangesPath 1.77 +10 -4 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/StandardContext.java Index: StandardContext.java === RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/StandardContext.java,v retrieving revision 1.76 retrieving revision 1.77 diff -u -r1.76 -r1.77 --- StandardContext.java 29 Jul 2003 15:55:15 - 1.76 +++ StandardContext.java 31 Jul 2003 20:56:25 - 1.77 @@ -3964,9 +3964,15 @@ postWorkDirectory(); // Validate required extensions -ExtensionValidator validator = ExtensionValidator.getInstance(); -boolean dependencyCheck = validator.validateApplication( - getResources(), this); +boolean dependencyCheck = true; +try { +ExtensionValidator validator = ExtensionValidator.getInstance(); +dependencyCheck = validator.validateApplication(getResources(), +this); +} catch (IOException ioe) { +dependencyCheck = false; +} + if (!dependencyCheck) { // do not make application available if depency check fails log.error( Error in dependencyCheck); 1.6 +104 -127 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/util/ExtensionValidator.java Index: ExtensionValidator.java === RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/util/ExtensionValidator.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- ExtensionValidator.java 30 Jul 2003 22:29:23 - 1.5 +++ ExtensionValidator.java 31 Jul 2003 20:56:25 - 1.6 @@ -73,9 +73,11 @@ import java.io.File; import java.io.FileInputStream; import java.io.InputStream; +import java.io.IOException; import java.util.jar.JarInputStream; import java.util.jar.Manifest; import java.util.jar.Attributes; +import java.util.NoSuchElementException; import org.apache.catalina.core.StandardContext; import org.apache.catalina.Logger; @@ -84,17 +86,18 @@ // JNDI Imports import javax.naming.NamingEnumeration; -import javax.naming.directory.DirContext; +import javax.naming.NamingException; import javax.naming.Binding; +import javax.naming.directory.DirContext; /** - * Ensures that all extension dependies are resolved for a WEB application - * are met. This class builds a master list of extensions available to an - * applicaiton and then validates those extensions. + * Ensures that all extension dependies are resolved for a WEB application + * are met. This class builds a master list of extensions available to an + * applicaiton and then validates those extensions. * - * See http://java.sun.com/j2se/1.4/docs/guide/extensions/spec.html for - * a detailed explanation of the extension mechanism in Java. + * See http://java.sun.com/j2se/1.4/docs/guide/extensions/spec.html for + * a detailed explanation of the extension mechanism in Java. * * @author Greg Murray * @author Justyna Horwat @@ -103,8 +106,14 @@ */ public final class ExtensionValidator { -// - Properties +private static org.apache.commons.logging.Log log= +org.apache.commons.logging.LogFactory.getLog(ExtensionValidator.class); +/** + * The string resources for this package. + */ +private static StringManager sm = +StringManager.getManager(org.apache.catalina.util); private static ExtensionValidator validator = null; private static HashMap containerAvailableExtensions = null; @@ -123,10 +132,10 @@ * available extensions. The system extensions are loaded only the * first time an instance of the ExtensionValidator is created. */ -private ExtensionValidator() { +private ExtensionValidator() throws IOException { // check for container level optional packages -String systemClasspath = System.getProperties().getProperty(java.class.path); +String systemClasspath = System.getProperty(java.class.path); StringTokenizer
cvs commit: jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/util ExtensionValidator.java ManifestResource.java
luehe 2003/07/30 11:48:18 Modified:catalina/src/share/org/apache/catalina/util ExtensionValidator.java ManifestResource.java Log: Fixed NPE. Available and required extensions are now consistently NULL if not present. Previous code was inconsistent, assuming empty HashMap/ArrayList if no available/required extensions were present, but actually never allocating a HashMap/ArrayList in that case. Allocate HashMap/ArrayList objects only when needed. Revision ChangesPath 1.4 +113 -104 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/util/ExtensionValidator.java Index: ExtensionValidator.java === RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/util/ExtensionValidator.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- ExtensionValidator.java 30 Aug 2002 18:41:26 - 1.3 +++ ExtensionValidator.java 30 Jul 2003 18:48:18 - 1.4 @@ -176,22 +176,21 @@ // - Public Methods /** - * Runtime validation of a Web Applicaiton. + * Runtime validation of a Web Applicaiton. * - * This method uses JNDI to look up the resources located under a - * codeDirContext/code. It locates Web Application MANIFEST.MF - * file in the /META-INF/ directory of the application and all - * MANIFEST.MF files in each JAR file located in the WEB-INF/lib - * directory and creates an codeArrayList/code of - * codeManifestResorcecode objects. These objects are then passed - * to the validateManifestResources method for validation. - * - * @param DirContext The JNDI root of the Web Application - * @param StandardContext The context from which the Logger and path - * to the application - * - * @return true if all required extensions satisfied + * This method uses JNDI to look up the resources located under a + * codeDirContext/code. It locates Web Application MANIFEST.MF + * file in the /META-INF/ directory of the application and all + * MANIFEST.MF files in each JAR file located in the WEB-INF/lib + * directory and creates an codeArrayList/code of + * codeManifestResorcecode objects. These objects are then passed + * to the validateManifestResources method for validation. + * + * @param dirContext The JNDI root of the Web Application + * @param context The context from which the Logger and path to the + *application * + * @return true if all required extensions satisfied */ public static synchronized boolean validateApplication( DirContext dirContext, @@ -203,7 +202,7 @@ // If the application context is null it does not exist and // therefore is not valid if (dirContext == null) return false; -// Find the Mainfest for the Web Applicaiton +// Find the Manifest for the Web Applicaiton try { NamingEnumeration wne = null; wne = dirContext.listBindings(/META-INF/); @@ -254,12 +253,13 @@ // Jump out of the check for this application because it // has no resources } -return validateManifestResources(appName,appManifestResources, logger); +return validateManifestResources(appName, appManifestResources, + logger); } /** - * Return an instance of the ExtensionValidator. - * The ExtensionValidator is a singleton. + * Return an instance of the ExtensionValidator. + * The ExtensionValidator is a singleton. */ public static ExtensionValidator getInstance() { if (validator == null) { @@ -283,86 +283,90 @@ * This method should also provide static validation of a Web Applicaiton * if provided with the necessary parameters. * - * @param String The name of the Application that will appear in the - * error messages - * @param ArrayList A list of codeManifestResource/code objects + * @param appName The name of the Application that will appear in the + *error messages + * @param resources A list of codeManifestResource/code objects * to be validated. - * @param Logger A logger to which failure messages are logged. + * @param logger A logger to which failure messages are logged. * * @return true if manifest resource file requirements are met - * */ private static boolean
cvs commit: jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/util ExtensionValidator.java ManifestResource.java
luehe 2003/07/30 15:29:23 Modified:catalina/src/share/org/apache/catalina/util ExtensionValidator.java ManifestResource.java Log: More clean up and bug fix (system resources were identified but then ignored when checking if an app's dependencies could be resolved) Revision ChangesPath 1.5 +91 -98 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/util/ExtensionValidator.java Index: ExtensionValidator.java === RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/util/ExtensionValidator.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- ExtensionValidator.java 30 Jul 2003 18:48:18 - 1.4 +++ ExtensionValidator.java 30 Jul 2003 22:29:23 - 1.5 @@ -117,56 +117,42 @@ * * This private constructor loads the container level extensions that are * available to all web applications. This method scans all extension - * directories available to via the java.ext.dirs System property. + * directories available via the java.ext.dirs System property. * * The System Class-Path is also scanned for jar files that may contain * available extensions. The system extensions are loaded only the * first time an instance of the ExtensionValidator is created. */ private ExtensionValidator() { - -// load the container level extensions -containerManifestResources = new ArrayList(); + // check for container level optional packages -String systemClasspath = System.getProperties(). - getProperty(java.class.path); +String systemClasspath = System.getProperties().getProperty(java.class.path); StringTokenizer strTok = new StringTokenizer(systemClasspath, File.pathSeparator); -ArrayList items = new ArrayList(); + // build a list of jar files in the classpath while (strTok.hasMoreTokens()) { String classpathItem = strTok.nextToken(); if (classpathItem.toLowerCase().endsWith(.jar)) { -items.add(classpathItem); +addSystemResource(new File(classpathItem)); } } + // get the files in the extensions directory -String extensionsDir = System.getProperties(). -getProperty(java.ext.dirs); -StringTokenizer extensionsTok = null; +String extensionsDir = System.getProperties().getProperty(java.ext.dirs); if (extensionsDir != null) { -extensionsTok = new StringTokenizer(extensionsDir, - File.pathSeparator); -} -while ((extensionsTok != null) extensionsTok.hasMoreTokens()) { -String targetDir = extensionsTok.nextToken(); -// check if the directory exits -if (((new File(targetDir)).exists()) -(new File(targetDir)).isDirectory()) { -// get a file list -File[] files = (new File(targetDir)).listFiles(); -// see if any file is a jar file -for (int loop = 0; loop files.length; loop++) { -if (files[loop].getName().toLowerCase().endsWith(.jar)) { -items.add(files[loop].getAbsolutePath()); -Manifest manifest = getManifest(files[loop]); -if (manifest != null) { -ManifestResource mre = new ManifestResource -(files[loop].getAbsolutePath(), manifest, - ManifestResource.SYSTEM); -containerManifestResources.add(mre); -} +StringTokenizer extensionsTok += new StringTokenizer(extensionsDir, File.pathSeparator); +while (extensionsTok.hasMoreTokens()) { +File targetDir = new File(extensionsTok.nextToken()); +if (!targetDir.exists() || !targetDir.isDirectory()) { +continue; +} +File[] files = targetDir.listFiles(); +for (int i = 0; i files.length; i++) { +if (files[i].getName().toLowerCase().endsWith(.jar)) { +addSystemResource(files[i]); } } } @@ -226,29 +212,30 @@ } // Locate the Manifests for all necessary Jar Files in the Application ArrayList jarEntries = new ArrayList(); -NamingEnumeration ne =
cvs commit: jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/util ExtensionValidator.java
horwat 2002/08/30 11:41:27 Modified:catalina/src/share/org/apache/catalina/util ExtensionValidator.java Log: If a META-INF directory exists without a manifest file, handle condition gracefully. Revision ChangesPath 1.3 +6 -4 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/util/ExtensionValidator.java Index: ExtensionValidator.java === RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/util/ExtensionValidator.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- ExtensionValidator.java 29 Aug 2002 23:56:12 - 1.2 +++ ExtensionValidator.java 30 Aug 2002 18:41:26 - 1.3 @@ -220,6 +220,8 @@ } } catch (javax.naming.NamingException nex) { // Application does not contain a MANIFEST.MF file +} catch (java.util.NoSuchElementException nse) { +// Application does not contain a MANIFEST.MF file } catch (java.io.IOException iox) { // Unable to load MANIFEST.MF file } -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/util ExtensionValidator.java
horwat 2002/08/29 16:56:12 Modified:catalina/src/share/org/apache/catalina/util ExtensionValidator.java Log: Add more robust handling of invalid manifests. If a manifest does not end with a newline as defined by the Manifest Specification (http://java.sun.com/j2se/1.4/docs/guide/jar/jar.html#JAR%20Manifest) then JarInputStream.getManifest() returns a null value. Revision ChangesPath 1.2 +10 -8 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/util/ExtensionValidator.java Index: ExtensionValidator.java === RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/util/ExtensionValidator.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- ExtensionValidator.java 24 Aug 2002 02:27:28 - 1.1 +++ ExtensionValidator.java 29 Aug 2002 23:56:12 - 1.2 @@ -237,10 +237,12 @@ InputStream in = resource.streamContent(); JarInputStream jin = new JarInputStream(in); Manifest jmanifest = jin.getManifest(); -ManifestResource mre = new ManifestResource -(binding.getName(), jmanifest, -ManifestResource.APPLICATION); -appManifestResources.add(mre); +if (jmanifest != null) { +ManifestResource mre = new ManifestResource +(binding.getName(), jmanifest, +ManifestResource.APPLICATION); +appManifestResources.add(mre); +} } catch (java.io.IOException iox) { // do not do anything... go to the next entry } -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]