[jboss-cvs] JBossAS SVN: r90828 - in projects/jboss-osgi/projects/bundles/webconsole/trunk: src/main/java/org/apache/felix/webconsole and 4 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Jul 6 05:12:53 EDT 2009


Author: thomas.diesler at jboss.com
Date: 2009-07-06 05:12:53 -0400 (Mon, 06 Jul 2009)
New Revision: 90828

Added:
   projects/jboss-osgi/projects/bundles/webconsole/trunk/src/main/java/org/apache/felix/webconsole/internal/servlet/RenderBridge.java
   projects/jboss-osgi/projects/bundles/webconsole/trunk/src/main/java/org/jboss/osgi/service/webconsole/internal/plugins/ConfigManagerPlugin.java
   projects/jboss-osgi/projects/bundles/webconsole/trunk/src/main/java/org/jboss/osgi/service/webconsole/internal/plugins/LogServicePlugin.java
   projects/jboss-osgi/projects/bundles/webconsole/trunk/src/main/resources/res/ui/logs.js
Removed:
   projects/jboss-osgi/projects/bundles/webconsole/trunk/src/main/java/org/jboss/osgi/service/webconsole/internal/plugins/ConfigManagerPlugin.java
   projects/jboss-osgi/projects/bundles/webconsole/trunk/src/main/java/org/jboss/osgi/service/webconsole/internal/plugins/JBossRenderBridge.java
Modified:
   projects/jboss-osgi/projects/bundles/webconsole/trunk/pom.xml
   projects/jboss-osgi/projects/bundles/webconsole/trunk/src/main/java/org/apache/felix/webconsole/AbstractWebConsolePlugin.java
   projects/jboss-osgi/projects/bundles/webconsole/trunk/src/main/java/org/apache/felix/webconsole/internal/servlet/OsgiManager.java
   projects/jboss-osgi/projects/bundles/webconsole/trunk/src/main/java/org/jboss/osgi/service/webconsole/internal/WebConsole.java
   projects/jboss-osgi/projects/bundles/webconsole/trunk/src/main/java/org/jboss/osgi/service/webconsole/internal/plugins/PluginHelper.java
   projects/jboss-osgi/projects/bundles/webconsole/trunk/src/main/resources/res/ui/admin.css
   projects/jboss-osgi/projects/bundles/webconsole/trunk/src/main/resources/res/ui/bundles.js
Log:
[JBOSGI-104] - Upgrade to Felix Web Console 1.2.10

Modified: projects/jboss-osgi/projects/bundles/webconsole/trunk/pom.xml
===================================================================
--- projects/jboss-osgi/projects/bundles/webconsole/trunk/pom.xml	2009-07-06 08:25:35 UTC (rev 90827)
+++ projects/jboss-osgi/projects/bundles/webconsole/trunk/pom.xml	2009-07-06 09:12:53 UTC (rev 90828)
@@ -23,7 +23,7 @@
     <version.felix.bundlerepository>1.0.3</version.felix.bundlerepository>
     <version.felix.osgi.core>1.2.0</version.felix.osgi.core>
     <version.felix.scr>1.0.0</version.felix.scr>
-    <version.felix.webconsole>1.2.8</version.felix.webconsole>
+    <version.felix.webconsole>1.2.10</version.felix.webconsole>
     <version.javax.servlet>2.4</version.javax.servlet>
     <version.json>20070829</version.json>
   </properties>

Modified: projects/jboss-osgi/projects/bundles/webconsole/trunk/src/main/java/org/apache/felix/webconsole/AbstractWebConsolePlugin.java
===================================================================
--- projects/jboss-osgi/projects/bundles/webconsole/trunk/src/main/java/org/apache/felix/webconsole/AbstractWebConsolePlugin.java	2009-07-06 08:25:35 UTC (rev 90827)
+++ projects/jboss-osgi/projects/bundles/webconsole/trunk/src/main/java/org/apache/felix/webconsole/AbstractWebConsolePlugin.java	2009-07-06 09:12:53 UTC (rev 90828)
@@ -54,6 +54,7 @@
 
     protected String getHeader()
     {
+       // This should be in sync with 
        String HEADER = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>"
         + "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"xhtml1-transitional.dtd\">"
         + "<html xmlns=\"http://www.w3.org/1999/xhtml\">"
@@ -84,7 +85,6 @@
        return HEADER;
     }
 
