@Override @SuppressWarnings("resource") public void loadResource(String path) { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[] { path }, applicationContext); String[] names = context.getBeanNamesForType(Job.class); for (String name : names) { configurations.put(name, path); } }
@Test public void staticScriptImplementingInterface() { ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("bshContext.xml", getClass()); assertTrue(Arrays.asList(ctx.getBeanNamesForType(Messenger.class)).contains("messengerImpl")); Messenger messenger = (Messenger) ctx.getBean("messengerImpl"); String desiredMessage = "Hello World!"; assertEquals("Message is incorrect", desiredMessage, messenger.getMessage()); assertTrue(ctx.getBeansOfType(Messenger.class).values().contains(messenger)); ctx.close(); assertNull(messenger.getMessage()); }
@Test public void staticWithScriptReturningInstance() { ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("bshContext.xml", getClass()); assertTrue(Arrays.asList(ctx.getBeanNamesForType(Messenger.class)).contains("messengerInstance")); Messenger messenger = (Messenger) ctx.getBean("messengerInstance"); String desiredMessage = "Hello World!"; assertEquals("Message is incorrect", desiredMessage, messenger.getMessage()); assertTrue(ctx.getBeansOfType(Messenger.class).values().contains(messenger)); ctx.close(); assertNull(messenger.getMessage()); }
@Test public void staticScriptWithTwoInterfacesSpecified() { ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("bshContext.xml", getClass()); assertTrue(Arrays.asList(ctx.getBeanNamesForType(Messenger.class)).contains("messengerWithConfigExtra")); ConfigurableMessenger messenger = (ConfigurableMessenger) ctx.getBean("messengerWithConfigExtra"); messenger.setMessage(null); assertNull(messenger.getMessage()); assertTrue(ctx.getBeansOfType(Messenger.class).values().contains(messenger)); ctx.close(); assertNull(messenger.getMessage()); }
private void assertOneMessageSourceOnly(ClassPathXmlApplicationContext ctx, Object myMessageSource) { String[] beanNamesForType = ctx.getBeanNamesForType(StaticMessageSource.class); assertEquals(1, beanNamesForType.length); assertEquals("myMessageSource", beanNamesForType[0]); beanNamesForType = ctx.getBeanNamesForType(StaticMessageSource.class, true, true); assertEquals(1, beanNamesForType.length); assertEquals("myMessageSource", beanNamesForType[0]); beanNamesForType = BeanFactoryUtils.beanNamesForTypeIncludingAncestors(ctx, StaticMessageSource.class); assertEquals(1, beanNamesForType.length); assertEquals("myMessageSource", beanNamesForType[0]); beanNamesForType = BeanFactoryUtils.beanNamesForTypeIncludingAncestors(ctx, StaticMessageSource.class, true, true); assertEquals(1, beanNamesForType.length); assertEquals("myMessageSource", beanNamesForType[0]); Map<?, StaticMessageSource> beansOfType = ctx.getBeansOfType(StaticMessageSource.class); assertEquals(1, beansOfType.size()); assertSame(myMessageSource, beansOfType.values().iterator().next()); beansOfType = ctx.getBeansOfType(StaticMessageSource.class, true, true); assertEquals(1, beansOfType.size()); assertSame(myMessageSource, beansOfType.values().iterator().next()); beansOfType = BeanFactoryUtils.beansOfTypeIncludingAncestors(ctx, StaticMessageSource.class); assertEquals(1, beansOfType.size()); assertSame(myMessageSource, beansOfType.values().iterator().next()); beansOfType = BeanFactoryUtils.beansOfTypeIncludingAncestors(ctx, StaticMessageSource.class, true, true); assertEquals(1, beansOfType.size()); assertSame(myMessageSource, beansOfType.values().iterator().next()); }
@Test public void resourceScriptFromTag() { ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("bsh-with-xsd.xml", getClass()); TestBean testBean = (TestBean) ctx.getBean("testBean"); Collection<String> beanNames = Arrays.asList(ctx.getBeanNamesForType(Messenger.class)); assertTrue(beanNames.contains("messenger")); assertTrue(beanNames.contains("messengerImpl")); assertTrue(beanNames.contains("messengerInstance")); Messenger messenger = (Messenger) ctx.getBean("messenger"); assertEquals("Hello World!", messenger.getMessage()); assertFalse(messenger instanceof Refreshable); Messenger messengerImpl = (Messenger) ctx.getBean("messengerImpl"); assertEquals("Hello World!", messengerImpl.getMessage()); Messenger messengerInstance = (Messenger) ctx.getBean("messengerInstance"); assertEquals("Hello World!", messengerInstance.getMessage()); TestBeanAwareMessenger messengerByType = (TestBeanAwareMessenger) ctx.getBean("messengerByType"); assertEquals(testBean, messengerByType.getTestBean()); TestBeanAwareMessenger messengerByName = (TestBeanAwareMessenger) ctx.getBean("messengerByName"); assertEquals(testBean, messengerByName.getTestBean()); Collection<Messenger> beans = ctx.getBeansOfType(Messenger.class).values(); assertTrue(beans.contains(messenger)); assertTrue(beans.contains(messengerImpl)); assertTrue(beans.contains(messengerInstance)); assertTrue(beans.contains(messengerByType)); assertTrue(beans.contains(messengerByName)); ctx.close(); assertNull(messenger.getMessage()); assertNull(messengerImpl.getMessage()); assertNull(messengerInstance.getMessage()); }
@Test @SuppressWarnings("resource") public void testExecutionWithApplicationContext() throws Exception { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("test-context.xml", getClass()); MapJobRegistry registry = (MapJobRegistry) context.getBean("registry"); Collection<String> configurations = registry.getJobNames(); // System.err.println(configurations); String[] names = context.getBeanNamesForType(JobSupport.class); int count = names.length; // Each concrete bean of type JobConfiguration is registered... assertEquals(count, configurations.size()); // N.B. there is a failure / wonky mode where a parent bean is given an // explicit name or beanName (using property setter): in this case then // child beans will have the same name and will be re-registered (and // override, if the registry supports that). assertNotNull(registry.getJob("test-job")); assertEquals(context.getBean("test-job-with-name"), registry.getJob("foo")); assertEquals(context.getBean("test-job-with-bean-name"), registry.getJob("bar")); assertEquals(context.getBean("test-job-with-parent-and-name"), registry.getJob("spam")); assertEquals(context.getBean("test-job-with-parent-and-bean-name"), registry.getJob("bucket")); assertEquals(context.getBean("test-job-with-concrete-parent"), registry.getJob("maps")); assertEquals(context.getBean("test-job-with-concrete-parent-and-name"), registry.getJob("oof")); assertEquals(context.getBean("test-job-with-concrete-parent-and-bean-name"), registry.getJob("rab")); }
/** * Constructor * * @param contextPath * - path for spring config file(s) that may contain one or more * <code>AttributeResolver</code> beans */ public FirstStrikeAttributeResolverFactoryBean(String contextPath) { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext( contextPath); List<AttributeResolver> attributeResolvers = new ArrayList<AttributeResolver>(); String[] beanNamesForType = context .getBeanNamesForType(AttributeResolver.class); for (String beanName : beanNamesForType) { AttributeResolver attributeResolver = (AttributeResolver) context .getBean(beanName); attributeResolvers.add(attributeResolver); } firstStrikeAttributeResolver = new FirstStrikeAttributeResolver( attributeResolvers); }
public void testMultipleEntries() { ClassPathXmlApplicationContext ctx = getContext("monitoring-multiple-entries.xml"); ctx.start(); try { String[] proxyCreators = ctx.getBeanNamesForType(BeanNameAutoProxyCreator.class); assertEquals(4, proxyCreators.length); String[] etmInterceptor = ctx.getBeanNamesForType(EtmMethodCallInterceptor.class); assertEquals(4, etmInterceptor.length); String[] namedInterceptor = ctx.getBeanNamesForType(MonitoringBeanDefinitionParser.NamedEtmMethodCallInterceptor.class); assertEquals(3, namedInterceptor.length); String[] monitors = ctx.getBeanNamesForType(EtmMonitor.class); assertEquals(1, monitors.length); } finally { ctx.destroy(); } }
public void testMonitorAutowire() { ClassPathXmlApplicationContext ctx = getContext("monitoring-autowire.xml"); ctx.start(); try { String[] proxyCreator = ctx.getBeanNamesForType(BeanNameAutoProxyCreator.class); assertEquals(1, proxyCreator.length); String[] monitors = ctx.getBeanNamesForType(EtmMonitor.class); assertEquals(1, monitors.length); } finally { ctx.destroy(); } }
public void testMonitorRef() { ClassPathXmlApplicationContext ctx = getContext("monitoring-runtime-ref.xml"); ctx.start(); try { String[] proxyCreator = ctx.getBeanNamesForType(BeanNameAutoProxyCreator.class); assertEquals(1, proxyCreator.length); String[] monitors = ctx.getBeanNamesForType(EtmMonitor.class); assertEquals(2, monitors.length); } finally { ctx.destroy(); } }
public void testRuntimePlugins() { ClassPathXmlApplicationContext ctx = getContext("runtime-plugin.xml"); try { ctx.start(); String[] monitors = ctx.getBeanNamesForType(EtmMonitor.class); assertEquals(1, monitors.length); EtmMonitor monitor = (EtmMonitor) ctx.getBean(monitors[0]); EtmMonitorMetaData etmMonitorMetaData = monitor.getMetaData(); assertEquals(2, etmMonitorMetaData.getPluginMetaData().size()); PluginMetaData pluginOne = (PluginMetaData) etmMonitorMetaData.getPluginMetaData().get(0); assertEquals(Log4jDumpOnShutdownPlugin.class, pluginOne.getImplementationClass()); assertEquals("fooBar", pluginOne.getProperties().get("logName")); PluginMetaData pluginTwo = (PluginMetaData) etmMonitorMetaData.getPluginMetaData().get(1); assertEquals(SystemOutDumpOnShutdownPlugin.class, pluginTwo.getImplementationClass()); } finally { ctx.stop(); } }
public void testRuntimeChain() { ClassPathXmlApplicationContext ctx = getContext("runtime-chain.xml"); try { ctx.start(); String[] monitors = ctx.getBeanNamesForType(EtmMonitor.class); assertEquals(1, monitors.length); EtmMonitor monitor = (EtmMonitor) ctx.getBean(monitors[0]); assertEquals(NestedMonitor.class, monitor.getClass()); EtmMonitorMetaData etmMonitorMetaData = monitor.getMetaData(); AggregatorMetaData firstElement = etmMonitorMetaData.getAggregatorMetaData(); assertEquals(BufferedTimedAggregator.class, firstElement.getImplementationClass()); AggregatorMetaData secondElement = firstElement.getNestedMetaData(); assertEquals(CommonsLoggingAggregator.class, secondElement.getImplementationClass()); AggregatorMetaData thirdElement = secondElement.getNestedMetaData(); assertEquals(SpringRootAggregator.class, thirdElement.getImplementationClass()); } finally { ctx.stop(); } } }
public void testRuntimeFeatures() { ClassPathXmlApplicationContext ctx = getContext("runtime-features.xml"); try { ctx.start(); String[] monitors = ctx.getBeanNamesForType(EtmMonitor.class); assertEquals(1, monitors.length); EtmMonitor monitor = (EtmMonitor) ctx.getBean(monitors[0]); EtmMonitorMetaData etmMonitorMetaData = monitor.getMetaData(); assertEquals(BufferedTimedAggregator.class, etmMonitorMetaData.getAggregatorMetaData().getImplementationClass()); assertEquals(Log4jAggregator.class, etmMonitorMetaData.getAggregatorMetaData().getNestedMetaData().getImplementationClass()); assertEquals(PersistentRootAggregator.class, etmMonitorMetaData.getAggregatorMetaData().getNestedMetaData().getNestedMetaData().getImplementationClass()); assertEquals(DefaultTimer.class, etmMonitorMetaData.getTimerMetaData().getImplementationClass()); } finally { ctx.destroy(); } }