You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by jb...@apache.org on 2011/09/26 19:37:57 UTC

svn commit: r1175968 - in /karaf/trunk: assemblies/features/standard/src/main/feature/ management/mbeans/ management/mbeans/log/src/main/java/org/apache/karaf/management/mbeans/log/ management/mbeans/log/src/main/java/org/apache/karaf/management/mbeans...

Author: jbonofre
Date: Mon Sep 26 17:37:56 2011
New Revision: 1175968

URL: http://svn.apache.org/viewvc?rev=1175968&view=rev
Log:
[KARAF-786] Add Web MBean, remove display operation from the Log MBean

Added:
    karaf/trunk/management/mbeans/web/
    karaf/trunk/management/mbeans/web/NOTICE
    karaf/trunk/management/mbeans/web/pom.xml
    karaf/trunk/management/mbeans/web/src/
    karaf/trunk/management/mbeans/web/src/main/
    karaf/trunk/management/mbeans/web/src/main/java/
    karaf/trunk/management/mbeans/web/src/main/java/org/
    karaf/trunk/management/mbeans/web/src/main/java/org/apache/
    karaf/trunk/management/mbeans/web/src/main/java/org/apache/karaf/
    karaf/trunk/management/mbeans/web/src/main/java/org/apache/karaf/management/
    karaf/trunk/management/mbeans/web/src/main/java/org/apache/karaf/management/mbeans/
    karaf/trunk/management/mbeans/web/src/main/java/org/apache/karaf/management/mbeans/web/
    karaf/trunk/management/mbeans/web/src/main/java/org/apache/karaf/management/mbeans/web/WebMBean.java
      - copied, changed from r1175768, karaf/trunk/management/mbeans/log/src/main/java/org/apache/karaf/management/mbeans/log/LogMBean.java
    karaf/trunk/management/mbeans/web/src/main/java/org/apache/karaf/management/mbeans/web/internal/
    karaf/trunk/management/mbeans/web/src/main/java/org/apache/karaf/management/mbeans/web/internal/WebMBeanImpl.java
    karaf/trunk/management/mbeans/web/src/main/resources/
    karaf/trunk/management/mbeans/web/src/main/resources/OSGI-INF/
    karaf/trunk/management/mbeans/web/src/main/resources/OSGI-INF/blueprint/
    karaf/trunk/management/mbeans/web/src/main/resources/OSGI-INF/blueprint/web-management.xml
    karaf/trunk/management/mbeans/web/src/main/resources/OSGI-INF/bundle.info
Removed:
    karaf/trunk/management/mbeans/log/src/main/java/org/apache/karaf/management/mbeans/log/internal/LruList.java
Modified:
    karaf/trunk/assemblies/features/standard/src/main/feature/feature.xml
    karaf/trunk/management/mbeans/log/src/main/java/org/apache/karaf/management/mbeans/log/LogMBean.java
    karaf/trunk/management/mbeans/log/src/main/java/org/apache/karaf/management/mbeans/log/internal/LogMBeanImpl.java
    karaf/trunk/management/mbeans/pom.xml

Modified: karaf/trunk/assemblies/features/standard/src/main/feature/feature.xml
URL: http://svn.apache.org/viewvc/karaf/trunk/assemblies/features/standard/src/main/feature/feature.xml?rev=1175968&r1=1175967&r2=1175968&view=diff
==============================================================================
--- karaf/trunk/assemblies/features/standard/src/main/feature/feature.xml (original)
+++ karaf/trunk/assemblies/features/standard/src/main/feature/feature.xml Mon Sep 26 17:37:56 2011
@@ -154,6 +154,7 @@
         </config>
         <feature>org.apache.karaf.feature.standard.http-whiteboard</feature>
         <bundle start-level="30">mvn:org.apache.karaf.shell/org.apache.karaf.shell.web/${project.version}</bundle>
