List of usage examples for org.springframework.beans.factory.support RootBeanDefinition setFactoryMethodName
@Override public void setFactoryMethodName(@Nullable String factoryMethodName)
From source file:marshalsec.gadgets.SpringUtil.java
public static BeanFactory makeMethodTrigger(Object o, String method) throws Exception { DefaultListableBeanFactory bf = new DefaultListableBeanFactory(); RootBeanDefinition caller = new RootBeanDefinition(); caller.setFactoryBeanName("obj"); caller.setFactoryMethodName(method); Reflections.setFieldValue(caller.getMethodOverrides(), "overrides", new HashSet<>()); bf.registerBeanDefinition("caller", caller); Reflections.getField(DefaultListableBeanFactory.class, "beanClassLoader").set(bf, null); Reflections.getField(DefaultListableBeanFactory.class, "alreadyCreated").set(bf, new HashSet<>()); Reflections.getField(DefaultListableBeanFactory.class, "singletonsCurrentlyInCreation").set(bf, new HashSet<>()); Reflections.getField(DefaultListableBeanFactory.class, "inCreationCheckExclusions").set(bf, new HashSet<>()); Reflections.getField(DefaultListableBeanFactory.class, "logger").set(bf, new NoOpLog()); Reflections.getField(DefaultListableBeanFactory.class, "prototypesCurrentlyInCreation").set(bf, new ThreadLocal<>()); @SuppressWarnings("unchecked") Map<String, Object> objs = (Map<String, Object>) Reflections.getFieldValue(bf, "singletonObjects"); objs.put("obj", o); return bf;/*from w ww .java 2s . co m*/ }
From source file:eap.config.AnnotationDrivenCacheBeanDefinitionParser.java
/** * Registers a/* w w w .j av a2 s . c om*/ * <pre> * <bean id="cacheAspect" class="org.springframework.cache.aspectj.AnnotationCacheAspect" factory-method="aspectOf"> * <property name="cacheManager" ref="cacheManager"/> * <property name="keyGenerator" ref="keyGenerator"/> * </bean> * * </pre> * @param element * @param parserContext */ private void registerCacheAspect(Element element, ParserContext parserContext) { if (!parserContext.getRegistry().containsBeanDefinition(CACHE_ASPECT_BEAN_NAME)) { RootBeanDefinition def = new RootBeanDefinition(); def.setBeanClassName(CACHE_ASPECT_CLASS_NAME); def.setFactoryMethodName("aspectOf"); parseCacheManagerProperty(element, def); // CacheNamespaceHandler.parseKeyGenerator(element, def); ReflectUtil.invokeMethod(CacheNamespaceHandler.class, "parseKeyGenerator", new Class<?>[] { Element.class, BeanDefinition.class }, new Object[] { element, def }); parserContext.registerBeanComponent(new BeanComponentDefinition(def, CACHE_ASPECT_BEAN_NAME)); } }
From source file:org.zalando.spring.data.businesskey.jpa.config.JpaBusinessKeyRegistrar.java
/** * @param registry, the {@link BeanDefinitionRegistry} to be used to register the * {@link AnnotationBeanConfigurerAspect}. *///from w w w . java 2 s . c o m private void registerBeanConfigurerAspectIfNecessary(final BeanDefinitionRegistry registry) { if (registry.containsBeanDefinition(BEAN_CONFIGURER_ASPECT_CLASS_NAME)) { return; } if (!ClassUtils.isPresent(BEAN_CONFIGURER_ASPECT_CLASS_NAME, getClass().getClassLoader())) { throw new BeanDefinitionStoreException(BEAN_CONFIGURER_ASPECT_CLASS_NAME + " not found. \n" + "Could not configure Spring Data JPA auditing-feature because" + " spring-aspects.jar is not on the classpath!\n" + "If you want to use auditing please add spring-aspects.jar to the classpath."); } RootBeanDefinition def = new RootBeanDefinition(); def.setBeanClassName(BEAN_CONFIGURER_ASPECT_CLASS_NAME); def.setFactoryMethodName("aspectOf"); def.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); registry.registerBeanDefinition(BEAN_CONFIGURER_ASPECT_BEAN_NAME, new BeanComponentDefinition(def, BEAN_CONFIGURER_ASPECT_BEAN_NAME).getBeanDefinition()); }
From source file:net.sourceforge.safr.core.spring.config.SecurityAnnotationDrivenBeanDefinitionParser.java
@Override protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) { AopNamespaceUtils.registerAutoProxyCreatorIfNecessary(parserContext, element); String accessManagerName = element.getAttribute(ACCESS_MANAGER_ATTRIBUTE); String cryptoProviderName = element.getAttribute(CRYPTO_PROVIDER_ATTRIBUTE); String interceptorOrder = element.getAttribute(INTERCEPTOR_ORDER_ATTRIBUTE); String useAspectJ = element.getAttribute(SUPPORT_ASPECTJ_ATTRIBUTE); RootBeanDefinition removeFilterFactoryDefinition = new RootBeanDefinition(RemoveFilterFactory.class); removeFilterFactoryDefinition.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); removeFilterFactoryDefinition.setSource(parserContext.extractSource(element)); setConstructorArgument(removeFilterFactoryDefinition, createAccessManagerValue(accessManagerName)); RootBeanDefinition copyFilterFactoryDefinition = new RootBeanDefinition(CopyFilterFactory.class); copyFilterFactoryDefinition.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); copyFilterFactoryDefinition.setSource(parserContext.extractSource(element)); setConstructorArgument(copyFilterFactoryDefinition, createAccessManagerValue(accessManagerName)); RootBeanDefinition interceptorDefinition = new RootBeanDefinition(SecurityInterceptor.class); interceptorDefinition.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); interceptorDefinition.setSource(parserContext.extractSource(element)); interceptorDefinition.getPropertyValues().addPropertyValue(REMOVE_FILTER_FACTORY_PROPERTY, removeFilterFactoryDefinition); interceptorDefinition.getPropertyValues().addPropertyValue(COPY_FILTER_FACTORY_PROPERTY, copyFilterFactoryDefinition); setPropertyValue(interceptorDefinition, SECURITY_ATTRIBUTE_SOURCE_PROPERTY, createSecurityAttributeSourceValue()); setPropertyValue(interceptorDefinition, ACCESS_MANAGER_PROPERTY, createAccessManagerValue(accessManagerName)); setPropertyValue(interceptorDefinition, CRYPTO_PROVIDER_PROPERTY, createCryptoProviderValue(cryptoProviderName)); RootBeanDefinition advisorDefinition = new RootBeanDefinition(SecurityAttributeSourceAdvisor.class); advisorDefinition.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); advisorDefinition.setSource(parserContext.extractSource(element)); advisorDefinition.getPropertyValues().addPropertyValue(SECURITY_INTERCEPTOR_PROPERTY, interceptorDefinition);/*from w ww. ja v a 2 s . c o m*/ advisorDefinition.getPropertyValues().addPropertyValue(ORDER_PROPERTY, interceptorOrder); if (Boolean.parseBoolean(useAspectJ)) { RootBeanDefinition aspectDefinition = new RootBeanDefinition(SecurityAspect.class); aspectDefinition.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); aspectDefinition.setSource(parserContext.extractSource(element)); aspectDefinition.setFactoryMethodName("aspectOf"); aspectDefinition.getPropertyValues().addPropertyValue(REMOVE_FILTER_FACTORY_PROPERTY, removeFilterFactoryDefinition); aspectDefinition.getPropertyValues().addPropertyValue(COPY_FILTER_FACTORY_PROPERTY, copyFilterFactoryDefinition); setPropertyValue(aspectDefinition, SECURITY_ATTRIBUTE_SOURCE_PROPERTY, createSecurityAttributeSourceValue()); setPropertyValue(aspectDefinition, ACCESS_MANAGER_PROPERTY, createAccessManagerValue(accessManagerName)); setPropertyValue(aspectDefinition, CRYPTO_PROVIDER_PROPERTY, createCryptoProviderValue(cryptoProviderName)); parserContext.getRegistry().registerBeanDefinition(SecurityAspect.class.getName(), aspectDefinition); } return advisorDefinition; }
From source file:com.googlecode.ehcache.annotations.config.AnnotationDrivenEhCacheBeanDefinitionParser.java
private void registerAspect(Element element, ParserContext parserContext) { if (!parserContext.getRegistry().containsBeanDefinition(EHCACHE_CACHING_ASPECT_BEAN_NAME)) { final Object elementSource = parserContext.extractSource(element); final RuntimeBeanReference cacheAttributeSourceReference = this.setupCacheAttributeSource(element, parserContext, elementSource); RootBeanDefinition def = new RootBeanDefinition(); def.setBeanClassName(EHCACHE_CACHING_ASPECT_CLASS_NAME); def.setFactoryMethodName("aspectOf"); def.getPropertyValues().add("cacheAttributeSource", cacheAttributeSourceReference); //registerTransactionManager(element, def); parserContext.registerBeanComponent(new BeanComponentDefinition(def, EHCACHE_CACHING_ASPECT_BEAN_NAME)); }//from w ww .ja v a 2 s . co m }
From source file:org.exoplatform.container.spring.SpringContainer.java
/** * {@inheritDoc}//from w w w . j av a2 s . c o m */ @Override @SuppressWarnings({ "rawtypes", "unchecked" }) public void start() { ConfigurationManager cm = super.getComponentInstanceOfType(ConfigurationManager.class, false); // We check if the component has been defined in the configuration of the current container // The goal is to enable the SpringContainer only if it is needed Component component = cm.getComponent(ApplicationContextProvider.class); if (component == null) { if (LOG.isDebugEnabled()) { LOG.debug( "No ApplicationContextProvider has been defined, thus the SpringContainer will be disabled." + " To enable the Spring Integration please define an ApplicationContextProvider"); } } else { DefaultListableBeanFactory bf = new DefaultListableBeanFactory(); bf.setAutowireCandidateResolver(new QualifierAnnotationAutowireCandidateResolver()); Collection<ComponentAdapter<?>> adapters = delegate.getComponentAdapters(); for (ComponentAdapter<?> adapter : adapters) { Object key = adapter.getComponentKey(); String name = keyToBeanName(key); String factoryName = name + "#factory"; RootBeanDefinition def = new RootBeanDefinition(adapter.getComponentImplementation(), AbstractBeanDefinition.AUTOWIRE_NO, false); def.setScope(BeanDefinition.SCOPE_PROTOTYPE); def.setFactoryBeanName(factoryName); def.setFactoryMethodName("getInstance"); def.setLazyInit(true); def.setTargetType(adapter.getComponentImplementation()); if (key instanceof String) { def.addQualifier(new AutowireCandidateQualifier(Named.class, key)); } else if (key instanceof Class<?> && ((Class<?>) key).isAnnotation()) { def.addQualifier(new AutowireCandidateQualifier((Class<?>) key)); } else { def.setPrimary(true); } bf.registerBeanDefinition(name, def); bf.registerSingleton(factoryName, new ComponentAdapterFactoryBean(adapter)); } GenericApplicationContext parentContext = new GenericApplicationContext(bf); parentContext.refresh(); ApplicationContextProvider provider = super.getComponentInstanceOfType(ApplicationContextProvider.class, false); ctx = provider.getApplicationContext(parentContext); LOG.info("A SpringContainer has been enabled using the ApplicationContextProvider " + provider.getClass()); } super.start(); }
From source file:de.itsvs.cwtrpc.controller.config.CacheControlConfigBeanDefinitionParser.java
protected AbstractBeanDefinition createUriPattern(Element element, ParserContext parserContext) { final String value; final Object type; final RootBeanDefinition beanDefinition; value = element.getAttribute(XmlNames.VALUE_ATTR); if (!StringUtils.hasText(value)) { parserContext.getReaderContext().error("URI value must not be empty", parserContext.extractSource(element)); }// w ww . j ava 2 s.c o m if (element.hasAttribute(XmlNames.TYPE_ATTR)) { type = element.getAttribute(XmlNames.TYPE_ATTR); } else { type = CacheControlUriConfig.DEFAULT_PATTERN_TYPE; } beanDefinition = new RootBeanDefinition(PatternFactory.class); beanDefinition.setSource(parserContext.extractSource(element)); if (parserContext.isDefaultLazyInit()) { beanDefinition.setLazyInit(true); } beanDefinition.setFactoryMethodName("compile"); beanDefinition.getConstructorArgumentValues().addIndexedArgumentValue(0, type); beanDefinition.getConstructorArgumentValues().addIndexedArgumentValue(1, MatcherType.URI); beanDefinition.getConstructorArgumentValues().addIndexedArgumentValue(2, value); return beanDefinition; }
From source file:org.springframework.beans.factory.DefaultListableBeanFactoryTests.java
@Test public void testStaticFactoryMethodFoundByNonEagerTypeMatching() { DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition rbd = new RootBeanDefinition(TestBeanFactory.class); rbd.setFactoryMethodName("createTestBean"); lbf.registerBeanDefinition("x1", rbd); TestBeanFactory.initialized = false; String[] beanNames = lbf.getBeanNamesForType(TestBean.class, true, false); assertEquals(1, beanNames.length);//www . ja v a2 s .c o m assertEquals("x1", beanNames[0]); assertFalse(lbf.containsSingleton("x1")); assertTrue(lbf.containsBean("x1")); assertFalse(lbf.containsBean("&x1")); assertTrue(lbf.isSingleton("x1")); assertFalse(lbf.isSingleton("&x1")); assertFalse(lbf.isPrototype("x1")); assertFalse(lbf.isPrototype("&x1")); assertTrue(lbf.isTypeMatch("x1", TestBean.class)); assertFalse(lbf.isTypeMatch("&x1", TestBean.class)); assertEquals(TestBean.class, lbf.getType("x1")); assertEquals(null, lbf.getType("&x1")); assertFalse(TestBeanFactory.initialized); }
From source file:org.springframework.beans.factory.DefaultListableBeanFactoryTests.java
@Test public void testStaticPrototypeFactoryMethodFoundByNonEagerTypeMatching() { DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition rbd = new RootBeanDefinition(TestBeanFactory.class); rbd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); rbd.setFactoryMethodName("createTestBean"); lbf.registerBeanDefinition("x1", rbd); TestBeanFactory.initialized = false; String[] beanNames = lbf.getBeanNamesForType(TestBean.class, true, false); assertEquals(1, beanNames.length);//w ww .j a v a 2 s . c o m assertEquals("x1", beanNames[0]); assertFalse(lbf.containsSingleton("x1")); assertTrue(lbf.containsBean("x1")); assertFalse(lbf.containsBean("&x1")); assertFalse(lbf.isSingleton("x1")); assertFalse(lbf.isSingleton("&x1")); assertTrue(lbf.isPrototype("x1")); assertFalse(lbf.isPrototype("&x1")); assertTrue(lbf.isTypeMatch("x1", TestBean.class)); assertFalse(lbf.isTypeMatch("&x1", TestBean.class)); assertEquals(TestBean.class, lbf.getType("x1")); assertEquals(null, lbf.getType("&x1")); assertFalse(TestBeanFactory.initialized); }
From source file:org.springframework.beans.factory.DefaultListableBeanFactoryTests.java
@Test public void testNonStaticFactoryMethodFoundByNonEagerTypeMatching() { DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition factoryBd = new RootBeanDefinition(TestBeanFactory.class); lbf.registerBeanDefinition("factory", factoryBd); RootBeanDefinition rbd = new RootBeanDefinition(TestBeanFactory.class); rbd.setFactoryBeanName("factory"); rbd.setFactoryMethodName("createTestBeanNonStatic"); lbf.registerBeanDefinition("x1", rbd); TestBeanFactory.initialized = false; String[] beanNames = lbf.getBeanNamesForType(TestBean.class, true, false); assertEquals(1, beanNames.length);/* w w w. j a v a 2 s . co m*/ assertEquals("x1", beanNames[0]); assertFalse(lbf.containsSingleton("x1")); assertTrue(lbf.containsBean("x1")); assertFalse(lbf.containsBean("&x1")); assertTrue(lbf.isSingleton("x1")); assertFalse(lbf.isSingleton("&x1")); assertFalse(lbf.isPrototype("x1")); assertFalse(lbf.isPrototype("&x1")); assertTrue(lbf.isTypeMatch("x1", TestBean.class)); assertFalse(lbf.isTypeMatch("&x1", TestBean.class)); assertEquals(TestBean.class, lbf.getType("x1")); assertEquals(null, lbf.getType("&x1")); assertFalse(TestBeanFactory.initialized); }