Search in sources :

Example 41 with JMXConnectorServer

use of javax.management.remote.JMXConnectorServer in project jdk8u_jdk by JetBrains.

the class NotifReconnectDeadlockTest method main.

public static void main(String[] args) throws Exception {
    System.out.println(">>> Tests reconnection done by a fetching notif thread.");
    ObjectName oname = new ObjectName("Default:name=NotificationEmitter");
    JMXServiceURL url = new JMXServiceURL("rmi", null, 0);
    Map env = new HashMap(2);
    env.put("jmx.remote.x.server.connection.timeout", new Long(serverTimeout));
    env.put("jmx.remote.x.client.connection.check.period", new Long(Long.MAX_VALUE));
    final MBeanServer mbs = MBeanServerFactory.newMBeanServer();
    mbs.registerMBean(new NotificationEmitter(), oname);
    JMXConnectorServer server = JMXConnectorServerFactory.newJMXConnectorServer(url, env, mbs);
    server.start();
    JMXServiceURL addr = server.getAddress();
    JMXConnector client = JMXConnectorFactory.connect(addr, env);
    // let pass the first client open notif if there is
    Thread.sleep(100);
    client.getMBeanServerConnection().addNotificationListener(oname, listener, null, null);
    client.addConnectionNotificationListener(listener, null, null);
    // max test time: 2 minutes
    final long end = System.currentTimeMillis() + 120000;
    synchronized (lock) {
        while (clientState == null && System.currentTimeMillis() < end) {
            mbs.invoke(oname, "sendNotifications", new Object[] { new Notification("MyType", "", 0) }, new String[] { "javax.management.Notification" });
            try {
                lock.wait(10);
            } catch (Exception e) {
            }
        }
    }
    if (clientState == null) {
        throw new RuntimeException("No reconnection happened, need to reconfigure the test.");
    } else if (JMXConnectionNotification.FAILED.equals(clientState) || JMXConnectionNotification.CLOSED.equals(clientState)) {
        throw new RuntimeException("Failed to reconnect.");
    }
    System.out.println(">>> Passed!");
    client.removeConnectionNotificationListener(listener);
    client.close();
    server.stop();
}
Also used : JMXServiceURL(javax.management.remote.JMXServiceURL) HashMap(java.util.HashMap) Notification(javax.management.Notification) JMXConnectionNotification(javax.management.remote.JMXConnectionNotification) ObjectName(javax.management.ObjectName) JMXConnectorServer(javax.management.remote.JMXConnectorServer) JMXConnector(javax.management.remote.JMXConnector) HashMap(java.util.HashMap) Map(java.util.Map) MBeanServer(javax.management.MBeanServer)

Example 42 with JMXConnectorServer

use of javax.management.remote.JMXConnectorServer in project jdk8u_jdk by JetBrains.

the class RMINotifTest method main.

public static void main(String[] args) {
    try {
        // create a rmi registry
        Registry reg = null;
        int port = 6666;
        final Random r = new Random();
        while (port++ < 7000) {
            try {
                reg = LocateRegistry.createRegistry(++port);
                System.out.println("Creation of rmi registry succeeded. Running on port " + port);
                break;
            } catch (RemoteException re) {
            // no problem
            }
        }
        if (reg == null) {
            System.out.println("Failed to create a RMI registry, " + "the ports from 6666 to 6999 are all occupied.");
            System.exit(1);
        }
        // create a MBeanServer
        MBeanServer server = MBeanServerFactory.createMBeanServer();
        // create a notif emitter mbean
        ObjectName mbean = new ObjectName("Default:name=NotificationEmitter");
        server.registerMBean(new NotificationEmitter(), mbean);
        // create a rmi server
        JMXServiceURL url = new JMXServiceURL("rmi", null, port, "/jndi/rmi://:" + port + "/server" + port);
        System.out.println("RMIConnectorServer address " + url);
        JMXConnectorServer sServer = JMXConnectorServerFactory.newJMXConnectorServer(url, null, null);
        ObjectInstance ss = server.registerMBean(sServer, new ObjectName("Default:name=RmiConnectorServer"));
        sServer.start();
        // create a rmi client
        JMXConnector rmiConnection = JMXConnectorFactory.newJMXConnector(url, null);
        rmiConnection.connect(null);
        MBeanServerConnection client = rmiConnection.getMBeanServerConnection();
        // add listener at the client side
        client.addNotificationListener(mbean, listener, null, null);
        //ask to send notifs
        Object[] params = new Object[1];
        String[] signatures = new String[1];
        params[0] = new Integer(nb);
        signatures[0] = "java.lang.Integer";
        client.invoke(mbean, "sendNotifications", params, signatures);
        // waiting ...
        synchronized (lock) {
            if (receivedNotifs != nb) {
                lock.wait(10000);
                System.out.println(">>> Received notifications..." + receivedNotifs);
            }
        }
        // check
        if (receivedNotifs != nb) {
            System.exit(1);
        } else {
            System.out.println("The client received all notifications.");
        }
        // remove listener
        client.removeNotificationListener(mbean, listener);
        // more test
        NotificationFilterSupport filter = new NotificationFilterSupport();
        Object o = new Object();
        client.addNotificationListener(mbean, listener, filter, o);
        client.removeNotificationListener(mbean, listener, filter, o);
        sServer.stop();
    //          // clean
    //          client.unregisterMBean(mbean);
    //          rmiConnection.close();
    //          Thread.sleep(2000);
    } catch (Exception e) {
        e.printStackTrace();
        System.exit(1);
    }
}
Also used : JMXServiceURL(javax.management.remote.JMXServiceURL) ObjectInstance(javax.management.ObjectInstance) Registry(java.rmi.registry.Registry) LocateRegistry(java.rmi.registry.LocateRegistry) RemoteException(java.rmi.RemoteException) ObjectName(javax.management.ObjectName) JMXConnectorServer(javax.management.remote.JMXConnectorServer) Random(java.util.Random) JMXConnector(javax.management.remote.JMXConnector) NotificationFilterSupport(javax.management.NotificationFilterSupport) RemoteException(java.rmi.RemoteException) MBeanServerConnection(javax.management.MBeanServerConnection) MBeanServer(javax.management.MBeanServer)

Example 43 with JMXConnectorServer

use of javax.management.remote.JMXConnectorServer in project jdk8u_jdk by JetBrains.

the class NonJMXPrincipalsTest method runTest.

