001: /**
002: * JOnAS: Java(TM) Open Application Server
003: * Copyright (C) 2005 Bull S.A.
004: * Contact: jonas-team@objectweb.org
005: *
006: * This library is free software; you can redistribute it and/or
007: * modify it under the terms of the GNU Lesser General Public
008: * License as published by the Free Software Foundation; either
009: * version 2.1 of the License, or any later version.
010: *
011: * This library is distributed in the hope that it will be useful,
012: * but WITHOUT ANY WARRANTY; without even the implied warranty of
013: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
014: * Lesser General Public License for more details.
015: *
016: * You should have received a copy of the GNU Lesser General Public
017: * License along with this library; if not, write to the Free Software
018: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
019: * USA
020: *
021: * --------------------------------------------------------------------------
022: * $Id: JoramObjectName.java 9899 2006-12-15 10:32:43Z danesa $
023: * --------------------------------------------------------------------------
024: */package org.objectweb.jonas.jmx;
025:
026: import java.util.Iterator;
027:
028: import javax.management.MalformedObjectNameException;
029: import javax.management.ObjectName;
030:
031: /**
032: * A set of static classes used to build the names of proprietary MBeans used in Joram.
033: * @author Adriana Danes
034: */
035: public class JoramObjectName {
036:
037: static final String JORAM_DOMAIN = "Joram";
038: static final String JORAM_CLIENT_DOMAIN = "joramClient";
039: /**
040: * The name of the JORAM rar used by JOnAS
041: */
042: static final String JORAM_RAR_NAME = "joram_for_jonas_ra";
043:
044: /**
045: * Tests if a ResourceAdapterModule corresponding to the Joram RAR is deployed by testing the
046: * corresponding MBean in the MBean server.
047: */
048: public static boolean isJoramRarDeployed(String domainName,
049: String serverName) {
050: ObjectName resAdaptersOn = J2eeObjectName
051: .getResourceAdapterModules(domainName, serverName);
052: Iterator it = JonasManagementRepr.queryNames(resAdaptersOn,
053: serverName).iterator();
054: while (it.hasNext()) {
055: ObjectName aResAdapterOn = (ObjectName) it.next();
056: String name = aResAdapterOn.getKeyProperty("name");
057: if (name.equals(JORAM_RAR_NAME)) {
058: return true;
059: }
060: }
061: return false;
062: }
063:
064: public static ObjectName joramClientMBeans()
065: throws MalformedObjectNameException {
066: return ObjectName.getInstance(JORAM_CLIENT_DOMAIN + ":*");
067: }
068:
069: /**
070: * @return ObjectName for the current JoramAdapter MBean
071: * @exception MalformedObjectNameException Could not create ObjectName with the given String
072: */
073: public static ObjectName joramAdapter()
074: throws MalformedObjectNameException {
075: return ObjectName.getInstance(JORAM_CLIENT_DOMAIN
076: + ":type=JoramAdapter,*");
077: }
078:
079: /**
080: * @return ObjectName for the JoramPlatform MBean
081: * @exception MalformedObjectNameException Could not create ObjectName with the given String
082: */
083: public static ObjectName joramPlatform()
084: throws MalformedObjectNameException {
085: return ObjectName.getInstance(JORAM_CLIENT_DOMAIN
086: + ":type=PlatformAdmin");
087: }
088:
089: /**
090: * @return ObjectName for the JoramAdmin MBean
091: * @exception MalformedObjectNameException Could not create ObjectName with the given String
092: */
093: public static ObjectName joramAdmin()
094: throws MalformedObjectNameException {
095: return ObjectName.getInstance(JORAM_CLIENT_DOMAIN
096: + ":type=JoramAdmin");
097: }
098:
099: /**
100: * Create ObjectName for a Joram managed queue
101: * @param name queue name
102: * @return ObjectName for a Joram managed queue
103: * @exception MalformedObjectNameException Could not create ObjectName with the given String
104: */
105: public static ObjectName joramQueue(String name)
106: throws MalformedObjectNameException {
107: return ObjectName.getInstance(JORAM_CLIENT_DOMAIN
108: + ":type=queue,name=" + name);
109: }
110:
111: /**
112: * Create ObjectName for all Joram managed queues
113: * @return ObjectName for a Joram managed queue
114: * @exception MalformedObjectNameException Could not create ObjectName with the given String
115: */
116: public static ObjectName joramQueues()
117: throws MalformedObjectNameException {
118: return ObjectName.getInstance(JORAM_CLIENT_DOMAIN
119: + ":type=queue,*");
120: }
121:
122: /**
123: * Create ObjectName for a Joram managed topic
124: * @param name topic name
125: * @return ObjectName for a Joram managed topic
126: * @exception MalformedObjectNameException Could not create ObjectName with the given String
127: */
128: public static ObjectName joramTopic(String name)
129: throws MalformedObjectNameException {
130: return ObjectName.getInstance(JORAM_CLIENT_DOMAIN
131: + ":type=topic,name=" + name);
132: }
133:
134: /**
135: * Create ObjectName for all Joram managed topics
136: * @return ObjectName for a Joram managed topic
137: * @exception MalformedObjectNameException Could not create ObjectName with the given String
138: */
139: public static ObjectName joramTopics()
140: throws MalformedObjectNameException {
141: return ObjectName.getInstance(JORAM_CLIENT_DOMAIN
142: + ":type=topic,*");
143: }
144:
145: /**
146: * Create ObjectName for a Joram managed user
147: * @param name user name
148: * @return ObjectName for a Joram managed user
149: * @exception MalformedObjectNameException Could not create ObjectName with the given String
150: */
151: public static ObjectName joramUser(String name)
152: throws MalformedObjectNameException {
153: return ObjectName.getInstance(JORAM_CLIENT_DOMAIN
154: + ":type=User,name=" + name);
155: }
156:
157: /**
158: * Create ObjectName for all Joram managed users
159: * @return ObjectName for a Joram managed user
160: * @exception MalformedObjectNameException Could not create ObjectName with the given String
161: */
162: public static ObjectName joramUsers()
163: throws MalformedObjectNameException {
164: return ObjectName.getInstance(JORAM_CLIENT_DOMAIN
165: + ":type=User,*");
166: }
167:
168: /**
169: * Unique point giving JORAM rar name to JOnAS management
170: * @return name of the JORAM rar used by JOnAS
171: */
172: public static String getJORAM_RAR_NAME() {
173: return JORAM_RAR_NAME;
174: }
175: }
|