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

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

Introduction

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

Prototype

@Override
public MutablePropertyValues getPropertyValues() 

Source Link

Document

Return property values for this bean (never null ).

Usage

From source file:com.dianping.avatar.cache.spring.CacheBeanDefinitionParser.java

/**
 * Register jms listener definition/*from w ww.  j a  v  a2  s  . co m*/
 */
private void registerJmsDefinition(Element element, ParserContext parserContext) {
    GenericBeanDefinition definition = new GenericBeanDefinition();
    MutablePropertyValues propertyValues = definition.getPropertyValues();

    definition = new GenericBeanDefinition();
    definition.setBeanClass(CacheKeyTypeVersionUpdateListener.class);
    propertyValues = definition.getPropertyValues();
    propertyValues.addPropertyValue("cacheItemConfigManager", new RuntimeBeanReference(cacheItemConfigManager));
    BeanDefinitionReaderUtils.registerBeanDefinition(
            new BeanDefinitionHolder(definition, "keyTypeVersionUpdateListener"), parserContext.getRegistry());

    definition = new GenericBeanDefinition();
    definition.setBeanClass(SingleCacheRemoveListener.class);
    propertyValues = definition.getPropertyValues();
    propertyValues.addPropertyValue("cacheClientFactory",
            new RuntimeBeanReference(DEFAULT_CACHE_CLIENT_FACTORY_ID));
    BeanDefinitionReaderUtils.registerBeanDefinition(
            new BeanDefinitionHolder(definition, "singleCacheRemoveListener"), parserContext.getRegistry());

    definition = new GenericBeanDefinition();
    definition.setBeanClass(CacheConfigurationUpdateListener.class);
    propertyValues = definition.getPropertyValues();
    propertyValues.addPropertyValue("cacheClientFactory",
            new RuntimeBeanReference(DEFAULT_CACHE_CLIENT_FACTORY_ID));
    BeanDefinitionReaderUtils.registerBeanDefinition(
            new BeanDefinitionHolder(definition, "cacheConfigUpdateListener"), parserContext.getRegistry());

    definition = new GenericBeanDefinition();
    definition.setBeanClass(CacheKeyConfigUpdateListener.class);
    propertyValues = definition.getPropertyValues();
    propertyValues.addPropertyValue("cacheItemConfigManager", new RuntimeBeanReference(cacheItemConfigManager));
    BeanDefinitionReaderUtils.registerBeanDefinition(
            new BeanDefinitionHolder(definition, "cacheKeyConfigUpdateListener"), parserContext.getRegistry());

    definition = new GenericBeanDefinition();
    definition.setBeanClass(MessageReceiver.class);
    propertyValues = definition.getPropertyValues();
    propertyValues.addPropertyValue("mappingList[0]", new RuntimeBeanReference("keyTypeVersionUpdateListener"));
    propertyValues.addPropertyValue("mappingList[1]", new RuntimeBeanReference("singleCacheRemoveListener"));
    propertyValues.addPropertyValue("mappingList[2]", new RuntimeBeanReference("cacheConfigUpdateListener"));
    propertyValues.addPropertyValue("mappingList[3]", new RuntimeBeanReference("cacheKeyConfigUpdateListener"));
    BeanDefinitionReaderUtils.registerBeanDefinition(
            new BeanDefinitionHolder(definition, "dispatchMessageListener"), parserContext.getRegistry());

    definition = new GenericBeanDefinition();
    definition.setBeanClass(MongoMQService.class);
    ConstructorArgumentValues constructorArgumentValues = definition.getConstructorArgumentValues();
    constructorArgumentValues.addGenericArgumentValue("${avatar-cache.swallow.url}", "java.lang.String");
    BeanDefinitionReaderUtils.registerBeanDefinition(new BeanDefinitionHolder(definition, "MQService"),
            parserContext.getRegistry());

    definition = new GenericBeanDefinition();
    definition.setBeanClass(Destination.class);
    definition.setFactoryMethodName(DEFAULT_CACHE_JMS_MODE);
    constructorArgumentValues = definition.getConstructorArgumentValues();
    constructorArgumentValues.addGenericArgumentValue(DEFAULT_CACHE_JMS_TOPIC_NAME, "java.lang.String");
    BeanDefinitionReaderUtils.registerBeanDefinition(new BeanDefinitionHolder(definition, "CacheDestination"),
            parserContext.getRegistry());

    definition = new GenericBeanDefinition();
    //        definition.setBeanClass(MongoMessageConsumer.class);
    definition.setFactoryBeanName("MQService");
    definition.setFactoryMethodName("createConsumer");
    constructorArgumentValues = definition.getConstructorArgumentValues();
    //TODO where to get the DEFAULT_CACHE_JMS_TOPIC_NAME
    constructorArgumentValues.addGenericArgumentValue(new RuntimeBeanReference("CacheDestination"));
    propertyValues = definition.getPropertyValues();
    propertyValues.addPropertyValue("messageListener", new RuntimeBeanReference("dispatchMessageListener"));
    BeanDefinitionReaderUtils.registerBeanDefinition(new BeanDefinitionHolder(definition, "cacheConsumer"),
            parserContext.getRegistry());
}

