[osgi] Services implementieren

DEvent

Bekanntes Mitglied
Hallo,
ich beschäftige mich gerade mit OSGi Services und frage mich wie man sie am implementiert. Ich verstehe, dass im Bundle-Lebenszyklus ein Services aktiviert und registriert werden kann.

Aber soweit ich das sehe, kann man für jeden Service nur ein Objekt erstellen und registrieren. Somit muss das Objekt Thread-sicher sein, damit es von mehreren Clients konsumiert werden kann. Wo aber bringt man die Konfiguration für den Service unter?

Als Beispiel, ich habe einen Services, der Daten aus einer Datenbank ausliest und es den Clients zur Verfügung stellt. Nun muss aber der Service wissen, welche Datenbank es benutzen soll. Wenn nun Client A auf die Datenbank a stellt, und dann später Client B auf die Datenbank b stellt, kann ja alles kollidieren. Das Interface darf dann gar nicht so sein:
Java:
public interface Service {

  void setDatabase(Database database);

  Data getData();

}
Sondern muss alles in einer Methode erledigen:
Java:
public interface Service {

  Data getData(Database database);

}

Gibt es Richtlinien im Web für die Erstellung von Services? Wo bringt man die Konfiguration eines Service unter?

Gibt es ein Unterforum für OSGi spezifische Fragen?
 

Wildcard

Top Contributor
Mach doch stattdessen eine Methode:
Java:
public DatabaseClient getDatabaseClient(Database)

Gibt es ein Unterforum für OSGi spezifische Fragen?
Gibt es, und genau dorthin verschiebe ich den Beitrag jetzt auch.
 
M

maki

Gast
Aber soweit ich das sehe, kann man für jeden Service nur ein Objekt erstellen und registrieren. Somit muss das Objekt Thread-sicher sein, damit es von mehreren Clients konsumiert werden kann. Wo aber bringt man die Konfiguration für den Service unter?

Als Beispiel, ich habe einen Services, der Daten aus einer Datenbank ausliest und es den Clients zur Verfügung stellt. Nun muss aber der Service wissen, welche Datenbank es benutzen soll. Wenn nun Client A auf die Datenbank a stellt, und dann später Client B auf die Datenbank b stellt, kann ja alles kollidieren. Das Interface darf dann gar nicht so sein:
OSGi Services sind Singletons (aber nicht die "schlechte" Art ;)), mir ist nicht klar warum die Clients entscheiden können welche DB neutzt wird, u.U. wäre es sauberer für jede DB eigene Services zu nutzen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F OSGi und root rechte Plattformprogrammierung 2
Z MySQL-Treiber in RAP-Anwendung für Jetty im OSGI- Equinox- Maven-Dschungel Plattformprogrammierung 0
Shams Antbuild - Problem bei OSGi Anfängertutorial Plattformprogrammierung 0
T OSGi OSGI bundle bauen org.apache.xerces Plattformprogrammierung 3
G OSGi Bundle-ClassPath Plattformprogrammierung 3
P OSGi registerService Plattformprogrammierung 3
H OSGi OSGi + Logback + slf4j - Eclipse Run Configuration Plattformprogrammierung 7
G OSGI bundleChanged Plattformprogrammierung 2
E OSGi Equinox HttpService only supports servlet 2.1 specification. Plattformprogrammierung 2
X Probleme mit dem OSGi-Framework Plattformprogrammierung 3
S OSGi Declarative Service Cardinality Plattformprogrammierung 6
Kr0e OSGI - Anfängerfragen Plattformprogrammierung 3
K OSGi Verteilte Anwendung? Plattformprogrammierung 9
B OSGi Einsteiger OSGi-Applikation Plattformprogrammierung 9
S (OSGI - EQUINOX) Welche Eclipse IDE? Plattformprogrammierung 3
N OSGi: Ressourcen gezielt aus bestimmten Modulen laden? Plattformprogrammierung 4
borobudur OSGi OSGi Blueprint Integrationstests Plattformprogrammierung 6
S OSGi Filter Syntax Plattformprogrammierung 2
N OSGi Dependency Loading Plattformprogrammierung 2
S OSGi Bibliothek für alle Plattformprogrammierung 5
H OSGI mit Eclipse und Maven Plattformprogrammierung 5
X OSGi Splash ohne product Plattformprogrammierung 2
G OSGi: Service registrieren Plattformprogrammierung 2
lumo OSGI Service - ServiceReference Plattformprogrammierung 3
G [osgi] bundle spezifische properties Plattformprogrammierung 5
C RCP Applikation starten als OSGi Bundle Plattformprogrammierung 2
B equinox OSGi EclipseStarter.startup NullPointerException Plattformprogrammierung 3
B OSGi, Euqinox, innherhalb vom Bundle Pfad des zugehörigen jar-files ermitteln Plattformprogrammierung 6
B OSGi, Equinox, Exceptions werden "ignoriert" Plattformprogrammierung 21
C OSGi, Hibernate und welche Datenbank? Plattformprogrammierung 4
astralarse Custom OSGi Launcher mit config.ini Plattformprogrammierung 6
C Eclipse - Externe OSGi bundles adden Plattformprogrammierung 7
F OSGi Anwendungsdesign Plattformprogrammierung 3
N OSGI in Netbeans? Plattformprogrammierung 5
X OSGi und RCP Plattformprogrammierung 15
C OSGi shutdown Plattformprogrammierung 4
D Problem mit Synth Painter und OSGi (Equinox) Plattformprogrammierung 8
D OSGi JSR296 (Swing Application Framework) - Konzeptionsfrage Plattformprogrammierung 2
G Osgi Plattformprogrammierung 5
A Plugin konzepte: OSGI oder JPF? Plattformprogrammierung 5
S OSGI Framework Knopflerfish Plattformprogrammierung 11
H OSGi Deklarative Services oder Blueprint Plattformprogrammierung 2
I OSGi JUnit Plug'in Tests von deklarativen Services Plattformprogrammierung 5
dzim OSGi Problem beim Verwenden von Declaratice Services Plattformprogrammierung 18
R Declarative Services - Nullpointer Exception Plattformprogrammierung 2
M Grahiti in einem RCP Projekt implementieren Plattformprogrammierung 1
dzim Implementieren einer Help-Seite Plattformprogrammierung 18

Ähnliche Java Themen


Oben