public static void runTest(JMXAuthenticator authenticator) throws Exception {
    //------------------------------------------------------------------
    // SERVER
    //------------------------------------------------------------------
    // Instantiate the MBean server
    //
    System.out.println("Create the MBean server");
    MBeanServer mbs = MBeanServerFactory.createMBeanServer();
    // Create SimpleStandard MBean
    //
    ObjectName mbeanName = new ObjectName("MBeans:type=SimpleStandard");
    System.out.println("Create SimpleStandard MBean...");
    mbs.createMBean("SimpleStandard", mbeanName, null, null);
    // Server's environment map
    //
    System.out.println(">>> Initialize the server's environment map");
    HashMap sEnv = new HashMap();
    // Provide a JMX Authenticator
    //
    sEnv.put("jmx.remote.authenticator", authenticator);
    // Provide the access level file used by the connector server to
    // perform user authorization. The access level file is a properties
    // based text file specifying username/access level pairs where
    // access level is either "readonly" or "readwrite" access to the
    // MBeanServer operations. This properties based access control
    // checker has been implemented using the MBeanServerForwarder
    // interface which wraps the real MBean server inside an access
    // controller MBean server which performs the access control checks
    // before forwarding the requests to the real MBean server.
    //
    // This property is implementation-dependent and might not be
    // supported by all implementations of the JMX Remote API.
    //
    sEnv.put("jmx.remote.x.access.file", System.getProperty("test.src") + File.separator + "access.properties");
    // Create an RMI connector server
    //
    System.out.println("Create an RMI connector server");
    JMXServiceURL url = new JMXServiceURL("service:jmx:rmi://");
    JMXConnectorServer cs = JMXConnectorServerFactory.newJMXConnectorServer(url, sEnv, mbs);
    // Start the RMI connector server
    //
    System.out.println("Start the RMI connector server");
    cs.start();
    System.out.println("RMI connector server successfully started");
    System.out.println("Waiting for incoming connections...");
    //------------------------------------------------------------------
    // CLIENT (admin)
    //------------------------------------------------------------------
    // Admin client environment map
    //
    String[] adminCreds = new String[] { "admin", "adminPassword" };
    System.out.println(">>> Initialize the client environment map for" + " user [" + adminCreds[0] + "] with " + "password [" + adminCreds[1] + "]");
    HashMap adminEnv = new HashMap();
    adminEnv.put("jmx.remote.credentials", adminCreds);
    // Create an RMI connector client and
    // connect it to the RMI connector server
    //
    System.out.println("Create an RMI connector client and " + "connect it to the RMI connector server");
    JMXConnector adminConnector = JMXConnectorFactory.connect(cs.getAddress(), adminEnv);
    // Get an MBeanServerConnection
    //
    System.out.println("Get an MBeanServerConnection");
    MBeanServerConnection adminConnection = adminConnector.getMBeanServerConnection();
    // Get the proxy for the Simple MBean
    //
    SimpleStandardMBean adminProxy = (SimpleStandardMBean) MBeanServerInvocationHandler.newProxyInstance(adminConnection, mbeanName, SimpleStandardMBean.class, false);
    // Get State attribute
    //
    System.out.println("State = " + adminProxy.getState());
    // Set State attribute
    //
    adminProxy.setState("changed state");
    // Get State attribute
    //
    System.out.println("State = " + adminProxy.getState());
    // Invoke "reset" in SimpleStandard MBean
    //
    System.out.println("Invoke reset() in SimpleStandard MBean...");
    adminProxy.reset();
    // Close MBeanServer connection
    //
    System.out.println("Close the admin connection to the server");
    adminConnector.close();
    //------------------------------------------------------------------
    // CLIENT (user)
    //------------------------------------------------------------------
    // User client environment map
    //
    String[] userCreds = new String[] { "user", "userPassword" };
    System.out.println(">>> Initialize the client environment map for" + " user [" + userCreds[0] + "] with " + "password [" + userCreds[1] + "]");
    HashMap userEnv = new HashMap();
    userEnv.put("jmx.remote.credentials", userCreds);
    // Create an RMI connector client and
    // connect it to the RMI connector server
    //
    System.out.println("Create an RMI connector client and " + "connect it to the RMI connector server");
    JMXConnector userConnector = JMXConnectorFactory.connect(cs.getAddress(), userEnv);
    // Get an MBeanServerConnection
    //
    System.out.println("Get an MBeanServerConnection");
    MBeanServerConnection userConnection = userConnector.getMBeanServerConnection();
    // Get the proxy for the Simple MBean
    //
    SimpleStandardMBean userProxy = (SimpleStandardMBean) MBeanServerInvocationHandler.newProxyInstance(userConnection, mbeanName, SimpleStandardMBean.class, false);
    // Get State attribute
    //
    System.out.println("State = " + userProxy.getState());
    //
    try {
        userProxy.setState("changed state");
    } catch (SecurityException e) {
        System.out.println("Got expected security exception: " + e);
    } catch (Exception e) {
        System.out.println("Got unexpected exception: " + e);
        e.printStackTrace(System.out);
    }
    // Get State attribute
    //
    System.out.println("State = " + userProxy.getState());
    //
    try {
        System.out.println("Invoke reset() in SimpleStandard MBean...");
        userProxy.reset();
    } catch (SecurityException e) {
        System.out.println("Got expected security exception: " + e);
    } catch (Exception e) {
        System.out.println("Got unexpected exception: " + e);
        e.printStackTrace(System.out);
    }
    // Close MBeanServer connection
    //
    System.out.println("Close the user connection to the server");
    userConnector.close();
    //------------------------------------------------------------------
    // SERVER
    //------------------------------------------------------------------
    // Stop the connector server
    //
    System.out.println(">>> Stop the connector server");
    cs.stop();
}
Also used : JMXServiceURL(javax.management.remote.JMXServiceURL) HashMap(java.util.HashMap) JMXConnector(javax.management.remote.JMXConnector) MBeanServerConnection(javax.management.MBeanServerConnection) MBeanServer(javax.management.MBeanServer) ObjectName(javax.management.ObjectName) JMXConnectorServer(javax.management.remote.JMXConnectorServer)

