00001
00026 package org.objectweb.jonas.webapp.jonasadmin;
00027
00028 import java.io.File;
00029 import java.util.ArrayList;
00030 import java.util.Collections;
00031 import java.util.Iterator;
00032 import java.util.List;
00033 import java.util.Set;
00034
00035 import javax.management.MalformedObjectNameException;
00036 import javax.management.ObjectName;
00037 import javax.naming.Context;
00038 import javax.naming.NameClassPair;
00039 import javax.naming.NamingEnumeration;
00040 import javax.naming.NamingException;
00041 import javax.servlet.http.HttpServletRequest;
00042
00043 import org.apache.struts.util.MessageResources;
00044 import org.objectweb.jonas.jmx.J2eeObjectName;
00045 import org.objectweb.jonas.jmx.JonasManagementRepr;
00046 import org.objectweb.jonas.jmx.JonasObjectName;
00047 import org.objectweb.jonas.jmx.ManagementException;
00048 import org.objectweb.jonas.mail.MailServiceImpl;
00049 import org.objectweb.jonas.jmx.CatalinaObjectName;
00050 import org.objectweb.jonas.webapp.jonasadmin.common.BeanComparator;
00051 import org.objectweb.jonas.webapp.jonasadmin.logging.LoggerItem;
00052 import org.objectweb.jonas.webapp.jonasadmin.mbean.MbeanItem;
00053
00059 public class JonasAdminJmx {
00060
00061
00062
00063 private static Object s_Synchro = new Object();
00064
00065
00066
00070 protected JonasAdminJmx() {
00071 }
00072
00073
00074
00084 public static String replace(String template, String placeholder, String value) {
00085 if (template == null) {
00086 return (null);
00087 }
00088 if ((placeholder == null) || (value == null)) {
00089 return (template);
00090 }
00091 String sRet = new String(template);
00092 while (true) {
00093 int index = sRet.indexOf(placeholder);
00094 if (index < 0) {
00095 break;
00096 }
00097 StringBuffer temp = new StringBuffer(sRet.substring(0, index));
00098 temp.append(value);
00099 temp.append(sRet.substring(index + placeholder.length()));
00100 sRet = temp.toString();
00101 }
00102 return (sRet);
00103
00104 }
00105
00111 public static ObjectName getJ2eeDomainObjectName() {
00112
00113 ObjectName onDomains = J2eeObjectName.J2EEDomains();
00114 return getFirstMbean(onDomains);
00115 }
00116
00125 public static ObjectName getJ2eeServerObjectName(String p_DomainName) {
00126
00127 ObjectName pattern_server_on = J2eeObjectName.J2EEServers(p_DomainName);
00128 ObjectName server_on = null;
00129 Iterator it = JonasManagementRepr.queryNames(pattern_server_on).iterator();
00130 if (it.hasNext()) {
00131
00132 server_on = (ObjectName) it.next();
00133 }
00134 return server_on;
00135 }
00136
00146 public static ObjectName getJ2eeServerObjectName() {
00147
00148 ObjectName pattern_server_on = J2eeObjectName.J2EEServers();
00149 ObjectName server_on = null;
00150 Iterator it = JonasManagementRepr.queryNames(pattern_server_on).iterator();
00151 if (it.hasNext()) {
00152
00153 server_on = (ObjectName) it.next();
00154 }
00155 return server_on;
00156 }
00157
00165 public static ArrayList getListRemoteJonasServerItem(HttpServletRequest p_Request)
00166 throws Exception {
00167 synchronized (s_Synchro) {
00168 ArrayList oServers = new ArrayList();
00169
00170 String sCurrentRMIConnectorName = JonasManagementRepr.getCurrentRMIConnectorName();
00171
00172
00173 Set setRmiConnector = JonasManagementRepr.getRMIConnectorsNames();
00174 if (setRmiConnector.size() > 0) {
00175 Iterator oIt = setRmiConnector.iterator();
00176 while (oIt.hasNext()) {
00177 JonasServerItem oItem = new JonasServerItem();
00178 oItem.setNameRmiConnector(oIt.next().toString());
00179
00180 JonasManagementRepr.setCurrentRMIConnectorName(oItem.getNameRmiConnector());
00181
00182 ObjectName server_on = getJ2eeServerObjectName();
00183 if (server_on != null) {
00184 String serverName = server_on.getKeyProperty("name");
00185 oItem.setNameServer(serverName);
00186 oServers.add(oItem);
00187 }
00188 }
00189 try {
00190
00191 JonasManagementRepr.setCurrentRMIConnectorName(sCurrentRMIConnectorName);
00192 }
00193 catch (Exception e) {
00194
00195 if (oServers.size() > 0) {
00196 JonasServerItem oItem = (JonasServerItem) oServers.get(0);
00197 JonasManagementRepr.setCurrentRMIConnectorName(oItem.getNameRmiConnector());
00198 }
00199 }
00200 }
00201 return oServers;
00202 }
00203 }
00204
00212 public static boolean hasMBeanName(ObjectName p_On)
00213 throws ManagementException {
00214 synchronized (s_Synchro) {
00215 ArrayList al = new ArrayList();
00216 Iterator itNames = JonasManagementRepr.queryNames(p_On).iterator();
00217 if (itNames.hasNext()) {
00218 return true;
00219 }
00220 return false;
00221 }
00222 }
00223
00231 public static String getFirstMBeanName(ObjectName p_On)
00232 throws ManagementException {
00233 synchronized (s_Synchro) {
00234 ArrayList al = new ArrayList();
00235 Iterator itNames = JonasManagementRepr.queryNames(p_On).iterator();
00236 if (itNames.hasNext()) {
00237 return itNames.next().toString();
00238 }
00239 return null;
00240 }
00241 }
00242
00250 public static List getListMBeanName(ObjectName p_On)
00251 throws ManagementException {
00252 synchronized (s_Synchro) {
00253 ArrayList al = new ArrayList();
00254 Iterator itNames = JonasManagementRepr.queryNames(p_On).iterator();
00255 while (itNames.hasNext()) {
00256 ObjectName item = (ObjectName) itNames.next();
00257 al.add(item.toString());
00258 }
00259 Collections.sort(al);
00260 return al;
00261 }
00262 }
00263
00272 public static ObjectName getFirstMbean(ObjectName p_On)
00273 throws ManagementException {
00274 synchronized (s_Synchro) {
00275 ArrayList al = new ArrayList();
00276 Iterator itNames = JonasManagementRepr.queryNames(p_On).iterator();
00277 if (itNames.hasNext()) {
00278 return (ObjectName) itNames.next();
00279 }
00280 return null;
00281 }
00282 }
00283
00292 public static List getListMbean(ObjectName p_On)
00293 throws ManagementException {
00294 synchronized (s_Synchro) {
00295 ArrayList al = new ArrayList();
00296 Iterator itNames = JonasManagementRepr.queryNames(p_On).iterator();
00297 while (itNames.hasNext()) {
00298 al.add(itNames.next());
00299 }
00300 return al;
00301 }
00302 }
00303
00312 public static String extractValueMbeanName(String pName, String pMBeanName) {
00313 String sValue = null;
00314 try {
00315 String sSearch = pName.trim() + "=";
00316 int iPos = pMBeanName.indexOf(sSearch);
00317 if (iPos > -1) {
00318 sValue = pMBeanName.substring(iPos + sSearch.length());
00319 iPos = sValue.indexOf(",");
00320 if (iPos > -1) {
00321 sValue = sValue.substring(0, iPos);
00322 }
00323 }
00324 } catch (NullPointerException e) {
00325
00326 sValue = null;
00327 }
00328 return sValue;
00329 }
00330
00337 public static String extractFilename(String p_Path) {
00338 String sFilename = null;
00339 try {
00340 int iPosSeparator = p_Path.lastIndexOf("/");
00341 if (iPosSeparator < 0) {
00342 iPosSeparator = p_Path.lastIndexOf("\\");
00343 if (iPosSeparator < 0) {
00344 sFilename = new String(p_Path);
00345 }
00346 else {
00347 sFilename = p_Path.substring(iPosSeparator + 1);
00348 }
00349 }
00350 else {
00351 sFilename = p_Path.substring(iPosSeparator + 1);
00352 }
00353 if (sFilename.length() > 0) {
00354 int iPos_1 = p_Path.indexOf(DIR_AUTOLOAD + "/" + sFilename);
00355 int iPos_2 = p_Path.indexOf(DIR_AUTOLOAD + "\\" + sFilename);
00356 if (iPos_1 > -1) {
00357 sFilename = DIR_AUTOLOAD + "/" + sFilename;
00358 }
00359 else if (iPos_2 > -1) {
00360 sFilename = DIR_AUTOLOAD + "\\" + sFilename;
00361 }
00362 }
00363 else {
00364 sFilename = null;
00365 }
00366 }
00367 catch (NullPointerException e) {
00368
00369 sFilename = null;
00370 }
00371 return sFilename;
00372 }
00373
00377 private static String DIR_RARS = "rars";
00378 private static String DIR_AUTOLOAD = "autoload";
00379 private static String DIR_CONF = "conf";
00380
00381 private static ArrayList getFilenames(String p_Directory, String p_Extension) {
00382 ArrayList al = new ArrayList();
00383 String sExt = "." + p_Extension.toLowerCase();
00384 String sFile;
00385
00386 File oFile = new File(p_Directory);
00387 String[] asFiles = oFile.list();
00388 int iPos;
00389 if (asFiles != null) {
00390 for (int i = 0; i < asFiles.length; i++) {
00391 oFile = new File(p_Directory, asFiles[i]);
00392 if (oFile.isFile() == true) {
00393 sFile = oFile.getName().toLowerCase();
00394 iPos = sFile.lastIndexOf(sExt);
00395 if (iPos > -1) {
00396 if (iPos == (sFile.length() - sExt.length())) {
00397 al.add(oFile.getName());
00398 }
00399 }
00400 }
00401 }
00402 }
00403 Collections.sort(al);
00404 return al;
00405 }
00406
00407 private static ArrayList getDirectories(String p_Directory) {
00408 ArrayList al = new ArrayList();
00409 String sFile;
00410
00411 File oFile = new File(p_Directory);
00412 String[] asFiles = oFile.list();
00413
00414 if (asFiles != null) {
00415 for (int i = 0; i < asFiles.length; i++) {
00416 oFile = new File(p_Directory, asFiles[i]);
00417 if (oFile.isDirectory() == true) {
00418 al.add(oFile.getName());
00419 }
00420 }
00421 }
00422 Collections.sort(al);
00423 return al;
00424 }
00425
00426 private static void appendDirectory(ArrayList p_List, String p_Dir) {
00427 String sDir = p_Dir + "/";
00428 for (int i = 0; i < p_List.size(); i++) {
00429 p_List.set(i, sDir + p_List.get(i));
00430 }
00431 }
00432
00439 public static ArrayList getJarFilesDeployable()
00440 throws ManagementException {
00441 ObjectName on = JonasObjectName.ejbService();
00442 ArrayList al = (ArrayList) JonasManagementRepr.getAttribute(on, "DeployableJars");
00443 String sDir = (String) JonasManagementRepr.getAttribute(on, "EjbjarsDirectory");
00444
00445 String sEarDir = null;
00446 try {
00447 on = JonasObjectName.earService();
00448 sEarDir = (String) JonasManagementRepr.getAttribute(on, "AppsDirectory");
00449 }
00450 catch (Exception e) {
00451
00452 }
00453 return prepareContainersToDisplay(al, sDir, sEarDir);
00454 }
00455
00462 public static ArrayList getRarFilesDeployable()
00463 throws ManagementException {
00464 ObjectName on = JonasObjectName.resourceService();
00465 ArrayList al = (ArrayList) JonasManagementRepr.getAttribute(on, "DeployableRars");
00466 String sDir = (String) JonasManagementRepr.getAttribute(on, "RarsDirectory");
00467
00468 String sEarDir = null;
00469 try {
00470 on = JonasObjectName.earService();
00471 sEarDir = (String) JonasManagementRepr.getAttribute(on, "AppsDirectory");
00472 }
00473 catch (Exception e) {
00474
00475 }
00476 return prepareContainersToDisplay(al, sDir, sEarDir);
00477 }
00478
00485 public static ArrayList getEarFilesDeployable()
00486 throws ManagementException {
00487 ObjectName on = JonasObjectName.earService();
00488 ArrayList al = (ArrayList) JonasManagementRepr.getAttribute(on, "DeployableEars");
00489 String sDir = (String) JonasManagementRepr.getAttribute(on, "AppsDirectory");
00490 return prepareContainersToDisplay(al, sDir, null);
00491 }
00492
00499 public static ArrayList getWarFilesDeployable()
00500 throws ManagementException {
00501 ObjectName on = JonasObjectName.webContainerService();
00502 ArrayList al = (ArrayList) JonasManagementRepr.getAttribute(on, "DeployableWars");
00503 String sDir = (String) JonasManagementRepr.getAttribute(on, "WebappsDirectory");
00504
00505 String sEarDir = null;
00506 try {
00507 on = JonasObjectName.earService();
00508 sEarDir = (String) JonasManagementRepr.getAttribute(on, "AppsDirectory");
00509 }
00510 catch (Exception e) {
00511
00512 }
00513 return prepareContainersToDisplay(al, sDir, sEarDir);
00514 }
00515
00522 public static ArrayList getJarFilesDeployed()
00523 throws ManagementException {
00524 ObjectName on = JonasObjectName.ejbService();
00525 ArrayList al = (ArrayList) JonasManagementRepr.getAttribute(on, "DeployedJars");
00526 String sDir = (String) JonasManagementRepr.getAttribute(on, "EjbjarsDirectory");
00527
00528 String sEarDir = null;
00529 try {
00530 on = JonasObjectName.earService();
00531 sEarDir = (String) JonasManagementRepr.getAttribute(on, "AppsDirectory");
00532 }
00533 catch (Exception e) {
00534
00535 }
00536 return prepareContainersToDisplay(al, sDir, sEarDir);
00537 }
00538
00545 public static ArrayList getEarFilesDeployed()
00546 throws ManagementException {
00547 ObjectName on = JonasObjectName.earService();
00548 ArrayList al = (ArrayList) JonasManagementRepr.getAttribute(on, "DeployedEars");
00549 String sDir = (String) JonasManagementRepr.getAttribute(on, "AppsDirectory");
00550 return prepareContainersToDisplay(al, sDir, null);
00551 }
00552
00559 public static ArrayList getRarFilesDeployed()
00560 throws ManagementException {
00561 ObjectName on = JonasObjectName.resourceService();
00562 ArrayList al = (ArrayList) JonasManagementRepr.getAttribute(on, "DeployedRars");
00563 String sDir = (String) JonasManagementRepr.getAttribute(on, "RarsDirectory");
00564
00565 String sEarDir = null;
00566 try {
00567 on = JonasObjectName.earService();
00568 sEarDir = (String) JonasManagementRepr.getAttribute(on, "AppsDirectory");
00569 }
00570 catch (ManagementException e) {
00571
00572 }
00573 return prepareContainersToDisplay(al, sDir, sEarDir);
00574 }
00575
00582 public static ArrayList getWarFilesDeployed()
00583 throws ManagementException {
00584 ObjectName on = JonasObjectName.webContainerService();
00585 ArrayList al = (ArrayList) JonasManagementRepr.getAttribute(on, "DeployedWars");
00586 String sDir = (String) JonasManagementRepr.getAttribute(on, "WebappsDirectory");
00587
00588 String sEarDir = null;
00589 try {
00590 on = JonasObjectName.earService();
00591 sEarDir = (String) JonasManagementRepr.getAttribute(on, "AppsDirectory");
00592 }
00593 catch (ManagementException e) {
00594
00595 }
00596 return prepareContainersToDisplay(al, sDir, sEarDir);
00597 }
00598
00607 public static ArrayList prepareContainersToDisplay(ArrayList p_Containers
00608 , String p_ContainerDir, String p_EarDir) {
00609 int iPos;
00610 String sPath;
00611 boolean bAdd;
00612 ArrayList al = new ArrayList();
00613 for (int i = 0; i < p_Containers.size(); i++) {
00614
00615 sPath = p_Containers.get(i).toString();
00616 iPos = sPath.indexOf(p_ContainerDir);
00617 if (iPos > -1) {
00618 sPath = sPath.substring(p_ContainerDir.length());
00619 }
00620
00621 if (sPath.endsWith("/") == true) {
00622 sPath = sPath.substring(0, sPath.length() - 1);
00623 }
00624
00625 bAdd = true;
00626
00627 if (p_EarDir != null) {
00628 iPos = sPath.indexOf(p_EarDir);
00629 if (iPos > -1) {
00630 bAdd = false;
00631 }
00632
00633 }
00634 if (bAdd == true) {
00635 al.add(sPath);
00636 }
00637 }
00638
00639 Collections.sort(al);
00640 return al;
00641 }
00642
00643 private static ArrayList getFilesDeployed(ObjectName on)
00644 throws ManagementException {
00645 ArrayList alDeployed = new ArrayList();
00646 String sPath;
00647 String sFile;
00648 Iterator itNames = JonasAdminJmx.getListMBeanName(on).iterator();
00649 while (itNames.hasNext()) {
00650 sPath = JonasAdminJmx.extractValueMbeanName("fname", itNames.next().toString());
00651 sFile = JonasAdminJmx.extractFilename(sPath);
00652 if (sFile != null) {
00653 alDeployed.add(sFile);
00654 }
00655 }
00656 Collections.sort(alDeployed);
00657 return alDeployed;
00658
00659 }
00660
00667 public static ArrayList getMailFilesDeployable()
00668 throws ManagementException {
00669 ObjectName on = JonasObjectName.mailService();
00670 return (ArrayList) JonasManagementRepr.getAttribute(on, "MailFactoryPropertiesFiles");
00671 }
00672
00679 public static ArrayList getMimePartMailFilesDeployable()
00680 throws ManagementException {
00681 ObjectName on = JonasObjectName.mailService();
00682 return (ArrayList) JonasManagementRepr.getAttribute(on
00683 , "MimePartMailFactoryPropertiesFiles");
00684 }
00685
00692 public static ArrayList getSessionMailFilesDeployable()
00693 throws ManagementException {
00694 ObjectName on = JonasObjectName.mailService();
00695 return (ArrayList) JonasManagementRepr.getAttribute(on, "SessionMailFactoryPropertiesFiles");
00696 }
00697
00705 public static ArrayList getMimePartMailFilesDeployed(WhereAreYou p_WhereAreYou)
00706 throws ManagementException {
00707 ArrayList alDeployed = new ArrayList();
00708 String sName;
00709 String domainName = p_WhereAreYou.getCurrentDomainName();
00710 String serverName = p_WhereAreYou.getCurrentJonasServerName();
00711 ObjectName on = J2eeObjectName.JavaMailResources(domainName, serverName
00712 , MailServiceImpl.MIMEPART_PROPERTY_TYPE);
00713 Iterator itNames = JonasManagementRepr.queryNames(on).iterator();
00714 while (itNames.hasNext()) {
00715 ObjectName it_on = (ObjectName) itNames.next();
00716 sName = it_on.getKeyProperty("name");
00717 if (sName != null) {
00718 alDeployed.add(sName);
00719 }
00720 }
00721 Collections.sort(alDeployed);
00722 return alDeployed;
00723 }
00724
00732 public static ArrayList getSessionMailFilesDeployed(WhereAreYou p_WhereAreYou)
00733 throws ManagementException {
00734 ArrayList alDeployed = new ArrayList();
00735 String sName;
00736 String domainName = p_WhereAreYou.getCurrentDomainName();
00737 String serverName = p_WhereAreYou.getCurrentJonasServerName();
00738 ObjectName on = J2eeObjectName.JavaMailResources(domainName, serverName
00739 , MailServiceImpl.SESSION_PROPERTY_TYPE);
00740 Iterator itNames = JonasManagementRepr.queryNames(on).iterator();
00741 while (itNames.hasNext()) {
00742 ObjectName it_on = (ObjectName) itNames.next();
00743 sName = it_on.getKeyProperty("name");
00744 if (sName != null) {
00745 alDeployed.add(sName);
00746 }
00747 }
00748 Collections.sort(alDeployed);
00749 return alDeployed;
00750 }
00751
00759 public static ArrayList getMailFilesDeployed(WhereAreYou p_WhereAreYou)
00760 throws ManagementException {
00761 ArrayList alDeployed = getSessionMailFilesDeployed(p_WhereAreYou);
00762 alDeployed.addAll(getMimePartMailFilesDeployed(p_WhereAreYou));
00763 Collections.sort(alDeployed);
00764 return alDeployed;
00765 }
00766
00773 public static ArrayList getDatasourceFilesDeployable()
00774 throws ManagementException {
00775 ObjectName on = JonasObjectName.databaseService();
00776 return (ArrayList) JonasManagementRepr.getAttribute(on, "DataSourcePropertiesFiles");
00777 }
00778
00786 public static ArrayList getDatasourceFilesDeployed(String domainName, String serverName)
00787 throws ManagementException {
00788
00789 ArrayList alDeployed = new ArrayList();
00790 ObjectName ons = J2eeObjectName.JDBCDataSources(domainName, serverName);
00791
00792 Iterator itNames = JonasManagementRepr.queryNames(ons).iterator();
00793 String sName = null;
00794 while (itNames.hasNext()) {
00795 ObjectName on = (ObjectName) itNames.next();
00796 sName = on.getKeyProperty("name");
00797 if (sName != null) {
00798 alDeployed.add(sName);
00799 }
00800 }
00801 Collections.sort(alDeployed);
00802 return alDeployed;
00803 }
00804
00815 public static ArrayList getDatasourceDependences(String pDatasourceName, String domainName, String serverName)
00816 throws ManagementException {
00817 ObjectName jdbcDatasource = J2eeObjectName.getJDBCDataSource(domainName, serverName, pDatasourceName);
00818 String[] asParam = new String[1];
00819 String[] asSignature = new String[1];
00820 asSignature[0] = "java.lang.String";
00821 ArrayList al = new ArrayList();
00822 asParam[0] = (String) JonasManagementRepr.getAttribute(jdbcDatasource, "jndiName");
00823 if (JonasManagementRepr.isRegistered(JonasObjectName.ejbService())) {
00824 String sName;
00825 Iterator it = ((java.util.Set) JonasManagementRepr.invoke(JonasObjectName.ejbService()
00826 , "getDataSourceDependence", asParam, asSignature)).iterator();
00827 while (it.hasNext()) {
00828 sName = JonasAdminJmx.extractValueMbeanName(",name", it.next().toString());
00829 if (sName != null) {
00830 al.add(sName);
00831 }
00832 }
00833 Collections.sort(al);
00834 }
00835 return al;
00836 }
00837
00846 public static ArrayList getMailFactoryDependences(String p_MailFactoryName
00847 , WhereAreYou p_WhereAreYou)
00848 throws ManagementException {
00849 String jndiName = null;
00850 String domainName = p_WhereAreYou.getCurrentDomainName();
00851 String serverName = p_WhereAreYou.getCurrentJonasServerName();
00852 String type = MailServiceImpl.SESSION_PROPERTY_TYPE;
00853
00854
00855 ObjectName on = J2eeObjectName.JavaMailResource(domainName, p_MailFactoryName, serverName
00856 , type);
00857
00858 if (JonasManagementRepr.isRegistered(on) != true) {
00859
00860
00861 type = MailServiceImpl.MIMEPART_PROPERTY_TYPE;
00862 on = J2eeObjectName.JavaMailResource(domainName, p_MailFactoryName, serverName, type);
00863 }
00864 jndiName = (String) JonasManagementRepr.getAttribute(on, "Name");
00865
00866 String[] asParam = new String[1];
00867 String[] asSignature = new String[1];
00868 asSignature[0] = "java.lang.String";
00869 ArrayList al = new ArrayList();
00870 asParam[0] = jndiName;
00871 if (JonasManagementRepr.isRegistered(JonasObjectName.ejbService()) == true) {
00872 String sName;
00873 Iterator it = ((java.util.Set) JonasManagementRepr.invoke(JonasObjectName.ejbService()
00874 , "getMailFactoryDependence", asParam, asSignature)).iterator();
00875 while (it.hasNext()) {
00876 sName = JonasAdminJmx.extractValueMbeanName(",name", it.next().toString());
00877 if (sName != null) {
00878 al.add(sName);
00879 }
00880 }
00881 Collections.sort(al);
00882 }
00883 return al;
00884 }
00885
00893 public static ArrayList getSessionMailFactoriesDeployed(WhereAreYou p_WhereAreYou)
00894 throws ManagementException {
00895
00896 ArrayList alDeployed = new ArrayList();
00897 String sName;
00898 String domainName = p_WhereAreYou.getCurrentDomainName();
00899 String serverName = p_WhereAreYou.getCurrentJonasServerName();
00900 String type = MailServiceImpl.SESSION_PROPERTY_TYPE;
00901
00902 ObjectName any_on = J2eeObjectName.JavaMailResources(domainName, serverName, type);
00903 Iterator itNames = JonasManagementRepr.queryNames(any_on).iterator();
00904 while (itNames.hasNext()) {
00905 ObjectName on = (ObjectName) itNames.next();
00906 sName = on.getKeyProperty("name");
00907 if (sName != null) {
00908 alDeployed.add(sName);
00909 }
00910 }
00911
00912 Collections.sort(alDeployed);
00913 return alDeployed;
00914 }
00915
00923 public static ArrayList getMimeMailPartFactoriesDeployed(WhereAreYou p_WhereAreYou)
00924 throws ManagementException {
00925 ArrayList alDeployed = new ArrayList();
00926 String sName;
00927 String domainName = p_WhereAreYou.getCurrentDomainName();
00928 String serverName = p_WhereAreYou.getCurrentJonasServerName();
00929 String type = MailServiceImpl.MIMEPART_PROPERTY_TYPE;
00930
00931 ObjectName any_on = J2eeObjectName.JavaMailResources(domainName, serverName, type);
00932 Iterator itNames = JonasManagementRepr.queryNames(any_on).iterator();
00933 while (itNames.hasNext()) {
00934 ObjectName on = (ObjectName) itNames.next();
00935 sName = on.getKeyProperty("name");
00936 if (sName != null) {
00937 alDeployed.add(sName);
00938 }
00939 }
00940 Collections.sort(alDeployed);
00941 return alDeployed;
00942 }
00943
00951 public static ArrayList getSecurityMemoryFactories()
00952 throws ManagementException, MalformedObjectNameException {
00953 String sName;
00954 ArrayList al = new ArrayList();
00955 Iterator itNames = getListMBeanName(JonasObjectName.allSecurityMemoryFactories()).iterator();
00956 while (itNames.hasNext()) {
00957 sName = JonasAdminJmx.extractValueMbeanName(",name", itNames.next().toString());
00958 if (sName != null) {
00959 al.add(sName);
00960 }
00961 }
00962 Collections.sort(al);
00963 return al;
00964 }
00965
00973 public static ArrayList getSecurityDatasourceFactories()
00974 throws ManagementException, MalformedObjectNameException {
00975 String sName;
00976 ArrayList al = new ArrayList();
00977 Iterator itNames = getListMBeanName(JonasObjectName.allSecurityDatasourceFactories()).
00978 iterator();
00979 while (itNames.hasNext()) {
00980 sName = JonasAdminJmx.extractValueMbeanName(",name", itNames.next().toString());
00981 if (sName != null) {
00982 al.add(sName);
00983 }
00984 }
00985 Collections.sort(al);
00986 return al;
00987 }
00988
00996 public static ArrayList getSecurityLdapFactories()
00997 throws ManagementException, MalformedObjectNameException {
00998 String sName;
00999 ArrayList al = new ArrayList();
01000 Iterator itNames = getListMBeanName(JonasObjectName.allSecurityLdapFactories()).iterator();
01001 while (itNames.hasNext()) {
01002 sName = JonasAdminJmx.extractValueMbeanName(",name", itNames.next().toString());
01003 if (sName != null) {
01004 al.add(sName);
01005 }
01006 }
01007 Collections.sort(al);
01008 return al;
01009 }
01010
01019 public static String findSecurityFactorySubType(String p_NameFactory)
01020 throws ManagementException, MalformedObjectNameException {
01021 String sName;
01022 String sSubType = null;
01023 ObjectName on = null;
01024
01025 Iterator itNames = getListMBeanName(JonasObjectName.allSecurityFactories()).iterator();
01026 while (itNames.hasNext()) {
01027 on = new ObjectName(itNames.next().toString());
01028 sName = on.getKeyProperty("name");
01029 if (p_NameFactory.equals(sName) == true) {
01030 sSubType = on.getKeyProperty("subtype");
01031 break;
01032 }
01033 }
01034 return sSubType;
01035 }
01036
01045 public static ArrayList getUsers(String p_Resource)
01046 throws ManagementException, MalformedObjectNameException {
01047 String sName;
01048 ArrayList al = new ArrayList();
01049 Iterator itNames = getListMBeanName(JonasObjectName.allUsers(p_Resource)).iterator();
01050 while (itNames.hasNext()) {
01051 sName = JonasAdminJmx.extractValueMbeanName(",name", itNames.next().toString());
01052 if (sName != null) {
01053 al.add(sName);
01054 }
01055 }
01056 Collections.sort(al);
01057 return al;
01058 }
01059
01068 public static ArrayList getRoles(String p_Resource)
01069 throws ManagementException, MalformedObjectNameException {
01070 String sName;
01071 ArrayList al = new ArrayList();
01072 Iterator itNames = getListMBeanName(JonasObjectName.allRoles(p_Resource)).iterator();
01073 while (itNames.hasNext()) {
01074 sName = JonasAdminJmx.extractValueMbeanName(",name", itNames.next().toString());
01075 if (sName != null) {
01076 al.add(sName);
01077 }
01078 }
01079 Collections.sort(al);
01080 return al;
01081 }
01082
01091 public static ArrayList getGroups(String p_Resource)
01092 throws ManagementException, MalformedObjectNameException {
01093 String sName;
01094 ArrayList al = new ArrayList();
01095 Iterator itNames = getListMBeanName(JonasObjectName.allGroups(p_Resource)).iterator();
01096 while (itNames.hasNext()) {
01097 sName = JonasAdminJmx.extractValueMbeanName(",name", itNames.next().toString());
01098 if (sName != null) {
01099 al.add(sName);
01100 }
01101 }
01102 Collections.sort(al);
01103 return al;
01104 }
01105
01112 public static ArrayList getRegistryList()
01113 throws NamingException {
01114 synchronized (s_Synchro) {
01115 ArrayList oNames = new ArrayList();
01116
01117 Context ctx = JonasManagementRepr.getContext();
01118
01119 for (NamingEnumeration e = ctx.list(""); e.hasMoreElements(); ) {
01120 oNames.add(((NameClassPair) e.nextElement()).getName());
01121 }
01122 return oNames;
01123 }
01124 }
01125
01130 public static ArrayList getQueuesList() {
01131 synchronized (s_Synchro) {
01132 ObjectName jmsServMB = JonasObjectName.jmsService();
01133 Set queues = (Set) JonasManagementRepr.getAttribute(jmsServMB
01134 , "AllJmsQueueDestinationNames");
01135 ArrayList al = new ArrayList();
01136 Iterator itNames = queues.iterator();
01137 while (itNames.hasNext()) {
01138 al.add(itNames.next());
01139 }
01140 return al;
01141 }
01142 }
01143
01148 public static ArrayList getTopicsList() {
01149 synchronized (s_Synchro) {
01150 ObjectName jmsServMB = JonasObjectName.jmsService();
01151 Set topics = (Set) JonasManagementRepr.getAttribute(jmsServMB
01152 , "AllJmsTopicDestinationNames");
01153 ArrayList al = new ArrayList();
01154 Iterator itNames = topics.iterator();
01155 while (itNames.hasNext()) {
01156 al.add(itNames.next());
01157 }
01158 return al;
01159 }
01160 }
01161
01168 public static ArrayList getConnectionFactoriesList(MessageResources p_Resources) {
01169 synchronized (s_Synchro) {
01170 ObjectName jmsServMB = JonasObjectName.jmsService();
01171 String cfName = (String) JonasManagementRepr.getAttribute(jmsServMB
01172 , "DefaultConnectionFactoryName");
01173 String tcfName = (String) JonasManagementRepr.getAttribute(jmsServMB
01174 , "DefaultTopicConnectionFactoryName");
01175 String qcfName = (String) JonasManagementRepr.getAttribute(jmsServMB
01176 , "DefaultQueueConnectionFactoryName");
01177 ArrayList al = new ArrayList();
01178 String comment = p_Resources.getMessage("tab.connfact.defaultconnfact");
01179 JmsConnFact cf = new JmsConnFact(cfName, comment);
01180 al.add(cf);
01181 comment = p_Resources.getMessage("tab.connfact.defaulttopicconnfact");
01182 cf = new JmsConnFact(tcfName, comment);
01183 al.add(cf);
01184 comment = p_Resources.getMessage("tab.connfact.defaultqueueconnfact");
01185 cf = new JmsConnFact(qcfName, comment);
01186 al.add(cf);
01187 return al;
01188 }
01189 }
01190
01199 public static ArrayList getLoggers(MessageResources p_Resources, WhereAreYou p_WhereAreYou
01200 , boolean p_Action)
01201 throws ManagementException {
01202 ArrayList al = new ArrayList();
01203 String sActionForward;
01204
01205 if (p_Action == true) {
01206 sActionForward = "EditLoggingJonas.do";
01207 }
01208 else {
01209 sActionForward = "ActionEditLoggingJonas";
01210 }
01211 al.add(new LoggerItem(p_Resources.getMessage("logger.jonas.name"), LoggerItem.LOGGER_JONAS
01212 , sActionForward));
01213
01214 if (p_WhereAreYou.isCatalinaServer() == true) {
01215 ObjectName on = CatalinaObjectName.catalinaValve(p_WhereAreYou.
01216 getCurrentCatalinaDomainName(), "AccessLogValve"
01217 , p_WhereAreYou.getCurrentCatalinaDefaultHostName());
01218
01219 if (hasMBeanName(on) == true) {
01220 if (p_Action == true) {
01221 sActionForward = "EditCatalinaAccessLogger.do?select=" + on.toString();
01222 }
01223 else {
01224 sActionForward = "ActionEditCatalinaAccessLogger";
01225 }
01226
01227 al.add(new LoggerItem(p_Resources.getMessage("logger.catalina.access.name")
01228 , LoggerItem.LOGGER_CATALINA_ACCESS, sActionForward, on.toString()));
01229
01230 }
01231
01232 }
01233
01234 Collections.sort(al, new BeanComparator(new String[]{"name"}));
01235 return al;
01236 }
01237
01244 public static ArrayList getMbeansLists()
01245 throws ManagementException {
01246
01247 MbeanItem oItem;
01248
01249
01250 ArrayList al = new ArrayList();
01251
01252 Iterator it = JonasAdminJmx.getListMbean(null).iterator();
01253 while (it.hasNext()) {
01254 oItem = MbeanItem.build((ObjectName) it.next());
01255 al.add(oItem);
01256 }
01257 return al;
01258 }
01259
01266 public static ArrayList[] getFamiliesMbeansLists()
01267 throws ManagementException {
01268
01269 MbeanItem oItem;
01270
01271
01272 ArrayList[] als = new ArrayList[3];
01273 for (int i = 0; i < MbeanItem.SIZE_FAMILIES; i++) {
01274 als[i] = new ArrayList();
01275 }
01276
01277 Iterator it = JonasAdminJmx.getListMbean(null).iterator();
01278 while (it.hasNext()) {
01279 oItem = MbeanItem.build((ObjectName) it.next());
01280 als[oItem.getFamily()].add(oItem);
01281 }
01282 return als;
01283 }
01284 }