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

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

Introduction

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

Prototype

public GenericBeanDefinition() 

Source Link

Document

Create a new GenericBeanDefinition, to be configured through its bean properties and configuration methods.

Usage

From source file:com.dianping.zebra.monitor.spring.DataSourceAutoMonitor.java

private BeanDefinition createMonitorableBeanDefinition(String beanName, BeanDefinition dataSourceDefinition) {
    if (MonitorableDataSource.class.getName().equals(dataSourceDefinition.getBeanClassName())
            || GroupDataSource.class.getName().equals(dataSourceDefinition.getBeanClassName())) {
        return dataSourceDefinition;
    }//w  ww .  j  a  va 2  s .c  om

    String newBeanName = String.format("%s-z%d", beanName, nameId++);

    listableBeanFactory.registerBeanDefinition(newBeanName, dataSourceDefinition);

    GenericBeanDefinition monitorableDataSourceDefinition = new GenericBeanDefinition();
    monitorableDataSourceDefinition.setBeanClass(MonitorableDataSource.class);
    monitorableDataSourceDefinition.getConstructorArgumentValues()
            .addGenericArgumentValue(new RuntimeBeanReference(newBeanName));
    return monitorableDataSourceDefinition;
}

From source file:org.mybatis.spring.config.NamespaceTest.java

private GenericApplicationContext setupSqlSessionFactory() {

    GenericApplicationContext genericApplicationContext = new GenericApplicationContext();

    GenericBeanDefinition definition = new GenericBeanDefinition();
    definition.setBeanClass(SqlSessionFactoryBean.class);
    definition.getPropertyValues().add("dataSource", new MockDataSource());

    DefaultListableBeanFactory factory = new DefaultListableBeanFactory();
    factory.registerBeanDefinition("sqlSessionFactory", definition);

    genericApplicationContext.registerBeanDefinition("sqlSessionFactory", definition);

    genericApplicationContext.refresh();

    return genericApplicationContext;
}

From source file:com.urbanmania.spring.beans.factory.config.annotations.PropertyAnnotationAndPlaceholderConfigurerTest.java

@Test
public void testProcessPropertiesWithAnnotatedGetterAndNoSetter() {
    GenericBeanDefinition beanDefinition = new GenericBeanDefinition();
    beanDefinition.setBeanClass(AnnotatedGetterWithNoSetterTestBean.class);
    beanFactory.registerBeanDefinition(TEST_BEAN_NAME, beanDefinition);

    properties.put(TEST_KEY, TEST_VALUE);

    try {// w w w.  ja  v  a 2  s.  co  m
        configurer.processProperties(beanFactory, properties);
    } catch (BeanConfigurationException e) {
        return;
    }

    fail("Should throw BeanConfigurationException on no property setter.");
}

From source file:dirty.mockito.junit.rules.ActiveTestRule.java

/**
 * @param beanName/*from w  w w . jav a  2s .  c  o  m*/
 *        the bean name to register
 */
private void registerJpaDaoBeanDefinition(final String beanName) {
    final GenericBeanDefinition def = new GenericBeanDefinition();
    def.setBeanClass(classUnderTest);
    final MutablePropertyValues propertyValues = new MutablePropertyValues();
    final Object emf = beanFactory.getSingleton("entityManagerFactory");
    propertyValues.addPropertyValue("entityManagerFactory", emf);
    def.setPropertyValues(propertyValues);
    beanFactory.registerBeanDefinition(beanName, def);
}

From source file:org.mybatis.spring.mapper.MapperScannerConfigurerTest.java

@Test
public void testScanWithExplicitSqlSessionFactoryViaPlaceholder() throws Exception {
    setupSqlSessionFactory("sqlSessionFactory2");

    // use a property placeholder for the session factory name
    applicationContext.getBeanDefinition("mapperScanner").getPropertyValues().add("sqlSessionFactoryBeanName",
            "${sqlSessionFactoryBeanNameProperty}");

    Properties props = new java.util.Properties();
    props.put("sqlSessionFactoryBeanNameProperty", "sqlSessionFactory2");

    GenericBeanDefinition propertyDefinition = new GenericBeanDefinition();
    propertyDefinition.setBeanClass(PropertyPlaceholderConfigurer.class);
    propertyDefinition.getPropertyValues().add("properties", props);

    applicationContext.registerBeanDefinition("propertiesPlaceholder", propertyDefinition);

    testInterfaceScan();//w ww  .j a va2s.c  o  m
}

From source file:org.mybatis.spring.mapper.MapperScannerConfigurerTest.java

@Test
public void testScanWithNameConflict() {
    GenericBeanDefinition definition = new GenericBeanDefinition();
    definition.setBeanClass(Object.class);
    applicationContext.registerBeanDefinition("mapperInterface", definition);

    startContext();//w  w w  .  j  av  a2 s  . co  m

    assertSame("scanner should not overwite existing bean definition",
            applicationContext.getBean("mapperInterface").getClass(), Object.class);
}

