You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by cz...@apache.org on 2014/07/30 14:17:41 UTC

svn commit: r1614626 - in /felix/trunk/framework/src/main/java/org/apache/felix/framework: BundleContextImpl.java Felix.java ServiceRegistrationImpl.java

Author: cziegeler
Date: Wed Jul 30 12:17:41 2014
New Revision: 1614626

URL: http://svn.apache.org/r1614626
Log:
FELIX-4578 : [Core R6] Support new Framework.init(FrameworkListener ... listeners) override

Modified:
    felix/trunk/framework/src/main/java/org/apache/felix/framework/BundleContextImpl.java
    felix/trunk/framework/src/main/java/org/apache/felix/framework/Felix.java
    felix/trunk/framework/src/main/java/org/apache/felix/framework/ServiceRegistrationImpl.java

Modified: felix/trunk/framework/src/main/java/org/apache/felix/framework/BundleContextImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/BundleContextImpl.java?rev=1614626&r1=1614625&r2=1614626&view=diff
==============================================================================
--- felix/trunk/framework/src/main/java/org/apache/felix/framework/BundleContextImpl.java (original)
+++ felix/trunk/framework/src/main/java/org/apache/felix/framework/BundleContextImpl.java Wed Jul 30 12:17:41 2014
@@ -529,8 +529,11 @@ class BundleContextImpl implements Felix
     /**
      * @see org.osgi.framework.BundleContext#getServiceObjects(org.osgi.framework.ServiceReference)
      */
-    public <S> ServiceObjects<S> getServiceObjects(ServiceReference<S> reference)
+    public <S> ServiceObjects<S> getServiceObjects(final ServiceReference<S> ref)
     {
-        throw new UnsupportedOperationException(); // TODO
+        // Get the service registration.
+        final ServiceRegistrationImpl reg =
+            ((ServiceRegistrationImpl.ServiceReferenceImpl) ref).getRegistration();
+        return reg.getServiceObjects(m_bundle);
     }
 }
\ No newline at end of file

Modified: felix/trunk/framework/src/main/java/org/apache/felix/framework/Felix.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/Felix.java?rev=1614626&r1=1614625&r2=1614626&view=diff
==============================================================================
--- felix/trunk/framework/src/main/java/org/apache/felix/framework/Felix.java (original)
+++ felix/trunk/framework/src/main/java/org/apache/felix/framework/Felix.java Wed Jul 30 12:17:41 2014
@@ -5297,11 +5297,36 @@ public class Felix extends BundleImpl im
         return m_urlHandlersActivator.getContentHandlerService(mimeType);
     }
 
-    /* (non-Javadoc)
+    /**
      * @see org.osgi.framework.launch.Framework#init(org.osgi.framework.FrameworkListener[])
      */
-    public void init(FrameworkListener... listeners) throws BundleException {
-        this.init(); // TODO
-    }
+    public void init(final FrameworkListener... listeners) throws BundleException
+    {
+        // add framework listeners
+        if ( listeners != null )
+        {
+            for(final FrameworkListener fl : listeners)
+            {
+                addFrameworkListener(this, fl);
+            }
+        }
+
+        // call init
+        try
+        {
+            this.init();
+        }
 
+        // remove framework listeners
+        finally
+        {
+            if ( listeners != null )
+            {
+                for(final FrameworkListener fl : listeners)
+                {
+                    removeFrameworkListener(this, fl);
+                }
+            }
+        }
+    }
 }

Modified: felix/trunk/framework/src/main/java/org/apache/felix/framework/ServiceRegistrationImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/ServiceRegistrationImpl.java?rev=1614626&r1=1614625&r2=1614626&view=diff
==============================================================================
--- felix/trunk/framework/src/main/java/org/apache/felix/framework/ServiceRegistrationImpl.java (original)
+++ felix/trunk/framework/src/main/java/org/apache/felix/framework/ServiceRegistrationImpl.java Wed Jul 30 12:17:41 2014
@@ -38,6 +38,7 @@ import org.osgi.framework.BundleReferenc
 import org.osgi.framework.Constants;
 import org.osgi.framework.ServiceException;
 import org.osgi.framework.ServiceFactory;
+import org.osgi.framework.ServiceObjects;
 import org.osgi.framework.ServiceReference;
 import org.osgi.framework.ServiceRegistration;
 import org.osgi.framework.wiring.BundleCapability;
@@ -403,6 +404,14 @@ class ServiceRegistrationImpl implements
         }
     }
 
+    /**
+     * Get the service objects for the provided bundle
+     */
+    public ServiceObjects getServiceObjects(Bundle bundle)
+    {
+        throw new UnsupportedOperationException();
+    }
+
     //
     // ServiceReference implementation
     //