56
Konfiguration von OSGi- Anwendungen 1 Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH Anwendungen mit dem Configuration Admin Service

iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Embed Size (px)

DESCRIPTION

Vom 20. bis 24. April 2009 fand in Mainz die diesjährige Jax statt. iks war mit einem Vortrag zum Thema "OSGi" vertreten. Unsere beiden Mitarbeiter Herr Christoph Schmidt-Casdorff und Herr Thorsten Vogel haben vor 70 interessierten Zuhörern erläutert, wie sich OSGi-Anwendungen mit dem Configuration Service konfigurieren lassen.

Citation preview

Page 1: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Konfiguration von OSGi-Anwendungen

1Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

Anwendungenmit dem Configuration Admin Service

Page 2: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Agenda

� Konfiguration

� Konfiguration und OSGi� Konfiguration und OSGi

� Konfiguration und Declarative Services

� Konfiguration und Spring Dynamic Modules

2Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

Page 3: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Wo sind wir ?

� Konfiguration

� Konfiguration und OSGi� Konfiguration und OSGi

� Konfiguration und Declarative Services

� Konfiguration und Spring Dynamic Modules

3Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

Page 4: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Was verstehen wir unter Konfiguration?

� Setzen von Parametern, die Umfang, Aussehen, Verhalten und Ergebnisse einer Software beeinflussen. beeinflussen.

