Workshop – Building OSGi based applications
Das OSGi Users' Forum Germany hat am 15. April 2010 in Darmstadt einen ganztägigen Workshop zum Themenschwerpunkt "Building OSGi based applications" veranstalltet.
Der Workshop sollte einen Überblick über die momentan verfügbaren Tools und Methoden geben, mit denen OSGi basierende Anwendungen gebaut werden können. Es sollten die unterschiedlichen Paradigmen zum Bauen und Verwalten von Abhängigkeiten (Manifest first, POM first, ...) und deren Vor- und Nachteile dargestellt werden.
Um einen Praxisbezug und eine Vergleichbarkeit herzustellen, wurde in allen Vorträgen die gleiche OSGi Beispielanwendung genutzt, die Anwendung kann über GitHub bezogen werden.
Einen sehr guten Überblick über den gesamten Workshop gibt der Blog post von Ralf Ebert.
Übersicht - Workshop Agenda
Einführung - Andreas Kraft, Christian Baranowski, Jochen Hiller
Folien: Download
Eclipse PDE Build, PluginBuilder - Markus Barchfeld
Screencast: PDE Build
Source: Download
Eclipse Buckminster - Achim Demelt
Folien: Download
Source: Download
ant4Eclipse - Nils Hartmann, Gerd Wütherich
Folien: Download
Source: Download
Manifest first using ANT - George Mesesan
Folien: Download
Spring Bundlor - Christian Baranowski
Folien: Download
Source: Download
PAX - Tools für den OSGi Alltag - Patrik Baumgartner
Folien: Download
Development Workflow mit Maven - Roman Roelofsen
Folien: Download
Abschlussdiskussion Building OSGi based applications - Christian Baranowski, Jochen Hiller
Folien: Download
Workshop Programm im Detail
Eclipse PDE Build, PluginBuilder (Markus Barchfeld)
Buildautomatisierung mit den Eclipse Bordmitteln, dem PDE Build. Dabei gibt es etwas Unterstützung durch den Pluginbuilder.
Über den Referent:
Markus Barchfeld übernimmt in seinen Projekten immer wieder die Aufgabe der Buildautomatisierung. Da er aber eigentlich lieber programmiert, hat er das Pluginbuilder Projekt als einen Werkzeugkasten rund um den PDE Build initiiert.
Ressourcen
Links
Eclipse Buckminster (Achim Demelt)
Buckminster ist die konsequente Übertragung des Eclipse IDE Builds in ein
Headless Environment: Die gleiche Konfiguration, der gleiche Workspace, das
gleiche Ergebnis - nur eben ohne UI. Es gibt keine bösen Überraschungen mehr
mit fehlgeschlagenen Builds auf dem Integration Server, wenn der Entwickler
sagt: "In meiner IDE tut's...".
Die Session zeigt den Bau der Demo Applikation mit Buckminster und gibt
Einblick in dessen Funktionsweise.
Über den Referent:
Achim Demelt ist Technology Advisor bei der eXXcellent solutions gmbh in Ulm.
Er hat den klassischen Weg vom Buckminster User über Bug Reporter und Patch
Contributor zum Buckminster Committer beschritten und freut sich immer, wenn
sich jemand für das leidige Thema "Build" begeistern kann.
Ressourcen
Links
ant4Eclipse (Nils Hartmann, Gerd Wütherich)
Ziel von Ant4Eclipse ist es, mit möglichst wenig Konfigurationsaufwand
Eclipse-Projekte aus Ant heraus bauen zu können. Neben dem Support für
Eclipse Java-Projekte (JDT) bietet Ant4Eclipse mittlerweile auch die
Möglichkeit, Eclipse PDE Projekte (Plug-ins,
OSGi Bundles) auf reiner Ant-Basis bauen zu können. Dabei verfolgt
Ant4Eclipse den Manifest-First-Ansatz, verwendet also die Bundle
Manifest-Datei um die Projekt-Abhängigkeiten OSGi-konform aufzulösen.
Diesen Ansatz stellen praktisch an Hand des Workshop-Beispiels vor.
Über die Referenten:
Dipl.-Inform. Gerd Wütherich arbeitet als freiberuflicher
Softwarearchitekt und -berater. Er verfügt über langjährige Erfahrung
im Entwurf und in der Realisierung großer, Java-basierter
Anwendungssysteme, die er in unterschiedlichen Projekten im Finanz-
und Logistikbereich gesammelt hat. Darüber hinaus ist er regelmäßiger
Referent auf Konferenzen, Autor verschiedener Fachartikel und Koautor
des Buchs "Einführung in die OSGi Service Platform". Weitere
Informationen unter http://www.gerd-wuetherich.de.
Nils Hartmann ist Softwareentwickler und -architekt. Seine langjährige
Erfahrung in der Entwicklung von Java-EE-Anwendungen hat er in
unterschiedlichen Projekten gesammelt. Weitere Schwerpunkte seiner
Arbeit sind die Themen Konfigurations- und Build-Managment. Nils ist
Koautor des Buchs "Die OSGi Service Platform" sowie Mitbegründer des
Open-Source-Projektes "ant4eclipse". Er ist unter
http://www.nilshartmann.net zu erreichen.
Ressourcen
Links
Manifest first using ANT (George Mesesan)
Wir entwickeln bei MicroDoc seit mehreren Jahren OSGi Anwenungen,
hauptsächlich in Embedded Bereich. Wir haben bis jetzt mit IBM SMF, Eclipse
Equinox und Prosyst mBS geabeitet. Wir entwickeln mit Agilen Prozessen,
Test-Driven Development und Continuous Integration. Um unsere OSGi Projekte
zu builden, haben wir einen Ant-basierten Buildsystem entwickelt.
Unser Buildsystem benutzt Ant, Ant-contrib und eigene Ant Tasks und hat
einen hybriden Approach: wir lesen Bundle Abhängigkeiten und
Classpathsettings aus der MANIFEST.MF , bzw. aus der .classpath Dateien,
aber wir benutzen auch einen POM-ähnliches Projektstruktur mit
standardisiert benannten Verzeichnissen: "src", "test", "lib", etc.
Ein wichtiger Aspekt unser Buildsystem ist die Möglichkeit die
Buildreihenfolge der Bundles am Runtime festzustellen, ohne dabei die
gesamten Sourcedateien auschecken zu müssen.
Das Buildsystem hat sich durch Flexibilität und Robustheit gekennzeichnet
und hat in unseren Firma und bei unseren Kunden PDE- und Maven- basierte
Buildsysteme ersetzt. Es wir aktuell in den verschiedensten OSGi Projekten
eingesetzt, mit Embedded J9 oder mit Sun SE VMs, mit IBM SMF oder mit
Equinox, mit Continuous Integration Tools wie CruiseControl oder LuntBuild,
in CommandLine oder direkt in Eclipse.
Über den Referent:
George Mesesan ist Senior Software Engineer bei MicroDoc und hat jahrelange
Erfahrung mit Toolsentwicklung und Automatisierungstechniken, in Embedded
sowie in Enterprise Bereich. George Mesesan war in der Einführung des Test-Driven
Development Prozesses bei MicroDoc beteiligt.
Ressourcen
Links
Spring Bundlor (Christian Baranowski)
Leider war der eigentliche Referent Oliver Gierke von SpringSource (a division of VMware) verhindert, daher ist Christian Baranowski kurzfristig eingesprungen.
Ressourcen
Links
PAX - Tools für den OSGi Alltag (Patrick Baumgartner)
OSGi ist im Java Enterprise Bereich angekommen. In immer mehr Projekten möchte man OSGi mit komfortablen Tools "schmerzlos" einführen. PAX Construct und PAX Runner vereinfachen die Entwicklung von OSGi Bundles mit Hilfe von einigen Kommandozeilen-Scripts und Maven. PAX Exam ist ein Ansatz Integrations-Tests in einer laufenden OSGi Plattform durchzuführen und auszuwerten.
Dieser Vortrag bietet Einblick wie man mit PAX Bundles erstellt, ausführt und auch testet. Was PAX ausserdem zu bieten hat lernen sie in einem Überblick über die weiteren Projekte.
Über den Referent:
Patrick Baumgartner ist Senior Software Consultant und Partner bei Swiftmind GmbH in Zürich.
Seine Fachgebiete umfassen die Architektur und Entwicklung von OSGi- und Webanwendungen mit
Java/JEE und Open Source Technologien. Er beschäftigt sich im Speziellen mit dem Spring Framework
sowie der agilen Softwareentwicklung mit Scrum.
Ressourcen
Links
Development Workflow mit Maven (Roman Roelofsen)
Mittlerweile existieren für viele Aufgaben im OSGi Build Prozess die nötigen Tool, um die Programmierer bei der täglichen Arbeit unterstützen. So integrieren z.B. Maven, Gradle & Co. das BND Tool und PAX Exam unterstützt beim Integrationstest der Bundles. Dieser Vortrag zeigt, wie die gängigen Tools sinnvoll miteinander kombiniert werden können und wie der gesamte Build Prozess, von der Kompilierung bis zum Deployment, gestaltet werden kann.
Über den Referent:
Roman Roelofsen ist Lead Architect bei der ProSyst Software GmbH und verantwortlich für den Enterprise Solution Bereich. Er repräsentiert ProSyst Software in den OSGi Core Platform und Enterprise Expert Groups. Roman ist aktiver Committer in Open Source Projekten und regelmäßiger Redner auf Konferenzen. Seine Hauptinteressen sind modulare Programmierung und Sprachen-Design.
Ressourcen
Links
Weitere OSGi Build Werkzeuge
Maven Tycho und Gradle wurden leider nicht auf dem Workshop gezeigt, hier aber ein paar Links zu den beiden Build Tools.
Maven Tycho
Gradle
Übersicht - OSGi Build Tools
| Werkzeug | Manifest First | Repository Support (ORB, Maven, Ivy) | Unit Test Support (ohne OSGi) | Unit Test Support (OSGi, z.B. Lifecycle) | Tooling (UI Editors...) | Command Line Tools (CI Build) | Eclipse Based | Website |
| Eclipse PDE Build | ja | nein | nein | ja | ja | ja, ant PDE Headless build | ja | here |
| Plugin Builder | ja | nein | nein | ja | ja | ja (ant) | ja | here |
| Eclipse Buckminster | ja | ja | nein | ja | ja | ja | ja | here |
| ant4eclipse | ja | ja? (via ivy) | ja | nein | ja | ja | nein | here |
| maven (maven felix bundle plugin) | nein | ja | ja | ja (z.B. PAX Exam) | nein | ja | nein | here |
| maven (tycho) | ja / nein | ja | ja | ja | nein | ja | nein | here |
Beispiel Anwendung
Das Beispiel kann über GitHub bezogen werden unter der folgenden URL: http://github.com/OSGiUsersGermany/osgi-kasse-example
Wie das Beispiel in Eclipse eingerichtet werden kann wird in dem folgenden Video Schritt für Schreit gezeigt:
Video Beispiel in Eclipse einrichten- auf Youtube
News zum Workshop
Follow us on Twitter...
Die Veranstaltung wurde freundlicherweise gesponsert von
Workshop Organisation
Andreas Kraft, geboren 1964 in Berlin, studierte Informatik an der TU Berlin, bevor er als wissenschaftlicher Mitarbeiter am Institut FOKUS der GMD (heute Fraunhofer-Gesellschaft) in den Themenbereichen Multimedia und interaktives Fernsehen arbeitete. In diesem Zeitraum beschäftigte er sich mit dem Standard ISO/IEC 13522 (MHEG), unter anderem als Editor, und leitete die deutsche Delegation.
Seit 2000 arbeitete Andreas Kraft als Senior Projektmanager zuerst für T-Systems und ab 2008 für die Deutschen Telekom Laboratories, der zentralen Forschungs- und Entwicklungseinrichtung der Deutschen Telekom, und ist nun seit zehn Jahren im Bereich "Vernetztes Heim" in nationalen und internationalen Projekten sowie in Standardisierungsgremien tätig. Seine aktuellen Themenschwerpunkte sind Software-Ausführungsumgebungen, Netzwerkprotokolle und Datenformate für das vernetzte Heim. Andreas Kraft ist stellvertrender Vorsitzender des OSGi Users' Forum Germany und Co-Chair der OSGi Residential Expert Group.
Jochen Hiller arbeitet als Developer Evangelist bei der Deutschen Telekom. Er arbeitet seit 1989 mit objektorientierten Technologien wie Smalltalk, C++ und Java. Er spricht regelmäßig auf Konferenzen zu komponentenbasierten Architekturen auf Basis von Server-Side-OSGi. Zusätzlich setzt er Java in Embedded und massiv verteilten Umgebungen ein.
Jochen ist Mitglied des OSGi Users' Forum Germany and organisiert zusammen mit Christian Baranowski die Arbeitsgruppe Enterprise.
Christian Baranowski (Dipl.-Inform. FH), geboren 1981 in Stuttgart, studierte Software Engineering an der HTWG Konstanz. Während seines Studiums war er an der Entwicklung der Komponenten-orientierten Forschungs-Programmiersprache CompJava beteiligt. Seit 2007 arbeitet er für die Seitenbau GmbH in Konstanz und ist dort verantwortlich für die Software Qualitätssicherung. Seine Rolle bei Seitenbau versteht er als agiler Software-Entwickler und Tester. Er ist Verfechter von komponentenbasierten Software Architekturen, in der Projektpraxis heißt dies, er ist starker Spring und OSGi Verfechter. In diesem Rahmen organisiert er gemeinsam mit Jochen Hiller die OSGi Arbeitsgruppe Enterprise, des OSGi Users Forums Germany.