List of usage examples for org.springframework.beans.factory.support RootBeanDefinition getBeanClassName
@Override
@Nullable
public String getBeanClassName()
From source file:com.gwtplatform.dispatch.rpc.server.spring.utils.SpringUtils.java
private static String generateName(ConfigurableListableBeanFactory registry, RootBeanDefinition definition) { String generatedBeanName = definition.getBeanClassName(); if (generatedBeanName == null) { if (definition.getParentName() != null) { generatedBeanName = definition.getParentName() + "$child"; } else if (definition.getFactoryBeanName() != null) { generatedBeanName = definition.getFactoryBeanName() + "$created"; }/* w ww . java 2 s. c o m*/ } if (!StringUtils.hasText(generatedBeanName)) { throw new BeanDefinitionStoreException( "Unnamed bean definition specifies neither 'class' nor 'parent' nor 'factory-bean' - can't " + "generate bean name"); } String id = generatedBeanName; // Top-level bean: use plain class name. // Increase counter until the id is unique. int counter = -1; while (counter == -1 || (registry.containsSingleton(id))) { counter++; id = generatedBeanName + "#" + counter; } return id; }
From source file:com.gwtplatform.dispatch.server.spring.utils.SpringUtils.java
private static String generateName(ConfigurableListableBeanFactory registry, RootBeanDefinition definition) { String generatedBeanName = definition.getBeanClassName(); if (generatedBeanName == null) { if (definition.getParentName() != null) { generatedBeanName = definition.getParentName() + "$child"; } else if (definition.getFactoryBeanName() != null) { generatedBeanName = definition.getFactoryBeanName() + "$created"; }//ww w .j a va 2 s . c o m } if (!StringUtils.hasText(generatedBeanName)) { throw new BeanDefinitionStoreException("Unnamed bean definition specifies neither " + "'class' nor 'parent' nor 'factory-bean' - can't generate bean name"); } String id = generatedBeanName; // Top-level bean: use plain class name. // Increase counter until the id is unique. int counter = -1; while (counter == -1 || (registry.containsSingleton(id))) { counter++; id = generatedBeanName + "#" + counter; } return id; }
From source file:org.jsr107.ri.annotations.spring.config.AnnotationDrivenJCacheBeanDefinitionParser.java
/** * Create the {@link RuntimeBeanReference} used to apply the caching interceptor * * @return Reference to the {@link RuntimeBeanReference}. Should never be null. *//*from ww w.j av a 2 s . com*/ protected RuntimeBeanReference setupPointcut(ParserContext parserContext, Object elementSource, RuntimeBeanReference cacheOperationSourceRuntimeReference, RuntimeBeanReference cacheInterceptorSourceRuntimeReference) { final RootBeanDefinition pointcut = new RootBeanDefinition(CacheStaticMethodMatcherPointcut.class); pointcut.setSource(elementSource); pointcut.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); final ConstructorArgumentValues constructorArgumentValues = new ConstructorArgumentValues(); constructorArgumentValues.addIndexedArgumentValue(0, cacheOperationSourceRuntimeReference); constructorArgumentValues.addIndexedArgumentValue(1, cacheInterceptorSourceRuntimeReference); pointcut.setConstructorArgumentValues(constructorArgumentValues); final String pointcutBeanName = pointcut.getBeanClassName() + "_" + cacheInterceptorSourceRuntimeReference.getBeanName(); final BeanDefinitionRegistry registry = parserContext.getRegistry(); registry.registerBeanDefinition(pointcutBeanName, pointcut); return new RuntimeBeanReference(pointcutBeanName); }
From source file:org.apache.struts2.spring.ClassReloadingBeanFactory.java
protected Class resolveBeanClass(RootBeanDefinition mbd, String beanName, Class[] typesToMatch) { try {//from ww w . ja v a2 s . c o m //commented to cached class is not used /* if (mbd.hasBeanClass()) { return mbd.getBeanClass(); }*/ if (typesToMatch != null) { ClassLoader tempClassLoader = getTempClassLoader(); if (tempClassLoader != null) { if (tempClassLoader instanceof DecoratingClassLoader) { DecoratingClassLoader dcl = (DecoratingClassLoader) tempClassLoader; for (int i = 0; i < typesToMatch.length; i++) { dcl.excludeClass(typesToMatch[i].getName()); } } String className = mbd.getBeanClassName(); return (className != null ? ClassUtils.forName(className, tempClassLoader) : null); } } return mbd.resolveBeanClass(getBeanClassLoader()); } catch (ClassNotFoundException ex) { throw new CannotLoadBeanClassException(mbd.getResourceDescription(), beanName, mbd.getBeanClassName(), ex); } catch (LinkageError err) { throw new CannotLoadBeanClassException(mbd.getResourceDescription(), beanName, mbd.getBeanClassName(), err); } }
From source file:org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.java
/** * Central method of this class: creates a bean instance, * populates the bean instance, applies post-processors, etc. * @see #doCreateBean/* ww w.j a v a 2 s . c o m*/ */ @Override protected Object createBean(String beanName, RootBeanDefinition mbd, @Nullable Object[] args) throws BeanCreationException { if (logger.isTraceEnabled()) { logger.trace("Creating instance of bean '" + beanName + "'"); } RootBeanDefinition mbdToUse = mbd; // Make sure bean class is actually resolved at this point, and // clone the bean definition in case of a dynamically resolved Class // which cannot be stored in the shared merged bean definition. Class<?> resolvedClass = resolveBeanClass(mbd, beanName); if (resolvedClass != null && !mbd.hasBeanClass() && mbd.getBeanClassName() != null) { mbdToUse = new RootBeanDefinition(mbd); mbdToUse.setBeanClass(resolvedClass); } // Prepare method overrides. try { mbdToUse.prepareMethodOverrides(); } catch (BeanDefinitionValidationException ex) { throw new BeanDefinitionStoreException(mbdToUse.getResourceDescription(), beanName, "Validation of method overrides failed", ex); } try { // Give BeanPostProcessors a chance to return a proxy instead of the target bean instance. Object bean = resolveBeforeInstantiation(beanName, mbdToUse); if (bean != null) { return bean; } } catch (Throwable ex) { throw new BeanCreationException(mbdToUse.getResourceDescription(), beanName, "BeanPostProcessor before instantiation of bean failed", ex); } try { Object beanInstance = doCreateBean(beanName, mbdToUse, args); if (logger.isTraceEnabled()) { logger.trace("Finished creating instance of bean '" + beanName + "'"); } return beanInstance; } catch (BeanCreationException | ImplicitlyAppearedSingletonException ex) { // A previously detected exception with proper bean creation context already, // or illegal singleton state to be communicated up to DefaultSingletonBeanRegistry. throw ex; } catch (Throwable ex) { throw new BeanCreationException(mbdToUse.getResourceDescription(), beanName, "Unexpected exception during bean creation", ex); } }