anchor.diff:  You can do both as well. Here is a complete example. First we have the
   Blueprint XML file:
   
  -include::../../../components/camel-test-blueprint/src/test/resources/org/apache/camel/test/blueprint/configadmin-loadfileoverride.xml[]
  +[source,xml]
  +----
  +<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
  +           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  +           xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"
  +           xsi:schemaLocation="
  +             http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0 http://aries.apache.org/schemas/blueprint-cm/blueprint-cm-1.1.0.xsd
  +             http://www.osgi.org/xmlns/blueprint/v1.0.0 https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd">
  +
  +  <!-- blueprint property placeholders, that will use etc/stuff.cfg as the properties file -->
  +  <cm:property-placeholder persistent-id="stuff" update-strategy="reload">
  +    <cm:default-properties>
  +      <cm:property name="greeting" value="Hello" />
  +      <cm:property name="echo" value="Hey" />
  +      <cm:property name="destination" value="mock:original" />
  +    </cm:default-properties>
  +  </cm:property-placeholder>
  +
  +  <!-- a bean that uses a blueprint property placeholder -->
  +  <bean id="myCoolBean" class="org.apache.camel.test.blueprint.MyCoolBean">
  +    <property name="say" value="${greeting}"/>
  +    <property name="echo" value="${echo}"/>
  +  </bean>
  +
  +  <camelContext xmlns="http://camel.apache.org/schema/blueprint">
  +
  +    <route>
  +      <from uri="direct:start"/>
  +      <bean ref="myCoolBean" method="saySomething"/>
  +      <to uri="{{destination}}"/>
  +      <bean ref="myCoolBean" method="echoSomething"/>
  +      <to uri="{{destination}}"/>
  +    </route>
  +
  +  </camelContext>
  +
  +</blueprint>
  +----
   
   And in the unit test class we do as follows:
   
  -include::../../../components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/ConfigAdminLoadConfigurationFileAndOverrideTest.java[]
  +[source,java]
  +----
  +/**
  + * This example will load a Blueprint .cfg file (which will initialize configadmin), and also override its property
  + * placeholders from this unit test source code directly (the change will reload blueprint container).
  + */
  +public class ConfigAdminLoadConfigurationFileAndOverrideTest extends CamelBlueprintTestSupport {
  +
  +    @Override
  +    protected String getBlueprintDescriptor() {
  +        // which blueprint XML file to use for this test
  +        return "org/apache/camel/test/blueprint/configadmin-loadfileoverride.xml";
  +    }
  +
  +    @Override
  +    protected String[] loadConfigAdminConfigurationFile() {
  +        // which .cfg file to use, and the name of the persistence-id
  +        return new String[]{"src/test/resources/etc/stuff.cfg", "stuff"};
  +    }
  +
  +    @Override
  +    protected String useOverridePropertiesWithConfigAdmin(Dictionary props) throws Exception {
  +        // override / add extra properties
  +        props.put("destination", "mock:extra");
  +
  +        // return the persistence-id to use
  +        return "stuff";
  +    }
  +
  +    @Test
  +    public void testConfigAdmin() throws Exception {
  +        // mock:original comes from <cm:default-properties>/<cm:property name="destination" value="mock:original" />
  +        getMockEndpoint("mock:original").setExpectedMessageCount(0);
  +        // mock:result comes from loadConfigAdminConfigurationFile()
  +        getMockEndpoint("mock:result").setExpectedMessageCount(0);
  +        // mock:extra comes from useOverridePropertiesWithConfigAdmin()
  +        getMockEndpoint("mock:extra").expectedBodiesReceived("Bye World", "Yay Bye WorldYay Bye World");
  +
  +        template.sendBody("direct:start", "World");
  +
  +        assertMockEndpointsSatisfied();
  +    }
  +
  +}
  +----
   
   And the `etc/stuff.cfg` configuration file contains:
   
  
positive.code: both the Spring style, and the Camel style within the `<camelContext>`
  tag as shown below:
  
  include::../../../components/camel-spring/src/test/resources/org/apache/camel/component/properties/CamelSpringPropertyPlaceholderConfigurerTest.xml[]
  
  Notice how the hello bean is using pure Spring property placeholders using
  the `${}` notation. And in the Camel routes we use the Camel
  
negative.code: `persistence-id="stuff"`, which mean it will load the configuration
  file as `etc/stuff.cfg`.
  
  [source,xml]
  ----
  <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"
             xsi:schemaLocation="
               http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0 http://aries.apache.org/schemas/blueprint-cm/blueprint-cm-1.1.0.xsd
               http://www.osgi.org/xmlns/blueprint/v1.0.0 https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd">
  
  <!-- blueprint property placeholders, that will use etc/stuff.cfg as the properties file -->
  <cm:property-placeholder persistent-id="stuff" update-strategy="reload"/>
  
  <!-- a bean that uses a blueprint property placeholder -->
  <bean id="myCoolBean" class="org.apache.camel.test.blueprint.MyCoolBean">
    <property name="say" value="${greeting}"/>
  </bean>
  
  <camelContext xmlns="http://camel.apache.org/schema/blueprint">
  
    <route>
      <from uri="direct:start"/>
      <bean ref="myCoolBean" method="saySomething"/>
      <to uri="mock:result"/>
    </route>
  
  </camelContext>
  ----
  
  Now if you want to unit test this blueprint XML file, then you can override
  the `loadConfigAdminConfigurationFile` and tell Camel which file to
  load as shown below:
  
  [source,java]
  ----
  @Override
  protected String[] loadConfigAdminConfigurationFile() {
      // String[0] = tell Camel the path of the .cfg file to use for OSGi ConfigAdmin in the blueprint XML file
      // String[1] = tell Camel the persistence-id of the cm:property-placeholder in the blueprint XML file
      return new String[]{"src/test/resources/etc/stuff.cfg", "stuff"};
  }
  ----
  Notice that this method requires to return a `String[]` with 2 values. The
  1st value is the path for the configuration file to load. The second
  value is the persistence-id of the `<cm:property-placeholder>` tag.
  