-
     /**
     String header = MessageFormat.format( HEADER, new Object[]
          { adminTitle, productName, getTitle(), productWeb, vendorName,

Modified: projects/jboss-osgi/projects/bundles/webconsole/trunk/src/main/java/org/apache/felix/webconsole/internal/servlet/OsgiManager.java
===================================================================
--- projects/jboss-osgi/projects/bundles/webconsole/trunk/src/main/java/org/apache/felix/webconsole/internal/servlet/OsgiManager.java	2009-07-06 08:25:35 UTC (rev 90827)
+++ projects/jboss-osgi/projects/bundles/webconsole/trunk/src/main/java/org/apache/felix/webconsole/internal/servlet/OsgiManager.java	2009-07-06 09:12:53 UTC (rev 90828)
@@ -112,6 +112,30 @@
      */
     private static final String DEFAULT_MANAGER_ROOT = "/system/console";
 
+    protected String[] getPluginClasses() 
+    {
+        String[] PLUGIN_CLASSES =
+        { "org.apache.felix.webconsole.internal.compendium.ComponentConfigurationPrinter",
+            "org.apache.felix.webconsole.internal.compendium.ComponentsServlet",
+            "org.apache.felix.webconsole.internal.compendium.ConfigManager",
+            "org.apache.felix.webconsole.internal.compendium.LogServlet",
+            "org.apache.felix.webconsole.internal.core.BundlesServlet",
+            "org.apache.felix.webconsole.internal.core.InstallAction",
+            "org.apache.felix.webconsole.internal.core.SetStartLevelAction",
+            "org.apache.felix.webconsole.internal.deppack.DepPackServlet",
+            "org.apache.felix.webconsole.internal.misc.EventAdminServlet",
+            "org.apache.felix.webconsole.internal.misc.LicenseServlet",
+            "org.apache.felix.webconsole.internal.misc.ConfigurationRender",
+            "org.apache.felix.webconsole.internal.misc.ShellServlet",
+            "org.apache.felix.webconsole.internal.obr.BundleRepositoryRender",
+            "org.apache.felix.webconsole.internal.obr.InstallFromRepoAction",
+            "org.apache.felix.webconsole.internal.obr.RefreshRepoAction",
+            "org.apache.felix.webconsole.internal.system.GCAction",
+            "org.apache.felix.webconsole.internal.system.VMStatPlugin" };
+
+       return PLUGIN_CLASSES;
+    };
+
     private BundleContext bundleContext;
 
     private Logger log;
@@ -163,7 +187,7 @@
         }
         catch ( Throwable t )
         {
-           log.log(LogService.LOG_WARNING, "Cannot register config listener", t);
+            // might be caused by CM not available
         }
 
         // get at the HttpService first, this should initialize
@@ -172,7 +196,7 @@
         httpServiceTracker.open();
     }
 
-    
+
     public void dispose()
     {
         // now drop the HttpService and continue with further destroyals
@@ -198,29 +222,6 @@
         this.bundleContext = null;
     }
 
