Search code examples
javaapache-camelapache-karafjbossfusekaraf

featuresBoot not working in Fuse 7 (Karaf 4.2)


I'm migrating our code from Fuse 6 to to Fuse 7 (Developer editions).

We spin up lots of instances, so I need to automate the features loading like in Fuse 6, and it's not working.

I add the following to the /etc/org.apache.karaf.features.cfg

featuresBoot = \
    ...
    transaction-manager-narayana/5.7.2.Final, \ 
    camel-hl7/2.21.0.fuse-000077-redhat-1,\
    camel-mina2/2.21.0.fuse-000077-redhat-1,\
    camel-beanio/2.21.0.fuse-000077-redhat-1

and would expect it to install camel-hl7, camel-mina2 and camel-beanio. But when I check in the client, it shows "Uninstalled".

They install if I do it manually with feature:install

What else do I need to do? Help me Obi-wan.


Solution

  • Mystery solved. Ugh, indeed this is stupid--albeit, not on our part, I would argue.

    The error is a trailing space, following the line continuation backslash on the line above the one where your 'missing' features are. I found this in my org.apache.karaf.features.cfg, and verified it as the culprit. I also see it in what is presumably a copy-paste of a snippet of yours.

        transaction-manager-narayana/5.7.2.Final, \ 
                                                   ^
                                                   |
                                                   here
    

    I feel like it is a major oversight in the Karaf code. Presumably the config-admin service has some format rules--so that is probably the place to address it. If it would at least log an error, that would be good.