camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Urppa <>
Subject Best practise for deploying my app with Karaf
Date Tue, 23 Oct 2012 10:43:57 GMT
I'm working on an application that has roughly 6-8 OSGi-bundles written by
us. Then we have around 40-50 OSGi-bundles as dependencies from our bundles.

Our application environment will be internal network with no internet
access. The Karaf-instances hosting the application will be running in quite
restricted virtual machines that access database(s) and offer
JMS/RMI/SOAP-endpoints for the clients. I don't think we will be able to
setup any maven repositories.

We do need to update the application from time to time and the application
is pretty mission critical, needs to be running with 99.999+ availability.

Currently I'm thinking that to update the application we would use parallel
Karaf-instances. Something like "APPv1" as the initial child instance; and
if we need to make some update/fix, we would create a new instance, like
"APPv2" and then deploy all the new stuff there, bring it into production
(with different endpoint addresses so it can co-exist for a short while with
the APPv1) and then change all clients to use the new version and then
shutdown and destroy the old version.

So, what would be the best practise to deploy this application?

My thoughts:
- The quick'n'dirty way would be to just copy all jar-files to the
Deploy-folder of Karaf. This doesn't feel very manageable wrt versioning and
packaging. We need to be very exact wrt versions. Prolly works ok for
- Create a KAR-file and make one "feature" of the application and include
all dependencies inside the KAR-file.
- Create a single jar-file and embed all dependencies into it.

Currently the KAR-file feels like a way to go. But how about the concept of
"feature", it feels like some "extension" into Karaf and not really an
"application". But is it just semantics; would a feature from a KAR-file be
as "real" of an application as any other application deployed as plain
jar-files? Would our app lose any services/functionality of Karaf/OSGi if it
would be deployed as a "feature" from KAR-file?

All comments/ides are highly appreciated.

View this message in context:
Sent from the Camel - Users mailing list archive at

View raw message