-    protected String[] getPluginClasses() 
-    {
-       return new String[] { 
-           "org.apache.felix.webconsole.internal.compendium.ComponentConfigurationPrinter",
-           "org.apache.felix.webconsole.internal.compendium.ComponentsServlet",
-           "org.apache.felix.webconsole.internal.compendium.ConfigManager",
-           "org.apache.felix.webconsole.internal.core.BundlesServlet",
-           "org.apache.felix.webconsole.internal.core.InstallAction",
-           "org.apache.felix.webconsole.internal.core.SetStartLevelAction",
-           "org.apache.felix.webconsole.internal.deppack.DepPackServlet",
-           "org.apache.felix.webconsole.internal.misc.EventAdminServlet",
-           "org.apache.felix.webconsole.internal.misc.LicenseServlet",
-           "org.apache.felix.webconsole.internal.misc.ConfigurationRender",
-           "org.apache.felix.webconsole.internal.misc.ShellServlet",
-           "org.apache.felix.webconsole.internal.obr.BundleRepositoryRender",
-           "org.apache.felix.webconsole.internal.obr.InstallFromRepoAction",
-           "org.apache.felix.webconsole.internal.obr.RefreshRepoAction",
-           "org.apache.felix.webconsole.internal.system.GCAction",
-           "org.apache.felix.webconsole.internal.system.ShutdownAction",
-           "org.apache.felix.webconsole.internal.system.ShutdownRender",
-           "org.apache.felix.webconsole.internal.system.VMStatRender", };
-    }
-    
     /**
      * The default value for the {@link #PROP_MANAGER_ROOT} configuration
      * property (value is "/system/console").
@@ -230,21 +231,22 @@
        return DEFAULT_MANAGER_ROOT;
     }
     
+
     //---------- Servlet API
-    
+
     public void init()
     {
         // base class initialization not needed, since the GenericServlet.init
         // is an empty method
 
         // get the installed plugin classes 
-        String[] pluginClasses = getPluginClasses();
+        String[] PLUGIN_CLASSES = getPluginClasses();
        
         // setup the included plugins
         ClassLoader classLoader = getClass().getClassLoader();
-        for ( int i = 0; i < pluginClasses.length; i++ )
+        for ( int i = 0; i < PLUGIN_CLASSES.length; i++ )
         {
-            String pluginClassName = pluginClasses[i];
+            String pluginClassName = PLUGIN_CLASSES[i];
             try
             {
                 Class pluginClass = classLoader.loadClass( pluginClassName );
@@ -284,7 +286,7 @@
         pluginsTracker = new PluginServiceTracker( this );
         pluginsTracker.open();
     }
-    
+
     public void service( ServletRequest req, ServletResponse res ) throws ServletException, IOException
     {
 
@@ -333,12 +335,12 @@
         }
 
     }
-    
+
     public void destroy()
     {
         // base class destroy not needed, since the GenericServlet.destroy
         // is an empty method
-        
+
         // stop listening for plugins
         if ( operationsTracker != null )
         {
@@ -374,7 +376,7 @@
 
     //---------- internal
 
-    protected boolean handleAction( HttpServletRequest req, HttpServletResponse resp ) throws IOException
+    protected boolean handleAction( HttpServletRequest req, HttpServletResponse resp ) throws IOException, ServletException
     {
         // check action
         String actionName = AbstractWebConsolePlugin.getParameter( req, Util.PARAM_ACTION );
@@ -589,7 +591,7 @@
                 "bindHttpService: Already bound to an HTTP Service, ignoring further services" );
             return;
         }
-        
+
         Dictionary config = getConfiguration();
 
         // get authentication details

Added: projects/jboss-osgi/projects/bundles/webconsole/trunk/src/main/java/org/apache/felix/webconsole/internal/servlet/RenderBridge.java
===================================================================
--- projects/jboss-osgi/projects/bundles/webconsole/trunk/src/main/java/org/apache/felix/webconsole/internal/servlet/RenderBridge.java	                        (rev 0)
+++ projects/jboss-osgi/projects/bundles/webconsole/trunk/src/main/java/org/apache/felix/webconsole/internal/servlet/RenderBridge.java	2009-07-06 09:12:53 UTC (rev 90828)
@@ -0,0 +1,86 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.felix.webconsole.internal.servlet;
+
+
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.text.MessageFormat;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.felix.webconsole.AbstractWebConsolePlugin;
+import org.apache.felix.webconsole.Render;
+import org.jboss.osgi.service.webconsole.internal.plugins.PluginHelper;
+
+
+public class RenderBridge extends AbstractWebConsolePlugin
+{
+
+    /** Pseudo class version ID to keep the IDE quite. */
+    private static final long serialVersionUID = 1L;
+
+    private final Render render;
+
+
+    RenderBridge( Render render )
+    {
+        this.render = render;
+    }
+
+
+    @Override
+    protected String getHeader()
+    {
+       return PluginHelper.getHeader();
+    }
+
+    @Override
+    protected void endResponse(HttpServletRequest request, PrintWriter pw)
+    {
+       String appRoot = (String)request.getAttribute(OsgiManager.ATTR_APP_ROOT);
+       String footer = MessageFormat.format(PluginHelper.getFooter(), new Object[]{ appRoot });
+       pw.println(footer);
+    }
+    
+    public Render getRender()
+    {
+        return render;
+    }
+
+
+    public String getTitle()
+    {
+        return render.getLabel();
+    }
+
+
+    public String getLabel()
+    {
+        return render.getName();
+    }
+
+
+    protected void renderContent( HttpServletRequest request, HttpServletResponse response ) throws ServletException,
+        IOException
+    {
+        render.render( request, response );
+    }
+
+}

Modified: projects/jboss-osgi/projects/bundles/webconsole/trunk/src/main/java/org/jboss/osgi/service/webconsole/internal/WebConsole.java
===================================================================
--- projects/jboss-osgi/projects/bundles/webconsole/trunk/src/main/java/org/jboss/osgi/service/webconsole/internal/WebConsole.java	2009-07-06 08:25:35 UTC (rev 90827)
+++ projects/jboss-osgi/projects/bundles/webconsole/trunk/src/main/java/org/jboss/osgi/service/webconsole/internal/WebConsole.java	2009-07-06 09:12:53 UTC (rev 90828)
@@ -23,12 +23,11 @@
 
 //$Id$
 
-import org.apache.felix.webconsole.Render;
 import org.apache.felix.webconsole.internal.compendium.ComponentConfigurationPrinter;
+import org.apache.felix.webconsole.internal.compendium.ComponentsServlet;
 import org.apache.felix.webconsole.internal.core.InstallAction;
 import org.apache.felix.webconsole.internal.core.SetStartLevelAction;
 import org.apache.felix.webconsole.internal.misc.ConfigurationRender;