From source file:com.dianping.avatar.cache.spring.CacheBeanDefinitionParser.java

/**
 * Register {@link CacheInterceptor} definition
 */// ww  w.j av a 2  s  .c  om
private void registerCacheInterceptorDefinition(Element element, ParserContext parserContext) {
    GenericBeanDefinition definition = new GenericBeanDefinition();
    definition.setBeanClass(CacheInterceptor.class);

    // Add reference to CacheService
    definition.getPropertyValues().addPropertyValue("cacheService",
            new RuntimeBeanReference(cacheServiceProxyId));

    cacheInterceptorId = element.getAttribute(CACHE_INTERCEPTOR_ID_ATTR);

    if (!StringUtils.hasText(cacheInterceptorId)) {
        cacheInterceptorId = DEFAULT_CACHE_INTERCEPTOR_ID;
    }

    BeanDefinitionHolder holder = new BeanDefinitionHolder(definition, this.cacheInterceptorId);

    BeanDefinitionReaderUtils.registerBeanDefinition(holder, parserContext.getRegistry());
}

From source file:com.dianping.avatar.cache.spring.CacheBeanDefinitionParser.java

protected void registerCacheProxyBean(Element element, BeanDefinitionRegistry beanDefinitionRegistry,
        GenericBeanDefinition cacheDefinition) {
    GenericBeanDefinition definition = new GenericBeanDefinition();
    definition.setBeanClass(org.springframework.aop.framework.ProxyFactoryBean.class);
    String cacheProxyId = cacheServiceProxyId;
    definition.getPropertyValues().addPropertyValue("interceptorNames", new String[] { "monitorInterceptor" });
    definition.getPropertyValues().addPropertyValue("target", cacheDefinition);
    BeanDefinitionHolder holder = new BeanDefinitionHolder(definition, cacheProxyId);
    BeanDefinitionReaderUtils.registerBeanDefinition(holder, beanDefinitionRegistry);
}

From source file:com.dianping.avatar.cache.spring.CacheBeanDefinitionParser.java

/**
 * Register {@link XMLCacheClientFactory} definition
 *///from  w w  w.j a v  a  2  s.  com
private void registerDefaultCacheClientFactory(BeanDefinitionRegistry beanDefinitionRegistry) {
    GenericBeanDefinition definition = new GenericBeanDefinition();
    definition.setBeanClass(RemoteCacheClientFactory.class);
    definition.setLazyInit(true);
    MutablePropertyValues propertyValues = definition.getPropertyValues();
    propertyValues.addPropertyValue("configurationWebService",
            new RuntimeBeanReference(CACHE_CONFIGURATION_WEB_SERVICE_ID));
    BeanDefinitionReaderUtils.registerBeanDefinition(
            new BeanDefinitionHolder(definition, DEFAULT_CACHE_CLIENT_FACTORY_ID), beanDefinitionRegistry);
}

