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/03/06 23:32:26 UTC

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

Author: pderop
Date: Sat Mar  6 22:32:26 2010
New Revision: 919864

URL: http://svn.apache.org/viewvc?rev=919864&view=rev
Log:
Fixed bug when parsing BundleDependency's propagate attribute. Added ResourceAdapter and ResourceDependency annotations.

Modified:
    felix/trunk/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ComponentManager.java
    felix/trunk/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/DescriptorEntry.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=919864&r1=919863&r2=919864&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 Sat Mar  6 22:32:26 2010
@@ -31,6 +31,7 @@
 import org.apache.felix.dm.dependencies.BundleDependency;
 import org.apache.felix.dm.dependencies.ConfigurationDependency;
 import org.apache.felix.dm.dependencies.Dependency;
+import org.apache.felix.dm.dependencies.ResourceDependency;
 import org.apache.felix.dm.dependencies.ServiceDependency;
 import org.apache.felix.dm.dependencies.TemporalServiceDependency;
 import org.apache.felix.dm.service.Service;
@@ -164,6 +165,10 @@
                         service = createBundleAdapterService(b, dm, parser);
                         break;
 
+                    case ResourceAdapterService:
+                        service = createResourceAdapterService(b, dm, parser);
+                        break;
+
                     case ServiceDependency:
                         checkServiceParsed(service);
                         service.add(createServiceDependency(b, dm, parser, false));
@@ -183,6 +188,11 @@
                         checkServiceParsed(service);
                         service.add(createBundleDependency(b, dm, parser));
                         break;
+                        
+                    case ResourceDependency:
+                        checkServiceParsed(service);
+                        service.add(createResourceDependency(b, dm, parser));
+                        break;
                 }
             }
 
@@ -386,6 +396,27 @@
     }
 
     /**
+     * Creates a Resource Adapter Service.
+     * @param b
+     * @param dm
+     * @param parser
+     * @return
+     */
+    private Service createResourceAdapterService(Bundle b, DependencyManager dm, DescriptorParser parser)
+        throws ClassNotFoundException
+    {
+        String filter = parser.getString(DescriptorParam.filter, null);
+        Class<?> impl = b.loadClass(parser.getString(DescriptorParam.impl));
+        String service = parser.getString(DescriptorParam.service);
+        Class<?> serviceClass = b.loadClass(service);
+        Dictionary<String, String> properties = parser.getDictionary(DescriptorParam.properties, null);
+        boolean propagate = "true".equals(parser.getString(DescriptorParam.propagate, "false"));
+        Service srv = dm.createResourceAdapterService(filter, serviceClass, properties, impl, propagate);  
+        setCommonServiceParams(srv, parser);
+        return srv;
+    }
+
+    /**
      * Creates a ServiceDependency that we parsed from a component descriptor "ServiceDependency" entry.
      * @param b
      * @param dm
@@ -510,7 +541,33 @@
         }
 
         // propagate
-        bd.setPropagate("true".equals(parser.getString(DescriptorParam.stateMask, "false")));
+        bd.setPropagate("true".equals(parser.getString(DescriptorParam.propagate, "false")));
         return bd;
     }
-}
+
+    private Dependency createResourceDependency(Bundle b, DependencyManager dm,
+        DescriptorParser parser)
+    {
+        ResourceDependency rd = dm.createResourceDependency();
+
+        // Set add/changed/removed
+        String added = parser.getString(DescriptorParam.added, null);
+        String changed = parser.getString(DescriptorParam.changed, null);
+        String removed = parser.getString(DescriptorParam.removed, null);
+        rd.setCallbacks(added, changed, removed);
+
+        // required
+        rd.setRequired("true".equals(parser.getString(DescriptorParam.required, "true")));
+        
+        // filter
+        String filter = parser.getString(DescriptorParam.filter, null);
+        if (filter != null) 
+        {
+            rd.setFilter(filter);
+        }
+        
+        // propagate
+        rd.setPropagate("true".equals(parser.getString(DescriptorParam.propagate, "false")));
+        return rd;
+    }
+}
\ No newline at end of file

Modified: felix/trunk/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/DescriptorEntry.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/DescriptorEntry.java?rev=919864&r1=919863&r2=919864&view=diff
==============================================================================
--- felix/trunk/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/DescriptorEntry.java (original)
+++ felix/trunk/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/DescriptorEntry.java Sat Mar  6 22:32:26 2010
@@ -28,8 +28,10 @@
     AspectService,
     AdapterService,
     BundleAdapterService,
+    ResourceAdapterService,
     ServiceDependency,
     TemporalServiceDependency,
     ConfigurationDependency,
-    BundleDependency
+    BundleDependency,
+    ResourceDependency
 }