camel-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Siarhei Krukau (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (CAMEL-8307) Loaded properties are empty if whitespaces are used in propertyPlaceholder#location
Date Mon, 02 Feb 2015 15:44:34 GMT

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

Siarhei Krukau updated CAMEL-8307:
----------------------------------
    Description: 
When whitespaces or newlines are used in {{location}} attribute of {{propertyPlaceholder}}
(XML):
{code:xml}
<propertyPlaceholder id="camelPropertyPlaceholderConfigurer"
    location="classpath:a/b/c/environments/base.properties,
              classpath:a/b/c/environments/${env:ENV}/env.properties,
              classpath:a/b/c/environments/${ENV}/env.properties"
    ignoreMissingLocation="true"/>
{code}

, the properties are loaded only from the first source ({{base.properties}}) in this case.
The problem may be in {{org.apache.camel.component.properties.DefaultPropertiesResolver#loadPropertiesFromClasspath}}:

{code:java}
    protected Properties loadPropertiesFromClasspath(CamelContext context, boolean ignoreMissingLocation,
String path) throws IOException {
        Properties answer = new Properties();

        if (path.startsWith("classpath:")) {
            path = ObjectHelper.after(path, "classpath:");
        }

        InputStream is = context.getClassResolver().loadResourceAsStream(path);
        if (is == null) {
           ...
        } else {...}

        return answer;
    }
{code}

{{startsWith}} returns false as the path are splitted around {{,}}. Trimming the path somewhere
around those calls may help.

  was:
When whitespaces are used in {{location}} attribute of {{propertyPlaceholder}} (XML):
{code:xml}
<propertyPlaceholder id="camelPropertyPlaceholderConfigurer"
    location="classpath:a/b/c/environments/base.properties,
              classpath:a/b/c/environments/${env:ENV}/env.properties,
              classpath:a/b/c/environments/${ENV}/env.properties"
    ignoreMissingLocation="true"/>
{code}

, the properties are loaded only from the first source ({{base.properties}}) in this case.
The problem may be in {{org.apache.camel.component.properties.DefaultPropertiesResolver#loadPropertiesFromClasspath}}:

{code:java}
    protected Properties loadPropertiesFromClasspath(CamelContext context, boolean ignoreMissingLocation,
String path) throws IOException {
        Properties answer = new Properties();

        if (path.startsWith("classpath:")) {
            path = ObjectHelper.after(path, "classpath:");
        }

        InputStream is = context.getClassResolver().loadResourceAsStream(path);
        if (is == null) {
           ...
        } else {...}

        return answer;
    }
{code}

{{startsWith}} returns false as the path are splitted around {{,}}. Trimming the path somewhere
around those calls may help.


> Loaded properties are empty if whitespaces are used in propertyPlaceholder#location
> -----------------------------------------------------------------------------------
>
>                 Key: CAMEL-8307
>                 URL: https://issues.apache.org/jira/browse/CAMEL-8307
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-core
>    Affects Versions: 2.12.0
>            Reporter: Siarhei Krukau
>            Priority: Minor
>
> When whitespaces or newlines are used in {{location}} attribute of {{propertyPlaceholder}}
(XML):
> {code:xml}
> <propertyPlaceholder id="camelPropertyPlaceholderConfigurer"
>     location="classpath:a/b/c/environments/base.properties,
>               classpath:a/b/c/environments/${env:ENV}/env.properties,
>               classpath:a/b/c/environments/${ENV}/env.properties"
>     ignoreMissingLocation="true"/>
> {code}
> , the properties are loaded only from the first source ({{base.properties}}) in this
case. The problem may be in {{org.apache.camel.component.properties.DefaultPropertiesResolver#loadPropertiesFromClasspath}}:
> {code:java}
>     protected Properties loadPropertiesFromClasspath(CamelContext context, boolean ignoreMissingLocation,
String path) throws IOException {
>         Properties answer = new Properties();
>         if (path.startsWith("classpath:")) {
>             path = ObjectHelper.after(path, "classpath:");
>         }
>         InputStream is = context.getClassResolver().loadResourceAsStream(path);
>         if (is == null) {
>            ...
>         } else {...}
>         return answer;
>     }
> {code}
> {{startsWith}} returns false as the path are splitted around {{,}}. Trimming the path
somewhere around those calls may help.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message