/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ Karaf Feature EXAMPLE ===================== Purpose ------- Demonstrate how to build a Feature. A feature is a useful tool for OSGi developers to specify multiple bundles (and possibly other features) into a larger deployment group. In this way a feature can be thought of as configuring together components into an application. Please note that a feature file only specifies resources to be deployed together, for a deployable artifact that contains all resources please see Apache Karaf Archives. Prerequisites for Running this Example -------------------------------------- You must have the following installed on your machine: - JDK 1.6 or higher. - Apache Maven 2.2.1 or higher. Building and Deploying ---------------------- This example will produce a feature xml file. This feature picks up one bundle, commons-collections, for deployment. To build the demo feature invoke the following command: mvn install To deploy the feature you may copy the feature xml file generated in target/classes folder to the Karaf deploy folder OR, you may invoke the following commands from the Karaf console: karaf@root> features:addurl file:/Path/To/Karaf/demos/deployer/feature/target/classess/feature.xml karaf@root> features:list | grep commons-collections [uninstalled] [0.0.0 ] commons-collections repo-0 karaf@root> features:install commons-collection To verify the feature has been succesfully installed issue the following command: karaf@root> features:list | grep commons-collections [installed ] [0.0.0 ] commons-collections repo-0 To verify the commons-cllections bundle is active invoke: karaf@root> list START LEVEL 100 , List Threshold: 50 ID State Blueprint Level Name [ 50] [Active ] [ ] [ 60] Commons Collections (3.2.1) Note: Using Karaf archetype to generate a feature project: --------------------------------------------------------- The karaf-feature-archetype creates a Maven skeleton project that will generate a feature xml file. On the command line issue the following command to create a feature project: mvn archetype:generate \ -DarchetypeGroupId=org.apache.karaf.archetypes \ -DarchetypeArtifactId=karaf-feature-archetype \ -DarchetypeVersion=${version} \ -DgroupId=org.myorg \ -DartifactId=my-feature \ -Dversion=1.0.0-SNAPSHOT \ -Dpackage=org.myorg.package For more information on using the karaf-bundle-archetype please visit: http://karaf.apache.org/manual/latest-2.2.x/developers-guide/archetypes.html