Is it possible to use camel-2.16.2 with servicemix 5.6.0 and karaf -2.4.4? - apache-camel

In our application we have encountered impotency issue which is fixed by https://issues.apache.org/jira/browse/CAMEL-9480. we are currently using service mix 5.5.0 with following dependencies.
Activiti 5.17.0
Apache ActiveMQ 5.11.1
Apache Camel 2.15.2
Apache CXF 3.0.4
Apache Karaf 2.4.3 .
So in-order to get fix for CAMEL-9480, i tried to upgrade camel to 2.16.2 by doing service mix upgrade to 5.6.0 which supports following dependencies
Activiti 5.19.0.2
Apache ActiveMQ 5.12.3
Apache Camel 2.16.2
Apache CXF 3.1.4
Apache Karaf 2.4.4
after upgrade i am getting following error during deployment
[caused by: Unable to resolve 295.0: missing requirement [295.0] osgi.wiring.package; (&(osgi.wiring.package=org.eclipse.jetty.util.log)(version>=9.2.0)(!(version>=10.0.0)))]
when i checked camel-jetty-2.16.2.pom,it uses camel-jetty9 and in karaf features its mentioned as below.
<details>camel-jetty9 intend to work with jetty9, so this feature only works in the karaf container which support jetty9, e.g. karaf 4.x</details>
so is it possible to use camel-2.16.2 with karaf 2.4.4 or we need upgrade to karaf 4.x?

There are two bundles and two features:
camel-jetty which support jetty8 (and Karaf 2/3)
camel-jetty9 which support jetty9 and Karaf 4
However, It depends too on the other camel features you use. Some feature uses a feature jetty without versions, other use directly camel-jetty9 or camel-jetty, etc. Sometimes, It necessary to rewrite some feature to fix a version range, but in most case, it works out of the box.

Related

Use KIE 7.73.0.Final with Camel 3.11.7 in Karaf 4.4.0

I want to migrate KIE 6.2.0.Final and DROOLS 6.2.0.Final which work fine with Apache Camel 2.25 in Apache Servicemix 7.1.0-SNAPSHOT (Karaf 4.0.7) to
KIE 7.73.0.Final, DROOLS 7.73.0.Final, Apache Camel 3.11.7 in Apache Karaf 4.4.0
I checked all kie-camel.jar Versions, they use and implement intern camel 2.24. But this jar can not work for me, because the KiePolicy class which implements Policy Class in Camel3 has different Methods than Camel2.
<dependency>
<groupId>org.kie</groupId>
<artifactId>kie-camel</artifactId>
<version>7.73.0.Final </version>
</dependency>
Where can I find the kie-camel jar which using camel 3?
Is there any documentation or Examples which explain using Kie, Drools 7.73.0.Final with Camel 3 in Karaf 4.4.0?
Best regards
Amjad
I looked through the Drools github repositories and it looks like kie-parent pins Camel 2.24.0 up until now. (All releases, and current 'main' branch.)
As of now, there's no official version of kie-camel with a Camel 3 dependency. You'll need to either fork the repository and fix it yourself, find a third-party library that provides the same functionality, or implement the Camel 3 support yourself.

Deploying camel spring application in Apache Karaf 4.2.0

I am trying to deploy camel spring application in apache karaf. I am using maven to resolve the dependencies. The application runs fine in Intellij but when I deploy the application (along with all the project dependencies) in karaf the application won't start.
Can anyone tell me what is the correct way to deploy camel spring application in karaf?
And also the best approach in resolving the project dependencies?
Camel-version: 2.16.5
Karaf: 4.2.0
If the application is not starting, then it might be waiting for some resolvable dependency. Check the log and install the dependency manually using feature:install. Also ensure all libraries are properly mentioned in pom.xml

camel blueprint force usage of log4j

Has anyone been able to use camel-blueprint together with logback? It seems that there are dependencies in camel blueprint which forces you to use log4j even though the log4j dependencies are removed from the pom. After running the project it starts to download the slf4j-log4j12 and then then complains of multiple bindings because it finds both log4j and logback.
I did the same with a camel java project and it worked fine to switch to logback. Does camel-blueprint force you to use log4j as its logging implementation?
Answer found via nabble forum in through discussion with the camel community. For more details go here:
http://camel.465427.n5.nabble.com/camel-blueprint-force-usage-of-log4j-td5772826.html#a5772852
Essentially there are certain dependencies in the maven plugin which uses log4j. For production in JBoss Fuse or Karaf, its Pax logging.

Camel for Karaf 2.3.10

I have to use Apache Karaf 2.3.10 in our environment.
I need to run Apache Camel on karaf.
I am not sure what is the recommended Camel version for karaf 2.3.10.
I was referring to this link for compatibility information.
There is no straight forward answer there.
I want to use Camel 2.13 or above.
I think 2.14.0 is the best bet since, Karaf 2.3.7 is sufficient for it and I have Karaf 2.3.10 in our environment.
NB:
My post on Camel Users forum has not yielded any result so far.
Since Karaf 2.3.7 is compatible with Camel 2.14.0 so Karaf 2.3.10 is still compatible with Camel 2.14.0. The best choice is to use the newest Camel version because there is more bugfixes and more features than in the older one. So you should choose Camel 2.14.x (e.g. 2.14.3)

How do I use Camel 2.15 with the pom.xml generated by Fabric8 Maven archetype

I'm excited about the release of Camel 2.15. I want to use it with Fabric8. How do I modify the pom.xml generated by the Fabric8 Spring Boot archetype so it uses Camel 2.15?
http://fabric8.io/gitbook/springBootContainer.html
It seems to default to 2.13.2
Ah okay so you are using Fabric8 v1. That is no longer maintained in the community, as we moved on to Fabric8 v2 - which is docker and kubernetes based.
For Fabric8 v1 - only the parts related to OSGi / Karaf is supported as part of the JBoss Fuse product. They are working on a new JBoss Fuse 6.2 release that will contained Fabric8 v1. But that version does not support docker / spring-boot etc - only the Karaf/OSGi parts.
I suggest to move on and try Fabric8 v2. For that you would either need a kubernetes platform such as OpenShift3, Google Cloud, or an alternative is to use the Java based implementation which is known as Jube.
The new documentation is here, notice the v2 in the link: http://fabric8.io/v2/index.html

Resources