Hier ist ein Stück Code von der Apache CXF Dokumentation erstellen:Wie ein dynamische Eigenschaft Wert in einer OSGi DS-Service-Registrierung
CustomMessageBodyReaderWriter provider1 = new CustomMessageBodyReaderWriter();
provider.setCustomProperty(true);
Dictionary properties = new Hashtable();
properties.put("org.apache.cxf.rs.provider", provider);
bundleContext.registerService(
new String[]{"org.books.BookService"}, new BookServiceImpl(), properties);
Beachten Sie, dass dieses Stück Aktivator Verfahrens einen OSGi Service registriert, wo eine der Eigenschaftswerte ist ein Objekt, das zur Laufzeit erstellt und konfiguriert wird.
Was nun, wenn ich wollte, dass dies eine CXF dOSGi Komponente ist? Die einzige Möglichkeit, die Dienstregistrierungseigenschaften für DS @Components anzugeben, erfordert, dass der Eigenschaftswert eine Zeichenfolge im Slot "Eigenschaften" in @Component
ist. Gibt es eine Möglichkeit, ausführbaren Code zu verwenden?
Ich nehme nicht an, dass Sie auf ein Beispiel der ComponentFactory-Methode verweisen könnten. – bmargulies
@bmargulies Ich habe meine Antwort mit einem Beispiel aktualisiert –
Ziemlich cool. Ich habe die ComponentFactory in den DS-Beispielen nicht gefunden. –