+ All Categories
Home > Technology > iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

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

Date post: 11-Jun-2015
Category:
Upload: iks-gesellschaft-fuer-informations-und-kommunikationssysteme-mbh
View: 662 times
Download: 0 times
Share this document with a friend
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.
56
Konfiguration von OSGi- Anwendungen 1 Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH Anwendungen mit dem Configuration Admin Service
Transcript
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


Recommended