Entwickeln von Modulen / Module Managen
1. Auf einer Developer-Maschine über GIT
Voraussetzung
Hier wird der Weg über GIT beschrieben:
Das heißt, wir befinden uns auf einer Developer-Maschine und die Umgebungsvarablen OPENZ_GITOSS und OPENZ_GITPT sind gesetzt.
OPENZ_GITOSS ist der Pfad zu den Sourcen von openz
OPENZ_GITPT ist der Pfad zu den Sourcen der eigenen Module, die nicht Teil der OpenZ-Distribution sind. Darunter muß sich das Verzeichnis modules/ befinden. Darin befindet sich ein Unterverzeichnis mit dem
-> Java – Package Name des Moduls (Application Dictionary || Module || Module: Java Package (Beispiel com.xyz.abc)
Von hier aus sind die immer gleichen verzechnisse src und src-db zu erreichen. Unter src werden die Java-Sourcen geführt unter src-db die Datenbank-Scripte im Unterverzeichnis sql.
Installieren von Modulen
java -cp „$OPENZ_GITOSS/lib/runtime/*“ com.openz.update.ImportModule <javapackagename> $OPENZ_GITOSS/config/Openbravo.properties
DE-Installieren von Modulen
java -cp „$OPENZ_GITOSS/lib/runtime/*“ com.openz.update.DropModule <javapackagename> $OPENZ_GITOSS/config/Openbravo.properties
Exportieren von Modulen
java -cp „$OPENZ_GITOSS/lib/runtime/*“ com.openz.update.ExportModule <javapackagename>
Danach ggf.
git push
Upgrade der kompletten Distribution auf Development-Maschine
Voraussetzung: Datenbank auf Development Maschine befindet sich auf einer definierten älteren Version als die auf der entwickelt wird (Z.B.: 2.6.04.048 auf der Datenbank, Upgrade auf die in Entwicklung befindliche Version 2.6.04.052)
psql : Drop und create database
psql <openz> < dump<ältereVersion>.sql
git pull auf allen Repositories
Linux:
java -cp „$OPENZ_GITOSS/lib/runtime/*“ com.openz.update.ImportModule DISTRI $OPENZ_GITOSS/config/Openbravo.properties
ant compile.complete
Bei Strukturänderungen des Data-Dictionarys die Module der Core-Distribution anpassen
Es ist nötig, eine Datenbank, die das Modul bereits enthält mit der Distri upzugraden und das Modul danach zu exportieren.
Bei Struktur-Änderungen erhöht sich bei der Versionierung die 2. Stelle der Core-Module um 1, d.h. Damit sind wir z.B. bei OpenZ 3.3.x.y
Das heisst, die vorhandenen Module müssen an die neue Struktur angepasst werden.
Das Update der vorhandenen Module (bei Ihnen eu.drive.prangewws) geschieht wie folgt:
Auf der Entwickler-Maschine, wo das Modul entwickelt wird bitte eine Datensicherung machen.
Danach folgende DDL-Statements absetzen:
Z.B.:
— V. 3.3
alter table ad_tab add column ismaxrowsparam character(1) not null default ‚N‘::bpchar;
alter table ad_tab_instance add column ismaxrowsparam character varying(60) not null default ‚NON‘;
Die Alter Tables werden von Openz-Entwicklerteam pro Version an Partner herausgegeben.
Dann das Modul exportieren (Die Exporte passen sich damit der neuen Struktur an)
Danach kann man entweder die Columns wieder droppen oder die Datenbank droppen und die Sicherung einspielen.
In die so wieder auf alter Struktur befindlicher Datenbank kann man die Module wie gewohnt importtieren und Zwar in der Reihenfolge
1. core
2. Module
Danach kann das Modul wieder gepackt werden.
Packen von Modulen für das Deployment
./maketarball <javapackagename>
Installieren der gepackten Module auf einer Zielmaschine
Die Zielmaschine muß eine heruntergeladenen VM von OpenZ sein.
Das kann ein Test – oder Produktiv-System sein.
Es nmuß eine gültige OpenZ-Enterprise-Subscription bestehen.
Der eben erzeugt Tarball muß im Verzeichnis /home/zisoft/deployment_tarballs liegen.
man wechselt in das Verzeichnis: /home/zisoft/config
app bezeichet die OpenZ-Instanz (letzter Teil der URL), tarball den Dateinamen des oben erzeigten, gepackten Moduls.
Der letzte Parametetr (Y/N) zeigt an, ob kompiliert wird (N), Wenn Y, wird nicht komiliert. (Wenn das Modul Servlets enthält, ist das einkompilieren notwendig)
./deploy_all.sh <app> <tarball> <javapackagename> N
Exportieren der kompletten Distribution auf Development-Maschine
Linux:
java -cp „$OPENZ_GITOSS/lib/runtime/*“ com.openz.update.ExportModule
Windows:
c:\tmp muss existieren
java -cp „%OPENZ_GITOSS%/lib/runtime/*“ com.openz.update.ExportModule