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 > >>> > >> > > >