commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Tomas de Priede (JIRA)" <j...@apache.org>
Subject [jira] Updated: (LANG-596) StrSubstitutor should also handle the default properties of a java.util.Properties class
Date Tue, 24 Aug 2010 03:16:16 GMT

     [ https://issues.apache.org/jira/browse/LANG-596?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Tomas de Priede updated LANG-596:
---------------------------------

    Comment: was deleted

(was: hello,
I went up the patch with the code

Regards
Tom)

> StrSubstitutor should also handle the default properties of a java.util.Properties class
> ----------------------------------------------------------------------------------------
>
>                 Key: LANG-596
>                 URL: https://issues.apache.org/jira/browse/LANG-596
>             Project: Commons Lang
>          Issue Type: Bug
>          Components: lang.text.*
>    Affects Versions: 2.5
>            Reporter: Ulrich Voigt
>            Priority: Minor
>             Fix For: 3.1
>
>         Attachments: Patch_LANG-596_1.0
>
>   Original Estimate: 0.5h
>  Remaining Estimate: 0.5h
>
> The following program show a problem with a shortcoming of the java.util.Properties class.

> The default properties are not substituted by the StrSubstitutor.
> {code:title=StrSubstTest.java|borderStyle=solid}
> import org.apache.commons.lang.text.StrSubstitutor;
> public class StrSubstTest
> {
>     public static void main(String[] args)
>     {
>         String org = "${doesnotwork}";
>         System.setProperty("doesnotwork", "It work's!");
>         // create a new Poperties object with the System.getProperties as default
>         Properties props = new Properties(System.getProperties());
>         String subst = StrSubstitutor.replace(org, props);
>         // is ${doesnotwork} substituted?
>         System.out.println(subst);
>     }
> }
> {code} 
> The following method could be added to the StrSubstitutor class to fix this problem in
an easy way:
> {code:borderStyle=solid}
>     /**
>      * Replaces all the occurrences of variables in the given source object with their
matching
>      * values from the properties.
>      * 
>      * @param source the source text containing the variables to substitute, null returns
null
>      * @param properties the properties with values, may be null
>      * @return the result of the replace operation
>      */
>     public static String replace(Object source, Properties valueProperties)
>     {
>         if (valueProperties == null) {
>             return source;
>         }
>         Map valueMap = new HashMap();
>         Enumeration propNames = valueProperties.propertyNames();
>         while (propNames.hasMoreElements())
>         {
>             String propName = (String)propNames.nextElement();
>             String propValue = valueProperties.getProperty(propName);
>             valueMap.put(propName, propValue);
>         }
>         return StrSubstitutor.replace(source, valueMap);
>     }
> {code}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message