serviceMix 4.4 does not support ODE any longer, what is the alternative way to do orchestration? - apache-camel

I am new to serviceMix, I downloaded serviceMix 4.5.1 a couple of days ago.
When I tried to install ode in serviceMix using the command
features:install ode
It tells me this:
Error executing command: No feature named 'ode' with version '0.0.0' available
I googled/baidued mass of webs, I got a bad news that:
"Fuse ESB 4.4 does not support Apache ODE. The latest version of ODE is not compatible with Fuse ESB."
which comes from
http://fusesource.com/forums/thread.jspa?messageID=11209
Fuse ESB - ODE installation
So if serviceMix 4.4 does not support ODE any longer, what is the alternative way to do the web service orchestration in serviceMix? I have tried use camel to do this work,but that's not easy.
How about "bpel-g"?(http://code.google.com/p/bpel-g/) is it a good choice? or any other choice?
Any help will be really appreciated.

I like Activiti for processes and orchestration.
Never run it inside Karaf/SMX/Fuse ESB but it should be possible, if not using this instruction.
It also has a nice web explorer for human tasks etc. if you need it and BPMN modeller for rapid desing and visualization

I would recommend to try bpel-g. A colleague and me have been doing some BPEL conformance benchmarking lately (fyi: the benchmarking tool is available at github) and bpel-g turned out have the highest degree of support for the BPEL spec., along with the older ActiveBPEL engine from which bpel-g is a fork. ODE ranked third place.
Another nice feature of bpel-g is that it is indeed actively maintained. I don't know how well it integrates into the infrastructure of Fuse ESB, but since it's deployable as a war, this shouldn't be much of a problem.
UPDATE: Just had a look up: bpel-g seems to integrate with camel and provides a custom handler to invoke camel components. So, basically, the solution outlined in Petters answer also applies to bpel-g and, in contrast to Activiti, it has a message correlation framework. Finally, the barrier to using it should be smaller, as you already know BPEL. As a consequence, bpel-g might be a more suitable solution here.

Related

Gremlin - gremlin queries in tinkerpop documentation not working

I am new to graph databases, gremlin and tinkerpop. We are using them in an application we are building and the setup has been done by some other team.
Now when I try to run the gremlin queries provided in the tinkerpop documentation, many of them are not working and I am getting errors saying 'no signature of method:'.
Can you please guide me on what and how to check, either versions or anything else to make them work.
We are using janusgraph, cassandra as storage backend and elasticsearch for indexing.
Checking the version of Gremlin as you did was the right path to take. There may be minor differences between "z" versions of x.y.z and larger differences between "y" versions of 'x.y.z'. So for 3.2.3 you would want this documentation for TinkerPop:
http://tinkerpop.apache.org/docs/3.2.3/reference/
As of this writing, JanusGraph has not yet released a version with TinkerPop 3.3.0 support and my sense is that it is not quite as trivial as just bumping the version number. 3.3.0 introduced a number of changes that graph providers would likely have to deal with in the form of new test, revised semantics, class renaming, etc. It's not something you would likely be able to do on your own without prior knowledge to how JanusGraph works.
There does appear to be a pull request for 3.3.0 support however so you could try to build that if you'd like an early look at how it works. If not I suggest you consult the 3.2.3 documentation and simply write your Gremlin in that form. 3.3.0 doesn't really introduce a ton of major new Gremlin steps, so you aren't missing much - I think you only get limit() and better addE() semantics. I would be sure to consult javadocs of 3.2.6 for a full list of every Gremlin step that is deprecated so that when JanusGraph does release 3.3.0 support, you are in the best position to upgrade.

Carthage update takes forever and I don't use but two of the services at the moment

Is there some way I can just use a portion of the watson ios sdk? Carthage update downloads and builds about 10+ services that I'm not using and the "All Services" build takes forever.
Is there a way I can cut down the time and specify only the services I use in my app?
(I'm guessing no, but it sure would be nice!)
Thanks for mentioning the hassle you've experienced with the build process, #troyd. It's always good to hear from users, whether for better or for worse--it really helps us to identify and prioritize issues.
The Carthage build process has definitely been a major pain point with the Watson Developer Cloud iOS SDK, and we've been trying to improve it for some time. I think it's gotten better with recent releases.
Can you try using the v0.7.0 release (for Xcode 7 / Swift 2.2) or v0.8.0 release (for Xcode 8 / Swift 2.3)? We removed the "All Services" target and started including binaries with each GitHub release.
I'd love to hear your thoughts on the build process with one of the newer releases. It should be much faster, since it will only build the dependencies (Alamofire, Freddy, Starscream) then download the Watson frameworks.
Unfortunately, there is no way to choose the services to build short of separating each service into its own repository (which isn't on the roadmap right now).

Jboss Fuse 6.1.0 upgrade camel feature version

I have been working with Jboss Fuse 6.1.0.redhat-379 for about a month with great results and higher productivity in EIP. Thank you very much to the community for building such a great product.
Now I am getting ready to deploy my bundles in a dev enviroment with several camel routes and even multiple camel contexts in a single bundle and I'm noticing a weird behavior regarding camel contexts JMX display. The bundle with the multiple camel contexts is only showing the first context, others contexts work fine but they are missing in camel JMX display in hawtio.
After research about this behavior I encountered with this JIRA issue https://issues.apache.org/jira/browse/CAMEL-7545 opened by Claus, describing exactly this problem and manifesting that there are Fix Versions (2.12.4, 2.13.2, 2.14.0)
AFAIK my Jboss Fuse version is distributed with camel 2.12.0.redhat-610379 version and there is a mayor 2.14.0.redhat-620031 version that supposedly will fix this issue and it will be bring many other features like json path and sql generated keys.
Is there a way to upgrade versions of camel features in Jboss Fuse?
UPDATE
There is a similar question for this topic (Updating camel version in fuse esb) accepted answer discourages trying to update the version, however, I think it should be better to permit version upgrades if they fix issues
Not a 100% on this but the rollup patches might include the 2.12 fixed versions. Install the latest patch and see if that fixes the issue.

Is Fuse Fabric free to use in production? Can I use it with ServiceMix?

Fuse Fabric http://fuse.fusesource.org/fabric/index would offer usable features for clustering my ServiceMix solution and it's Camel routes.
Is Fuse Fabric free to use in production? I see mention of Apache 2.0 license in FAQ, but that does yet guarantee that it can be used for no cost
Can it be used with standalone ServiceMix or only with Fuse ESB/JBoss Fuse?
I did see related post https://stackoverflow.com/a/16163165/1469083 that says "Fuse Fabric is in the process of being donated to Apache ServiceMix...", what does this mean exactly and what is the status of this?
Fabric is an OpenSource project, so if you want to use it with ServiceMix, you can. Licence is only involved if you want support from RedHat by buying http://fusesource.com/products/fuse-esb-enterprise/.
Good luck with it,
Gergely
Fuse Fabric is a 100% free and open source project. Its ASL 2.0 licensed. You can grab the source code and use it anyhow you like accordingly to the ASL 2.0 license terms.
The source code is hosted on github at: https://github.com/jboss-fuse/fuse
Fuse Fabric is provided out of the box in the Red Hat JBoss Fuse
product. And this product requires a subscription to use in
production. You can download and try JBoss Fuse and use it as a developer as long you want etc. But a subscription is required for production. Remember this is a product from a commerical vendor, eg Red Hat, and its a business. And someone need to pay the salaries to the great minds that work on these projects. After all we all need food and beers :)
Though to reiterate you can grab the source code for fuse fabric from github and use it anyhow / fork it / contribute to the project etc. We love contributions btw.
And you can build your own binaries to use form the source code. Or grab the binaries from maven central, which is released from time to time.
And Fuse Fabric is still in process of being donated to Apache. This
kind of donation takes time, so have patience. Such a process involves layers, and whatnot, so when layers come in the picture everything takes a long time.

What are the development differences between Apache products and Redhat Fuse?

We have been using the Apache ActiveMQ and Camel products for a while now but want to look at a good base ESB. I've been reading the Redhat site about Fuse but have been unable to find a good summary of the significant differences between Fuse and Apache for coders.
From a designer's/developer's point of view what are the significant differences between Fuse and the Apache Camel and ActiveMQ that we have been using? I get the lovely overview stuff, FuseIDE and the ESB management tools. But I really just want to know of the differences at the code level, i.e. does it introduce more useful Camel endpoints? are there additional libraries of genuinely useful things that will make my life as a designer/coder easier? are there any pitfalls to look out for?
I just need a few pointers to help me in my search, not a tome. Or better still a quick link to a document that goes over all this (ever hopeful :o) !) I have a short time to form a view to go forward on or the opportunity will pass me by.
Thank you.
SK
At the code level there is "no" difference. The process is that we develop on the Apache projects, and sync the code changes to Red Hat / Fuse git repos. There we cherry pick the changes we want to go into our branches, to keep the product stable. As well backport fixes to older branches if our customers need that / etc (eg you can influence that)
The products from Red Hat is also supported on a much longer timespan than the community support from Apache. There is a guranteed lifetime which you can find here: https://access.redhat.com/support/policy/updates/jboss_notes/
There is only a few additional Camel components from Fuse / JBoss Fuse products, which is part of the open source project Fuse Fabric (http://fuse.fusesource.org/fabric/) which is part of the JBoss Fuse products. Fuse Fabric is in the process of being donated to Apache ServiceMix, so it can benefit that community as well, allowing ServiceMix to bundle Fabric out of the box as well. Fabric has a few Camel components that allows sending messages to a any Camel endpoint that load balances automatic in a clustered environment / cloud environment. And there is another Camel component for selecting a master, and only run the route on the master node, and if the master dies, then another node takes over.
I also think that this move is a testimony of the open source
willingness the Fuse team has and continues to have. We do as much as possible
in the opening. For example the new project - hawtio (http://hawt.io/)
is also fully open source, ASL license, github project, anyone can contribute/fork etc.
And the JBoss Fuse product allows to patch itself in production. So if you need a hotfix asap, we can provide a fix as a .zip file which can be patched using a built-in patch tool in the product. This isn't possible from Apache.
A few links for further material (from our old site and the jboss community site)
http://fusesource.com/enterprise-support/support-offerings/
http://fusesource.com/community/apache-committers-and-fuse/
http://www.jboss.org/products/fuse
http://www.davsclaus.com/2013/04/apache-camel-web-dashboard-with-hawtio.html
Disclosure: I work for Fusesource / Red Hat.
On a code level, the difference is very small, if any at all.
What you get from the commersial RedHat package is support, a package that has been tested and operational benefits (that you mention).
It's all about what happends after the code is made - when you put your things to production and the coder is not still around to handle incidents.
Apache ActiveMQ and Camel are open source projects. Redhat fuse bundles them and possibly many other components into one package and so it can be used as one ESB package. I see the biggest difference as the support that you can get. You can get support for something that your organization has not produced. And the tools that comes with the package does help during development and maintenance in my view.

Resources