You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by pd...@apache.org on 2010/01/15 00:15:42 UTC

svn commit: r899460 - /felix/trunk/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ComponentManager.java

Author: pderop
Date: Thu Jan 14 23:15:41 2010
New Revision: 899460

URL: http://svn.apache.org/viewvc?rev=899460&view=rev
Log:
fixed bug when handling dependencymanager service factory parameters

Modified:
    felix/trunk/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ComponentManager.java

Modified: felix/trunk/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ComponentManager.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ComponentManager.java?rev=899460&r1=899459&r2=899460&view=diff
==============================================================================
--- felix/trunk/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ComponentManager.java (original)
+++ felix/trunk/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ComponentManager.java Thu Jan 14 23:15:41 2010
@@ -173,8 +173,8 @@
         }
         catch (Throwable t)
         {
-            m_logService.log(LogService.LOG_ERROR, "Error while parsing descriptor " + descriptorURL
-                + " from bundle " + b.getSymbolicName(), t);
+            m_logService.log(LogService.LOG_ERROR, "Error while parsing descriptor "
+                + descriptorURL + " from bundle " + b.getSymbolicName(), t);
         }
         finally
         {
@@ -235,9 +235,22 @@
         throws ClassNotFoundException
     {
         Service service = dm.createService();
-        // Set service impl
-        String impl = parser.getString(DescriptorParam.impl);
-        service.setImplementation(b.loadClass(impl));
+        // Get factory parameters.
+        String factory = parser.getString(DescriptorParam.factory, null);
+        String factoryMethod = parser.getString(DescriptorParam.factoryMethod, "create");
+
+        if (factory == null)
+        {
+            // Set service impl
+            String impl = parser.getString(DescriptorParam.impl);
+            service.setImplementation(b.loadClass(impl));
+        }
+        else
+        {
+            // Set service factory
+            Class<?> factoryClass = b.loadClass(factory);
+            service.setFactory(factoryClass, factoryMethod);
+        }
 
         // Set service callbacks
         String init = parser.getString(DescriptorParam.init, null);
@@ -262,23 +275,6 @@
             service.setComposition(composition);
         }
 
-        // Set service factory
-        String factory = parser.getString(DescriptorParam.factory, null);
-        String factoryMethod = parser.getString(DescriptorParam.factoryMethod, null);
-
-        if (factory != null)
-        {
-            if (factoryMethod == null)
-            {
-                factoryMethod = "create";
-            }
-            Class<?> factoryClass = b.loadClass(factory);
-            service.setFactory(factoryClass, factoryMethod);
-        }
-        else if (factoryMethod != null)
-        {
-            service.setFactory(factoryMethod);
-        }
         return service;
     }