Apache Felix ist ein Open-Source-Framework für die Referenz-Implementierung der OSGi-Spezifikation. Die Codebasis wurde von OW2 aus dem Oscar-Projekt gespendet.

Geschichte Im Juli 2005 wurde der Wunsch geäußert, dass auf der Codebasis von Oscar ein neues Apache-Projekt gestartet werden soll. Der Code wurde von Richard Hall gespendet. Oscar wurde 2004 zum ersten Mal veröffentlicht und war mit der OSGi-Spezifikation Version 3 kompatibel. Am 16. Juli 2007 wurde Version 1.0 veröffentlicht und das Projekt verließ die Inkubationsphase bei Apache.

Unterprojekt von Apache Felix Felix ist in Projekte unterteilt, welche auf die einzelnen Aspekte der OSGi-Spezifikation eingehen: Config Admin - Eine Implementierung der OSGi Configuration Admin-Dienstspezifikation zum Verwalten der Eigenschaften der Bundle-Konfiguration Dependency Manager - Ein API-basiertes Komponentenmodell zur Vereinfachung der OSGi-basierten Entwicklung Event Admin - Eine Implementierung der OSGi Event Admin-Dienstspezifikation für die ereignisbasierte Kommunikation File Install - Ein einfacher, verzeichnisbasierter Verwaltungsagent zum Verwalten der Bundle-Bereitstellung Framework - Eine Implementierung des OSGi R6-Kernframeworks Gogo - Eine erweiterte Shell für die Interaktion mit OSGi-Frameworks Health Checks - Ein erweiterbares Framework zur Überwachung des Status des OSGi-Containers zur Laufzeit HTTP-Dienst - Eine Implementierung der OSGi-Spezifikation für HTTP-Whiteboards und HTTP-Dienste Inventory Printer - Ein einfaches und erweiterbares Framework zum Abrufen von Inventardaten zu Anwendungen, die in einem OSGi-Framework ausgeführt werden iPOJO - Ein ausgeklügeltes serviceorientiertes Komponentenmodell zur Vereinfachung der OSGi-basierten Entwicklung Protokoll - Eine einfache, speicherbasierte Implementierung der OSGi-Protokolldienstspezifikation Felix Logback - Apache Felix Logback ist eine kleine Integration des Logback-Backends mit OSGi Maven Bundle Plugin - Ein Maven-Plugin zur Vereinfachung der Erstellung von Bundles Maven SCR-Plugin - Ein Maven-Plugin zur Vereinfachung der Verwendung deklarativer Dienste Metatype - Eine Implementierung des OSGi-Metatype-Dienstes zur Beschreibung von Typen, die von Bundles benötigt werden OSGi-Bundle-Repository - Ein Bundle-Repository-Service, der das Erkennen und Bereitstellen von Bundles und deren Abhängigkeiten vereinfacht Preferences - Eine Implementierung der OSGi-Voreinstellungsdienstspezifikation zum Speichern von Einstellungen und Voreinstellungen Remote Shell - Eine textbasierte Remote-Schnittstelle zur Apache Felix Shell Service Component Runtime - Eine Implementierung der OSGi Declarative Services-Spezifikation, die ein serviceorientiertes Komponentenmodell zur Vereinfachung der OSGi-basierten Entwicklung bereitstellt Shell - Ein sehr einfacher Shell-Service, der als Bundle für die Interaktion mit einer OSGi-Framework-Instanz implementiert ist Shell TUI - Eine einfache, textbasierte Schnittstelle zur Apache Felix Shell UPnP - Eine Implementierung der OSGi UPnP-Gerätedienstspezifikation für die UPnP-Geräteintegration Webkonsole - Ein einfaches Tool zum Überprüfen und Verwalten von OSGi-Framework-Instanzen mit ihrem bevorzugten Webbrowser.

Einsatzbereich OSGi war ursprünglich für embedded Geräte bzw. IoT geplant. Aber die Modularisierung von Java und deren Umsetzung bzw. Spezifikation mit OSGi hat den Einsatzbereich erweitert, da so die Software-Entwicklung mehr Funktionalität in die Java-/Webanwendung bringen konnte. Um Abhängigkeiten über JAR-Archive und Modularität zu erhalten bzw. aufzulösen kann Felix in IDEs eingebunden werden.

Projekte, die Apache Felix einsetzen: Apache Karaf Apache ServiceMix Apache Sling Ascert VersaTest DySoWeb GlassFish OW2 JOnAS iDempiere hat es eingesetzt, ist aber gewechselt zu Eclipse Equinox Eclipse Jetty

Um mit Felix zu arbeiten, wird eine aktuelle Programmversion benötigt. Nach dem Auspacken des Archives kann durch einen Aufruf aus der Befehlszeile mit folgendem Befehl das Framework gestartet werden:java -jar bin/felix.jar

Literatur

Weblinks Felix Committee auf der Apache Webseite Git Repository Apache Felix auf Open Hub

Einzelnachweise

Kategorie:Java-Technologie Kategorie:Java-Bibliothek Felix