From source file:test.pl.chilldev.web.spring.config.StylesheetBeanDefinitionParserTest.java

@Test
public void parse() {
    GenericBeanDefinition bean = new GenericBeanDefinition();
    StylesheetBeanDefinitionParser parser = new StylesheetBeanDefinitionParser(bean);

    String href = "foo.css";
    String type = "text/css";
    String media = "print";

    when(this.element.getAttribute("href")).thenReturn(href);
    when(this.element.hasAttribute("media")).thenReturn(true);
    when(this.element.getAttribute("media")).thenReturn(media);
    when(this.element.hasAttribute("type")).thenReturn(true);
    when(this.element.getAttribute("type")).thenReturn(type);

    parser.parse(this.element, null);

    List<BeanDefinition> stylesheets = (List<BeanDefinition>) bean.getPropertyValues()
            .getPropertyValue(StylesheetBeanDefinitionParser.PROPERTY_STYLESHEETS).getValue();
    BeanDefinition stylesheet = stylesheets.get(0);
    ConstructorArgumentValues arguments = stylesheet.getConstructorArgumentValues();

    assertEquals("StylesheetBeanDefinitionParser.parse() should register stylesheet with it's location.", href,
            arguments.getIndexedArgumentValue(0, null).getValue());
    assertEquals("StylesheetBeanDefinitionParser.parse() should register stylesheet with it's MIME type.", type,
            arguments.getIndexedArgumentValue(1, null).getValue());
    assertEquals("StylesheetBeanDefinitionParser.parse() should register stylesheet with it's media query.",
            media, arguments.getIndexedArgumentValue(2, null).getValue());
}

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

/**
 * Calls the parent search that will search and register all the candidates.
 * Then the registered objects are post processed to set them as
 * MapperFactoryBeans//  w w  w . j  ava2  s . c o  m
 */
@Override
public Set<BeanDefinitionHolder> doScan(String... basePackages) {
    Set<BeanDefinitionHolder> beanDefinitions = super.doScan(basePackages);

    if (beanDefinitions.isEmpty()) {
        logger.warn("No MyBatis mapper was found in '" + Arrays.toString(basePackages)
                + "' package. Please check your configuration.");
    } else {
        for (BeanDefinitionHolder holder : beanDefinitions) {
            GenericBeanDefinition definition = (GenericBeanDefinition) holder.getBeanDefinition();

            if (logger.isDebugEnabled()) {
                logger.debug("Creating MapperFactoryBean with name '" + holder.getBeanName() + "' and '"
                        + definition.getBeanClassName() + "' mapperInterface");
            }

            // the mapper interface is the original class of the bean
            // but, the actual class of the bean is MapperFactoryBean
            definition.getPropertyValues().add("mapperInterface", definition.getBeanClassName());
            definition.setBeanClass(MapperFactoryBean.class);

            definition.getPropertyValues().add("addToConfig", this.addToConfig);

            boolean explicitFactoryUsed = false;
            if (StringUtils.hasText(this.sqlSessionFactoryBeanName)) {
                definition.getPropertyValues().add("sqlSessionFactory",
                        new RuntimeBeanReference(this.sqlSessionFactoryBeanName));
                explicitFactoryUsed = true;
            } else if (this.sqlSessionFactory != null) {
                definition.getPropertyValues().add("sqlSessionFactory", this.sqlSessionFactory);
                explicitFactoryUsed = true;
            }

            if (StringUtils.hasText(this.sqlSessionTemplateBeanName)) {
                if (explicitFactoryUsed) {
                    logger.warn(
                            "Cannot use both: sqlSessionTemplate and sqlSessionFactory together. sqlSessionFactory is ignored.");
                }
                definition.getPropertyValues().add("sqlSessionTemplate",
                        new RuntimeBeanReference(this.sqlSessionTemplateBeanName));
                definition.getPropertyValues().add("sqlSessionFactory", null);
            } else if (this.sqlSessionTemplate != null) {
                if (explicitFactoryUsed) {
                    logger.warn(
                            "Cannot use both: sqlSessionTemplate and sqlSessionFactory together. sqlSessionFactory is ignored.");
                }
                definition.getPropertyValues().add("sqlSessionTemplate", this.sqlSessionTemplate);
                definition.getPropertyValues().add("sqlSessionFactory", null);
            }
        }
    }

    return beanDefinitions;
}

From source file:com.dianping.avatar.cache.spring.CacheBeanDefinitionParser.java

/**
 * @param parserContext//from  w w w  . j  a  v  a 2  s . c o m
 * @param serviceName TODO
 * @param serviceInterface TODO
 */
private void registerCacheWebService(BeanDefinitionRegistry beanDefinitionRegistry, String beanName,
        String serviceName, String serviceInterface, boolean isOneWay) {
    GenericBeanDefinition definition = new GenericBeanDefinition();
    definition.setBeanClassName("com.dianping.dpsf.spring.ProxyBeanFactory");
    definition.setLazyInit(true);
    definition.setInitMethodName("init");
    MutablePropertyValues propertyValues = definition.getPropertyValues();
    propertyValues.addPropertyValue("serviceName", serviceName);
    propertyValues.addPropertyValue("iface", serviceInterface);
    propertyValues.addPropertyValue("serialize", "hessian");
    propertyValues.addPropertyValue("callMethod", isOneWay ? "oneway" : "sync");
    propertyValues.addPropertyValue("timeout", "10000");
    propertyValues.addPropertyValue("hosts", getRemoteService());
    BeanDefinitionReaderUtils.registerBeanDefinition(new BeanDefinitionHolder(definition, beanName),
            beanDefinitionRegistry);
}

From source file:com.dianping.avatar.cache.spring.CacheBeanDefinitionParser.java

/**
 * @param parserContext/*from   www. j a va2 s  .c om*/
 * 
 */
private void registerDefaultCacheItemConfigManager(BeanDefinitionRegistry beanDefinitionRegistry) {
    GenericBeanDefinition definition = new GenericBeanDefinition();
    definition.setBeanClass(RemoteCacheItemConfigManager.class);
    // lazy init because default CacheItemConfigManager is not required
    definition.setLazyInit(true);
    MutablePropertyValues propertyValues = definition.getPropertyValues();
    propertyValues.addPropertyValue("configurationWebService",
            new RuntimeBeanReference(CACHE_CONFIGURATION_WEB_SERVICE_ID));
    BeanDefinitionReaderUtils.registerBeanDefinition(
            new BeanDefinitionHolder(definition, DEFAULT_ITEM_CONFIG_MANAGER_ID), beanDefinitionRegistry);
}

From source file:com.comstar.mars.env.EnvClassPathMapperScanner.java

/**
 * Calls the parent search that will search and register all the candidates.
 * Then the registered objects are post processed to set them as
 * MapperFactoryBeans/*from   w w w  .j av a  2  s .c o  m*/
 */
