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
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
00056 id = (String) m_Session.getAttribute("remoteServerId");
00057 }
00058
00059
00060 m_WhereAreYou.selectNameNode(getTreeBranchName(DEPTH_DOMAIN) + WhereAreYou.NODE_SEPARATOR
00061 + "joramplatform" + WhereAreYou.NODE_SEPARATOR
00062 + "joramremoteserver" + id, true);
00063
00064 try {
00065
00066 ObjectName oObjectName = JonasObjectName.joramRemoteServer(id);
00067 String asDestName = null;
00068 ArrayList alQueues = new ArrayList();
00069
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
00076
00077 alQueues.add(new DestinationItem(asDestName, "queue", deps));
00078 }
00079 }
00080
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
00088
00089 alTopics.add(new DestinationItem(asDestName, "topic", deps));
00090 }
00091 }
00092
00093
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
00103 return (pMapping.findForward("Joram Remote Destinations"));
00104 }
00105
00106 }