// | |
// 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] | |
* ... | |