OSGI
OSGI ist eine Spezifikation, die es erlaubt, Java-Software in Module (sogenannte "Bundles") aufzuteilen, die voneinander unabhängig entwickelt werden können und die über bestimmte Schnittstellen miteinander zusammengesteckt werden können. Ein OSGI Framework kann während der Laufzeit eines Programmes verschiedene Bundles nachladen (oder auch wieder entladen) und so benötigte Funktionen nachrüsten oder auch austauschen. Durch die klare Definition von Schnittstellen können so größere Projekte übersichtlicher gestaltet und einzelne Komponenten klarer getrennt werden.
iDempiere macht seit 2012 starken Gebrauch von OSGI. Die damit einhergehende Zerlegung des früheren ADempiere-Quellcodes in Bundles ist einer der Gründe, warum die beiden Projekte unterschiedliche Wege genommen haben.
Da OSGI die Möglichkeit bietet, Bundles während der Laufzeit auszutauschen, hilft es bei der Entwicklung von iDempiere, weil man in schnellen Entwicklungszyklen neue Versionen testen kann.
Wer mehr darüber wissen will, wie man ein eigenes OSGI Bundle in iDempiere für eigene Geschäftslogik erzeugt, kann Eclipse Projekt für ein eigenes Modul lesen.
Links
Mehr über OSGI gibt es hier: http://de.wikipedia.org/wiki/OSGi und in den folgenden Artikeln:
- http://it-republik.de/jaxenter/artikel/Das-OSGi-Framework-2221.html/ - Einführungsartikel auf deutsch
- [Vogella OSGI Article] - (englisch) guter einführender Artikel über die Basis von OSGI und wie man es in Eclipse benutzt
- [Vogella Article about Extension Points] - (englisch) guter Artikel über Extension Points und die Verknüpfung von Bundles
- Links über die Erstellung automatischer Builds von eigenen Plugins und Features: