summaryrefslogtreecommitdiff
path: root/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/JmxService.java
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/JmxService.java')
-rw-r--r--trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/JmxService.java410
1 files changed, 0 insertions, 410 deletions
diff --git a/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/JmxService.java b/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/JmxService.java
deleted file mode 100644
index 657d7e6210..0000000000
--- a/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/JmxService.java
+++ /dev/null
@@ -1,410 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-package org.apache.qpid.management.domain.model;
-
-import java.lang.management.ManagementFactory;
-import java.util.Set;
-import java.util.UUID;
-
-import javax.management.MBeanException;
-import javax.management.MBeanServer;
-import javax.management.MalformedObjectNameException;
-import javax.management.ObjectName;
-
-import org.apache.qpid.management.Messages;
-import org.apache.qpid.management.Names;
-import org.apache.qpid.management.domain.model.QpidClass.QManManagedObject;
-import org.apache.qpid.management.domain.model.QpidEvent.QManManagedEvent;
-import org.apache.qpid.management.domain.model.type.Binary;
-import org.apache.qpid.management.domain.services.QMan;
-import org.apache.qpid.transport.util.Logger;
-
-/**
- * A simple facade used to perform operations on Mbean server.
- */
-public class JmxService
-{
- private final static Logger LOGGER = Logger.get(JmxService.class);
- MBeanServer _mxServer = ManagementFactory.getPlatformMBeanServer();
-
- /**
- * Registers QMan with the MBeanServer.
- * After that QMan management interface will be JMX-exposed.
- *
- * @param qman QMan
- * @throws MBeanException when some error occurs during registration.
- */
- public void registerQManService(QMan qman) throws MBeanException
- {
- if (!_mxServer.isRegistered(Names.QMAN_OBJECT_NAME))
- {
- try {
- _mxServer.registerMBean(qman, Names.QMAN_OBJECT_NAME);
- } catch (Exception exception) {
- throw new MBeanException(exception);
- }
- }
- }
-
- /**
- * Registers an event instance with MBean server.
- *
- * @param eventInstance the mben event instance
- * @param brokerId the broker identifier.
- * @param packageName the package name.
- * @param eventClassName the event class name.
- * @return the object name used for registration.
- */
- ObjectName registerEventInstance(
- QManManagedEvent eventInstance,
- UUID brokerId,
- String packageName,
- String eventClassName)
- {
- ObjectName name = createEventName(brokerId, packageName, eventClassName);
- if (!_mxServer.isRegistered(name))
- {
- try
- {
- _mxServer.registerMBean(eventInstance, name);
-
- LOGGER.debug(
- Messages.QMAN_200010_EVENT_MBEAN_REGISTERED,
- brokerId,
- packageName,
- eventClassName,
- name);
- } catch (Exception exception)
- {
- throw new RuntimeException(exception);
- }
- }
- return name;
-}
-
- /**
- * Registers a pre-existing object instance as an MBean with the MBean
- * server.
- *
- * @param instance the object instance.
- * @param brokerId the broker identifier.
- * @param packageName the name of the package containing this instance.
- * @param className the name of the owner class of this instance.
- * @param objectId the object instance identifier.
- * @return the object name used for registration.
- */
- ObjectName registerObjectInstance(
- QManManagedObject instance,
- UUID brokerId,
- String packageName,
- String className,
- Binary objectId)
- {
- ObjectName name = createObjectName(brokerId, packageName, className, objectId);
- if (!_mxServer.isRegistered(name))
- {
- try
- {
- _mxServer.registerMBean(instance, name);
-
- LOGGER.debug(
- Messages.QMAN_200011_OBJECT_MBEAN_REGISTERED,
- brokerId,
- packageName,
- className,
- objectId,
- name);
- } catch (Exception exception)
- {
- throw new RuntimeException(exception);
- }
- }
- return name;
- }
-
- /**
- * Removes / unregisters a managed object instance from the MBean Server.
- *
- * @param brokerId the broker identifier.
- * @param packageName the name of the package containing this instance.
- * @param className the name of the owner class of this instance.
- * @param objectId the object instance identifier.
- * @return obejctName the obejct name used for deregistration.
- */
- ObjectName unregisterObjectInstance(
- UUID brokerId,
- String packageName,
- String className,
- Binary objectId)
- {
- ObjectName name = createObjectName(brokerId, packageName, className, objectId);
- if (_mxServer.isRegistered(name))
- {
- try
- {
- _mxServer.unregisterMBean(name);
-
- LOGGER.debug(
- Messages.QMAN_200012_OBJECT_MBEAN_UNREGISTERED,
- brokerId,
- packageName,
- className,
- objectId,
- name);
- } catch (Exception exception)
- {
- LOGGER.error(exception,Messages.QMAN_100013_MBEAN_REGISTRATION_FAILURE,name);
- }
- }
- return name;
- }
-
- /**
- * Removes (unregister) all events from MBean Server.
- */
- void unregisterEvents()
- {
- for (ObjectName name : getEventMBeans())
- {
- try
- {
- _mxServer.unregisterMBean(name);
- } catch(Exception ignore)
- {
- }
- }
- }
-
- @SuppressWarnings("unchecked")
- Set<ObjectName> getEventMBeans()
- {
- return _mxServer.queryNames(createEventSearchName(),null);
- }
-
- /**
- * Removes (unregister) all object instances from MBean Server.
- */
- @SuppressWarnings("unchecked")
- void unregisterObjectInstances()
- {
- Set<ObjectName> names = _mxServer.queryNames(createObjectInstanceSearchName(),null);
- for (ObjectName name : names)
- {
- try
- {
- _mxServer.unregisterMBean(name);
- } catch(Exception ignore)
- {
- }
- }
- }
-
- /**
- * Factory method for ObjectNames.
- *
- * @param brokerId the broker identifier.
- * @param packageName the name of the package containing this instance.
- * @param className the name of the owner class of this instance.
- * @param objectId the object instance identifier.
- * @return the object name built according to the given parameters.
- */
- private ObjectName createObjectName(UUID brokerId, String packageName, String className, Binary objectId)
- {
- String asString = new StringBuilder()
- .append(Names.DOMAIN_NAME)
- .append(':')
- .append(Names.BROKER_ID)
- .append('=')
- .append(brokerId)
- .append(",type=Object,")
- .append(Names.PACKAGE)
- .append('=')
- .append(packageName)
- .append(',')
- .append(Names.CLASS)
- .append('=')
- .append(className)
- .append(',')
- .append(Names.OBJECT_ID)
- .append('=')
- .append(objectId)
- .toString();
- try
- {
- return new ObjectName(asString);
- } catch (MalformedObjectNameException exception)
- {
- throw new RuntimeException(exception);
- }
- }
-
- /**
- * Creates an object name that will be used for searching all registered events.
- *
- * @return the object name that will be used for searching all registered events.
- */
- ObjectName createEventSearchName()
- {
- String asString = new StringBuilder()
- .append(Names.DOMAIN_NAME)
- .append(':')
- .append('*')
- .append(",type=Event")
- .toString();
- try
- {
- return new ObjectName(asString);
- } catch (MalformedObjectNameException exception)
- {
- throw new RuntimeException(exception);
- }
- }
-
- /**
- * Creates an object name that will be used for searching all registered events.
- *
- * @return the object name that will be used for searching all registered events.
- */
- ObjectName createClassDefinitionSearchName()
- {
- String asString = new StringBuilder()
- .append(Names.DOMAIN_NAME)
- .append(":Category=Schema,*")
- .toString();
- try
- {
- return new ObjectName(asString);
- } catch (MalformedObjectNameException exception)
- {
- throw new RuntimeException(exception);
- }
- }
-
- /**
- * Creates an object name that will be used for searching all registered object instances.
- *
- * @return the object name that will be used for searching all registered object instances.
- */
- private ObjectName createObjectInstanceSearchName()
- {
- String asString = new StringBuilder()
- .append(Names.DOMAIN_NAME)
- .append(':')
- .append('*')
- .append(",type=Object")
- .toString();
- try
- {
- return new ObjectName(asString);
- } catch (MalformedObjectNameException exception)
- {
- throw new RuntimeException(exception);
- }
- }
-
- /**
- * Factory method for ObjectNames.
- *
- * @param brokerId the broker identifier.
- * @param packageName the name of the package containing this instance.
- * @param className the name of the owner class of this instance.
- * @return the object name built according to the given parameters.
- */
- private ObjectName createEventName(UUID brokerId, String packageName, String className)
- {
- String asString = new StringBuilder()
- .append(Names.DOMAIN_NAME)
- .append(':')
- .append(Names.BROKER_ID)
- .append('=')
- .append(brokerId)
- .append(",type=Event,")
- .append(Names.PACKAGE)
- .append('=')
- .append(packageName)
- .append(',')
- .append(Names.CLASS)
- .append('=')
- .append(className)
- .append(',')
- .append(Names.OBJECT_ID)
- .append('=')
- .append(UUID.randomUUID())
- .toString();
- try
- {
- return new ObjectName(asString);
- } catch (MalformedObjectNameException exception)
- {
- throw new RuntimeException(exception);
- }
- }
-
- ObjectName createEntityDefinitionName(String packageName, String className, String type)
- {
- String asString = new StringBuilder()
- .append(Names.DOMAIN_NAME)
- .append(':')
- .append("Category=Schema,Type=")
- .append(type)
- .append(",package=")
- .append(packageName)
- .append(",name=")
- .append(className)
- .toString();
- try
- {
- return new ObjectName(asString);
- } catch (MalformedObjectNameException exception)
- {
- throw new RuntimeException(exception);
- }
- }
-
- public void registerEntityDefinition(ObjectName name, QpidEntity entity,String packageName, String className)
- {
- try
- {
- if (!_mxServer.isRegistered(name))
- _mxServer.registerMBean(entity, name);
- _mxServer.addNotificationListener(name, Names.QMAN_OBJECT_NAME, null, null);
- } catch(Exception exception)
- {
- throw new RuntimeException(exception);
- }
- }
-
- @SuppressWarnings("unchecked")
- public void unregisterClassDefinitions()
- {
- Set<ObjectName> names = _mxServer.queryNames(createClassDefinitionSearchName(),null);
- for (ObjectName name : names)
- {
- try
- {
- _mxServer.unregisterMBean(name);
- } catch(Exception ignore)
- {
- }
- }
-
- }
-}