"But I didn't imagine that taking out of the shelves ActiveMQ, Karaf and Camel versions could be so difficult"
Yes, I know that's why I created Assimbly (assimbly.org) which runs the latest Camel, ActiveMQ together (from Spring Boot and hopefully Karaf 5 as well). I am not that far though as Camel, ActiveMQ and ServiceMix are very extensive to support :) Regards, Raymond On Mon, Aug 22, 2022 at 12:58 PM Ephemeris Lappis < ephemeris.lap...@gmail.com> wrote: > Hello. > > As you remind us, the end of ServiceMix leads us to find alternative > solutions. In our context, our more than 100 projects are running today on > an old redHat Fuse 6.3, and we consider migrating them to a simpler > solution. Initially, ServiceMix should have been a solution. Now our > perspective relies on : > - a separate Active MQ "classic" cluster that is also used out of Camel > contexts by applications running in another part of our k8s cluster... > - "raw" Karaf servers with a very basic initial configuration : the > ActiveMQ client bundles and their dependencies, and the connection factory > to connect to our MQ cluster > - repackaging our Fabric8 projects as Karaf features (this should limit > impacts on our Ansible pipelines that manages provisioning using Jolokia > API) > > But I didn't imagine that taking out of the shelves ActiveMQ, Karaf and > Camel versions could be so difficult : > - ActiveMQ 5.16.5 and Karaf 4.4.1 seem to lead to issues between them > because of some Spring level differences > - I switched to ActiveMQ 5.17.1 (that also requires an upgrade of our java > version since 1.8 is not supported anymore) > - Now the integration with Karaf seems to be better, I can create > connection factories and test them, but the old Camel component > "camel-activemq" that was provided by it is not there. > - So I tried the camel-jms component, but this component seems to be unable > to take into account the JMS connection factory that has been created. > - After setting an explicit reference on the connection factory in the > blueprints, I think that the ActiveMQ bundle of version 2.17.1 manages a > private package "javax.jms" that hides the publicly exported one... > > So... too many issues for something that appeared to be a very simple > integration work... > > Still going ahead :) ! > > Thanks for your help. > > Regards. > > > > Le lun. 22 août 2022 à 12:00, ski n <raymondmees...@gmail.com> a écrit : > > > Hi, > > > > I think this is because of the history of Camel and ActiveMQ. Originally > > Camel was aligned with Apache ServiceMix (https://servicemix.apache.org/ > ) > > > > ServiceMix contained: > > > > - Runtime: Apache Karaf > > - Several integration tools/frameworks: > > > > - Camel > > - ActiveMQ (Classic) > > - CXF (Webservices) > > > > From the end of Camel 2.x and also Camel 3.x, Camel is not aligned with > > Apache ServiceMix anymore (ServiceMix is not maintained anymore and > > probably will become a dormant Apache project in the future). > > > > It's since that time that Camel became neutral towards both the runtime > > used and the broker used. > > > > That means you can use as runtime still Karaf, but also Wildfly, Spring > > Boot, Camel-Main etc. > > > > For broker you can use any JMS Broker (like Apache ActiveMQ Classic, > Apache > > ActiveMQ Artemis, IBMMQ, SonicMQ, RocketMQ etc) or non-JMS Brokers like > > RabbitMQ or Apache Kafka. Camel does not favor one or another. > > > > In general JMS Brokers are mostly tight to the implementation (like IBMMQ > > and the version of that Implementation). That means you always need the > > specific connection factory (which are in the client jars provided by the > > broker vendor). This is not extremely convenient as you already > mentioned, > > but this has always been the case for JMS brokers. As Camel became > > technology neutral is just follows that convention. In case you like some > > examples of creating a connection factory for several different brokers: > > > > > > > https://github.com/assimbly/runtime/blob/master/integration/src/main/java/org/assimbly/integration/service/Connection.java > > > > That said I hope that "connections" will become a construct just like > > components, datasets, beans, languages etc, so that users can attach > ready > > made connections to their components. That could be connection to > brokers, > > database etc (everything that needs client jar files). > > > > As alternative you can also use Apache QPID as a client ( > > https://qpid.apache.org/). QPid has their own broker, but also an > > universal > > client that can connect through various brokers using either JMS or even > > better AMQP (as this is a vendor neutral protocol instead of Java library > > like JMS. Though note that theory of AMQP can be a little more difficult > in > > practice). > > > > I hope this give you some background on the reasons behind the changes in > > the past. > > > > Kind regards, > > > > Raymond > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > On Mon, Aug 22, 2022 at 9:08 AM Ephemeris Lappis < > > ephemeris.lap...@gmail.com> > > wrote: > > > > > Hello. > > > > > > Sorry for the question about "camel-activeemq" (double e) <> > > > "camel-activemq". I thought you were talking about another distinct > Camel > > > component... camel-activemq is in fact the component i'd like to use... > > > > > > I don't understand why using ActiveMQ 2.16.5 and a connection factory > > that > > > I create the same way, the camel-activemq is able to detect the unique > > > instance of the service with no need to add a reference in all our 100+ > > > projects, but the camel-jms do not. > > > > > > Why the camel-activemq that is clearly documented as the preferred one > to > > > connect to ActiveMQ is not provided now in 2.17.1... > > > > > > Thanks again. > > > > > > Regards. > > > > > > > > > Le lun. 22 août 2022 à 07:01, Jean-Baptiste Onofré <j...@nanthrax.net> a > > > écrit : > > > > > > > Hi, > > > > > > > > here's the documentation about camel-activemq: > > > > https://camel.apache.org/components/3.18.x/activemq-component.html > > > > > > > > About the ConnectionFactory, you have to define it as reference in > > > > your route. You can find an example here: > > > > > > > > > > > > > > > > > > https://github.com/jbonofre/camel-amq-redelivery/blob/master/src/main/resources/OSGI-INF/blueprint/route.xml > > > > > > > > > > > > > > https://github.com/jbonofre/camel-amq-redelivery/blob/master/src/main/resources/OSGI-INF/blueprint/connectionfactory.xml > > > > > > > > Regards > > > > JB > > > > > > > > On Sun, Aug 21, 2022 at 10:22 AM Ephemeris Lappis > > > > <ephemeris.lap...@gmail.com> wrote: > > > > > > > > > > Hello. > > > > > > > > > > I've never seen any documentation about "camel-activeemq" : what's > > the > > > > > feature that provides it ? > > > > > > > > > > As I've said before, I've been trying to use camel-jms but > > surprisingly > > > > > my unique connection factory is not detected, and the component > asks > > > for > > > > > an explicit declaration. I thought that one unique connection > factory > > > > > should be taken into account... I've created a unique connection > > > factory > > > > > using "jms:create" connecting to an external ActiveMQ, and I've > > checked > > > > > that the service is present declaring the right interface. Is > there a > > > > > special way of declaring or naming the connexion factory to make it > > > > > available for routes with camel-jms endpoints ? > > > > > > > > > > Thanks a lot for your help. > > > > > > > > > > Regards. > > > > > > > > > > Ephemeris Lappis > > > > > > > > > > Le 21/08/2022 à 08:12, Jean-Baptiste Onofré a écrit : > > > > > > That's correct: activemq-camel has been removed. > > > > > > > > > > > > You can now use camel-jms (recommended) or camel-activeemq. > > > > > > > > > > > > You can wrap your own component if needed, but I would rather > > update > > > > > > to camel-jms (not so hard to do). > > > > > > > > > > > > Regards > > > > > > JB > > > > > > > > > > > > On Fri, Aug 19, 2022 at 12:33 PM Ephemeris Lappis > > > > > > <ephemeris.lap...@gmail.com> wrote: > > > > > >> Hello. > > > > > >> > > > > > >> I've been working before on ActiveMQ 5.16.5, but as this version > > > > leads to > > > > > >> too many problems on Karaf 4.4.1 (spring compatibility among > other > > > > issues), > > > > > >> I've decided to switch to ActiveMQ 5.17.1. > > > > > >> > > > > > >> Before, I think the component camel-activemq was provided by the > > > > feature > > > > > >> activemq-camel, but with 5.17.1 it doesn't appear anymore in > this > > > > feature, > > > > > >> if I'm not wrong... > > > > > >> > > > > > >> I've also tried as you suggested to use the jms component in my > > > > routes, but > > > > > >> the connection factory I've created to connect to my ActiveMQ > > server > > > > is not > > > > > >> taken into account by the component that requires an explicit > > > > connection > > > > > >> factory... Changing all our about 100 camel projects to change > > from > > > > > >> activemq to jms and declare a connection factory reference seems > > to > > > > be a > > > > > >> very bad choice for us... > > > > > >> > > > > > >> So, from both sides I've issues. > > > > > >> > > > > > >> Any idea to get out of this sad situation 😥 ? > > > > > >> > > > > > >> Thanks a lot ! > > > > > >> > > > > > >> Regards. > > > > > >> > > > > > >> PS: Perhaps the documentation on the component should say that > > it's > > > > > >> available "Since Camel 1.0" but also only with restriction > after a > > > > given > > > > > >> version... > > > > > >> > > > > > >> > > > > > >> Le ven. 19 août 2022 à 11:51, Claus Ibsen < > claus.ib...@gmail.com> > > a > > > > écrit : > > > > > >> > > > > > >>> camel-activemq is not out of the box in Apache Camel in Camel > v2. > > > > > >>> It comes from Apache ActiveMQ 5.x instead. > > > > > >>> > > > > > >>> However starting from ActiveMQ 5.17 then they dropped their > > > > camel-activemq > > > > > >>> JAR and its no longer available. > > > > > >>> Instead use the generic camel-jms instead. Or go back to > ActiveMQ > > > > 5.16.x > > > > > >>> > > > > > >>> In the Camel website make sure to browse the components list > for > > > the > > > > Camel > > > > > >>> version you use. The list is different per version. > > > > > >>> > > > > > >>> > > > > > >>> On Fri, Aug 19, 2022 at 11:35 AM Ephemeris Lappis < > > > > > >>> ephemeris.lap...@gmail.com> wrote: > > > > > >>> > > > > > >>>> Hello. > > > > > >>>> > > > > > >>>> I've already asked the question, but probably not clearly... > > > > > >>>> > > > > > >>>> I don't understand why I can't resolve the dependency for : > > > > > >>>> org.apache.camel:camel-activemq:jar:2.25.4 > > > > > >>>> > > > > > >>>> I used this component for a long time on old servicemix > > > > environments, > > > > > >>>> and I'm trying to port my projects to Karaf using Camel 2.25.4 > > > (and > > > > > >>>> ActiveMQ 5.17.1). > > > > > >>>> > > > > > >>>> The component is still documented on the Camel components > list, > > > but > > > > I > > > > > >>>> can't find it. > > > > > >>>> > > > > > >>>> Any help ? > > > > > >>>> > > > > > >>>> Thanks in advance. > > > > > >>>> > > > > > >>>> Regards. > > > > > >>>> > > > > > >>> > > > > > >>> -- > > > > > >>> Claus Ibsen > > > > > >>> ----------------- > > > > > >>> http://davsclaus.com @davsclaus > > > > > >>> Camel in Action 2: https://www.manning.com/ibsen2 > > > > > >>> > > > > > > > > > > -- > > > > > Cet e-mail a été vérifié par le logiciel antivirus d'Avast. > > > > > www.avast.com > > > > > > > > > >