ADempiere Deutsch Integration

From ADempiere
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 Contributions der deutschen Community erzeugen kann. Entstanden ist er, weil wir 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. Falls es noch weitere Fragen gibt, meine E-Mail-Adresse steht bei meinen Kontaktdaten.

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 gepatchten 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 (unter https://adempiere.svn.sourceforge.net/svnroot/adempiere im Verzeichnis tags/ )
  • Die Contributions, die im Subversion-Repository unter contributions/Localizations/Germany abgelegt sind; zum Zeitpunkt dieser Dokumentation ist die Revision 7106 mit der letzten Änderung von Karsten Thiemann aktuell
  • Eclipse; wir verwenden das Ganymede-Release 3.4.1. Auf die richtige Java Version zum kompilieren achten. Während java-1.5.0-sun funktioniert ist der gcj-4.3 hier noch nicht weit genug. Dieses läßt sich, wenn installiert über Fenster -> Benutzervorgaben -> Java -> Installierte JREs zur Eclipseumgebug hinzufügen.

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. Dies geschieht im Arbeitsbereich von Eclipse durch einen Rechtsklick auf das Projekt: Unter Eigenschaften -> Java Erstellungspfad 'Reiter' Projekte muss der Projektverweis auf adempiere342 geändert werden. Unter dem 'Reiter' Bibliotheken müssen dann die als fehlerhaft angezeigten jars durch die aktuellen in 342 ersetzt werden. Dies sind folgende:

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

Auch die Verweise auf postgres.jar und oracle.jar müssen angepasst werden, Danke für die entsprechenden Hinweise im Sourceforge-Forum!

Kompilieren des Lokalisierungsprojekts

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:

Auf Seite 1 sollten diese Einstellungen vorgenommen werden:

Eclipse jar packager 1.png

Auf Seite 2 sollten diese Einstellungen vorgenommen werden:

Eclipse jar packager 2.png

Auf Seite 3 sollten diese Einstellungen vorgenommen werden:

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.

Zum Abschluss sollte eine Erfolgsmeldung angezeigt werden, die ggf. darauf hinweist, dass Klassen mit Warnungen kompiliert und eingebunden wurden:

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.