You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by ro...@apache.org on 2018/10/04 16:09:40 UTC

svn commit: r1842828 - /felix/trunk/configadmin/src/main/java/org/apache/felix/cm/impl/ConfigurationManager.java

Author: rotty3000
Date: Thu Oct  4 16:09:40 2018
New Revision: 1842828

URL: http://svn.apache.org/viewvc?rev=1842828&view=rev
Log:
FELIX-5951 Automatically add ConfigurationAdmin service as a shell command

Signed-off-by: Raymond Auge <ro...@apache.org>

Modified:
    felix/trunk/configadmin/src/main/java/org/apache/felix/cm/impl/ConfigurationManager.java

Modified: felix/trunk/configadmin/src/main/java/org/apache/felix/cm/impl/ConfigurationManager.java
URL: http://svn.apache.org/viewvc/felix/trunk/configadmin/src/main/java/org/apache/felix/cm/impl/ConfigurationManager.java?rev=1842828&r1=1842827&r2=1842828&view=diff
==============================================================================
--- felix/trunk/configadmin/src/main/java/org/apache/felix/cm/impl/ConfigurationManager.java (original)
+++ felix/trunk/configadmin/src/main/java/org/apache/felix/cm/impl/ConfigurationManager.java Thu Oct  4 16:09:40 2018
@@ -20,6 +20,7 @@ package org.apache.felix.cm.impl;
 
 
 import java.io.IOException;
+import java.lang.reflect.Method;
 import java.security.AccessController;
 import java.security.PrivilegedAction;
 import java.security.SecureRandom;
@@ -28,6 +29,7 @@ import java.util.Arrays;
 import java.util.Collection;
 import java.util.Dictionary;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.Hashtable;
 import java.util.LinkedList;
 import java.util.List;
@@ -183,6 +185,13 @@ public class ConfigurationManager implem
         props.put( Constants.SERVICE_PID, "org.apache.felix.cm.ConfigurationAdmin" );
         props.put( Constants.SERVICE_DESCRIPTION, "Configuration Admin Service Specification 1.6 Implementation" );
         props.put( Constants.SERVICE_VENDOR, "The Apache Software Foundation" );
+        props.put( "osgi.command.scope", "cm" );
+        Set<String> functions = new HashSet<>();
+        for ( Method method : ConfigurationAdmin.class.getDeclaredMethods() )
+        {
+            functions.add(method.getName());
+        }
+        props.put( "osgi.command.function", functions.toArray(new String[0]) );
         configurationAdminRegistration = bundleContext.registerService( ConfigurationAdmin.class, caf, props );
 
         // start handling ManagedService[Factory] services