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.
+
+