Verbessertes Module Version Handling

Einführung

Der Magnolia Module-Mechanismus erlaubt es Entwicklern, den Lebenszyklus von Magnolia Modulen zu verwalten. Jedes Magnolia Module definiert in seinem Module-Deskriptor XML File verschiedene Module-Klassen, wovon eine der sogenannte VersionHandler ist. (Siehe Module descriptor elements). Im Module-Descriptor registriere ich also eine Klasse, welche das ModuleVersionHandler Interface implementiert. Magnolia stellt hier bereits Basisklassen zur Verfügung, welche sich z.B. um die Unterscheidung von zwischen Install- oder Update-Modus kümmern.

In diesem kurzen Post möchte ich zeigen, wie man die Magnolia Klassen erweitern kann, um möglichst effizient verschiedene Use Cases der Module-Entwicklung abzudecken.

(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 …)

User Generated Content mit dem Forum-Modul

In diesem Post möchte ich anhand eines konkreten Szenarios alle Schritte aufzeigen, die zur Inbetriebnahme des Forum-Moduls mit Magnolia 4.5.x notwendig sind.

Das Forum-Modul steht für Magnolia 4.5.x aktuell in der Version 1.3.4 bereit und beherrscht erst die grundlegendsten Forum-Funktionen:

  • Themen anlegen
  • Threads anlegen
  • Beiträge erfassen / Auf Beiträge antworten
    • Keine Zitate
    • Keine Code-Blocks
    • Keine Formatierung wie fettkursivunterstrichen
    • HTML möglich (!!)

Momentan ist eine überarbeitete Version (4.0) des Forums in Planung, die die oben genannten fehlenden Funktionen nachliefern soll. Wie hoch der Release dieser Version priorisiert ist kann ich aber nicht sagen.

Szenario

Ich vermute, dass die am häufigsten anzutreffende Konstellation von Magnolia-Instanzen aus 2 Public- und einer Autor-Instanz besteht. Deshalb wird es unser Ziel sein, das Forum so in diese Umgebung zu integrieren, dass:

  • Content der auf PublicA erfasst wird, automatisch auch auf PublicB erscheint und umgekehrt,
  • Forum-Beiträge von allen 3 Instanz aus moderiert werden können.

Author- und Public-Instanz

(mehr …)

Design Pattern – Dependency Injection

Zur Freude von vielen Entwicklern setzt Magnolia ab Version 4.5 auf das Dependency Injection Design-Pattern (oder Inversion of Control). Dieses Pattern gibt es jetzt schon eine ganze Weile und hat sich spätestens mit dem Spring Framework für Java bei vielen Projekten bewährt.
(mehr …)

Magnolia Conference 2013: Vortrag Magnolia Migration

Da die Conference Videos mittlerweile ihren Weg ins Netz gefunden haben, wird es höchste Zeit unsere Präsenz an der Conference noch einmal Revue passieren zu lassen.
Wie von Markus Tressl im Magnolia Conference Blog Post bereits erwähnt wurde, war Namics dieses Jahr nicht nur als Teilnehmer mit von der Partie. Wir (Stefan Baur und Daniel Kummer) haben unsere Erfahrungen zur Migration von Magnolia 4.4 auf 4.5 mit dem Rest der Community geteilt.
In unserem Vortrag haben wir versucht, ehrlich und unverfälscht sowohl über die positiven als auch negativen Erfahrungen der Migration zu berichten.
Um doch ziemlich trockenen Thema mehr Pfeffer zu verleihen, wurde die Präsentation in abenteuerlicher „Indiana Jones“-Manier gehalten.

(mehr …)

Informationsquellen von und zu Magnolia

Wer kennt diese Situation nicht? Man sucht nach einer Information, weiss aber nicht wo die Suche danach am Besten beginnen soll. Oder aber man weiss, man hat diese Information schon mal irgendwo gesehen – findet sie aber nicht mehr. Klar, Google ist dein Freund (und z.B. Evernote, um Texte/Inhalte jederzeit im Zugriff zu haben). Aber wenn es um Magnolia geht oder es sich um ein spezifisches Problem handelt, kann es ja nachdem sinnvoll sein, ein paar Einstiegspunkte für die Recherche zur Hand zu haben. Genau das möchte ich mit diesem Post gerne versuchen.

(mehr …)

Magnolia Conference 2013: Partnertag und Konferenz

Namics hat die vergangenen Tage als Magnolia Partner an der Magnolia Conference 2013 in Basel teilgenommen, in diesem Jahr in entspannter Kino-Atmosphäre im Pathé Küchlin. Vorneweg: ein grosses ‚Dankeschön‘ an das gesamte Magnolia-Team für die reibungslose Organisation. Von den einzelnen Vorträgen und Keynotes, über das Catering zwischendrin, die Mittags- und Abendverpflegung sowie die Party in der Elisabethenkirche ein voller Erfolg!

(mehr …)

Seite 2 von 3123