[
https://issues.apache.org/jira/browse/CONFIGURATION-370?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12682093#action_12682093
]
Oliver Heger commented on CONFIGURATION-370:
--------------------------------------------
I think the API provided by the nested {{PropertiesReader}} class of
{{PropertiesConfiguration}} is powerful enough for customizing the reading of
non-standard properties files. Maybe the *private static* {{parseProperty()}}
method should be made *protected*. Then specialized reader classes can be
derived from {{PropertiesReader}} that implement the desired treatment of
property delimiters.
What is missing is a convenient way to inject a custom {{PropertiesReader}}
implementation into the load operation of {{PropertiesConfiguration}}. We could
add an interface for this purpose which could look like the following:
{code}
public interface IOFactory
{
PropertiesReader createPropertiesReader(Reader in);
PropertiesWriter createPropertiesWriter(Writer out, char delimiter);
}
{code}
This interface would also allow customizing the writer.
{{PropertiesConfiguration}} would provide new get and set methods for accessing
the {{IOFactory}}.
> Customizing the Properties Reader
> ---------------------------------
>
> Key: CONFIGURATION-370
> URL: https://issues.apache.org/jira/browse/CONFIGURATION-370
> Project: Commons Configuration
> Issue Type: New Feature
> Affects Versions: 1.6
> Environment: Properties File Reader.
> Reporter: Andrew Hughes
>
> Currently Commons Configuration does not offer support to handle non-standard
> property file parsing. Inparticular, you can't parse properties where the key
> has whitespace.
> Taken from thread on mailing list:
> {quote}
> Howdy,
> We've got legacy/shared property files for our config (i.e. can't change the
> property files to solve this). We're trying to use commons-config but it has
> difficulty dealing with our properties files as the key's contain whitespace.
> Any help on how I can resolve this would be most welcomed :)
> Example Property:
> Welcome Message=Hello World
> Cheers.
> {quote}
> Response:
> {quote}
> The current code does not seem to support whitespace in property keys.
> PropertiesConfiguration uses PropertiesConfigurationLayout.load() for loading
> and parsing configuration files, which in turn delegates to the inner class
> PropertiesConfiguration.PropertiesReader. This class interprets all
> whitespace as end markers of the property key.
> It is probably not trivial to inject your own reader for properties files.
> Maybe you can create a custom layout class derived from
> PropertiesConfigurationLayout that overrides the load() method. You would
> have to override PropertiesConfiguration.createLayout() to activate your new
> layout class.
> Given these problems it would probably be a good idea if the library offered
> better support for customizing the properties reader. If you consider this
> helpful, feel free to open an enhancement ticket in Jira [1].
> Oliver
> {quote}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.