Siarhei Krukau created CAMEL-8307:
-------------------------------------

             Summary: 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 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)

Reply via email to