Zitat (http://de.wikipedia.org)

� Eingriff in die Wirkungsweise eines Systems� Veränderung zur Laufzeit - jederzeit

4

� Veränderung zur Laufzeit - jederzeit� notwendig zur Administration

Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

Page 5: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Beispiele aus dem Leben

� Konfiguration mittels JVM Optionen

� Konfiguration mittels Properties-Datei� Konfiguration mittels Properties-Datei� wird mittels Classloading oder Zugriff

aus Filesystem bereitgestellt� pro Komponente eine Properties-Datei

� Konfiguration mittels META-INF/Services� vgl. JAXP (SAXFactory, Dom Factory, ...)

5

� vgl. JAXP (SAXFactory, Dom Factory, ...)

� keine Administration möglich

Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

Page 6: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Wo sind wir ?

� Konfiguration

� Konfiguration und OSGi� Konfiguration und OSGi� OSGi Keywords� Config Admin Service � Managed Service Factories� Security� Deklarative Konfiguration - Metatype Service

6

� Deklarative Konfiguration - Metatype Service

� Konfiguration und Declarative Services

� Konfiguration und Spring Dynamic Modules

Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

Page 7: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

OSGi Keywords

? Service Registry

registriert

a.b.c.MyService

prop1=value1

Service-Nutzer

servicebundle

beans

7Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

bundle

kennt

Page 8: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Konfiguration in OSGi

� Wie sind Konfigurationen und Services gekoppelt?

� grundlegende Mechanismen� Wie wird Lifecycle von Services unterstützt?� Wie gelangen Konfigurationen zu Services?

� Wie werden Konfigurationen beschrieben?� programmatisch und deklarativ

8

� programmatisch und deklarativ

� Auswirkung von Konfigurationsänderungen zur Laufzeit

Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

Page 9: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Wo sind wir ?

� Konfiguration

� Konfiguration und OSGi� Konfiguration und OSGi� OSGi Keywords� Config Admin Service� Managed Service Factories� Security � Deklarative Konfiguration - Metatype Service

9

� Deklarative Konfiguration - Metatype Service

� Konfiguration und Declarative Services

� Konfiguration und Spring Dynamic Modules

Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

Page 10: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Konfiguration in OSGi

trackingService Registry

registriert

VermittlerConfig Admin Service

name value

Managed Service

pid=a.b.c

PID

10Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

name value

size 42

shape circle

color green

bundle

kennt

PID

a.b.c

Page 11: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Konfigurationsszenarien I

Config Admin Service

3 updated(Dictionary)

Managed Service

in separatem Thread

2configurations

PID Properties

a.b.c size=42

register service event1

pid=a.b.c

register

11Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

Service Registry

Page 12: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Konfigurationsszenarien II

Config Admin Service

2 updated(Dictionary)

Managed Service

configurations

Config Admin Service

PID Properties

a.b.c size=421 get managed services

Managed Service

pid=a.b.c

register

12Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

Service Registry

Page 13: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Config Admin Service

Konfigurationsszenarien III

5 updated(Dictionary)

2 updated(null)

Managed Service

configurations

Config Admin Service

PID Properties

5 updated(Dictionary)

PID Properties

a.b.c size=42 3

4

1

register service event

Managed Service

pid=a.b.c

register

13Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

Service Registry

4get managed services

Page 14: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Wo sind wir ?

trackingService Registry

registriert

VermittlerConfig Admin Service Managed Service

pid=a.b.c

PIDname value

14Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

bundle

kennt

PID

a.b.c

name value

size 42

shape circle

color green

Page 15: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Configuration Object (I)

� Konfigurationsinformationen

� heißen Configuration Object� heißen Configuration Object� werden als java.util.Dictionary repräsentiert� bestehen aus Primitiven- und Java-Simple Typen� .... oder Arrays oder Vektoren davon

15Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

Page 16: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Configuration Object (II)

� verwaltet einen Satz Konfigurationsinformationen

� wird programmatisch erzeugt� wird programmatisch erzeugt

� siehe Config Admin Service

� wird deklarativ erzeugt

� siehe Metatype Service

16Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

Page 17: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Wo sind wir ?

trackingService Registry

registriert

name value

VermittlerConfig Admin Service Managed Service

pid=a.b.c

PID

17Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

name value

size 42

shape circle

color green

bundle

kennt

PID

a.b.c

Page 18: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

PID (Persistent Identity)

� identifiziert ein Configuration Object

� identifiziert Managed Services� identifiziert Managed Services

� verbindet alle Beteiligten in einem Konfigurationsszenario

� ist eindeutig für alle Managed Services� maximal ein Configuration Object pro PID� maximal ein Managed Service pro PID

18

� maximal ein Managed Service pro PID� durch Spezifikation eingefordert

Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

Page 19: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Wo sind wir ?

trackingService Registry

registriert

PIDname value

VermittlerConfig Admin Service Managed Service

pid=a.b.c

19Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

PID

a.b.c

name value

size 42

shape circle

color green

bundle

kennt

Page 20: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Managed Services

� sind OSGi Services, die sich auf Konfigurationen beziehen

� konsumieren Konfigurationen des Config Admin Service

� implementieren das IF Managed Service� Methoden für Configuration Lifecycle

� referenzieren die Konfiguration mittels PID

20

� referenzieren die Konfiguration mittels PID� PID ist Service Property

Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

Page 21: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Wo sind wir ?

trackingService Registry

registriert

PIDname value

VermittlerManaged Service

pid=a.b.c

Config Admin Service

21Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

PID

a.b.c

name value

size 42

shape circle

color green

bundle

kennt

Page 22: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Config Admin Service

� ist ein Service der OSGi Spec

� verwaltet Configuration Objects� anlegen, löschen, verändern, finden� bietet Programmierschnittstelle für diese Aufgaben

� verwaltet Bezug zwischen Configuration Objectsund Managed Services� stellt initialen Bezug her

22

� stellt initialen Bezug her� kontrolliert die Auswirkung des Lebenszyklus

von Configuration Objects

� persistiert Configuration Objects

Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

Page 23: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Wo sind wir ?

� Konfiguration

� Konfiguration und OSGi� Konfiguration und OSGi� OSGi Keywords� Config Admin Service � Managed Service Factories� Security � Deklarative Konfiguration - Metatype Service

23

� Deklarative Konfiguration - Metatype Service

� Konfiguration und Declarative Services

� Konfiguration und Spring Dynamic Modules

Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

Page 24: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Managed Service Factory - Ausgangsszenario

� Ein Service wird mehrfach mit jeweils eigener Konfiguration instanziert

� Alle Konfigurationen sind gleichartig � werden gleichartig verarbeitet

24Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

Page 25: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Managed Service Factories

trackingService Registry

registriert

VermittlerConfig Admin Service

factory pid=a.b.c

Managed Service Factory

name valuename value factory

25Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

bundle

kennt

name value

size 42shape circle

color green

name value

size 19

shape square

color blue

factory PID

a.b.c

Page 26: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Wo sind wir ?

trackingService Registry

registriert

VermittlerConfig Admin Service

Registry

factory pid=a.b.c

Managed Service Factory

26Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

bundle

kennt

name value

size 42shape circle

color green

name value

size 19

shape square

color blue

factory PID

a.b.c

Page 27: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Factory Configuration

� Factory Configuration� enthalten mehrere gleichartige Configuration Objects� enthalten mehrere gleichartige Configuration Objects� werden durch eine factory PID identifiziert

� Config Admin Service unterstützt� Factory Configurations� Generierung einer PID pro Configuration

27Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

Page 28: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

registriert

Wo sind wir ?

trackingService Registry

VermittlerConfig Admin Service

Registry

factory pid=a.b.c

Managed Service Factory

28Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

name value

size 42shape circle

color green

name value

size 19

shape square

color blue

factory PID

a.b.c

bundle

kennt

Page 29: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Managed Service Factory

� Managed Service Factory� referenziert eine Factory Configuration� referenziert eine Factory Configuration

� factory PID

� ist Adressat aller Configuration Objects einer Factory Configuration

� erwartet eigene PID pro Configuration Object� updated(String(PID), Dictionary)

29Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

Page 30: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Wo sind wir ?

� Konfiguration

� Konfiguration und OSGi� Konfiguration und OSGi� OSGi Keywords� Config Admin Service� Managed Service Factories� Security� Deklarative Konfiguration - Metatype Service

30Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

� Deklarative Konfiguration - Metatype Service

� Konfiguration und Declarative Services

� Konfiguration und Spring Dynamic Modules

Page 31: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Security

� Configuration Objects sind � an ein Bundle gebunden� an ein Bundle gebunden

- i.d.R. an das erzeugende Bundle

� Bundles haben keine Möglichkeit, die Konfiguration anderer Bundles zu manipulieren

31Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

Page 32: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Config Admin Service – Essentials

� Configuration Objects� Singleton Configuration

� durch PID identifiziert

� Factory Configuration� durch factory PID identifiziert

� Adressat ist Managed Service [Factory]

� können programmatisch erzeugt werden

32

� IF des Config Admin Service

� können deklarativ erzeugt werden� mit Hilfe des Metatype Service

Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

Page 33: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Wo sind wir ?

� Konfiguration

� Konfiguration und OSGi� Konfiguration und OSGi� OSGi Keywords� Config Admin Service � Managed Service Factories� Security� Deklarative Konfiguration - Metatype Service

33

� Deklarative Konfiguration - Metatype Service

� Konfiguration und Declarative Services

� Konfiguration und Spring Dynamic Modules

Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

Page 34: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Deklarative Konfiguration - Erwartungshaltung

� Definition der Konfigurationsdaten� (key,value) – Pairs� einfache Typen für Werte� einfache Typen für Werte� multiple einfache Typen als Array oder Vector

� Konfigurationsdatei� XML

� Verbindung zu PID / factory PID

34

� Beschreibung der Meta-Daten � Name, Typ, Kardinalitäten usw. zu Attributen� unterstützt Erfassung von Konfigurationen

Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

Page 35: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Metatype Resource I

<?xml version="1.0" encoding="UTF-8"?><MetaData xmlns=... />

Attribute Definition

Object Class Definition

IdentifiziertIdentifiziert<MetaData xmlns=... /><OCD name="person" ����

id="2.5.6.6" description="..."><AD name="sn" id="2.5.4.4" type="String"/><AD name="cn" id="2.5.4.3" type="String"/><AD name="seeAlso" id="2.5.4.34" ����

type="String"����cardinality="3" ����

35Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

cardinality="3" ����</OCD>

Page 36: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Metatype Resource II

<Designate pid="com.acme.addressbook"><Object ocdref="2.5.6.6"/>

Zuordnung zwischen Object Definition und PID

Referenz via IDReferenz via ID

<Object ocdref="2.5.6.6"/><Attribute adref="2.5.4.4" content="X"/><Attribute adref="2.5.4.34">

<Value>[email protected]</Value> <Value>[email protected]</Value><Value>[email protected]</Value>

</Attribute>

36Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

</Designate></MetaData>

Page 37: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Konfiguration in OSGi

trackingService Registry

registriert

VermittlerConfig Admin Service Managed Service

pid=a.b.c

Registry

bundle

37Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

name value

size 42

shape circle

color green

kennt

PID

a.b.c

bundle

<<XML>>

Metatype Resource

Page 38: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Metatype Service

� deklarative Beschreibung� in XML Ressource (sogen. Meta Type Resource)� liegen in OSGI-INF/Metatype eines Bundles � werden durch Metatype Service extrahiert

� auch fragments werden untersucht

� programmatische Beschreibung � durch Implementierung der IF MetaTypeProvider

38

� durch Implementierung der IF MetaTypeProvider� optional für Managed Service [Factories]

� werden durch Config Admin Service ausgewertet

Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

Page 39: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Essentials - Metatype Service

� Metatype Resource� erlauben Deklaration von Konfigurationen � erlauben Deklaration von Konfigurationen

� Metadaten sind Basis für Adminstrations-konsolen� WebConsole, Knopflerfish Desktop

39Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

Page 40: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Agenda

� Konfiguration

� Konfiguration und OSGi� Konfiguration und OSGi

� Konfiguration und Declarative Services� Declarative Services� Configuration Objects und und Component

Configurations

� Konfiguration und Spring Dynamic Modules

40

� Konfiguration und Spring Dynamic Modules � Managed Properties� Managed Service Factories

Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

Page 41: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Component Configuration

� beschreibt Komponentenmodell für OSGi

� definiert Vertrag zwischen Services� definiert Vertrag zwischen Services

� definiert Vertrag zwischen Service und Framework

� ist Bestandteil des OSGi Service Compendiums

� wird durch Component Description deklariert

41

� XML

Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

Page 42: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Service Component Runtime

Declarative Services

<<XML>>Component

Service Component

Component Component }ComponentDescription

