Camel features using karaf feature xml

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Camel features using karaf feature xml

Ravi Nallappan
Hi,

How do I get camel features automatically installed by a feature xml.

In my scenario, I am creating my own Karaf feature xml to install all dependent bundles before my bundles can be started. From what I observe, few camel features such as camel-core, camel-http4, camel-jackson are installed while camel-blueprint does not get installed, this eventually cause an issue starting my bundle.

Here is a simplified example.

1. Generate maven project
mvn archetype:generate \
-DarchetypeGroupId=org.apache.karaf.archetypes \
-DarchetypeArtifactId=karaf-feature-archetype \
-DarchetypeVersion=4.0.1 \
-DgroupId=com.acme.mediation \
-DartifactId=acme-mediation \
-Dversion=1.3.0-SNAPSHOT \
-Dpackage=com.acme.mediation \
-DinteractiveMode=false

2. Create feature xml as follow
[build@localhost EIP]$ cat acme-mediation/src/main/feature/feature.xml
<?xml version="1.0" encoding="UTF-8"?>
<features name="${project.artifactId}-${project.version}" xmlns="http://karaf.apache.org/xmlns/features/v1.0.0">
        <repository>mvn:org.apache.camel.karaf/apache-camel/2.15.2/xml/features</repository>
    <feature name='${project.artifactId}-common' description='${project.name}' version='${project.version}'>
        <details>${project.description}</details>
        <feature version="2.15.2" prerequisite="true" dependency="true">camel</feature>
        <feature version="2.15.2" prerequisite="true" dependency="true">camel-blueprint</feature>
        <feature version="2.15.2" prerequisite="true" dependency="true">camel-jdbc</feature>
        <feature version="2.15.2" prerequisite="true" dependency="true">camel-http4</feature>
        <feature version="2.15.2" prerequisite="true" dependency="true">camel-jackson</feature>
    </feature>
</features>

3. Add following to pom.xml (I am using Nexus as MRM)
    <distributionManagement>
        <snapshotRepository>
            <id>snapshots</id>
            <url>http://localhost:8081/nexus/content/repositories/snapshots</url>
        </snapshotRepository>
    </distributionManagement>

4. Deploy the feature
mvn deploy

5. Install the feature in karaf (4.0.1)
dev@ubuntu:~/apache-karaf-4.0.1$ bin/karaf
karaf@root()> feature:repo-add mvn:com.acme.mediation/acme-mediation/1.3.0-SNAPSHOT/xml/features
karaf@root()> feature:install acme-mediation-common
karaf@root()> feature:list -i
Name                   | Version           | Required | State   | Repository                    | Description
-------------------------------------------------------------------------------------------------------------------------------------------------
acme-mediation-common | 1.3.0.SNAPSHOT   | x        | Started | acme-mediation-1.3.0-SNAPSHOT | acme-mediation-feature
aries-proxy           | 4.0.1             |          | Started | standard-4.0.1                | Aries Proxy
aries-blueprint       | 4.0.1             | x        | Started | standard-4.0.1                | Aries Blueprint
feature               | 4.0.1             | x        | Started | standard-4.0.1                | Features Support
shell                 | 4.0.1             | x        | Started | standard-4.0.1                | Karaf Shell
shell-compat           | 4.0.1             | x        | Started | standard-4.0.1                | Karaf Shell Compatibility
deployer               | 4.0.1             | x        | Started | standard-4.0.1                | Karaf Deployer
bundle                 | 4.0.1             | x        | Started | standard-4.0.1                | Provide Bundle support
config                 | 4.0.1             | x        | Started | standard-4.0.1                | Provide OSGi ConfigAdmin support
diagnostic             | 4.0.1             | x        | Started | standard-4.0.1                | Provide Diagnostic support
instance               | 4.0.1             | x        | Started | standard-4.0.1                | Provide Instance support
jaas                   | 4.0.1             | x        | Started | standard-4.0.1                | Provide JAAS support
log                   | 4.0.1             | x        | Started | standard-4.0.1                | Provide Log support
package               | 4.0.1             | x        | Started | standard-4.0.1                | Package commands and mbeans
service               | 4.0.1             | x        | Started | standard-4.0.1                | Provide Service support
system                 | 4.0.1             | x        | Started | standard-4.0.1                | Provide System support
kar                   | 4.0.1             | x        | Started | standard-4.0.1                | Provide KAR (KARaf archive) support
ssh                   | 4.0.1             | x        | Started | standard-4.0.1                | Provide a SSHd server on Karaf
management             | 4.0.1             | x        | Started | standard-4.0.1                | Provide a JMX MBeanServer and a set of MBeans in
wrap                   | 0.0.0             | x        | Started | standard-4.0.1                | Wrap URL handler
spring-dm             | 1.2.1             |          | Started | spring-4.0.1                  | Spring DM support
spring                 | 3.2.14.RELEASE_1 |          | Started | spring-4.0.1                  | Spring 3.2.x support
spring-tx             | 3.2.14.RELEASE_1 |          | Started | spring-4.0.1                  | Spring 3.2.x Transaction (TX) support

* In this simplified example, I don’t get any of the specified camel features installed even when I specified it in my feature xml.

Thanks and regards,
Ravi Nallappan