Example usage for org.springframework.beans.factory.support GenericBeanDefinition setBeanClass

List of usage examples for org.springframework.beans.factory.support GenericBeanDefinition setBeanClass

Introduction

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

Prototype

public void setBeanClass(@Nullable Class<?> beanClass) 

Source Link

Document

Specify the class for this bean.

Usage

From source file:org.bytesoft.bytejta.supports.dubbo.TransactionConfigPostProcessor.java

public void initializeForConsumer(ConfigurableListableBeanFactory beanFactory, String application,
        String targetBeanName) throws BeansException {
    BeanDefinitionRegistry registry = (BeanDefinitionRegistry) beanFactory;

    // <dubbo:reference id="yyy"
    // interface="org.bytesoft.bytejta.supports.wire.RemoteCoordinator"
    // timeout="6000" group="org.bytesoft.bytejta" loadbalance="transaction" cluster="failfast" />
    GenericBeanDefinition beanDef = new GenericBeanDefinition();
    beanDef.setBeanClass(com.alibaba.dubbo.config.spring.ReferenceBean.class);

    MutablePropertyValues mpv = beanDef.getPropertyValues();
    mpv.addPropertyValue("interface", RemoteCoordinator.class.getName());
    mpv.addPropertyValue("timeout", "6000");
    mpv.addPropertyValue("cluster", "failfast");
    mpv.addPropertyValue("loadbalance", "transaction");
    mpv.addPropertyValue("group", "org.bytesoft.bytejta");
    mpv.addPropertyValue("check", "false");

    String stubBeanId = String.format("stub@%s", RemoteCoordinator.class.getName());
    registry.registerBeanDefinition(stubBeanId, beanDef);

    // <bean id="xxx" class="org.bytesoft.bytejta.supports.dubbo.TransactionBeanRegistry"
    // factory-method="getInstance">
    // <property name="consumeCoordinator" ref="yyy" />
    // </bean>
    BeanDefinition targetBeanDef = beanFactory.getBeanDefinition(targetBeanName);
    MutablePropertyValues targetMpv = targetBeanDef.getPropertyValues();
    targetMpv.addPropertyValue("consumeCoordinator", new RuntimeBeanReference(stubBeanId));
}

From source file:org.bytesoft.bytetcc.supports.dubbo.CompensableConfigPostProcessor.java

public void initializeForProvider(ConfigurableListableBeanFactory beanFactory, String application,
        String refBeanName) throws BeansException {
    BeanDefinitionRegistry registry = (BeanDefinitionRegistry) beanFactory;

    // <dubbo:service interface="org.bytesoft.bytejta.supports.wire.RemoteCoordinator"
    // ref="dispatcherCoordinator" group="org.bytesoft.bytetcc" loadbalance="compensable" cluster="failfast" />
    GenericBeanDefinition beanDef = new GenericBeanDefinition();
    beanDef.setBeanClass(com.alibaba.dubbo.config.spring.ServiceBean.class);

    MutablePropertyValues mpv = beanDef.getPropertyValues();
    mpv.addPropertyValue("interface", RemoteCoordinator.class.getName());
    mpv.addPropertyValue("ref", new RuntimeBeanReference(refBeanName));
    mpv.addPropertyValue("cluster", "failfast");
    mpv.addPropertyValue("loadbalance", "compensable");
    mpv.addPropertyValue("group", "org.bytesoft.bytetcc");
    mpv.addPropertyValue("retries", "0");
    mpv.addPropertyValue("timeout", String.valueOf(1000L * 6));

    String skeletonBeanId = String.format("skeleton@%s", RemoteCoordinator.class.getName());
    registry.registerBeanDefinition(skeletonBeanId, beanDef);
}

From source file:org.bytesoft.bytetcc.supports.dubbo.CompensableConfigPostProcessor.java