-import org.apache.felix.webconsole.internal.misc.ShellServlet;
 import org.apache.felix.webconsole.internal.obr.BundleRepositoryRender;
 import org.apache.felix.webconsole.internal.obr.InstallFromRepoAction;
 import org.apache.felix.webconsole.internal.obr.RefreshRepoAction;
@@ -38,15 +37,14 @@
 import org.jboss.osgi.service.webconsole.internal.plugins.BundlesPlugin;
 import org.jboss.osgi.service.webconsole.internal.plugins.ConfigManagerPlugin;
 import org.jboss.osgi.service.webconsole.internal.plugins.EventAdminPlugin;
-import org.jboss.osgi.service.webconsole.internal.plugins.JBossRenderBridge;
 import org.jboss.osgi.service.webconsole.internal.plugins.LicensePlugin;
+import org.jboss.osgi.service.webconsole.internal.plugins.LogServicePlugin;
 import org.osgi.framework.BundleContext;
 
 /**
  * Web Console integration
  * 
- * Improve console extensibility
- * https://issues.apache.org/jira/browse/FELIX-1013
+ * Improve console extensibility https://issues.apache.org/jira/browse/FELIX-1013
  * 
  * @author thomas.diesler at jboss.com
  * @since 12-Mar-2009
@@ -72,29 +70,47 @@
    @Override
    protected String[] getPluginClasses()
    {
-      return new String[] {
-         BundlesPlugin.class.getName(),
-         ConfigManagerPlugin.class.getName(),
-         EventAdminPlugin.class.getName(),
-         LicensePlugin.class.getName(),
-
-         ComponentConfigurationPrinter.class.getName(),
-         InstallAction.class.getName(),
-         SetStartLevelAction.class.getName(),
-         ConfigurationRender.class.getName(),
-         BundleRepositoryRender.class.getName(),
-         InstallFromRepoAction.class.getName(),
-         RefreshRepoAction.class.getName(), 
-         GCAction.class.getName(),
-         VMStatPlugin.class.getName()
-      };
+      /*
+       PLUGIN_CLASSES =
+            "org.apache.felix.webconsole.internal.compendium.ComponentConfigurationPrinter",
+            "org.apache.felix.webconsole.internal.compendium.ComponentsServlet",
+            "org.apache.felix.webconsole.internal.compendium.ConfigManager",
+            "org.apache.felix.webconsole.internal.compendium.LogServlet",
+            "org.apache.felix.webconsole.internal.core.BundlesServlet",
+            "org.apache.felix.webconsole.internal.core.InstallAction",
+            "org.apache.felix.webconsole.internal.core.SetStartLevelAction",
+            "org.apache.felix.webconsole.internal.deppack.DepPackServlet",
+            "org.apache.felix.webconsole.internal.misc.EventAdminServlet",
+            "org.apache.felix.webconsole.internal.misc.LicenseServlet",
+            "org.apache.felix.webconsole.internal.misc.ConfigurationRender",
+            "org.apache.felix.webconsole.internal.misc.ShellServlet",
+            "org.apache.felix.webconsole.internal.obr.BundleRepositoryRender",
+            "org.apache.felix.webconsole.internal.obr.InstallFromRepoAction",
+            "org.apache.felix.webconsole.internal.obr.RefreshRepoAction",
+            "org.apache.felix.webconsole.internal.system.GCAction",
+            "org.apache.felix.webconsole.internal.system.VMStatPlugin"
+       */
+      
+      String[] PLUGIN_CLASSES = new String[] { 
+            ComponentConfigurationPrinter.class.getName(),
+            //ComponentsServlet.class.getName(),
+            ConfigManagerPlugin.class.getName(),
+            LogServicePlugin.class.getName(),
+            BundlesPlugin.class.getName(),
+            InstallAction.class.getName(), 
+            SetStartLevelAction.class.getName(),
+            // DepPackServlet.class.getName(),
+            EventAdminPlugin.class.getName(),
+            LicensePlugin.class.getName(),
+            ConfigurationRender.class.getName(),
+            // ShellServlet.class.getName(),
+            BundleRepositoryRender.class.getName(),
+            InstallFromRepoAction.class.getName(), 
+            RefreshRepoAction.class.getName(), 
+            GCAction.class.getName(), 
+            VMStatPlugin.class.getName() 
+            };
+      
+      return PLUGIN_CLASSES;
    }
-
-   @Override
-   protected void bindRender(Render render)
-   {
-      JBossRenderBridge bridge = new JBossRenderBridge(render);
-      bridge.activate(bundleContext);
-      bindServlet(render.getName(), bridge);
-   }
 }
\ No newline at end of file

