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>&nbsp;
+            <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>