public void initializeForConsumer(ConfigurableListableBeanFactory beanFactory, String application,
        String targetBeanName) throws BeansException {
    BeanDefinitionRegistry registry = (BeanDefinitionRegistry) beanFactory;

    // <dubbo:reference id="yyy"
    // interface="org.bytesoft.bytejta.supports.wire.RemoteCoordinator"
    // timeout="3000" group="org.bytesoft.bytetcc" loadbalance="compensable" cluster="failfast" />
    GenericBeanDefinition beanDef = new GenericBeanDefinition();
    beanDef.setBeanClass(com.alibaba.dubbo.config.spring.ReferenceBean.class);

    MutablePropertyValues mpv = beanDef.getPropertyValues();
    mpv.addPropertyValue("interface", RemoteCoordinator.class.getName());
    mpv.addPropertyValue("timeout", "3000");
    mpv.addPropertyValue("cluster", "failfast");
    mpv.addPropertyValue("loadbalance", "compensable");
    mpv.addPropertyValue("group", "org.bytesoft.bytetcc");

    String stubBeanId = String.format("stub@%s", RemoteCoordinator.class.getName());
    registry.registerBeanDefinition(stubBeanId, beanDef);

    // <bean id="xxx" class="org.bytesoft.bytetcc.supports.dubbo.CompensableBeanRegistry"
    // factory-method="getInstance">
    // <property name="consumeCoordinator" ref="yyy" />
    // </bean>
    BeanDefinition targetBeanDef = beanFactory.getBeanDefinition(targetBeanName);
    MutablePropertyValues targetMpv = targetBeanDef.getPropertyValues();
    targetMpv.addPropertyValue("consumeCoordinator", new RuntimeBeanReference(stubBeanId));
}

From source file:org.eclipse.gemini.blueprint.extender.internal.blueprint.activator.BlueprintContainerProcessor.java

public void preProcessRefresh(final ConfigurableOsgiBundleApplicationContext context) {
    final BundleContext bundleContext = context.getBundleContext();
    // create the ModuleContext adapter
    final BlueprintContainer blueprintContainer = createBlueprintContainer(context);

    // 1. add event listeners
    // add service publisher
    context.addApplicationListener(new BlueprintContainerServicePublisher(blueprintContainer, bundleContext));
    // add waiting event broadcaster
    context.addApplicationListener(new BlueprintWaitingEventDispatcher(context.getBundleContext()));

    // 2. add environmental managers
    context.addBeanFactoryPostProcessor(new BeanFactoryPostProcessor() {

        private static final String BLUEPRINT_BUNDLE = "blueprintBundle";
        private static final String BLUEPRINT_BUNDLE_CONTEXT = "blueprintBundleContext";
        private static final String BLUEPRINT_CONTAINER = "blueprintContainer";
        private static final String BLUEPRINT_EXTENDER = "blueprintExtenderBundle";
        private static final String BLUEPRINT_CONVERTER = "blueprintConverter";

        public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
            // lazy logger evaluation
            Log logger = LogFactory.getLog(context.getClass());

            if (!(beanFactory instanceof BeanDefinitionRegistry)) {
                logger.warn("Environmental beans will be registered as singletons instead "
                        + "of usual bean definitions since beanFactory " + beanFactory
                        + " is not a BeanDefinitionRegistry");
            }//from  w w w  . j a v  a  2  s  .  com

            // add blueprint container bean
            addPredefinedBlueprintBean(beanFactory, BLUEPRINT_BUNDLE, bundleContext.getBundle(), logger);
            addPredefinedBlueprintBean(beanFactory, BLUEPRINT_BUNDLE_CONTEXT, bundleContext, logger);
            addPredefinedBlueprintBean(beanFactory, BLUEPRINT_CONTAINER, blueprintContainer, logger);
            // addPredefinedBlueprintBean(beanFactory, BLUEPRINT_EXTENDER, extenderBundle, logger);
            addPredefinedBlueprintBean(beanFactory, BLUEPRINT_CONVERTER,
                    new SpringBlueprintConverter(beanFactory), logger);

            // add Blueprint conversion service
            // String[] beans = beanFactory.getBeanNamesForType(BlueprintConverterConfigurer.class, false, false);
            // if (ObjectUtils.isEmpty(beans)) {
            // beanFactory.addPropertyEditorRegistrar(new BlueprintEditorRegistrar());
            // }
            beanFactory.setConversionService(
                    new SpringBlueprintConverterService(beanFactory.getConversionService(), beanFactory));
        }

        private void addPredefinedBlueprintBean(ConfigurableListableBeanFactory beanFactory, String beanName,
                Object value, Log logger) {
            if (!beanFactory.containsLocalBean(beanName)) {
                logger.debug("Registering pre-defined bean named " + beanName);
                if (beanFactory instanceof BeanDefinitionRegistry) {
                    BeanDefinitionRegistry registry = (BeanDefinitionRegistry) beanFactory;

                    GenericBeanDefinition def = new GenericBeanDefinition();
                    def.setBeanClass(ENV_FB_CLASS);
                    ConstructorArgumentValues cav = new ConstructorArgumentValues();
                    cav.addIndexedArgumentValue(0, value);
                    def.setConstructorArgumentValues(cav);
                    def.setLazyInit(false);
                    def.setRole(BeanDefinition.ROLE_INFRASTRUCTURE);
                    registry.registerBeanDefinition(beanName, def);

                } else {
                    beanFactory.registerSingleton(beanName, value);
                }

            } else {
                logger.warn("A bean named " + beanName
                        + " already exists; aborting registration of the predefined value...");
            }
        }
    });

    // 3. add cycle breaker
    context.addBeanFactoryPostProcessor(cycleBreaker);

    BlueprintEvent creatingEvent = new BlueprintEvent(BlueprintEvent.CREATING, context.getBundle(),
            extenderBundle);
    listenerManager.blueprintEvent(creatingEvent);
    dispatcher.beforeRefresh(creatingEvent);
}

