Was gibt es neues bei Liferay Portal 6.2?

Mobile Webseiten mit Liferay

Frank Pientka
©Shutterstock.com/tkemot

Nach einem Jahr Entwicklungszeit liegt das Liferay Portal Release 6.2 CE ga1 auf dem Gabentisch. Neben einer neuen responsiven Oberfläche, wurde sowohl die Bedienung, als auch die Entwicklung verbessert. Wir stellen die neuen Funktionen vor.

Auch im neuen magischen Quadranten von Gartner wurde, wie schon in den Vorjahren, Liferay 6.1 als Markt-Führer anerkannt. Das zeigt, dass sich Liferay als spezialisierter Portal-Anbieter weiterhin mit den verbleibenden kommerziellen Anbietern messen kann. So werden in der aktuellen Liferay-Version auch verschiedene aktuelle Applikationsserver und  Datenbanken unterstützt, die gegenüber Konkurrenzprodukten eine größere Auswahl bei der Ablaufumgebung ergeben.

Abb. 1: Magic Quadrant for Horizontal Portals 2013 (Quelle: Gartner)

Wie schon in der vorherigen Portlet-Spezifikation engagiert sich Liferay mit Neil Griffin in der Standardisierung der für Java EE 7 kommenden Portlet 3.0 Version. Deswegen bietet Liferay mit LiferayFaces schon seit Version 5.2 Unterstützung für verschiedene JSF-Implementierungen, wie PrimeFaces, ICEFaces und RichFaces an. Die aktuelle LiferayFaces Version 3.1.3-ga4 für Liferay 6.1 und 6.2 basiert auf JSF 2.1 und unterstützt Java EE 6. Mit 3.2.4-ga5 wird es jedoch eine eigene JSF 2.1-Version und mit 4.2.x  eine eigene JSF 2.2-Version für Liferay Portal 6.2.x geben. Außerdem gibt es mit LiferayFaces-Bridge und -Alloy-Erweiterungen für die nahtlose Integration in die Liferay-Oberfläche. Überdies werden fertige Demo-Beispiele mit Sourcecode angeboten, die den Einstieg erleichtern. Da AlloyUI viele Ähnlichkeiten mit jQuery und YUI3 hat, ist die Gegenüberstellung in der Art des Rosetta-Steines für eine Übersetzung der jeweiligen Sprachfunktonen hilfreich. Hervorzuheben ist auch die gute und aktuelle Online-Dokumentation von  AlloyUI mit Beispielcode.

Abb. 2: AlloyUI 2.0 Beispiele

Wer sich weniger im Browser, sondern mehr auf dem Server zuhause fühlt, kann mit Portlets, Hooks oder Plug-ins die Liferay-Funktionalitäten nutzen oder erweitern.

Bereits mit der Vorgängerversion wurden die verfügbaren Plug-ins im eigenen Marktplatz angeboten. Das hat den Vorteil, einen Überblick über die bereits erworbenen Anwendungen zu erhalten und zur eingesetzten Version passende Anwendungen schneller zu finden und zu aktualisieren. Da die meisten Anwendungen dort immer noch kostenlos angeboten werden, lohnt sich vor der Erstellung eigener Erweiterungen, der Blick im Marktplatz.

Die Verwaltung und Entwicklung wird einfacher

Viele zentrale Funktionen, wie die Verwaltungsoberfläche und Dokumentenbibliothek wurden von der Bedienung und Sicherheit überarbeitet. So können Dateien jetzt per Drag&Drop hochgeladen werden. Der beliebte Asset Publisher kann Inhalte nicht nur nach dem Dokument-Typ, sondern auch nach zusätzlichen Metadaten filtern. Anwendungsvorlagen (ADT) können individuell verwaltet und mit Autovervollständigung angepasst werden. Es wurde auch die Facettensuche (search.facet.configuration) mit Lucene verbessert, sowie Rechtschreibkorrektur (index.search.collated.spell.check.result.enabled=true, index.search.spell.checker.supported.locales=en_US,es_ES) und Suchbegriffsvorschläge (index.search.query.suggestion.enabled=true) ergänzt.

Im Papierkorb können jetzt mehr Arten von Inhalte wiederhergestellt, automatisch geleert oder sogar vor dem unabsichtlichen Löschen geschützt werden. Ebenso wurde der Import/&Export für das Staging von Inhalten um eine Historisierung Import/Export erweitert. Auch die Entwicklung wird mit einer neues Liferay Eclipse IDE 2.0, Liferay Maven-Plug-in und SDK unterstützt. In Abbildung 3 sieht man die Unterstützung für den JSF-Portlet-Wizard.

Abb. 3: Liferay IDE 2.0

Soziale Kollaboration

In der neuen Version ist eine große Anzahl von sozialen Portlets, wie Blog, Wiki, Diskussionsforen oder Message-Bords bereits enthalten. Das bisherige Social-Networking-Portlet erweiterte diese Funktionen und ist bereits für die neue Portal-Version verfügbar. Das bisherige Kalender-Portlet wurde von der Bedienung verbessert und um Synchronisationsmöglichkeiten über das ActiveSync- und das CalDev-Server-Protokoll ergänzt.

