tree: 27f1699fe95823faf5e1b08980edf468eb1dd6d0 [path history] [tgz]
  2. karaf-command-example-api/
  3. karaf-command-example-command/
  4. karaf-command-example-features/
  5. karaf-command-example-provider/
  6. pom.xml

Apache Karaf Shell Command example


This example shows how to create a shell command.

It provides a very simple command, calling a BookingService.


  • karaf-command-example-api is a common bundle providing the Booking POJO and the BookingService interface.
  • karaf-command-example-provider is a very simple Karaf bundle providing BookingService implementation.
  • karaf-command-example-command is the actual bundle providing the Karaf shell command.
  • karaf-command-example-features provides a Karaf features repository used for the deployment.


The build uses Apache Maven. Simply use:

mvn clean install

Features and Deployment

On a running Karaf instance, register the features repository:

karaf@root()> feature:repo-add mvn:org.apache.karaf.examples/karaf-command-example-features/LATEST/xml

Then, you can install the service provider feature:

karaf@root()> feature:install karaf-command-example-provider

The shell commands can be installed with the corresponding feature:

karaf@root()> feature:install karaf-command-example


Once you have installed the feature, you can see new commands available in the Apache Karaf shell.

booking:add command adds a new booking in the booking service. For instance:

karaf@root()> booking:add AF520 Doe

booking:list command lists the current bookings:

karaf@root()> booking:list
ID      │ Flight │ Customer
2226065 │ AF520  │ Doe

booking:remove command removes a booking from the booking service:

karaf@root()> booking:remove 2226065