From source file:org.flockdata.spring.xml.ClientBeanDefinitionParser.java

public BeanDefinition parse(Element element, ParserContext parserContext) {
    // When node is not null, we should build a client.
    // When node is null, we want to build a transport client.

    String id = XMLParserUtil.getElementStringValue(element, "id");

    String properties = XMLParserUtil.getElementStringValue(element, "properties");

    BeanDefinition client;//from  ww w .j  a v a 2 s. c  o  m

    GenericBeanDefinition bdef = new GenericBeanDefinition();

    bdef.setBeanClass(FlockDataClientFactoryBean.class);
    BeanDefinitionBuilder clientBuilder = startClientBuilder(FlockDataClientFactoryBean.class, properties);
    client = ClientBeanDefinitionParser.buildClientDef(clientBuilder);

    parserContext.getRegistry().registerBeanDefinition(id, client);

    return bdef;
}

From source file:org.hx.rainbow.server.oc.monitor.service.MonitorService.java

private GenericBeanDefinition getDefinition(String serverName, String url, String userName, String password) {
    GenericBeanDefinition sessionFactoryDef = new GenericBeanDefinition();
    Map<String, Object> paramData = new HashMap<String, Object>();
    paramData.put("driverClassName", "com.mysql.jdbc.Driver");
    paramData.put("url", url);
    paramData.put("username", userName);
    paramData.put("password", password);
    paramData.put("initialSize", 5);
    paramData.put("maxActive", 20);
    paramData.put("maxIdle", 10);
    sessionFactoryDef.setBeanClass(BasicDataSource.class);
    sessionFactoryDef.setPropertyValues(new MutablePropertyValues(paramData));
    return sessionFactoryDef;
}

From source file:org.springframework.beans.factory.groovy.GroovyBeanDefinitionReader.java

/**
 * Define an inner bean definition.//from  w w  w.j  a v a2 s . c  o m
 * @param type the bean type
 * @return the bean definition
 */
public GenericBeanDefinition bean(Class<?> type) {
    GenericBeanDefinition beanDefinition = new GenericBeanDefinition();
    beanDefinition.setBeanClass(type);
    return beanDefinition;
}

