@Override public ObjectInstance getObjectInstance(ObjectName name) throws InstanceNotFoundException { return mbeanServer.getObjectInstance(name); }
@Override public ObjectInstance getObjectInstance(ObjectName name) throws InstanceNotFoundException { return mbeanServer.getObjectInstance(name); }
@Override public ObjectInstance getObjectInstance(ObjectName name) throws InstanceNotFoundException { return mbeanServer.getObjectInstance(name); }
@Override public ObjectInstance getObjectInstance(ObjectName name) throws InstanceNotFoundException { return mbeanServer.getObjectInstance(name); }
@CheckForNull private ObjectInstance getMBean() throws Exception { try { return ManagementFactory.getPlatformMBeanServer().getObjectInstance(new ObjectName(CeDatabaseMBean.OBJECT_NAME)); } catch (InstanceNotFoundException e) { return null; } } }
@CheckForNull private ObjectInstance getMBean() throws Exception { try { return ManagementFactory.getPlatformMBeanServer().getObjectInstance(new ObjectName(AsyncExecutionMBean.OBJECT_NAME)); } catch (InstanceNotFoundException e) { return null; } }
@Test public void lazyNaming() throws Exception { ConfigurableApplicationContext ctx = new ClassPathXmlApplicationContext("org/springframework/jmx/export/annotation/lazyNaming.xml"); try { MBeanServer server = (MBeanServer) ctx.getBean("server"); ObjectName oname = ObjectNameManager.getInstance("bean:name=testBean4"); assertNotNull(server.getObjectInstance(oname)); String name = (String) server.getAttribute(oname, "Name"); assertEquals("Invalid name returned", "TEST", name); } finally { ctx.close(); } }
@Test public void componentScan() throws Exception { ConfigurableApplicationContext ctx = new ClassPathXmlApplicationContext("org/springframework/jmx/export/annotation/componentScan.xml"); try { MBeanServer server = (MBeanServer) ctx.getBean("server"); ObjectName oname = ObjectNameManager.getInstance("bean:name=testBean4"); assertNotNull(server.getObjectInstance(oname)); String name = (String) server.getAttribute(oname, "Name"); assertNull(name); } finally { ctx.close(); } }
private void validateMBeanAttribute(MBeanServer server, String objectName, String expected) throws Exception { ObjectName oname = ObjectNameManager.getInstance(objectName); assertNotNull(server.getObjectInstance(oname)); String name = (String) server.getAttribute(oname, "Name"); assertEquals("Invalid name returned", expected, name); }
@Test public void testAutodetectWithExclude() throws Exception { ConfigurableApplicationContext ctx = load("autodetectMBeans.xml"); try { ctx.getBean("exporter"); MBeanServer server = ctx.getBean("server", MBeanServer.class); ObjectInstance instance = server.getObjectInstance(ObjectNameManager.getInstance("spring:mbean=true")); assertNotNull(instance); thrown.expect(InstanceNotFoundException.class); server.getObjectInstance(ObjectNameManager.getInstance("spring:mbean=false")); } finally { ctx.close(); } }
private void checkConfigurationJmx(Supplier<Cache<?, ?>> cacheSupplier) throws Exception { Cache<?, ?> cache = cacheSupplier.get(); @SuppressWarnings("unchecked") CompleteConfiguration<?, ?> configuration = cache.getConfiguration(CompleteConfiguration.class); assertThat(configuration.isManagementEnabled(), is(true)); assertThat(configuration.isStatisticsEnabled(), is(true)); String name = "javax.cache:Cache=%s,CacheManager=%s,type=CacheStatistics"; ManagementFactory.getPlatformMBeanServer().getObjectInstance( new ObjectName(String.format(name, cache.getName(), PROVIDER_NAME))); } }
@Test public void testAutodetectMBeans() throws Exception { ConfigurableApplicationContext ctx = load("autodetectMBeans.xml"); try { ctx.getBean("exporter"); MBeanServer server = ctx.getBean("server", MBeanServer.class); ObjectInstance instance = server.getObjectInstance(ObjectNameManager.getInstance("spring:mbean=true")); assertNotNull(instance); instance = server.getObjectInstance(ObjectNameManager.getInstance("spring:mbean2=true")); assertNotNull(instance); instance = server.getObjectInstance(ObjectNameManager.getInstance("spring:mbean3=true")); assertNotNull(instance); } finally { ctx.close(); } }
@Test public void testAutodetectLazyMBeans() throws Exception { ConfigurableApplicationContext ctx = load("autodetectLazyMBeans.xml"); try { ctx.getBean("exporter"); MBeanServer server = ctx.getBean("server", MBeanServer.class); ObjectName oname = ObjectNameManager.getInstance("spring:mbean=true"); assertNotNull(server.getObjectInstance(oname)); String name = (String) server.getAttribute(oname, "Name"); assertEquals("Invalid name returned", "Rob Harrop", name); oname = ObjectNameManager.getInstance("spring:mbean=another"); assertNotNull(server.getObjectInstance(oname)); name = (String) server.getAttribute(oname, "Name"); assertEquals("Invalid name returned", "Juergen Hoeller", name); } finally { ctx.close(); } }
protected ObjectInstance getObjectInstance() throws Exception { return getServer().getObjectInstance(ObjectNameManager.getInstance(getObjectName())); }
@Test public void lazyAssembling() throws Exception { System.setProperty("domain", "bean"); ConfigurableApplicationContext ctx = new ClassPathXmlApplicationContext("org/springframework/jmx/export/annotation/lazyAssembling.xml"); try { MBeanServer server = (MBeanServer) ctx.getBean("server"); ObjectName oname = ObjectNameManager.getInstance("bean:name=testBean4"); assertNotNull(server.getObjectInstance(oname)); String name = (String) server.getAttribute(oname, "Name"); assertEquals("Invalid name returned", "TEST", name); oname = ObjectNameManager.getInstance("bean:name=testBean5"); assertNotNull(server.getObjectInstance(oname)); name = (String) server.getAttribute(oname, "Name"); assertEquals("Invalid name returned", "FACTORY", name); oname = ObjectNameManager.getInstance("spring:mbean=true"); assertNotNull(server.getObjectInstance(oname)); name = (String) server.getAttribute(oname, "Name"); assertEquals("Invalid name returned", "Rob Harrop", name); oname = ObjectNameManager.getInstance("spring:mbean=another"); assertNotNull(server.getObjectInstance(oname)); name = (String) server.getAttribute(oname, "Name"); assertEquals("Invalid name returned", "Juergen Hoeller", name); } finally { System.clearProperty("domain"); ctx.close(); } }
@Test public void testRegisterIgnoreExisting() throws Exception { ObjectName objectName = ObjectNameManager.getInstance(OBJECT_NAME); Person preRegistered = new Person(); preRegistered.setName("Rob Harrop"); server.registerMBean(preRegistered, objectName); Person springRegistered = new Person(); springRegistered.setName("Sally Greenwood"); String objectName2 = "spring:test=equalBean"; Map<String, Object> beans = new HashMap<>(); beans.put(objectName.toString(), springRegistered); beans.put(objectName2, springRegistered); MBeanExporter exporter = new MBeanExporter(); exporter.setServer(server); exporter.setBeans(beans); exporter.setRegistrationPolicy(RegistrationPolicy.IGNORE_EXISTING); start(exporter); ObjectInstance instance = server.getObjectInstance(objectName); assertNotNull(instance); ObjectInstance instance2 = server.getObjectInstance(new ObjectName(objectName2)); assertNotNull(instance2); // should still be the first bean with name Rob Harrop assertEquals("Rob Harrop", server.getAttribute(objectName, "Name")); }
@Test public void registerWithMBeanServer() throws Exception { //Added a brief snooze here - seems to fix occasional //java.net.BindException: Address already in use errors Thread.sleep(1); ConnectorServerFactoryBean bean = new ConnectorServerFactoryBean(); bean.setObjectName(OBJECT_NAME); bean.afterPropertiesSet(); try { // Try to get the connector bean. ObjectInstance instance = getServer().getObjectInstance(ObjectName.getInstance(OBJECT_NAME)); assertNotNull("ObjectInstance should not be null", instance); } finally { bean.destroy(); } }
@Test public void noRegisterWithMBeanServer() throws Exception { ConnectorServerFactoryBean bean = new ConnectorServerFactoryBean(); bean.afterPropertiesSet(); try { // Try to get the connector bean. getServer().getObjectInstance(ObjectName.getInstance(OBJECT_NAME)); fail("Instance should not be found"); } catch (InstanceNotFoundException ex) { // expected } finally { bean.destroy(); } }
@Test public void testSelfNaming() throws Exception { ObjectName objectName = ObjectNameManager.getInstance(OBJECT_NAME); SelfNamingTestBean testBean = new SelfNamingTestBean(); testBean.setObjectName(objectName); Map<String, Object> beans = new HashMap<>(); beans.put("foo", testBean); MBeanExporter exporter = new MBeanExporter(); exporter.setServer(server); exporter.setBeans(beans); start(exporter); ObjectInstance instance = server.getObjectInstance(objectName); assertNotNull(instance); }
@Test public void testRegisterReplaceExisting() throws Exception { ObjectName objectName = ObjectNameManager.getInstance(OBJECT_NAME); Person preRegistered = new Person(); preRegistered.setName("Rob Harrop"); server.registerMBean(preRegistered, objectName); Person springRegistered = new Person(); springRegistered.setName("Sally Greenwood"); Map<String, Object> beans = new HashMap<>(); beans.put(objectName.toString(), springRegistered); MBeanExporter exporter = new MBeanExporter(); exporter.setServer(server); exporter.setBeans(beans); exporter.setRegistrationPolicy(RegistrationPolicy.REPLACE_EXISTING); start(exporter); ObjectInstance instance = server.getObjectInstance(objectName); assertNotNull(instance); // should still be the new bean with name Sally Greenwood assertEquals("Sally Greenwood", server.getAttribute(objectName, "Name")); }