@Override public void handle(DataInput input, final int correlationId) throws IOException { log.trace("GetDomains"); final String[] domains = server.getMBeanServerConnection().getDomains(); writeResponse(domains, GET_DOMAINS, correlationId); log.tracef("[%d] GetDomains - Success Response Sent", correlationId); }
private synchronized void removeNotificationListener(int listenerId) throws ListenerNotFoundException, InstanceNotFoundException, IOException { Association association = listeners.remove(listenerId); if (association != null) { server.getMBeanServerConnection().removeNotificationListener(association.name, association.listener, association.filter, association.handback); } else { log.warnf("Request to removeNotificationListener, listener with ID %d not found.", listenerId); } }
@Override public void handle(DataInput input, final int correlationId) throws IOException { log.trace("GetDefaultDomain"); final String defaultDomain = server.getMBeanServerConnection().getDefaultDomain(); writeResponse(defaultDomain, GET_DEFAULT_DOMAIN, correlationId); log.tracef("[%d] CreateMBean - Success Response Sent", correlationId); } }
@Override public void handle(DataInput input, final int correlationId) throws IOException { log.trace("GetDomains"); final String[] domains = server.getMBeanServerConnection().getDomains(); writeResponse(domains, GET_DOMAINS, correlationId); log.tracef("[%d] GetDomains - Success Response Sent", correlationId); }
@Override public void handle(DataInput input, final int correlationId) throws IOException { log.trace("GetMBeanCount"); final Integer count = server.getMBeanServerConnection().getMBeanCount(); writeResponse(count, GET_MBEAN_COUNT, correlationId); log.tracef("[%d] GetMBeanCount - Success Response Sent", correlationId); }
private synchronized void removeNotificationListener(int listenerId) throws ListenerNotFoundException, InstanceNotFoundException, IOException { Association association = listeners.remove(listenerId); if (association != null) { server.getMBeanServerConnection().removeNotificationListener(association.name, association.listener, association.filter, association.handback); } else { log.warnf("Request to removeNotificationListener, listener with ID %d not found.", listenerId); } }
@Override public void handle(DataInput input, final int correlationId) throws IOException { log.trace("GetMBeanCount"); final Integer count = server.getMBeanServerConnection().getMBeanCount(); writeResponse(count, GET_MBEAN_COUNT, correlationId); log.tracef("[%d] GetMBeanCount - Success Response Sent", correlationId); }
private synchronized void addNotificationListener(ObjectName name, int listenerId, NotificationFilter filter, Object handback) throws InstanceNotFoundException, IOException { NotificationProxy proxy = new NotificationProxy(listenerId); server.getMBeanServerConnection().addNotificationListener(name, proxy, filter, handback); Association association = new Association(); association.name = name; association.listener = proxy; association.filter = filter; association.handback = handback; listeners.put(listenerId, association); }
private synchronized void addNotificationListener(ObjectName name, int listenerId, NotificationFilter filter, Object handback) throws InstanceNotFoundException, IOException { NotificationProxy proxy = new NotificationProxy(listenerId); server.getMBeanServerConnection().addNotificationListener(name, proxy, filter, handback); Association association = new Association(); association.name = name; association.listener = proxy; association.filter = filter; association.handback = handback; listeners.put(listenerId, association); }
@Override public void handle(DataInput input, final int correlationId) throws IOException { log.trace("GetDefaultDomain"); final String defaultDomain = server.getMBeanServerConnection().getDefaultDomain(); writeResponse(defaultDomain, GET_DEFAULT_DOMAIN, correlationId); log.tracef("[%d] CreateMBean - Success Response Sent", correlationId); } }
@Override public void handle(DataInput input, int correlationId) throws IOException { log.trace("IsRegistered"); byte paramType = input.readByte(); if (paramType != OBJECT_NAME) { throw new IOException("Unexpected paramType"); } Unmarshaller unmarshaller = prepareForUnMarshalling(input); ObjectName objectName; try { objectName = unmarshaller.readObject(ObjectName.class); } catch (ClassNotFoundException cnfe) { throw new IOException(cnfe); } boolean registered = server.getMBeanServerConnection().isRegistered(objectName); writeResponse(registered, IS_REGISTERED, correlationId); log.tracef("[%d] IsRegistered - Success Response Sent", correlationId); } }
@Override public void handle(DataInput input, int correlationId) throws IOException { log.trace("IsRegistered"); byte paramType = input.readByte(); if (paramType != OBJECT_NAME) { throw new IOException("Unexpected paramType"); } Unmarshaller unmarshaller = prepareForUnMarshalling(input); ObjectName objectName; try { objectName = unmarshaller.readObject(ObjectName.class); } catch (ClassNotFoundException cnfe) { throw new IOException(cnfe); } boolean registered = server.getMBeanServerConnection().isRegistered(objectName); writeResponse(registered, IS_REGISTERED, correlationId); log.tracef("[%d] IsRegistered - Success Response Sent", correlationId); } }
private void switchClassLoaderForMBean(final ObjectName name, final ClassLoaderSwitchingClassResolver resolver) { try { MBeanServerConnection connection = server.getMBeanServerConnection(); if (connection instanceof MBeanServer) { final MBeanServer server = (MBeanServer) connection; //This privileged block is needed! //This classloader switch is an internal call to do other things. //When running WildFly with RBAC, normally, if there is a subject, only superuser //or administrator can call this method on the MBeanServer, meaning that the 'other things' will fail. //Tbe privileged block clears the subject so the internal call will work ClassLoader loader = AccessController.doPrivileged(new PrivilegedExceptionAction<ClassLoader>() { @Override public ClassLoader run() throws Exception { ClassLoader loader = server.getClassLoaderFor(name); //if the loader was null, chances are it was the bootstrap classloader so try that if (loader == null){ loader = ClassLoader.getSystemClassLoader(); } return loader; } }); resolver.switchClassLoader(loader); } } catch (Exception e) { log.debugf(e, "Could not get class loader for %s", name); } }
@Override public void handle(DataInput input, int correlationId) throws IOException { log.trace("GetObjectInstance"); byte paramType = input.readByte(); if (paramType != OBJECT_NAME) { throw new IOException("Unexpected paramType"); } Unmarshaller unmarshaller = prepareForUnMarshalling(input); ObjectName objectName; try { objectName = unmarshaller.readObject(ObjectName.class); } catch (ClassNotFoundException cnfe) { throw new IOException(cnfe); } try { ObjectInstance objectInstance = server.getMBeanServerConnection().getObjectInstance(objectName); writeResponse(objectInstance, OBJECT_INSTANCE, GET_OBJECT_INSTANCE, correlationId); log.tracef("[%d] GetObjectInstance - Success Response Sent", correlationId); } catch (InstanceNotFoundException e) { writeResponse(e, GET_OBJECT_INSTANCE, correlationId); log.tracef("[%d] GetObjectInstance - Failure Response Sent", correlationId); } }
@Override public void handle(DataInput input, int correlationId) throws IOException { log.trace("QueryNames"); byte paramType = input.readByte(); if (paramType != OBJECT_NAME) { throw new IOException("Unexpected paramType"); } ObjectName objectName; QueryExp query; try { Unmarshaller unmarshaller = prepareForUnMarshalling(input); objectName = unmarshaller.readObject(ObjectName.class); paramType = unmarshaller.readByte(); if (paramType != QUERY_EXP) { throw new IOException("Unexpected paramType"); } query = unmarshaller.readObject(QueryExp.class); } catch (ClassNotFoundException cnfe) { throw new IOException(cnfe); } Set<ObjectName> instances = server.getMBeanServerConnection().queryNames(objectName, query); writeResponse(instances, SET_OBJECT_NAME, QUERY_NAMES, correlationId); log.tracef("[%d] QueryNames - Success Response Sent", correlationId); } }
@Override public void handle(DataInput input, int correlationId) throws IOException { log.trace("QueryMBeans"); byte paramType = input.readByte(); if (paramType != OBJECT_NAME) { throw new IOException("Unexpected paramType"); } ObjectName objectName; QueryExp query; try { Unmarshaller unmarshaller = prepareForUnMarshalling(input); objectName = unmarshaller.readObject(ObjectName.class); paramType = unmarshaller.readByte(); if (paramType != QUERY_EXP) { throw new IOException("Unexpected paramType"); } query = unmarshaller.readObject(QueryExp.class); } catch (ClassNotFoundException cnfe) { throw new IOException(cnfe); } Set<ObjectInstance> instances = server.getMBeanServerConnection().queryMBeans(objectName, query); writeResponse(instances, SET_OBJECT_INSTANCE, QUERY_MBEANS, correlationId); log.tracef("[%d] QueryMBeans - Success Response Sent", correlationId); } }
@Override public void handle(DataInput input, int correlationId) throws IOException { log.trace("QueryNames"); byte paramType = input.readByte(); if (paramType != OBJECT_NAME) { throw new IOException("Unexpected paramType"); } ObjectName objectName; QueryExp query; try { Unmarshaller unmarshaller = prepareForUnMarshalling(input); objectName = unmarshaller.readObject(ObjectName.class); paramType = unmarshaller.readByte(); if (paramType != QUERY_EXP) { throw new IOException("Unexpected paramType"); } query = unmarshaller.readObject(QueryExp.class); } catch (ClassNotFoundException cnfe) { throw new IOException(cnfe); } Set<ObjectName> instances = server.getMBeanServerConnection().queryNames(objectName, query); writeResponse(instances, SET_OBJECT_NAME, QUERY_NAMES, correlationId); log.tracef("[%d] QueryNames - Success Response Sent", correlationId); } }
@Override public void handle(DataInput input, int correlationId) throws IOException { log.trace("QueryMBeans"); byte paramType = input.readByte(); if (paramType != OBJECT_NAME) { throw new IOException("Unexpected paramType"); } ObjectName objectName; QueryExp query; try { Unmarshaller unmarshaller = prepareForUnMarshalling(input); objectName = unmarshaller.readObject(ObjectName.class); paramType = unmarshaller.readByte(); if (paramType != QUERY_EXP) { throw new IOException("Unexpected paramType"); } query = unmarshaller.readObject(QueryExp.class); } catch (ClassNotFoundException cnfe) { throw new IOException(cnfe); } Set<ObjectInstance> instances = server.getMBeanServerConnection().queryMBeans(objectName, query); writeResponse(instances, SET_OBJECT_INSTANCE, QUERY_MBEANS, correlationId); log.tracef("[%d] QueryMBeans - Success Response Sent", correlationId); } }
@Override public void handle(DataInput input, int correlationId) throws IOException { log.trace("UnregisterMBean"); byte paramType = input.readByte(); if (paramType != OBJECT_NAME) { throw new IOException("Unexpected paramType"); } Unmarshaller unmarshaller = prepareForUnMarshalling(input); ObjectName objectName; try { objectName = unmarshaller.readObject(ObjectName.class); } catch (ClassNotFoundException cnfe) { throw new IOException(cnfe); } try { server.getMBeanServerConnection().unregisterMBean(objectName); writeResponse(UNREGISTER_MBEAN, correlationId); log.tracef("[%d] UnregisterMBean - Success Response Sent", correlationId); } catch (MBeanRegistrationException e) { writeResponse(e, UNREGISTER_MBEAN, correlationId); log.tracef("[%d] UnregisterMBean - Failure Response Sent", correlationId); } catch (InstanceNotFoundException e) { writeResponse(e, UNREGISTER_MBEAN, correlationId); log.tracef("[%d] UnregisterMBean - Failure Response Sent", correlationId); } }
@Override public void handle(DataInput input, int correlationId) throws IOException { log.trace("GetObjectInstance"); byte paramType = input.readByte(); if (paramType != OBJECT_NAME) { throw new IOException("Unexpected paramType"); } Unmarshaller unmarshaller = prepareForUnMarshalling(input); ObjectName objectName; try { objectName = unmarshaller.readObject(ObjectName.class); } catch (ClassNotFoundException cnfe) { throw new IOException(cnfe); } try { ObjectInstance objectInstance = server.getMBeanServerConnection().getObjectInstance(objectName); writeResponse(objectInstance, OBJECT_INSTANCE, GET_OBJECT_INSTANCE, correlationId); log.tracef("[%d] GetObjectInstance - Success Response Sent", correlationId); } catch (InstanceNotFoundException e) { writeResponse(e, GET_OBJECT_INSTANCE, correlationId); log.tracef("[%d] GetObjectInstance - Failure Response Sent", correlationId); } }