Javaland 2016 - Flyway vs. LiquiBase - Battle der Datenbankmigrationstools
jRQL- Management Server Aufgaben elegant automatisieren
1. jRQL - WSMS Aufgaben elegant automatisieren
Frank Leja
2. 1. Einführung
2. 12 Plug-ins für Admins
3. jRQL API
4. jRQL bei Hapag-Lloyd
3. Einführung - Wer bin ich?
• Frank Leja
• 2002 Start bei Hapag-Lloyd als Webentwickler
• 2003 CMS Admin
• 2004 Beginn jRQL Entwicklung
• erstellte Projekte
1. Intranet HIP
2. Webseite www.hlag.com
• Motivation jRQL:
• Autorenaufgaben automatisieren
• Administratoraufgaben automatisieren
• jRQL permanent erweitert
3
4. Einführung - Nehmen und Geben
Nehmen
• viel von der Gemeinschaft profitiert:
• www.reddotusergroup.org
• www.reddotcmsblog.com
• Tipps für CMS und RQL
• Plug-ins
Geben
Hapag-Lloyd spendet
• 12 Plug-ins für Administratoren
• und zugrundeliegendes Java API jRQL
4
5. Einführung – Gliederung
Teil 1: 12 Plug-ins für Admins
• für alle WSMS Administratoren
• keine Java Kenntnisse notwendig!
• basieren auf jRQL
Teil 2: Java API jRQL
• Nutzung benötigt Java Kenntnisse
• mit Dokumentation
• ohne Quelltext
Teil 3: jRQL bei Hapag-Lloyd
Beispiele
• wie Hapag-Lloyd von jRQL profitiert
• was mit jRQL möglich ist
5
6. 1. Einführung
2. 12 Plug-ins für Admins
3. jRQL API
4. jRQL bei Hapag-Lloyd
7. 12 Plugins für Admins – Überblick 1/2
Die 12 Plug-ins
• beantworten Fragen meiner täglichen Arbeit
• stellen spezielle Aspekte dar
WSMS bot keine adäquaten Dialoge
hier Auszug aus Unofficial RedDot CMS blog
http://www.reddotcmsblog.com/12-java-plugins-using-rql-api/
7
8. 12 Plugins für Admins – Überblick 2/2
Bereich Name
Content classes 1. Find template elements
Content class 2. Show elements usage
Content class 3. Show language variant dependency
Content class 4. Preassignment reference
Content classes Show content class GUIDs
Berechtigung 5. Show users of group
Berechtigung Collect mail adresses
Publizierung Cancel waiting jobs
Publizierung Delete job reports
Seiten Show child details
Seiten Reset draft pages
Seite Show page by GUID
8
9. Content classes - Find template elements 1/5
Frage
In welchen content classes ist ein bestimmtes Element vorhanden?
Eingabe Antwort
Anzeige aller passenden Elemente
aus allen content classes.
• Elementtyp
• Name (mit Wildcard)
9
11. Content class - Show elements usage 2/5
Frage
Welche Elemente einer content class kann ich löschen, sind unbenutzt?
Eingabe Antwort
Anzeige welche Elemente in welchen
Templates benutzt werden.
11
13. Content class - Show language variant dependency 3/5
Frage
Kommen die Seiten einer content class in den Übersetzungsworkflow?
Eingabe Antwort
Zeigt für alle Elemente an, ob es
sprachvariantenabhängig
oder –unabhängig konfiguriert ist.
13
14. Content class – Show language variant dependency 3/5
sprachvarianten-
abhängig und …
… änderbar = OK
… nicht änderbar
= falsch?
14
15. Content class - Preassignment reference 4/5
Frage
An welchen MultiLink-Templateelementen ist eine content class vorbelegt?
Eingabe Antwort
Zeigt alle Templateelemente aller
content classes an, an denen die
ausgewählte content class vorbelegt
ist.
• alle Folder oder
• ein bestimmter Folder
15
17. Berechtigung - Show users of group 5/5
Frage
Kann ich direkt im SmartTree ermitteln, ob ein Benutzer an einer Seite berechtigt ist?
Eingabe Antwort
Zeigt im SmartTree alle Benutzer einer
Benutzergruppe direkt an.
17
18. Berechtigung - Show users of group 5/5
spart Wechsel in
den ServerManager
18
19. 12 Plugins für Admins - Ausblick
weitere Informationen
Unofficial RedDot CMS blog
http://www.reddotcmsblog.com/12-java-plugins-using-rql-api/
• Beschreibung aller Plug-ins
• download inklusive Applikationsserver
• Installationsanleitung
Kein Java Know-how notwendig!
19
20. 1. Einführung
2. 12 Plug-ins für Admins
3. jRQL API
4. jRQL bei Hapag-Lloyd
21. Was ist jRQL?
• Basis aller Plug-ins
• Application Programming Interface (API)
• objektorientiert flexibel
• Java 5
• im Kern ~ 100 Klassen
• zusätzlich ~ 45 Hilfsklassen
• kapselt ~ 160 RQL Kommandos
robust
jRQL bewährt
• auch undokumentierte
• getestet in CMS 7.5 und MS 9
siehe jRQL Blog umfassend
http://jrql.wordpress.com/
21
22. Wie funktioniert jRQL?
Plug-in Plug-in Batchprogramm
jRQL
RQL
RQL
RQL
Management Server
22
23. Vorteile der zusätzlichen Schicht
Objektorientiert
• trennt das Was vom Wie
• RQL XML Verarbeitung versteckt
• übersichtlich und elegant
Kapselung
• 1 RQL Kommando = 1 Implementierung
• Objekte speichern RQL Ergebnisse
• jedes jRQL Objekt kann RQL Kommandos starten
• geringe Releaseabhängigkeit
• high-level-API
• nachträgliche Verbesserung möglich
Wiederverwendung
• beschleunigt Neuentwicklung
• reduziert Testaufwand
23
24. Was kann jRQL? - Übersicht
Anmelden Autoren
jRQL
SmartTree ServerManager
24
25. Was kann jRQL? – Bereich 1 - Anmelden 1/2
Plug-in Batch
jRQL Anmeldung
vorhandene Login mit Name
Sitzungsdaten und Passwort
Berechtigung Mitbenutzung eigene
Aufgaben (Tasks) Mitbenutzung eigene
25
26. Was kann jRQL? – Bereich 1 - Anmelden 2/2
Batchprogramm 1 Batchprogram 2
jRQL
Projekt 1 Projekt 2 Projekt 3 Projekt A Projekt B
MS 1 MS 2
gleichzeitiger Zugriff auf
• beliebig viele Projekte und
26
• beliebig viele WSMS
27. Was kann jRQL? – Bereich 2 - Autoren
Inhaltselemente bearbeiten
• Standardfelder
• Text
• Image
• Media
• inklusive Vorgabewerte
Liste und Container Seite
• Seite(n) • Publizierung starten
• erstellen • Workflow
• abhängen • Status anzeigen
• verschieben • Aktionen auslösen
• verknüpfen • …
• …
vollständige Liste aller Funktionen (JavaDoc) auf http://jrql.110mb.com/
27
28. Was kann jRQL? – Bereich 3 - SmartTree
Content class bearbeiten
• Plug-ins zuweisen
• Elemente löschen
• Festes Stylesheet setzen
• Standardfeld Text erstellen
• MultiLinks referenzieren, inklusive aller Seiten
• …
Publizierung
• Exportpakete aufbauen
• Jobs und Reports verwalten
•…
vollständige Liste aller Funktionen (JavaDoc) auf http://jrql.110mb.com/
28
29. Was kann jRQL? – Bereich 4 - ServerManager
Benutzer und Gruppen
• Eigenschaften lesen
• Benutzer einer Gruppe
hinzufügen
• Benutzer abmelden
• …
Projekte Plug-in
• sperren • aktivieren
• freigeben • deaktivieren
• an content class zuweisen
• Export starten • …
• …
vollständige Liste aller Funktionen (JavaDoc) auf http://jrql.110mb.com/
29
30. 1. Einführung
2. 12 Plug-ins für Admins
3. jRQL API
4. jRQL bei Hapag-Lloyd
32. jRQL bei Hapag-Lloyd – Administration - Relaunch hlag.com 1/2
Anforderung Publizierungskonfiguration
• 30 Projektvarianten (5 Templates x 6 Umgebungen)
• 4 Sprachvarianten
• 20 Exportpakete
jRQL kann:
• Publizierungsstruktur erstellen und navigieren
• im Publizierungspaket neue SV / PV Kombination hinzufügen
• an Kombination
• Publizierungsziele bearbeiten
• Ordner in publizierte Seiten setzen
Vorteile
• hat viel Zeit gespart
• keine Flüchtigkeitsfehler
32
33. jRQL bei Hapag-Lloyd – Administration - Relaunch hlag.com 2/2
Anforderung Massendaten migrieren, z.B.
• 220 Pressemitteilungen
• 300 Büroseiten mit 2300 Kontaktzeilenseiten
Altes Projekt 1. kopieren on-the-fly Neues Projekt
zu Seite navigieren Seite erstellen
Daten lesen Daten schreiben
2. Export, Korrektur und Import
Altes Projekt Neues Projekt
zu Seite navigieren Seite erstellen
Daten lesen Daten schreiben
3. Assets migrieren
Altes Projekt Neues Projekt
Download Assets importieren
Dateinamen setzen
Dateisystem
33
35. jRQL bei Hapag-Lloyd – Batchprogramme - HIP Seitenstatistik 1/2
Frage
Welche Benutzer haben in der letzten Woche welche Seiten erstellt oder geändert?
Eingabe Antwort
• Benutzername und Passwort • sammelt alle physischen Seiten unter Startseite
• Startseite • ermittelt Details physischer Seiten
• erstellt eine Excel-Datei
36
36. jRQL bei Hapag-Lloyd – Batchprogramme - HIP Seitenstatistik 2/2
Seiten ID Erstellung Publizierter Dateiname
Überschrift Änderung Berechtigung
Content class
37
37. jRQL bei Ihnen – Batchprogramme - Eigene Statistik
jRQL sammelt physische Seiten
• fertige Komponente mitgeliefert
• Beispielprogramm im jRQL download enthalten
Vorbedingungen
• alle content classes markieren, die physische Seiten definieren
• implementieren, was für eine physische Seite getan werden soll
Anleitung im jRQL Blog
http://jrql.wordpress.com/2009/12/15/do-something-for-all-physical-pages-in-a-project/
38
39. jRQL bei Hapag-Lloyd – 1. Plug-in - Edit linking 1/2
Fragen
An welchen MultiLinks ist eine Seite verknüpft?
Eingabe Antwort
Anzeige aller MultiLinks, an denen die geöffnete
Seite verknüpft ist.
• Verknüpfung lösen
• Hauptlink wählen
40
40. jRQL bei Hapag-Lloyd – 1. Plug-in - Edit linking 2/2
MultiLink
Seite des
MultiLinks
bearbeiten
41
41. jRQL bei Hapag-Lloyd – 2. Plug-in - Submit with blocks 1/2
Frage
Wie findet ein Autor alle Blockseiten zu einer physischen Seite, wenn er alle in
einem Schritt bestätigen möchte?
Eingabe Antwort
Ermittlung der Struktur der physischen Seite
und Bestätigung aller Blockseiten im Entwurf
mit einem Klick.
42
42. jRQL bei Hapag-Lloyd – 2. Plug-in - Submit with blocks 2/2
Struktur der
physischen Seite
gewählte Seiten
bestätigen
43
43. jRQL bei Hapag-Lloyd – 3. Plug-in - Publish page 1/2
Frage
Welche Projekt- und Sprachvarianten muss ein Benutzer wählen, wenn er eine
Seite publizieren möchte?
Eingabe Antwort
Autor wählt für geöffnete Seite nur noch
Umgebung, das Plug-in entscheidet nach
content class.
44
44. jRQL bei Hapag-Lloyd – 3. Plug-in - Publish page 2/2
Vorbelegung
steuerbar
berücksichtigt
Berechtigung des
Autors
Startet
Publizierung
45
45. jRQL – Einschränkungen
• jRQL ist nicht vollständig
• subjektive Auswahl
• keine Gewähr
• kein Quelltext
• Grundfunktionen nur in CMS 7.5 und MS 9 getestet
• nicht mehr alle Funktionen verwendet
• verwendete Serversprache: Englisch
46
46. jRQL – Weitere Informationen
jRQL Blog
http://jrql.wordpress.com/
• Tutorial mit getting started
• download als Eclipse-Projekt
• Installationsanleitung
vollständige Dokumentation aller Funktionen (JavaDoc)
http://jrql.110mb.com/
47