Java Code Examples for javax.management.MBeanServer#setAttribute()
The following examples show how to use
javax.management.MBeanServer#setAttribute() .
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: HelloBeanTest.java From camelinaction2 with Apache License 2.0 | 6 votes |
@Test public void testHelloBean() throws Exception { MBeanServer mbeanServer = getMBeanServer(); ObjectName on = ObjectName.getInstance("org.apache.camel:context=camel-1,type=processors,name=\"bean1\""); assertTrue(mbeanServer.isRegistered(on)); // should inherit the standard set of JMX attributes String camelId = (String) mbeanServer.getAttribute(on, "CamelId"); assertEquals(context.getName(), camelId); // should have the custom Greeting attribute String greeting = (String) mbeanServer.getAttribute(on, "Greeting"); assertEquals("Hello", greeting); String reply = (String) mbeanServer.invoke(on, "say", null, null); assertEquals("Hello", reply); // update the attribute mbeanServer.setAttribute(on, new Attribute("Greeting", "Bye")); // and test that its changed reply = (String) mbeanServer.invoke(on, "say", null, null); assertEquals("Bye", reply); }
Example 2
Source File: JMXTest.java From tomee with Apache License 2.0 | 6 votes |
@Test public void testFactorySkipImpliedAttributes() throws Exception { final MBeanServer mbs = ManagementFactory.getPlatformMBeanServer(); final ObjectName objectName = new ObjectName("superbiz.test:name=Hello2"); Assert.assertEquals(20, mbs.getAttribute(objectName, "Count")); mbs.invoke(objectName, "increment", new Object[0], new String[0]); Assert.assertEquals(21, mbs.getAttribute(objectName, "Count")); Attribute attribute = new Attribute("Count", 12345); mbs.setAttribute(objectName, attribute); Assert.assertEquals(12345, mbs.getAttribute(objectName, "Count")); Assert.assertEquals("Hello, world", mbs.invoke(objectName, "greet", new Object[]{"world"}, new String[]{String.class.getName()})); }
Example 3
Source File: GuessHowManyMBeanTest.java From tomee with Apache License 2.0 | 6 votes |
@Test public void play() throws Exception { Properties properties = new Properties(); properties.setProperty(LocalMBeanServer.OPENEJB_JMX_ACTIVE, Boolean.TRUE.toString()); EJBContainer container = EJBContainer.createEJBContainer(properties); MBeanServer server = ManagementFactory.getPlatformMBeanServer(); ObjectName objectName = new ObjectName(OBJECT_NAME); assertEquals(0, server.getAttribute(objectName, "value")); server.setAttribute(objectName, new Attribute("value", 3)); assertEquals(3, server.getAttribute(objectName, "value")); assertEquals("winner", server.invoke(objectName, "tryValue", new Object[]{3}, null)); assertEquals("not the correct value, please have another try", server.invoke(objectName, "tryValue", new Object[]{2}, null)); container.close(); }
Example 4
Source File: ScriptExample.java From cacheonix-core with GNU Lesser General Public License v2.1 | 6 votes |
/** * Executes the script */ public void start() throws JMException, MalformedURLException { // creates new server MBeanServer server = MBeanServerFactory.createMBeanServer("Script"); ObjectName scriptingName = new ObjectName("Test:name=script"); server.createMBean("mx4j.tools.jython.JythonRunner", scriptingName, null); // Sample. Starts all monitors server.setAttribute(scriptingName, new Attribute("Script", "[proxy(name).start() for name in server.queryNames(None, None) if server.isInstanceOf(name, 'javax.management.monitor.Monitor')]")); server.invoke(scriptingName, "runScript", null, null); // Sample. Stops all timers server.setAttribute(scriptingName, new Attribute("Script", "[proxy(name).start() for name in server.queryNames(None, None) if server.isInstanceOf(name, 'javax.management.timer.Timer')]")); server.invoke(scriptingName, "runScript", null, null); // Sample. prints all MBeans which description is not null server.setAttribute(scriptingName, new Attribute("Script", "desc = [server.getMBeanInfo(name).description for name in server.queryNames(None, None)]\nprint filter(lambda x:x, desc)")); server.invoke(scriptingName, "runScript", null, null); }
Example 5
Source File: ClientReconnectWindowConfigChangeHandler.java From terracotta-platform with Apache License 2.0 | 5 votes |
@Override public void apply(Configuration change) { int value = (int) Measure.parse(change.getValue(), TimeUnit.class).getQuantity(TimeUnit.SECONDS); MBeanServer mbeanServer = ManagementFactory.getPlatformMBeanServer(); try { mbeanServer.setAttribute(TC_SERVER_INFO, new Attribute(ATTR_NAME, value)); } catch (JMException e) { LOGGER.error("Invoke resulted in exception", e); // log the exception so that server logs get it too throw new AssertionError(e); } }
Example 6
Source File: MbeansSource.java From Tomcat7.0.67 with Apache License 2.0 | 5 votes |
private void processAttribute(MBeanServer server, Node descN, String objectName ) { String attName=DomUtil.getAttribute(descN, "name"); String value=DomUtil.getAttribute(descN, "value"); String type=null; // DomUtil.getAttribute(descN, "type"); if( value==null ) { // The value may be specified as CDATA value=DomUtil.getContent(descN); } try { if( log.isDebugEnabled()) log.debug("Set attribute " + objectName + " " + attName + " " + value); ObjectName oname=new ObjectName(objectName); // find the type type=registry.getType( oname, attName ); if( type==null ) { log.info("Can't find attribute " + objectName + " " + attName ); } else { Object valueO=registry.convertValue( type, value); server.setAttribute(oname, new Attribute(attName, valueO)); } } catch( Exception ex) { log.error("Error processing attribute " + objectName + " " + attName + " " + value, ex); } }
Example 7
Source File: JMXTest.java From tomee with Apache License 2.0 | 5 votes |
@Test public void testFactory() throws Exception { final MBeanServer mbs = ManagementFactory.getPlatformMBeanServer(); final ObjectName objectName = new ObjectName("superbiz.test:name=Hello"); Assert.assertNotNull(ejb); Assert.assertEquals(20, mbs.getAttribute(objectName, "Count")); Assert.assertEquals(20, ejb.getCount()); mbs.invoke(objectName, "increment", new Object[0], new String[0]); Assert.assertEquals(21, mbs.getAttribute(objectName, "Count")); Assert.assertEquals(21, ejb.getCount()); ejb.increment(); Assert.assertEquals(22, mbs.getAttribute(objectName, "Count")); Assert.assertEquals(22, ejb.getCount()); Attribute attribute = new Attribute("Count", 12345); mbs.setAttribute(objectName, attribute); Assert.assertEquals(12345, mbs.getAttribute(objectName, "Count")); Assert.assertEquals(12345, ejb.getCount()); ejb.setCount(23456); Assert.assertEquals(23456, mbs.getAttribute(objectName, "Count")); Assert.assertEquals(23456, ejb.getCount()); Assert.assertEquals("Hello, world", mbs.invoke(objectName, "greet", new Object[]{"world"}, new String[]{String.class.getName()})); Assert.assertEquals("Hello, world", ejb.greet("world")); }
Example 8
Source File: JMXTest.java From tomee with Apache License 2.0 | 5 votes |
@Test public void testPostConstruct() throws Exception { final MBeanServer mbs = ManagementFactory.getPlatformMBeanServer(); final ObjectName objectName = new ObjectName("superbiz.test:name=Alternative"); Assert.assertNotNull(alternativeEjb); Assert.assertEquals(20, mbs.getAttribute(objectName, "Count")); Assert.assertEquals(20, alternativeEjb.getCount()); mbs.invoke(objectName, "increment", new Object[0], new String[0]); Assert.assertEquals(21, mbs.getAttribute(objectName, "Count")); Assert.assertEquals(21, alternativeEjb.getCount()); alternativeEjb.increment(); Assert.assertEquals(22, mbs.getAttribute(objectName, "Count")); Assert.assertEquals(22, alternativeEjb.getCount()); Attribute attribute = new Attribute("Count", 12345); mbs.setAttribute(objectName, attribute); Assert.assertEquals(12345, mbs.getAttribute(objectName, "Count")); Assert.assertEquals(12345, alternativeEjb.getCount()); alternativeEjb.setCount(23456); Assert.assertEquals(23456, mbs.getAttribute(objectName, "Count")); Assert.assertEquals(23456, alternativeEjb.getCount()); Assert.assertEquals("Hello, world", mbs.invoke(objectName, "greet", new Object[]{"world"}, new String[]{String.class.getName()})); Assert.assertEquals("Hello, world", alternativeEjb.greet("world")); }
Example 9
Source File: LocalJMXCommand.java From tomee with Apache License 2.0 | 5 votes |
private void set(final String cmd) { final String[] split = cmd.split(" "); if (split.length < 2) { streamManager.writeErr("you need to specify an attribute, an objectname and a value"); return; } final MBeanServer mBeanServer = LocalMBeanServer.get(); final String newValue = cmd.substring(split[0].length() + split[1].length() + 1).trim(); try { final ObjectName oname = new ObjectName(split[1]); final MBeanInfo minfo = mBeanServer.getMBeanInfo(oname); final MBeanAttributeInfo attrs[] = minfo.getAttributes(); String type = String.class.getName(); for (int i = 0; i < attrs.length; i++) { if (attrs[i].getName().equals(split[0])) { type = attrs[i].getType(); break; } } final Object valueObj = propertyEditorRegistry.getValue(type, newValue, Thread.currentThread().getContextClassLoader()); mBeanServer.setAttribute(oname, new Attribute(split[0], valueObj)); streamManager.writeOut("done"); } catch (Exception ex) { streamManager.writeOut("Error - " + ex.toString()); } }
Example 10
Source File: MbeansSource.java From tomcatsrc with Apache License 2.0 | 5 votes |
private void processAttribute(MBeanServer server, Node descN, String objectName ) { String attName=DomUtil.getAttribute(descN, "name"); String value=DomUtil.getAttribute(descN, "value"); String type=null; // DomUtil.getAttribute(descN, "type"); if( value==null ) { // The value may be specified as CDATA value=DomUtil.getContent(descN); } try { if( log.isDebugEnabled()) log.debug("Set attribute " + objectName + " " + attName + " " + value); ObjectName oname=new ObjectName(objectName); // find the type type=registry.getType( oname, attName ); if( type==null ) { log.info("Can't find attribute " + objectName + " " + attName ); } else { Object valueO=registry.convertValue( type, value); server.setAttribute(oname, new Attribute(attName, valueO)); } } catch( Exception ex) { log.error("Error processing attribute " + objectName + " " + attName + " " + value, ex); } }
Example 11
Source File: MailExample.java From cacheonix-core with GNU Lesser General Public License v2.1 | 5 votes |
/** * Starts the http server */ public void start() throws JMException { // creates new server MBeanServer server = MBeanServerFactory.createMBeanServer("Mail"); ObjectName beanName = new ObjectName("Test:name=test"); server.registerMBean(new TestClass("original"), beanName); ObjectName monitorName = new ObjectName("Test:name=monitor"); server.createMBean("javax.management.monitor.StringMonitor", monitorName, null); server.setAttribute(monitorName, new Attribute("ObservedObject", beanName)); server.setAttribute(monitorName, new Attribute("ObservedAttribute", "Str")); server.setAttribute(monitorName, new Attribute("StringToCompare", "original")); server.setAttribute(monitorName, new Attribute("GranularityPeriod", new Integer(100))); server.setAttribute(monitorName, new Attribute("NotifyDiffer", Boolean.TRUE)); server.invoke(monitorName, "start", null, null); ObjectName mailerName = new ObjectName("Test:name=mailer"); server.createMBean("mx4j.tools.mail.SMTP", mailerName, null); // Sets attributes server.setAttribute(mailerName, new Attribute("ObservedObject", monitorName)); server.setAttribute(mailerName, new Attribute("NotificationName", "jmx.monitor.string.differs")); server.setAttribute(mailerName, new Attribute("FromAddress", "monitor@someserver")); server.setAttribute(mailerName, new Attribute("FromName", "MX4J")); server.setAttribute(mailerName, new Attribute("ServerHost", "smpt-server")); server.setAttribute(mailerName, new Attribute("To", "nobody@nobody")); server.setAttribute(mailerName, new Attribute("Subject", "Notification on $date$ at $time$")); server.setAttribute(mailerName, new Attribute("Content", "Notification on $datetime$ sent by $objectname$ on $observed$ monitor and a notification $notification$\nNotice how $$$$ gets expanded to $$")); // this will trigger the monitor and the mailer (Wait for 10 secs app) server.setAttribute(beanName, new Attribute("Str", "something-else")); }
Example 12
Source File: UnserializableTargetObjectTest.java From openjdk-8 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 13
Source File: UnserializableTargetObjectTest.java From jdk8u-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 14
Source File: UnserializableTargetObjectTest.java From jdk8u-dev-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 15
Source File: UnserializableTargetObjectTest.java From jdk8u_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 16
Source File: UnserializableTargetObjectTest.java From jdk8u-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 17
Source File: UnserializableTargetObjectTest.java From openjdk-jdk8u-backup 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 18
Source File: UnserializableTargetObjectTest.java From openjdk-jdk8u 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: UnserializableTargetObjectTest.java From jdk8u60 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 20
Source File: UnserializableTargetObjectTest.java From TencentKona-8 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"); }