Example 44 with JMXConnectorServer

use of javax.management.remote.JMXConnectorServer in project jdk8u_jdk by JetBrains.

the class PasswordAccessFileTest method main.

public static void main(String[] args) {
    try {
        //------------------------------------------------------------------
        // SERVER
        //------------------------------------------------------------------
        // Instantiate the MBean server
        //
        System.out.println("Create the MBean server");
        MBeanServer mbs = MBeanServerFactory.createMBeanServer();
        // Create SimpleStandard MBean
        //
        ObjectName mbeanName = new ObjectName("MBeans:type=SimpleStandard");
        System.out.println("Create SimpleStandard MBean...");
        mbs.createMBean("SimpleStandard", mbeanName, null, null);
        // Server's environment map
        //
        System.out.println(">>> Initialize the server's environment map");
        HashMap sEnv = new HashMap();
        // Provide the password file used by the connector server to
        // perform user authentication. The password file is a properties
        // based text file specifying username/password pairs. This
        // properties based password authenticator has been implemented
        // using the JMXAuthenticator interface and is passed to the
        // connector through the "jmx.remote.authenticator" property
        // in the map.
        //
        // This property is implementation-dependent and might not be
        // supported by all implementations of the JMX Remote API.
        //
        sEnv.put("jmx.remote.x.password.file", System.getProperty("test.src") + File.separator + "password.properties");
        // Provide the access level file used by the connector server to
        // perform user authorization. The access level file is a properties
        // based text file specifying username/access level pairs where
        // access level is either "readonly" or "readwrite" access to the
        // MBeanServer operations. This properties based access control
        // checker has been implemented using the MBeanServerForwarder
        // interface which wraps the real MBean server inside an access
        // controller MBean server which performs the access control checks
        // before forwarding the requests to the real MBean server.
        //
        // This property is implementation-dependent and might not be
        // supported by all implementations of the JMX Remote API.
        //
        sEnv.put("jmx.remote.x.access.file", System.getProperty("test.src") + File.separator + "access.properties");
        // Create an RMI connector server
        //
        System.out.println("Create an RMI connector server");
        JMXServiceURL url = new JMXServiceURL("service:jmx:rmi://");
        JMXConnectorServer cs = JMXConnectorServerFactory.newJMXConnectorServer(url, sEnv, mbs);
        // Start the RMI connector server
        //
        System.out.println("Start the RMI connector server");
        cs.start();
        System.out.println("RMI connector server successfully started");
        System.out.println("Waiting for incoming connections...");
        //------------------------------------------------------------------
        // CLIENT : Invalid authentication credentials
        //------------------------------------------------------------------
        final String[][] invalidCreds = { { "admin1", "adminPassword" }, { "admin", "adminPassword1" }, { "user1", "userPassword" }, { "user", "userPassword1" } };
        //
        for (int i = 0; i < invalidCreds.length; i++) {
            // Client environment map
            //
            System.out.println(">>> Initialize the client environment map" + " for user [" + invalidCreds[i][0] + "] with password [" + invalidCreds[i][1] + "]");
            HashMap cEnv = new HashMap();
            cEnv.put("jmx.remote.credentials", invalidCreds[i]);
            // Create an RMI connector client and
            // connect it to the RMI connector server
            //
            System.out.println("Create an RMI connector client and " + "connect it to the RMI connector server");
            try {
                JMXConnector jmxc = JMXConnectorFactory.connect(cs.getAddress(), cEnv);
            } catch (SecurityException e) {
                System.out.println("Got expected security exception: " + e);
            } catch (Exception e) {
                System.out.println("Got unexpected exception: " + e);
                e.printStackTrace();
                System.exit(1);
            }
        }
        //------------------------------------------------------------------
        // CLIENT (admin)
        //------------------------------------------------------------------
        // Admin client environment map
        //
        String[] adminCreds = new String[] { "admin", "adminPassword" };
        System.out.println(">>> Initialize the client environment map for" + " user [" + adminCreds[0] + "] with " + "password [" + adminCreds[1] + "]");
        HashMap adminEnv = new HashMap();
        adminEnv.put("jmx.remote.credentials", adminCreds);
        // Create an RMI connector client and
        // connect it to the RMI connector server
        //
        System.out.println("Create an RMI connector client and " + "connect it to the RMI connector server");
        JMXConnector adminConnector = JMXConnectorFactory.connect(cs.getAddress(), adminEnv);
        // Get an MBeanServerConnection
        //
        System.out.println("Get an MBeanServerConnection");
        MBeanServerConnection adminConnection = adminConnector.getMBeanServerConnection();
        // Get the proxy for the Simple MBean
        //
        SimpleStandardMBean adminProxy = (SimpleStandardMBean) MBeanServerInvocationHandler.newProxyInstance(adminConnection, mbeanName, SimpleStandardMBean.class, false);
        // Get State attribute
        //
        System.out.println("State = " + adminProxy.getState());
        // Set State attribute
        //
        adminProxy.setState("changed state");
        // Get State attribute
        //
        System.out.println("State = " + adminProxy.getState());
        // Invoke "reset" in SimpleStandard MBean
        //
        System.out.println("Invoke reset() in SimpleStandard MBean...");
        adminProxy.reset();
        // Close MBeanServer connection
        //
        System.out.println("Close the admin connection to the server");
        adminConnector.close();
        //------------------------------------------------------------------
        // CLIENT (user)
        //------------------------------------------------------------------
        // User client environment map
        //
        String[] userCreds = new String[] { "user", "userPassword" };
        System.out.println(">>> Initialize the client environment map for" + " user [" + userCreds[0] + "] with " + "password [" + userCreds[1] + "]");
        HashMap userEnv = new HashMap();
        userEnv.put("jmx.remote.credentials", userCreds);
        // Create an RMI connector client and
        // connect it to the RMI connector server
        //
        System.out.println("Create an RMI connector client and " + "connect it to the RMI connector server");
        JMXConnector userConnector = JMXConnectorFactory.connect(cs.getAddress(), userEnv);
        // Get an MBeanServerConnection
        //
        System.out.println("Get an MBeanServerConnection");
        MBeanServerConnection userConnection = userConnector.getMBeanServerConnection();
        // Get the proxy for the Simple MBean
        //
        SimpleStandardMBean userProxy = (SimpleStandardMBean) MBeanServerInvocationHandler.newProxyInstance(userConnection, mbeanName, SimpleStandardMBean.class, false);
        // Get State attribute
        //
        System.out.println("State = " + userProxy.getState());
        //
        try {
            userProxy.setState("changed state");
        } catch (SecurityException e) {
            System.out.println("Got expected security exception: " + e);
        } catch (Exception e) {
            System.out.println("Got unexpected exception: " + e);
            e.printStackTrace();
            System.exit(1);
        }
        // Get State attribute
        //
        System.out.println("State = " + userProxy.getState());
        //
        try {
            System.out.println("Invoke reset() in SimpleStandard MBean...");
            userProxy.reset();
        } catch (SecurityException e) {
            System.out.println("Got expected security exception: " + e);
        } catch (Exception e) {
            System.out.println("Got unexpected exception: " + e);
            e.printStackTrace();
            System.exit(1);
        }
        // Close MBeanServer connection
        //
        System.out.println("Close the user connection to the server");
        userConnector.close();
        //------------------------------------------------------------------
        // SERVER
        //------------------------------------------------------------------
        // Stop the connector server
        //
        System.out.println(">>> Stop the connector server");
        cs.stop();
        System.out.println("Bye! Bye!");
    } catch (Exception e) {
        System.out.println("Got unexpected exception: " + e);
        e.printStackTrace();
        System.exit(1);
    }
}
Also used : JMXServiceURL(javax.management.remote.JMXServiceURL) HashMap(java.util.HashMap) ObjectName(javax.management.ObjectName) JMXConnectorServer(javax.management.remote.JMXConnectorServer) JMXConnector(javax.management.remote.JMXConnector) MBeanServerConnection(javax.management.MBeanServerConnection) MBeanServer(javax.management.MBeanServer)

