Liferay – Redeployment von Ext-Plugins

Über Ext-Plugins lassen sich komplexe Funktionen des Liferay Portals erweitern (oder fixen), ohne den Portal-Sourcecode anfassen und kompilieren zu müssen. Es ist jedoch beim Deployment einiges zu beachten, damit die Änderungen wirksam werden.

Was ist ein Ext-Plugin?

Die Verwendung eines Ext Plugins ist die mächtigste Methode, Liferay zu erweitern, entworfen für komplexe Szenarien, in denen andere Plugin-Typen (z.B. Hooks) den Bedürfnissen nicht genügen.
Über das Plugin können z.B. direkt Klassen der Portalimplementierung überschrieben werden, ohne den eigentlichen Portal-Sourcecode anfassen und kompilieren zu müssen. Mehr Informationen sind in der Liferay-Dokumentation zu finden.

Das Überschreiben einer Klasse sollte als letzter Weg angesehen werden. Denn nach einem Update des Portals muss jeweils der angepasste Code überprüft werden.



Infobox
Liferay Portal:
http://www.liferay.com/

Ext-Plugin Deployment:
Beschreibung im Wiki
Hooks und Ext-Plugins

Ein Ext-Plugin kann nicht redeployed werden

Im Gegensatz zu anderen Plugins erfordert ein Ext-Plugin einen Neustart des Server nach dem Deployment. Einige der Dateien werden nämlich direkt in die Liferay-Installation kopiert. Ein Ext-Plugin kann nur ein mal deployed werden, ein Redeployment des Plugins wäre mit einem Redeployment der kompletten Liferay Installation verbunden. Unschön. Erfreulicherweise gibt es einen Workaround.

Workaround

Im Wiki des Liferay-Portals ist ein Workaround für das Redeployment eines Ext-Plugins beschrieben. Neben dem Undeployment des Ext-Moduls müssen noch diverse jar und config Dateien aus der Liferay-Installation gelöscht werden.

Übersicht über die zu löschenden Ordner und Dateien (Beispiel Ext-Plugin heißt „example-ext“):

./webapps/example-ext
./lib/ext/ext-example-ext-service.jar
./webapps/ROOT/WEB-INF/lib/ext-example-ext-util-bridges.jar
./webapps/ROOT/WEB-INF/lib/ext-example-ext-util-taglib.jar
./webapps/ROOT/WEB-INF/lib/ext-example-ext-util-java.jar
./webapps/ROOT/WEB-INF/lib/ext-example-ext-impl.jar
./webapps/ROOT/WEB-INF/ext-example-ext.xml
./temp/liferay/com/liferay/portal/deploy/dependencies/ext-example-ext-util-bridges.jar
./temp/liferay/com/liferay/portal/deploy/dependencies/ext-example-ext-util-taglib.jar
./temp/liferay/com/liferay/portal/deploy/dependencies/ext-example-ext-util-java.jar

Im Groben umfasst das Redeployment nun also folgende Schritte, hier mal am Beispiel bei Verwendung im Tomcat:

Schritte für korrektes Undeployment:
1) Ext-Plugin aus webapp-Ordner löschen
2) Löschen aller abhängigen jar und config Dateien aus dem Tomcat (z.B. ausm ROOT)
3) Tomcat neustarten

Schritte für Neu-Deployment:
1) Tomcat läuft
2) Ext-Plugin war neu deployen
3) Tomcat bittet um Neustart, der Bitte nachgeben

Undeployment per Skript

Der Vorgang des Undeployments lässst sich über die Kommandozeile oder über ein Skript vereinfachen:

# Linux:
# deleting web application
rm -rf webapps/example-ext
# deleting jars and config files from Liferay
find -name "ext-exsample-ext*" | xargs rm -rf

#Windows:
cd .\webapps
rmdir "example-ext" /s /q
for /r %%R in (ext-example-ext*.jar) do if exist %%R (del /s /q "%%R")
for /r %%R in (ext-example-ext*.xml) do if exist %%R (del /s /q "%%R")

Ähnliche Beiträge

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert