Example usage for org.springframework.beans.factory.config RuntimeBeanReference RuntimeBeanReference

List of usage examples for org.springframework.beans.factory.config RuntimeBeanReference RuntimeBeanReference

Introduction

In this page you can find the example usage for org.springframework.beans.factory.config RuntimeBeanReference RuntimeBeanReference.

Prototype

public RuntimeBeanReference(Class<?> beanType) 

Source Link

Document

Create a new RuntimeBeanReference to a bean of the given type.

Usage

From source file:com.clican.pluto.dataprocess.spring.parser.DplExecProcessorParser.java

@SuppressWarnings("unchecked")

public void customiseBeanDefinition(BeanDefinition beanDef, Element element, ParserContext parserContext) {
    this.setBeanDefinitionStringProperty("resultName", beanDef, element);

    String dplStatement = element.getAttribute("dplStatement");
    if (StringUtils.isEmpty(dplStatement)) {
        dplStatement = "dplStatement";
    }//from  w w w  .  j a va  2 s .c  o  m
    String clazz = element.getAttribute("clazz");
    if (StringUtils.isNotEmpty(clazz)) {
        try {
            Class c = Class.forName(clazz);
            beanDef.getPropertyValues().addPropertyValue("clazz", c);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
    String singleRow = element.getAttribute("singleRow");
    if (StringUtils.isNotEmpty(singleRow)) {
        beanDef.getPropertyValues().addPropertyValue("singleRow", Boolean.parseBoolean(singleRow));
    }
    String traces = element.getAttribute("traces");
    if (StringUtils.isNotEmpty(traces)) {
        List<String> traceList = new ArrayList<String>();
        for (String trace : traces.split(",")) {
            traceList.add(trace.trim());
        }
        beanDef.getPropertyValues().addPropertyValue("traces", traceList);
    }
    beanDef.getPropertyValues().addPropertyValue("dplStatement", new RuntimeBeanReference(dplStatement));
    beanDef.getPropertyValues().addPropertyValue("dpl", element.getTextContent().trim());
}

From source file:com.tacitknowledge.flip.spring.config.InterceptHandlerParser.java

@Override
protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) {
    XmlBeanFactory factory = new XmlBeanFactory(
            new ClassPathResource("com/tacitknowledge/flip/spring/context.xml"));

    BeanDefinitionBuilder beanBuilder = BeanDefinitionBuilder.rootBeanDefinition(FlipSpringAspect.class);
    String defaultUrlValue = element.getAttribute("default-url");
    MutablePropertyValues propertyValues = new MutablePropertyValues();
    propertyValues.addPropertyValue("defaultValue", defaultUrlValue);
    propertyValues.addPropertyValue(FlipSpringAspect.FEATURE_SERVICE_BEAN_NAME,
            new RuntimeBeanReference(FlipSpringAspect.FEATURE_SERVICE_BEAN_NAME));
    beanBuilder.getRawBeanDefinition().setPropertyValues(propertyValues);

    for (String name : factory.getBeanDefinitionNames()) {
        parserContext.getRegistry().registerBeanDefinition(name, factory.getBeanDefinition(name));
    }//from   w ww  .ja  v  a 2s  . com
    parserContext.getRegistry().registerBeanDefinition(FlipSpringAspect.ASPECT_BEAN_NAME,
            beanBuilder.getBeanDefinition());

    return null;
}

From source file:org.springmodules.cache.config.AnnotationsParser.java

/**
 * Registers a <code>{@link AnnotationCachingAttributeSource}</code> and
 * adds it as a property of the caching interceptor.
 * //from  ww  w.  j ava  2 s .co  m
 * @param propertyValues
 *          the set of properties of the caching interceptor
 * @param registry
 *          the registry of bean definitions
 * 
 * @see AbstractMetadataAttributesParser#configureCachingInterceptor(MutablePropertyValues,
 *      BeanDefinitionRegistry)
 */
@Override
protected void configureCachingInterceptor(MutablePropertyValues propertyValues,
        BeanDefinitionRegistry registry) {

    String beanName = AnnotationCachingAttributeSource.class.getName();

    registry.registerBeanDefinition(beanName, new RootBeanDefinition(AnnotationCachingAttributeSource.class));

    propertyValues.addPropertyValue("cachingAttributeSource", new RuntimeBeanReference(beanName));
}

From source file:com.bt.aloha.spring.BeanFactoryPostProcessorBase.java

protected void injectBeanIfDefined(ConfigurableListableBeanFactory beanFactory, String targetBeanName,
        String propertyName, Class<?> beanClassToInject) {
    String[] beanNamesForInjection = beanFactory.getBeanNamesForType(beanClassToInject);
    if (beanNamesForInjection != null && beanNamesForInjection.length > 0) {
        log.debug(String.format("Injecting bean %s into property %s of bean %s", beanClassToInject.getName(),
                propertyName, targetBeanName));
        if (beanNamesForInjection.length > 1)
            log.debug(String.format("Multiple beans of type %s found, injecting only the first one into %s",
                    beanClassToInject.getName(), targetBeanName));
        PropertyValue propertyValue = new PropertyValue(propertyName,
                new RuntimeBeanReference(beanNamesForInjection[0]));
        BeanDefinition beanDefinition = beanFactory.getBeanDefinition(targetBeanName);
        beanDefinition.getPropertyValues().addPropertyValue(propertyValue);
    } else/*from www  . j ava 2 s.  c  o  m*/
        log.info(String.format("Property %s not set for bean %s", propertyName, targetBeanName));
}

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
    }//from   www  .  j ava  2s  .c om
    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.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);/*w  w  w . j a  v a 2s.  c om*/
    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);/*  w  w w  . ja  v  a 2s .  c  o  m*/
    srcDef.setRole(BeanDefinition.ROLE_INFRASTRUCTURE);
    srcDef.getPropertyValues().add("breaker", new RuntimeBeanReference(elem.getAttribute("breaker")));
    builder.addPropertyValue("circuitBreakerSource", srcDef);
}

