Server mit OSGi Blueprint konfigurieren

Sie können Container-Server von WebSphere eXtreme Scale mit einer OSGi-Blueprint-XML-Datei konfigurieren, was das Packen und die Entwicklung eigenständiger Server-Bundles vereinfacht.

Vorbereitende Schritte

In diesem Artikel wird davon ausgegangen, dass die folgenden Aufgaben ausgeführt wurden:

Informationen zu diesem Vorgang

In dieser Aufgabe wird beschrieben, wie Sie einen eXtreme-Scale-Server mit einem Container über eine Blueprint-XML-Datei konfigurieren. Das Ergebnis dieser Prozedur ist ein Container-Bundle. Wenn das Container-Bundle gestartet wird, überwacht das eXtreme-Scale-Server-Bundle das Bundle, parst die Server-XML und startet Server und Container.

Ein Container-Bundle kann optional mit der Anwendung und den eXtreme-Scale-Plug-ins kombiniert werden, wenn dynamische Plug-in-Aktualisierungen nicht erforderlich sind oder die Plug-ins keine dynamische Aktualisierung unterstützen.

Vorgehensweise

  1. Blueprint-XML-Datei mit eingeschlossenem objectgrid-Namespace erstellen. Sie können die Datei beliebig nennen. Sie muss jedoch den Blueprint-Namespace enthalten.
    <?xml version="1.0" encoding="UTF-8"?>
    
    <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance
               xmlns:objectgrid="http://www.ibm.com/schema/objectgrid"
               xsi:schemaLocation="http://www.ibm.com/schema/objectgrid
                    http://www.ibm.com/schema/objectgrid/objectgrid.xsd">
    ...
    </blueprint>
  2. XML-Definition für den eXtreme-Scale-Server mit den entsprechenden Servereigenschaften hinzufügen. Einzelheiten zu allen verfügbaren Konfigurationseigenschaften finden Sie in der Spring-XML-Deskriptordatei. Sehen Sie sich das folgende XML-Definitionsbeispiel an:
    <objectgrid:server id="xsServer" tracespec="ObjectGridOSGi=all=enabled" 
    tracefile="logs/osgi/wxsserver/trace.log" jmxport="1199" listenerPort="2909">
    <objectgrid:catalog host="catserver1.mycompany.com" port="2809" />
    <objectgrid:catalog host="catserver2.mycompany.com" port="2809" />
    </objectgrid:server>
  3. XML-Definition für den eXtreme-Scale-Container mit der Referenz auf die Serverdefinition sowie die im Bundle integrierten ObjectGrid-XML-Deskriptor- und ObjectGrid-XML-Implementierungsdateien hinzufügen, z. B.:
    <objectgrid:container id="container" 
        objectgridxml="/META-INF/objectGrid.xml" 
        deploymentxml="/META-INF/objectGridDeployment.xml"
        server="xsServer" />
  4. Blueprint-XML-Datei im Container-Bundle speichern. Die Blueprint-XML-Dateimuss im Verzeichnis OSGI-INF/blueprint gespeichert werden, damit der Blueprint-Container gefunden wird.
    Wenn Sie die Blueprint-XML-Datei in einem anderen Verzeichnis speichern möchten, müssen Sie den Manifestheader "Bundle-Blueprint" angeben, z. B.:
    Bundle-Blueprint: OSGI-INF/blueprint.xml
  5. Dateien in eine einzige Bundle-JAR-Datei packen. Sehen Sie sich das folgende Beispiel für eine Bundleverzeichnishierarchie an:
    MyBundle.jar
        /META-INF/manifest.mf
        /META-INF/objectGrid.xml
        /META-INF/objectGridDeployment.xml
        /OSGI-INF/blueprint/blueprint.xml

Ergebnisse

Es wurde ein eXtreme-Scale-Container-Bundle erstellt, das in Eclipse Equinox installiert werden kann. Wenn das Container-Bundle gestartet wird, startet die Laufzeitumgebung des eXtreme-Scale-Servers automatisch den eXtreme-Scale-Singleton-Server mit den im Bundle definierten Parametern und startet einen Container-Server. Das Bundle kann gestoppt und gestartet werden, was dazu führt, dass der Container gestoppt bzw. gestartet wird. Der Server ist ein Singleton und wird nicht gestoppt, wenn das Bundle zum ersten Mal gestartet wird.