@Override
public Set<BeanDefinitionHolder> doScan(String... basePackages) {
    Set<BeanDefinitionHolder> beanDefinitions = super.doScan(basePackages);

    if (beanDefinitions.isEmpty()) {
        logger.warn("No MyBatis mapper was found in '" + Arrays.toString(basePackages)
                + "' package. Please check your configuration.");
    } else {
        for (BeanDefinitionHolder holder : beanDefinitions) {
            GenericBeanDefinition definition = (GenericBeanDefinition) holder.getBeanDefinition();

            if (logger.isDebugEnabled()) {
                logger.debug("Creating MapperFactoryBean with name '" + holder.getBeanName() + "' and '"
                        + definition.getBeanClassName() + "' mapperInterface");
            }

            // the mapper interface is the original class of the bean
            // but, the actual class of the bean is MapperFactoryBean
            definition.getPropertyValues().add("mapperInterface", definition.getBeanClassName());
            definition.setBeanClass(EnvMapperFactoryBean.class);

            boolean explicitFactoryUsed = false;
            if (StringUtils.hasText(this.sqlSessionFactoryBeanName)) {
                definition.getPropertyValues().add("sqlSessionFactory",
                        new RuntimeBeanReference(this.sqlSessionFactoryBeanName));
                explicitFactoryUsed = true;
            } else if (this.sqlSessionFactory != null) {
                definition.getPropertyValues().add("sqlSessionFactory", this.sqlSessionFactory);
                explicitFactoryUsed = true;
            }

            if (StringUtils.hasText(this.sqlSessionTemplateBeanName)) {
                if (explicitFactoryUsed) {
                    logger.warn(
                            "Cannot use both: sqlSessionTemplate and sqlSessionFactory together. sqlSessionFactory is ignored.");
                }
                definition.getPropertyValues().add("sqlSessionTemplate",
                        new RuntimeBeanReference(this.sqlSessionTemplateBeanName));
                explicitFactoryUsed = true;
            } else if (this.sqlSessionTemplate != null) {
                if (explicitFactoryUsed) {
                    logger.warn(
                            "Cannot use both: sqlSessionTemplate and sqlSessionFactory together. sqlSessionFactory is ignored.");
                }
                definition.getPropertyValues().add("sqlSessionTemplate", this.sqlSessionTemplate);
                explicitFactoryUsed = true;
            }

            if (!explicitFactoryUsed) {
                if (logger.isDebugEnabled()) {
                    logger.debug("Enabling autowire by type for MapperFactoryBean with name '"
                            + holder.getBeanName() + "'.");
                }
                definition.setAutowireMode(AbstractBeanDefinition.AUTOWIRE_BY_TYPE);
            }
        }
    }

    return beanDefinitions;
}

From source file:test.pl.chilldev.web.spring.config.LinkBeanDefinitionParserTest.java

@Test
public void parse() {
    GenericBeanDefinition bean = new GenericBeanDefinition();
    LinkBeanDefinitionParser parser = new LinkBeanDefinitionParser(bean);

    String href = "blog.rss";
    String media = "print";
    String type = "application/rss+xml";

    when(this.element.getAttribute("href")).thenReturn(href);
    when(this.element.hasAttribute("media")).thenReturn(true);
    when(this.element.getAttribute("media")).thenReturn(media);
    when(this.element.hasAttribute("type")).thenReturn(true);
    when(this.element.getAttribute("type")).thenReturn(type);

    parser.parse(this.element, null);

    List<BeanDefinition> links = (List<BeanDefinition>) bean.getPropertyValues()
            .getPropertyValue(LinkBeanDefinitionParser.PROPERTY_LINKS).getValue();
    BeanDefinition link = links.get(0);/*from   w ww  .jav a  2 s. c  o  m*/
    ConstructorArgumentValues arguments = link.getConstructorArgumentValues();

    assertEquals("LinkBeanDefinitionParser.parse() should register link with it's location.", href,
            arguments.getIndexedArgumentValue(0, null).getValue());
    assertTrue("LinkBeanDefinitionParser.parse() should register link with all it's relations.",
            ((Set) (arguments.getIndexedArgumentValue(1, null).getValue())).contains(this.relation));
    assertEquals("LinkBeanDefinitionParser.parse() should register link with it's MIME type.", type,
            arguments.getIndexedArgumentValue(2, null).getValue());
    assertEquals("LinkBeanDefinitionParser.parse() should register link with it's media query.", media,
            arguments.getIndexedArgumentValue(3, null).getValue());
}