Author: adrianc
Date: Tue Jan 6 20:18:43 2015 New Revision: 1649931 URL: http://svn.apache.org/r1649931 Log: A new method for UtilProperties.java - to be used in upcoming changes. Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilProperties.java Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilProperties.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilProperties.java?rev=1649931&r1=1649930&r2=1649931&view=diff ============================================================================== --- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilProperties.java (original) +++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilProperties.java Tue Jan 6 20:18:43 2015 @@ -281,6 +281,41 @@ public class UtilProperties implements S return value == null ? "" : value.trim(); } + /** + * Returns a new <code>Properties</code> instance created from <code>fileName</code>. + * <p>This method is intended for low-level framework classes that need to read + * properties files before OFBiz has been fully initialized.</p> + * + * @param fileName The full name of the properties file ("foo.properties") + * @return A new <code>Properties</code> instance created from <code>fileName</code> + * @throws IllegalArgumentException if <code>fileName</code> is empty + * @throws IllegalStateException if there were any problems reading the file + */ + public static Properties createProperties(String fileName) { + Assert.notEmpty("fileName", fileName); + InputStream inStream = null; + try { + URL url = Thread.currentThread().getContextClassLoader().getResource(fileName); + if (url == null) { + throw new IllegalStateException(fileName + " not found"); + } + inStream = url.openStream(); + Properties properties = new Properties(); + properties.load(inStream); + return properties; + } catch (Exception e) { + throw new IllegalStateException("Exception thrown while reading debug.properties: " + e); + } finally { + if (inStream != null) { + try { + inStream.close(); + } catch (IOException e) { + System.out.println("Exception thrown while closing InputStream: " + e); + } + } + } + } + /** Returns the specified resource/properties file * @param resource The name of the resource - can be a file, class, or URL * @return The properties file @@ -305,8 +340,7 @@ public class UtilProperties implements S Properties properties = urlCache.get(cacheKey); if (properties == null) { try { - properties = new Properties(); - properties.load(url.openStream()); + properties = new ExtendedProperties(url, null); urlCache.put(cacheKey, properties); } catch (Exception e) { Debug.logInfo(e, module); @@ -915,7 +949,7 @@ public class UtilProperties implements S * ...<br /> * </property><br /> * ...<br /> - * </resource><br /><br /></code> where <em>"locale 1", "locale 2"</em> are valid Locale strings. + * </resource><br /><br /></code> where <em>"locale 1", "locale 2"</em> are valid xml:lang values.. * </p> * * @param in XML file InputStream @@ -932,7 +966,7 @@ public class UtilProperties implements S doc = UtilXml.readXmlDocument(in, true, "XML Properties file"); in.close(); } catch (Exception e) { - Debug.logWarning(e, "XML Locale file for locale " + locale + " could not be loaded.", module); + Debug.logWarning(e, "XML file for locale " + locale + " could not be loaded.", module); in.close(); return null; } |
Free forum by Nabble | Edit this page |