Tipp des Monats: Personas in Magnolia 5

Wenn man von Personas spricht, dann meint man meistens fiktive Websitebesucher, welche bestimmte Eigenschaften aufweisen, die einer Zielgruppe entsprechen. Das könnten z. B. alle Besucher aus einem bestimmten Land sein, oder etwas konkreter z. B. alle registrierten Besucher aus der Schweiz. (mehr …)

Magnolia Conference 2014

Magnolia Book

Letzte Woche fand vom 25. bis 26. Juni die alljährliche Magnolia Konferenz in Basel statt. Namics war mit einer bunt gemischten Delegation anwesend: Enno Deutschmann und Thomas Walter als Speakers, Daniela Marchese, Markus Tressl, Stefan Baur, Patrick Lötscher, Adrian Andermatt, Markus Leiter und Daniel Kummer (Ich) als Teilnehmer.

Neben der aktiven Teilnahme am Konferenzprogramm war Namics ebenfalls wieder mit einem Vortragsslot am Start. Dieses Jahr mit der Präsentation zum Thema: Content Personalisierung bei der Migros. Das Trend-Thema Personalisierung ist aktuell wichtig für Firmen, Partner, die Community und auch für Magnolia selber.

Nun, da die Konferenz vorbei und verarbeitet ist, lohnt es sich zurückzublicken und Fazit zu ziehen.

(mehr …)

Umgebungsspezifische Konfigurationen in Magnolia CMS

Einführung

Wenn ich ein grösseres Magnolia Projekt mit verschiedensten Instanzen aufsetze (local development, development, staging, integration, production), stellt sich früher oder später die Frage,  wie ich verschiedene Konfigurationen kontrolliert auf die verschiedenen Instanzen installieren kann.

In diesem Blog Post zeige ich einen einfachen Lösungsansatz auf, der sich beliebig erweitern und auf projektspezifische Bedürfnisse abstimmen lässt.

Problemstellung

Magnolia bringt out-of-the-box bereits einen Mechanismus mit, der umgebungsspezifisches Einspielen von XML Bootstrap Files erlaubt. Dieser Mechanismus ist aber beschränkt auf die Initialisierung des JCR Repositories und erlaubt deshalb weder das Einspielen von Updates via XML Files, noch eine Interaktion mit Java Code.

Im Laufe eines Projektes kommt oft der Punkt, an dem ich ein Update / Delta Task nur auf einem oder mehreren bestimmten Systemen ausführen möchte. Dazu zählen zum Beispiel das Ändern des SMTP Server im Mail Modul, oder das Aktualisieren eines Subscribers. Zudem kann es auf der lokalen Entwicklungsumgebung sinnvoll sein, bei jedem Neustart des Systems einen Teil der Konfigurationen neu zu schreiben, um die Entwicklung auf einem sauberen Stand zu starten oder Änderungen von anderen Entwicklern im eigenen Repository zu sehen.

Lösungsansatz

Im magnolia.properties File wird ein neues Property magnolia.environment definiert, welches den Namen der Umgebung beinhalten wird.

magnolia.properties

...
magnolia.environment = <env_name>
...

Dieser Lösungsansatz erfordert lediglich, dass für jede zu unterscheidende Umgebung ein eigenes magnolia.properties File existiert, was aber in grösseren Projekten weitgehend der Fall sein sollte.

Das neue Property wird durch eine simple Java Hilfsklasse ausgelesen, und erlaubt auf einfache Weise das Unterscheiden der verschiedenen Umgebungen, insbesondere der lokalen Entwicklungsumgebung. 

(mehr …)