From source file:com.urbanmania.spring.beans.factory.config.annotations.PropertyAnnotationAndPlaceholderConfigurerTest.java

@Test
public void testProcessPropertiesAndUpdate() throws Exception {
    configurer.setPropertyLoaders(new MockPropertyLoader[] { new MockPropertyLoader(properties) });

    GenericBeanDefinition beanDefinition = new GenericBeanDefinition();
    beanDefinition.setBeanClass(UpdateableTestBean.class);
    beanFactory.registerBeanDefinition(TEST_BEAN_NAME, beanDefinition);

    properties.put(TEST_KEY, TEST_VALUE);

    configurer.loadProperties(properties);
    configurer.processProperties(beanFactory, properties);

    StaticApplicationContext context = new StaticApplicationContext();
    context.registerSingleton(TEST_BEAN_NAME, UpdateableTestBean.class);
    configurer.setApplicationContext(context);

    configurer.setBeanFactory(beanFactory);
    configurer.propertyChanged(new PropertyEvent(this, TEST_KEY, TEST_CHANGED_VALUE));

    assertEquals(TEST_CHANGED_VALUE, ((UpdateableTestBean) context.getBean(TEST_BEAN_NAME)).getProperty());
    assertNull(System.getProperties().get(TEST_KEY));
}

From source file:de.acosix.alfresco.utility.common.spring.BeanDefinitionFromPropertiesPostProcessor.java

/**
 * {@inheritDoc}//  w w w  .ja v  a 2 s .  com
 */
@Override
public void postProcessBeanDefinitionRegistry(final BeanDefinitionRegistry registry) throws BeansException {
    final boolean enabled = this.isEnabled();

    if (enabled) {
        LOGGER.info("[{}] Processing beans defined via properties files using prefix {}", this.beanName,
                this.propertyPrefix);

        final Map<String, BeanDefinition> beanDefinitions = new HashMap<>();

        final Function<String, BeanDefinition> getOrCreateBeanDefinition = beanName -> {
            BeanDefinition definition;
            if (beanDefinitions.containsKey(beanName)) {
                definition = beanDefinitions.get(beanName);
            } else if (registry.containsBeanDefinition(beanName)) {
                LOGGER.debug("[{}] Customizing pre-defined bean {}", this.beanName, beanName);
                definition = registry.getBeanDefinition(beanName);
                beanDefinitions.put(beanName, definition);
            } else {
                LOGGER.debug("[{}] Defining new bean {}", this.beanName, beanName);
                definition = new GenericBeanDefinition();
                beanDefinitions.put(beanName, definition);
                registry.registerBeanDefinition(beanName, definition);
            }
            return definition;
        };

        final Collection<ManagedList<?>> paddedLists = new ArrayList<>();
        final Consumer<ManagedList<?>> paddedListRegistrator = list -> {
            if (!paddedLists.contains(list)) {
                paddedLists.add(list);
            }
        };

        final Set<Object> processedKeys = new HashSet<>();
        this.processRenamesOrRemovals(registry, processedKeys);
        this.processBeanConfigurations(getOrCreateBeanDefinition, processedKeys, paddedListRegistrator);

        this.compressPaddedLists(paddedLists);
    }
}

From source file:com.fitbur.testify.di.spring.SpringServiceLocator.java

@Override
public void addService(Class<?> type) {
    GenericBeanDefinition bean = new GenericBeanDefinition();
    bean.setBeanClass(type);// www  .  j  a  va 2 s . c  o m
    bean.setRole(ROLE_APPLICATION);

    DefaultListableBeanFactory beanFactory = (DefaultListableBeanFactory) context.getBeanFactory();
    beanFactory.registerBeanDefinition(type.getSimpleName(), bean);
}

From source file:com.urbanmania.spring.beans.factory.config.annotations.PropertyAnnotationAndPlaceholderConfigurerTest.java

@Test
public void testProcessPropertiesConvertAndUpdate() throws Exception {
    configurer.setPropertyLoaders(new MockPropertyLoader[] { new MockPropertyLoader(properties) });

    GenericBeanDefinition beanDefinition = new GenericBeanDefinition();
    beanDefinition.setBeanClass(ConvertableTestBean.class);
    beanFactory.registerBeanDefinition(TEST_BEAN_NAME, beanDefinition);

    properties.put(TEST_KEY, "1");

    configurer.loadProperties(properties);
    configurer.processProperties(beanFactory, properties);

    StaticApplicationContext context = new StaticApplicationContext();
    context.registerSingleton(TEST_BEAN_NAME, ConvertableTestBean.class);
    configurer.setApplicationContext(context);

    configurer.setBeanFactory(beanFactory);
    configurer.propertyChanged(new PropertyEvent(this, TEST_KEY, "2"));

    assertEquals(2, ((ConvertableTestBean) context.getBean(TEST_BEAN_NAME)).getProperty());
    assertNull(System.getProperties().get(TEST_KEY));
}