From source file:org.springframework.context.expression.ApplicationContextExpressionTests.java

@Test
public void genericApplicationContext() throws Exception {
    GenericApplicationContext ac = new GenericApplicationContext();
    AnnotationConfigUtils.registerAnnotationConfigProcessors(ac);

    ac.getBeanFactory().registerScope("myScope", new Scope() {
        @Override//from ww  w  .j  a  v a  2  s .  c o m
        public Object get(String name, ObjectFactory<?> objectFactory) {
            return objectFactory.getObject();
        }

        @Override
        public Object remove(String name) {
            return null;
        }

        @Override
        public void registerDestructionCallback(String name, Runnable callback) {
        }

        @Override
        public Object resolveContextualObject(String key) {
            if (key.equals("mySpecialAttr")) {
                return "42";
            } else {
                return null;
            }
        }

        @Override
        public String getConversationId() {
            return null;
        }
    });

    PropertyPlaceholderConfigurer ppc = new PropertyPlaceholderConfigurer();
    Properties placeholders = new Properties();
    placeholders.setProperty("code", "123");
    ppc.setProperties(placeholders);
    ac.addBeanFactoryPostProcessor(ppc);

    GenericBeanDefinition bd0 = new GenericBeanDefinition();
    bd0.setBeanClass(TestBean.class);
    bd0.getPropertyValues().add("name", "myName");
    bd0.addQualifier(new AutowireCandidateQualifier(Qualifier.class, "original"));
    ac.registerBeanDefinition("tb0", bd0);

    GenericBeanDefinition bd1 = new GenericBeanDefinition();
    bd1.setBeanClassName("#{tb0.class}");
    bd1.setScope("myScope");
    bd1.getConstructorArgumentValues().addGenericArgumentValue("XXX#{tb0.name}YYY#{mySpecialAttr}ZZZ");
    bd1.getConstructorArgumentValues().addGenericArgumentValue("#{mySpecialAttr}");
    ac.registerBeanDefinition("tb1", bd1);

    GenericBeanDefinition bd2 = new GenericBeanDefinition();
    bd2.setBeanClassName("#{tb1.class.name}");
    bd2.setScope("myScope");
    bd2.getPropertyValues().add("name", "{ XXX#{tb0.name}YYY#{mySpecialAttr}ZZZ }");
    bd2.getPropertyValues().add("age", "#{mySpecialAttr}");
    bd2.getPropertyValues().add("country", "${code} #{systemProperties.country}");
    ac.registerBeanDefinition("tb2", bd2);

    GenericBeanDefinition bd3 = new GenericBeanDefinition();
    bd3.setBeanClass(ValueTestBean.class);
    bd3.setScope("myScope");
    ac.registerBeanDefinition("tb3", bd3);

    GenericBeanDefinition bd4 = new GenericBeanDefinition();
    bd4.setBeanClass(ConstructorValueTestBean.class);
    bd4.setScope("myScope");
    ac.registerBeanDefinition("tb4", bd4);

    GenericBeanDefinition bd5 = new GenericBeanDefinition();
    bd5.setBeanClass(MethodValueTestBean.class);
    bd5.setScope("myScope");
    ac.registerBeanDefinition("tb5", bd5);

    GenericBeanDefinition bd6 = new GenericBeanDefinition();
    bd6.setBeanClass(PropertyValueTestBean.class);
    bd6.setScope("myScope");
    ac.registerBeanDefinition("tb6", bd6);

    System.getProperties().put("country", "UK");
    try {
        ac.refresh();

        TestBean tb0 = ac.getBean("tb0", TestBean.class);

        TestBean tb1 = ac.getBean("tb1", TestBean.class);
        assertEquals("XXXmyNameYYY42ZZZ", tb1.getName());
        assertEquals(42, tb1.getAge());

        TestBean tb2 = ac.getBean("tb2", TestBean.class);
        assertEquals("{ XXXmyNameYYY42ZZZ }", tb2.getName());
        assertEquals(42, tb2.getAge());
        assertEquals("123 UK", tb2.getCountry());

        ValueTestBean tb3 = ac.getBean("tb3", ValueTestBean.class);
        assertEquals("XXXmyNameYYY42ZZZ", tb3.name);
        assertEquals(42, tb3.age);
        assertEquals(42, tb3.ageFactory.getObject().intValue());
        assertEquals("123 UK", tb3.country);
        assertEquals("123 UK", tb3.countryFactory.getObject());
        System.getProperties().put("country", "US");
        assertEquals("123 UK", tb3.country);
        assertEquals("123 US", tb3.countryFactory.getObject());
        System.getProperties().put("country", "UK");
        assertEquals("123 UK", tb3.country);
        assertEquals("123 UK", tb3.countryFactory.getObject());
        assertSame(tb0, tb3.tb);

        tb3 = (ValueTestBean) SerializationTestUtils.serializeAndDeserialize(tb3);
        assertEquals("123 UK", tb3.countryFactory.getObject());

        ConstructorValueTestBean tb4 = ac.getBean("tb4", ConstructorValueTestBean.class);
        assertEquals("XXXmyNameYYY42ZZZ", tb4.name);
        assertEquals(42, tb4.age);
        assertEquals("123 UK", tb4.country);
        assertSame(tb0, tb4.tb);

        MethodValueTestBean tb5 = ac.getBean("tb5", MethodValueTestBean.class);
        assertEquals("XXXmyNameYYY42ZZZ", tb5.name);
        assertEquals(42, tb5.age);
        assertEquals("123 UK", tb5.country);
        assertSame(tb0, tb5.tb);

        PropertyValueTestBean tb6 = ac.getBean("tb6", PropertyValueTestBean.class);
        assertEquals("XXXmyNameYYY42ZZZ", tb6.name);
        assertEquals(42, tb6.age);
        assertEquals("123 UK", tb6.country);
        assertSame(tb0, tb6.tb);
    } finally {
        System.getProperties().remove("country");
    }
}