+        <bundle start-level="30">mvn:org.apache.karaf.management.mbeans/org.apache.karaf.management.mbeans.web/${project.version}</bundle>
         <bundle start-level="30">mvn:org.ops4j.pax.web/pax-web-extender-war/${pax.web.version}</bundle>
         <bundle start-level="30">mvn:org.ops4j.pax.web/pax-web-deployer/${pax.web.version}</bundle>
         <bundle start-level="30">mvn:org.ops4j.pax.url/pax-url-war/${pax.url.version}</bundle>

Modified: karaf/trunk/management/mbeans/log/src/main/java/org/apache/karaf/management/mbeans/log/LogMBean.java
URL: http://svn.apache.org/viewvc/karaf/trunk/management/mbeans/log/src/main/java/org/apache/karaf/management/mbeans/log/LogMBean.java?rev=1175968&r1=1175967&r2=1175968&view=diff
==============================================================================
--- karaf/trunk/management/mbeans/log/src/main/java/org/apache/karaf/management/mbeans/log/LogMBean.java (original)
+++ karaf/trunk/management/mbeans/log/src/main/java/org/apache/karaf/management/mbeans/log/LogMBean.java Mon Sep 26 17:37:56 2011
@@ -23,9 +23,6 @@ import java.util.List;
  */
 public interface LogMBean {
 
-    List<String> display() throws Exception;
-    List<String> display(String logger) throws Exception;
-
     void set(String level) throws Exception;
     void set(String level, String logger) throws Exception;
 

Modified: karaf/trunk/management/mbeans/log/src/main/java/org/apache/karaf/management/mbeans/log/internal/LogMBeanImpl.java
URL: http://svn.apache.org/viewvc/karaf/trunk/management/mbeans/log/src/main/java/org/apache/karaf/management/mbeans/log/internal/LogMBeanImpl.java?rev=1175968&r1=1175967&r2=1175968&view=diff
==============================================================================
--- karaf/trunk/management/mbeans/log/src/main/java/org/apache/karaf/management/mbeans/log/internal/LogMBeanImpl.java (original)
+++ karaf/trunk/management/mbeans/log/src/main/java/org/apache/karaf/management/mbeans/log/internal/LogMBeanImpl.java Mon Sep 26 17:37:56 2011
@@ -37,32 +37,12 @@ public class LogMBeanImpl extends Standa
     static final String ROOT_LOGGER_PREFIX = "log4j.rootLogger";
     static final String LOGGER_PREFIX = "log4j.logger.";
     static final String ROOT_LOGGER = "ROOT";
-
-    private LruList events;
     private BundleContext bundleContext;
 
     public LogMBeanImpl() throws NotCompliantMBeanException {
         super(LogMBean.class);
     }
 
-    public List<String> display() throws Exception {
-        return display(null);
-    }
-
-    public List<String> display(String logger) throws Exception {
-        Iterable<PaxLoggingEvent> le = events.getElements(Integer.MAX_VALUE);
-        List<String> out = new ArrayList<String>();
-        for (PaxLoggingEvent event : le) {
-            if ((logger != null) && (event != null)
-                    && (checkIfFromRequestedLog(event, logger))) {
-                out.add(render(event));
-            } else if ((event != null) && (logger == null)) {
-                out.add(render(event));
-            }
-        }
-        return out;
-    }
-
     public void set(String level) throws Exception {
         set(level, null);
     }
@@ -189,14 +169,6 @@ public class LogMBeanImpl extends Standa
         }
     }
 
-    public LruList getEvents() {
-        return this.events;
-    }
-
-    public void setEvents(LruList events) {
-        this.events = events;
-    }
-
     public BundleContext getBundleContext() {
         return this.bundleContext;
     }

