Search code examples
javaroutesapache-camelkaraf

Waiting for dependencies [(&(component=Simple)(objectClass=org.apache.camel.spi.ComponentResolver))]


I am working with Apache Camel and I am defining a route that I need to access some headers. To accomplish that I use simple to access dynamically a header.

from("direct:buildInformation")     
    .setProperty("id", constant(simple("${header.headers[id]}")))
    .to(simple("http://localhost/search?id=${header.headers[id]}"))
    .process("MyProcessor");

However I get the error: is waiting for dependencies [(&(component=Simple)(objectClass=org.apache.camel.spi.ComponentResolver))]. Here at my pom.xml project I import all needed dependencies including camel-core, that is needed for simple language work properly, as you can see.

<dependencies>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-blueprint</artifactId>
        <version>${camel-version}</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>net.sourceforge.jexcelapi</groupId>
        <artifactId>jxl</artifactId>
        <version>2.6.12</version>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-core</artifactId>
        <version>${camel-version}</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-http</artifactId>
        <version>${camel-version}</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-http4</artifactId>
        <version>${camel-version}</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-jackson</artifactId>
        <version>${camel-version}</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-jsonpath</artifactId>
        <version>${camel-version}</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4j-version}</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.4</version>
        <scope>provided</scope>
    </dependency>
</dependencies>

Besides that from my Karaf console I see that camel-core is active, but my bundle is in GracePeriod Status: [(&(component=Simple)(objectClass=org.apache.camel.spi.ComponentResolver))]. Below my Karaf console printscreen.

Picture from karaf console showing camel-core dependency as active enter image description here

Error showed after diag mybundle on Karaf enter image description here


Solution

  • According to this link, Blueprint needs to find the reference. In this case you could try adding the timeout like below to the blueprint.xml:

    <reference id="Simple" 
        interface="org.apache.camel.spi.ComponentResolver" 
        timeout="30000"/>