You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by da...@apache.org on 2015/07/02 15:10:32 UTC

svn commit: r1688820 - /felix/trunk/webconsole-plugins/subsystems/src/main/java/org/apache/felix/webconsole/plugins/subsystem/internal/WebConsolePlugin.java

Author: davidb
Date: Thu Jul  2 13:10:31 2015
New Revision: 1688820

URL: http://svn.apache.org/r1688820
Log:
FELIX-4947 Webconsole plugin for OSGi Subsystems

Honour the 'start' option when installing a new subsystem.

Modified:
    felix/trunk/webconsole-plugins/subsystems/src/main/java/org/apache/felix/webconsole/plugins/subsystem/internal/WebConsolePlugin.java

Modified: felix/trunk/webconsole-plugins/subsystems/src/main/java/org/apache/felix/webconsole/plugins/subsystem/internal/WebConsolePlugin.java
URL: http://svn.apache.org/viewvc/felix/trunk/webconsole-plugins/subsystems/src/main/java/org/apache/felix/webconsole/plugins/subsystem/internal/WebConsolePlugin.java?rev=1688820&r1=1688819&r2=1688820&view=diff
==============================================================================
--- felix/trunk/webconsole-plugins/subsystems/src/main/java/org/apache/felix/webconsole/plugins/subsystem/internal/WebConsolePlugin.java (original)
+++ felix/trunk/webconsole-plugins/subsystems/src/main/java/org/apache/felix/webconsole/plugins/subsystem/internal/WebConsolePlugin.java Thu Jul  2 13:10:31 2015
@@ -146,6 +146,7 @@ public class WebConsolePlugin extends Si
         @SuppressWarnings("rawtypes")
         Map params = (Map) req.getAttribute( AbstractWebConsolePlugin.ATTR_FILEUPLOAD );
 
+        final boolean start = getParameter(params, "subsystemstart") != null;
         FileItem[] subsystemItems = getFileItems(params, "subsystemfile");
 
         for (final FileItem subsystemItem : subsystemItems)
@@ -187,7 +188,9 @@ public class WebConsolePlugin extends Si
                             InputStream is = new FileInputStream(file);
                             try
                             {
-                                ss.install("inputstream:" + subsystemItem.getName(), is);
+                                Subsystem nss = ss.install("inputstream:" + subsystemItem.getName(), is);
+                                if (start)
+                                    nss.start();
                             }
                             finally
                             {
@@ -277,13 +280,32 @@ public class WebConsolePlugin extends Si
     }
 
     @SuppressWarnings("rawtypes")
+    private FileItem getParameter(Map params, String name)
+    {
+        FileItem[] items = (FileItem[]) params.get(name);
+        if (items != null)
+        {
+            for (int i = 0; i < items.length; i++)
+            {
+                if (items[i].isFormField())
+                {
+                    return items[i];
+                }
+            }
+        }
+
+        // nothing found, fail
+        return null;
+    }
+
+    @SuppressWarnings("rawtypes")
     private FileItem[] getFileItems(Map params, String name)
     {
         final List<FileItem> files = new ArrayList<FileItem>();
-        FileItem[] items = (FileItem[]) params.get( name );
-        if ( items != null )
+        FileItem[] items = (FileItem[]) params.get(name);
+        if (items != null)
         {
-            for ( int i = 0; i < items.length; i++ )
+            for (int i = 0; i < items.length; i++)
             {
                 if (!items[i].isFormField() && items[i].getSize() > 0)
                 {
@@ -292,7 +314,7 @@ public class WebConsolePlugin extends Si
             }
         }
 
-        return files.toArray( new FileItem[files.size()] );
+        return files.toArray(new FileItem[files.size()]);
     }
 
     @Override