Modified: karaf/trunk/management/mbeans/pom.xml
URL: http://svn.apache.org/viewvc/karaf/trunk/management/mbeans/pom.xml?rev=1175968&r1=1175967&r2=1175968&view=diff
==============================================================================
--- karaf/trunk/management/mbeans/pom.xml (original)
+++ karaf/trunk/management/mbeans/pom.xml Mon Sep 26 17:37:56 2011
@@ -43,6 +43,7 @@
         <module>http</module>
         <module>log</module>
         <module>obr</module>
+        <module>web</module>
     </modules>
 
 </project>
\ No newline at end of file

Added: karaf/trunk/management/mbeans/web/NOTICE
URL: http://svn.apache.org/viewvc/karaf/trunk/management/mbeans/web/NOTICE?rev=1175968&view=auto
==============================================================================
--- karaf/trunk/management/mbeans/web/NOTICE (added)
+++ karaf/trunk/management/mbeans/web/NOTICE Mon Sep 26 17:37:56 2011
@@ -0,0 +1,48 @@
+Apache Karaf
+Copyright 2010 The Apache Software Foundation
+
+
+I. Included Software
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+Licensed under the Apache License 2.0.
+
+This product includes software written by
+Antony Lesuisse.
+Licensed under Public Domain.
+
+
+II. Used Software
+
+This product uses software developed at
+The OSGi Alliance (http://www.osgi.org/).
+Copyright (c) OSGi Alliance (2000, 2010).
+Licensed under the Apache License 2.0.
+
+This product uses software developed at
+OPS4J (http://www.ops4j.org/).
+Licensed under the Apache License 2.0.
+
+This product uses software developed at
+FUSE Source (http://www.fusesource.org/).
+Licensed under the Apache License 2.0.
+
+This product uses software developed at
+Tanuki Software (http://www.tanukisoftware.com/).
+Licensed under the Apache License 2.0.
+
+This product uses software developed at
+JLine (http://jline.sourceforge.net).
+Licensed under the BSD License.
+
+This product uses software developed at
+SLF4J (http://www.slf4j.org/).
+Licensed under the MIT License.
+
+This product includes software from http://www.json.org.
+Copyright (c) 2002 JSON.org
+
+
+III. License Summary
+- Apache License 2.0

Added: karaf/trunk/management/mbeans/web/pom.xml
URL: http://svn.apache.org/viewvc/karaf/trunk/management/mbeans/web/pom.xml?rev=1175968&view=auto
==============================================================================
--- karaf/trunk/management/mbeans/web/pom.xml (added)
+++ karaf/trunk/management/mbeans/web/pom.xml Mon Sep 26 17:37:56 2011
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+    <!--
+
+        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.
+    -->
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.karaf.management.mbeans</groupId>
+        <artifactId>mbeans</artifactId>
+        <version>3.0.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>org.apache.karaf.management.mbeans.web</artifactId>
+    <packaging>bundle</packaging>
+    <name>Apache Karaf :: Management :: MBeans :: Web</name>
+    <description>The Web MBean bundle provides a JMX MBean to manipulate to manipulate web application bundles.</description>
+
+    <properties>
+        <appendedResourcesDirectory>${basedir}/../../../etc/appended-resources/</appendedResourcesDirectory>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.core</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <resources>
+            <resource>
+                <directory>src/main/resources</directory>
+                <includes>
+                    <include>**/*</include>
+                </includes>
+            </resource>
+            <resource>
+                <directory>src/main/resources</directory>
+                <filtering>true</filtering>
+                <includes>
+                    <include>**/*.info</include>
+                </includes>
+            </resource>
+        </resources>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-bundle-plugin</artifactId>
+                <configuration>
+                    <instructions>
+                        <Export-Package>
+                            org.apache.karaf.management.mbeans.web;version=${project.version}
+                        </Export-Package>
+                        <Import-Package>
+                            !org.apache.karaf.management.mbeans.system,
+                            javax.management,
+                            javax.management.loading,
+                            org.apache.karaf.management;version=${project.version},
+                            *
+                        </Import-Package>
+                        <Private-Package>
+                            org.apache.karaf.management.mbeans.web.internal,
+                            !*
+                        </Private-Package>
+                    </instructions>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
\ No newline at end of file

Copied: karaf/trunk/management/mbeans/web/src/main/java/org/apache/karaf/management/mbeans/web/WebMBean.java (from r1175768, karaf/trunk/management/mbeans/log/src/main/java/org/apache/karaf/management/mbeans/log/LogMBean.java)
URL: http://svn.apache.org/viewvc/karaf/trunk/management/mbeans/web/src/main/java/org/apache/karaf/management/mbeans/web/WebMBean.java?p2=karaf/trunk/management/mbeans/web/src/main/java/org/apache/karaf/management/mbeans/web/WebMBean.java&p1=karaf/trunk/management/mbeans/log/src/main/java/org/apache/karaf/management/mbeans/log/LogMBean.java&r1=1175768&r2=1175968&rev=1175968&view=diff
==============================================================================
--- karaf/trunk/management/mbeans/log/src/main/java/org/apache/karaf/management/mbeans/log/LogMBean.java (original)
+++ karaf/trunk/management/mbeans/web/src/main/java/org/apache/karaf/management/mbeans/web/WebMBean.java Mon Sep 26 17:37:56 2011
@@ -14,22 +14,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.karaf.management.mbeans.log;
+package org.apache.karaf.management.mbeans.web;
 
-import java.util.List;
+import javax.management.openmbean.TabularData;
 
 /**
- * Log MBean.
+ * Web MBean.
  */
-public interface LogMBean {
+public interface WebMBean {
 
-    List<String> display() throws Exception;
-    List<String> display(String logger) throws Exception;
-
-    void set(String level) throws Exception;
-    void set(String level, String logger) throws Exception;
-
-    String get() throws Exception;
-    String get(String logger) throws Exception;
+    TabularData list() throws Exception;
 
 }

Added: karaf/trunk/management/mbeans/web/src/main/java/org/apache/karaf/management/mbeans/web/internal/WebMBeanImpl.java
URL: http://svn.apache.org/viewvc/karaf/trunk/management/mbeans/web/src/main/java/org/apache/karaf/management/mbeans/web/internal/WebMBeanImpl.java?rev=1175968&view=auto
==============================================================================
--- karaf/trunk/management/mbeans/web/src/main/java/org/apache/karaf/management/mbeans/web/internal/WebMBeanImpl.java (added)
+++ karaf/trunk/management/mbeans/web/src/main/java/org/apache/karaf/management/mbeans/web/internal/WebMBeanImpl.java Mon Sep 26 17:37:56 2011
@@ -0,0 +1,81 @@
+/*
+ * 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.karaf.management.mbeans.web.internal;
+
+import org.apache.karaf.management.mbeans.web.WebMBean;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.Constants;
+
+import javax.management.NotCompliantMBeanException;
+import javax.management.StandardMBean;
+import javax.management.openmbean.*;
+
+/**
+ * Web MBean implementation.
+ */
+public class WebMBeanImpl extends StandardMBean implements WebMBean {
+
+    private BundleContext bundleContext;
+
+    public WebMBeanImpl() throws NotCompliantMBeanException {
+        super(WebMBean.class);
+    }
+
+    public TabularData list() throws Exception {
+        CompositeType webType = new CompositeType("Web Bundle", "An OSGi Web bundle",
+                new String[]{ "ID", "Name", "Context" },
+                new String[]{ "ID of the bundle", "Name of the bundle", "Web Context" },
+                new OpenType[]{ SimpleType.STRING, SimpleType.STRING, SimpleType.STRING });
+        TabularType tableType = new TabularType("Web Bundles", "Table of web bundles", webType,
+                new String[]{ "ID" });
+        TabularData table = new TabularDataSupport(tableType);
+        for (Bundle bundle : bundleContext.getBundles()) {
+            String webContext = (String) bundle.getHeaders().get("Web-ContextPath");
+            if (webContext == null)
+                webContext = (String) bundle.getHeaders().get("Webapp-Context");
+            if (webContext == null)
+                continue;
+
+            webContext.trim();
+            if (!webContext.startsWith("/")) {
+                webContext = "/" + webContext;
+            }
+
+            String name = (String) bundle.getHeaders().get(Constants.BUNDLE_NAME);
+            name = (name == null) ? bundle.getSymbolicName() : name;
+                // If there is no symbolic name, resort to location.
+            name = (name == null) ? bundle.getLocation() : name;
+
+            CompositeData data = new CompositeDataSupport(webType,
+                    new String[]{ "ID", "Name", "Context"},
+                    new Object[]{ bundle.getBundleId(), name, webContext });
+            table.put(data);
+        }
+        return table;
+    }
+
+    public BundleContext getBundleContext() {
+        return this.bundleContext;
+    }
+
+    public void setBundleContext(BundleContext bundleContext) {
+        this.bundleContext = bundleContext;
+    }
+
+}

Added: karaf/trunk/management/mbeans/web/src/main/resources/OSGI-INF/blueprint/web-management.xml
URL: http://svn.apache.org/viewvc/karaf/trunk/management/mbeans/web/src/main/resources/OSGI-INF/blueprint/web-management.xml?rev=1175968&view=auto
==============================================================================
--- karaf/trunk/management/mbeans/web/src/main/resources/OSGI-INF/blueprint/web-management.xml (added)
+++ karaf/trunk/management/mbeans/web/src/main/resources/OSGI-INF/blueprint/web-management.xml Mon Sep 26 17:37:56 2011
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+   Licensed 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.
+-->
+<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
+
+    <!-- Reference to the MBean Server -->
+    <reference id="mbeanServer" interface="javax.management.MBeanServer">
+        <reference-listener ref="mbeanRegistrer" bind-method="registerMBeanServer" unbind-method="unregisterMBeanServer"/>
+    </reference>
+
+    <!-- Web MBean -->
+    <bean id="webMBean" class="org.apache.karaf.management.mbeans.web.internal.WebMBeanImpl">
+        <property name="bundleContext" ref="blueprintBundleContext"/>
+    </bean>
+
+    <!-- MBean Registrer -->
+    <bean id="mbeanRegistrer" class="org.apache.karaf.management.MBeanRegistrer">
+        <property name="mbeans">
+            <map>
+                <entry value="org.apache.karaf:type=web,name=${karaf.name}" key-ref="webMBean"/>
+            </map>
+        </property>
+    </bean>
+
+</blueprint>
\ No newline at end of file

Added: karaf/trunk/management/mbeans/web/src/main/resources/OSGI-INF/bundle.info
URL: http://svn.apache.org/viewvc/karaf/trunk/management/mbeans/web/src/main/resources/OSGI-INF/bundle.info?rev=1175968&view=auto
==============================================================================
--- karaf/trunk/management/mbeans/web/src/main/resources/OSGI-INF/bundle.info (added)
+++ karaf/trunk/management/mbeans/web/src/main/resources/OSGI-INF/bundle.info Mon Sep 26 17:37:56 2011
@@ -0,0 +1,18 @@
+PSIS\u001B[0m
+    ${project.name}
+
+    ${project.description}
+
+    Maven URL:
+        \u001B[33mmvn:${project.groupId}/${project.artifactId}/${project.version}\u001B[0m
+
+\u001B[1mDESCRIPTION\u001B[0m
+    The Web MBean management bundle exposes a Web MBean that you can use with any JMX client (for instance JConsole).
+
+    The Web MBean allows you quite the same action that you can perform using web:* commands:
+    \u001B[36mlist()\u001B[0m
+
+\u001B[1mSEE ALSO\u001B[0m
+    \u001B[36mDiagnostic\u001B[0m and \u001B[36mRemote Management via JMX\u001B[0m for the Karaf User Guide.
+
+