List of usage examples for org.springframework.beans.factory.support RootBeanDefinition setSource
public void setSource(@Nullable Object source)
From source file:org.jdal.aop.SerializableProxyUtils.java
public static BeanDefinitionHolder createSerializableProxy(BeanDefinitionHolder definition, BeanDefinitionRegistry registry, boolean proxyTargetClass) { String originalBeanName = definition.getBeanName(); BeanDefinition targetDefinition = definition.getBeanDefinition(); // Create a scoped proxy definition for the original bean name, // "hiding" the target bean in an internal target definition. RootBeanDefinition proxyDefinition = new RootBeanDefinition(SerializableProxyFactoryBean.class); proxyDefinition.setOriginatingBeanDefinition(definition.getBeanDefinition()); proxyDefinition.setSource(definition.getSource()); proxyDefinition.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); String targetBeanName = getTargetBeanName(originalBeanName); proxyDefinition.getPropertyValues().add("targetBeanName", targetBeanName); if (proxyTargetClass) { targetDefinition.setAttribute(AutoProxyUtils.PRESERVE_TARGET_CLASS_ATTRIBUTE, Boolean.TRUE); } else {//from w ww. j a va 2s . c o m proxyDefinition.getPropertyValues().add("proxyTargetClass", Boolean.FALSE); } // Copy autowire settings from original bean definition. proxyDefinition.setAutowireCandidate(targetDefinition.isAutowireCandidate()); proxyDefinition.setPrimary(targetDefinition.isPrimary()); if (targetDefinition instanceof AbstractBeanDefinition) { proxyDefinition.copyQualifiersFrom((AbstractBeanDefinition) targetDefinition); } // Set singleton property of FactoryBean proxyDefinition.getPropertyValues().add("singleton", !targetDefinition.isPrototype()); // The target bean should be ignored in favor of the scoped proxy. targetDefinition.setAutowireCandidate(false); targetDefinition.setPrimary(false); // Register the target bean as separate bean in the factory. registry.registerBeanDefinition(targetBeanName, targetDefinition); // Return the scoped proxy definition as primary bean definition // (potentially an inner bean). return new BeanDefinitionHolder(proxyDefinition, originalBeanName, definition.getAliases()); }
From source file:com.springinpractice.ch14.kite.config.xml.GuardListAdviceParser.java
@Override protected void doParse(Element elem, BeanDefinitionBuilder builder) { builder.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); // If an advice is explicitly defined, then we're using the DefaultCircuitBreakerSource. RootBeanDefinition srcDef = new RootBeanDefinition(DefaultGuardListSource.class); srcDef.setSource(elem); srcDef.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); srcDef.getPropertyValues().add("guards", new RuntimeBeanReference(elem.getAttribute("guards"))); builder.addPropertyValue("source", srcDef); }
From source file:org.zkybase.kite.config.xml.CircuitBreakerAdviceParser.java
@Override protected void doParse(Element elem, BeanDefinitionBuilder builder) { builder.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); // If an advice is explicitly defined, then we're using the // DefaultCircuitBreakerSource. RootBeanDefinition srcDef = new RootBeanDefinition(DefaultCircuitBreakerSource.class); srcDef.setSource(elem); srcDef.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); srcDef.getPropertyValues().add("breaker", new RuntimeBeanReference(elem.getAttribute("breaker"))); builder.addPropertyValue("circuitBreakerSource", srcDef); }
From source file:org.zkybase.kite.config.xml.ThrottleAdviceParser.java
@Override protected void doParse(Element elem, BeanDefinitionBuilder builder) { builder.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); // If an advice is explicitly defined, then we're using the // DefaultThrottleSource. RootBeanDefinition srcDef = new RootBeanDefinition(DefaultThrottleSource.class); srcDef.setSource(elem); srcDef.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); srcDef.getPropertyValues().add("throttle", new RuntimeBeanReference(elem.getAttribute("throttle"))); builder.addPropertyValue("throttleSource", srcDef); }
From source file:ductive.console.config.SshServerBeanRegistrar.java
@Override public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) { AnnotationAttributes attr = AnnotationAttributes .fromMap(importingClassMetadata.getAnnotationAttributes(EnableConsole.class.getName())); {/* w ww. ja va 2 s .co m*/ RootBeanDefinition beanDefinition = new RootBeanDefinition(SshServerFactoryBean.class); beanDefinition.setSource(null); beanDefinition.getPropertyValues().add("host", attr.getString("host")); beanDefinition.getPropertyValues().add("port", attr.getString("port")); beanDefinition.getPropertyValues().add("hostKeyFile", attr.getString("hostKeyFile")); beanDefinition.getPropertyValues().add("hostKeyPermissions", attr.getString("hostKeyPermissions")); String userAuthFactoryBeanName = attr.getString("userAuthFactoryProvider"); if (!StringUtils.isBlank(userAuthFactoryBeanName)) beanDefinition.getPropertyValues().add("userAuthFactoryProvider", new RuntimeBeanReference(userAuthFactoryBeanName)); String passwordAuthenticatorBeanName = attr.getString("passwordAuthenticator"); if (!StringUtils.isBlank(passwordAuthenticatorBeanName)) beanDefinition.getPropertyValues().add("passwordAuthenticator", new RuntimeBeanReference(passwordAuthenticatorBeanName)); String publicKeyAuthenticatorBeanName = attr.getString("publicKeyAuthenticator"); if (!StringUtils.isBlank(publicKeyAuthenticatorBeanName)) beanDefinition.getPropertyValues().add("publicKeyAuthenticator", new RuntimeBeanReference(publicKeyAuthenticatorBeanName)); registry.registerBeanDefinition(SSH_SERVER_FACTORY_BEAN_NAME, beanDefinition); } { RootBeanDefinition beanDefinition = new RootBeanDefinition(DefaultStandardPromptProvider.class); beanDefinition.setSource(null); beanDefinition.getPropertyValues().add("prompt", attr.getString("standardPrompt")); beanDefinition.getPropertyValues().add("color", attr.getString("standardPromptColor")); registry.registerBeanDefinition(STANDARD_PROMPT_PROVIDER_BEAN_NAME, beanDefinition); } }
From source file:org.devefx.httpmapper.spring.config.ListenersBeanDefinitionParser.java
public BeanDefinition parse(Element element, ParserContext parserContext) { CompositeComponentDefinition compDefinition = new CompositeComponentDefinition(element.getTagName(), parserContext.extractSource(element)); parserContext.pushContainingComponent(compDefinition); RuntimeBeanReference pathMatcherRef = null; if (element.hasAttribute("path-matcher")) { pathMatcherRef = new RuntimeBeanReference(element.getAttribute("path-matcher")); }//from www. j a va 2s .c o m List<Element> listeners = DomUtils.getChildElementsByTagName(element, "bean", "ref", "listener"); for (Element listener : listeners) { RootBeanDefinition mappedListenerDef = new RootBeanDefinition(MappedListener.class); mappedListenerDef.setSource(parserContext.extractSource(listener)); mappedListenerDef.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); ManagedList<String> includePatterns = null; ManagedList<String> excludePatterns = null; Object listenerBean; if ("listener".equals(listener.getLocalName())) { includePatterns = getIncludePatterns(listener, "mapping"); excludePatterns = getIncludePatterns(listener, "exclude-mapping"); Element beanElem = DomUtils.getChildElementsByTagName(listener, "bean", "ref").get(0); listenerBean = parserContext.getDelegate().parsePropertySubElement(beanElem, null); } else { listenerBean = parserContext.getDelegate().parsePropertySubElement(listener, null); } mappedListenerDef.getConstructorArgumentValues().addIndexedArgumentValue(0, includePatterns); mappedListenerDef.getConstructorArgumentValues().addIndexedArgumentValue(1, excludePatterns); mappedListenerDef.getConstructorArgumentValues().addIndexedArgumentValue(2, listenerBean); if (pathMatcherRef != null) { mappedListenerDef.getPropertyValues().add("pathMatcher", pathMatcherRef); } String beanName = parserContext.getReaderContext().registerWithGeneratedName(mappedListenerDef); parserContext.registerComponent(new BeanComponentDefinition(mappedListenerDef, beanName)); } parserContext.popAndRegisterContainingComponent(); return null; }
From source file:com.github.spring.mvc.util.handler.config.UriMatchingAnnotationDrivenBeanDefinitionParser.java
/** * Create the {@link Pointcut} used to apply the caching interceptor * @return Reference to the {@link Pointcut}. Should never be null. *///www . j av a 2 s . c o m protected RuntimeBeanReference setupPointcut(Element element, ParserContext parserContext, Object elementSource) { final RootBeanDefinition pointcut = new RootBeanDefinition(UriMatchingStaticMethodMatcherPointcut.class); pointcut.setSource(elementSource); pointcut.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); final XmlReaderContext readerContext = parserContext.getReaderContext(); final String pointcutBeanName = readerContext.registerWithGeneratedName(pointcut); return new RuntimeBeanReference(pointcutBeanName); }
From source file:com.ryantenney.metrics.spring.config.RegisterMetricBeanDefinitionParser.java
@Override public BeanDefinition parse(Element element, ParserContext parserContext) { final CompositeComponentDefinition compDefinition = new CompositeComponentDefinition(element.getTagName(), parserContext.extractSource(element)); parserContext.pushContainingComponent(compDefinition); final String metricRegistryBeanName = element.getAttribute("metric-registry"); if (!StringUtils.hasText(metricRegistryBeanName)) { throw new RuntimeException(); // TODO }/* w w w. j a va 2s. co m*/ final RuntimeBeanReference metricRegistryBeanRef = new RuntimeBeanReference(metricRegistryBeanName); final List<Element> metricElements = DomUtils.getChildElementsByTagName(element, new String[] { "bean", "ref" }); for (Element metricElement : metricElements) { // Get the name attribute and remove it (to prevent Spring from looking for a BeanDefinitionDecorator) final String name = metricElement.getAttributeNS(METRICS_NAMESPACE, "name"); if (name != null) { metricElement.removeAttributeNS(METRICS_NAMESPACE, "name"); } final Object metric = parserContext.getDelegate().parsePropertySubElement(metricElement, null); final RootBeanDefinition metricRegistererDef = new RootBeanDefinition(MetricRegisterer.class); metricRegistererDef.setSource(parserContext.extractSource(metricElement)); metricRegistererDef.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); final ConstructorArgumentValues args = metricRegistererDef.getConstructorArgumentValues(); args.addIndexedArgumentValue(0, metricRegistryBeanRef); args.addIndexedArgumentValue(1, name); args.addIndexedArgumentValue(2, metric); final String beanName = parserContext.getReaderContext().registerWithGeneratedName(metricRegistererDef); parserContext.registerComponent(new BeanComponentDefinition(metricRegistererDef, beanName)); } parserContext.popAndRegisterContainingComponent(); return null; }
From source file:com.github.spring.mvc.util.handler.config.UriMatchingAnnotationDrivenBeanDefinitionParser.java
/** * Create {@link PointcutAdvisor} that puts the {@link Pointcut} and {@link MethodInterceptor} together. * @return Reference to the {@link PointcutAdvisor}. Should never be null. *//*from ww w. ja v a2s . c om*/ protected RuntimeBeanReference setupPointcutAdvisor(Element element, ParserContext parserContext, Object elementSource, RuntimeBeanReference pointcutReference, RuntimeBeanReference interceptorReference) { final RootBeanDefinition pointcutAdvisor = new RootBeanDefinition(DefaultBeanFactoryPointcutAdvisor.class); pointcutAdvisor.setSource(elementSource); pointcutAdvisor.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); final MutablePropertyValues propertyValues = pointcutAdvisor.getPropertyValues(); propertyValues.addPropertyValue("adviceBeanName", interceptorReference.getBeanName()); propertyValues.addPropertyValue("pointcut", pointcutReference); if (element.hasAttribute("order")) { propertyValues.addPropertyValue("order", element.getAttribute("order")); } final BeanDefinitionRegistry registry = parserContext.getRegistry(); registry.registerBeanDefinition(CACHING_ADVISOR_BEAN_NAME, pointcutAdvisor); return new RuntimeBeanReference(CACHING_ADVISOR_BEAN_NAME); }
From source file:com.github.spring.mvc.util.handler.config.UriMatchingAnnotationDrivenBeanDefinitionParser.java
/** * Create {@link MethodInterceptor} that is applies the caching logic to advised methods. * @return Reference to the {@link MethodInterceptor}. Should never be null. *//*w ww .j ava 2s . c o m*/ protected RuntimeBeanReference setupInterceptor(Element element, ParserContext parserContext, Object elementSource) { final RootBeanDefinition interceptor = new RootBeanDefinition( UriMatchingHandlerInterceptorInterceptor.class); interceptor.setSource(elementSource); interceptor.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); final XmlReaderContext readerContext = parserContext.getReaderContext(); final String interceptorBeanName = readerContext.registerWithGeneratedName(interceptor); return new RuntimeBeanReference(interceptorBeanName); }