Component Properties

Component Configuration

Component ConfigurationComponent

ConfigurationComponent

Configuration}Service

Configuration Objects

42Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

kennt/erzeugt

Service Registry

Configuration Objects mittels

Config Admin Service

Page 43: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Wo sind wir ?

<<XML>>Component

Service Component

} Component Component ComponentDescription

Component Configuration}

Service

Component ConfigurationComponent

ConfigurationComponent

Configuration

Configuration Objects

Component Properties

43Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

kennt/erzeugt

Service Registry

Configuration Objects mittels

Config Admin Service

Page 44: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Component Configuration

� bezieht sich auf Configuration Object� mit PID gleich component.name� führt zu neuen Component Properties� ergänzt die Konfiguration der Komponente

� Filterkriterien zur Referenz von Services

� Bei Aktualisierung des Configuration Object� wird die entsprechende Component Configuration

deaktiviert

44

� wird die entsprechende Component Configurationdeaktiviert

� anschließend reaktiviert� Reaktivierung berücksichtigt neue Konfigurationssituation

Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

Page 45: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Essentials - Declarative Services

� Lifecycle der Component Configurations sind an den der Configuration Objects gekoppelt

� ganzer Mechanismus der OSGi Konfiguration steht zur Verfügung

� Eigenschaften von Komponenten � Abhängigkeiten zwischen Komponenten/Services

45Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

Page 46: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Wo sind wir ?

� Konfiguration

� Konfiguration und OSGi� Konfiguration und OSGi

� Konfiguration und Declarative Services

� Konfiguration und Spring Dynamic Modules � Managed Properties� Managed Service Factories

46Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

Page 47: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Spring DM (Dynamic Modules)

� Spring DM wird OSGi Standard in 4.2� RFC 124

� erweitert Spring� erweitert Spring� Application Context umfasst OSGi Kontext� dynamischer Service-Support� Integrationstests in OSGi

� ist (weiteres) Komponentenmodell für OSGi

47

� definiert Vertrag zwischen Services� definiert Vertrag zwischen Service und Framework� definiert Vertrag zwischen Bean und Service

Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

Page 48: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Wo sind wir ?

� Konfiguration

� Konfiguration und OSGi� Konfiguration und OSGi

� Konfiguration und Declarative Services

� Konfiguration und Spring Dynamic Modules � Managed Properties� Managed Service Factories

48Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

Page 49: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Spring DM - Managed Properties

<bean id="managedComponent" class="MessageTank"><osgix:managed-properties����

persistent-id="com.xyz.messageservice"/>

Bean wird überConfig Admin Service

konfiguriert

PID

persistent-id="com.xyz.messageservice"/>

</bean>