From source file:org.springframework.context.expression.ApplicationContextExpressionTests.java

@Test
public void systemPropertiesSecurityManager() {
    GenericApplicationContext ac = new GenericApplicationContext();
    AnnotationConfigUtils.registerAnnotationConfigProcessors(ac);

    GenericBeanDefinition bd = new GenericBeanDefinition();
    bd.setBeanClass(TestBean.class);
    bd.getPropertyValues().add("country", "#{systemProperties.country}");
    ac.registerBeanDefinition("tb", bd);

    SecurityManager oldSecurityManager = System.getSecurityManager();
    try {/*from   www  .  j a va 2s  . c  o m*/
        System.setProperty("country", "NL");

        SecurityManager securityManager = new SecurityManager() {
            @Override
            public void checkPropertiesAccess() {
                throw new AccessControlException("Not Allowed");
            }

            @Override
            public void checkPermission(Permission perm) {
                // allow everything else
            }
        };
        System.setSecurityManager(securityManager);
        ac.refresh();

        TestBean tb = ac.getBean("tb", TestBean.class);
        assertEquals("NL", tb.getCountry());

    } finally {
        System.setSecurityManager(oldSecurityManager);
        System.getProperties().remove("country");
    }
}

From source file:org.springframework.context.expression.ApplicationContextExpressionTests.java

@Test
public void stringConcatenationWithDebugLogging() {
    GenericApplicationContext ac = new GenericApplicationContext();
    AnnotationConfigUtils.registerAnnotationConfigProcessors(ac);

    GenericBeanDefinition bd = new GenericBeanDefinition();
    bd.setBeanClass(String.class);
    bd.getConstructorArgumentValues()//from ww w .j a v a2 s  . c o m
            .addGenericArgumentValue("test-#{ T(java.lang.System).currentTimeMillis() }");
    ac.registerBeanDefinition("str", bd);
    ac.refresh();

    String str = ac.getBean("str", String.class);
    assertTrue(str.startsWith("test-"));
}