ADempiere Deutsch Integration

From ADempiere
Revision as of 00:34, 18 January 2009 by Openk-hd (Talk) (Vorarbeiten)

Jump to: navigation, search
This Wiki is read-only for reference purposes to avoid broken links.

Achtung "work in progress". Dieser Artikel ist ein erster unvollständiger und an einigen Stellen möglicherweise auch noch fehlerhafter Entwurf für eine Dokumentation, wie man aus einer Standard-ADempiere-Installation eine Version mit den hier beschriebenen deutschen Contributions erzeugen kann. Entstanden ist er, weil wir von der ObjectCode GmbH aktuell den Versuch unternehmen, die vorhandenen Bausteine zu einem geschlossenen Gesamtsystem zu integrieren und im Sourceforge-Forum gemerkt haben, dass offenbar auch noch andere gerade versuchen, dasselbe zu tun. Deswegen haben wir uns entschlossen, den aktuellen Stand unserer Erkenntnisse hier zur allgemeinen Verwendung zur Verfügung zu stellen. Sicher fehlt in diesem Dokument noch das eine oder andere, manches kann man noch besser dokumentieren, aber es soll ein Anfang sein. Ergänzungen, Korrekturen und Anmerkungen sind natürlich gerne und jederzeit willkommen, dies ist schließlich ein Wiki, das genau davon lebt.

Grundsätzliches

ADempiere ist so ausgelegt, dass gepatchte und angepasste Komponenten technisch mit Hilfe der Jar-Dateien customization.jar und patches.jar in das System integriert werden können, ohne das eigentliche System verändern zu müssen. Dies funktioniert, weil beide Jar-Dateien im Java-Classpath von ADempiere vor den Jar-Dateien aufgeführt sind, aus denen das eigentliche ADempiere-System besteht. Diese beiden Dateien sind dafür bestimmt, dass patches.jar für ADempiere-Patches d.h. Fehlerkorrekturen im jeweiligen Release verwendet werden soll, während individuelle, installationsspezifische Anpassungen und Erweiterungen in customization.jar zusammengefasst werden sollen. Diese Vorgehensweise erfordert eine gewisse Sorgfalt, wenn Komponenten erweitert werden, für die es auch Patches gibt, denn dann muss im Regelfall die Erweiterung auf Grundlage des gepatchen Quelltextes erfolgen und nicht auf Grundlage des Originalquellcodes aus dem Release.

Das Lokalisierungsprojekt ist derzeit so ausgelegt, dass am Ende eine patches.jar generiert wird, die dann im Application Server installiert wird.

Voraussetzungen

Was man benötigt:

  • Die Quelltexte für ADempiere 342
  • Die Contributions, die im Subversion-Repository unter contributions/Localizations/Germany abgelegt sind
  • Eclipse; wir verwenden das Ganymede-Release 3.4.1

Für eine bessere Übersicht sinnvoll aber nicht unbedingt notwendig ist es, einen eigenen Workspace in Eclipse für diese Integrationsaufgabe einzurichten. Wenn man die Quelltexte in diesem Workspace mit TortoiseSVN auscheckt und die vorgeschlagenen Ordnernamen übernimmt, enthält dieser Workspace dann 2 Unterordner, nämlich

  • adempiere342
  • Germany

In beiden sind fertige Projektbeschreibungen für Eclipse, d.h. in beiden Ordnern liegen .project-Dateien, so dass sie via File -> Import -> General -> Existing Projects into Workspace nach Eclipse importiert werden können.

Vorarbeiten

Als erstes wird unter Eclipse das eigentliche ADempiere-Projekt mit Hilfe der build.xml unter utils_dev kompiliert; nähere Informationen finden sich hier. Wir hatten beim Kompilieren hin und wieder den unschönen Effekt, dass Sonderzeichen wie etwa in AmtInWords_FA dazu geführt haben, dass in Eclipse die Konsolenausgabe eingefroren und der Build-Vorgang ohne Fehlermeldung abgebrochen ist, lediglich eine Warnmeldung wies dann auf "unmappable characters" hin. Ein erneuter Build-Versuch gelang danach dann aber immer ohne weitere Probleme.

Nachdem das ADempiere-Projekt erfolgreich kompiliert ist, können die kleineren Anpassungen im Lokalisierungsprojekt vorgenommen werden, die deswegen notwendig sind, weil das Lokalisierungsprojekt auf Grundlage von ADempiere 340 erstellt wurde. Hierbei handelt es sich um Korrekturen der Pfade zu Jar-Dateien, die in ADempiere zu finden sind, nämlich

  • lib/CCTools.jar
  • lib/jboss.jar
  • tools/lib/jsp-api.jar
  • tools/lib/jstl.jar

Der Projektverweis muss natürlich auch noch auf adempiere342 geändert werden.

Kompilieren

Die erste Überraschung: Im Lokalisierungsprojekt ist keine build.xml vorhanden. Stattdessen gibt es eine metas_patches.jardesc, die in Eclipse mit der rechten Maustaste angeklickt werden kann, und mit der Option 'Open JAR Packager...' öffnet sich ein Assistent, der durch die Generierung der patches.jar führt. Folgende Optionen führen dazu, dass sich die patches.jar erzeugen lässt:

Eclipse jar packager 1.png

Eclipse jar packager 2.png

Eclipse jar packager 3.png

Gegebenenfalls kommt an dieser Stelle eine Abfrage, ob eine vorhandene patches.jar überschrieben werden soll, was natürlich erfolgen muss.

Eclipse jar packager 4.png

Installieren

Die erzeugte patches.jar muss dann im lib-Verzeichnis der ADempiere-Installation abgelegt werden und sollte prinzipiell einsatzbereit sein.