Deleted: projects/jboss-osgi/projects/bundles/webconsole/trunk/src/main/java/org/jboss/osgi/service/webconsole/internal/plugins/ConfigManagerPlugin.java
===================================================================
--- projects/jboss-osgi/projects/bundles/webconsole/trunk/src/main/java/org/jboss/osgi/service/webconsole/internal/plugins/ConfigManagerPlugin.java	2009-07-06 08:25:35 UTC (rev 90827)
+++ projects/jboss-osgi/projects/bundles/webconsole/trunk/src/main/java/org/jboss/osgi/service/webconsole/internal/plugins/ConfigManagerPlugin.java	2009-07-06 09:12:53 UTC (rev 90828)
@@ -1,57 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.osgi.service.webconsole.internal.plugins;
-
-//$Id$
-
-import java.io.PrintWriter;
-import java.text.MessageFormat;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.apache.felix.webconsole.internal.compendium.ConfigManager;
-import org.apache.felix.webconsole.internal.servlet.OsgiManager;
-
-/**
- * A Console plugin
- * 
- * @author thomas.diesler at jboss.com
- * @since 12-Mar-2009
- */
-public class ConfigManagerPlugin extends ConfigManager
-{
-   private static final long serialVersionUID = 1L;
-
-   @Override
-   protected String getHeader()
-   {
-      return PluginHelper.getHeader();
-   }
-
-   @Override
-   protected void endResponse(HttpServletRequest request, PrintWriter pw)
-   {
-      String appRoot = (String)request.getAttribute(OsgiManager.ATTR_APP_ROOT);
-      String footer = MessageFormat.format(PluginHelper.getFooter(), new Object[]{ appRoot });
-      pw.println(footer);
-   }
-}
\ No newline at end of file

Copied: projects/jboss-osgi/projects/bundles/webconsole/trunk/src/main/java/org/jboss/osgi/service/webconsole/internal/plugins/ConfigManagerPlugin.java (from rev 90826, projects/jboss-osgi/projects/bundles/webconsole/trunk/src/main/java/org/jboss/osgi/service/webconsole/internal/plugins/ConfigManagerPlugin.java)
===================================================================
--- projects/jboss-osgi/projects/bundles/webconsole/trunk/src/main/java/org/jboss/osgi/service/webconsole/internal/plugins/ConfigManagerPlugin.java	                        (rev 0)
+++ projects/jboss-osgi/projects/bundles/webconsole/trunk/src/main/java/org/jboss/osgi/service/webconsole/internal/plugins/ConfigManagerPlugin.java	2009-07-06 09:12:53 UTC (rev 90828)
@@ -0,0 +1,57 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.osgi.service.webconsole.internal.plugins;
+
+//$Id$
+
+import java.io.PrintWriter;
+import java.text.MessageFormat;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.apache.felix.webconsole.internal.compendium.ConfigManager;
+import org.apache.felix.webconsole.internal.servlet.OsgiManager;
+
+/**
+ * A Console plugin
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 12-Mar-2009
+ */
+public class ConfigManagerPlugin extends ConfigManager
+{
+   private static final long serialVersionUID = 1L;
+
+   @Override
+   protected String getHeader()
+   {
+      return PluginHelper.getHeader();
+   }
+
+   @Override
+   protected void endResponse(HttpServletRequest request, PrintWriter pw)
+   {
+      String appRoot = (String)request.getAttribute(OsgiManager.ATTR_APP_ROOT);
+      String footer = MessageFormat.format(PluginHelper.getFooter(), new Object[]{ appRoot });
+      pw.println(footer);
+   }
+}
\ No newline at end of file

