Universal Messenger 6.2.0
Dieses Release wurde Anfang November 2013 freigegeben. Es enthält neue signifikante Features und Verbesserungen sowie kleine Bugfixes.
Features
Plugins / Plugin-Instanzen
Die sichtbarste Änderung sind die neuen Menüpunkte zu "Plugins" im "Extras"-Menü. Ein Plugin bündelt eine spezifische Funktionalität, die dann durch einen technisch versierten Anwender oder Systemintegrator im Projekt zum Einsatz gebracht werden kann.
Auf der technischen Eben wird hier von "Plugin-Instanzen" gesprochen, da es Plugins gibt, die mehrfach mit unterschiedlichen Konfigurationen verwendet werden können. Ebenso gibt es "Singleton-Plugins", von denen es nur eine Instanz geben kann. Diese Plugins können verschiedenste Ausprägungen haben: Formulare für die Website, Erweiterungen der GUI, Wizards, Prozess-Implementierungen und anderes ist möglich.
Die Plugins können mit Erscheinen dieser Release für projektspezifische Erweiterungen verwendet werden. Mit zukünftigen Versionen des Universal Messenger werden Standard-Plugins für die Newsletteranmeldung und viele andere Funktionen zur Verfügung stehen.
Neue Referenz-Architektur zur Formularentwicklung
Mit dem REST-Proxy und den Plugins haben wir eine neue Referenz-Architektur für die Entwicklung von Formularen für die Frontend-Website entworfen, welche die bisher verwendeten Connector-Bibliotheken ergänzt.
Bei der Nutzung der Connector-Bibliotheken wird die projektspezifische Logik für die Formulare auf einem Web-Server ausgeführt (in einer der drei Programmiersprachen PHP, Java oder .NET, für die es die Connectoren gibt) und der Universal Messenger wird über die Connectoren als Backend-System angesprochen.
In der neuen Architektur wird die komplette projektspezifische Logik im Universal Messenger ausgeführt, implementiert in JavaScript in der Core Scripting Engine. Dies erleichtert die Entwicklung moderner, Ajax-basierter Formulare mit komplexeren Interaktionsmöglichkeiten.
Performance und Sicherheit werden durch den zusammen mit dem Universal Messenger ausgelieferten REST-Proxy unterstützt. Der REST-Proxy stellt über eine Reihe von Maßnahmen sicher, dass nur zulässige Anfragen von der öffentlichen Website an das Backend gelangen können. Der REST-Proxy kann auch mehrfach verkettet und hinter Reverse Proxies aufgestellt werden, um individuelle Anforderungen an Netzarchitektur und Firewall-Beschränkungen zu erfüllen.
Mailversand per Amazon Simple Email Service (Amazon SES)
In den Amazon Web Services (AWS) wird der Simple Email Service (SES) angeboten. Dieser ließ sich bisher schon per SMTP ansprechen und zum Versand verwenden.
Jetzt kann auch die native API über HTTP verwendet werden. Dadurch ist es möglich, die ausgehenden Zugriffe über einen Proxy abzuwickeln.
Universal Messenger Website
Die Website zum Universal Messenger wurde komplett überarbeitet. Die Darstellung wurde mordernisiert und viele Inhalte wurden geprüft und ergänzt. Die jeweils aktuellen Handbücher (bisher als PDF-Dokumente im Hilfe-Menü des Universal Messenger abrufbar) sind in der Knowledge Base direkt als HTML verfügbar. Die API-Dokumentationen zu den Connector-Bibliotheken und zur CSE sind ebenfalls in der Knowledge Base verlinkt.
Alle interaktiven Elemente und Formulare sind in der neuen Referenzarchitektur mit dem Universal Messenger implementiert.
Verbesserungen
GUI
Für einige erste Funktionen in der Benutzeroberfläche des Universal Messenger wurden Tastatur-Kürzel eingeführt, welche die tägliche Arbeit erleichtern: 'e' bearbeitet einen Eintrag, der gerade angezeigt wird, 'Strg+s' speichert den Eintrag. Die erweiterte Suche kann mit 'Strg+Enter' ausgelöst werden. Weitere Shortcuts werden folgen.
Import
Bisher waren in Map-Dateien nur die Ausdrücke import.require.email = true bzw. import.require.mobile = true erlaubt, um Werte in der Eingabe zu erzwingen, obwohl das Attribut auch leere Werte zulässt. Nun läßt sich import.require... für alle Attribute verwenden.
Bounce Management
Wenn eine Bounce-Mail nicht klassifiziert und identifiziert werden kann, wird sie (wie bisher) an den Postmaster weitergleitet. Zusätzlich verbleibt sie im Folder "error" des IMAP-Postfachs erhalten.
Die Spalte "Gründe der Abmeldung" (chaction[]->reason) darf projektspezifisch auch eine Einfachauswahl sein oder komplett fehlen. Bisher musste es immer eine Mehrfachauswahl sein.
Core Scripting Engine (CSE)
Die Bibliotheken commons-codec, fluent-hc, httpclient, httpclient-cache, httpcore, httpmime, jackson-core sind nun immer mit installiert und können durch CSE-Code mit verwendet werden. Damit sind nun HTTP-Aufrufe möglich, um z.B. REST-Dienste zu anzusprechen.
Die Klassen Entry, Table und TableRow können nun direkt per getAttribute() nach ihren Attribut-/Spalten-Definitionen gefragt werden.
Die Konstante UM.config.systemDefaultEncoding enthält das System Default Encoding der JVM.
Administration
Beim Start wird die Lockdatei cmsbs.pid später angelegt. Dadurch muss sie im Absturz-/Fehlerfall weniger häufig manuell gelöscht werden.
Fehlerbereinigungen
GUI
Die Breite der Eingabefelder wird wieder so berücksichtig, wie sie konfiguriert ist. Mit dem neuen Design waren zunächst alle Felder gleich breit.
Beim Ablaufen der Session in einem Wizard wird nun keine Fehlermeldung mehr angezeigt, sondern der Wizard neu gestartet.
Connectoren
In allen Connectoren lieferte die Methode AttributeValues::isDefined(key) einen falschen Wert.
CSE
Der TransferCallback konnte beim Export eine Exception werfen, wenn eine CSV-Spalte überschrieben werden sollte.
Anbindung an das OpenText CMS
Der Aufruf von Plugins hat sich im OpenText CMS undokumentiert und inkompatibel geändert. Die Plugins des Newsletter-Systems müssen mit dem entsprechenden Job neu erstellt und im CMS registriert werden.