Fixed Felix-3155
Applied the patch from German Vega. 

Removed wrong comment in Property.java

git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1182974 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/Extender.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/Extender.java
index 0af2b64..146f06e 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/Extender.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/Extender.java
@@ -253,7 +253,14 @@
         String[] arr = ParseUtils.split(header, ",");

         for (int i = 0; arr != null && i < arr.length; i++) {

             String[] arr2 = ParseUtils.split(arr[i], ":");

-            String type = arr2[0];

+            

+            /*

+             * Get the fully qualified type name.

+             * type = [namespace] name  

+             */

+            String[] nameparts = ParseUtils.split(arr2[0].trim(), " \t");

+            String type = nameparts.length == 1 ? nameparts[0] : nameparts[0]+":"+nameparts[1];

+            

             Class clazz;

             try {

                 clazz = bundle.loadClass(arr2[1]);

@@ -288,7 +295,8 @@
         ManifestMetadataParser parser = new ManifestMetadataParser();

         parser.parseHeader(components);

 

-        Element[] metadata = parser.getComponentsMetadata(); // Get the component type declaration

+        // Get the component type declaration

+        Element[] metadata = parser.getComponentsMetadata();

         for (int i = 0; i < metadata.length; i++) {

             createAbstractFactory(bundle, metadata[i]);

         }

@@ -465,9 +473,13 @@
     private void createAbstractFactory(Bundle bundle, Element metadata) {

         ManagedAbstractFactoryType factoryType = null;

         // First, look for factory-type (component, handler, composite ...)

+        

+        // TODO : Should Element.getQualifiedName() be public ?

+        String typeName = metadata.getNameSpace() == null ? metadata.getName() : metadata.getNameSpace()+":"+metadata.getName();

+        

         for (int i = 0; i < m_factoryTypes.size(); i++) {

             ManagedAbstractFactoryType type = (ManagedAbstractFactoryType) m_factoryTypes.get(i);

-            if (type.m_type.equals(metadata.getName())) {

+            if (type.m_type.equals(typeName)) {

                 factoryType = type;

                 break;

             }

@@ -475,8 +487,8 @@
 

         // If not found, return. It will wait for a new component type factory.

         if (factoryType == null) {

-            m_logger.log(Logger.WARNING, "Type of component not available: " + metadata.getName());

-            m_unboundTypes.add(new UnboundComponentType(metadata.getName(), metadata, bundle));

+            m_logger.log(Logger.WARNING, "Type of component not available: " + typeName);

+            m_unboundTypes.add(new UnboundComponentType(typeName, metadata, bundle));

             return;

         }

 

diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/util/Property.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/util/Property.java
index 1bcb0eb..87d1e9f 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/util/Property.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/util/Property.java
@@ -543,7 +543,6 @@
      * Invokes the setter method on the given pojo object.

      * If no specified pojo object, it calls on each created pojo object.

      * @param instance the created object (could be <code>null</code>)

-     * @see org.apache.felix.ipojo.Handler#onCreation(java.lang.Object)

      */

     public synchronized void invoke(Object instance) {

         if (m_invoked) {