You can deploy a feature in one of the following ways:
Install at the console, using
features:install
.Use hot deployment.
Modify the boot configuration (first boot only!).
After you have created a feature (by adding an entry for it in a feature
repository and registering the feature repository), it is relatively easy to deploy
the feature using the features:install
console command. For example, to
deploy the example-camel-bundle
feature, enter the following pair of
console commands:
karaf@root> features:refreshUrl karaf@root> features:install example-camel-bundle
It is recommended that you invoke the features:refreshUrl
command
before calling features:install
, in case any recent changes were made
to the features in the feature repository which the kernel has not picked up yet.
The features:install
command takes the feature name as its argument
(and, optionally, the feature version as its second argument).
![]() | Note |
---|---|
Features use a flat namespace. So when naming your features, be careful to avoid name clashes with existing features. |
To uninstall a feature, invoke the features:uninstall
command as
follows:
karaf@root> features:uninstall example-camel-bundle
![]() | Note |
---|---|
After uninstalling, the feature will still be visible when you invoke
|
You can hot deploy all of the features in a feature
repository simply by copying the feature repository file into the
directory.InstallDir
/deploy
As it is unlikely that you would want to hot deploy an entire feature repository at once, it is often more convenient to define a reduced feature repository or feature descriptor, which references only those features you want to deploy. The feature descriptor has exactly the same syntax as a feature repository, but it is written in a different style. The difference is that a feature descriptor consists only of references to existing features from a feature repository.
For example, you could define a feature descriptor to load the
example-camel-bundle
feature as follows:
<?xml version="1.0" encoding="UTF-8"?> <features name="CustomDescriptor
"> <repository>RepositoryURL
</repository> <feature name="hot-example-camel-bundle"> <feature>example-camel-bundle</feature> </feature> </features>
The repository element specifies the location of the custom feature repository,
RepositoryURL
(where you can use any of the URL
formats described in Appendix A). The feature,
hot-example-camel-bundle
, is just a reference to the existing
feature, example-camel-bundle
.
If you want to provision copies of the Apache Karaf for deployment on multiple hosts, you might be interested in adding a feature to the boot configuration, which determines the collection of features that are installed when Apache Karaf boots up for the very first time.
The configuration file, /etc/org.apache.felix.karaf.features.cfg
, in
your install directory contains the following settings:
... # # Comma separated list of features repositories to register by default # featuresRepositories=mvn:org.apache.felix.karaf/apache-felix-karaf/1.1.0.3-fuse-SNAPSHOT/xml/features, mvn:org.apache.servicemix.nmr/apache-servicemix-nmr/1.1.0-fuse-SNAPSHOT/xml/features, mvn:org.apache.servicemix/apache-servicemix/4.2.0-fuse-SNAPSHOT/xml/features, mvn:org.apache.camel.karaf/apache-camel/2.x-fuse-SNAPSHOT/xml/features, mvn:org.apache.ode/ode-jbi-karaf/1.3.3-fuse-SNAPSHOT/xml/features # # Comma separated list of features to install at startup # # Will put these back in when we decide to include these components # servicemix-smpp,servicemix-snmp,servicemix-vfs, featuresBoot=activemq,activemq-broker,camel,jbi-cluster,web,servicemix-cxf-bc,servicemix-file, servicemix-ftp,servicemix-http,servicemix-jms,servicemix-mail,servicemix-bean,servicemix-camel, servicemix-cxf-se,servicemix-drools,servicemix-eip,servicemix-osworkflow,servicemix-quartz, servicemix-scripting,servicemix-validation,servicemix-saxon,servicemix-wsn2005,camel-cxf,camel-jms
This configuration file has two properties:
featuresRepositories
—Comma separated list of feature repositories to load at startup.featuresBoot
—Comma separated list of features to install at startup.
You can modify the configuration to customize the features that are installed as Fuse ESB kernel starts up. You can also modify this configuration file, if you plan to distribute Fuse ESB kernel with pre-installed features.
![]() | Important |
---|---|
This method of adding a feature is only effective the first
time a particular Apache Karaf instance boots up. Any changes made
subsequently to the You could force the Apache Karaf instance to revert back to its initial state,
however, by deleting the complete contents of the
|