JonasTreeBuilder.java

00001 
00026 package org.objectweb.jonas.webapp.jonasadmin;
00027 
00028 import java.net.URLEncoder;
00029 import java.util.ArrayList;
00030 import java.util.Collections;
00031 import java.util.HashMap;
00032 import java.util.Iterator;
00033 import java.util.List;
00034 
00035 import javax.management.ObjectName;
00036 import javax.servlet.http.HttpServletRequest;
00037 
00038 import org.apache.struts.Globals;
00039 import org.apache.struts.action.ActionServlet;
00040 import org.apache.struts.util.MessageResources;
00041 import org.objectweb.jonas.jmx.J2eeObjectName;
00042 import org.objectweb.jonas.jmx.JonasManagementRepr;
00043 import org.objectweb.jonas.jmx.JonasObjectName;
00044 import org.objectweb.jonas.jmx.CatalinaObjectName;
00045 import org.objectweb.jonas.webapp.jonasadmin.catalina.ConnectorItem;
00046 import org.objectweb.jonas.webapp.jonasadmin.catalina.ConnectorItemByPort;
00047 import org.objectweb.jonas.webapp.jonasadmin.logging.LoggerItem;
00048 import org.objectweb.jonas.webapp.jonasadmin.service.container.ContainerItem;
00049 import org.objectweb.jonas.webapp.jonasadmin.service.container.ContainerItemByFile;
00050 import org.objectweb.jonas.webapp.jonasadmin.service.container.WebAppItem;
00051 import org.objectweb.jonas.webapp.jonasadmin.service.container.WebAppItemByPathContext;
00052 import org.objectweb.jonas.webapp.jonasadmin.service.ejb.EjbItem;
00053 import org.objectweb.jonas.webapp.jonasadmin.service.ejb.EjbItemByNameComparator;
00054 import org.objectweb.jonas.webapp.taglib.TreeBuilder;
00055 import org.objectweb.jonas.webapp.taglib.TreeControl;
00056 import org.objectweb.jonas.webapp.taglib.TreeControlNode;
00057 
00066 public class JonasTreeBuilder implements TreeBuilder {
00067 
00068 // ----------------------------------------------------- Instance Variables
00069 
00070 // ---------------------------------------------------- TreeBuilder Methods
00071 
00081     public void buildTree(TreeControl treeControl, ActionServlet servlet
00082         , HttpServletRequest request) {
00083         try {
00084             TreeControlNode rootNode = treeControl.getRoot();
00085             MessageResources resources = (MessageResources) servlet.getServletContext().
00086                 getAttribute(Globals.MESSAGES_KEY);
00087             getDomain(rootNode, resources, request);
00088         }
00089         catch (Throwable t) {
00090             t.printStackTrace(System.out);
00091         }
00092     }
00093 
00094 // ------------------------------------------------------ Protected Methods
00095 
00105     protected void getDomain(TreeControlNode p_RootNode, MessageResources p_Resources
00106         , HttpServletRequest p_Request)
00107         throws Exception {
00108         // Add domain node
00109         WhereAreYou oWhere = (WhereAreYou) p_Request.getSession().getAttribute(WhereAreYou.
00110             SESSION_NAME);
00111         String sDomain = oWhere.getCurrentDomain().toString();// OBJECT_NAME
00112         String sDomainName = oWhere.getCurrentDomainName();// value of the 'name' key property
00113         String sNodeLabel = p_Resources.getMessage("treenode.jonas.domain") + " ( " + sDomainName
00114             + " )";
00115         TreeControlNode domainNode = new TreeControlNode(sDomainName, "icon/domain_jonas.gif"
00116             , sNodeLabel, "EditDomain.do?select=" + URLEncoder.encode(sDomain, "UTF-8"), "content", true);
00117         p_RootNode.addChild(domainNode);
00118         // Add children
00119         getServer(domainNode, p_Resources, p_Request, sDomainName);
00120         getJoramPlatform(domainNode, p_Resources);
00121     }
00122 
00132     protected void getServer(TreeControlNode p_DomainNode, MessageResources p_Resources
00133         , HttpServletRequest p_Request, String p_DomainName)
00134         throws Exception {
00135         // Add server node
00136         /* Implem note
00137          * -----------
00138          * Currently we have only one server in the domain, it's id being registered
00139          * in helper class WhereAreYou. This will change with in the next version 
00140          * with full Domain support. We'll have to query for all the J2EEServer MBeans.
00141          */
00142         WhereAreYou oWhere = (WhereAreYou) p_Request.getSession().getAttribute(WhereAreYou.
00143             SESSION_NAME);
00144         String sServer = oWhere.getCurrentJonasServer().toString();
00145         String sServerName = oWhere.getCurrentJonasServerName();
00146         String sNodeLabel = p_Resources.getMessage("treenode.jonas.server") + " ( " + sServerName + " )";
00147         TreeControlNode serverNode = new TreeControlNode(p_DomainNode.getName()
00148             + WhereAreYou.NODE_SEPARATOR + sServerName, "icon/BalJonasTree.gif", sNodeLabel
00149             , "EditJonasServer.do?select=" + URLEncoder.encode(sServer, "UTF-8"), "content", true);
00150         p_DomainNode.addChild(serverNode);
00151         // Add children
00152         getMonitoring(serverNode, p_Resources);
00153         getLogging(serverNode, p_Resources, p_Request);
00154         getProtocols(serverNode, p_Resources, p_Request);
00155         getServices(serverNode, p_Resources, p_Request, p_DomainName, sServerName);
00156         getDeployments(serverNode, p_Resources);
00157         getResources(serverNode, p_Resources);
00158         getSecurity(serverNode, p_Resources, p_Request);
00159     }
00160 
00170     protected void getMonitoring(TreeControlNode p_ServerNode, MessageResources p_Resources)
00171         throws Exception {
00172         // Monitoring server Service node
00173         TreeControlNode node = new TreeControlNode(p_ServerNode.getName()
00174             + WhereAreYou.NODE_SEPARATOR + "monitoring", "icon/monitoring.gif"
00175             , p_Resources.getMessage("treenode.jonas.server.monitoring"), "EditMonitoring.do"
00176             , "content", false);
00177         p_ServerNode.addChild(node);
00178     }
00179 
00189     protected void getLogging(TreeControlNode p_ServerNode, MessageResources p_Resources
00190         , HttpServletRequest p_Request)
00191         throws Exception {
00192         // Logging server Service node
00193         TreeControlNode node = new TreeControlNode(p_ServerNode.getName()
00194             + WhereAreYou.NODE_SEPARATOR + "logging", "icon/loggers.gif"
00195             , p_Resources.getMessage("treenode.jonas.server.logging"), "ListLoggers.do", "content", false);
00196         p_ServerNode.addChild(node);
00197         // Add all loggers
00198         getLoggers(node, p_Resources, p_Request);
00199     }
00200 
00210     public void getLoggers(TreeControlNode p_LoggingNode, MessageResources p_Resources
00211         , HttpServletRequest p_Request)
00212         throws Exception {
00213         // Get WhereAreYou instance in session
00214         WhereAreYou oWhere = (WhereAreYou) p_Request.getSession().getAttribute(WhereAreYou.
00215             SESSION_NAME);
00216         // Get list of loggers with Action name
00217         ArrayList al = JonasAdminJmx.getLoggers(p_Resources, oWhere, true);
00218         // Build the node of each logger
00219         LoggerItem oLog;
00220         String sIcon = "icon/loggers.gif";
00221         for (int i = 0; i < al.size(); i++) {
00222             oLog = (LoggerItem) al.get(i);
00223             if (LoggerItem.LOGGER_JONAS.equals(oLog.getType()) == true) {
00224                 sIcon = "icon/logger_jonas.gif";
00225             }
00226             else if (LoggerItem.LOGGER_CATALINA_ACCESS.equals(oLog.getType()) == true) {
00227                 sIcon = "icon/logger_http.gif";
00228             }
00229             // Add a logger node
00230             TreeControlNode node = new TreeControlNode(p_LoggingNode.getName()
00231                 + WhereAreYou.NODE_SEPARATOR + oLog.getType(), sIcon, oLog.getName()
00232                 , oLog.getForward(), "content", false);
00233             p_LoggingNode.addChild(node);
00234         }
00235     }
00236 
00245     protected void getServices(TreeControlNode p_ServerNode, MessageResources p_Resources
00246         , HttpServletRequest p_Request, String p_DomainName, String p_ServerName)
00247         throws Exception {
00248         // Services node
00249         TreeControlNode nodeAllServices = new TreeControlNode(p_ServerNode.getName()
00250             + WhereAreYou.NODE_SEPARATOR + "services", "icon/services.gif"
00251             , p_Resources.getMessage("treenode.jonas.server.services"), "ListServices.do"
00252             , "content", true);
00253         p_ServerNode.addChild(nodeAllServices);
00254 
00255         // Detail Service node
00256         if (JonasAdminJmx.hasMBeanName(JonasObjectName.earService()) == true) {
00257             getServiceApp(nodeAllServices, p_Resources, p_DomainName, p_ServerName);
00258         }
00259         if (JonasAdminJmx.hasMBeanName(JonasObjectName.ejbService()) == true) {
00260             getServiceEjbContainer(nodeAllServices, p_Resources, p_DomainName, p_ServerName);
00261         }
00262         if (JonasAdminJmx.hasMBeanName(JonasObjectName.webContainerService()) == true) {
00263             getServiceWeb(nodeAllServices, p_Resources, p_Request, p_DomainName, p_ServerName);
00264         }
00265         if (JonasAdminJmx.hasMBeanName(JonasObjectName.databaseService()) == true) {
00266             getServiceDatabase(nodeAllServices, p_Resources, p_DomainName, p_ServerName);
00267         }
00268         if (JonasAdminJmx.hasMBeanName(JonasObjectName.resourceService()) == true) {
00269             getServiceResourceAdapter(nodeAllServices, p_Resources, p_DomainName, p_ServerName);
00270         }
00271         if (JonasAdminJmx.hasMBeanName(JonasObjectName.transactionService()) == true) {
00272             getServiceTransaction(nodeAllServices, p_Resources, p_DomainName, p_ServerName);
00273         }
00274         if (JonasAdminJmx.hasMBeanName(JonasObjectName.jmsService()) == true) {
00275             getServiceJms(nodeAllServices, p_Resources, p_DomainName, p_ServerName);
00276         }
00277         if (JonasAdminJmx.hasMBeanName(JonasObjectName.mailService()) == true) {
00278             getServiceMail(nodeAllServices, p_Resources, p_Request, p_DomainName, p_ServerName);
00279         }
00280         if (JonasAdminJmx.hasMBeanName(JonasObjectName.securityService()) == true) {
00281             getServiceSecurity(nodeAllServices, p_Resources, p_DomainName, p_ServerName);
00282         }
00283         if (JonasAdminJmx.hasMBeanName(JonasObjectName.discoveryService()) == true) {
00284             getServiceDiscovery(nodeAllServices, p_Resources, p_DomainName, p_ServerName);
00285         }
00286     }
00287 
00296     protected void getServiceApp(TreeControlNode p_NodeServices, MessageResources p_Resources, String p_DomainName, String p_ServerName)
00297         throws Exception {
00298         // Add Service node
00299         TreeControlNode nodeService = new TreeControlNode(p_NodeServices.getName()
00300             + WhereAreYou.NODE_SEPARATOR + "ear", "icon/service_application.gif"
00301             , p_Resources.getMessage("treenode.jonas.server.services.ear")
00302             , "ListAppContainers.do"
00303             , "content", false);
00304         p_NodeServices.addChild(nodeService);
00305 
00306         // Add App Containers nodes
00307         getAppContainers(nodeService, p_Resources, p_DomainName, p_ServerName);
00308     }
00309 
00318     public void getAppContainers(TreeControlNode p_NodeParent, MessageResources p_Resources, String p_DomainName, String p_ServerName)
00319         throws Exception {
00320         String sPath;
00321         String sFile;
00322         String sNodeName;
00323         String sName;
00324         ArrayList al = new ArrayList();
00325 
00326         // Get Container List
00327         ObjectName ons = J2eeObjectName.J2EEApplications(p_DomainName, p_ServerName);
00328         Iterator itNames = JonasManagementRepr.queryNames(ons).iterator();
00329         while (itNames.hasNext()) {
00330             ObjectName it_on = (ObjectName) itNames.next();
00331             sPath = (String) JonasManagementRepr.getAttribute(it_on, "earUrl").toString();
00332             sFile = JonasAdminJmx.extractFilename(sPath);
00333             sNodeName = p_NodeParent.getName() + WhereAreYou.NODE_SEPARATOR + sFile;
00334             sName = it_on.getKeyProperty("name");
00335             if (sFile != null) {
00336                 al.add(new ContainerItem(sFile, sPath, sNodeName, it_on.toString(), sName));
00337             }
00338         }
00339         // Sort list
00340         Collections.sort(al, new ContainerItemByFile());
00341         // Build nodes
00342         ContainerItem oItem;
00343         for (int i = 0; i < al.size(); i++) {
00344             oItem = (ContainerItem) al.get(i);
00345             TreeControlNode node = new TreeControlNode(oItem.getNodeName(), "icon/ear.gif"
00346                 , oItem.getFile(), "EditEar.do?select=" + oItem.getObjectName(), "content", false);
00347             p_NodeParent.addChild(node);
00348         }
00349     }
00350 
00360     protected void getServiceEjbContainer(TreeControlNode p_NodeServices
00361         , MessageResources p_Resources, String p_DomainName, String p_ServerName)
00362         throws Exception {
00363         // Add Service node
00364         TreeControlNode nodeService = new TreeControlNode(p_NodeServices.getName()
00365             + WhereAreYou.NODE_SEPARATOR + "ejbContainers", "icon/service_ejb.gif"
00366             , p_Resources.getMessage("treenode.jonas.server.services.ejbContainers")
00367             , "ListContainers.do"
00368             , "content", false);
00369         p_NodeServices.addChild(nodeService);
00370         // Add Containers nodes
00371         getContainers(nodeService, p_Resources, p_DomainName, p_ServerName);
00372     }
00373 
00382     public void getContainers(TreeControlNode p_NodeParent, MessageResources p_Resources, String p_DomainName, String p_ServerName)
00383         throws Exception {
00384         String sPath;
00385         String sFile;
00386         String sName;
00387         String sNodeName;
00388         ObjectName onContainer;
00389         ArrayList al = new ArrayList();
00390 
00391         // Get Container List
00392         Iterator itNames = JonasManagementRepr.queryNames(J2eeObjectName.getEJBModules(p_DomainName, p_ServerName)).iterator();
00393         while (itNames.hasNext()) {
00394             ObjectName it_on = (ObjectName) itNames.next();
00395             sPath = (String) JonasManagementRepr.getAttribute(it_on, "fileName");
00396             sFile = JonasAdminJmx.extractFilename(sPath);
00397             sNodeName = p_NodeParent.getName() + WhereAreYou.NODE_SEPARATOR + sFile;
00398             sName = it_on.getKeyProperty("name");
00399             if (sFile != null) {
00400                 al.add(new ContainerItem(sFile, sPath, sNodeName, it_on.toString(), sName));
00401             }
00402         }
00403 
00404         // Sort list
00405         Collections.sort(al, new ContainerItemByFile());
00406         // Build nodes
00407         ContainerItem oItem;
00408         for (int i = 0; i < al.size(); i++) {
00409             oItem = (ContainerItem) al.get(i);
00410             TreeControlNode node = new TreeControlNode(oItem.getNodeName(), "icon/jar.gif"
00411                 , oItem.getFile(), "EditContainer.do?select=" + oItem.getObjectName(), "content", false);
00412             p_NodeParent.addChild(node);
00413             // Add ejb node
00414             getEjbs(node, p_Resources, oItem.getPath(), p_DomainName, p_ServerName, oItem.getName());
00415         }
00416     }
00417 
00427     protected void getEjbs(TreeControlNode p_NodeParent, MessageResources p_Resources
00428         , String p_Filename, String p_DomainName, String p_ServerName, String p_moduleName)
00429         throws Exception {
00430         //String sName;
00431         Iterator itNames;
00432         ObjectName on;
00433         ArrayList al = new ArrayList();
00434 
00435         on = J2eeObjectName.getEntityBeans(p_DomainName, p_moduleName, p_ServerName);
00436 
00437         itNames = JonasAdminJmx.getListMbean(on).iterator();
00438         while (itNames.hasNext()) {
00439             al.add(new EjbItem((ObjectName) itNames.next()));
00440         }
00441         on = J2eeObjectName.getStatefulSessionBeans(p_DomainName, p_moduleName, p_ServerName);
00442         itNames = JonasAdminJmx.getListMbean(on).iterator();
00443         while (itNames.hasNext()) {
00444             al.add(new EjbItem((ObjectName) itNames.next()));
00445         }
00446         on = J2eeObjectName.getStatelessSessionBeans(p_DomainName, p_moduleName, p_ServerName);
00447         itNames = JonasAdminJmx.getListMbean(on).iterator();
00448         while (itNames.hasNext()) {
00449             al.add(new EjbItem((ObjectName) itNames.next()));
00450         } 
00451         on = J2eeObjectName.getMessageDrivenBeans(p_DomainName, p_moduleName, p_ServerName);
00452         itNames = JonasAdminJmx.getListMbean(on).iterator();
00453         while (itNames.hasNext()) {
00454             al.add(new EjbItem((ObjectName) itNames.next()));
00455         }
00456   
00457         // Sort by name
00458         Collections.sort(al, new EjbItemByNameComparator());
00459 
00460         // Add all node Ejb
00461         String sNodeName;
00462         String sAction;
00463         TreeControlNode nodeEjb;
00464         EjbItem oEjb;
00465         for (int i = 0; i < al.size(); i++) {
00466             oEjb = (EjbItem) al.get(i);
00467             sNodeName = p_NodeParent.getName() + WhereAreYou.NODE_SEPARATOR + oEjb.getName();
00468             sAction = "EditEjb" + oEjb.getTypeString() + ".do?select=" + oEjb.getObjectName();
00469             // Add node Ejb
00470             nodeEjb = new TreeControlNode(sNodeName, "icon/bean.gif", oEjb.getName(), sAction
00471                 , "content", false);
00472             p_NodeParent.addChild(nodeEjb);
00473         }
00474     }
00475 
00485     protected void getServiceDatabase(TreeControlNode pNodeServices, MessageResources pResources, String pDomainName, String pServerName)
00486         throws Exception {
00487         // Add Service node
00488         TreeControlNode nodeService = new TreeControlNode(pNodeServices.getName()
00489             + WhereAreYou.NODE_SEPARATOR + "database", "icon/service_database.gif"
00490             , pResources.getMessage("treenode.jonas.server.services.database"), "ListDatabases.do"
00491             , "content", false);
00492         pNodeServices.addChild(nodeService);
00493         // Add Datasources nodes
00494         getDatasources(nodeService, pResources, pDomainName, pServerName);
00495     }
00496 
00507     public void getDatasources(TreeControlNode pNodeParent, MessageResources pResources, String pDomainName, String pServerName)
00508         throws Exception {
00509 
00510         ArrayList al = JonasAdminJmx.getDatasourceFilesDeployed(pDomainName, pServerName);
00511         // Build nodes
00512         for (int i = 0; i < al.size(); i++) {
00513             TreeControlNode node = new TreeControlNode(pNodeParent.getName()
00514                 + WhereAreYou.NODE_SEPARATOR + al.get(i).toString(), "icon/Datasource.gif"
00515                 , al.get(i).toString(), "EditDatasource.do?name=" + al.get(i), "content", false);
00516             pNodeParent.addChild(node);
00517         }
00518     }
00519 
00531     protected void getServiceWeb(TreeControlNode pNodeServices, MessageResources pResources
00532         , HttpServletRequest pRequest, String pDomainName, String pServerName)
00533         throws Exception {
00534         // Add Service node
00535         TreeControlNode nodeService = new TreeControlNode(pNodeServices.getName()
00536             + WhereAreYou.NODE_SEPARATOR + "web", "icon/service_web.gif"
00537             , pResources.getMessage("treenode.jonas.server.services.web"), "ListWebContainers.do"
00538             , "content", false);
00539         pNodeServices.addChild(nodeService);
00540         // Add Web Containers nodes
00541         getWebContainers(nodeService, pResources, pRequest);
00542     }
00543 
00553     public void getWebContainers(TreeControlNode p_NodeParent, MessageResources p_Resources
00554         , HttpServletRequest p_Request)
00555         throws Exception {
00556         WhereAreYou oWhere = (WhereAreYou) p_Request.getSession().getAttribute(WhereAreYou.
00557             SESSION_NAME);
00558 
00559         ArrayList al = new ArrayList();
00560         // Detect Catalina items present
00561         if (oWhere.isCatalinaServer() == true) {
00562             // Get the list of WebModule
00563             Iterator itOns = JonasAdminJmx.getListMbean(J2eeObjectName.getWebModules(oWhere.
00564                 getCurrentCatalinaDomainName())).iterator();
00565             while (itOns.hasNext()) {
00566                 al.add(new WebAppItem((ObjectName) itOns.next()));
00567             }
00568         }
00569         // Detect Jetty items present
00570         else if (oWhere.isJettyServer() == true) {
00571             ObjectName on;
00572             String sPathContext;
00573             HashMap hWebAppItems = new HashMap();
00574 
00575             // Get the list of Jetty contexts
00576             Iterator itOnContexts = JonasAdminJmx.getListMbean(JettyObjectName.jettyContexts()).
00577                 iterator();
00578             while (itOnContexts.hasNext()) {
00579                 on = (ObjectName) itOnContexts.next();
00580                 sPathContext = on.getKeyProperty("context");
00581                 if (sPathContext != null) {
00582                     if (hWebAppItems.containsKey(sPathContext) == false) {
00583                         hWebAppItems.put(sPathContext, new WebAppItem(sPathContext, on.toString()));
00584                     }
00585                 }
00586             }
00587             // Prepare to display
00588             al.addAll(hWebAppItems.values());
00589         }
00590         // Sort list
00591         Collections.sort(al, new WebAppItemByPathContext());
00592         // Build nodes
00593         WebAppItem oItem;
00594         for (int i = 0; i < al.size(); i++) {
00595             oItem = (WebAppItem) al.get(i);
00596             TreeControlNode node = new TreeControlNode(p_NodeParent.getName()
00597                 + WhereAreYou.NODE_SEPARATOR + oItem.getObjectName(), "icon/war.gif"
00598                 , oItem.getLabelPathContext(), "EditWebApp.do?on=" + oItem.getObjectName()
00599                 , "content", false);
00600             p_NodeParent.addChild(node);
00601         }
00602     }
00603 
00613     protected void getServiceTransaction(TreeControlNode p_NodeServices
00614         , MessageResources p_Resources, String p_DomainName, String p_ServerName)
00615         throws Exception {
00616         // Add Service node
00617         TreeControlNode nodeService = new TreeControlNode(p_NodeServices.getName()
00618             + WhereAreYou.NODE_SEPARATOR + "transaction", "icon/service_transaction.gif"
00619             , p_Resources.getMessage("treenode.jonas.server.services.transaction")
00620             , "EditJtmService.do", "content", false);
00621         p_NodeServices.addChild(nodeService);
00622     }
00623 
00633     protected void getServiceDiscovery(TreeControlNode p_NodeServices, MessageResources p_Resources, String p_DomainName, String p_ServerName)
00634         throws Exception {
00635         // Add Service node
00636         TreeControlNode nodeService = new TreeControlNode(p_NodeServices.getName()
00637             + WhereAreYou.NODE_SEPARATOR + "Discovery", "icon/service_transaction.gif"
00638             , p_Resources.getMessage("treenode.jonas.server.services.discovery")
00639             , "EditServiceDiscovery.do", "content", false);
00640         p_NodeServices.addChild(nodeService);
00641     }
00642     
00651     protected void getServiceJms(TreeControlNode p_NodeServices, MessageResources p_Resources, String p_DomainName, String p_ServerName)
00652         throws Exception {
00653         // Add Service node
00654         TreeControlNode nodeService = new TreeControlNode(p_NodeServices.getName()
00655             + WhereAreYou.NODE_SEPARATOR + "jms", "icon/service_jms.gif"
00656             , p_Resources.getMessage("treenode.jonas.server.services.jms"), "EditJmsService.do"
00657             , "content", false);
00658         p_NodeServices.addChild(nodeService);
00659         // Add JMS administred objects (resources)
00660         getJmsResources(nodeService, p_Resources);
00661     }
00662 
00671     public void getJmsResources(TreeControlNode p_NodeParent, MessageResources p_Resources)
00672         throws Exception {
00673         // Add node for Connection Factories
00674         TreeControlNode node = new TreeControlNode(p_NodeParent.getName()
00675             + WhereAreYou.NODE_SEPARATOR + "cf", "icon/jms_connector.gif"
00676             , p_Resources.getMessage("treenode.jonas.server.services.jms.cf")
00677             , "ListConnectionFactories.do", "content", false);
00678         p_NodeParent.addChild(node);
00679         getJmsConnectionFactories(node, p_Resources);
00680 
00681         // Add node for Queues
00682         node = new TreeControlNode(p_NodeParent.getName() + WhereAreYou.NODE_SEPARATOR + "queue"
00683             , "icon/jms_queue.gif"
00684             , p_Resources.getMessage("treenode.jonas.server.services.jms.queues"), "ListQueues.do"
00685             , "content", false);
00686         p_NodeParent.addChild(node);
00687         getJmsQueues(node, p_Resources);
00688 
00689         // Add node for Topics
00690         node = new TreeControlNode(p_NodeParent.getName() + WhereAreYou.NODE_SEPARATOR + "topic"
00691             , "icon/jms_topic.gif"
00692             , p_Resources.getMessage("treenode.jonas.server.services.jms.topics"), "ListTopics.do"
00693             , "content", false);
00694         p_NodeParent.addChild(node);
00695         getJmsTopics(node, p_Resources);
00696     }
00697 
00706     public void getJmsConnectionFactories(TreeControlNode p_NodeParent
00707         , MessageResources p_Resources)
00708         throws Exception {
00709         // Get the 3 connection factories created by default:
00710         // - default ConnectionFactory , default Topic ConnectionFactory, default Queue ConnectionFactory,
00711         // This corresponds to the current implementation of the JMS service ..... ???
00712         int nbConnFacts = 3;
00713         String cfNames[] = new String[3];
00714         ObjectName jmsServMB = JonasObjectName.jmsService();
00715         cfNames[0] = (String) JonasManagementRepr.getAttribute(jmsServMB
00716             , "DefaultConnectionFactoryName");
00717         cfNames[1] = (String) JonasManagementRepr.getAttribute(jmsServMB
00718             , "DefaultTopicConnectionFactoryName");
00719         cfNames[2] = (String) JonasManagementRepr.getAttribute(jmsServMB
00720             , "DefaultQueueConnectionFactoryName");
00721         TreeControlNode node;
00722         for (int i = 0; i < nbConnFacts; i++) {
00723             node = new TreeControlNode(p_NodeParent.getName() + WhereAreYou.NODE_SEPARATOR
00724                 + cfNames[i], "icon/jms_connector.gif", cfNames[i]
00725                 , "PresentConnectionFactory.do?name=" + cfNames[i], "content", false);
00726             p_NodeParent.addChild(node);
00727         }
00728     }
00729 
00738     public void getJmsQueues(TreeControlNode p_NodeParent, MessageResources p_Resources)
00739         throws Exception {
00740         // Get queues list
00741         Iterator itNames = ((java.util.Set) JonasManagementRepr.getAttribute(JonasObjectName.
00742             jmsService(), "AllJmsQueueDestinationNames")).iterator();
00743         while (itNames.hasNext()) {
00744             String sNodeName = (String) itNames.next();
00745             String sQueueName = sNodeName;
00746             // Add node for each queue
00747             TreeControlNode node = new TreeControlNode(p_NodeParent.getName()
00748                 + WhereAreYou.NODE_SEPARATOR + sNodeName, "icon/jms_queue.gif", sQueueName
00749                 , "PresentQueue.do?name=" + sQueueName, "content", false);
00750             p_NodeParent.addChild(node);
00751         }
00752     }
00753 
00762     public void getJmsTopics(TreeControlNode p_NodeParent, MessageResources p_Resources)
00763         throws Exception {
00764         // Get topics list
00765         Iterator itNames = ((java.util.Set) JonasManagementRepr.getAttribute(JonasObjectName.
00766             jmsService(), "AllJmsTopicDestinationNames")).iterator();
00767         while (itNames.hasNext()) {
00768             String sNodeName = (String) itNames.next();
00769             String sTopicName = sNodeName;
00770             // Add node for each topic
00771             TreeControlNode node = new TreeControlNode(p_NodeParent.getName()
00772                 + WhereAreYou.NODE_SEPARATOR + sNodeName, "icon/jms_topic.gif", sTopicName
00773                 , "PresentTopic.do?name=" + sTopicName, "content", false);
00774             p_NodeParent.addChild(node);
00775         }
00776     }
00777 
00787     protected void getServiceMail(TreeControlNode p_NodeServices, MessageResources p_Resources
00788         , HttpServletRequest p_Request, String p_DomainName, String p_ServerName)
00789         throws Exception {
00790         // Add Service node
00791         TreeControlNode nodeService = new TreeControlNode(p_NodeServices.getName()
00792             + WhereAreYou.NODE_SEPARATOR + "mail", "icon/service_mail.gif"
00793             , p_Resources.getMessage("treenode.jonas.server.services.mail"), "EditMailService.do"
00794             , "content", false);
00795         p_NodeServices.addChild(nodeService);
00796         // Add nodes for MailFactories
00797         getAllSessionMailFactories(nodeService, p_Resources, p_Request);
00798         getAllMimePartDSMailFactories(nodeService, p_Resources, p_Request);
00799     }
00800 
00801     public void getAllSessionMailFactories(TreeControlNode p_NodeParent
00802         , MessageResources p_Resources, HttpServletRequest p_Request)
00803         throws Exception {
00804         // Add parent node for all the Session Mail Factories
00805         TreeControlNode nodeSessionMailFactories = new TreeControlNode(p_NodeParent.getName()
00806             + WhereAreYou.NODE_SEPARATOR + "session", "icon/mail_session.gif"
00807             , p_Resources.getMessage("treenode.jonas.server.services.mail.session")
00808             , "ListSessionMailFactories.do", "content", false);
00809         p_NodeParent.addChild(nodeSessionMailFactories);
00810         // Add a node for each Session Mail Factory
00811         getSessionMailFactories(nodeSessionMailFactories, p_Resources, p_Request);
00812     }
00813 
00814     public void getAllMimePartDSMailFactories(TreeControlNode p_NodeParent
00815         , MessageResources p_Resources, HttpServletRequest p_Request)
00816         throws Exception {
00817         // Add parent node for all the Session Mail Factories
00818         TreeControlNode nodeMimePartMailFactories = new TreeControlNode(p_NodeParent.getName()
00819             + WhereAreYou.NODE_SEPARATOR + "mimepart", "icon/mail_mime.gif"
00820             , p_Resources.getMessage("treenode.jonas.server.services.mail.mimepart")
00821             , "ListMimePartMailFactories.do", "content", false);
00822         p_NodeParent.addChild(nodeMimePartMailFactories);
00823         // Add a node for each Session Mail Factory
00824         getMimePartMailFactories(nodeMimePartMailFactories, p_Resources, p_Request);
00825     }
00826 
00827     protected void getSessionMailFactories(TreeControlNode p_NodeParent
00828         , MessageResources p_Resources, HttpServletRequest p_Request)
00829         throws Exception {
00830         String sPath;
00831         String sFile;
00832         String sNodeName;
00833         ArrayList al = new ArrayList();
00834 
00835         WhereAreYou oWhere = (WhereAreYou) p_Request.getSession().getAttribute(WhereAreYou.
00836             SESSION_NAME);
00837 
00838         // Get List
00839         java.util.List deployedFactories = (java.util.List) JonasAdminJmx.
00840             getSessionMailFactoriesDeployed(oWhere);
00841         Iterator itNames = deployedFactories.iterator();
00842         //Iterator itNames = ((java.util.List) JonasAdminJmx.getSessionMailFactoriesDeployed(oWhere)).iterator();
00843         while (itNames.hasNext()) {
00844             al.add(itNames.next().toString());
00845         }
00846         // Sort list
00847         Collections.sort(al);
00848         // Build nodes
00849         for (int i = 0; i < al.size(); i++) {
00850             TreeControlNode node = new TreeControlNode(p_NodeParent.getName()
00851                 + WhereAreYou.NODE_SEPARATOR + al.get(i).toString(), "icon/mail_session.gif"
00852                 , al.get(i).toString(), "EditSessionMailFactory.do?name=" + al.get(i).toString()
00853                 , "content", false);
00854             p_NodeParent.addChild(node);
00855         }
00856     }
00857 
00858     protected void getMimePartMailFactories(TreeControlNode p_NodeParent
00859         , MessageResources p_Resource, HttpServletRequest p_Request)
00860         throws Exception {
00861         String sPath;
00862         String sFile;
00863         String sNodeName;
00864         ArrayList al = new ArrayList();
00865 
00866         WhereAreYou oWhere = (WhereAreYou) p_Request.getSession().getAttribute(WhereAreYou.
00867             SESSION_NAME);
00868 
00869         // Get List
00870         Iterator itNames = ((java.util.List) JonasAdminJmx.getMimeMailPartFactoriesDeployed(oWhere)).
00871             iterator();
00872         while (itNames.hasNext()) {
00873             al.add(itNames.next().toString());
00874         }
00875         // Sort list
00876         Collections.sort(al);
00877         // Build nodes
00878         for (int i = 0; i < al.size(); i++) {
00879             TreeControlNode node = new TreeControlNode(p_NodeParent.getName()
00880                 + WhereAreYou.NODE_SEPARATOR + al.get(i).toString(), "icon/mail_mime.gif"
00881                 , al.get(i).toString(), "EditMimePartMailFactory.do?name=" + al.get(i).toString()
00882                 , "content", false);
00883             p_NodeParent.addChild(node);
00884         }
00885     }
00886 
00895     protected void getServiceResourceAdapter(TreeControlNode p_NodeServices
00896         , MessageResources p_Resources, String p_DomainName, String p_ServerName)
00897         throws Exception {
00898         // Add Service node
00899         TreeControlNode nodeService = new TreeControlNode(p_NodeServices.getName()
00900             + WhereAreYou.NODE_SEPARATOR + "resourceAdapter", "icon/service_resource.gif"
00901             , p_Resources.getMessage("treenode.jonas.server.services.resource")
00902             , "ListResourcesAdapters.do", "content", false);
00903         p_NodeServices.addChild(nodeService);
00904         // Add Containers nodes
00905         getResourcesAdapters(nodeService, p_Resources);
00906     }
00907 
00916     public void getResourcesAdapters(TreeControlNode p_NodeParent, MessageResources p_Resources)
00917         throws Exception {
00918         String sName;
00919         ObjectName on;
00920         ArrayList al = new ArrayList();
00921 
00922         // Get Container List
00923         Iterator it = JonasAdminJmx.getListMbean(JonasObjectName.resourceAdapters()).iterator();
00924         while (it.hasNext()) {
00925             on = (ObjectName) it.next();
00926             al.add(on.getKeyProperty("name"));
00927         }
00928         // Sort list
00929         Collections.sort(al);
00930         // Build nodes
00931         for (int i = 0; i < al.size(); i++) {
00932             sName = al.get(i).toString();
00933             TreeControlNode node = new TreeControlNode(p_NodeParent.getName()
00934                 + WhereAreYou.NODE_SEPARATOR + sName, "icon/resourceAdapter.gif"
00935                 , JonasAdminJmx.extractFilename(sName)
00936                 , "EditResourceAdapter.do?name=" + sName, "content", false);
00937             p_NodeParent.addChild(node);
00938         }
00939     }
00940 
00950     protected void getServiceSecurity(TreeControlNode p_NodeServices, MessageResources p_Resources, String p_DomainName, String p_ServerName)
00951         throws Exception {
00952         // Add Service node
00953         TreeControlNode nodeService = new TreeControlNode(p_NodeServices.getName()
00954             + WhereAreYou.NODE_SEPARATOR + "security", "icon/service_security.gif"
00955             , p_Resources.getMessage("treenode.jonas.server.services.security")
00956             , "EditServiceSecurity.do", "content", false);
00957         p_NodeServices.addChild(nodeService);
00958     }
00959 
00967     protected void getDeployments(TreeControlNode p_ServerNode, MessageResources p_Resources)
00968         throws Exception {
00969         // Deployments node
00970         TreeControlNode nodeDeployments = new TreeControlNode(p_ServerNode.getName()
00971             + WhereAreYou.NODE_SEPARATOR + "deployments", "icon/deploy.gif"
00972             , p_Resources.getMessage("treenode.jonas.server.deployments"), null, "content", true);
00973         p_ServerNode.addChild(nodeDeployments);
00974 
00975         // Detail Service node
00976         if (JonasAdminJmx.hasMBeanName(JonasObjectName.earService()) == true) {
00977             getDeploymentEar(nodeDeployments, p_Resources);
00978         }
00979         if (JonasAdminJmx.hasMBeanName(JonasObjectName.ejbService()) == true) {
00980             getDeploymentEjb(nodeDeployments, p_Resources);
00981         }
00982         if (JonasAdminJmx.hasMBeanName(JonasObjectName.webContainerService()) == true) {
00983             getDeploymentWebAppli(nodeDeployments, p_Resources);
00984         }
00985         if (JonasAdminJmx.hasMBeanName(JonasObjectName.resourceService()) == true) {
00986             getDeploymentRar(nodeDeployments, p_Resources);
00987         }
00988     }
00989 
00998     protected void getDeploymentEar(TreeControlNode p_NodeDeployments, MessageResources p_Resources)
00999         throws Exception {
01000         // Add node
01001         TreeControlNode oNode = new TreeControlNode(p_NodeDeployments.getName()
01002             + WhereAreYou.NODE_SEPARATOR + WhereAreYou.DEPLOYMENT_STRING_EAR, "icon/deploy_ear.gif"
01003             , p_Resources.getMessage("treenode.jonas.server.deployments."
01004             + WhereAreYou.DEPLOYMENT_STRING_EAR)
01005             , "EditDeploy.do?type=" + WhereAreYou.DEPLOYMENT_STRING_EAR, "content", false);
01006         p_NodeDeployments.addChild(oNode);
01007     }
01008 
01017     protected void getDeploymentEjb(TreeControlNode p_NodeDeployments, MessageResources p_Resources)
01018         throws Exception {
01019         // Add node
01020         TreeControlNode oNode = new TreeControlNode(p_NodeDeployments.getName()
01021             + WhereAreYou.NODE_SEPARATOR + WhereAreYou.DEPLOYMENT_STRING_JAR, "icon/deploy_jar.gif"
01022             , p_Resources.getMessage("treenode.jonas.server.deployments."
01023             + WhereAreYou.DEPLOYMENT_STRING_JAR)
01024             , "EditDeploy.do?type=" + WhereAreYou.DEPLOYMENT_STRING_JAR, "content", false);
01025         p_NodeDeployments.addChild(oNode);
01026 
01027         // Add list files
01028         //getDeploymentJarFiles(oNode, p_Resources);
01029     }
01030 
01039     protected void getDeploymentEjbFiles(TreeControlNode p_NodeParent, MessageResources p_Resources)
01040         throws Exception {
01041         String sFile;
01042         Iterator it = JonasAdminJmx.getJarFilesDeployable().iterator();
01043         while (it.hasNext()) {
01044             sFile = it.next().toString();
01045             // Add node
01046             TreeControlNode oNode = new TreeControlNode(p_NodeParent.getName()
01047                 + WhereAreYou.NODE_SEPARATOR + sFile, "icon/JonasQuestion.gif", sFile, null
01048                 , "content", false);
01049             p_NodeParent.addChild(oNode);
01050         }
01051 
01052     }
01053 
01062     protected void getDeploymentWebAppli(TreeControlNode p_NodeDeployments
01063         , MessageResources p_Resources)
01064         throws Exception {
01065         // Add node
01066         TreeControlNode oNode = new TreeControlNode(p_NodeDeployments.getName()
01067             + WhereAreYou.NODE_SEPARATOR + WhereAreYou.DEPLOYMENT_STRING_WAR, "icon/deploy_war.gif"
01068             , p_Resources.getMessage("treenode.jonas.server.deployments."
01069             + WhereAreYou.DEPLOYMENT_STRING_WAR)
01070             , "EditDeploy.do?type=" + WhereAreYou.DEPLOYMENT_STRING_WAR, "content", false);
01071         p_NodeDeployments.addChild(oNode);
01072     }
01073 
01082     protected void getDeploymentRar(TreeControlNode p_NodeDeployments, MessageResources p_Resources)
01083         throws Exception {
01084         // Add node
01085         TreeControlNode oNode = new TreeControlNode(p_NodeDeployments.getName()
01086             + WhereAreYou.NODE_SEPARATOR + WhereAreYou.DEPLOYMENT_STRING_RAR, "icon/deploy_rar.gif"
01087             , p_Resources.getMessage("treenode.jonas.server.deployments."
01088             + WhereAreYou.DEPLOYMENT_STRING_RAR)
01089             , "EditDeploy.do?type=" + WhereAreYou.DEPLOYMENT_STRING_RAR, "content", false);
01090         p_NodeDeployments.addChild(oNode);
01091     }
01092 
01100     protected void getResources(TreeControlNode p_ServerNode, MessageResources p_Resources)
01101         throws Exception {
01102         // Resources node
01103         TreeControlNode nodeDeployments = new TreeControlNode(p_ServerNode.getName()
01104             + WhereAreYou.NODE_SEPARATOR + "resources", "icon/resources.gif"
01105             , p_Resources.getMessage("treenode.jonas.server.resources"), null, "content", true);
01106         p_ServerNode.addChild(nodeDeployments);
01107 
01108         // Detail Service node
01109         // - database resources
01110         if (JonasAdminJmx.hasMBeanName(JonasObjectName.databaseService()) == true) {
01111             getResourceDatabase(nodeDeployments, p_Resources);
01112         }
01113         // - jms resources
01114         if (JonasAdminJmx.hasMBeanName(JonasObjectName.jmsService()) == true) {
01115             getJmsResource(nodeDeployments, p_Resources);
01116         }
01117         // - mail resources
01118         if (JonasAdminJmx.hasMBeanName(JonasObjectName.mailService()) == true) {
01119             getMailResource(nodeDeployments, p_Resources);
01120         }
01121     }
01122 
01130     protected void getMailResource(TreeControlNode p_ServerNode, MessageResources p_Resources)
01131         throws Exception {
01132         // Mail resources node
01133         TreeControlNode nodeDeployments = new TreeControlNode(p_ServerNode.getName()
01134             + WhereAreYou.NODE_SEPARATOR + "mail", "icon/mail.gif"
01135             , p_Resources.getMessage("treenode.jonas.server.resources.mail")
01136             , "EditDeploy.do?type=" + WhereAreYou.DEPLOYMENT_STRING_MAILFACTORY, "content", false);
01137         p_ServerNode.addChild(nodeDeployments);
01138     }
01139 
01147     protected void getJmsResource(TreeControlNode p_ServerNode, MessageResources p_Resources)
01148         throws Exception {
01149         // Jms resources node
01150         TreeControlNode nodeDeployments = new TreeControlNode(p_ServerNode.getName()
01151             + WhereAreYou.NODE_SEPARATOR + "jms", "icon/jms.gif"
01152             , p_Resources.getMessage("treenode.jonas.server.resources.jms"), "ListJmsResources.do"
01153             , "content", false);
01154         p_ServerNode.addChild(nodeDeployments);
01155     }
01156 
01164     protected void getResourceDatabase(TreeControlNode p_ServerNode, MessageResources p_Resources)
01165         throws Exception {
01166         // Database Resources node
01167         TreeControlNode nodeDeployments = new TreeControlNode(p_ServerNode.getName()
01168             + WhereAreYou.NODE_SEPARATOR + "database", "icon/Database.gif"
01169             , p_Resources.getMessage("treenode.jonas.server.resources.database")
01170             , "EditDeploy.do?type=" + WhereAreYou.DEPLOYMENT_STRING_DATASOURCE, "content", false);
01171         p_ServerNode.addChild(nodeDeployments);
01172     }
01173 
01182     protected void getSecurity(TreeControlNode p_ServerNode, MessageResources p_Resources
01183         , HttpServletRequest p_Request)
01184         throws Exception {
01185         // Detect JOnAS item presents
01186         boolean bJonasSecurityService = JonasAdminJmx.hasMBeanName(JonasObjectName.securityService());
01187         // Detect Catalina items present
01188         WhereAreYou oWhere = (WhereAreYou) p_Request.getSession().getAttribute(WhereAreYou.
01189             SESSION_NAME);
01190         boolean bCatalinaRealm = false;
01191         if (oWhere.isCatalinaServer() == true) {
01192             bCatalinaRealm = JonasAdminJmx.hasMBeanName(CatalinaObjectName.catalinaRealm(oWhere.
01193                 getCurrentCatalinaServiceName()));
01194         }
01195         // Add nodes
01196         if ((bJonasSecurityService == true) || (bCatalinaRealm == true)) {
01197             // Active action
01198             String sAction = null;
01199             if (bJonasSecurityService == true) {
01200                 sAction = "ListRealms.do?realm=all";
01201             }
01202             else if (bCatalinaRealm == true) {
01203                 sAction = "EditSecurityCatalinaRealm.do";
01204             }
01205             // Security node
01206             TreeControlNode nodeSecurity = new TreeControlNode(p_ServerNode.getName()
01207                 + WhereAreYou.NODE_SEPARATOR + "security", "icon/security.gif"
01208                 , p_Resources.getMessage("treenode.jonas.server.security"), sAction, "content", false);
01209             p_ServerNode.addChild(nodeSecurity);
01210             // Detail Security node for JOnAS service
01211             if (bJonasSecurityService == true) {
01212                 getSecurityFactories(nodeSecurity, p_Resources);
01213             }
01214         }
01215     }
01216 
01226     protected void getSecurityCatalinaRealm(TreeControlNode p_SecurityNode
01227         , MessageResources p_Resources, HttpServletRequest p_Request)
01228         throws Exception {
01229 
01230         // Add node
01231         TreeControlNode oNode = new TreeControlNode(p_SecurityNode.getName()
01232             + WhereAreYou.NODE_SEPARATOR + "catalina.realm", "icon/security.gif"
01233             , p_Resources.getMessage("treenode.jonas.server.security.catalina.realm"), null
01234             , "content", false);
01235         p_SecurityNode.addChild(oNode);
01236     }
01237 
01245     public void getSecurityFactories(TreeControlNode p_SecurityNode, MessageResources p_Resources)
01246         throws Exception {
01247         ArrayList al = null;
01248         String sName = null;
01249         TreeControlNode nodeSecurityFactories = null;
01250         TreeControlNode nodeSecurityFactory = null;
01251 
01252         // Security Memory factories
01253         al = JonasAdminJmx.getSecurityMemoryFactories();
01254         if (al.size() > 0) {
01255             // Security factories node
01256             nodeSecurityFactories = new TreeControlNode(p_SecurityNode.getName()
01257                 + WhereAreYou.NODE_SEPARATOR + "factory.memory", "icon/security_memory.gif"
01258                 , p_Resources.getMessage("treenode.jonas.server.security.factory.memory")
01259                 , "ListRealms.do?realm=memory", "content", false);
01260             p_SecurityNode.addChild(nodeSecurityFactories);
01261             // List Security factories
01262             for (int i = 0; i < al.size(); i++) {
01263                 sName = al.get(i).toString();
01264                 // Security factory node
01265                 nodeSecurityFactory = new TreeControlNode(nodeSecurityFactories.getName()
01266                     + WhereAreYou.NODE_SEPARATOR + sName, "icon/security_memory.gif", sName
01267                     , "EditMemoryRealm.do?resource=" + sName, "content", false);
01268                 nodeSecurityFactories.addChild(nodeSecurityFactory);
01269                 // Add detail to memory security node
01270                 //getSecurityMemoryFactory(nodeSecurityFactory, p_Resources, sName);
01271             }
01272         }
01273         // Security Datasource factories
01274         al = JonasAdminJmx.getSecurityDatasourceFactories();
01275         if (al.size() > 0) {
01276             // Security factories node
01277             nodeSecurityFactories = new TreeControlNode(p_SecurityNode.getName()
01278                 + WhereAreYou.NODE_SEPARATOR + "factory.datasource", "icon/security_database.gif"
01279                 , p_Resources.getMessage("treenode.jonas.server.security.factory.datasource")
01280                 , "ListRealms.do?realm=datasource", "content", false);
01281             p_SecurityNode.addChild(nodeSecurityFactories);
01282             // List Security factories
01283             for (int i = 0; i < al.size(); i++) {
01284                 sName = al.get(i).toString();
01285                 // Security factory node
01286                 nodeSecurityFactory = new TreeControlNode(nodeSecurityFactories.getName()
01287                     + WhereAreYou.NODE_SEPARATOR + sName, "icon/security_database.gif", sName
01288                     , "EditDatasourceRealm.do?resource=" + sName, "content", false);
01289                 nodeSecurityFactories.addChild(nodeSecurityFactory);
01290             }
01291         }
01292         // Security Ldap factories
01293         al = JonasAdminJmx.getSecurityLdapFactories();
01294         if (al.size() > 0) {
01295             // Security factories node
01296             nodeSecurityFactories = new TreeControlNode(p_SecurityNode.getName()
01297                 + WhereAreYou.NODE_SEPARATOR + "factory.ldap", "icon/security_ldap.gif"
01298                 , p_Resources.getMessage("treenode.jonas.server.security.factory.ldap")
01299                 , "ListRealms.do?realm=ldap", "content", false);
01300             p_SecurityNode.addChild(nodeSecurityFactories);
01301             // List Security factories
01302             for (int i = 0; i < al.size(); i++) {
01303                 sName = al.get(i).toString();
01304                 // Security factory node
01305                 nodeSecurityFactory = new TreeControlNode(nodeSecurityFactories.getName()
01306                     + WhereAreYou.NODE_SEPARATOR + sName, "icon/security_ldap.gif", sName
01307                     , "EditLdapRealm.do?resource=" + sName, "content", false);
01308                 nodeSecurityFactories.addChild(nodeSecurityFactory);
01309             }
01310         }
01311     }
01312 
01321     protected void getSecurityMemoryFactory(TreeControlNode p_SecurityMemoryNode
01322         , MessageResources p_Resources, String p_ResourceFactory)
01323         throws Exception {
01324         TreeControlNode node = null;
01325         // Users node
01326         node = new TreeControlNode(p_SecurityMemoryNode.getName() + WhereAreYou.NODE_SEPARATOR
01327             + "users", "icon/security_memory.gif"
01328             , p_Resources.getMessage("treenode.jonas.server.security.factory.memory.users")
01329             , "EditMemoryRealmUsers.do?resource=" + p_ResourceFactory, "content", false);
01330         p_SecurityMemoryNode.addChild(node);
01331         // Groups node
01332         node = new TreeControlNode(p_SecurityMemoryNode.getName() + WhereAreYou.NODE_SEPARATOR
01333             + "groups", "icon/security_memory.gif"
01334             , p_Resources.getMessage("treenode.jonas.server.security.factory.memory.groups")
01335             , "EditMemoryRealmGroups.do?resource=" + p_ResourceFactory, "content", false);
01336         p_SecurityMemoryNode.addChild(node);
01337         // Roles node
01338         node = new TreeControlNode(p_SecurityMemoryNode.getName() + WhereAreYou.NODE_SEPARATOR
01339             + "roles", "icon/security_memory.gif"
01340             , p_Resources.getMessage("treenode.jonas.server.security.factory.memory.roles")
01341             , "EditMemoryRealmRoles.do?resource=" + p_ResourceFactory, "content", false);
01342         p_SecurityMemoryNode.addChild(node);
01343     }
01344 
01354     protected void getProtocols(TreeControlNode p_ServerNode, MessageResources p_Resources
01355         , HttpServletRequest p_Request)
01356         throws Exception {
01357         // Catalina server
01358         if (JonasAdminJmx.hasMBeanName(CatalinaObjectName.catalinaServer()) == true) {
01359             getCatalinaProtocols(p_ServerNode, p_Resources, p_Request);
01360         }
01361     }
01362 
01372     protected void getCatalinaProtocols(TreeControlNode p_ServerNode, MessageResources p_Resources
01373         , HttpServletRequest p_Request)
01374         throws Exception {
01375         // Add Catalina server node
01376         TreeControlNode catalinaNode = new TreeControlNode(p_ServerNode.getName()
01377             + WhereAreYou.NODE_SEPARATOR + "protocols", "icon/protocol.gif"
01378             , p_Resources.getMessage("treenode.jonas.server.protocols")
01379             , "ListCatalinaConnectors.do", "content", false);
01380         p_ServerNode.addChild(catalinaNode);
01381         // Add Connectors nodes
01382         getCatalinaConnector(catalinaNode, p_Resources, p_Request);
01383     }
01384 
01394     protected void getCatalinaConnector(TreeControlNode p_CatalinaServerNode
01395         , MessageResources p_Resources, HttpServletRequest p_Request)
01396         throws Exception {
01397 
01398         // Add Connector node
01399         TreeControlNode connectorNode = new TreeControlNode(p_CatalinaServerNode.getName()
01400             + WhereAreYou.NODE_SEPARATOR + "connectors", "icon/connectors.gif"
01401             , p_Resources.getMessage("treenode.jonas.server.protocols.connectors")
01402             , "ListCatalinaConnectors.do", "content", false);
01403         p_CatalinaServerNode.addChild(connectorNode);
01404 
01405         getCatalinaDetailConnectors(connectorNode, p_Resources, p_Request);
01406 
01407     }
01408 
01418     public void getCatalinaDetailConnectors(TreeControlNode p_ConnectorNode
01419         , MessageResources p_Resources, HttpServletRequest p_Request)
01420         throws Exception {
01421 
01422         // Get WhereAreYou
01423         WhereAreYou oWhere = (WhereAreYou) p_Request.getSession().getAttribute(WhereAreYou.
01424             SESSION_NAME);
01425 
01426         // Get the domain name
01427         String sDomain = oWhere.getCurrentCatalinaDomainName();
01428         // Get the list of connectors
01429         ArrayList al = new ArrayList();
01430         Iterator it = JonasAdminJmx.getListMBeanName(CatalinaObjectName.catalinaConnectors(sDomain)).
01431             iterator();
01432         while (it.hasNext()) {
01433             al.add(new ConnectorItem(new ObjectName(it.next().toString())
01434                 , oWhere.getApplicationServerPort()));
01435         }
01436         // Sort
01437         Collections.sort(al, new ConnectorItemByPort());
01438         // Build the nodes
01439         TreeControlNode node;
01440         ConnectorItem oConnector;
01441         String sLabel;
01442         for (int i = 0; i < al.size(); i++) {
01443             oConnector = (ConnectorItem) al.get(i);
01444             node = new TreeControlNode(p_ConnectorNode.getName() + WhereAreYou.NODE_SEPARATOR
01445                 + sDomain + WhereAreYou.NODE_SEPARATOR + oConnector.getPort(), "icon/connector.gif"
01446                 , oConnector.getLabel()
01447                 , "EditCatalinaConnector.do?select=" + oConnector.getObjectName(), "content", false);
01448             p_ConnectorNode.addChild(node);
01449         }
01450     }
01451 
01460     public void getJoramPlatform(TreeControlNode pDomainNode,
01461                                     MessageResources pResources)
01462         throws Exception {
01463         
01464         ObjectName oName = new ObjectName("joram:type=JMSlocalServer");
01465 
01466         if (!JonasAdminJmx.hasMBeanName(oName)) {
01467             return;
01468         }
01469 
01470         TreeControlNode platformNode = 
01471           new TreeControlNode(pDomainNode.getName() + WhereAreYou.NODE_SEPARATOR + "joramplatform", 
01472                               "icon/service_jms.gif",
01473                               pResources.getMessage("treenode.joramplatform"),
01474                               "EditJoramPlatform.do",
01475                               "content",
01476                               false);
01477 
01478         pDomainNode.addChild(platformNode);
01479         String localId = (String) JonasManagementRepr.getAttribute(oName, "LocalServerId");
01480 
01481         TreeControlNode localServerNode = 
01482           new TreeControlNode(platformNode.getName() + WhereAreYou.NODE_SEPARATOR + "joramlocalserver", 
01483                               "icon/service_jms.gif",
01484                               pResources.getMessage("treenode.joramplatform.joramlocalserver") + " (" + localId + ")",
01485                               "EditJoramLocalServer.do",
01486                               "content",
01487                               false);
01488 
01489         platformNode.addChild(localServerNode);
01490 
01491         List list = (List) JonasManagementRepr.getAttribute(oName, "PlatformServersIds");
01492         if (list != null) {
01493             Iterator it = list.iterator();
01494             String id;
01495             TreeControlNode remoteServerNode;
01496             while (it.hasNext()) {
01497                 id = it.next().toString();
01498                 String joramremoteserver = null;
01499                 if (! id.equals(localId)) {
01500                     joramremoteserver = "joramremoteserver" + id;
01501                     remoteServerNode = 
01502                       new TreeControlNode(platformNode.getName() + WhereAreYou.NODE_SEPARATOR + joramremoteserver, 
01503                                           "icon/service_jms.gif",
01504                                           pResources.getMessage("treenode.joramplatform.joramremoteserver") + " (" + id + ")",
01505                                           "EditJoramRemoteServer.do?id=" + id,
01506                                           "content",
01507                                           false);
01508 
01509                     platformNode.addChild(remoteServerNode);
01510                 }
01511             }
01512         }
01513 
01514         list = (List) JonasManagementRepr.getAttribute(oName, "LocalQueuesNames");
01515         if (list != null) {
01516             Iterator it = list.iterator();
01517             String name;
01518             TreeControlNode queueNode;
01519             while (it.hasNext()) {
01520                 name = (String) it.next();
01521                 queueNode =
01522                     new TreeControlNode(localServerNode.getName() + WhereAreYou.NODE_SEPARATOR + "joramlocalqueue" + name,
01523                                         "icon/jms_queue.gif",
01524                                         pResources.getMessage("treenode.joramplatform.joramlocalserver.queue") + " (" + name + ")",
01525                                         "EditJoramLocalQueue.do?name=" + name,
01526                                         "content",
01527                                         false);
01528 
01529                  localServerNode.addChild(queueNode);
01530             }
01531         }
01532 
01533         list = (List) JonasManagementRepr.getAttribute(oName, "LocalTopicsNames");
01534         if (list != null) {
01535             Iterator it = list.iterator();
01536             String name;
01537             TreeControlNode topicNode;
01538             while (it.hasNext()) {
01539                 name = (String) it.next();
01540                 topicNode =
01541                     new TreeControlNode(localServerNode.getName() + WhereAreYou.NODE_SEPARATOR + "joramlocaltopic" + name,
01542                                         "icon/jms_topic.gif",
01543                                         pResources.getMessage("treenode.joramplatform.joramlocalserver.topic") + " (" + name + ")",
01544                                         "EditJoramLocalTopic.do?name=" + name,
01545                                         "content",
01546                                         false);
01547 
01548                  localServerNode.addChild(topicNode);
01549             }
01550         }
01551     }
01552 }

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