Hello, In my application, I have the following blueprint file:
<?xml version="1.0" encoding="UTF-8"?> <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cxf="http://camel.apache.org/schema/blueprint/cxf" xmlns:jaxrs="http://cxf.apache.org/blueprint/jaxrs" xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0" xmlns:http="http://cxf.apache.org/transports/http/configuration" xsi:schemaLocation=" http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd http://camel.apache.org/schema/blueprint http://camel.apache.org/schema/blueprint/camel-blueprint.xsd http://camel.apache.org/schema/blueprint/cxf http://camel.apache.org/schema/blueprint/cxf/camel-cxf.xsd http://cxf.apache.org/blueprint/jaxrs http://cxf.apache.org/schemas/blueprint/jaxrs.xsd"> <cm:property-placeholder persistent-id="com.company.application.jaxrs" placeholder-prefix="[[" placeholder-suffix="]]"> <cm:default-properties> <cm:property name="application.defaultShutdownStrategyTimeout" value="30"/> <cm:property name="application.suppressLoggingOnTimeout" value="true"/> ... </cm:default-properties> </cm:property-placeholder> <cm:property-placeholder persistent-id="com.company.application.activemq" placeholder-prefix="{{" placeholder-suffix="}}"> <cm:default-properties> ... </cm:default-properties> </cm:property-placeholder> ... <bean id="debugBean0" class="com.company.application.debug.EchoBean"> <property name="echoProperty" value ="[[application.defaultShutdownStrategyTimeout]]"/> </bean> <bean id="debugBean1" class="com.company.application.debug.EchoBean"> <property name="echoProperty" value ="[[application.suppressLoggingOnTimeout]]"/> </bean> <bean id="defaultShutdownStrategy" class ="com.company.application.debug.DebugShutdownStrategy"> <property name="timeout" value ="[[application.defaultShutdownStrategyTimeout]]"/> <property name="suppressLoggingOnTimeout" value ="[[application.suppressLoggingOnTimeout]]"/> </bean> ... </blueprint> This application also contains the following debug classes: public class EchoBean { private static final Logger LOGGER = LoggerFactory.getLogger(EchoBean.class); public String getEchoProperty() { return echoProperty; } public void setEchoProperty(final String echoProperty) { LOGGER.info("ApplicationServiceDebug echo property: " + echoProperty); this.echoProperty = echoProperty; } private String echoProperty; } public class DebugShutdownStrategy extends DefaultShutdownStrategy { private static final Logger LOGGER = LoggerFactory.getLogger(DebugShutdownStrategy.class); public void setTimeout(final String timeout) { LOGGER.info("ApplicationServiceDebug shutdown timeout: " + timeout); } public void setTimeout(final EchoBean timeout) { LOGGER.info("ApplicationServiceDebug shutdown timeout: " + timeout.getEchoProperty()); } public void setSuppressLoggingOnTimeout(final String b) { LOGGER.info("ApplicationServiceDebug shutdown suppress logging timeout: " + b); } public void setSuppressLoggingOnTimeout(final EchoBean b) { LOGGER.info("ApplicationServiceDebug shutdown suppress logging timeout: " + b.getEchoProperty()); } } Now, when I run the bundle, I get the following output from the application: 2015-02-23 13:38:32,248 | INFO | com.company.application.debug.DebugShutdownStrategy | fileinstall-/opt/apache-karaf-3.0.1/deploy | 452 - com.company.application.service - 2.6.0.RELEASE | ApplicationServiceDebug shutdown timeout: [[application.defaultShutdownStrategyTimeout]] 2015-02-23 13:38:32,248 | INFO | com.company.application.debug.DebugShutdownStrategy | fileinstall-/opt/apache-karaf-3.0.1/deploy | 452 - com.company.application.service - 2.6.0.RELEASE | ApplicationServiceDebug shutdown suppress logging timeout: [[application.suppressLoggingOnTimeout]] 2015-02-23 13:38:33,308 | INFO | com.company.application.debug.EchoBean | fileinstall-/opt/apache-karaf-3.0.1/deploy | 452 - com.company.application.service - 2.6.0.RELEASE | ApplicationServiceDebug echo property: 30 2015-02-23 13:38:33,309 | INFO | com.company.application.debug.EchoBean | fileinstall-/opt/apache-karaf-3.0.1/deploy | 452 - com.company.application.service - 2.6.0.RELEASE | ApplicationServiceDebug echo property: true What this seems to indicate to me is that the bean, "defaultShutdownStrategy", is built before the properties are populated, whereas, the debug beans are built after. Is this correct? Is there something I'm doing wrong that would cause this behaviour? Is this a bug? Is there something I can do to get the bean to populate after? -- This email and any attachments may contain information that is proprietary, confidential and/or privileged and for the sole use of the intended recipients(s) only. If you are not the intended recipient, please notify the sender by return email and delete all copies of this email and any attachments. Ahold and/or its subsidiaries shall neither be liable for the inaccurate or incomplete transmission of the information contained in this email or any attachments, nor for any delay in its receipt. To the extent this email is intended to create any legal obligation, the obligation shall bind only the contracting entity and not any other entity within the Ahold Group.