Apache Felix

open source OSGi framework

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.[3]

Apache Felix

Basisdaten

Entwickler Apache Software Foundation
Erscheinungsjahr 27. Juni 2007[1]
Aktuelle Version 1.0.0[2]
(11. Oktober 2016)
Programmiersprache Java
Kategorie Standard
Lizenz Apache License 2.0
felix.apache.org

Geschichte Bearbeiten

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.[3] Oscar wurde 2004 zum ersten Mal veröffentlicht und war mit der OSGi Spezifikation Version 3 kompatibel.[4] Am 16. Juli 2007 wurde Version 1.0 veröffentlicht und das Projekt verließ die Inkubationsphase bei Apache.[5]

Unterprojekt von Apache Felix Bearbeiten

Felix ist in Projekte unterteilt, welche auf die einzelnen Aspekte der OSGi Spezifikation eingehen:[6]

  • 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 Bearbeiten

OSGi war ursprünglich für embedded Geräte bzw. IoT geplant.[6] Aber die Modularisierung von Java[7] 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.[8] Um Abhängigkeiten über JAR-Archive und Modularität zu erhalten bzw. aufzulösen kann Felix in IDE's eingebunden werden.[9]

Projekte die Apache Felix einsetzen:[10]

Um mit Felix zu arbeiten wird ein eine aktuelle Programmversion benötigt.[13][14] 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 Bearbeiten

  • Richard S. Hall, Karl Pauls, Stuart McCulloch, David Savage: OSGi in Action - Creating Modular Applications in Java. Manning Publications Co., 2011, ISBN 978-1-933988-91-7, S. 576.
  • Alexandre de Castro Alves: OSGi in Depth. Manning Publications, 2011, ISBN 978-1-935182-17-7, S. 392.
  • Holly Cummins, Timothy Ward: Enterprise OSGi In Action. Manning Publications Co., 2013, ISBN 978-1-61729-013-8, S. 400.

Weblinks Bearbeiten

Einzelnachweise Bearbeiten

  1. projects.apache.org. (abgerufen am 8. April 2020).
  2. Release 1.0.0. 11. Oktober 2016 (abgerufen am 19. Juli 2018).
  3. a b [proposal] Oscar OSGi Project. Abgerufen am 1. Januar 2020.
  4. Oscar - An OSGi framework implementation. Abgerufen am 1. Januar 2020.
  5. Added some documentation and the change logs to framework and main su… · apache/felix@2cd5bed. Abgerufen am 1. Januar 2020 (englisch).
  6. a b Apache Felix - Welcome to Apache Felix. Abgerufen am 1. Januar 2020.
  7. The Java Community Process(SM) Program - JSRs: Java Specification Requests - detail JSR# 277. Abgerufen am 2. Januar 2020.
  8. Webkomponenten mit OSGi – einfach und elegant. In: JAXenter. 4. August 2015, abgerufen am 1. Januar 2020.
  9. OSGi mit Apache Felix und IntelliJ IDEA. Abgerufen am 1. Januar 2020.
  10. Apache Felix - Projects Using Felix. Abgerufen am 1. Januar 2020.
  11. ADempiere/OSGi Integration - ADempiere. Abgerufen am 1. Januar 2020.
  12. OSGI. Ehemals im Original (nicht mehr online verfügbar); abgerufen am 1. Januar 2020.@1@2Vorlage:Toter Link/www.eclipse.org (Seite nicht mehr abrufbar. Suche in Webarchiven)
  13. Apache Felix - Apache Felix Framework Usage Documentation. Abgerufen am 1. Januar 2020.
  14. Apache Felix - Downloads. Abgerufen am 1. Januar 2020.