Applied patch (FELIX-190) to enable the display of additional
information via the architecture service when using external handlers.
git-svn-id: https://svn.apache.org/repos/asf/incubator/felix/trunk@491940 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/ipojo/src/main/java/org/apache/felix/ipojo/handlers/architecture/ArchitectureHandler.java b/ipojo/src/main/java/org/apache/felix/ipojo/handlers/architecture/ArchitectureHandler.java
index 6f7ff76..83cc47f 100644
--- a/ipojo/src/main/java/org/apache/felix/ipojo/handlers/architecture/ArchitectureHandler.java
+++ b/ipojo/src/main/java/org/apache/felix/ipojo/handlers/architecture/ArchitectureHandler.java
@@ -137,30 +137,30 @@
dhd.addDependency(dd);
}
instanceDescription.addHandler(dhd);
- break;
+ } else {
+ if (handlers[i] instanceof ProvidedServiceHandler) {
+ ProvidedServiceHandler psh = (ProvidedServiceHandler) handlers[i];
+ ProvidedServiceHandlerDescription pshd = new ProvidedServiceHandlerDescription(psh.isValid());
+
+ for (int j = 0; j < psh.getProvidedService().length; j++) {
+ ProvidedService ps = psh.getProvidedService()[j];
+ ProvidedServiceDescription psd = new ProvidedServiceDescription(ps.getServiceSpecification(), ps.getState(), ps.getServiceReference(), instanceDescription);
+
+ Properties props = new Properties();
+ for (int k = 0; k < ps.getProperties().length; k++) {
+ Property prop = ps.getProperties()[k];
+ if (prop.getValue() != null) { props.put(prop.getName(), prop.getValue().toString()); }
+ }
+ psd.setProperty(props);
+ pshd.addProvidedService(psd);
+ }
+ instanceDescription.addHandler(pshd);
+ }
+ else {
+ // Else add a generic handler to the description
+ instanceDescription.addHandler(new HandlerDescription(handlers[i].getClass().getName(), handlers[i].isValid()));
+ }
}
-
- if (handlers[i] instanceof ProvidedServiceHandler) {
- ProvidedServiceHandler psh = (ProvidedServiceHandler) handlers[i];
- ProvidedServiceHandlerDescription pshd = new ProvidedServiceHandlerDescription(psh.isValid());
-
- for (int j = 0; j < psh.getProvidedService().length; j++) {
- ProvidedService ps = psh.getProvidedService()[j];
- ProvidedServiceDescription psd = new ProvidedServiceDescription(ps.getServiceSpecification(), ps.getState(), ps.getServiceReference(), instanceDescription);
-
- Properties props = new Properties();
- for (int k = 0; k < ps.getProperties().length; k++) {
- Property prop = ps.getProperties()[k];
- if (prop.getValue() != null) { props.put(prop.getName(), prop.getValue().toString()); }
- }
- psd.setProperty(props);
- pshd.addProvidedService(psd);
- }
- instanceDescription.addHandler(pshd);
- break;
- }
- // Else add a generic handler to the description
- instanceDescription.addHandler(new HandlerDescription(handlers[i].getClass().getName(), handlers[i].isValid()));
}
return instanceDescription;
}