Hello, 

I posted this in the Camel forum, but I have not received any answer, so I am 
trying here as well, since the error is coming from Blueprint.
I am running Karaf 4.2.5,  in trying to migrate my project to Camel 2.20.2 
(from 2.17.4) 
I have blueprint configuration:

        <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0 
<http://www.osgi.org/xmlns/blueprint/v1.0.0>"
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance 
<http://www.w3.org/2001/XMLSchema-instance>" 
                xmlns:camel="http://camel.apache.org/schema/blueprint 
<http://camel.apache.org/schema/blueprint>"
                
xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0 
<http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0>"
                
xmlns:ext="http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.0.0 
<http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.0.0>"
                xsi:schemaLocation="
                        http://www.osgi.org/xmlns/blueprint/v1.0.0 
<http://www.osgi.org/xmlns/blueprint/v1.0.0> 
                        
https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd 
<https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd>”>

        <cm:property-placeholder persistent-id="audit.log"
                update-strategy="reload” 
                placeholder-prefix="#{" placeholder-suffix="}">
                <cm:default-properties>
                        <cm:property name="audit-log.reaper.cron" value="0 0/30 
* * * ?" />
                        <cm:property name="startDelaySeconds"   value="600" />
                </cm:default-properties>
        </cm:property-placeholder>

A bean is configured using some properties (in this case for Quartz2, but I 
don’t think this is related to Quartz2):

        <bean id="audit-log-reaper-quartz" 
class="org.apache.camel.component.quartz2.QuartzComponent">
                <property name="startDelayedSeconds" 
value="#{startDelaySeconds}" />
        </bean>

The bean is referenced in a Camel route:

        <route id="reaper-scheduler">
                <from uri="audit-log-reaper-quartz://reaper?cron={{cron}} 
<audit-log-reaper-quartz://reaper?cron={{cron}}>" />
                ...

When I run this (Karaf 4.2.5) an exception is thrown:

org.osgi.service.blueprint.container.ComponentDefinitionException: Name 
audit-log-reaper-quartz is already instanciated as null and cannot be removed.
        at 
org.apache.aries.blueprint.container.BlueprintRepository.removeRecipe(BlueprintRepository.java:131)
 [38:org.apache.aries.blueprint.core:1.8.3]
        at 
org.apache.aries.blueprint.container.BlueprintContainerImpl.updateUninstantiatedRecipes(BlueprintContainerImpl.java:572)
 [38:org.apache.aries.blueprint.core:1.8.3]
        at 
org.apache.aries.blueprint.container.BlueprintContainerImpl.processProcessors(BlueprintContainerImpl.java:559)
 [38:org.apache.aries.blueprint.core:1.8.3]
        at 
org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:394)
 [38:org.apache.aries.blueprint.core:1.8.3]
        at 
org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:275)
 [38:org.apache.aries.blueprint.core:1.8.3]


Interestingly,  if I remove property place holder:

        <bean id="audit-log-reaper-quartz" 
class="org.apache.camel.component.quartz2.QuartzComponent">
                <property name="startDelayedSeconds" value="600" />
        </bean>

Then it works fine, no errors.  So this seems to be related to the property 
placeholders.  Has anybody seen this? 
I appreciate any insight on how to solve this problem.


Best regards,
Alex soto


Reply via email to