| // |
| // 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. |
| // |
| |
| == Overview |
| |
| Apache Karaf is a OSGi-based runtime which provides a lightweight container onto which various components and applications can be deployed. |
| |
| Apache Karaf uses either Apache Felix Framework or Eclipse Equinox OSGi frameworks, and provide additional features on top of the framework. |
| |
| Apache Karaf can be scaled from a very lightweight container to a fully features enterprise service: it's a very flexible and extensible container, covering all the major needs. |
| |
| Here is a short list of provided 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). |
| |
| image::karaf.png[] |
| |
| |