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
00067 public ActionForward executeAction(ActionMapping pMapping, ActionForm pForm
00068 , HttpServletRequest pRequest, HttpServletResponse pResponse)
00069 throws IOException, ServletException {
00070
00071
00072 m_WhereAreYou.selectNameNode(getTreeBranchName(DEPTH_SERVER) + WhereAreYou.NODE_SEPARATOR
00073 + "services" + WhereAreYou.NODE_SEPARATOR + "database", true);
00074
00075
00076 try {
00077
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
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
00108 return (pMapping.findForward("Databases"));
00109 }
00110 }