Deleted: projects/jboss-osgi/projects/bundles/webconsole/trunk/src/main/java/org/jboss/osgi/service/webconsole/internal/plugins/JBossRenderBridge.java
===================================================================
--- projects/jboss-osgi/projects/bundles/webconsole/trunk/src/main/java/org/jboss/osgi/service/webconsole/internal/plugins/JBossRenderBridge.java	2009-07-06 08:25:35 UTC (rev 90827)
+++ projects/jboss-osgi/projects/bundles/webconsole/trunk/src/main/java/org/jboss/osgi/service/webconsole/internal/plugins/JBossRenderBridge.java	2009-07-06 09:12:53 UTC (rev 90828)
@@ -1,90 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.osgi.service.webconsole.internal.plugins;
-
-//$Id$
-
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.text.MessageFormat;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.felix.webconsole.AbstractWebConsolePlugin;
-import org.apache.felix.webconsole.Render;
-import org.apache.felix.webconsole.internal.servlet.OsgiManager;
-
-/** 
- * A copy of the org.apache.felix.webconsole.internal.servlet.RenderBridge 
- * which does not have a public ctor.
- * 
- * We replace the header and footer.
- * 
- * @author Thomas.Diesler at jboss.com
- * @since 26-Mar-2009
- */
- at SuppressWarnings("serial")
-public class JBossRenderBridge extends AbstractWebConsolePlugin
-{
-   private final Render render;
-
-   public JBossRenderBridge(Render render)
-   {
-      this.render = render;
-   }
-
-   @Override
-   protected String getHeader()
-   {
-      return PluginHelper.getHeader();
-   }
-
-   @Override
-   protected void endResponse(HttpServletRequest request, PrintWriter pw)
-   {
-      String appRoot = (String)request.getAttribute(OsgiManager.ATTR_APP_ROOT);
-      String footer = MessageFormat.format(PluginHelper.getFooter(), new Object[]{ appRoot });
-      pw.println(footer);
-   }
-   
-   public Render getRender()
-   {
-      return render;
-   }
-
-   public String getTitle()
-   {
-      return render.getLabel();
-   }
-
-   public String getLabel()
-   {
-      return render.getName();
-   }
-
-   protected void renderContent(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
-   {
-      render.render(request, response);
-   }
-}

Added: projects/jboss-osgi/projects/bundles/webconsole/trunk/src/main/java/org/jboss/osgi/service/webconsole/internal/plugins/LogServicePlugin.java
===================================================================
--- projects/jboss-osgi/projects/bundles/webconsole/trunk/src/main/java/org/jboss/osgi/service/webconsole/internal/plugins/LogServicePlugin.java	                        (rev 0)
+++ projects/jboss-osgi/projects/bundles/webconsole/trunk/src/main/java/org/jboss/osgi/service/webconsole/internal/plugins/LogServicePlugin.java	2009-07-06 09:12:53 UTC (rev 90828)
@@ -0,0 +1,58 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.osgi.service.webconsole.internal.plugins;
+
+//$Id: BundlesPlugin.java 86576 2009-04-01 07:17:02Z thomas.diesler at jboss.com $
+
+import java.io.PrintWriter;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.apache.felix.webconsole.internal.compendium.LogServlet;
+
+/**
+ * A Console plugin
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 12-Mar-2009
+ */
+public class LogServicePlugin extends LogServlet
+{
+   private static final long serialVersionUID = 1L;
+
+   @Override
+   protected String getHeader()
+   {
+      return PluginHelper.getHeader();
+   }
+
+   @Override
+   protected void endResponse(HttpServletRequest request, PrintWriter pw)
+   {
+      // Footer redered before content in bundle plugin
+      // https://issues.apache.org/jira/browse/FELIX-1020
+         
+      //String appRoot = (String)request.getAttribute(OsgiManager.ATTR_APP_ROOT);
+      //String footer = MessageFormat.format(PluginHelper.getFooter(), new Object[]{ appRoot });
+      //pw.println(footer);
+   }
+}
\ No newline at end of file

Modified: projects/jboss-osgi/projects/bundles/webconsole/trunk/src/main/java/org/jboss/osgi/service/webconsole/internal/plugins/PluginHelper.java
===================================================================
--- projects/jboss-osgi/projects/bundles/webconsole/trunk/src/main/java/org/jboss/osgi/service/webconsole/internal/plugins/PluginHelper.java	2009-07-06 08:25:35 UTC (rev 90827)
+++ projects/jboss-osgi/projects/bundles/webconsole/trunk/src/main/java/org/jboss/osgi/service/webconsole/internal/plugins/PluginHelper.java	2009-07-06 09:12:53 UTC (rev 90828)
@@ -31,9 +31,9 @@
  */
 public abstract class PluginHelper
 {
-   static String getHeader()
+   public static String getHeader()
    {
-      String htmlHeader = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>"
+      String HEADER = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>"
       + "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"xhtml1-transitional.dtd\">"
       + "<html xmlns=\"http://www.w3.org/1999/xhtml\">"
       + "<head>"
@@ -59,14 +59,17 @@
       + "<p>"
       + "<a target=\"_blank\" href=\"{3}\" title=\"{1}\"><img src=\"{5}/res/imgs/jboss_logo.png\" width=\"123\" height=\"103\" border=\"0\"></a>"
       + "</p></div>";
-      return htmlHeader;
+      
+      return HEADER;
    }
 
-   static String getFooter()
+   public static String getFooter()
    {
-      return "<img src=\"{0}/res/imgs/logo.png\" width=\"55\" height=\"21\" border=\"0\">&nbsp;"
+      String FOOTER = "<img src=\"{0}/res/imgs/logo.png\" width=\"55\" height=\"21\" border=\"0\">&nbsp;"
       + "<a target=\"_blank\" href=\"http://felix.apache.org/site/apache-felix-web-console.html\">Apache Felix Web Console</a>"
       + "</body>"
       + "</html>";
+      
+      return FOOTER;
    }
 }
\ No newline at end of file

Modified: projects/jboss-osgi/projects/bundles/webconsole/trunk/src/main/resources/res/ui/admin.css
===================================================================
--- projects/jboss-osgi/projects/bundles/webconsole/trunk/src/main/resources/res/ui/admin.css	2009-07-06 08:25:35 UTC (rev 90827)
+++ projects/jboss-osgi/projects/bundles/webconsole/trunk/src/main/resources/res/ui/admin.css	2009-07-06 09:12:53 UTC (rev 90828)
@@ -21,8 +21,7 @@
     background-color: white;
     border-collapse: collapse;
     padding: 0px;
-    margin: 30px 0 30px 30px;
-    width: 957px;
+    margin: 30px;
     position: absolute;
     text-align: left;
     border-color: black;
@@ -33,7 +32,6 @@
     /* color: #ffffff; */
     margin: 0px 0px 26px 0px;
     padding: 0px;
-    width: 957px;
     height: 100px;
 }
 