Example 45 with JMXConnectorServer

use of javax.management.remote.JMXConnectorServer in project jdk8u_jdk by JetBrains.

the class SubjectDelegation1Test method main.

public static void main(String[] args) throws Exception {
    // Check for supported operating systems: Solaris
    //
    // This test runs only on Solaris due to CR 6285916
    //
    String osName = System.getProperty("os.name");
    System.out.println("os.name = " + osName);
    if (!osName.equals("SunOS")) {
        System.out.println("This test runs on Solaris only.");
        System.out.println("Bye! Bye!");
        return;
    }
    String policyFile = args[0];
    String testResult = args[1];
    System.out.println("Policy file = " + policyFile);
    System.out.println("Expected test result = " + testResult);
    JMXConnectorServer jmxcs = null;
    JMXConnector jmxc = null;
    try {
        // Create an RMI registry
        //
        System.out.println("Start RMI registry...");
        Registry reg = null;
        int port = 5800;
        while (port++ < 6000) {
            try {
                reg = LocateRegistry.createRegistry(port);
                System.out.println("RMI registry running on port " + port);
                break;
            } catch (RemoteException e) {
                // Failed to create RMI registry...
                System.out.println("Failed to create RMI registry " + "on port " + port);
            }
        }
        if (reg == null) {
            System.exit(1);
        }
        // Set the default password file
        //
        final String passwordFile = System.getProperty("test.src") + File.separator + "jmxremote.password";
        System.out.println("Password file = " + passwordFile);
        // Set policy file
        //
        final String policy = System.getProperty("test.src") + File.separator + policyFile;
        System.out.println("PolicyFile = " + policy);
        System.setProperty("java.security.policy", policy);
        // Instantiate the MBean server
        //
        System.out.println("Create the MBean server");
        MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
        // Register the SimpleStandardMBean
        //
        System.out.println("Create SimpleStandard MBean");
        SimpleStandard s = new SimpleStandard("delegate");
        mbs.registerMBean(s, new ObjectName("MBeans:type=SimpleStandard"));
        // Create Properties containing the username/password entries
        //
        Properties props = new Properties();
        props.setProperty("jmx.remote.x.password.file", passwordFile);
        // Initialize environment map to be passed to the connector server
        //
        System.out.println("Initialize environment map");
        HashMap env = new HashMap();
        env.put("jmx.remote.authenticator", new JMXPluggableAuthenticator(props));
        // Create an RMI connector server
        //
        System.out.println("Create an RMI connector server");
        JMXServiceURL url = new JMXServiceURL("rmi", null, 0, "/jndi/rmi://:" + port + "/server" + port);
        jmxcs = JMXConnectorServerFactory.newJMXConnectorServer(url, env, mbs);
        jmxcs.start();
        // Create an RMI connector client
        //
        System.out.println("Create an RMI connector client");
        HashMap cli_env = new HashMap();
        // These credentials must match those in the default password file
        //
        String[] credentials = new String[] { "monitorRole", "QED" };
        cli_env.put("jmx.remote.credentials", credentials);
        jmxc = JMXConnectorFactory.connect(url, cli_env);
        Subject delegationSubject = new Subject(true, Collections.singleton(new JMXPrincipal("delegate")), Collections.EMPTY_SET, Collections.EMPTY_SET);
        MBeanServerConnection mbsc = jmxc.getMBeanServerConnection(delegationSubject);
        // Get domains from MBeanServer
        //
        System.out.println("Domains:");
        String[] domains = mbsc.getDomains();
        for (int i = 0; i < domains.length; i++) {
            System.out.println("\tDomain[" + i + "] = " + domains[i]);
        }
        // Get MBean count
        //
        System.out.println("MBean count = " + mbsc.getMBeanCount());
        // Get State attribute
        //
        String oldState = (String) mbsc.getAttribute(new ObjectName("MBeans:type=SimpleStandard"), "State");
        System.out.println("Old State = \"" + oldState + "\"");
        // Set State attribute
        //
        System.out.println("Set State to \"changed state\"");
        mbsc.setAttribute(new ObjectName("MBeans:type=SimpleStandard"), new Attribute("State", "changed state"));
        // Get State attribute
        //
        String newState = (String) mbsc.getAttribute(new ObjectName("MBeans:type=SimpleStandard"), "State");
        System.out.println("New State = \"" + newState + "\"");
        if (!newState.equals("changed state")) {
            System.out.println("Invalid State = \"" + newState + "\"");
            System.exit(1);
        }
        // Add notification listener on SimpleStandard MBean
        //
        System.out.println("Add notification listener...");
        mbsc.addNotificationListener(new ObjectName("MBeans:type=SimpleStandard"), new NotificationListener() {

            public void handleNotification(Notification notification, Object handback) {
                System.out.println("Received notification: " + notification);
            }
        }, null, null);
        // Unregister SimpleStandard MBean
        //
        System.out.println("Unregister SimpleStandard MBean...");
        mbsc.unregisterMBean(new ObjectName("MBeans:type=SimpleStandard"));
    } catch (SecurityException e) {
        if (testResult.equals("ko")) {
            System.out.println("Got expected security exception = " + e);
        } else {
            System.out.println("Got unexpected security exception = " + e);
            e.printStackTrace();
            throw e;
        }
    } catch (Exception e) {
        System.out.println("Unexpected exception caught = " + e);
        e.printStackTrace();
        throw e;
    } finally {
        //
        if (jmxc != null)
            jmxc.close();
        //
        if (jmxcs != null)
            jmxcs.stop();
        // Say goodbye
        //
        System.out.println("Bye! Bye!");
    }
}
Also used : JMXServiceURL(javax.management.remote.JMXServiceURL) JMXPluggableAuthenticator(com.sun.jmx.remote.security.JMXPluggableAuthenticator) HashMap(java.util.HashMap) Attribute(javax.management.Attribute) JMXPrincipal(javax.management.remote.JMXPrincipal) Registry(java.rmi.registry.Registry) LocateRegistry(java.rmi.registry.LocateRegistry) Properties(java.util.Properties) Subject(javax.security.auth.Subject) Notification(javax.management.Notification) RemoteException(java.rmi.RemoteException) JMXConnectorServer(javax.management.remote.JMXConnectorServer) ObjectName(javax.management.ObjectName) JMXConnector(javax.management.remote.JMXConnector) RemoteException(java.rmi.RemoteException) MBeanServerConnection(javax.management.MBeanServerConnection) MBeanServer(javax.management.MBeanServer) NotificationListener(javax.management.NotificationListener)

Aggregations

JMXConnectorServer (javax.management.remote.JMXConnectorServer)63 JMXServiceURL (javax.management.remote.JMXServiceURL)57 JMXConnector (javax.management.remote.JMXConnector)47 MBeanServer (javax.management.MBeanServer)44 MBeanServerConnection (javax.management.MBeanServerConnection)38 ObjectName (javax.management.ObjectName)31 HashMap (java.util.HashMap)24 IOException (java.io.IOException)13 MalformedURLException (java.net.MalformedURLException)13 RemoteException (java.rmi.RemoteException)13 NotificationListener (javax.management.NotificationListener)12 Notification (javax.management.Notification)11 Attribute (javax.management.Attribute)9 LocateRegistry (java.rmi.registry.LocateRegistry)7 Registry (java.rmi.registry.Registry)7 Map (java.util.Map)7 Properties (java.util.Properties)7 JMXPluggableAuthenticator (com.sun.jmx.remote.security.JMXPluggableAuthenticator)5 UnknownHostException (java.net.UnknownHostException)5 Test (org.junit.Test)5