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 2018/09/16 09:15:28 UTC

svn commit: r1840993 - in /felix/trunk/scr: ./ src/main/java/org/apache/felix/scr/impl/manager/ src/main/java/org/apache/felix/scr/impl/runtime/

Author: cziegeler
Date: Sun Sep 16 09:15:28 2018
New Revision: 1840993

URL: http://svn.apache.org/viewvc?rev=1840993&view=rev
Log:
FELIX-5930 : Service reference is missing in DTO

Modified:
    felix/trunk/scr/changelog.txt
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/SingleComponentManager.java
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/runtime/ServiceComponentRuntimeImpl.java

Modified: felix/trunk/scr/changelog.txt
URL: http://svn.apache.org/viewvc/felix/trunk/scr/changelog.txt?rev=1840993&r1=1840992&r2=1840993&view=diff
==============================================================================
--- felix/trunk/scr/changelog.txt (original)
+++ felix/trunk/scr/changelog.txt Sun Sep 16 09:15:28 2018
@@ -4,6 +4,7 @@ Changes in 2.1.8
     * [FELIX-5927] - Single element Annotation type does not incorporate PREFIX_
     * [FELIX-5926] - Logger instance is not set for constructor and reference injection
     * [FELIX-5929] - Failed activation state not reported in DTOs
+    * [FELIX-5930] - Service reference is missing in DTO
 
 
 Changes in 2.1.6

Modified: felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java?rev=1840993&r1=1840992&r2=1840993&view=diff
==============================================================================
--- felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java (original)
+++ felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java Sun Sep 16 09:15:28 2018
@@ -1429,8 +1429,13 @@ public abstract class AbstractComponentM
     public abstract void getComponentManagers(List<AbstractComponentManager<S>> cms);
 
     @Override
-    public ServiceReference<S> getRegisteredServiceReference()
+    public final ServiceReference<S> getRegisteredServiceReference()
     {
+        final ServiceRegistration<S> reg = registrationManager.getServiceRegistration();
+        if ( reg != null )
+        {
+            return reg.getReference();
+        }
         return null;
     }
 }

Modified: felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/SingleComponentManager.java
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/SingleComponentManager.java?rev=1840993&r1=1840992&r2=1840993&view=diff
==============================================================================
--- felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/SingleComponentManager.java (original)
+++ felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/SingleComponentManager.java Sun Sep 16 09:15:28 2018
@@ -1001,15 +1001,4 @@ public class SingleComponentManager<S> e
     {
         cms.add(this);
     }
-
-    @Override
-    public ServiceReference<S> getRegisteredServiceReference()
-    {
-        final ComponentContextImpl<S> ctx = this.m_componentContext;
-        if ( ctx != null )
-        {
-            return ctx.getServiceReference();
-        }
-        return null;
-    }
 }

Modified: felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/runtime/ServiceComponentRuntimeImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/runtime/ServiceComponentRuntimeImpl.java?rev=1840993&r1=1840992&r2=1840993&view=diff
==============================================================================
--- felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/runtime/ServiceComponentRuntimeImpl.java (original)
+++ felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/runtime/ServiceComponentRuntimeImpl.java Sun Sep 16 09:15:28 2018
@@ -210,7 +210,7 @@ public class ServiceComponentRuntimeImpl
         dto.state = manager.getSpecState();
         // DS 1.4
         if ( dto.state == ComponentConfigurationDTO.ACTIVE
-                || dto.state == ComponentConfigurationDTO.SATISFIED )
+             || dto.state == ComponentConfigurationDTO.SATISFIED )
         {
                dto.service = serviceReferenceToDTO(manager.getRegisteredServiceReference());
         }
@@ -289,7 +289,7 @@ public class ServiceComponentRuntimeImpl
         dto.id = (Long) serviceRef.getProperty(Constants.SERVICE_ID);
         dto.properties = deepCopy( serviceRef );
         Bundle[] usingBundles = serviceRef.getUsingBundles();
-        if (usingBundles != null)
+        if (usingBundles != null && usingBundles.length > 0 )
         {
             long[] usingBundleIds = new long[usingBundles.length];
             for (int i = 0; i < usingBundles.length; i++)