24.03.2009

Equinox serverbasiert: Plugins für Adempiere

Adempiere ist ein Open Source ERP/CRM-System aus der Familie der Compiere-Clone, deren einziger vollständig freier Vertreter mit offener Community es ist.

Diese ständig wachsende und recht aktive Community steht einigen Problemen gegenüber: Wie behält man die Kontrolle über viele eingereichte Fixes, Patches und Erweiterungen, deren Qualität a priori nicht bekannt ist, wenn das System andererseits produktiv eingesetzt wird, sogar an operativ wichtigen Stellen?

Wie seine Vettern Compiere und OpenBravo verfügt Adempiere nämlich zwar über ein dynamisches Dictionary, in dem Datenstrukturen und Oberflächen abgelegt sind. Die Businesslogik und der Anwendungskern sind jedoch sehr monolitisch gehalten und größere Erweiterungen (wie der POS oder das Produktionsmodul Libero) werden direkt hineingebunden.

Was hier fehlt, ist ein tragfähiges Plugin-Konzept. Und wer denkt nicht sofort an Eclipse, wenn er an Plugins denkt? - Tatsächlich beruht Eclipse auf dem erweiterten OSGi-Container Equinox, der über das Verwaltung von Java-Modulen (genannt Bundles) und Services hinaus noch ein mächtiges Extension-Konzept bietet.

Es war naheliegend und nach einigen Anfangsproblem mit dem Classloading auch recht einfach, Equinox in Adempiere zur Verfügung zu stellen. Nun gilt es, vorhandene Erweiterungen zu Plugins umzuschreiben und im zweiten Schritt auch den Anwendungskern um unnötige Funktionalität zu erleichtern, um ein modulares und aufgeräumtes System zu erhalten.

Eine genauere Beschreibung der Arbeit findet sich im Adempiere-Wiki.