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

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

Introduction

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

Prototype

RootBeanDefinition(BeanDefinition original) 

Source Link

Document

Create a new RootBeanDefinition as deep copy of the given bean definition.

Usage

From source file:sample.RegisterBeanUtil.java

/**
 * We only want to create {@link MyDynamicallyRegisteredClass} if we detect
 * a bean of a particular name exists. More generally Spring Security will
 * need to create bean definitions based upon the completely populated
 * {@link BeanDefinitionRegistry}./*from  ww w .  j ava 2  s  . c  o m*/
 *
 * @param beanName
 * @param registry
 * @throws BeansException
 */
static void registerCustom(String beanName, BeanDefinitionRegistry registry) throws BeansException {
    boolean beanExists = registry.containsBeanDefinition(beanName);

    if (beanExists) {
        String beanClass = MyDynamicallyRegisteredClass.class.getName();
        registry.registerBeanDefinition(RegisterBeanUtil.class.getName() + "." + beanName,
                new RootBeanDefinition(beanClass));
    }
}

From source file:Main.java

/**
 * Register a {@link ScriptFactoryPostProcessor} bean definition in the supplied
 * {@link BeanDefinitionRegistry} if the {@link ScriptFactoryPostProcessor} hasn't
 * already been registered.//ww w  . j  a v  a  2s  .c om
 * @param registry the {@link BeanDefinitionRegistry} to register the script processor with
 * @return the {@link ScriptFactoryPostProcessor} bean definition (new or already registered)
 */
public static BeanDefinition registerScriptFactoryPostProcessorIfNecessary(BeanDefinitionRegistry registry) {
    BeanDefinition beanDefinition = null;
    if (registry.containsBeanDefinition(SCRIPT_FACTORY_POST_PROCESSOR_BEAN_NAME)) {
        beanDefinition = registry.getBeanDefinition(SCRIPT_FACTORY_POST_PROCESSOR_BEAN_NAME);
    } else {
        beanDefinition = new RootBeanDefinition(ScriptFactoryPostProcessor.class);
        registry.registerBeanDefinition(SCRIPT_FACTORY_POST_PROCESSOR_BEAN_NAME, beanDefinition);
    }
    return beanDefinition;
}

From source file:org.xmatthew.spy2servers.config.AnnotationDrivenParser.java

