You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by cs...@apache.org on 2012/04/03 17:11:07 UTC
svn commit: r1308973 - in /karaf/trunk: ./
assemblies/features/standard/src/main/feature/ http/ http/command/
http/command/src/main/java/org/apache/karaf/http/
http/command/src/main/java/org/apache/karaf/http/command/
http/command/src/main/java/org/apa...
Author: cschneider
Date: Tue Apr 3 15:11:05 2012
New Revision: 1308973
URL: http://svn.apache.org/viewvc?rev=1308973&view=rev
Log:
KARAF-1307 Refactor http commands and mbeans
Added:
karaf/trunk/http/ (with props)
karaf/trunk/http/command/
- copied from r1308788, karaf/trunk/shell/http/
karaf/trunk/http/command/src/main/java/org/apache/karaf/http/
karaf/trunk/http/command/src/main/java/org/apache/karaf/http/command/
- copied from r1308788, karaf/trunk/shell/http/src/main/java/org/apache/karaf/shell/http/
karaf/trunk/http/command/src/main/resources/OSGI-INF/blueprint/blueprint.xml
- copied, changed from r1308788, karaf/trunk/shell/http/src/main/resources/OSGI-INF/blueprint/shell-http.xml
karaf/trunk/http/core/
- copied from r1308788, karaf/trunk/management/mbeans/http/
karaf/trunk/http/core/src/main/java/org/apache/karaf/http/
karaf/trunk/http/core/src/main/java/org/apache/karaf/http/core/
- copied from r1308788, karaf/trunk/management/mbeans/http/src/main/java/org/apache/karaf/management/mbeans/http/
karaf/trunk/http/core/src/main/java/org/apache/karaf/http/core/ServletInfo.java
karaf/trunk/http/core/src/main/java/org/apache/karaf/http/core/ServletService.java
karaf/trunk/http/core/src/main/java/org/apache/karaf/http/core/internal/Http.java
- copied, changed from r1308788, karaf/trunk/management/mbeans/http/src/main/java/org/apache/karaf/management/mbeans/http/internal/HttpMBeanImpl.java
karaf/trunk/http/core/src/main/java/org/apache/karaf/http/core/internal/ServletServiceImpl.java
karaf/trunk/http/core/src/main/resources/OSGI-INF/blueprint/blueprint.xml
- copied, changed from r1308788, karaf/trunk/management/mbeans/http/src/main/resources/OSGI-INF/blueprint/http-management.xml
karaf/trunk/http/core/src/test/
karaf/trunk/http/core/src/test/java/
karaf/trunk/http/core/src/test/java/org/
karaf/trunk/http/core/src/test/java/org/apache/
karaf/trunk/http/core/src/test/java/org/apache/karaf/
karaf/trunk/http/core/src/test/java/org/apache/karaf/http/
karaf/trunk/http/core/src/test/java/org/apache/karaf/http/core/
karaf/trunk/http/core/src/test/java/org/apache/karaf/http/core/internal/
karaf/trunk/http/core/src/test/java/org/apache/karaf/http/core/internal/HttpTest.java
karaf/trunk/http/pom.xml
Removed:
karaf/trunk/http/command/src/main/java/org/apache/karaf/http/command/ServletEventHandler.java
karaf/trunk/http/command/src/main/java/org/apache/karaf/shell/
karaf/trunk/http/command/src/main/resources/OSGI-INF/blueprint/shell-http.xml
karaf/trunk/http/core/src/main/java/org/apache/karaf/http/core/internal/HttpMBeanImpl.java
karaf/trunk/http/core/src/main/java/org/apache/karaf/management/
karaf/trunk/http/core/src/main/resources/OSGI-INF/blueprint/http-management.xml
karaf/trunk/management/mbeans/http/
karaf/trunk/shell/http/
Modified:
karaf/trunk/assemblies/features/standard/src/main/feature/feature.xml
karaf/trunk/http/command/pom.xml
karaf/trunk/http/command/src/main/java/org/apache/karaf/http/command/ServletListCommand.java
karaf/trunk/http/core/pom.xml
karaf/trunk/http/core/src/main/java/org/apache/karaf/http/core/HttpMBean.java
karaf/trunk/http/core/src/main/java/org/apache/karaf/http/core/internal/ServletEventHandler.java
karaf/trunk/management/mbeans/pom.xml
karaf/trunk/pom.xml
karaf/trunk/shell/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=1308973&r1=1308972&r2=1308973&view=diff
==============================================================================
--- karaf/trunk/assemblies/features/standard/src/main/feature/feature.xml (original)
+++ karaf/trunk/assemblies/features/standard/src/main/feature/feature.xml Tue Apr 3 15:11:05 2012
@@ -109,8 +109,8 @@
<bundle start-level="30">mvn:org.ops4j.pax.web/pax-web-spi/${pax.web.version}</bundle>
<bundle start-level="30">mvn:org.ops4j.pax.web/pax-web-runtime/${pax.web.version}</bundle>
<bundle start-level="30">mvn:org.ops4j.pax.web/pax-web-jetty/${pax.web.version}</bundle>
- <bundle start-level="30">mvn:org.apache.karaf.shell/org.apache.karaf.shell.http/${project.version}</bundle>
- <bundle start-level="30">mvn:org.apache.karaf.management.mbeans/org.apache.karaf.management.mbeans.http/${project.version}</bundle>
+ <bundle start-level="30">mvn:org.apache.karaf.http/org.apache.karaf.http.core/${project.version}</bundle>
+ <bundle start-level="30">mvn:org.apache.karaf.http/org.apache.karaf.http.command/${project.version}</bundle>
</feature>
<feature name="http-whiteboard" description="Provide HTTP Whiteboard pattern support" version="${project.version}" resolver="(obr)">
Propchange: karaf/trunk/http/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Tue Apr 3 15:11:05 2012
@@ -0,0 +1,3 @@
+.project
+.settings
+target
Modified: karaf/trunk/http/command/pom.xml
URL: http://svn.apache.org/viewvc/karaf/trunk/http/command/pom.xml?rev=1308973&r1=1308788&r2=1308973&view=diff
==============================================================================
--- karaf/trunk/http/command/pom.xml (original)
+++ karaf/trunk/http/command/pom.xml Tue Apr 3 15:11:05 2012
@@ -22,15 +22,15 @@
<modelVersion>4.0.0</modelVersion>
<parent>
- <groupId>org.apache.karaf.shell</groupId>
- <artifactId>shell</artifactId>
+ <groupId>org.apache.karaf.http</groupId>
+ <artifactId>http</artifactId>
<version>3.0.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
- <artifactId>org.apache.karaf.shell.http</artifactId>
+ <artifactId>org.apache.karaf.http.command</artifactId>
<packaging>bundle</packaging>
- <name>Apache Karaf :: Shell :: Http Commands</name>
+ <name>Apache Karaf :: HTTP :: Commands</name>
<description>This bundle provides Karaf shell commands to list details of the http service.</description>
<properties>
@@ -42,6 +42,10 @@
<groupId>org.apache.karaf.shell</groupId>
<artifactId>org.apache.karaf.shell.console</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.apache.karaf.http</groupId>
+ <artifactId>org.apache.karaf.http.core</artifactId>
+ </dependency>
<dependency>
<groupId>org.apache.karaf</groupId>
Modified: karaf/trunk/http/command/src/main/java/org/apache/karaf/http/command/ServletListCommand.java
URL: http://svn.apache.org/viewvc/karaf/trunk/http/command/src/main/java/org/apache/karaf/http/command/ServletListCommand.java?rev=1308973&r1=1308788&r2=1308973&view=diff
==============================================================================
--- karaf/trunk/http/command/src/main/java/org/apache/karaf/http/command/ServletListCommand.java (original)
+++ karaf/trunk/http/command/src/main/java/org/apache/karaf/http/command/ServletListCommand.java Tue Apr 3 15:11:05 2012
@@ -14,88 +14,42 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.karaf.shell.http;
+package org.apache.karaf.http.command;
import java.util.Arrays;
-import javax.servlet.Servlet;
-
+import org.apache.karaf.http.core.ServletInfo;
+import org.apache.karaf.http.core.ServletService;
import org.apache.karaf.shell.commands.Command;
import org.apache.karaf.shell.console.OsgiCommandSupport;
-import org.apache.karaf.util.CommandUtils;
-import org.ops4j.pax.web.service.spi.ServletEvent;
-import org.ops4j.pax.web.service.spi.WebEvent;
-
+import org.apache.karaf.shell.console.table.Col;
+import org.apache.karaf.shell.console.table.ShellTable;
@Command(scope = "http", name = "list", description = "Lists details for servlets.")
public class ServletListCommand extends OsgiCommandSupport {
- private ServletEventHandler eventHandler;
-
- @Override
- protected Object doExecute() throws Exception {
-
- String headers = " ID Servlet Servlet-Name State Alias Url ";
- System.out.println(headers);
- for (ServletEvent event : eventHandler.getServletEvents()) {
- Servlet servlet = event.getServlet();
- String servletClassName = " ";
- if (servlet != null) {
- servletClassName = servlet.getClass().getName();
- servletClassName = servletClassName.substring(servletClassName.lastIndexOf(".")+1, servletClassName.length());
- }
- servletClassName = CommandUtils.trimToSize(servletClassName, 28);
- String servletName = event.getServletName() != null ? event.getServletName() : " ";
- if (servletName.contains(".")) {
- servletName = servletName.substring(servletName.lastIndexOf(".")+1, servletName.length());
- }
-
- servletName = CommandUtils.trimToSize(servletName, 23);
-
- String alias = event.getAlias() != null ? event.getAlias() : " ";
-
- alias = CommandUtils.trimToSize(alias, 16);
-
- String[] urls = (String[]) (event.getUrlParameter() != null ? event.getUrlParameter() : new String[] {""});
- String line = "[" + event.getBundle().getBundleId() + "] [" + servletClassName + "] [" + servletName +"] ["
- + getStateString(event.getType())+ "] [" + alias + "] [" + Arrays.toString(urls) + "]";
- System.out.println(line);
- }
- return null;
- }
-
- public String getStateString(int type)
- {
- switch(type) {
- case WebEvent.DEPLOYING:
- return "Deploying ";
- case WebEvent.DEPLOYED:
- return "Deployed ";
- case WebEvent.UNDEPLOYING:
- return "Undeploying";
- case WebEvent.UNDEPLOYED:
- return "Undeployed ";
- case WebEvent.FAILED:
- return "Failed ";
- case WebEvent.WAITING:
- return "Waiting ";
- default:
- return "Failed ";
- }
+ private ServletService servletService;
+
+ public ServletListCommand(ServletService servletService) {
+ this.servletService = servletService;
}
- /**
- * @return the eventHandler
- */
- public ServletEventHandler getEventHandler() {
- return eventHandler;
- }
-
- /**
- * @param eventHandler the eventHandler to set
- */
- public void setEventHandler(ServletEventHandler eventHandler) {
- this.eventHandler = eventHandler;
- }
+ @Override
+ protected Object doExecute() throws Exception {
+ ShellTable table = new ShellTable();
+ table.column(new Col("ID"));
+ table.column(new Col("Servlet"));
+ table.column(new Col("Servlet-Name"));
+ table.column(new Col("State"));
+ table.column(new Col("Alias"));
+ table.column(new Col("Url"));
+
+ for (ServletInfo info : servletService.getServlets()) {
+ table.addRow().addContent(info.getBundle().getBundleId(), info.getClassName(), info.getName(),
+ info.getStateString(), info.getAlias(), Arrays.toString(info.getUrls()));
+ }
+ table.print(System.out);
+ return null;
+ }
}
Copied: karaf/trunk/http/command/src/main/resources/OSGI-INF/blueprint/blueprint.xml (from r1308788, karaf/trunk/shell/http/src/main/resources/OSGI-INF/blueprint/shell-http.xml)
URL: http://svn.apache.org/viewvc/karaf/trunk/http/command/src/main/resources/OSGI-INF/blueprint/blueprint.xml?p2=karaf/trunk/http/command/src/main/resources/OSGI-INF/blueprint/blueprint.xml&p1=karaf/trunk/shell/http/src/main/resources/OSGI-INF/blueprint/shell-http.xml&r1=1308788&r2=1308973&rev=1308973&view=diff
==============================================================================
--- karaf/trunk/shell/http/src/main/resources/OSGI-INF/blueprint/shell-http.xml (original)
+++ karaf/trunk/http/command/src/main/resources/OSGI-INF/blueprint/blueprint.xml Tue Apr 3 15:11:05 2012
@@ -19,16 +19,12 @@
-->
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" default-activation="lazy">
- <bean id="eaHandler" class="org.apache.karaf.shell.http.ServletEventHandler" />
-
- <service id="servletListener"
- interface="org.ops4j.pax.web.service.spi.ServletListener"
- ref="eaHandler" />
+ <reference id="servletService" interface="org.apache.karaf.http.core.ServletService" />
<command-bundle xmlns="http://karaf.apache.org/xmlns/shell/v1.1.0">
<command>
- <action class="org.apache.karaf.shell.http.ServletListCommand">
- <property name="eventHandler" ref="eaHandler" />
+ <action class="org.apache.karaf.http.command.ServletListCommand">
+ <argument ref="servletService" />
</action>
</command>
</command-bundle>
Modified: karaf/trunk/http/core/pom.xml
URL: http://svn.apache.org/viewvc/karaf/trunk/http/core/pom.xml?rev=1308973&r1=1308788&r2=1308973&view=diff
==============================================================================
--- karaf/trunk/http/core/pom.xml (original)
+++ karaf/trunk/http/core/pom.xml Tue Apr 3 15:11:05 2012
@@ -22,16 +22,16 @@
<modelVersion>4.0.0</modelVersion>
<parent>
- <groupId>org.apache.karaf.management.mbeans</groupId>
- <artifactId>mbeans</artifactId>
+ <groupId>org.apache.karaf.http</groupId>
+ <artifactId>http</artifactId>
<version>3.0.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
- <artifactId>org.apache.karaf.management.mbeans.http</artifactId>
+ <artifactId>org.apache.karaf.http.core</artifactId>
<packaging>bundle</packaging>
- <name>Apache Karaf :: Management :: MBeans :: HTTP</name>
- <description>This bundle provides a JMX MBean to get information about the HTTP servlets.</description>
+ <name>Apache Karaf :: HTTP :: Core</name>
+ <description>This bundle provides HTTP core services</description>
<properties>
<appendedResourcesDirectory>${basedir}/../../../etc/appended-resources/</appendedResourcesDirectory>
@@ -78,21 +78,10 @@
<configuration>
<instructions>
<Export-Package>
- org.apache.karaf.management.mbeans.http;version=${project.version}
+ org.apache.karaf.http.core
</Export-Package>
- <Import-Package>
- !org.apache.karaf.management.mbeans.http,
- javax.management,
- javax.management.loading,
- org.apache.aries.blueprint,
- org.osgi.service.blueprint.container,
- org.osgi.service.blueprint.reflect,
- org.apache.karaf.management;version=${project.version},
- *
- </Import-Package>
<Private-Package>
- org.apache.karaf.management.mbeans.http.internal,
- !*
+ org.apache.karaf.http.core.internal
</Private-Package>
</instructions>
</configuration>
Modified: karaf/trunk/http/core/src/main/java/org/apache/karaf/http/core/HttpMBean.java
URL: http://svn.apache.org/viewvc/karaf/trunk/http/core/src/main/java/org/apache/karaf/http/core/HttpMBean.java?rev=1308973&r1=1308788&r2=1308973&view=diff
==============================================================================
--- karaf/trunk/http/core/src/main/java/org/apache/karaf/http/core/HttpMBean.java (original)
+++ karaf/trunk/http/core/src/main/java/org/apache/karaf/http/core/HttpMBean.java Tue Apr 3 15:11:05 2012
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.karaf.management.mbeans.http;
+package org.apache.karaf.http.core;
import javax.management.openmbean.TabularData;
@@ -29,6 +29,6 @@ public interface HttpMBean {
* @return a tabular view of the servlets information.
* @throws Exception
*/
- TabularData getServlets() throws Exception;
+ TabularData getServlets();
}
Added: karaf/trunk/http/core/src/main/java/org/apache/karaf/http/core/ServletInfo.java
URL: http://svn.apache.org/viewvc/karaf/trunk/http/core/src/main/java/org/apache/karaf/http/core/ServletInfo.java?rev=1308973&view=auto
==============================================================================
--- karaf/trunk/http/core/src/main/java/org/apache/karaf/http/core/ServletInfo.java (added)
+++ karaf/trunk/http/core/src/main/java/org/apache/karaf/http/core/ServletInfo.java Tue Apr 3 15:11:05 2012
@@ -0,0 +1,69 @@
+package org.apache.karaf.http.core;
+
+import org.ops4j.pax.web.service.spi.WebEvent;
+import org.osgi.framework.Bundle;
+
+public class ServletInfo {
+ private String name;
+ private Bundle bundle;
+ private String className;
+ private String alias;
+ private int state;
+ private String[] urls;
+
+ public String getName() {
+ return name;
+ }
+ public void setName(String name) {
+ this.name = name;
+ }
+ public Bundle getBundle() {
+ return bundle;
+ }
+ public void setBundle(Bundle bundle) {
+ this.bundle = bundle;
+ }
+ public String getClassName() {
+ return className;
+ }
+ public void setClassName(String className) {
+ this.className = className;
+ }
+ public int getState() {
+ return state;
+ }
+ public void setState(int state) {
+ this.state = state;
+ }
+ public String getAlias() {
+ return alias;
+ }
+ public void setAlias(String alias) {
+ this.alias = alias;
+ }
+ public String[] getUrls() {
+ return urls;
+ }
+ public void setUrls(String[] urls) {
+ this.urls = urls;
+ }
+
+ public String getStateString() {
+ switch (state) {
+ case WebEvent.DEPLOYING:
+ return "Deploying ";
+ case WebEvent.DEPLOYED:
+ return "Deployed ";
+ case WebEvent.UNDEPLOYING:
+ return "Undeploying";
+ case WebEvent.UNDEPLOYED:
+ return "Undeployed ";
+ case WebEvent.FAILED:
+ return "Failed ";
+ case WebEvent.WAITING:
+ return "Waiting ";
+ default:
+ return "Failed ";
+ }
+ }
+}
Added: karaf/trunk/http/core/src/main/java/org/apache/karaf/http/core/ServletService.java
URL: http://svn.apache.org/viewvc/karaf/trunk/http/core/src/main/java/org/apache/karaf/http/core/ServletService.java?rev=1308973&view=auto
==============================================================================
--- karaf/trunk/http/core/src/main/java/org/apache/karaf/http/core/ServletService.java (added)
+++ karaf/trunk/http/core/src/main/java/org/apache/karaf/http/core/ServletService.java Tue Apr 3 15:11:05 2012
@@ -0,0 +1,7 @@
+package org.apache.karaf.http.core;
+
+import java.util.List;
+
+public interface ServletService {
+ List<ServletInfo> getServlets();
+}
Copied: karaf/trunk/http/core/src/main/java/org/apache/karaf/http/core/internal/Http.java (from r1308788, karaf/trunk/management/mbeans/http/src/main/java/org/apache/karaf/management/mbeans/http/internal/HttpMBeanImpl.java)
URL: http://svn.apache.org/viewvc/karaf/trunk/http/core/src/main/java/org/apache/karaf/http/core/internal/Http.java?p2=karaf/trunk/http/core/src/main/java/org/apache/karaf/http/core/internal/Http.java&p1=karaf/trunk/management/mbeans/http/src/main/java/org/apache/karaf/management/mbeans/http/internal/HttpMBeanImpl.java&r1=1308788&r2=1308973&rev=1308973&view=diff
==============================================================================
--- karaf/trunk/management/mbeans/http/src/main/java/org/apache/karaf/management/mbeans/http/internal/HttpMBeanImpl.java (original)
+++ karaf/trunk/http/core/src/main/java/org/apache/karaf/http/core/internal/Http.java Tue Apr 3 15:11:05 2012
@@ -14,92 +14,58 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.karaf.management.mbeans.http.internal;
+package org.apache.karaf.http.core.internal;
-import org.apache.karaf.management.mbeans.http.HttpMBean;
-import org.ops4j.pax.web.service.spi.ServletEvent;
-import org.ops4j.pax.web.service.spi.WebEvent;
+import java.util.Arrays;
+import java.util.List;
import javax.management.NotCompliantMBeanException;
import javax.management.StandardMBean;
-import javax.management.openmbean.*;
-import javax.servlet.Servlet;
-import java.util.Arrays;
-import java.util.Collection;
+import javax.management.openmbean.CompositeData;
+import javax.management.openmbean.CompositeDataSupport;
+import javax.management.openmbean.CompositeType;
+import javax.management.openmbean.OpenType;
+import javax.management.openmbean.SimpleType;
+import javax.management.openmbean.TabularData;
+import javax.management.openmbean.TabularDataSupport;
+import javax.management.openmbean.TabularType;
+
+import org.apache.karaf.http.core.HttpMBean;
+import org.apache.karaf.http.core.ServletInfo;
+import org.apache.karaf.http.core.ServletService;
/**
* Implementation of the HTTP MBean.
*/
-public class HttpMBeanImpl extends StandardMBean implements HttpMBean {
+public class Http extends StandardMBean implements HttpMBean {
+ private ServletService servletService;
- private ServletEventHandler servletEventHandler;
-
- public HttpMBeanImpl() throws NotCompliantMBeanException {
+ public Http(ServletService servletService) throws NotCompliantMBeanException {
super(HttpMBean.class);
+ this.servletService = servletService;
}
- public TabularData getServlets() throws Exception {
- Collection<ServletEvent> events = servletEventHandler.getServletEvents();
- CompositeType servletType = new CompositeType("Servlet", "HTTP Servlet",
+ public TabularData getServlets() {
+ try {
+ CompositeType servletType = new CompositeType("Servlet", "HTTP Servlet",
new String[]{"ID", "Servlet", "Servlet Name", "State", "Alias", "URL"},
new String[]{"ID of the servlet", "Class name of the servlet", "Servlet Name", "Current state of the servlet", "Aliases of the servlet", "URL of the servlet"},
- new OpenType[]{SimpleType.STRING, SimpleType.STRING, SimpleType.STRING, SimpleType.STRING, SimpleType.STRING, SimpleType.STRING});
- TabularType tableType = new TabularType("Servlets", "Table of all HTTP servlets", servletType, new String[]{"ID"});
- TabularData table = new TabularDataSupport(tableType);
-
- for (ServletEvent event : events) {
- try {
- Servlet servlet = event.getServlet();
- String servletClassName = " ";
- if (servlet != null) {
- servletClassName = servlet.getClass().getName();
- servletClassName = servletClassName.substring(servletClassName.lastIndexOf(".") + 1, servletClassName.length());
- }
- String servletName = event.getServletName() != null ? event.getServletName() : " ";
- if (servletName.contains(".")) {
- servletName = servletName.substring(servletName.lastIndexOf(".") + 1, servletName.length());
- }
-
- String alias = event.getAlias() != null ? event.getAlias() : " ";
-
- String[] urls = (String[]) (event.getUrlParameter() != null ? event.getUrlParameter() : new String[]{""});
-
+ new OpenType[]{SimpleType.LONG, SimpleType.STRING, SimpleType.STRING, SimpleType.STRING, SimpleType.STRING, SimpleType.STRING});
+ TabularType tableType = new TabularType("Servlets", "Table of all HTTP servlets", servletType, new String[]{"ID"});
+ TabularData table = new TabularDataSupport(tableType);
+ List<ServletInfo> servletInfos = servletService.getServlets();
+ for (ServletInfo info : servletInfos) {
+
CompositeData data = new CompositeDataSupport(servletType,
new String[]{"ID", "Servlet", "Servlet Name", "State", "Alias", "URL"},
- new Object[]{event.getBundle().getBundleId(), servletClassName, servletName, getStateString(event.getType()), alias, Arrays.toString(urls)});
+ new Object[]{info.getBundle().getBundleId(), info.getClassName(), info.getName(), info.getStateString(), info.getAlias(), Arrays.toString(info.getUrls())});
table.put(data);
- } catch (Exception e) {
- e.printStackTrace();
+
}
+ return table;
+ } catch (Exception e) {
+ throw new RuntimeException(e.getMessage(), e);
}
- return table;
- }
-
- private String getStateString(int type) {
- switch (type) {
- case WebEvent.DEPLOYING:
- return "Deploying ";
- case WebEvent.DEPLOYED:
- return "Deployed ";
- case WebEvent.UNDEPLOYING:
- return "Undeploying";
- case WebEvent.UNDEPLOYED:
- return "Undeployed ";
- case WebEvent.FAILED:
- return "Failed ";
- case WebEvent.WAITING:
- return "Waiting ";
- default:
- return "Failed ";
- }
- }
-
- public ServletEventHandler getServletEventHandler() {
- return this.servletEventHandler;
- }
-
- public void setServletEventHandler(ServletEventHandler servletEventHandler) {
- this.servletEventHandler = servletEventHandler;
}
}
Modified: karaf/trunk/http/core/src/main/java/org/apache/karaf/http/core/internal/ServletEventHandler.java
URL: http://svn.apache.org/viewvc/karaf/trunk/http/core/src/main/java/org/apache/karaf/http/core/internal/ServletEventHandler.java?rev=1308973&r1=1308788&r2=1308973&view=diff
==============================================================================
--- karaf/trunk/http/core/src/main/java/org/apache/karaf/http/core/internal/ServletEventHandler.java (original)
+++ karaf/trunk/http/core/src/main/java/org/apache/karaf/http/core/internal/ServletEventHandler.java Tue Apr 3 15:11:05 2012
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.karaf.management.mbeans.http.internal;
+package org.apache.karaf.http.core.internal;
import java.util.Collection;
import java.util.HashMap;
Added: karaf/trunk/http/core/src/main/java/org/apache/karaf/http/core/internal/ServletServiceImpl.java
URL: http://svn.apache.org/viewvc/karaf/trunk/http/core/src/main/java/org/apache/karaf/http/core/internal/ServletServiceImpl.java?rev=1308973&view=auto
==============================================================================
--- karaf/trunk/http/core/src/main/java/org/apache/karaf/http/core/internal/ServletServiceImpl.java (added)
+++ karaf/trunk/http/core/src/main/java/org/apache/karaf/http/core/internal/ServletServiceImpl.java Tue Apr 3 15:11:05 2012
@@ -0,0 +1,52 @@
+package org.apache.karaf.http.core.internal;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import javax.servlet.Servlet;
+
+import org.apache.karaf.http.core.ServletInfo;
+import org.apache.karaf.http.core.ServletService;
+import org.ops4j.pax.web.service.spi.ServletEvent;
+
+public class ServletServiceImpl implements ServletService {
+ private ServletEventHandler servletEventHandler;
+
+ public ServletServiceImpl(ServletEventHandler servletEventHandler) {
+ this.servletEventHandler = servletEventHandler;
+ }
+
+ @Override
+ public List<ServletInfo> getServlets() {
+ List<ServletInfo> servletInfos = new ArrayList<ServletInfo>();
+ Collection<ServletEvent> events = servletEventHandler.getServletEvents();
+ for (ServletEvent event : events) {
+ Servlet servlet = event.getServlet();
+ String servletClassName = " ";
+ if (servlet != null) {
+ servletClassName = servlet.getClass().getName();
+ servletClassName = servletClassName.substring(servletClassName.lastIndexOf(".") + 1,
+ servletClassName.length());
+ }
+ String servletName = event.getServletName() != null ? event.getServletName() : " ";
+ if (servletName.contains(".")) {
+ servletName = servletName.substring(servletName.lastIndexOf(".") + 1, servletName.length());
+ }
+
+ String alias = event.getAlias() != null ? event.getAlias() : " ";
+
+ String[] urls = (String[])(event.getUrlParameter() != null ? event.getUrlParameter() : new String[] {""});
+ ServletInfo info = new ServletInfo();
+ info.setBundle(event.getBundle());
+ info.setName(servletName);
+ info.setClassName(servletClassName);
+ info.setState(event.getType());
+ info.setAlias(alias);
+ info.setUrls(urls);
+ servletInfos.add(info);
+ }
+ return servletInfos;
+ }
+
+}
Copied: karaf/trunk/http/core/src/main/resources/OSGI-INF/blueprint/blueprint.xml (from r1308788, karaf/trunk/management/mbeans/http/src/main/resources/OSGI-INF/blueprint/http-management.xml)
URL: http://svn.apache.org/viewvc/karaf/trunk/http/core/src/main/resources/OSGI-INF/blueprint/blueprint.xml?p2=karaf/trunk/http/core/src/main/resources/OSGI-INF/blueprint/blueprint.xml&p1=karaf/trunk/management/mbeans/http/src/main/resources/OSGI-INF/blueprint/http-management.xml&r1=1308788&r2=1308973&rev=1308973&view=diff
==============================================================================
--- karaf/trunk/management/mbeans/http/src/main/resources/OSGI-INF/blueprint/http-management.xml (original)
+++ karaf/trunk/http/core/src/main/resources/OSGI-INF/blueprint/blueprint.xml Tue Apr 3 15:11:05 2012
@@ -12,31 +12,29 @@
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">
+<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
+ xmlns:ext="http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.0.0">
- <!-- Servlet Event Handler -->
- <bean id="servletEventHandler" class="org.apache.karaf.management.mbeans.http.internal.ServletEventHandler"/>
+ <ext:property-placeholder/>
- <!-- Servlet Listener service -->
- <service id="servletListener" interface="org.ops4j.pax.web.service.spi.ServletListener" ref="servletEventHandler"/>
-
- <!-- Reference to the MBean server -->
- <reference id="mbeanServer" interface="javax.management.MBeanServer">
- <reference-listener ref="mbeanRegistrer" bind-method="registerMBeanServer" unbind-method="unregisterMBeanServer"/>
- </reference>
+ <bean id="servletEventHandler" class="org.apache.karaf.http.core.internal.ServletEventHandler"/>
- <!-- HTTP MBean -->
- <bean id="httpMBean" class="org.apache.karaf.management.mbeans.http.internal.HttpMBeanImpl">
- <property name="servletEventHandler" ref="servletEventHandler"/>
+ <service id="servletListener" interface="org.ops4j.pax.web.service.spi.ServletListener" ref="servletEventHandler"/>
+
+ <bean id="servletService" class="org.apache.karaf.http.core.internal.ServletServiceImpl">
+ <argument ref="servletEventHandler"/>
</bean>
+
+ <service interface="org.apache.karaf.http.core.ServletService" ref="servletService"/>
- <!-- Register Dev MBean in the MBean Server -->
- <bean id="mbeanRegistrer" class="org.apache.karaf.management.MBeanRegistrer">
- <property name="mbeans">
- <map>
- <entry value="org.apache.karaf:type=http,name=${karaf.name}" key-ref="httpMBean"/>
- </map>
- </property>
+ <bean id="httpMBean" class="org.apache.karaf.http.core.internal.Http">
+ <argument ref="servletService"/>
</bean>
+
+ <service ref="httpMBean" auto-export="interfaces">
+ <service-properties>
+ <entry key="jmx.objectname" value="org.apache.karaf:type=http,name=${karaf.name}"/>
+ </service-properties>
+ </service>
</blueprint>
\ No newline at end of file
Added: karaf/trunk/http/core/src/test/java/org/apache/karaf/http/core/internal/HttpTest.java
URL: http://svn.apache.org/viewvc/karaf/trunk/http/core/src/test/java/org/apache/karaf/http/core/internal/HttpTest.java?rev=1308973&view=auto
==============================================================================
--- karaf/trunk/http/core/src/test/java/org/apache/karaf/http/core/internal/HttpTest.java (added)
+++ karaf/trunk/http/core/src/test/java/org/apache/karaf/http/core/internal/HttpTest.java Tue Apr 3 15:11:05 2012
@@ -0,0 +1,21 @@
+package org.apache.karaf.http.core.internal;
+
+import java.lang.management.ManagementFactory;
+
+import javax.management.MBeanServer;
+import javax.management.ObjectName;
+import javax.management.openmbean.TabularData;
+
+import org.junit.Test;
+
+public class HttpTest {
+
+ @Test
+ public void testRegisterMBean() throws Exception {
+ Http httpMBean = new Http(new ServletServiceImpl(new ServletEventHandler()));
+ MBeanServer mbeanServer = ManagementFactory.getPlatformMBeanServer();
+ mbeanServer.registerMBean(httpMBean, new ObjectName("org.apache.karaf:type=http,name=root"));
+
+ TabularData data = httpMBean.getServlets();
+ }
+}
Added: karaf/trunk/http/pom.xml
URL: http://svn.apache.org/viewvc/karaf/trunk/http/pom.xml?rev=1308973&view=auto
==============================================================================
--- karaf/trunk/http/pom.xml (added)
+++ karaf/trunk/http/pom.xml Tue Apr 3 15:11:05 2012
@@ -0,0 +1,41 @@
+<?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</groupId>
+ <artifactId>karaf</artifactId>
+ <version>3.0.0-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <groupId>org.apache.karaf.http</groupId>
+ <artifactId>http</artifactId>
+ <packaging>pom</packaging>
+ <name>Apache Karaf :: HTTP</name>
+
+ <modules>
+ <module>core</module>
+ <module>command</module>
+ </modules>
+
+</project>
Modified: karaf/trunk/management/mbeans/pom.xml
URL: http://svn.apache.org/viewvc/karaf/trunk/management/mbeans/pom.xml?rev=1308973&r1=1308972&r2=1308973&view=diff
==============================================================================
--- karaf/trunk/management/mbeans/pom.xml (original)
+++ karaf/trunk/management/mbeans/pom.xml Tue Apr 3 15:11:05 2012
@@ -36,7 +36,6 @@
<modules>
<module>services</module>
<module>dev</module>
- <module>http</module>
<module>log</module>
<module>obr</module>
</modules>
Modified: karaf/trunk/pom.xml
URL: http://svn.apache.org/viewvc/karaf/trunk/pom.xml?rev=1308973&r1=1308972&r2=1308973&view=diff
==============================================================================
--- karaf/trunk/pom.xml (original)
+++ karaf/trunk/pom.xml Tue Apr 3 15:11:05 2012
@@ -44,6 +44,7 @@
<module>config</module>
<module>instance</module>
<module>package</module>
+ <module>http</module>
<module>deployer</module>
<module>shell</module>
<module>jaas</module>
@@ -165,7 +166,7 @@
<aries.blueprint.core.compatibility.version>0.4.1-SNAPSHOT</aries.blueprint.core.compatibility.version>
<aries.blueprint.core.version>0.4.1-SNAPSHOT</aries.blueprint.core.version>
<aries.blueprint.jexl.evaluator.version>0.1.1-SNAPSHOT</aries.blueprint.jexl.evaluator.version>
- <aries.jmx.version>0.3</aries.jmx.version>
+ <aries.jmx.version>0.3.1-SNAPSHOT</aries.jmx.version>
<aries.jpa.version>0.3</aries.jpa.version>
<aries.jndi.api.version>0.3</aries.jndi.api.version>
<aries.jndi.version>0.3.2-SNAPSHOT</aries.jndi.version>
@@ -366,6 +367,17 @@
</dependency>
<dependency>
+ <groupId>org.apache.karaf.http</groupId>
+ <artifactId>org.apache.karaf.http.core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.karaf.http</groupId>
+ <artifactId>org.apache.karaf.http.command</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
<groupId>org.apache.karaf.config</groupId>
<artifactId>org.apache.karaf.config.core</artifactId>
<version>${project.version}</version>
@@ -430,11 +442,6 @@
</dependency>
<dependency>
<groupId>org.apache.karaf.management.mbeans</groupId>
- <artifactId>org.apache.karaf.management.mbeans.http</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.karaf.management.mbeans</groupId>
<artifactId>org.apache.karaf.management.mbeans.log</artifactId>
<version>${project.version}</version>
</dependency>
Modified: karaf/trunk/shell/pom.xml
URL: http://svn.apache.org/viewvc/karaf/trunk/shell/pom.xml?rev=1308973&r1=1308972&r2=1308973&view=diff
==============================================================================
--- karaf/trunk/shell/pom.xml (original)
+++ karaf/trunk/shell/pom.xml Tue Apr 3 15:11:05 2012
@@ -37,7 +37,6 @@
<module>commands</module>
<module>console</module>
<module>dev</module>
- <module>http</module>
<module>log</module>
<module>obr</module>
<module>services</module>