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 2015/07/07 00:26:19 UTC
svn commit: r1689515 - in /felix/trunk/scr/src:
main/java/org/apache/felix/scr/impl/config/
main/java/org/apache/felix/scr/impl/manager/
test/java/org/apache/felix/scr/integration/
Author: cziegeler
Date: Mon Jul 6 22:26:19 2015
New Revision: 1689515
URL: http://svn.apache.org/r1689515
Log:
FELIX-4951 : [DS][RFC-190] Correct pid handling - use scalar if single pid
Modified:
felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/config/ConfigurableComponentHolder.java
felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/SingleComponentManager.java
felix/trunk/scr/src/test/java/org/apache/felix/scr/integration/ComponentConfigurationTest.java
Modified: felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/config/ConfigurableComponentHolder.java
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/config/ConfigurableComponentHolder.java?rev=1689515&r1=1689514&r2=1689515&view=diff
==============================================================================
--- felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/config/ConfigurableComponentHolder.java (original)
+++ felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/config/ConfigurableComponentHolder.java Mon Jul 6 22:26:19 2015
@@ -469,7 +469,14 @@ public class ConfigurableComponentHolder
}
if (isDS13 && !pids.isEmpty())
{
- properties.put(Constants.SERVICE_PID, pids);
+ if ( pids.size() == 1 )
+ {
+ properties.put(Constants.SERVICE_PID, pids.get(0));
+ }
+ else
+ {
+ properties.put(Constants.SERVICE_PID, pids);
+ }
}
return properties;
}
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=1689515&r1=1689514&r2=1689515&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 Mon Jul 6 22:26:19 2015
@@ -443,16 +443,29 @@ public class SingleComponentManager<S> e
props.putAll(m_factoryProperties);
if (getComponentMetadata().getDSVersion().isDS13() && m_factoryProperties.containsKey(Constants.SERVICE_PID))
{
- List<String> servicePids = (List<String>) m_configurationProperties.get(Constants.SERVICE_PID);
- if (servicePids == null)
- {
- servicePids = new ArrayList<String>();
- }
+ final List<String> servicePids = new ArrayList<String>();
+ final Object configPropServicePids = m_configurationProperties.get(Constants.SERVICE_PID);
+ if ( configPropServicePids instanceof List )
+ {
+ servicePids.addAll((List)configPropServicePids);
+ }
+ else
+ {
+ servicePids.add(configPropServicePids.toString());
+ }
if (m_factoryProperties.get(Constants.SERVICE_PID) instanceof String)
{
servicePids.add((String)m_factoryProperties.get(Constants.SERVICE_PID));
}
- props.put(Constants.SERVICE_PID, servicePids);
+
+ if ( servicePids.size() == 1 )
+ {
+ props.put(Constants.SERVICE_PID, servicePids.get(0));
+ }
+ else
+ {
+ props.put(Constants.SERVICE_PID, servicePids);
+ }
}
}
Modified: felix/trunk/scr/src/test/java/org/apache/felix/scr/integration/ComponentConfigurationTest.java
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/test/java/org/apache/felix/scr/integration/ComponentConfigurationTest.java?rev=1689515&r1=1689514&r2=1689515&view=diff
==============================================================================
--- felix/trunk/scr/src/test/java/org/apache/felix/scr/integration/ComponentConfigurationTest.java (original)
+++ felix/trunk/scr/src/test/java/org/apache/felix/scr/integration/ComponentConfigurationTest.java Mon Jul 6 22:26:19 2015
@@ -214,7 +214,7 @@ public class ComponentConfigurationTest
}
else
{
- pidWithout = Collections.singletonList(pid + ".description");
+ pidWithout = pid + ".description";
pidWith = Arrays.asList(new String[] {pid + ".description", pid});
}
deleteConfig( pid );