[jboss-osgi-commits] JBoss-OSGI SVN: r90828 - in projects/jboss-osgi/projects/bundles/webconsole/trunk: src/main/java/org/apache/felix/webconsole and 4 other directories.
jboss-osgi-commits at lists.jboss.org
jboss-osgi-commits at lists.jboss.org
Mon Jul 6 05:12:54 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\"> "
+ String FOOTER = "<img src=\"{0}/res/imgs/logo.png\" width=\"55\" height=\"21\" border=\"0\"> "
+ "<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-osgi-commits
mailing list