Java Reference
In-Depth Information
! Log Service: Wie der Name verrät, wird damit ein von vielen Komponenten benötigter
Dienst zum Logging realisiert. Beim Starten der Komponente werden zwei Dienste ange-
meldet: ein LogService, mit dem man Log-Meldungen eintragen kann, und ein LogReader-
Service, mit dem man Log-Einträge lesen kann. An einem LogReaderService kann man
sich auch als LogListener anmelden, so dass man bei jedem neuen Log-Eintrag benach-
richtigt wird.
! Event Admin Service: Dieser Dienst ist ein sogenannter Pub-Sub-Dienst (Publish-
Subscribe). Der Dienst stellt unterschiedliche Kanäle zur Verfügung, an die man Ereig-
nisse melden kann (sendEvent, postEvent). Auß erdem kann man sich bei diesem Dienst
als EventHandler für einen bestimmten Kanal anmelden. Immer, wenn ein Ereignis für
diesen Kanal produziert wird, werden alle an diesem Kanal angemeldeten EventHandler
durch Aufruf der Methode handleEvent benachrichtigt.
! HttpService und WebConsole: Der Dienst HttpService stellt einen eigenen Web-Server zur
Verfügung. Über den von ihm zur Verfügung gestellten Dienst kann man Servlets (s.
Kapitel 12) registrieren, die dann zur Produktion einer Web-Seite aktiviert werden, wenn
eine mit dem Servlet angegebene URL bei diesem Web-Server angefordert wird. WebCon-
sole nutzt den Dienst HttpService. Er meldet ein Servlet an, so dass es möglich wird, OSGi
statt über Kommandozeile (Gogo) oder über das Dateisystem (File Install) auch über einen
Browser webbasiert zu steuern.
99 Versionen von Komponenten
OSGi bietet eine relativ ausgeprägte Unterstützung für das Umgehen mit unterschiedlichen
Versionen von Komponenten und Packages. Wie bereits in den Beispiel-Manifest-Dateien
gesehen kann man mit einer Bundle-Version-Zeile eine Versionsnummer für eine Kompo-
nente angeben. Von einer Komponente eines bestimmten Namens (Bundle-Symbolic-Name)
und einer bestimmten Version kann zu einem Zeitpunkt immer nur höchstens eine existie-
ren. Sehr wohl können aber zu einer Komponente mit einem bestimmten Namen gleichzei-
tig mehrere Versionen installiert sein. Auch einem Package kann beim Export eine Ver-
sionsnummer zugewiesen werden:
Export-Package: javacomp.osgi.bundle1;version="1.2.3"
Auf diese Art können mehrere Bundles dasselbe Package exportieren; sinnvollerweise sollte
dies mit unterschiedlichen Versionsnummern erfolgen. Beim Importieren kann ebenfalls
eine Versionsnummer angegeben werden:
Import-Package: javacomp.osgi.bundle1;version="1.2.3"
Statt einer konkreten Versionsnummer kann ein Versionsintervall angegeben werden.
Dieses Intervall kann geschlossen sein (d. h. die als Grenzen angegebenen Versionsnum-
mern gehören zum Bereich der akzeptierten Versionsnummern dazu):
Import-Package: javacomp.osgi.bundle1;version="[1.1.3,2.3.9]"
 
Search WWH ::




Custom Search