Blog

Sie befinden sich hier: Blog

Felix OSGi Web-Console in Confluence

Samstag, 01. Mai 2010 @ 14:00 geschrieben von Arno Schumacher

Mit Hilfe des OSGi Deployers, den ich in meinem letzten Blog vorgestellt habe, lässt sich bereits eine Http-Webconsole, etwa die Felix Console, installieren. Voraussetzung für die Lauffähigkeit der Webconsole ist, dass auch eine Implememtierung des OSGi-Http-Services, etwa das Bundle Http-Service, über den Deployer installiert wird. Mit der Java System Variable org.osgi.service.http.port muss vor Start der JVM der Port, auf dem die Webconsole lauscht, spezifiert werden (Default ist Port 80).

Alternativ bietet es sich an die Servlet-Engine auf der Confluence läuft, wieder zu verwenden. Dazu stellt Apache Felix eine Servlet Bridge Implementierung des Http Services bereit. Sie besteht im wesentlichen aus zwei Teilen:

  1. ein Proxy-Servlet, welches in der Confluence Webanwendung deployed werden muss
  2. OSGi Bundles mit der eigentlichen Funktionalität org.apache.felix.http.base org.apache.felix.http.bridge

Ich habe nun versucht, den Http Service nicht über den Web-Deskriptor web.xml zu deployen, sondern als Confluence Servlet Plugin. Das war mit wenigen Modifikationen der Orginal-Implementierung des Proxy-Servlets machbar. Im Prinzip mussten nur

  1. der OSGi BundleContext nicht aus dem ServletContext geholt werden, sondern über eine statische Methode eines neuen Bundle-Activators,
  2. der Context-Path im Proxy-Servlet adjustiert werden, damit die Pfade innerhalb der OSGi Servlets wieder passen.

Die Felix OSGi-Http-Service Implemetierung braucht intern noch eine Referenz des OSGi Logging Services. Die Felix Implementierung org.apache.felix.log habe ich technisch mit dem gleichen Trick, den ich in meinem Blog zur OSGi-Console beschrieben habe, installiert.

Als Proof-of-Concept konnte ich danach die Felix-Webconsole mittels des OSGi-Deployers installieren. Anbei ein paar Screenshots die dies zeigen.

Screenshot: Liste der in Confluence installierten OSGi-Bundles

Screenshot: Felix Web Shell

Screenshot: Details zu der in diesem Blog vorgestellten Http-Bridge in der Felix Webconsole

Links:

  1. Blog - OSGi Console für Confluence: http://www.avono.de/blog/-/asset_publisher/Zp9s/blog/id/20905
  2. Blog - OSGi Deployer für Confluence: http://www.avono.de/blog/-/asset_publisher/Zp9s/blog/id/20912
  3. Confluence Plugin Framework: http://confluence.atlassian.com/display/PLUGINFRAMEWORK/Plugin+Framework+Developer+Documentation
  4. OSGi: http://en.wikipedia.org/wiki/OSGi
  5. Apache Felix OSGi Container: http://felix.apache.org
  6. Spring Dynamic Modules: http://www.springsource.org/osgi

zur Übersicht

Willkommen auf dem avono Blog

Hier auf dem avono Blog finden Sie in regelmäßigen Abständen sowohl technische Neuigkeiten aus unserer Partnerproduktwelt als auch nützliche Entwicklertipps.
Und jetzt kommt der obligatorische Disclaimer: Die Ausführungen der Blogeinträge spiegeln nicht die Meinung der avono AG sondern nur die Sicht der einzelnen Autoren wider.

Kategorien


Suche