Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What exactly is Apache Karaf?

I am a little bit confused about what Apache Karaf exactly is.

Can you say that Apache Karaf includes, amongst other things:

  • Apache Felix (which is an implementation of the OSGi 4.2 framework)
  • Apache Aries (which is an implementation of the Blueprint standard)
like image 496
Frizz Avatar asked Jun 27 '13 18:06

Frizz


People also ask

What is feature in Karaf?

In that case, Karaf can automatically install additional bundles or features providing the capabilities to satisfy the requirements. A feature has a complete lifecycle: install, start, stop, update, uninstall. By default, the feature service is able to detect bundles which need to be refreshed.

What is Karaf shell?

Overview. Karaf provides a powerful console and a set of commands that can be used to perform various tasks. Commands can be located in the root shell or in a sub-shell. A sub-shell is a group of related commands, like commands related to the OSGi framework or the log system.

What is ServiceMix used for?

ServiceMix uses ActiveMQ to provide remoting, clustering, reliability and distributed failover. ServiceMix is completely integrated into Apache Geronimo, which allows you to deploy JBI components and services directly into Geronimo.

What is a OSGi container?

OSGi facilitates creating and managing modular Java components (called bundles) that can be deployed in a container. As a developer, you use the OSGi specification and tools to create one or more bundles. OSGi defines the lifecycle for these bundles. It also hosts them and supports their interactions in a container.


1 Answers

TLDR: Apache Karaf is much more 'batteries-included'. It can also run on any OSGI runtime.

Apache Felix (which is an implementation of the OSGi 4.2 framework)

Sort of. Apache Karaf can use Apache Felix. Apache Karaf can also use Equinox or another OSGi runtime. By default, the Apache Karaf standard download does come with Apache Felix.

Apache Aries (which is an implementation of the Blueprint standard)

Again, sort of. The standard download of Apache Karaf does come with Apache Aries by default.

Now let's talk about what OSGI (Apache Felix, Equinox) is and what Apache Karaf is:

OSGI is very simple. You can start an OSGI runtime in your application and not even notice it. The shell, the ability to hot deploy from a folder, install from a maven repo, etc..These are all extras that OSGI doesn't have to do and are provided by additional projects like Karaf, GOGO, or Pax

Now on to Apache Karaf:

It is basically an OSGI environment that provides some additional goodies on top of a standard OSGI implementation. Because Apache Karaf is just built on standard OSGI, it can in theory run on any OSGI runtime. This gives you a uniform interface for working with OSGI runtimes.

Some goodies Apache Karaf provides that you won't see in a Apache Felix without some additional work:

  • Folder based hot deployment
  • A (IMHO) better default console than gogo. (org.apache.karaf.shell)
  • Remote SSH access to that console. (org.apache.karaf.shell.ssh)
  • Centralized Logging System. (org.apache.karaf.log)
  • It has it's own way of provisioning bundles and start levels. (org.apache.karaf.features)
  • Karaf has it's own maven plugins as well.

Pretty much anything here:

http://mvnrepository.com/search.html?query=org.apache.karaf*

I mentioned Karaf having it's own way of provisioning bundles and start levels. Apache Karaf also comes with a bunch of pre-defined ones to get started with. I know Apache Felix comes with some as well, through OBR, but Apache Karaf comes much more 'batteries-included'.

like image 139
Sheena Artrip Avatar answered Oct 09 '22 17:10

Sheena Artrip