Return-Path: Delivered-To: apmail-jakarta-commons-dev-archive@www.apache.org Received: (qmail 51415 invoked from network); 19 Nov 2004 01:56:40 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur-2.apache.org with SMTP; 19 Nov 2004 01:56:40 -0000 Received: (qmail 60878 invoked by uid 500); 19 Nov 2004 01:56:37 -0000 Delivered-To: apmail-jakarta-commons-dev-archive@jakarta.apache.org Received: (qmail 60822 invoked by uid 500); 19 Nov 2004 01:56:37 -0000 Mailing-List: contact commons-dev-help@jakarta.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Help: List-Post: List-Id: "Jakarta Commons Developers List" Reply-To: "Jakarta Commons Developers List" Delivered-To: mailing list commons-dev@jakarta.apache.org Received: (qmail 60807 invoked by uid 500); 19 Nov 2004 01:56:37 -0000 Received: (qmail 60802 invoked by uid 99); 19 Nov 2004 01:56:36 -0000 X-ASF-Spam-Status: No, hits=-10.0 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [209.237.227.194] (HELO minotaur.apache.org) (209.237.227.194) by apache.org (qpsmtpd/0.28) with SMTP; Thu, 18 Nov 2004 17:56:32 -0800 Received: (qmail 51336 invoked by uid 1865); 19 Nov 2004 01:56:31 -0000 Date: 19 Nov 2004 01:56:31 -0000 Message-ID: <20041119015631.51333.qmail@minotaur.apache.org> From: ebourg@apache.org To: jakarta-commons-cvs@apache.org Subject: cvs commit: jakarta-commons/configuration/src/test/org/apache/commons/configuration TestConfigurationFactory.java X-Virus-Checked: Checked X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N ebourg 2004/11/18 17:56:30 Modified: configuration/xdocs changes.xml configuration/src/java/org/apache/commons/configuration ConfigurationUtils.java configuration/conf resources.jar configuration/src/test/org/apache/commons/configuration TestConfigurationFactory.java Log: ConfigurationUtils.locate() now checks if the URL based ressources exist. Revision Changes Path 1.70 +14 -9 jakarta-commons/configuration/xdocs/changes.xml Index: changes.xml =================================================================== RCS file: /home/cvs/jakarta-commons/configuration/xdocs/changes.xml,v retrieving revision 1.69 retrieving revision 1.70 diff -u -r1.69 -r1.70 --- changes.xml 14 Nov 2004 19:06:32 -0000 1.69 +++ changes.xml 19 Nov 2004 01:56:30 -0000 1.70 @@ -9,6 +9,20 @@ + ConfigurationUtils.locate() now checks if the URL based ressources exist. + This fixes a bug preventing configuration files from being found if + the configuration descriptor is in a JAR file (reported by Grant Ingersoll). + + + Fixed NPE that where caused in the constructors of file based + configurations if an invalid file name was specified. + + + Added support for optional configuration sources in definition files for + ConfigurationFactory. A new required attribute allows to specify whether a + configuration source is mandatory or optional. + + JNDIConfiguration.getKeys() now returns an empty iterator instead of throwing a ConfigurationRuntimeException when a NamingException occurs. The NamingExceptions are now logged. @@ -71,15 +85,6 @@ AppletConfiguration, ServletConfiguration, ServletContextConfiguration, ServletRequestConfiguration, ServletFilterConfiguration. - - Fixed NPE that where caused in the constructors of file based - configurations if an invalid file name was specified. - - - Added support for optional configuration sources in definition files for - ConfigurationFactory. A new required attribute allows to specify whether a - configuration source is mandatory or optional. - 1.12 +18 -8 jakarta-commons/configuration/src/java/org/apache/commons/configuration/ConfigurationUtils.java Index: ConfigurationUtils.java =================================================================== RCS file: /home/cvs/jakarta-commons/configuration/src/java/org/apache/commons/configuration/ConfigurationUtils.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- ConfigurationUtils.java 17 Nov 2004 00:14:03 -0000 1.11 +++ ConfigurationUtils.java 19 Nov 2004 01:56:30 -0000 1.12 @@ -16,11 +16,7 @@ package org.apache.commons.configuration; -import java.io.File; -import java.io.IOException; -import java.io.PrintStream; -import java.io.PrintWriter; -import java.io.StringWriter; +import java.io.*; import java.net.MalformedURLException; import java.net.URL; import java.util.Iterator; @@ -264,13 +260,27 @@ { URL baseURL = new URL(base); url = new URL(baseURL, name); + + // check if the file exists + InputStream in = null; + try + { + in = url.openStream(); + } + finally + { + if (in != null) + { + in.close(); + } + } } log.debug("Configuration loaded from the URL " + url); } - catch (MalformedURLException e) + catch (IOException e) { - + url = null; } // attempt to load from an absolute path 1.2 +4 -1 jakarta-commons/configuration/conf/resources.jar <> 1.18 +12 -1 jakarta-commons/configuration/src/test/org/apache/commons/configuration/TestConfigurationFactory.java Index: TestConfigurationFactory.java =================================================================== RCS file: /home/cvs/jakarta-commons/configuration/src/test/org/apache/commons/configuration/TestConfigurationFactory.java,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- TestConfigurationFactory.java 14 Nov 2004 19:06:32 -0000 1.17 +++ TestConfigurationFactory.java 19 Nov 2004 01:56:30 -0000 1.18 @@ -18,6 +18,7 @@ import java.io.File; import java.util.Collection; +import java.net.URL; import junit.framework.TestCase; @@ -194,6 +195,16 @@ { factory.setConfigurationURL(testDigesterFileEnhanced.toURL()); checkUnionConfig(); + } + + public void testLoadingFromJAR() throws Exception + { + URL url = Thread.currentThread().getContextClassLoader().getResource("config-jar.xml"); + assertNotNull("config-jar.xml not found on the classpath", url); + factory.setConfigurationURL(url); + + Configuration conf = factory.getConfiguration(); + assertFalse("The configuration is empty", conf.isEmpty()); } public void testThrowingConfigurationInitializationException() throws Exception --------------------------------------------------------------------- To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org For additional commands, e-mail: commons-dev-help@jakarta.apache.org