Java Code Examples for javax.management.remote.JMXConnectorServer#stop()
The following examples show how to use
javax.management.remote.JMXConnectorServer#stop() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: ListenerScaleTest.java From jdk8u60 with GNU General Public License v2.0 | 6 votes |
public static void main(String[] args) throws Exception { MBeanServer mbs = MBeanServerFactory.newMBeanServer(); Sender sender = new Sender(); mbs.registerMBean(sender, testObjectName); JMXServiceURL url = new JMXServiceURL("service:jmx:rmi://"); JMXConnectorServer cs = JMXConnectorServerFactory.newJMXConnectorServer(url, null, mbs); cs.start(); JMXServiceURL addr = cs.getAddress(); JMXConnector cc = JMXConnectorFactory.connect(addr); try { test(mbs, cs, cc); } finally { cc.close(); cs.stop(); } }
Example 2
Source File: MapNullValuesTest.java From openjdk-jdk9 with GNU General Public License v2.0 | 5 votes |
private int jmxConnectorServerFactoryTests() { int errorCount = 0; echo(""); echo(dashedMessage("Run JMXConnectorServerFactory Tests")); for (int i = 0; i < maps.length - 1; i++) { echo("\n>>> JMXConnectorServerFactory Test [" + i + "]"); try { echo("\tMap = " + maps[i]); echo("\tCreate the MBean server"); MBeanServer mbs = MBeanServerFactory.createMBeanServer(); echo("\tCreate the RMI connector server"); JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://:" + port + "/JMXConnectorServerFactory" + i); JMXConnectorServer jmxcs = JMXConnectorServerFactory.newJMXConnectorServer(url, maps[i], mbs); echo("\tStart the RMI connector server"); jmxcs.start(); echo("\tCall RMIConnectorServer.toJMXConnector(Map)"); jmxcs.toJMXConnector(maps[i]); echo("\tStop the RMI connector server"); jmxcs.stop(); echo("\tTest [" + i + "] PASSED!"); } catch (Exception e) { errorCount++; echo("\tTest [" + i + "] FAILED!"); e.printStackTrace(System.out); } } if (errorCount == 0) { echo(""); echo(dashedMessage("JMXConnectorServerFactory Tests PASSED!")); } else { echo(""); echo(dashedMessage("JMXConnectorServerFactory Tests FAILED!")); } return errorCount; }
Example 3
Source File: IIOPURLTest.java From jdk8u60 with GNU General Public License v2.0 | 5 votes |
public static void main(String[] args) throws Exception { JMXServiceURL inputAddr = new JMXServiceURL("service:jmx:iiop://"); JMXConnectorServer s; try { s = JMXConnectorServerFactory.newJMXConnectorServer(inputAddr, null, null); } catch (java.net.MalformedURLException x) { try { Class.forName("javax.management.remote.rmi._RMIConnectionImpl_Tie"); throw new RuntimeException("MalformedURLException thrown but iiop appears to be supported"); } catch (ClassNotFoundException expected) { } System.out.println("IIOP protocol not supported, test skipped"); return; } MBeanServer mbs = MBeanServerFactory.createMBeanServer(); mbs.registerMBean(s, new ObjectName("a:b=c")); s.start(); JMXServiceURL outputAddr = s.getAddress(); if (!outputAddr.getURLPath().startsWith("/ior/IOR:")) { throw new RuntimeException("URL path should start with \"/ior/IOR:\": " + outputAddr); } System.out.println("IIOP URL path looks OK: " + outputAddr); JMXConnector c = JMXConnectorFactory.connect(outputAddr); System.out.println("Successfully got default domain: " + c.getMBeanServerConnection().getDefaultDomain()); c.close(); s.stop(); }
Example 4
Source File: MapNullValuesTest.java From hottub with GNU General Public License v2.0 | 5 votes |
private int jmxConnectorServerFactoryTests() { int errorCount = 0; echo(""); echo(dashedMessage("Run JMXConnectorServerFactory Tests")); for (int i = 0; i < maps.length - 1; i++) { echo("\n>>> JMXConnectorServerFactory Test [" + i + "]"); try { echo("\tMap = " + maps[i]); echo("\tCreate the MBean server"); MBeanServer mbs = MBeanServerFactory.createMBeanServer(); echo("\tCreate the RMI connector server"); JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://:" + port + "/JMXConnectorServerFactory" + i); JMXConnectorServer jmxcs = JMXConnectorServerFactory.newJMXConnectorServer(url, maps[i], mbs); echo("\tStart the RMI connector server"); jmxcs.start(); echo("\tCall RMIConnectorServer.toJMXConnector(Map)"); jmxcs.toJMXConnector(maps[i]); echo("\tStop the RMI connector server"); jmxcs.stop(); echo("\tTest [" + i + "] PASSED!"); } catch (Exception e) { errorCount++; echo("\tTest [" + i + "] FAILED!"); e.printStackTrace(System.out); } } if (errorCount == 0) { echo(""); echo(dashedMessage("JMXConnectorServerFactory Tests PASSED!")); } else { echo(""); echo(dashedMessage("JMXConnectorServerFactory Tests FAILED!")); } return errorCount; }
Example 5
Source File: RMIExitTest.java From openjdk-jdk9 with GNU General Public License v2.0 | 4 votes |
private static void test() { try { JMXServiceURL u = new JMXServiceURL("rmi", null, 0); JMXConnectorServer server; JMXServiceURL addr; JMXConnector client; MBeanServerConnection mserver; final ObjectName delegateName = new ObjectName("JMImplementation:type=MBeanServerDelegate"); final NotificationListener dummyListener = new NotificationListener() { public void handleNotification(Notification n, Object o) { // do nothing return; } }; server = JMXConnectorServerFactory.newJMXConnectorServer(u, null, mbs); server.start(); addr = server.getAddress(); client = JMXConnectorFactory.newJMXConnector(addr, null); client.connect(null); mserver = client.getMBeanServerConnection(); String s1 = "1"; String s2 = "2"; String s3 = "3"; mserver.addNotificationListener(delegateName, dummyListener, null, s1); mserver.addNotificationListener(delegateName, dummyListener, null, s2); mserver.addNotificationListener(delegateName, dummyListener, null, s3); mserver.removeNotificationListener(delegateName, dummyListener, null, s3); mserver.removeNotificationListener(delegateName, dummyListener, null, s2); mserver.removeNotificationListener(delegateName, dummyListener, null, s1); client.close(); server.stop(); } catch (Exception e) { System.out.println(e); e.printStackTrace(); System.exit(1); } }
Example 6
Source File: RMIConnectorInternalMapTest.java From TencentKona-8 with GNU General Public License v2.0 | 4 votes |
public static void main(String[] args) throws Exception { System.out.println("---RMIConnectorInternalMapTest starting..."); JMXConnectorServer connectorServer = null; JMXConnector connectorClient = null; try { MBeanServer mserver = ManagementFactory.getPlatformMBeanServer(); JMXServiceURL serverURL = new JMXServiceURL("rmi", "localhost", 0); connectorServer = JMXConnectorServerFactory.newJMXConnectorServer(serverURL, null, mserver); connectorServer.start(); JMXServiceURL serverAddr = connectorServer.getAddress(); connectorClient = JMXConnectorFactory.connect(serverAddr, null); connectorClient.connect(); Field rmbscMapField = RMIConnector.class.getDeclaredField("rmbscMap"); rmbscMapField.setAccessible(true); Map<Subject, WeakReference<MBeanServerConnection>> map = (Map<Subject, WeakReference<MBeanServerConnection>>) rmbscMapField.get(connectorClient); if (map != null && !map.isEmpty()) { // failed throw new RuntimeException("RMIConnector's rmbscMap must be empty at the initial time."); } Subject delegationSubject = new Subject(true, Collections.singleton(new JMXPrincipal("delegate")), Collections.EMPTY_SET, Collections.EMPTY_SET); MBeanServerConnection mbsc1 = connectorClient.getMBeanServerConnection(delegationSubject); MBeanServerConnection mbsc2 = connectorClient.getMBeanServerConnection(delegationSubject); if (mbsc1 == null) { throw new RuntimeException("Got null connection."); } if (mbsc1 != mbsc2) { throw new RuntimeException("Not got same connection with a same subject."); } map = (Map<Subject, WeakReference<MBeanServerConnection>>) rmbscMapField.get(connectorClient); if (map == null || map.isEmpty()) { // failed throw new RuntimeException("RMIConnector's rmbscMap has wrong size " + "after creating a delegated connection."); } delegationSubject = null; mbsc1 = null; mbsc2 = null; int i = 0; while (!map.isEmpty() && i++ < 60) { System.gc(); Thread.sleep(100); } System.out.println("---GC times: " + i); if (!map.isEmpty()) { throw new RuntimeException("Failed to clean RMIConnector's rmbscMap"); } else { System.out.println("---RMIConnectorInternalMapTest: PASSED!"); } } finally { try { connectorClient.close(); connectorServer.stop(); } catch (Exception e) { } } }
Example 7
Source File: NotifReconnectDeadlockTest.java From jdk8u_jdk with GNU General Public License v2.0 | 4 votes |
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); Thread.sleep(100); // let pass the first client open notif if there is 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(); }
Example 8
Source File: EmptyDomainNotificationTest.java From jdk8u-jdk with GNU General Public License v2.0 | 4 votes |
public static void main(String[] args) throws Exception { final MBeanServer mbs = MBeanServerFactory.createMBeanServer(); final JMXServiceURL url = new JMXServiceURL("service:jmx:rmi://"); JMXConnectorServer server = JMXConnectorServerFactory.newJMXConnectorServer(url, null, mbs); server.start(); JMXConnector client = JMXConnectorFactory.connect(server.getAddress(), null); final MBeanServerConnection mbsc = client.getMBeanServerConnection(); final ObjectName mbean = ObjectName.getInstance(":type=Simple"); mbsc.createMBean(Simple.class.getName(), mbean); System.out.println("EmptyDomainNotificationTest-main: add a listener ..."); final Listener li = new Listener(); mbsc.addNotificationListener(mbean, li, null, null); System.out.println("EmptyDomainNotificationTest-main: ask to send a notif ..."); mbsc.invoke(mbean, "emitNotification", null, null); System.out.println("EmptyDomainNotificationTest-main: waiting notif..."); final long stopTime = System.currentTimeMillis() + 2000; synchronized(li) { long toWait = stopTime - System.currentTimeMillis(); while (li.received < 1 && toWait > 0) { li.wait(toWait); toWait = stopTime - System.currentTimeMillis(); } } if (li.received < 1) { throw new RuntimeException("No notif received!"); } else if (li.received > 1) { throw new RuntimeException("Wait one notif but got: "+li.received); } System.out.println("EmptyDomainNotificationTest-main: Got the expected notif!"); System.out.println("EmptyDomainNotificationTest-main: remove the listener."); mbsc.removeNotificationListener(mbean, li); // clean client.close(); server.stop(); System.out.println("EmptyDomainNotificationTest-main: Bye."); }
Example 9
Source File: EmptyDomainNotificationTest.java From jdk8u60 with GNU General Public License v2.0 | 4 votes |
public static void main(String[] args) throws Exception { final MBeanServer mbs = MBeanServerFactory.createMBeanServer(); final JMXServiceURL url = new JMXServiceURL("service:jmx:rmi://"); JMXConnectorServer server = JMXConnectorServerFactory.newJMXConnectorServer(url, null, mbs); server.start(); JMXConnector client = JMXConnectorFactory.connect(server.getAddress(), null); final MBeanServerConnection mbsc = client.getMBeanServerConnection(); final ObjectName mbean = ObjectName.getInstance(":type=Simple"); mbsc.createMBean(Simple.class.getName(), mbean); System.out.println("EmptyDomainNotificationTest-main: add a listener ..."); final Listener li = new Listener(); mbsc.addNotificationListener(mbean, li, null, null); System.out.println("EmptyDomainNotificationTest-main: ask to send a notif ..."); mbsc.invoke(mbean, "emitNotification", null, null); System.out.println("EmptyDomainNotificationTest-main: waiting notif..."); final long stopTime = System.currentTimeMillis() + 2000; synchronized(li) { long toWait = stopTime - System.currentTimeMillis(); while (li.received < 1 && toWait > 0) { li.wait(toWait); toWait = stopTime - System.currentTimeMillis(); } } if (li.received < 1) { throw new RuntimeException("No notif received!"); } else if (li.received > 1) { throw new RuntimeException("Wait one notif but got: "+li.received); } System.out.println("EmptyDomainNotificationTest-main: Got the expected notif!"); System.out.println("EmptyDomainNotificationTest-main: remove the listener."); mbsc.removeNotificationListener(mbean, li); // clean client.close(); server.stop(); System.out.println("EmptyDomainNotificationTest-main: Bye."); }
Example 10
Source File: RMIExporterTest.java From openjdk-jdk8u with GNU General Public License v2.0 | 4 votes |
public static void main(String[] args) { try { // Instantiate the MBean server // System.out.println("Create the MBean server"); MBeanServer mbs = MBeanServerFactory.createMBeanServer(); // Initialize environment map to be passed to the connector server // System.out.println("Initialize environment map"); HashMap env = new HashMap(); CustomRMIExporter exporter = new CustomRMIExporter(); env.put(RMIExporter.EXPORTER_ATTRIBUTE, exporter); // 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, env, mbs); cs.start(); // Create an RMI connector client // System.out.println("Create an RMI connector client"); JMXConnector cc = JMXConnectorFactory.connect(cs.getAddress(), null); // Close RMI connector client // System.out.println("Close the RMI connector client"); cc.close(); // Stop RMI connector server // System.out.println("Stop the RMI connector server"); cs.stop(); // Check if remote objects were exported/unexported successfully // int errorCount = 0; if (exporter.rmiServerExported) { System.out.println("RMIServer exported OK!"); } else { System.out.println("RMIServer exported KO!"); errorCount++; } if (exporter.rmiServerUnexported) { System.out.println("RMIServer unexported OK!"); } else { System.out.println("RMIServer unexported KO!"); errorCount++; } if (exporter.rmiConnectionExported) { System.out.println("RMIConnection exported OK!"); } else { System.out.println("RMIConnection exported KO!"); errorCount++; } if (exporter.rmiConnectionUnexported) { System.out.println("RMIConnection unexported OK!"); } else { System.out.println("RMIConnection unexported KO!"); errorCount++; } System.out.println("Bye! Bye!"); if (errorCount > 0) { System.out.println("RMIExporterTest FAILED!"); System.exit(1); } else { System.out.println("RMIExporterTest PASSED!"); } } catch (Exception e) { System.out.println("Unexpected exception caught = " + e); e.printStackTrace(); System.exit(1); } }
Example 11
Source File: RMIExitTest.java From openjdk-8-source with GNU General Public License v2.0 | 4 votes |
private static void test() { try { JMXServiceURL u = new JMXServiceURL("rmi", null, 0); JMXConnectorServer server; JMXServiceURL addr; JMXConnector client; MBeanServerConnection mserver; final ObjectName delegateName = new ObjectName("JMImplementation:type=MBeanServerDelegate"); final NotificationListener dummyListener = new NotificationListener() { public void handleNotification(Notification n, Object o) { // do nothing return; } }; server = JMXConnectorServerFactory.newJMXConnectorServer(u, null, mbs); server.start(); addr = server.getAddress(); client = JMXConnectorFactory.newJMXConnector(addr, null); client.connect(null); mserver = client.getMBeanServerConnection(); String s1 = "1"; String s2 = "2"; String s3 = "3"; mserver.addNotificationListener(delegateName, dummyListener, null, s1); mserver.addNotificationListener(delegateName, dummyListener, null, s2); mserver.addNotificationListener(delegateName, dummyListener, null, s3); mserver.removeNotificationListener(delegateName, dummyListener, null, s3); mserver.removeNotificationListener(delegateName, dummyListener, null, s2); mserver.removeNotificationListener(delegateName, dummyListener, null, s1); client.close(); server.stop(); } catch (Exception e) { System.out.println(e); e.printStackTrace(); System.exit(1); } }
Example 12
Source File: MXBeanTest.java From jdk8u-dev-jdk with GNU General Public License v2.0 | 4 votes |
private static <T> void testInterface(Class<T> c, boolean nullTest) throws Exception { System.out.println("Testing " + c.getName() + (nullTest ? " for null values" : "") + "..."); MBeanServer mbs = MBeanServerFactory.newMBeanServer(); JMXServiceURL url = new JMXServiceURL("rmi", null, 0); JMXConnectorServer cs = JMXConnectorServerFactory.newJMXConnectorServer(url, null, mbs); cs.start(); JMXServiceURL addr = cs.getAddress(); JMXConnector cc = JMXConnectorFactory.connect(addr); MBeanServerConnection mbsc = cc.getMBeanServerConnection(); NamedMXBeans namedMXBeans = new NamedMXBeans(mbsc); InvocationHandler ih = nullTest ? new MXBeanNullImplInvocationHandler(c, namedMXBeans) : new MXBeanImplInvocationHandler(c, namedMXBeans); T impl = c.cast(Proxy.newProxyInstance(c.getClassLoader(), new Class[] {c}, ih)); ObjectName on = new ObjectName("test:type=" + c.getName()); mbs.registerMBean(impl, on); System.out.println("Register any MXBeans..."); Field[] fields = c.getFields(); for (Field field : fields) { String n = field.getName(); if (n.endsWith("ObjectName")) { String objectNameString = (String) field.get(null); String base = n.substring(0, n.length() - 10); Field f = c.getField(base); Object mxbean = f.get(null); ObjectName objectName = ObjectName.getInstance(objectNameString); mbs.registerMBean(mxbean, objectName); namedMXBeans.put(objectName, mxbean); } } try { testInterface(c, mbsc, on, namedMXBeans, nullTest); } finally { try { cc.close(); } finally { cs.stop(); } } }
Example 13
Source File: RMIExitTest.java From openjdk-jdk8u-backup with GNU General Public License v2.0 | 4 votes |
private static void test() { try { JMXServiceURL u = new JMXServiceURL("rmi", null, 0); JMXConnectorServer server; JMXServiceURL addr; JMXConnector client; MBeanServerConnection mserver; final ObjectName delegateName = new ObjectName("JMImplementation:type=MBeanServerDelegate"); final NotificationListener dummyListener = new NotificationListener() { public void handleNotification(Notification n, Object o) { // do nothing return; } }; server = JMXConnectorServerFactory.newJMXConnectorServer(u, null, mbs); server.start(); addr = server.getAddress(); client = JMXConnectorFactory.newJMXConnector(addr, null); client.connect(null); mserver = client.getMBeanServerConnection(); String s1 = "1"; String s2 = "2"; String s3 = "3"; mserver.addNotificationListener(delegateName, dummyListener, null, s1); mserver.addNotificationListener(delegateName, dummyListener, null, s2); mserver.addNotificationListener(delegateName, dummyListener, null, s3); mserver.removeNotificationListener(delegateName, dummyListener, null, s3); mserver.removeNotificationListener(delegateName, dummyListener, null, s2); mserver.removeNotificationListener(delegateName, dummyListener, null, s1); client.close(); server.stop(); } catch (Exception e) { System.out.println(e); e.printStackTrace(); System.exit(1); } }
Example 14
Source File: RMIExitTest.java From jdk8u-jdk with GNU General Public License v2.0 | 4 votes |
private static void test() { try { JMXServiceURL u = new JMXServiceURL("rmi", null, 0); JMXConnectorServer server; JMXServiceURL addr; JMXConnector client; MBeanServerConnection mserver; final ObjectName delegateName = new ObjectName("JMImplementation:type=MBeanServerDelegate"); final NotificationListener dummyListener = new NotificationListener() { public void handleNotification(Notification n, Object o) { // do nothing return; } }; server = JMXConnectorServerFactory.newJMXConnectorServer(u, null, mbs); server.start(); addr = server.getAddress(); client = JMXConnectorFactory.newJMXConnector(addr, null); client.connect(null); mserver = client.getMBeanServerConnection(); String s1 = "1"; String s2 = "2"; String s3 = "3"; mserver.addNotificationListener(delegateName, dummyListener, null, s1); mserver.addNotificationListener(delegateName, dummyListener, null, s2); mserver.addNotificationListener(delegateName, dummyListener, null, s3); mserver.removeNotificationListener(delegateName, dummyListener, null, s3); mserver.removeNotificationListener(delegateName, dummyListener, null, s2); mserver.removeNotificationListener(delegateName, dummyListener, null, s1); client.close(); server.stop(); } catch (Exception e) { System.out.println(e); e.printStackTrace(); System.exit(1); } }
Example 15
Source File: NotifReconnectDeadlockTest.java From openjdk-jdk9 with GNU General Public License v2.0 | 4 votes |
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); Thread.sleep(100); // let pass the first client open notif if there is 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(); }
Example 16
Source File: RMIExporterTest.java From jdk8u-jdk with GNU General Public License v2.0 | 4 votes |
public static void main(String[] args) { try { // Instantiate the MBean server // System.out.println("Create the MBean server"); MBeanServer mbs = MBeanServerFactory.createMBeanServer(); // Initialize environment map to be passed to the connector server // System.out.println("Initialize environment map"); HashMap env = new HashMap(); CustomRMIExporter exporter = new CustomRMIExporter(); env.put(RMIExporter.EXPORTER_ATTRIBUTE, exporter); // 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, env, mbs); cs.start(); // Create an RMI connector client // System.out.println("Create an RMI connector client"); JMXConnector cc = JMXConnectorFactory.connect(cs.getAddress(), null); // Close RMI connector client // System.out.println("Close the RMI connector client"); cc.close(); // Stop RMI connector server // System.out.println("Stop the RMI connector server"); cs.stop(); // Check if remote objects were exported/unexported successfully // int errorCount = 0; if (exporter.rmiServerExported) { System.out.println("RMIServer exported OK!"); } else { System.out.println("RMIServer exported KO!"); errorCount++; } if (exporter.rmiServerUnexported) { System.out.println("RMIServer unexported OK!"); } else { System.out.println("RMIServer unexported KO!"); errorCount++; } if (exporter.rmiConnectionExported) { System.out.println("RMIConnection exported OK!"); } else { System.out.println("RMIConnection exported KO!"); errorCount++; } if (exporter.rmiConnectionUnexported) { System.out.println("RMIConnection unexported OK!"); } else { System.out.println("RMIConnection unexported KO!"); errorCount++; } System.out.println("Bye! Bye!"); if (errorCount > 0) { System.out.println("RMIExporterTest FAILED!"); System.exit(1); } else { System.out.println("RMIExporterTest PASSED!"); } } catch (Exception e) { System.out.println("Unexpected exception caught = " + e); e.printStackTrace(); System.exit(1); } }
Example 17
Source File: RMIExitTest.java From TencentKona-8 with GNU General Public License v2.0 | 4 votes |
private static void test() { try { JMXServiceURL u = new JMXServiceURL("rmi", null, 0); JMXConnectorServer server; JMXServiceURL addr; JMXConnector client; MBeanServerConnection mserver; final ObjectName delegateName = new ObjectName("JMImplementation:type=MBeanServerDelegate"); final NotificationListener dummyListener = new NotificationListener() { public void handleNotification(Notification n, Object o) { // do nothing return; } }; server = JMXConnectorServerFactory.newJMXConnectorServer(u, null, mbs); server.start(); addr = server.getAddress(); client = JMXConnectorFactory.newJMXConnector(addr, null); client.connect(null); mserver = client.getMBeanServerConnection(); String s1 = "1"; String s2 = "2"; String s3 = "3"; mserver.addNotificationListener(delegateName, dummyListener, null, s1); mserver.addNotificationListener(delegateName, dummyListener, null, s2); mserver.addNotificationListener(delegateName, dummyListener, null, s3); mserver.removeNotificationListener(delegateName, dummyListener, null, s3); mserver.removeNotificationListener(delegateName, dummyListener, null, s2); mserver.removeNotificationListener(delegateName, dummyListener, null, s1); client.close(); server.stop(); } catch (Exception e) { System.out.println(e); e.printStackTrace(); System.exit(1); } }
Example 18
Source File: UnserializableTargetObjectTest.java From dragonwell8_jdk with GNU General Public License v2.0 | 4 votes |
public static void main(String[] args) throws Exception { MBeanServer mbs = MBeanServerFactory.newMBeanServer(); ObjectName name = new ObjectName("a:b=c"); Resource resource1 = new Resource(); Resource resource2 = new Resource(); Resource resource3 = new Resource(); Method operationMethod = Resource.class.getMethod("operation"); Method getCountMethod = Resource.class.getMethod("getCount"); Method setCountMethod = Resource.class.getMethod("setCount", int.class); Descriptor operationDescriptor = new DescriptorSupport(new String[] { "descriptorType", "name", "targetObject" }, new Object[] { "operation", "operation", resource1 }); Descriptor getCountDescriptor = new DescriptorSupport(new String[] { "descriptorType", "name", "targetObject" }, new Object[] { "operation", "getCount", resource2 }); Descriptor setCountDescriptor = new DescriptorSupport(new String[] { "descriptorType", "name", "targetObject" }, new Object[] { "operation", "setCount", resource2 }); Descriptor countDescriptor = new DescriptorSupport(new String[] { "descriptorType", "name", "getMethod", "setMethod" }, new Object[] { "attribute", "Count", "getCount", "setCount" }); ModelMBeanOperationInfo operationInfo = new ModelMBeanOperationInfo("operation description", operationMethod, operationDescriptor); ModelMBeanOperationInfo getCountInfo = new ModelMBeanOperationInfo("getCount description", getCountMethod, getCountDescriptor); ModelMBeanOperationInfo setCountInfo = new ModelMBeanOperationInfo("setCount description", setCountMethod, setCountDescriptor); ModelMBeanAttributeInfo countInfo = new ModelMBeanAttributeInfo("Count", "Count description", getCountMethod, setCountMethod, countDescriptor); ModelMBeanInfo mmbi = new ModelMBeanInfoSupport(Resource.class.getName(), "ModelMBean to test targetObject", new ModelMBeanAttributeInfo[] {countInfo}, null, // no constructors new ModelMBeanOperationInfo[] { operationInfo, getCountInfo, setCountInfo }, null); // no notifications ModelMBean mmb = new RequiredModelMBean(mmbi); mmb.setManagedResource(resource3, "ObjectReference"); mbs.registerMBean(mmb, name); mbs.invoke(name, "operation", null, null); mbs.setAttribute(name, new Attribute("Count", 53)); if (resource1.operationCount != 1) throw new Exception("operationCount: " + resource1.operationCount); if (resource2.count != 53) throw new Exception("count: " + resource2.count); int got = (Integer) mbs.getAttribute(name, "Count"); if (got != 53) throw new Exception("got count: " + got); JMXServiceURL url = new JMXServiceURL("rmi", null, 0); JMXConnectorServer cs = JMXConnectorServerFactory.newJMXConnectorServer(url, null, mbs); cs.start(); JMXServiceURL addr = cs.getAddress(); JMXConnector cc = JMXConnectorFactory.connect(addr); MBeanServerConnection mbsc = cc.getMBeanServerConnection(); ModelMBeanInfo rmmbi = (ModelMBeanInfo) mbsc.getMBeanInfo(name); // Above gets NotSerializableException if resource included in // serialized form cc.close(); cs.stop(); System.out.println("TEST PASSED"); }
Example 19
Source File: NotSerializableNotifTest.java From jdk8u-jdk with GNU General Public License v2.0 | 4 votes |
private static void test(String proto) throws Exception { System.out.println("\n>>> Test for protocol " + proto); JMXServiceURL url = new JMXServiceURL(proto, null, 0); System.out.println(">>> Create a server: "+url); JMXConnectorServer server = null; try { server = JMXConnectorServerFactory.newJMXConnectorServer(url, null, mbeanServer); } catch (MalformedURLException e) { System.out.println("System does not recognize URL: " + url + "; ignoring"); return; } server.start(); url = server.getAddress(); System.out.println(">>> Creating a client connectint to: "+url); JMXConnector conn = JMXConnectorFactory.connect(url, null); MBeanServerConnection client = conn.getMBeanServerConnection(); // add listener from the client side Listener listener = new Listener(); client.addNotificationListener(emitter, listener, null, null); // ask to send one not serializable notif Object[] params = new Object[] {new Integer(1)}; String[] signatures = new String[] {"java.lang.Integer"}; client.invoke(emitter, "sendNotserializableNotifs", params, signatures); // listener clean client.removeNotificationListener(emitter, listener); listener = new Listener(); client.addNotificationListener(emitter, listener, null, null); //ask to send serializable notifs params = new Object[] {new Integer(sentNotifs)}; client.invoke(emitter, "sendNotifications", params, signatures); // waiting ... synchronized (listener) { while (listener.received() < sentNotifs) { listener.wait(); // either pass or test timeout (killed by test harness) } } // clean client.removeNotificationListener(emitter, listener); conn.close(); server.stop(); }
Example 20
Source File: RMIConnectorInternalMapTest.java From openjdk-8 with GNU General Public License v2.0 | 4 votes |
public static void main(String[] args) throws Exception { System.out.println("---RMIConnectorInternalMapTest starting..."); JMXConnectorServer connectorServer = null; JMXConnector connectorClient = null; try { MBeanServer mserver = ManagementFactory.getPlatformMBeanServer(); JMXServiceURL serverURL = new JMXServiceURL("rmi", "localhost", 0); connectorServer = JMXConnectorServerFactory.newJMXConnectorServer(serverURL, null, mserver); connectorServer.start(); JMXServiceURL serverAddr = connectorServer.getAddress(); connectorClient = JMXConnectorFactory.connect(serverAddr, null); connectorClient.connect(); Field rmbscMapField = RMIConnector.class.getDeclaredField("rmbscMap"); rmbscMapField.setAccessible(true); Map<Subject, WeakReference<MBeanServerConnection>> map = (Map<Subject, WeakReference<MBeanServerConnection>>) rmbscMapField.get(connectorClient); if (map != null && !map.isEmpty()) { // failed throw new RuntimeException("RMIConnector's rmbscMap must be empty at the initial time."); } Subject delegationSubject = new Subject(true, Collections.singleton(new JMXPrincipal("delegate")), Collections.EMPTY_SET, Collections.EMPTY_SET); MBeanServerConnection mbsc1 = connectorClient.getMBeanServerConnection(delegationSubject); MBeanServerConnection mbsc2 = connectorClient.getMBeanServerConnection(delegationSubject); if (mbsc1 == null) { throw new RuntimeException("Got null connection."); } if (mbsc1 != mbsc2) { throw new RuntimeException("Not got same connection with a same subject."); } map = (Map<Subject, WeakReference<MBeanServerConnection>>) rmbscMapField.get(connectorClient); if (map == null || map.isEmpty()) { // failed throw new RuntimeException("RMIConnector's rmbscMap has wrong size " + "after creating a delegated connection."); } delegationSubject = null; mbsc1 = null; mbsc2 = null; int i = 0; while (!map.isEmpty() && i++ < 60) { System.gc(); Thread.sleep(100); } System.out.println("---GC times: " + i); if (!map.isEmpty()) { throw new RuntimeException("Failed to clean RMIConnector's rmbscMap"); } else { System.out.println("---RMIConnectorInternalMapTest: PASSED!"); } } finally { try { connectorClient.close(); connectorServer.stop(); } catch (Exception e) { } } }