You can use directly camel property placeholder with file in the location. 

https://camel.apache.org/manual/latest/using-propertyplaceholder.html

No need to use blueprint property placeholder if you don’t want configadmin 
backend. 

Regards 
JB

> Le 17 sept. 2021 à 08:17, Andrei Petru Mura <mapand...@gmail.com> a écrit :
> 
> By the way,
> 
> Is there some documentation on the topic? If not CM, what else should I
> use. I feel a bit dumb because I don't understand the "terminology" :).
> 
> Andrei
> 
>> On Fri, Sep 17, 2021 at 9:09 AM JB Onofré <j...@nanthrax.net> wrote:
>> 
>> Cm means that it’s backed with ConfigAdmin, so it uses metatype.
>> So my question is: what backend do you want : configadmin, file, … ?
>> 
>> Regards
>> JB
>> 
>>> Le 17 sept. 2021 à 07:50, Andrei Petru Mura <mapand...@gmail.com> a
>> écrit :
>>> 
>>> Hi Jean,
>>> 
>>> I think I provided a flat aries blueprint property placeholder backed
>> with
>>> a file in my initial mail. Maybe I don't understand what a "flat aries
>>> blueprint property placeholder" is.
>>> 
>>> Thanks,
>>> Andrei
>>>> On Thu, Sep 16, 2021 at 5:49 PM Jean-Baptiste Onofré <j...@nanthrax.net>
>>>> wrote:
>>>> 
>>>> You can use a flat aries blueprint property placeholder backed with
>>>> ConfigAdmin or a file.
>>>> 
>>>> Is it what you want ?
>>>> 
>>>> Regards
>>>> JB
>>>> 
>>>>> On 16/09/2021 15:46, Andrei Petru Mura wrote:
>>>>> This definitely isn't a good option as I don't intend to make a
>>>> difference
>>>>> by the way in which I reference a variable.
>>>>> Anyway, property-placeholder doesn't seem to me to be a good option as
>>>> some
>>>>> of the variables inside my cfg file are seen, some aren't. For example
>> I
>>>>> get this:
>>>>> 
>>>>> Error creating bean with name 'ftpClientFactory' defined in URL
>>>>> 
>>>> 
>> [bundle://afa89085-51c4-4cb3-a419-afeccd70a35f_304.0:0/OSGI-INF/blueprint/spring-conf/spring-context.xml]:
>>>>> Initialization of bean failed; nested exception is
>>>>> org.springframework.beans.TypeMismatchException: Failed to convert
>>>> property
>>>>> value of type 'java.lang.String' to required type 'int' for property
>>>>> 'reconnectRetries'; nested exception is
>> java.lang.NumberFormatException:
>>>>> For input string: "{{reconnect.retries}}"
>>>>> 
>>>>> In the same spring context, another variable (which is present in the
>>>> same
>>>>> configuration file) is well referenced.
>>>>> 
>>>>> Thanks,
>>>>> Andrei M.
>>>>> 
>>>>>> On Thu, Sep 16, 2021 at 4:12 PM John Taylor <jtt77...@gmail.com>
>> wrote:
>>>>> 
>>>>>> Hi,
>>>>>> 
>>>>>> A single property-placeholder is only going to allow one backing
>>>>>> persistent-id.
>>>>>> You can instead create multiple property-placeholders with different
>>>> ids,
>>>>>> e.g.
>>>>>>  <cm:property-placeholder id="propertiesBean" persistent-id=">. . .
>>>>>>  <cm:property-placeholder id="edigrid.cluster" persistent-id=" >. . .
>>>>>> 
>>>>>> see
>>>>>> 
>>>>>> 
>>>> 
>> https://stackoverflow.com/questions/50354932/how-to-use-multiple-property-placeholder-in-jboss-fuse-blueprint
>>>>>> 
>>>>>> Hope that helps.
>>>>>> -John
>>>>>> 
>>>>>> On Thu, Sep 16, 2021 at 7:58 AM Andrei Petru Mura <
>> mapand...@gmail.com>
>>>>>> wrote:
>>>>>> 
>>>>>>> Hi all,
>>>>>>> 
>>>>>>> I'm trying to migrate my camel routes from an older karaf using
>>>> Spring-DM
>>>>>>> to a newer one using Blueprint. For this, I intend to import my
>> spring
>>>>>> XML
>>>>>>> configuration in my blueprint XML file. The camel context is defined
>> in
>>>>>> the
>>>>>>> blueprint XML file.
>>>>>>> Currently I'm stuck with a placeholder issue. I'm trying to import
>> some
>>>>>>> configuration properties from OSGI environment which are stored in a
>>>> few
>>>>>>> files under the ${karaf.home}/etc directory.
>>>>>>> I tried many ways according to this documentation page (
>>>>>>> https://camel.apache.org/components/2.x/properties-component.html),
>>>> but
>>>>>>> still not getting the functionality which I want.
>>>>>>> 
>>>>>>> On short, I want to be able to define in my XML files (blueprint,
>>>> spring)
>>>>>>> some default values for some properties, overriding them with the
>>>>>>> configurations found in the configuration files from
>> ${karaf.home}/etc/
>>>>>> and
>>>>>>> be able to use them in in both blueprint XML and spring XML files.
>>>>>>> Preferable by ${variableName}.
>>>>>>> 
>>>>>>> Currently, I did this:
>>>>>>> 
>>>>>>> Blueprint XML:
>>>>>>> 
>>>>>>> <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0";
>>>>>>>    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>>>>>>>    xmlns:bean="http://www.springframework.org/schema/beans";
>>>>>>>    xmlns:camel="http://camel.apache.org/schema/spring";
>>>>>>>    xmlns:osgix="
>>>> http://www.springframework.org/schema/osgi-compendium";
>>>>>>>    xmlns:cm="
>>>>>> http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0";
>>>>>>>    xsi:schemaLocation="
>>>>>>>    http://www.springframework.org/schema/beans
>>>>>>> http://www.springframework.org/schema/beans/spring-beans.xsd
>>>>>>>    http://camel.apache.org/schema/spring
>>>>>>> http://camel.apache.org/schema/spring/camel-spring.xsd
>>>>>>>    http://www.springframework.org/schema/osgi-compendium
>>>>>>> 
>>>>>>> 
>>>>>> 
>>>> 
>> http://www.springframework.org/schema/osgi-compendium/spring-osgi-compendium.xsd
>>>>>>> ">
>>>>>>> 
>>>>>>>    <cm:property-placeholder id="propertiesBean"
>>>>>>>    persistent-id="edigrid.persistence,edigrid.server.id
>>>>>>> ,edigrid.cluster,edigrid.ftpconfig,edigrid.reports">
>>>>>>>        <cm:default-properties>...</cm:default-properties>
>>>>>>>    </cm:property-placeholder>
>>>>>>> 
>>>>>>> ...
>>>>>>> 
>>>>>>>    <camelContext ...>
>>>>>>>        <route ...>
>>>>>>>            ... accessing ${configVarHere1}
>>>>>>>        </route>
>>>>>>>    </camelContext>
>>>>>>> </blueprint>
>>>>>>> 
>>>>>>> <beans xmlns="http://www.springframework.org/schema/beans";
>>>>>>>    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>>>>>>>    xmlns:ctx="http://www.springframework.org/schema/context";
>>>>>>>    xsi:schemaLocation="http://www.springframework.org/schema/beans
>>>>>>> http://www.springframework.org/schema/beans/spring-beans.xsd
>>>>>>>        http://www.springframework.org/schema/context
>>>>>>> http://www.springframework.org/schema/context/spring-context.xsd";>
>>>>>>> 
>>>>>>>    <beans>
>>>>>>> 
>>>>>>>        <bean id="bridgePropertyPlaceholder"
>>>>>>> 
>>>> class="org.apache.camel.spring.spi.BridgePropertyPlaceholderConfigurer">
>>>>>>>        </bean>
>>>>>>> 
>>>>>>> ...accessing ${configVarHere2}
>>>>>>>    </beans>
>>>>>>> </beans>
>>>>>>> 
>>>>>>> I get this kind of error (because of spring XML):
>>>>>>> Failed to convert property value of type 'java.lang.String' to
>> required
>>>>>>> type 'int' for property 'configPropName'; nested exception is
>>>>>>> java.lang.NumberFormatException: For input string:
>> "${configProprName}"
>>>>>>> 
>>>>>>> after I get a few messages like:
>>>>>>> The property placeholder processor for ${, } in bundle
>>>>>>> bundleName/BundleVersion found an immutable Constructor Argument at
>>>>>>> location Bean named beanName->Argument index -1 and value type
>> null->.
>>>>>> This
>>>>>>> may prevent properties, beans, or other items referenced by this
>>>>>> component
>>>>>>> from being properly processed.
>>>>>>> 
>>>>>>> Any idea how I can solve my issue?
>>>>>>> 
>>>>>>> Thanks,
>>>>>>> Mura Andrei
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>> 
>> 

Reply via email to