ListDatabasesAction.java

00001 
00026 package org.objectweb.jonas.webapp.jonasadmin.service.db;
00027 
00028 import java.io.IOException;
00029 import java.util.ArrayList;
00030 import java.util.Collections;
00031 import java.util.Iterator;
00032 
00033 import javax.management.ObjectName;
00034 import javax.servlet.ServletException;
00035 import javax.servlet.http.HttpServletRequest;
00036 import javax.servlet.http.HttpServletResponse;
00037 
00038 import org.apache.struts.action.ActionForm;
00039 import org.apache.struts.action.ActionForward;
00040 import org.apache.struts.action.ActionMapping;
00041 import org.objectweb.jonas.jmx.J2eeObjectName;
00042 import org.objectweb.jonas.jmx.JonasManagementRepr;
00043 import org.objectweb.jonas.webapp.jonasadmin.JonasBaseAction;
00044 import org.objectweb.jonas.webapp.jonasadmin.WhereAreYou;
00045 
00051 public class ListDatabasesAction extends JonasBaseAction {
00052 
00053 // --------------------------------------------------------- Public Methods
00067     public ActionForward executeAction(ActionMapping pMapping, ActionForm pForm
00068             , HttpServletRequest pRequest, HttpServletResponse pResponse)
00069     throws IOException, ServletException {
00070 
00071         // Force the node selected in tree
00072         m_WhereAreYou.selectNameNode(getTreeBranchName(DEPTH_SERVER) + WhereAreYou.NODE_SEPARATOR
00073                 + "services" + WhereAreYou.NODE_SEPARATOR + "database", true);
00074 
00075         // no Form used
00076         try {
00077             // Use JDBCResource MBean
00078             String domainName = m_WhereAreYou.getCurrentDomainName();
00079             String serverName = m_WhereAreYou.getCurrentJonasServerName();
00080             ObjectName on = J2eeObjectName.JDBCResource(domainName, serverName);
00081             String[] jdbcDataSources = (String[]) JonasManagementRepr.getAttribute(on, "jdbcDataSources");
00082             ArrayList al = new ArrayList();
00083             if (jdbcDataSources.length != 0) {
00084                 String jdbcDataSourceON = null;
00085                 ObjectName jdbcDataSourceObjectName = null;
00086                 String sName = null;
00087                 String sJndiName = null;
00088                 int iJdbcConOpen;
00089                 for (int i = 0; i < jdbcDataSources.length; i++) {
00090                     jdbcDataSourceON = jdbcDataSources[i];
00091                     jdbcDataSourceObjectName = ObjectName.getInstance(jdbcDataSourceON);
00092                     sName = (String) getStringAttribute(jdbcDataSourceObjectName, "name");
00093                     sJndiName = (String) getStringAttribute(jdbcDataSourceObjectName, "jndiName");
00094                     iJdbcConOpen = getIntegerAttribute(jdbcDataSourceObjectName, "currentOpened ");
00095                     al.add(new DatasourceItem(sName, sJndiName, iJdbcConOpen, true));
00096                 }
00097 
00098                 Collections.sort(al, new DatasourceItemByNameComparator());
00099             }
00100             // Set list in the request
00101             pRequest.setAttribute("listDatabases", al);
00102         } catch (Throwable t) {
00103             addGlobalError(t);
00104             saveErrors(pRequest, m_Errors);
00105             return (pMapping.findForward("Global Error"));
00106         }
00107         // Forward to the jsp.
00108         return (pMapping.findForward("Databases"));
00109     }
00110 }

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