Die als Social Office-Erweiterungen gebündelten Portlets, mit denen man sich ein Kollaborationsportal ähnlich wie SharePoint aufbauen lässt, existieren bisher nur für die Vorgängerversion. Da Zusammenarbeit, gerade für die verteilte Entwicklung wichtig ist, werden diese Funktionen von der Liferay-Communtiy selbst verwendet.

Aufmacherbild: Man using digital interface to connecting video chat von Shutterstock / Urheberrecht: tkemot

[ header = Responsive, Mobile und Co. ]

Responsive

Beim Thema ResponsiveDesign handelt es sich nicht nur um eine Technologie, sondern um ein Vorgehen, wie sich die Seite mit einer Codebasis an die unterschiedlichen Größen und Bildschirmorientierung verschiedener Geräte automatisch anpassen kann.

In der neuen Liferay-Version wurde auf AlloyUI 2.0 umgestellt. Sowohl die Anzahl der Komponenten in der Hauptdatei aui-min.js als auch deren Größe wurden reduziert. AlloyUI basiert auf der Yahoo-Bibliothek YUI3 (JavaScript) und der Bootstrap-Bibliothek (HTML/CSS) von Twitter. Mit CSS-Media Queries, LESS CSS- Mixins und SASS (Syntactically Awesome Stylesheets) lassen sich interaktive und responsive Webseiten (bootstrap-responsive.css) erstellen. Liferay bietet CSS-Präprozessoren für SASS und LESS an, um alle JavaScript- und HTML5-Elemente komprimiert und effizient auszuliefern. Neben einem integrierten CSS-/JavaScript-Kompressor kann man moderne und schnelle Webseiten erstellen, die sich dank normalize.css, AlloyUI Viewport und HTML5 auf PC-Browser, ab IE 7, oder mobile Browser mit einem flexiblen Layout anzeigen lassen.

Abb. 4: Vom PC über Tablet bis Smartphone

Tabelle 1 zeigt die Bildschirmgrößen, die von Bootstrap unterstützt werden.

Label Layout-Weite Spaltenweite Gutter-Weite
Großer Bildschirm Ab 1200px 70px 30px
Default Ab 980px 60px 20px
Portrait Tablet Ab 768px 42px 20px
Phone bis Tablet Unter 767px Fließende Spalten, keine feste Weite
Phone Unter 480px Fließende Spalten, keine feste Weite

Als Standardlayout wird das zwölfspaltige Grid (cssgrids-responsive.css, gridlayout.css) mit festen Positionen verwendet, das sich jedoch auf das fluid Grid-Layout mit Prozentangaben statt festen Pixel-Spaltenbreiten ändern lässt. AlloyUI 2.0 lässt sich mit

<script src="http://cdn.alloyui.com/2.0.0pr7/aui/aui-min.js"></script>
<link href="http://cdn.alloyui.com/2.0.0pr7/aui-css/css/bootstrap.min.css" rel="stylesheet"></link>

einfach in eine Seite einbinden. Mit den AlloyUI-Modulen lassen sich so einfach optische Effekte, wie ein Bilder-Karussell oder ein Bilderzuschneider umsetzen.

Abb. 5: Modernisierte Verwaltungsoberfläche

Liferay hat seine Webtechnologien immer weiter integriert und die Verwaltungsoberfläche des ControlCenters (responsive.scss) darauf umgestellt. Dadurch lässt sich Liferay noch einfacher verwalten. Eine nützliche Funktion ist die mobile Preview-Ansicht, so dass man direkt beim Erstellen der Seite überprüfen kann wie diese Seite in einem mobilen Browser aussehen könnte.

 Abb. 6: Seitenvorschau für mobile Geräte

Eine nützliche Funktion im Wysiwyg-Editor ist die Seitenvorschau für mobile Geräte, so dass schon bei der Seitenerstellung, ohne ein externes Gerät oder Emulator die Darstellung für mobile Geräte getestet werden kann.

Mobile

Um zu erkennen, welches Gerät mit welchen API-Möglichkeiten die Portalseite aufruft, benutzt Liferay bereits ab Version 6 die Gerätedatenbank nach dem WURFL-Standard (Wireless Universal Resource FiLe). Um WURFL anzuwenden, laden Sie das entsprechende Portlet Device Recognition Provider CE vom Liferay-Apps-Marktplatz herunter. Neben dem verwendeten Gerät kann auch erkannt werden, ob der Bildschirm standardmäßig im Quer-(Tablet) oder Hochformat (PC, Smartphone) dargestellt werden soll, um so das passende Layout und Darstellung anbieten zu können. Wenn Sie eine neuere Version der Datenbank verwenden wollen, müssen Sie diese hier herunterladen und entweder

