Das Design-Pattern Listener/Event ist ein
sehr sinnvolles Prinzip, wenn ein Objekt
ueber Aenderungen eines anderen informiert
werden will. Es ist elementarer Bestandteil
(vermutlich) aller Widget-Toolkits um im
Programmcode ueber die Interaktionen des
Benutzers informiert zu werden. Mit dem
Jameica-Messaging-System steht eine Moeglichkeit
bereit, pluginuebergreifend in ganz Jameica
ueber Ereignisse benachrichtigt zu werden.
Um als Nachrichten-Empgfaenger im System
registriert zu werden, genuegt es, das
Interface MessageConsumer
zu
implementieren. Beim Start von Jameica
ermittelt die MessagingFactory selbstaendig
alle existierenden Nachrichten-Verbraucher
und registriert diese.
Von nun an kann jede Klasse mittels
Application.getMessagingFactory().sendMessage(Message)
.
eine Nachricht versenden. Alle registrierten
MessageConsumer erhalten dann diese Nachricht
und koennen darauf reagieren. Auf diese
Weise kann z.Bsp. ein Plugin A Nachrichten
an ein Plugin B senden ohne pruefen zu
muessen, ob Plugin B ueberhaupt installiert
ist.
WICHTIG: Die Nachrichtenzustellung erolgt in einem separaten Thread. Das ist wichtig, damit ein Nachrichten- Verbraucher Jameica nicht zum Stehen bringen kann, wenn das Verarbeiten der Nachricht zeitaufwendig ist. Also nicht vergessen: Nachrichten-Sender und Verbraucher befinden sich in verschiedenen Threads.
Interface | Description |
---|---|
Message |
Das ist das gemeinsame Interface aller Nachrichten.
|
MessageConsumer |
Dieses Interface muss implementiert werden, wenn man die Nachrichten
des Messaging-Systems erhalten will.
|
MessagingQueue |
Eine Queue, ueber die Nachrichten verschickt werden koennen.
|
Class | Description |
---|---|
AddScriptMessageConsumer |
Registriert ein Script, welches via Messaging uebergeben wurde.
|
AutoRegisterMessageConsumer |
Uebernimmt das Suchen und Aktivieren der automatisch zu registrierenden Message-Consumer.
|
BookmarkPreloadMessageConsumer |
Triggert das Laden der Bookmarks im Hintergrund.
|
BootMessage |
Eine Boot-Message, die zum Beispiel versendet wird, wenn es beim Boot-Vorgang
zu einem Fehler kam, der dem User angezeigt werden soll.
|
BootMessageConsumer |
Empfaengt Boot-Messages und haelt sie fuer den spaeteren Abruf bereit.
|
CheckTrustMessage |
Message, die synchron verschickt wird, wenn die Vertrauensstellung
eines Zertifikates geprueft werden soll.
|
FileChangedMessage |
Wird gesendet, wenn sich im System eine Programm-Datei geaendert hat.
|
FileChangedMessageConsumer |
Ueberwacht alle Programm-Dateien auf Aenderungen und informiert ggf das System.
|
I18nMessageConsumer |
Wird beim Herunterfahren von Jameica benachrichtigt und speichert Strings ab, zu denen
waehrend der Sitzung keine Uebersetzungen gefunden wurden.
|
InvokeScriptMessageConsumer |
Message-Consumer, der QueryMessages mit Script-Funktionen ausfuehrt.
|
KeystoreChangedMessage |
Nachricht, die gesendet wird, wenn sich der Keystore geaendert hat.
|
LookupService |
Dieser Service erlaubt die automatische Suche nach Service-URLs
im LAN via Multicast.
|
ManifestMessageConsumer |
Uebernimmt das Registrieren der im Plugin-Manifest definierten
Message-Consumer sowie das Versenden von Messages, die im Manifest definiert wurden.
|
MessageBus |
Eine Convenience-Klasse zum einfachen Verschicken von Messages
an beliebige Channels, ohne extra Message-Objekte erzeugen zu muessen.
|
MessageCollector |
Hilfsklasse, um Nachrichten eines bestimmten Typs zu sammeln.
|
MessagingFactory |
Die Nachrichtenzentrale von Jameica ;).
|
NamedConcurrentQueue |
Implementierung einer benamten Queue, die jedoch mittels ThreadPoolExecutor
multi-threaded arbeitet.
|
NamedQueue |
Implementierung einer Queue, die einen Namen hat.
|
PluginCacheMessageConsumer |
Wird ueber die Installation und Deinstallation von Plugins benachrichtigt und
haelt eine Liste mit dem aktuellen Stand der Plugins.
|
PluginMessage |
Message, die verschickt wird, wenn zur Laufzeit an einem Plugin etwas geaendert wurde.
|
PluginUninstallScriptingMessageConsumer |
Wird benachrichtigt, wenn ein Plugin deinstalliert wird.
|
PopupMessageConsumer |
Message-Consumer, der Popups anzeigt.
|
QueryMessage |
Generische Nachricht, die verschickt werden kann, wenn man
zum Beispiel von einem anderen Plugin Informationen abfragen
will.
|
ReminderAppointmentMessageConsumer |
Message-Consumer, der ausgeloest wird, wenn ein Freitext-Reminder faellig ist.
|
ReminderMessage |
Erweitert eine Query-Message, um das urspruenglich geplante Ausfuehrungsdatum von
Remindern mit angegeben zu koennen.
|
RemoveScriptMessageConsumer |
Deregistriert ein Script, welches via Messaging uebergeben wurde.
|
SettingsChangedMessage |
Wird versendet, wenn der User die System-Einstellungen von Jameica geaendert hat.
|
SettingsRestoredMessage |
Wird versendet, wenn der User die System-Einstellungen von Jameica zurueckgesetzt hat.
|
StatusBarGUIMessageConsumer |
Ein Nachrichten-Consumer, der alle Statusbar-Meldungen im GUI-Mode anzeigt.
|
StatusBarMessage |
Wenn man eine Nachricht in der Statuszeile von Jameica anzeigen
will, dann schickt man einfach eine Nachricht dieses Typs an
die MessagingFactory.
|
StatusBarServerMessageConsumer |
Ein Nachrichten-Consumer, der alle Statusbar-Meldungen im Server-Mode in's Log schreibt.
|
SystemMessage |
Diese Nachricht wird gesendet, wenn sich am System-Status von Jameica
etwas geaendert hat.
|
SystemRepositoryTrustMessageConsumer |
Wird verwendet, um beim ersten Oeffnen des System-Plugin-Repository einen Custom-Dialog
anzuzeigen.
|
TextMessage |
Eine Standard-Textnachricht mit Text und Titel.
|
UncleanShutdownMessageConsumer |
Loest eine Message nach dem Start von Jameica aus, wenn der vorherige Shutdown nicht sauber war.
|
Enum | Description |
---|---|
PluginMessage.Event |
Die verschiedenen Events.
|
Annotation Type | Description |
---|---|
Receive |
Damit koennen Methoden in Klassen annotiert werden, die
via Messaging aufgerufen werden koennen.
|