J'essaie de créer un objet de carte en utilisant osgi @reference ie) en enregistrant la classe ci-dessous comme une fabrique avec dépendance en tant qu'objets Hashmap. Mon intention est de créer un objet en utilisant l'usine qui devrait créer un hashmap. Quand j'essaie de l'enregistrer comme état d'usine est insatisfait. Est-il possible de créer un objet de carte par l'approche ci-dessous? Si non, quelqu'un peut-il me dire ce que je fais de mal? ou pourquoi nous ne devrions pas faire cela? Parce que Map est une interface.Création d'un objet de carte similaire aux objets définis par l'utilisateur dans OSGI
@Component(name = "ExampleComponentFactoryServiceProvider1", factory = "example.factory.provider1")
@Service
public class ExampleComponentFactoryServiceProvider1 implements ExampleFactoryService {
@Reference(name = "MapObject", bind = "createMap", unbind = "disolveMapObject", referenceInterface = Map.class)
private Map<String, String> testMap = null;
@Activate
public void activate(Map<String, String> props) {
System.out.println("Activated 1 !!!!!");
}
public void createMap(Map<String, String> aMap) {
this.testMap = aMap;
System.out.println("Map created !! " + testMap);
}
public void disolveMapObject(Map<String, String> aMap) {
this.testMap = null;
}
@Override
public void start() {
System.out.println("Started 1 !!!!");
}
@Override
public void stop() {
System.out.println("Stopped 1 !!!!");
}
}
l'ai eu! merci Chirstian. pour référence, quelque chose doit être exposé comme un service même s'il s'agit d'objets java internes (map, list, set). – Shriram
Oui .. même si je serais prudent avec une carte en tant que service car il est trop générique. Les chances sont élevées que vous pourriez obtenir le mauvais. Donc encore une fois la question. D'où proviendrait le contenu de votre carte? –
Ma tentative consiste à créer directement un objet Java au lieu de s'enregistrer en tant que service. Parce que mon hypothèse est que les objets par défaut n'ont pas besoin de l'enregistrer en tant que service car tout fonctionne sur un VM. Mais d'après votre explication j'ai compris que tout devrait être exposé comme un service pour le récupérer par référence. – Shriram