In wurfl.database.patches=${liferay.home}/data/wurfl/ oder Unter wurfl-webWEB-INFclassesMETA-INFwurfl-latest.zip (wurfl.database.primary=/META-INF/wurfl-latest.zip) ablegen. Möchten Sie neue Geräte erfassen oder das Verhalten für bestimmte Geräte ändern, können Sie das durch Editieren der wurfl.xml-Datei oder über die ControlCenter-Oberfläche tun. Selbst wenn die WURFL-API bisher nur in Java auf dem Server zur Verfügung steht, ist das eine gute Ergänzung bevor man auf HTML5-Möglichkeiten auf dem Client ausweichen muss. Eine andere Möglichkeit, um auf Liferay mobile zuzugreifen, ist die Sync-App, mit denen man einfach Dokumente oder Medien zwischen dem Portal und seinem mobilen Gerät herunterladen kann. Die native App gibt es für iOS im Apple App Store oder für Android  Google Play Store.

Wolkig

Eine kostengünstige Möglichkeit Liferay in der Cloud zu betreiben bietet Jelastic. Mit Dogado gibt es sogar einen Betreiber in Deutschland der ein fertiges Liferay-Installationspaket mit (Tomcat und MySQL) anbietet. Alternativ kann man sich selbst mehrerer Tomcat-Cluster-Knoten installieren und dort Liferay manuell einrichten. Über Bitnami gibt es fertige VMWare-Images, so dass Liferay auch ohne eigene Installation schnell verwendet werden kann.

Abb. 7: Liferay-Cluster in der Jelsatic-Cloud

Upgrade – auf zu neuen Ufern

Auch bei den Applikationsservern und Datenbanken werden die aktuellen Produkte Websphere 8.5, GlassFish 4.0, JBoss EAP 6.1, Tomcat 7.0, WebLogic 12c, SQL Server 2012, DB2 10.1, PostgreSQL 9.1 und viele mehr unterstützt. Eine Migration zu Liferay 6.2 ist von allen 6er-Versionen möglich. Bei älteren Versionen müssen Sie zunächst zu einer 6er-Version migrieren. Bei der Migration von Vorgängerversionen müssen Themes und Portlets manuell angepasst werden. Eine nützliche Hilfe ist dabei die Gegenüberstellung von jQuery – YUI3 – AlloyUI –Funktionen und die Migrationshinweise in der Dokumentation. Da für die Passwortverschlüsselung standardmäßig ein stärkerer Algorithmus mit längerem Schlüssel verwendet wird, sollte man die Einstellungen company.encryption.algorithm=DES, company.encryption.key.size=56 und passwords.encryption.algorithm=SHA noch mal überprüfen. Nach dem Hochfahren der neuen Version und dem Deployen der passenden Portlets aus dem Marktplatz oder aus der eigenen Entwicklung, sollte auf jeden Fall der Lucene-Suchindex neu erzeugt werden. Beim automatischen Upgrade der Datenbank ist zu beachten, dass nur von einer 6er-Version aktualisiert werden kann. Ältere Versionen müssen dann erst einmal auf die 6er Version zwischenmigriert werden. Außerdem wurde mit der 6.1er-Version jQuery durch AlloyUI als Standard-JavaScript-Bibliothek ersetzt. Der Wechsel auf die aktuelle AlloyUI-Version 2.0 kann neben API-Änderungen etwas Umstellungs- und vor allem Testaufwand verursachen, den man gut einplanen sollte. Zusätzlich ist zu beachten, dass mit der Version 6.1 die zentrale Komponente Dokumenten- und Media-Repository die bisher separate Dokumenten-Bibliothek und Bildergalerie ersetzte, so dass es bei älteren Versionen hier zu größeren Umstellungs- und Testaufwänden kommen kann.

Abb. 8: Die Upgrade-Wege zur neuen Version

Fazit

Das Thema Userexperience spielt in Liferay eine große Rolle. Die neue Liferay-Version ist mobiler und sozialer geworden. Vieles was früher schon ging, funktioniert jetzt eleganter. Nicht nur die Verwaltungsoberfläche wurde überarbeitet. Mit AlloyUI und Bootstrap können eigene Anwendungen und Seiten interaktiver und für mobile Geräte besser nutzbar realisiert werden.

Die neue Version sieht nicht nur besser aus, sondern erschließt auch ganz neue Einsatzgebiete, die weit über den reinen Webauftritt oder dem klassischen Portal hinausgehen. Es ist zu hoffen, dass bald viele Plug-ins im Liferay-Marktplatz verfügbar sind und auf die neue LiferayFaces Version umgestellt werden. So bleibt noch etwas Zeit, sich mit den neuen Funktionen zu beschäftigen bis die erste fehlerbereinigte Community oder Enterprise-Version für den Produktiveinsatz zur Verfügung steht.

Geschrieben von
Frank Pientka
Frank Pientka
  Frank Pientka ist Senior Architect bei der MATERNA GmbH in Dortmund. Er ist seit mehreren Jahren im Bereich Java EE tätig. Seine Schwerpunkte sind Applikationsserver, Portalserver und Datenbanken. Dazu hat er auch schon mehrere Fachartikel und ein Buch über Geronimo veröffentlicht.
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.