@@ -157,7 +155,6 @@
     margin: 0px;
     margin-top: 26px;
     margin-bottom: 26px;
-    /* width: 718px; */
     text-align: left;
 }
 
@@ -222,7 +219,6 @@
     border: 1px solid #000000;
     padding: 0px;
     margin: 0px;
-    width: 960px;
 }
 
 .toolcell {
@@ -231,7 +227,6 @@
     line-height: 10px;
     background-color: #000000;
     height: 18px;
-    /* width: 960px; */
     padding: 0px;
     padding-bottom: 1px;
     text-align: left;
@@ -340,7 +335,7 @@
 	background-color: #6181A9;
 }
 */
-.techcontentcell { /* width: 718px; */
+.techcontentcell {
     border: 0px solid #000000;
     border-top: 1px solid #000000;
 }
@@ -348,43 +343,10 @@
 .relatedcell {
     border-left: 1px solid #000000;
     border-top: 1px solid #000000;
-    width: 239px;
     background-color: #EBF0F6;
 }
 
-/*
-.claimcell {
-	width: 715px;
-	font-size: 10px;
-	color: #ffffff;
-	line-height: 10px;
-	background-color: #000000;
-	height: 18px;
-	padding: 0px;
-	padding-bottom: 1px;
-}
-
-.claimcell A:link {
-	color: #C5E2EE;
-	text-decoration: none;
-}
-
-.claimcell A:visited {
-	color: #C5E2EE;
-	text-decoration: none;
-}
-
-.claimcell A:hover {
-	color: #99FF33;
-	text-decoration: none;
-	border-bottom: 1px solid;
-}
-
-.claimcell A:active {
-	color: #FFFFFF;
-	text-decoration: none;
-}
-*/ /* CENTRAL CONTENT AREA STYLING */
+/* CENTRAL CONTENT AREA STYLING */
 .content {
     position: relative;
     margin: 25px;
@@ -572,7 +534,16 @@
     vertical-align: middle;
     padding-right: 10px;
     padding-top: 8px;
+    color: #F0F0F0;
+    font-size: 10px;
 }
+div.buttons select {
+    font-family: Verdana, Arial, Helvetica, san-serif;
+    font-size: 9px;
+    font-weight: normal;
+    display: inline;
+    float:none;
+}
 div.button {
     display: inline-block;
     margin-left: 10px;

Modified: projects/jboss-osgi/projects/bundles/webconsole/trunk/src/main/resources/res/ui/bundles.js
===================================================================
--- projects/jboss-osgi/projects/bundles/webconsole/trunk/src/main/resources/res/ui/bundles.js	2009-07-06 08:25:35 UTC (rev 90827)
+++ projects/jboss-osgi/projects/bundles/webconsole/trunk/src/main/resources/res/ui/bundles.js	2009-07-06 09:12:53 UTC (rev 90828)
@@ -55,6 +55,9 @@
 }
 
 function actionButton( /* Element */ parent, /* string */ id, /* Obj */ action ) {
+	if ( !action.enabled ) {
+		return;
+	}
 	var enabled = action.enabled;
 	var op = action.link;
 	var opLabel = action.name;
@@ -102,6 +105,8 @@
     
     parent.appendChild( td( null, null, [ text( id ) ] ) );
     parent.appendChild( td( null, null, [ inputElement, text(" "), titleElement ] ) );
+    parent.appendChild( td( null, null, [ text( dataEntry.version ) ] ) );
+    parent.appendChild( td( null, null, [ text( dataEntry.symbolicName ) ] ) );
     parent.appendChild( td( null, null, [ text( state ) ] ) );
     var actionsTd = td( null, null );
     var div = createElement("div", null, {
@@ -207,7 +212,7 @@
 
 function renderBundles(data) {
 	$(document).ready(function(){
-    	renderView( ["Id", "Name", "Status", "Actions"],
+    	renderView( ["Id", "Name", "Version", "Symbolic Name", "Status", "Actions"],
         		"<input type='hidden' name='action' value='install'/>" +
                 "<input class='fileinput' type='file' name='bundlefile' style='margin-left:10px'/>" +
          		" - Start <input class='checkradio' type='checkbox' name='bundlestart' value='start' style='vertical-align:middle;'/>" +
@@ -228,7 +233,7 @@
         $("#plugin_table").tablesorter({
             headers: {
         	    0: { sorter:"digit"},
-                3: { sorter: false }
+                5: { sorter: false }
             },
             sortList: [[1,0]],
             textExtraction:extractMethod 

Added: projects/jboss-osgi/projects/bundles/webconsole/trunk/src/main/resources/res/ui/logs.js
===================================================================
--- projects/jboss-osgi/projects/bundles/webconsole/trunk/src/main/resources/res/ui/logs.js	                        (rev 0)
+++ projects/jboss-osgi/projects/bundles/webconsole/trunk/src/main/resources/res/ui/logs.js	2009-07-06 09:12:53 UTC (rev 90828)
@@ -0,0 +1,96 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+function renderStatusLine() {
+	$("#plugin_content").append( "<div class='fullwidth'><div class='statusline'/></div>" );
+}
+
+function renderView( /* Array of String */ columns, /* String */ buttons ) {
+    renderStatusLine();
+    renderButtons(buttons);
+    var txt = "<div class='table'><table id='plugin_table' class='tablelayout'><thead><tr>";
+    for ( var name in columns ) {
+    	txt = txt + "<th class='col_" + columns[name] + "'>" + columns[name] + "</th>";
+    }
+    txt = txt + "</tr></thead><tbody></tbody></table></div>";
+    $("#plugin_content").append( txt );
+    renderButtons(buttons);
+    renderStatusLine();	
+}
+
+function renderButtons( buttons ) {
+	$("#plugin_content").append( "<form method='post' enctype='multipart/form-data'><div class='fullwidth'><div class='buttons'>" +
+	                             buttons + "</div></div></form>" );
+}
+
+function renderData( eventData )  {
+	$(".statusline").empty().append(eventData.status);
+	$("#plugin_table > tbody > tr").remove();	
+    for ( var idx in eventData.data ) {
+        entry( eventData.data[idx] );
+    }
+    $("#plugin_table").trigger("update");
+}
+
+function entry( /* Object */ dataEntry ) {
+    var trElement = tr( null, { id: "entry" + dataEntry.id } );
+    entryInternal( trElement,  dataEntry );
+	$("#plugin_table > tbody").append(trElement);	
+}
+
+function entryInternal( /* Element */ parent, /* Object */ dataEntry ) {
+    var id = dataEntry.id;
+    var message = dataEntry.message;
+    var level = dataEntry.level;
+    var exception = dataEntry.exception;
+    var service = dataEntry.service;
+
+    parent.appendChild( td( null, null, [ text( printDate(dataEntry.received) ) ] ) );
+    parent.appendChild( td( null, null, [ text( level ) ] ) );    
+    parent.appendChild( td( null, null, [ text( message ) ] ) );
+    parent.appendChild( td( null, null, [ text( service ) ] ) );
+    parent.appendChild( td( null, null, [ text( exception ) ] ) );
+}
+
+/* displays a date in the user's local timezone */
+function printDate(time) {
+    var date = time ? new Date(time) : new Date();
+    return date.toLocaleString();
+}
+
+function loadData() {
+	$.get(pluginRoot + "/data.json", { "minLevel":$("#minLevel").val()}, function(data) {
+	    renderData(data);
+	}, "json");	
+}
+
+function renderLogs() {
+	$(document).ready(function(){
+	    renderView( ["Received", "Level", "Message", "Service", "Exception"],
+	    		 "<span>Severity at least: <select id='minLevel'><option value='1'>ERROR</option>" + 
+	    		 "<option value='2'>WARN</option><option value='3'>INFO</option><option value='4' selected='selected'>DEBUG</option></select></span> "+
+	    		 "<button class='reloadButton' type='button' name='reload'>Reload</button>");
+	    loadData();
+	    
+	    $("#plugin_table").tablesorter();
+	    $(".reloadButton").click(loadData);
+	    $("#minLevel").change(function() {
+	    	$.post(pluginRoot, { "minLevel":$("#minLevel").val()}, function(data) {
+	    	    renderData(data);
+	    	}, "json");
+	    });
+	});
+}
\ No newline at end of file




More information about the jboss-cvs-commits mailing list