package org.infinispan.jcache.tck; import javax.management.ListenerNotFoundException; import javax.management.MBeanNotificationInfo; import javax.management.MBeanServer; import javax.management.MBeanServerBuilder; import javax.management.MBeanServerDelegate; import javax.management.Notification; import javax.management.NotificationFilter; import javax.management.NotificationListener; import com.sun.jmx.mbeanserver.JmxMBeanServer; /** * MBean Server builder instance for the TCK. * * @author Galder ZamarreƱo * @since 7.0 */ public class TckMbeanServerBuilder extends MBeanServerBuilder { @Override public MBeanServer newMBeanServer(String defaultDomain, MBeanServer outer, MBeanServerDelegate delegate) { MBeanServerDelegate decorator = new TckMbeanServerDelegate(delegate); return JmxMBeanServer.newMBeanServer(defaultDomain, outer, decorator, false); } public class TckMbeanServerDelegate extends MBeanServerDelegate { private final MBeanServerDelegate delegate; public TckMbeanServerDelegate(MBeanServerDelegate delegate) { this.delegate = delegate; } @Override public synchronized String getMBeanServerId() { return System.getProperty("org.jsr107.tck.management.agentId"); } @Override public String getSpecificationName() { return delegate.getSpecificationName(); } @Override public String getSpecificationVersion() { return delegate.getSpecificationVersion(); } @Override public String getSpecificationVendor() { return delegate.getSpecificationVendor(); } @Override public String getImplementationName() { return delegate.getImplementationName(); } @Override public String getImplementationVersion() { return delegate.getImplementationVersion(); } @Override public String getImplementationVendor() { return delegate.getImplementationVendor(); } @Override public MBeanNotificationInfo[] getNotificationInfo() { return delegate.getNotificationInfo(); } @Override public synchronized void addNotificationListener( NotificationListener listener, NotificationFilter filter, Object handback) throws IllegalArgumentException { delegate.addNotificationListener(listener, filter, handback); } @Override public synchronized void removeNotificationListener( NotificationListener listener, NotificationFilter filter, Object handback) throws ListenerNotFoundException { delegate.removeNotificationListener(listener, filter, handback); } @Override public synchronized void removeNotificationListener(NotificationListener listener) throws ListenerNotFoundException { delegate.removeNotificationListener(listener); } @Override public void sendNotification(Notification notification) { delegate.sendNotification(notification); } } }