Overview of Apache Karaf features
mainApache Karaf is a modular runtime that supports various frameworks and programming models (REST/API, web, Spring Boot, etc.). It can be deployed as a mutable or immutable application.
Key capabilities include:
- Hot deployment: Deploy applications by placing them in the
deploydirectory. - Dynamic configuration: Centralized configuration is managed in the
etcdirectory using various formats (properties, JSON, etc.). - Logging System: Centralized logging via Log4J, supporting multiple APIs (JDK 1.4, JCL, SLF4J, Avalon, Tomcat, etc.).
- Provisioning: Libraries and applications can be downloaded, installed, and started automatically via a resolver that handles required components.
- Extensible Shell console: A text-based console for managing services, installing applications, and managing state. It can be extended by deploying new commands dynamically.
- Remote access: Connect to the kernel using any SSH client to issue console commands.
- Security & ACL: Role-Based Access Control (RBAC) provided via a JAAS-based framework.
- Instance Management: Commands are available within the console to create, delete, start, and stop Karaf instances.
- Enterprise features: Built-in support for JDBC, JPA, JTA, JMS, etc.
- HTTP Service: A full-featured web container for deploying web applications.
- REST & Services: Support for service frameworks like Apache CXF.
- Extensibility: The runtime can be extended via Karaf subprojects (Decanter, Cellar, Cave, etc.) or third-party projects like Apache Camel.