-
1. Re: Hello world Java DSL with camel-archetype-java
ffang Jul 5, 2012 7:24 PM (in response to alexcmak)Hi,
There should be a src folder in $FUSE_ESB after you install/start that bundle.
So put files in $FUSE_ESB/data/src should do the trick.
Freeman
-
2. Re: Hello world Java DSL with camel-archetype-java
alexcmak Jul 5, 2012 9:46 PM (in response to ffang)Thanks for your reply.
Does Fuse ESB rely on environment variables? when I installed Fuse ESB there was no %FUSE_ESB% set.
I start fuse-esb here:
C:\fuse-esb-full-7.0.0.fuse-061\fuse-esb-7.0.0.fuse-061\bin
I place the XML messages here
C:\fuse-esb-full-7.0.0.fuse-061\fuse-esb-7.0.0.fuse-061\src\data
nothing happens. I set %FUSE_ESB% and it didn't help.
The camel-archetype-java works perfectly fine with
mvn jetty:run
as the generated ReadMe.txt suggested, but that's not deploy within FuseESB.
Thanks,
Alex
-
3. Re: Hello world Java DSL with camel-archetype-java
ffang Jul 5, 2012 11:05 PM (in response to alexcmak)Hi,
No, Fuse ESB doesn't rely on environment variables FUSE_ESB set.
When I mentioned the $FUSE_ESB, I just refer to the location where you install Fuse ESB.
Did a close look at the camel-archetype-java, the package in pom.xml is plain jar, so it's not designed to be deployed into OSGi container, you should use camel-archetype-blueprint instead which demonstrate how to generate blueprint bundle and deploy to OSGi container. Take a look at to get different camel archetypes purpose.
However, adapt the camel-archetype-java to be able to deployed into OSGi container isn't difficult, you just need edit the generated pom.xml
change
tag, then build it and drop the jar to $FUSE_ESB/deploy folder, then you can see $FUSE_ESB/src/data folder get generated automatically for you, then you can copy message1|2.xml into this folder and you can find in $FUSE_ESB/target there's the output files.
http://camel.apache.org/camel-maven-archetypes.html
Freeman
-
4. Re: Hello world Java DSL with camel-archetype-java
davsclaus Jul 6, 2012 2:56 AM (in response to alexcmak)Hi
You should use the blueprint or spring / spring-dm archetype to create a new project. Then its OSGi based, and will kick start your Camel apps. The Java DSL can still be used, as you can use the to refer to your java classes with the Java DSL.
In the pure Java archetype there is no XML file that automatic kick-start your app in the OSGi container. So your app starts, but don't start your Camel app. For that you would need to code your own OSGi Bundle Activator class and put inside your own JAR, and add a meta data in the MANIFEST.MF file so the OSGi container is aware of your custom OSGi bundle activator so it can start|stop it accordingly to the lifecycle of your bundle. When you have a XML file (blueprint or spring) then that happens automatic for you.
In the future with CDI annotations we may be able to have a way of also automatic to kick-start your app, by you annotation your Java DSL class or something alike.
-
5. Re: Hello world Java DSL with camel-archetype-java
davsclaus Jul 6, 2012 2:57 AM (in response to davsclaus)There is a sample of using at
http://camel.apache.org/spring.html
This applies for blueprint as well.
-
6. Re: Hello world Java DSL with camel-archetype-java
alexcmak Jul 6, 2012 1:56 PM (in response to ffang)Freeman,
Thanks for your reply.
I changed the in pom.xml instead of the file:
Alex Camel Route (1.0.0.SNAPSHOT)
However, dropping messages.xml files in src/data still did not trigger anything.
I will try a camel-archetype-blueprint.
From the list of available archetypes, only these are OSGi ready: camel-archetype-blueprint, camel-archetype-scala and camel-archetype-spring-dm. It would be nice to have a Java one?
Alex
-
7. Re: Hello world Java DSL with camel-archetype-java
alexcmak Jul 6, 2012 3:12 PM (in response to davsclaus)I generated a new camel-archetype-blueprint project.
I replaced the route in the blueprint.xml with a , and then specified a bean id for the class.
I created a new RouteBuilder class with my route written in Java and everything worked.
Thank you all for your responds.
Alex