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.
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")
Sie sehen gerade einen Platzhalterinhalt von X. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.
Mehr Informationen