From source file:org.ff4j.spring.namespace.FF4JPlaceHolderBeanDefinitionParser.java

/** {@inheritDoc} */
public final BeanDefinition parse(Element element, ParserContext parserContext) {
    logger.debug("Initialization from <ff4j:" + TAG_PLACEHOLDER + "> TAG");
    BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition();
    builder.getRawBeanDefinition().setBeanClass(FF4jPropertiesPlaceHolderConfigurer.class);
    builder.getRawBeanDefinition().setSource(parserContext.extractSource(element));

    // Reference to FF4J bean
    RuntimeBeanReference refFF4j = new RuntimeBeanReference("ff4j");
    builder.getBeanDefinition().getPropertyValues().addPropertyValue("id", BEANID_PLACEHOLDER_CONF);
    builder.getBeanDefinition().getPropertyValues().addPropertyValue("ff4j", refFF4j);
    builder.getBeanDefinition().getPropertyValues().addPropertyValue("order", 2);

    AbstractBeanDefinition def = builder.getBeanDefinition();
    if (def != null && !parserContext.isNested()) {
        BeanDefinitionHolder holder = new BeanDefinitionHolder(def, BEANID_PLACEHOLDER, new String[0]);
        BeanDefinitionReaderUtils.registerBeanDefinition(holder, parserContext.getRegistry());
    }/*from  w  ww . ja  v  a  2s  . c  om*/
    return def;
}

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);//w w w  . jav a2 s .  c  om
    srcDef.setRole(BeanDefinition.ROLE_INFRASTRUCTURE);
    srcDef.getPropertyValues().add("throttle", new RuntimeBeanReference(elem.getAttribute("throttle")));
    builder.addPropertyValue("throttleSource", srcDef);
}

From source file:org.opencredo.esper.config.xml.EsperListenerParser.java

/**
 * Parses out a set of configured esper statement listeners.
 * /* w w  w.  j  a v  a2s .c  om*/
 * @param element
 *            the esper listeners element
 * @param parserContext
 *            the parser's current context
 * @return a list of configured esper statement listeners
 */
@SuppressWarnings("unchecked")
public ManagedSet parseListeners(Element element, ParserContext parserContext) {
    ManagedSet listeners = new ManagedSet();
    NodeList childNodes = element.getChildNodes();
    for (int i = 0; i < childNodes.getLength(); i++) {
        Node child = childNodes.item(i);
        if (child.getNodeType() == Node.ELEMENT_NODE) {
            Element childElement = (Element) child;
            String localName = child.getLocalName();
            if ("bean".equals(localName)) {
                BeanDefinitionHolder holder = parserContext.getDelegate()
                        .parseBeanDefinitionElement(childElement);
                parserContext.registerBeanComponent(new BeanComponentDefinition(holder));
                listeners.add(new RuntimeBeanReference(holder.getBeanName()));
            } else if ("ref".equals(localName)) {
                String ref = childElement.getAttribute("bean");
                listeners.add(new RuntimeBeanReference(ref));
            }
        }
    }
    return listeners;
}