1. Quick start
If you are in a hurry to have Apache Felix Karaf up and running right away, this section will provide you with some basic steps for downloading, building (when needed) and running the server in no time. This is clearly not a complete guide so you may want to check other sections of this guide for further information.
All you need is 5 to 10 minutes and to follow these basic steps.
Background
Apache Felix Karaf is a small and lightweight OSGi based runtime. This provides a small lightweight container onto which various bundles can be deployed.
Apache Felix Karaf started life as the Apache ServiceMix kernel.
Don't be surprised by any transitional references which remain.
Getting the software
At this time you have one option to get the software. The fastest and easiest way is to get the binary directly from the Apache site. Since this article is intended to help you to have Apache Felix Karaf up and running in the fastest way only the binary download will be covered at this time.
Prerequisites
Although this installation path is the fastest one, still you will need to install some software before installing Karaf.
Karaf requires a Java 5 environment to run. Refer to http://java.sun.com for details on how to download and install J2SE 1.5 or greater.
Download binaries
Karaf is still working towards it's first release at Felix.
Binaries are available from Apache ServiceMix .
Alternatively see Quick Start (Source).
Depending on the platform you plan to install and run Karaf you will select the appropriate installation image. Open a Web browser and access the following URL, there you will find the available packages for download (binaries and source code).
http://felix.apache.org/site/downloads.cgi
Select the file compression format compatible with your system (zip for windows, tar.gz for unixes) by clicking directly on the link, download it and expand the binary to your hard drive in a new directory; for example in z:\servicemix - from now on this directory will be referenced as <KARAF_HOME>. Please remember the restrictions concerning illegal characters in Java paths, e.g. !, % etc.
The installation of Karaf is as simple as uncompressing the .zip or .tar files. The next step is to start the server.
Start the server
With Karaf already installed, open a command line console and change directory to <SERVICEMIX_HOME>. To start the server, run the following command in Windows:
bin\karaf.bat
respectively on Unix:
bin/karaf
You should see the following informations on the command line console:
__ __ ____
/ //_/____ __________ _/ __/
/ ,< / __ `/ ___/ __ `/ /_
/ /| |/ /_/ / / / /_/ / __/
/_/ |_|\__,_/_/ \__,_/_/
Apache Felix Karaf (1.0.0)
Hit '<tab>' for a list of available commands
and '[cmd] --help' for help on a specific command.
karaf@root>
You can now run your first command. Simply type the <tab>
key in the console.
karaf@root>
admin:change-port admin:connect admin:create admin:destroy admin:list admin:start
admin:stop config:cancel config:edit config:list config:propappend config:propdel
config:proplist config:propset config:update features:addUrl features:install features:list
features:listUrl features:refreshUrl features:removeUrl features:uninstall log:display log:display-exception
log:get log:set osgi:bundle-level osgi:headers osgi:install osgi:list
osgi:ls osgi:refresh osgi:resolve osgi:restart osgi:shutdown osgi:start
osgi:start-level osgi:stop osgi:uninstall osgi:update packages:exports packages:imports
shell:cat shell:echo shell:exec shell:grep shell:info shell:java
shell:printf shell:sleep shell:sort shell:tac ssh:ssh ssh:sshd
karaf@root>
You can then grab more specific help for a given command using the --help
option for this command:
karaf@root> admin:create --help
DESCRIPTION
admin:create
Create a new instance.
SYNTAX
admin:create [options] [VAL]
ARGUMENTS
VAL Name of the new Karaf instance
OPTIONS
-p, --port
Port number for remote shell connection
--help
Display this help message
-l, --location
Location of the new instance on the file system
karaf@root>
Note that the console supports tab completion, so you just need to enter ad <tab> cr <tab>
instead of admin:create
.
#top
Deploy a sample application
While you will learn in the remainder of this guide how to use and leverage Apache Felix Karaf, we will just use the pre-built packaging for now.
In the console, run the following commands:
features:install spring-dm osgi:install -s mvn:org.apache.geronimo.specs/geronimo-activation_1.1_spec/1.0.2 osgi:install -s mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.stax-api-1.0/1.1.0 osgi:install -s mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jaxb-api-2.1/1.1.0 osgi:install -s mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jaxb-impl/2.1.6_1 osgi:install -s mvn:org.apache.camel/camel-core/1.4.0 osgi:install -s mvn:org.springframework/spring-tx/2.5.6.SEC01 osgi:install -s mvn:org.apache.camel/camel-spring/1.4.0 osgi:install -s mvn:org.apache.camel/camel-osgi/1.4.0 osgi:install -s mvn:org.apache.camel/camel-example-osgi/1.4.0
This commands will download, install and start the specified jars.
The example installed is using Camel to start a timer every 2 seconds and output a message on the console.
>>>> MyTransform set body: Wed Jan 02 23:34:19 CET 2008 >>>> MyTransform set body: Wed Jan 02 23:34:21 CET 2008
Stopping and uninstalling the sample application
To stop this demo, run the following command:
osgi:list | grep example
In the output, locate the line containing camel-example-osgi
and note the id of the bundle in the first column. Then launch the following command:
osgi:stop [id]
If you wish, you can start again the sample by using the following command:
osgi:start [id]
To uninstall the demo, run the following command:
osgi:uninstall [id]
Common Problems
- Launching Karaf can result in a deadlock in Felix during module dependency resolution. This is often a result of sending a SIGINT (control-C) to the process when it will not cleanly exit. This can corrupt the caches and cause startup problems in the very next launch. It is fixed by emptying the component cache:
rm -rf data/cache/*
Stopping Karaf
To stop Karaf from the console, enter ^D
in the console:
^D
Alternatively, you can also run the following command:
osgi:shutdown
Summary
This document showed you how simple it is to have Apache Felix Karaf up and running. The overall time for getting the server running should be less than five minutes if you have the prerequisite (Java 1.5) already installed. Additionally, this article also showed you how to deploy and test a simple Apache Camel application in less than five minutes.