You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by gn...@apache.org on 2006/01/19 05:54:25 UTC
svn commit: r370372 - in /incubator/servicemix/trunk/servicemix-console/src:
main/java/org/apache/servicemix/console/ webapp/WEB-INF/
webapp/WEB-INF/data/ webapp/WEB-INF/view/JBIComponents/
Author: gnodet
Date: Wed Jan 18 20:54:23 2006
New Revision: 370372
URL: http://svn.apache.org/viewcvs?rev=370372&view=rev
Log:
Add simple jbi components management portlet
Added:
incubator/servicemix/trunk/servicemix-console/src/main/java/org/apache/servicemix/console/JBIComponentsPortlet.java
incubator/servicemix/trunk/servicemix-console/src/webapp/WEB-INF/view/JBIComponents/
incubator/servicemix/trunk/servicemix-console/src/webapp/WEB-INF/view/JBIComponents/help.jsp
incubator/servicemix/trunk/servicemix-console/src/webapp/WEB-INF/view/JBIComponents/view.jsp
Modified:
incubator/servicemix/trunk/servicemix-console/src/webapp/WEB-INF/data/pageregistry.xml
incubator/servicemix/trunk/servicemix-console/src/webapp/WEB-INF/data/portletentityregistry.xml
incubator/servicemix/trunk/servicemix-console/src/webapp/WEB-INF/portlet.xml
incubator/servicemix/trunk/servicemix-console/src/webapp/WEB-INF/web.xml
Added: incubator/servicemix/trunk/servicemix-console/src/main/java/org/apache/servicemix/console/JBIComponentsPortlet.java
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-console/src/main/java/org/apache/servicemix/console/JBIComponentsPortlet.java?rev=370372&view=auto
==============================================================================
--- incubator/servicemix/trunk/servicemix-console/src/main/java/org/apache/servicemix/console/JBIComponentsPortlet.java (added)
+++ incubator/servicemix/trunk/servicemix-console/src/main/java/org/apache/servicemix/console/JBIComponentsPortlet.java Wed Jan 18 20:54:23 2006
@@ -0,0 +1,94 @@
+package org.apache.servicemix.console;
+
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.List;
+import java.util.SortedMap;
+import java.util.TreeMap;
+
+import javax.jbi.management.LifeCycleMBean;
+import javax.management.ObjectName;
+import javax.portlet.ActionRequest;
+import javax.portlet.ActionResponse;
+import javax.portlet.RenderRequest;
+
+import org.apache.servicemix.jbi.management.ManagementContextMBean;
+
+public class JBIComponentsPortlet extends ServiceMixPortlet {
+
+ public static class ComponentInfo {
+ private String name;
+ private String type;
+ private String state;
+
+ public String getType() {
+ return type;
+ }
+ public void setType(String type) {
+ this.type = type;
+ }
+ public String getName() {
+ return name;
+ }
+ public void setName(String name) {
+ this.name = name;
+ }
+ public String getState() {
+ return state;
+ }
+ public void setState(String state) {
+ this.state = state;
+ }
+ }
+
+ protected void fillViewRequest(RenderRequest request) throws Exception {
+ LifeCycleMBean container = getJBIContainer();
+ ManagementContextMBean management = getManagementContext();
+ SortedMap components = new TreeMap();
+ ObjectName[] bcs = management.getBindingComponents();
+ for (int i = 0; i < bcs.length; i++) {
+ ComponentInfo info = new ComponentInfo();
+ info.name = getAttribute(bcs[i], "name");
+ info.type = "Binding Component";
+ info.state = getAttribute(bcs[i], "currentState");
+ components.put(info.name, info);
+ }
+ ObjectName[] ses = management.getEngineComponents();
+ for (int i = 0; i < ses.length; i++) {
+ ComponentInfo info = new ComponentInfo();
+ info.name = getAttribute(ses[i], "name");
+ info.type = "Service Engine";
+ info.state = getAttribute(ses[i], "currentState");
+ if (components.containsKey(info.name)) {
+ ((ComponentInfo) components.get(info.name)).type = "Unknown";
+ } else {
+ components.put(info.name, info);
+ }
+ }
+ List infos = new ArrayList(components.values());
+ request.setAttribute("components", infos);
+ }
+
+ protected String getAttribute(ObjectName name, String attribute) {
+ try {
+ return (String) getServerConnection().getAttribute(name, attribute);
+ } catch (Exception e) {
+ log.error("Could not retrieve attribute '" + attribute + "' for mbean '" + name + "'");
+ return null;
+ }
+ }
+
+ protected void doProcessAction(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception {
+ String action = actionRequest.getParameter("action");
+ String name = actionRequest.getParameter("name");
+ System.err.println("doProcessAction: " + action + " for " + name);
+ ManagementContextMBean management = getManagementContext();
+ if ("stop".equals(action)) {
+ management.stopComponent(name);
+ } else if ("start".equals(action)) {
+ management.startComponent(name);
+ } else if ("shutdown".equals(action)) {
+ management.shutDownComponent(name);
+ }
+ }
+}
Modified: incubator/servicemix/trunk/servicemix-console/src/webapp/WEB-INF/data/pageregistry.xml
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-console/src/webapp/WEB-INF/data/pageregistry.xml?rev=370372&r1=370371&r2=370372&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-console/src/webapp/WEB-INF/data/pageregistry.xml (original)
+++ incubator/servicemix/trunk/servicemix-console/src/webapp/WEB-INF/data/pageregistry.xml Wed Jan 18 20:54:23 2006
@@ -24,6 +24,9 @@
<fragment name="p2" type="portlet">
<property name="portlet" value="1.2"/>
</fragment>
+ <fragment name="p3" type="portlet">
+ <property name="portlet" value="1.3"/>
+ </fragment>
</fragment>
</fragment>
</fragment>
Modified: incubator/servicemix/trunk/servicemix-console/src/webapp/WEB-INF/data/portletentityregistry.xml
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-console/src/webapp/WEB-INF/data/portletentityregistry.xml?rev=370372&r1=370371&r2=370372&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-console/src/webapp/WEB-INF/data/portletentityregistry.xml (original)
+++ incubator/servicemix/trunk/servicemix-console/src/webapp/WEB-INF/data/portletentityregistry.xml Wed Jan 18 20:54:23 2006
@@ -8,5 +8,8 @@
<portlet id="2">
<definition-id>servicemix-console.JBIAudit</definition-id>
</portlet>
+ <portlet id="3">
+ <definition-id>servicemix-console.JBIComponents</definition-id>
+ </portlet>
</application>
</portlet-entity-registry>
Modified: incubator/servicemix/trunk/servicemix-console/src/webapp/WEB-INF/portlet.xml
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-console/src/webapp/WEB-INF/portlet.xml?rev=370372&r1=370371&r2=370372&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-console/src/webapp/WEB-INF/portlet.xml (original)
+++ incubator/servicemix/trunk/servicemix-console/src/webapp/WEB-INF/portlet.xml Wed Jan 18 20:54:23 2006
@@ -51,4 +51,27 @@
<keywords>JBI, Audit</keywords>
</portlet-info>
</portlet>
+ <portlet>
+ <description>ServiceMix components management.</description>
+ <portlet-name>JBIComponents</portlet-name>
+ <display-name>JBI Components Portlet</display-name>
+
+ <portlet-class>org.apache.servicemix.console.JBIComponentsPortlet</portlet-class>
+
+ <expiration-cache>-1</expiration-cache>
+
+ <supports>
+ <mime-type>text/html</mime-type>
+ <portlet-mode>VIEW</portlet-mode>
+ <portlet-mode>HELP</portlet-mode>
+ </supports>
+
+ <supported-locale>en</supported-locale>
+
+ <portlet-info>
+ <title>JBI Components</title>
+ <short-title>JBI Components</short-title>
+ <keywords>JBI, Components</keywords>
+ </portlet-info>
+ </portlet>
</portlet-app>
Added: incubator/servicemix/trunk/servicemix-console/src/webapp/WEB-INF/view/JBIComponents/help.jsp
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-console/src/webapp/WEB-INF/view/JBIComponents/help.jsp?rev=370372&view=auto
==============================================================================
--- incubator/servicemix/trunk/servicemix-console/src/webapp/WEB-INF/view/JBIComponents/help.jsp (added)
+++ incubator/servicemix/trunk/servicemix-console/src/webapp/WEB-INF/view/JBIComponents/help.jsp Wed Jan 18 20:54:23 2006
@@ -0,0 +1 @@
+<p>This portlet allows the user to view the jbi components state.
\ No newline at end of file
Added: incubator/servicemix/trunk/servicemix-console/src/webapp/WEB-INF/view/JBIComponents/view.jsp
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-console/src/webapp/WEB-INF/view/JBIComponents/view.jsp?rev=370372&view=auto
==============================================================================
--- incubator/servicemix/trunk/servicemix-console/src/webapp/WEB-INF/view/JBIComponents/view.jsp (added)
+++ incubator/servicemix/trunk/servicemix-console/src/webapp/WEB-INF/view/JBIComponents/view.jsp Wed Jan 18 20:54:23 2006
@@ -0,0 +1,40 @@
+<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
+<%@ taglib uri="http://java.sun.com/portlet" prefix="portlet"%>
+<portlet:defineObjects/>
+<table width="100%">
+ <tr>
+ <td>
+ <a href="<portlet:renderURL><portlet:param name="action" value="refresh"/></portlet:renderURL>">Refresh</a>
+ </td>
+ </tr>
+ <tr>
+ <td class="DarkBackground" width="100%" colspan="4" align="center">Components</td>
+ </tr>
+ <tr>
+ <th>Name</th>
+ <th>Type</th>
+ <th>State</th>
+ <th>Action</th>
+ </tr>
+ <c:forEach var="component" items="${components}">
+ <tr>
+ <td>${component.name}</td>
+ <td>${component.type}</td>
+ <td>${component.state}</td>
+ <td>
+ <c:choose>
+ <c:when test="${component.state == 'Shutdown'}">
+ <a href="<portlet:actionURL><portlet:param name="action" value="start"/><portlet:param name="name" value="${component.name}"/></portlet:actionURL>">start</a>
+ </c:when>
+ <c:when test="${component.state == 'Stopped'}">
+ <a href="<portlet:actionURL><portlet:param name="action" value="shutdown"/><portlet:param name="name" value="${component.name}"/></portlet:actionURL>">shutdown</a>
+ <a href="<portlet:actionURL><portlet:param name="action" value="start"/><portlet:param name="name" value="${component.name}"/></portlet:actionURL>">start</a>
+ </c:when>
+ <c:when test="${component.state == 'Running'}">
+ <a href="<portlet:actionURL><portlet:param name="action" value="stop"/><portlet:param name="name" value="${component.name}"/></portlet:actionURL>">stop</a>
+ </c:when>
+ </c:choose>
+ </td>
+ </tr>
+ </c:forEach>
+</table>
Modified: incubator/servicemix/trunk/servicemix-console/src/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-console/src/webapp/WEB-INF/web.xml?rev=370372&r1=370371&r2=370372&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-console/src/webapp/WEB-INF/web.xml (original)
+++ incubator/servicemix/trunk/servicemix-console/src/webapp/WEB-INF/web.xml Wed Jan 18 20:54:23 2006
@@ -13,7 +13,7 @@
</servlet>
<servlet>
- <description>Auto Generated Portlet Invoker Servlet</description>
+ <description>Portlet Invoker Servlet</description>
<display-name>JBIContainer Portlet</display-name>
<servlet-name>JBIContainer</servlet-name>
<servlet-class>org.apache.pluto.core.PortletServlet</servlet-class>
@@ -27,7 +27,7 @@
</init-param>
</servlet>
<servlet>
- <description>Auto Generated Portlet Invoker Servlet</description>
+ <description>Portlet Invoker Servlet</description>
<display-name>JBIAudit Portlet</display-name>
<servlet-name>JBIAudit</servlet-name>
<servlet-class>org.apache.pluto.core.PortletServlet</servlet-class>
@@ -40,6 +40,20 @@
<param-value>servicemix-console.JBIAudit</param-value>
</init-param>
</servlet>
+ <servlet>
+ <description>Portlet Invoker Servlet</description>
+ <display-name>JBIComponents Portlet</display-name>
+ <servlet-name>JBIComponents</servlet-name>
+ <servlet-class>org.apache.pluto.core.PortletServlet</servlet-class>
+ <init-param>
+ <param-name>portlet-class</param-name>
+ <param-value>org.apache.servicemix.console.JBIComponentsPortlet</param-value>
+ </init-param>
+ <init-param>
+ <param-name>portlet-guid</param-name>
+ <param-value>servicemix-console.JBIComponents</param-value>
+ </init-param>
+ </servlet>
<servlet-mapping>
<servlet-name>se-console</servlet-name>
@@ -53,6 +67,10 @@
<servlet-mapping>
<servlet-name>JBIAudit</servlet-name>
<url-pattern>/JBIAudit/*</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>JBIComponents</servlet-name>
+ <url-pattern>/JBIComponents/*</url-pattern>
</servlet-mapping>
<jsp-config>