private void createComponentPostProcessor(ParserContext parserContext) {
    BeanDefinition bd = new RootBeanDefinition(ComponentPostProcessor.class);
    //        bd.getConstructorArgumentValues().addGenericArgumentValue(
    //                new RuntimeBeanReference(MessageBusParser.MESSAGE_BUS_BEAN_NAME));
    BeanComponentDefinition bcd = new BeanComponentDefinition(bd, "simplebean");
    parserContext.registerBeanComponent(bcd);

}

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 {// w  w  w  .  j a  v  a 2s. c om
        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.google.inject.spring.SpringIntegrationTest.java

public void testBindFromSpring() throws CreationException {
    final DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();

    RootBeanDefinition singleton = new RootBeanDefinition(Singleton.class);
    beanFactory.registerBeanDefinition("singleton", singleton);

    RootBeanDefinition prototype = new RootBeanDefinition(Prototype.class, false);
    beanFactory.registerBeanDefinition("prototype", prototype);

    Injector injector = Guice.createInjector(new AbstractModule() {
        protected void configure() {
            bind(BeanFactory.class).toInstance(beanFactory);
            bind(Singleton.class).toProvider(fromSpring(Singleton.class, "singleton"));
            bind(Prototype.class).toProvider(fromSpring(Prototype.class, "prototype"));
        }/*from w w w  . ja  v a 2  s  .c  o  m*/
    });

    assertNotNull(injector.getInstance(Singleton.class));
    assertSame(injector.getInstance(Singleton.class), injector.getInstance(Singleton.class));

    assertNotNull(injector.getInstance(Prototype.class));
    assertNotSame(injector.getInstance(Prototype.class), injector.getInstance(Prototype.class));
}

From source file:org.daniels.samples.SpringIntegrationTest.java

public void testBindFromSpring() throws CreationException {
    final DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();

    RootBeanDefinition singleton = new RootBeanDefinition(Singleton.class);
    beanFactory.registerBeanDefinition("singleton", singleton);

    Injector injector = Guice.createInjector(new AbstractModule() {
        protected void configure() {
            bind(BeanFactory.class).toInstance(beanFactory);
            bind(Singleton.class).toProvider(fromSpring(Singleton.class, "singleton"));

        }/*from   ww w  . jav a 2  s. c  om*/
    });

    assertNotNull(injector.getInstance(Singleton.class));
    assertSame(injector.getInstance(Singleton.class), injector.getInstance(Singleton.class));

}

From source file:net.sourceforge.vulcan.spring.AppCtxTest.java

@Override
public void setUp() {
    BeanDefinition bd = new RootBeanDefinition(Listener.class);

    ac.registerBeanDefinition("listener", bd);
    ac.refresh();/*from ww w.  ja  v a2  s. c  om*/

    received = null;
}

From source file:org.hummer.spring.ServicePaser.java

public BeanDefinition parse(Element ele, ParserContext context) {
    //?/*from w w w. ja v  a  2 s . c om*/
    service = ele.getAttribute(ATTR_SERVICE);
    version = ele.getAttribute(ATTR_VERSION);
    ref = ele.getAttribute(ATTR_REF);

    RootBeanDefinition root = new RootBeanDefinition(ServiceBean.class);
    root.setLazyInit(false);
    root.getPropertyValues().add("service", service);
    root.getPropertyValues().add("version", version);
    root.getPropertyValues().add("ref", new RuntimeBeanReference(ref));
    context.getRegistry()
            .registerBeanDefinition(beanNameGenerator.generateBeanName(root, context.getRegistry()), root);
    return null;
}

From source file:org.hummer.spring.ReferenceParser.java

public BeanDefinition parse(Element ele, ParserContext context) {
    //?//  w w  w  . j  ava 2  s  . co  m
    service = ele.getAttribute(ATTR_SERVICE);
    version = ele.getAttribute(ATTR_VERSION);
    if (service == null || version == null) {
        throw new RuntimeException("?!");
    }
    timeout = ele.getAttribute(ATTR_TIMEOUT) == null ? 3000 : Integer.parseInt(ele.getAttribute(ATTR_TIMEOUT));
    unit = ele.getAttribute(ATTR_UNIT) == null ? false : Boolean.parseBoolean(ele.getAttribute(ATTR_UNIT));
    retry = ele.getAttribute(ATTR_RETRY) == null ? 3 : Integer.parseInt(ele.getAttribute(ATTR_RETRY));
    RootBeanDefinition root = new RootBeanDefinition(ReferenceBean.class);
    root.getPropertyValues().add("service", service);
    root.getPropertyValues().add("version", version);
    root.getPropertyValues().add("timeout", timeout);
    root.getPropertyValues().add("unit", unit);
    root.getPropertyValues().add("retry", retry);
    context.getRegistry().registerBeanDefinition(ele.getAttribute("id"), root);
    return root;
}

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

public void testParseCacheSetupStrategy() {
    Element proxyElement = proxyElementBuilder.toXml();

    RootBeanDefinition beanDefinition = new RootBeanDefinition(String.class);
    BeanDefinitionHolder holder = new BeanDefinitionHolder(beanDefinition, "beanName");
    beanReferenceParser.parse(proxyElement, parserContext);
    beanReferenceParserControl.setReturnValue(holder);
    beanReferenceParserControl.replay();

    // method to test.
    parser.parseCacheSetupStrategy(proxyElement, parserContext, propertySource);

    BeanDefinition proxyDefinition = registry.getBeanDefinition(proxyElementBuilder.id);

    // verify property "target" is correct.
    PropertyValue target = proxyDefinition.getPropertyValues().getPropertyValue("target");
    assertEquals(holder, target.getValue());
    assertCacheProxyFactoryBeanDefinitionIsCorrect(proxyDefinition);

    beanReferenceParserControl.verify();
}