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++)