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 2011/06/20 12:19:09 UTC

svn commit: r1137588 - in /felix/trunk/dependencymanager/compat: changelog.txt src/main/java/org/apache/felix/dependencymanager/DependencyManager.java src/main/java/org/apache/felix/dependencymanager/impl/ServiceImpl.java

Author: pderop
Date: Mon Jun 20 10:19:09 2011
New Revision: 1137588

URL: http://svn.apache.org/viewvc?rev=1137588&view=rev
Log:
FELIX-3005 (Compatibility API does not add components in DependencyManager)

Modified:
    felix/trunk/dependencymanager/compat/changelog.txt
    felix/trunk/dependencymanager/compat/src/main/java/org/apache/felix/dependencymanager/DependencyManager.java
    felix/trunk/dependencymanager/compat/src/main/java/org/apache/felix/dependencymanager/impl/ServiceImpl.java

Modified: felix/trunk/dependencymanager/compat/changelog.txt
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/compat/changelog.txt?rev=1137588&r1=1137587&r2=1137588&view=diff
==============================================================================
--- felix/trunk/dependencymanager/compat/changelog.txt (original)
+++ felix/trunk/dependencymanager/compat/changelog.txt Mon Jun 20 10:19:09 2011
@@ -1,3 +1,12 @@
+Changes from 3.0.0 to 3.0.1
+---------------------------
+
+** Bug
+
+   [FELIX-3005] - Compatibility API does not add components in DependencyManager
+
+** Improvement
+
 Release 3.0.0
 -------------
 

Modified: felix/trunk/dependencymanager/compat/src/main/java/org/apache/felix/dependencymanager/DependencyManager.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/compat/src/main/java/org/apache/felix/dependencymanager/DependencyManager.java?rev=1137588&r1=1137587&r2=1137588&view=diff
==============================================================================
--- felix/trunk/dependencymanager/compat/src/main/java/org/apache/felix/dependencymanager/DependencyManager.java (original)
+++ felix/trunk/dependencymanager/compat/src/main/java/org/apache/felix/dependencymanager/DependencyManager.java Mon Jun 20 10:19:09 2011
@@ -20,6 +20,7 @@ package org.apache.felix.dependencymanag
 
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.Iterator;
 import java.util.List;
 
 import org.osgi.framework.BundleContext;
@@ -32,7 +33,6 @@ import org.osgi.framework.BundleContext;
 public class DependencyManager
 {
     private org.apache.felix.dm.DependencyManager m_delegate;
-    private List m_services = Collections.synchronizedList(new ArrayList());
 
     /**
      * Creates a new dependency manager.
@@ -53,8 +53,8 @@ public class DependencyManager
      */
     public void add(Service service)
     {
-        m_services.add(service);
-        service.start();
+        org.apache.felix.dependencymanager.impl.ServiceImpl serviceImpl = (org.apache.felix.dependencymanager.impl.ServiceImpl)service;
+        ((org.apache.felix.dm.DependencyManager) m_delegate).add(serviceImpl.getDelegate());
     }
 
     /**
@@ -65,8 +65,8 @@ public class DependencyManager
      */
     public void remove(Service service)
     {
-        service.stop();
-        m_services.remove(service);
+        org.apache.felix.dependencymanager.impl.ServiceImpl impl = (org.apache.felix.dependencymanager.impl.ServiceImpl)service;
+        ((org.apache.felix.dm.DependencyManager) m_delegate).remove(impl.getDelegate());
     }
 
     /**
@@ -101,7 +101,14 @@ public class DependencyManager
      */
     public List getServices()
     {
-        return Collections.unmodifiableList(m_services);
+        List list = new ArrayList();
+        List components = m_delegate.getComponents();
+        Iterator it = components.iterator();
+        while (it.hasNext()) {
+            org.apache.felix.dm.Component c = (org.apache.felix.dm.Component) it.next();
+            list.add(new org.apache.felix.dependencymanager.impl.ServiceImpl(c));
+        }
+        return Collections.unmodifiableList(list);
     }
 
     /**

Modified: felix/trunk/dependencymanager/compat/src/main/java/org/apache/felix/dependencymanager/impl/ServiceImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/compat/src/main/java/org/apache/felix/dependencymanager/impl/ServiceImpl.java?rev=1137588&r1=1137587&r2=1137588&view=diff
==============================================================================
--- felix/trunk/dependencymanager/compat/src/main/java/org/apache/felix/dependencymanager/impl/ServiceImpl.java (original)
+++ felix/trunk/dependencymanager/compat/src/main/java/org/apache/felix/dependencymanager/impl/ServiceImpl.java Mon Jun 20 10:19:09 2011
@@ -29,6 +29,7 @@ import org.apache.felix.dependencymanage
 import org.apache.felix.dependencymanager.DependencyManager;
 import org.apache.felix.dependencymanager.Service;
 import org.apache.felix.dependencymanager.ServiceStateListener;
+import org.apache.felix.dm.Component;
 import org.osgi.framework.ServiceRegistration;
 
 /**
@@ -48,6 +49,10 @@ public class ServiceImpl implements Serv
         m_delegate = dmDelegate.createComponent();
     }
 
+    public ServiceImpl(Component c) {
+        m_delegate = c;
+    }
+
     public Service add(Dependency dependency)
     {
         if (dependency instanceof ServiceDependencyImpl)
@@ -236,4 +241,8 @@ public class ServiceImpl implements Serv
     {
         m_delegate.stop();
     }
+
+    public Component getDelegate() {
+        return m_delegate;
+    }
 }