ListRemoteDestinationsAction.java

00001 
00022 package org.objectweb.jonas.webapp.jonasadmin.joramplatform;
00023 
00024 import java.io.IOException;
00025 import java.util.ArrayList;
00026 import java.util.Vector;
00027 
00028 import javax.management.ObjectName;
00029 import javax.servlet.ServletException;
00030 import javax.servlet.http.HttpServletRequest;
00031 import javax.servlet.http.HttpServletResponse;
00032 
00033 import org.apache.struts.action.ActionForm;
00034 import org.apache.struts.action.ActionForward;
00035 import org.apache.struts.action.ActionMapping;
00036 
00037 import org.objectweb.jonas.jmx.JonasManagementRepr;
00038 import org.objectweb.jonas.jmx.JonasObjectName;
00039 import org.objectweb.jonas.webapp.jonasadmin.WhereAreYou;
00040 
00045 public class ListRemoteDestinationsAction extends EditJoramBaseAction {
00046 
00047 // --------------------------------------------------------- Public Methods
00048 
00049     public ActionForward executeAction(ActionMapping pMapping, ActionForm pForm
00050         , HttpServletRequest pRequest, HttpServletResponse pResponse)
00051         throws IOException, ServletException {
00052 
00053         String id = pRequest.getParameter("id");
00054         if (id == null) {
00055             // Try to get from the session
00056             id = (String) m_Session.getAttribute("remoteServerId");
00057         }
00058         
00059         // Force the node selected in tree
00060         m_WhereAreYou.selectNameNode(getTreeBranchName(DEPTH_DOMAIN) + WhereAreYou.NODE_SEPARATOR
00061                 + "joramplatform" + WhereAreYou.NODE_SEPARATOR
00062                 + "joramremoteserver" + id, true);
00063 
00064         try {
00065             // Object name used for JmslocalServer MBean
00066             ObjectName oObjectName = JonasObjectName.joramRemoteServer(id);
00067             String asDestName = null;
00068             ArrayList alQueues = new ArrayList();
00069             // get queues
00070             Vector v = (Vector) JonasManagementRepr.invoke(oObjectName, "retrieveRemoteQueuesNames", null, null);
00071             if (v != null) {
00072                 for (int i = 0; i < v.size(); i++) {
00073                     asDestName = (String) v.get(i);
00074                     boolean deps = false;
00075                     // Chech dependences
00076                     // TO DO
00077                     alQueues.add(new DestinationItem(asDestName, "queue", deps));
00078                 }
00079             }
00080             // get topicss
00081             v = (Vector) JonasManagementRepr.invoke(oObjectName, "retrieveRemoteTopicsNames", null, null);
00082             ArrayList alTopics = new ArrayList();
00083             if (v != null) {
00084                 for (int i = 0; i < v.size(); i++) {
00085                     asDestName = (String) v.get(i);
00086                     boolean deps = false;
00087                     // Chech dependences
00088                     // TO DO
00089                     alTopics.add(new DestinationItem(asDestName, "topic", deps));
00090                 }
00091             }
00092 
00093             // merge alQueues and alTopics in alDestinations
00094             ArrayList alDestinations = new ArrayList(alQueues);
00095             alDestinations.addAll(alTopics);
00096 
00097             pRequest.setAttribute("destinationsList", alDestinations);
00098         } catch (Throwable t) {
00099             return (treatError(t, pMapping, pRequest));
00100         }
00101 
00102         // Forward to the jsp.
00103         return (pMapping.findForward("Joram Remote Destinations"));
00104     }
00105 
00106 }

Generated on Tue Feb 15 15:05:28 2005 for JOnAS by  doxygen 1.3.9.1