Die Verbindung zum CommunityMashup wird direkt beim Start in der Klasse CommunityMirror, in der Funktion connectToCommunityMashup() hergestellt.

Konfiguration:

  • mashup.useMashupData = true # if mashup should be used at all
  • mashup.serverurl =
  • mashup.xmlinterface = $mashup.serverurl + "mashup/"
  • mashup.updateinterval = -1
  • mashup.attachmentspreload = false
  • mashup.fallbackfile =

Die Verbindung wird über eine Bibliothek aus dem CommunityMashup-Paket hergestellt - org.sociotech.communitymashup.framework.CommunityMashupApplicationFramework.jar. Diese Bibliothek verwendet aktuell noch einiges aus dem Eclipse Ecore-Paket - was bei Gelegenheit mal abgestellt werden sollte (Neuimplementierung der Client-Bibliothek).

Es wird zuerst ein MashupConnector-Objekt erzeugt, welches über eine XML-Url Daten vom Mashup lädt und falls konfiguriert regelmäßig aktualisiert.

Die lokal replizierten Daten werden im dataSet-Objekt zur Verfügung gestellt (zugreifbar gemacht).

Dabei ist updateinterval das Intervall (in Sekunden) zwischen zwei Update-Nachfragen an das Remote-Mashup - 0 oder kleiner führt dazu, dass keine Updates nachgefragt werden.
Update-Nachfragen werden über den org.sociotech.communitymashup.framework.java.updater.UpdateThread durchgeführt - durch Aufruf der Funktion update() im Connector. Dabei werden nur Items geladen, die seit der letzten Nachfrage geändert worden sind. Änderungen werden ausgeführt, indem delete: auf dem Item die delete()-Methode aufgerufen wird, add: auf dem dataSet die Methode forceAdd() aufgerufen wird, update: auf dem dataSet die Methode forceUpdate() aufgerufen wird - in den Funktionen localDelete(), localAdd() und localUpdate().

Notifkationen über Änderungen durch die update()-Methode bekommt man also im View durch hinzufügen eines Update-Listeners auf dem dataSet - wenn gewünscht. - im FlowView ist das aktuell noch nicht umgesetzt.

Nur wenn writeback == true, dann wird im MashupConnector ein DataSetChangeObserver erzeugt, der Änderungen im dataSet wieder an das Remote-Mashup zurückspielt.

Die Reverenz auf das dataSet wird an den View weitergegeben.

  • Keine Stichwörter