Example usage for org.springframework.beans.factory.support RootBeanDefinition setSource

List of usage examples for org.springframework.beans.factory.support RootBeanDefinition setSource

Introduction

In this page you can find the example usage for org.springframework.beans.factory.support RootBeanDefinition setSource.

Prototype

public void setSource(@Nullable Object source) 

Source Link

Document

Set the configuration source Object for this metadata element.

Usage

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);
}