public class MessageTank {private int amount;

<property name="amount" value="100"/>

{49Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

private int amount;public int getAmount() {return this.amount; }public void setAmount(int amount)����

{ this.amount = amount; }}

{

Page 50: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Spring DM – Aktualisierung der Konfiguration

� Änderung der Configuration Objects� werden implizit nach Erzeugung der Beans ignoriert� werden implizit nach Erzeugung der Beans ignoriert

� explizite Strategien sind auszuwählen

� container-managed� setter der zu aktualisierenden Bean-Properties

� bean-managed� update-method, die bei Aktualisierung aufgerufen wird

50

� update-method, die bei Aktualisierung aufgerufen wird

Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

Page 51: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Wo sind wir ?

� Konfiguration

� Konfiguration und OSGi� Konfiguration und OSGi

� Konfiguration und Declarative Services

� Konfiguration und Spring Dynamic Modules � Managed Properties� Managed Service Factories

51Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

Page 52: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Spring DM – Managed Service Factories

<osgix:managed-service-factory id="data-msf"����factory-pid="org.xyz.labX" ����update-strategy="bean-managed" ����update-method="refresh">

factory PID

update strategy {update-method="refresh">

<osgix:interfaces><value>java.util.Queue</value>

</osgix:interfaces>

<bean class="com.xyz.ResizableQueue"><property name="size" value="100"/><property name="fair" value="false"/>

update strategy {service interface}

}

52Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

<property name="fair" value="false"/></bean>

</osgix:managed-service-factory>

Service Implementierung

}

Page 53: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Essentials - Spring DM

� Spring DM und Config Admin Serviceintegrieren sich harmonisch� Integration ist konsistent und erwartungstreu� Erweiterungen sind folgerichtig

� Spring DM koppelt Services an Configuration Objects� vgl. Declarative Services

53

� vgl. Declarative Services

Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

Page 54: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Essentials - Konfiguration in OSGi

� bietet jederzeitigen Eingriff in Wirkungsweise

� setzt stringent auf OSGi Mechanismen� setzt stringent auf OSGi Mechanismen

� unterstützt Singleton- und Factory Configurations

� koppelt Services und Configuration Objects � Erweiterung von Komponentmodellen

� Declarative Services und Spring DM

54Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

Page 55: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Bibliographie / Links

� OSGi Spec 4.1 / 4.2 Preview

� http://www.osgi.org/download/osgi-4.2-early-draft.pdfdraft.pdf

� OSGi Service Platform (Wütherich)

� http://www.dpunkt.de/buecher/2635.html

� OSGi in Practice (Neil Barlett) – Free!

� http://neilbartlett.name/blog/osgibook/

55

� Modular Java: Creating Flexible Applications withOSGi and Spring (Craig Walls)

� http://www.pragprog.com/titles/cwosg/modular-java

Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

Page 56: iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

Weitere Fragen?

www.iks-gmbh.com

56Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH

[email protected]@iks-gmbh.com