blob: b3cde46a6cedffe45f662831f5304c0a7c38def0 [file] [log] [blame]
//
// Licensed 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.
//
= Features
== Standard Features
* *Hot deployment*: simply drop a file in the `deploy` directory, Apache Karaf will detect the type of the file and
try to deploy it.
* *Complete Console*: Apache Karaf provides a complete Unix-like console where you can completely manage the container.
* *Dynamic Configuration*: Apache Karaf provides a set of command dedicated for the management of the configuration files.
All configuration files are centralized in the `etc` folder. Any change in a configuration file is taken on the fly.
* *Advanced Logging System*: Apache Karaf supports a large set of Logging framework (slf4j, log4j, etc). Whatever the
logging framework you use, Apache Karaf centralizes the configuration in one file.
* *Provisioning*: Apache Karaf supports a large set of URL where you can install your application (Maven repository, HTTP,
file, etc). It also provides the concept of "Karaf Feature" which is a way to describe your application.
* *Management*: Apache Karaf is an enterprise-ready container, providing a lot of management indicators and operations
via JMX.
* *Remote*: Apache Karaf embeds an SSHd server allowing you to use the console remotely. The management layer is also
accessible remotely.
* *Security*: Apache Karaf provides a complete security framework (based on JAAS), and providing RBAC (Role-Based Access
Control) mechanism for console and JMX.
* *Instances*: multiple instances of Apache Karaf can be managed directly from a main instance (root).
* *OSGi frameworks*: Apache Karaf is not tight to one OSGi framework. By default, Apache Karaf runs with Apache Felix
Framework, but you can easily switch to Equinox (just change on property in a configuration file).
!/images/karaf.png!
== Enterprise features
* WebContainer (JSP/Servlet support, including WAR archive deployment support)
* Naming (JNDI)
* Transaction (JTA)
* DataSources (JDBC)
* MOM (JMS)
* Persistence (JPA)
* EJB
* CDI
* HA/failover and cluster
== External Features
As a very extend-able container, OpenSource and commercial projects provide "native" support of Apache Karaf.
We can mention (this list is not exhaustive):
* [Apache ActiveMQ|http://activemq.apache.org/osgi-integration.html]
* [Apache Camel|http://camel.apache.org/karaf.html]
* [Apache CXF|http://cxf.apache.org]
* [JClouds|http://www.jclouds.org/documentation/userguide/karaf/]
* [Apache Wicket|http://team.ops4j.org/wiki/display/paxwicket/Install+Pax+Wicket]
* ...