@Override protected String buildDefaultBeanName(BeanDefinition definition) { String beanClassName = definition.getBeanClassName(); Assert.state(beanClassName != null, "No bean class name set"); return beanClassName; } };
private boolean isProxyFactoryBeanDefinition(BeanDefinition existingDefinition) { return ProxyFactoryBean.class.getName().equals(existingDefinition.getBeanClassName()); }
private Class<?> resolveClass(BeanDefinition beanDefinition) { String beanClassName = beanDefinition.getBeanClassName(); return resolveClassName(beanClassName, classLoader); }
private Class<?> resolveClass(BeanDefinition beanDefinition) { String beanClassName = beanDefinition.getBeanClassName(); return resolveClassName(beanClassName, classLoader); }
private Class<?> resolveClass(BeanDefinition beanDefinition) { String beanClassName = beanDefinition.getBeanClassName(); return resolveClassName(beanClassName, classLoader); }
private Class<?> resolveClass(BeanDefinition beanDefinition) { String beanClassName = beanDefinition.getBeanClassName(); return resolveClassName(beanClassName, classLoader); }
protected String getInterceptorNameSuffix(BeanDefinition interceptorDefinition) { String beanClassName = interceptorDefinition.getBeanClassName(); return (StringUtils.hasLength(beanClassName) ? StringUtils.uncapitalize(ClassUtils.getShortName(beanClassName)) : ""); }
protected void visitBeanClassName(BeanDefinition beanDefinition) { String beanClassName = beanDefinition.getBeanClassName(); if (beanClassName != null) { String resolvedName = resolveStringValue(beanClassName); if (!beanClassName.equals(resolvedName)) { beanDefinition.setBeanClassName(resolvedName); } } }
private boolean containsBeanClass(Set<BeanDefinition> candidates, Class<?> beanClass) { for (BeanDefinition candidate : candidates) { if (beanClass.getName().equals(candidate.getBeanClassName())) { return true; } } return false; }
/** * Create a ScriptFactory bean definition based on the given script definition, * extracting only the definition data that is relevant for the ScriptFactory * (that is, only bean class and constructor arguments). * @param bd the full script bean definition * @return the extracted ScriptFactory bean definition * @see org.springframework.scripting.ScriptFactory */ protected BeanDefinition createScriptFactoryBeanDefinition(BeanDefinition bd) { GenericBeanDefinition scriptBd = new GenericBeanDefinition(); scriptBd.setBeanClassName(bd.getBeanClassName()); scriptBd.getConstructorArgumentValues().addArgumentValues(bd.getConstructorArgumentValues()); return scriptBd; }
@Test public void testSimpleLocalSlsb() throws Exception { BeanDefinition beanDefinition = this.beanFactory.getMergedBeanDefinition("simpleLocalEjb"); assertEquals(LocalStatelessSessionProxyFactoryBean.class.getName(), beanDefinition.getBeanClassName()); assertPropertyValue(beanDefinition, "businessInterface", ITestBean.class.getName()); assertPropertyValue(beanDefinition, "jndiName", "ejb/MyLocalBean"); }
@Test public void testSimpleRemoteSlsb() throws Exception { BeanDefinition beanDefinition = this.beanFactory.getMergedBeanDefinition("simpleRemoteEjb"); assertEquals(SimpleRemoteStatelessSessionProxyFactoryBean.class.getName(), beanDefinition.getBeanClassName()); assertPropertyValue(beanDefinition, "businessInterface", ITestBean.class.getName()); assertPropertyValue(beanDefinition, "jndiName", "ejb/MyRemoteBean"); }
@Test public void testSimpleDefinition() throws Exception { BeanDefinition beanDefinition = this.beanFactory.getMergedBeanDefinition("simple"); assertEquals(JndiObjectFactoryBean.class.getName(), beanDefinition.getBeanClassName()); assertPropertyValue(beanDefinition, "jndiName", "jdbc/MyDataSource"); assertPropertyValue(beanDefinition, "resourceRef", "true"); }
@Test public void testComplexLocalSlsb() throws Exception { BeanDefinition beanDefinition = this.beanFactory.getMergedBeanDefinition("complexLocalEjb"); assertEquals(LocalStatelessSessionProxyFactoryBean.class.getName(), beanDefinition.getBeanClassName()); assertPropertyValue(beanDefinition, "businessInterface", ITestBean.class.getName()); assertPropertyValue(beanDefinition, "jndiName", "ejb/MyLocalBean"); assertPropertyValue(beanDefinition, "cacheHome", "true"); assertPropertyValue(beanDefinition, "lookupHomeOnStartup", "true"); assertPropertyValue(beanDefinition, "resourceRef", "true"); assertPropertyValue(beanDefinition, "jndiEnvironment", "foo=bar"); }
@Test public void testRegisterAutoProxyCreatorWhenAspectJAutoProxyCreatorAlreadyExists() throws Exception { AopNamespaceUtils.registerAspectJAutoProxyCreatorIfNecessary(this.parserContext, null); assertEquals(1, registry.getBeanDefinitionCount()); AopNamespaceUtils.registerAutoProxyCreatorIfNecessary(this.parserContext, null); assertEquals("Incorrect definition count", 1, registry.getBeanDefinitionCount()); BeanDefinition definition = registry.getBeanDefinition(AopConfigUtils.AUTO_PROXY_CREATOR_BEAN_NAME); assertEquals("Incorrect APC class", AspectJAwareAdvisorAutoProxyCreator.class.getName(), definition.getBeanClassName()); }
@Test public void testRegisterAspectJAutoProxyCreator() throws Exception { AopNamespaceUtils.registerAspectJAutoProxyCreatorIfNecessary(this.parserContext, null); assertEquals("Incorrect number of definitions registered", 1, registry.getBeanDefinitionCount()); AopNamespaceUtils.registerAspectJAutoProxyCreatorIfNecessary(this.parserContext, null); assertEquals("Incorrect number of definitions registered", 1, registry.getBeanDefinitionCount()); BeanDefinition definition = registry.getBeanDefinition(AopConfigUtils.AUTO_PROXY_CREATOR_BEAN_NAME); assertEquals("Incorrect APC class", AspectJAwareAdvisorAutoProxyCreator.class.getName(), definition.getBeanClassName()); }
@Test public void testRegisterAspectJAutoProxyCreatorWithExistingAutoProxyCreator() throws Exception { AopNamespaceUtils.registerAutoProxyCreatorIfNecessary(this.parserContext, null); assertEquals(1, registry.getBeanDefinitionCount()); AopNamespaceUtils.registerAspectJAutoProxyCreatorIfNecessary(this.parserContext, null); assertEquals("Incorrect definition count", 1, registry.getBeanDefinitionCount()); BeanDefinition definition = registry.getBeanDefinition(AopConfigUtils.AUTO_PROXY_CREATOR_BEAN_NAME); assertEquals("APC class not switched", AspectJAwareAdvisorAutoProxyCreator.class.getName(), definition.getBeanClassName()); }
@Test public void testClassNotFoundWithNoBeanClassLoader() { DefaultListableBeanFactory bf = new DefaultListableBeanFactory(); XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(bf); reader.setBeanClassLoader(null); reader.loadBeanDefinitions(CLASS_NOT_FOUND_CONTEXT); assertEquals("WhatALotOfRubbish", bf.getBeanDefinition("classNotFound").getBeanClassName()); }
@Test public void testComplexRemoteSlsb() throws Exception { BeanDefinition beanDefinition = this.beanFactory.getMergedBeanDefinition("complexRemoteEjb"); assertEquals(SimpleRemoteStatelessSessionProxyFactoryBean.class.getName(), beanDefinition.getBeanClassName()); assertPropertyValue(beanDefinition, "businessInterface", ITestBean.class.getName()); assertPropertyValue(beanDefinition, "jndiName", "ejb/MyRemoteBean"); assertPropertyValue(beanDefinition, "cacheHome", "true"); assertPropertyValue(beanDefinition, "lookupHomeOnStartup", "true"); assertPropertyValue(beanDefinition, "resourceRef", "true"); assertPropertyValue(beanDefinition, "jndiEnvironment", "foo=bar"); assertPropertyValue(beanDefinition, "homeInterface", "org.springframework.tests.sample.beans.ITestBean"); assertPropertyValue(beanDefinition, "refreshHomeOnConnectFailure", "true"); assertPropertyValue(beanDefinition, "cacheSessionBean", "true"); }
@Test public void testComplexDefinition() throws Exception { BeanDefinition beanDefinition = this.beanFactory.getMergedBeanDefinition("complex"); assertEquals(JndiObjectFactoryBean.class.getName(), beanDefinition.getBeanClassName()); assertPropertyValue(beanDefinition, "jndiName", "jdbc/MyDataSource"); assertPropertyValue(beanDefinition, "resourceRef", "true"); assertPropertyValue(beanDefinition, "cache", "true"); assertPropertyValue(beanDefinition, "lookupOnStartup", "true"); assertPropertyValue(beanDefinition, "exposeAccessContext", "true"); assertPropertyValue(beanDefinition, "expectedType", "com.myapp.DefaultFoo"); assertPropertyValue(beanDefinition, "proxyInterface", "com.myapp.Foo"); assertPropertyValue(beanDefinition, "defaultObject", "myValue"); }