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;
     }