Example usage for org.springframework.beans.factory.config ConstructorArgumentValues addGenericArgumentValue

List of usage examples for org.springframework.beans.factory.config ConstructorArgumentValues addGenericArgumentValue

Introduction

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

Prototype

public void addGenericArgumentValue(ValueHolder newValue) 

Source Link

Document

Add a generic argument value to be matched by type or name (if available).

Usage

From source file:hudson.util.spring.DefaultBeanConfiguration.java

protected AbstractBeanDefinition createBeanDefinition() {
    AbstractBeanDefinition bd;// w ww.j a v  a  2s. c  o m
    if (constructorArgs.size() > 0) {
        ConstructorArgumentValues cav = new ConstructorArgumentValues();
        for (Object constructorArg : constructorArgs) {
            cav.addGenericArgumentValue(constructorArg);
        }
        if (StringUtils.isBlank(parentName)) {
            bd = new RootBeanDefinition(clazz, cav, null);
        } else {
            bd = new ChildBeanDefinition(parentName, clazz, cav, null);
        }
        bd.setSingleton(singleton);
    } else {
        if (StringUtils.isBlank(parentName)) {
            bd = new RootBeanDefinition(clazz, singleton);
        } else {
            bd = new ChildBeanDefinition(parentName, clazz, null, null);
            bd.setSingleton(singleton);
        }

    }
    wrapper = new BeanWrapperImpl(bd);
    return bd;
}

From source file:hudson.util.spring.DefaultBeanConfiguration.java

public void setProperty(String property, Object newValue) {
    if (PARENT.equals(property)) {
        setParent(newValue);/*from  w w w.  ja  v a  2 s .  c o m*/
    } else {
        AbstractBeanDefinition bd = getBeanDefinition();
        if (AUTOWIRE.equals(property)) {
            if (BY_NAME.equals(newValue)) {
                bd.setAutowireMode(AutowireCapableBeanFactory.AUTOWIRE_BY_NAME);
            } else if (BY_TYPE.equals(newValue)) {
                bd.setAutowireMode(AutowireCapableBeanFactory.AUTOWIRE_BY_TYPE);
            } else if (Boolean.TRUE.equals(newValue)) {
                bd.setAutowireMode(AutowireCapableBeanFactory.AUTOWIRE_BY_NAME);
            } else if (BY_CONSTRUCTOR.equals(newValue)) {
                bd.setAutowireMode(AutowireCapableBeanFactory.AUTOWIRE_CONSTRUCTOR);
            }
        }
        // constructorArgs
        else if (CONSTRUCTOR_ARGS.equals(property) && newValue instanceof List) {
            ConstructorArgumentValues cav = new ConstructorArgumentValues();
            List args = (List) newValue;
            for (Object e : args) {
                cav.addGenericArgumentValue(e);
            }
            bd.setConstructorArgumentValues(cav);
        }
        // destroyMethod
        else if (DESTROY_METHOD.equals(property)) {
            if (newValue != null)
                bd.setDestroyMethodName(newValue.toString());
        }
        // factoryBean
        else if (FACTORY_BEAN.equals(property)) {
            if (newValue != null)
                bd.setFactoryBeanName(newValue.toString());
        }
        // factoryMethod
        else if (FACTORY_METHOD.equals(property)) {
            if (newValue != null)
                bd.setFactoryMethodName(newValue.toString());
        }
        // initMethod
        else if (INIT_METHOD.equals(property)) {
            if (newValue != null)
                bd.setInitMethodName(newValue.toString());
        } else if (wrapper.isWritableProperty(property)) {

            wrapper.setPropertyValue(property, newValue);
        }
        // autowire
        else {
            super.setProperty(property, newValue);
        }
    }
}

From source file:org.atomserver.utils.test.TestingAtomServer.java

private Server createServer(int port, String atomserverServletContext) {
    // set up the server and the atomserver web application context
    Server server = new Server(port);
    Context context = new Context(server, "/" + atomserverServletContext, true /*sessions*/,
            false /*no security*/);

    // we need to hard-code certain system properties to get the behavior we want here - we
    // will re-set them when we're done
    Properties properties = (Properties) System.getProperties().clone();
    System.setProperty("atomserver.env", "asdev-hsql-mem");
    System.setProperty("atomserver.servlet.context", atomserverServletContext);

    // TODO: this should be removed
    System.setProperty("atomserver.servlet.mapping", "v1");

    // our Spring application context will start off by loading the basic built-in bean
    // definitions
    appContext = new GenericWebApplicationContext();

    XmlBeanDefinitionReader xmlReader = new XmlBeanDefinitionReader(appContext);
    xmlReader.loadBeanDefinitions(new ClassPathResource("org/atomserver/spring/propertyConfigurerBeans.xml"));
    xmlReader.loadBeanDefinitions(new ClassPathResource("org/atomserver/spring/databaseBeans.xml"));
    xmlReader.loadBeanDefinitions(new ClassPathResource("org/atomserver/spring/logBeans.xml"));
    xmlReader.loadBeanDefinitions(new ClassPathResource("org/atomserver/spring/storageBeans.xml"));
    xmlReader.loadBeanDefinitions(new ClassPathResource("org/atomserver/spring/abderaBeans.xml"));

    // if we were given a Spring config location, we use that -- otherwise we configure the
    // workspaces that were set up through the API
    if (springBeansLocation != null) {
        xmlReader.loadBeanDefinitions(new ClassPathResource(springBeansLocation));
    } else {/*from ww w.j av a 2 s  .com*/
        RootBeanDefinition workspaces = new RootBeanDefinition(HashSet.class);
        ConstructorArgumentValues constructorArgumentValues = new ConstructorArgumentValues();
        constructorArgumentValues.addGenericArgumentValue(workspaceSet);
        workspaces.setConstructorArgumentValues(constructorArgumentValues);

        appContext.registerBeanDefinition("org.atomserver-workspaces", workspaces);
    }

    // override the base content storage to use DB-based storage
    RootBeanDefinition storage = new RootBeanDefinition(DBBasedContentStorage.class);
    MutablePropertyValues propertyValues = new MutablePropertyValues();
    propertyValues.addPropertyValue("contentDAO", new RuntimeBeanReference("org.atomserver-contentDAO"));
    propertyValues.addPropertyValue("entriesDAO", new RuntimeBeanReference("org.atomserver-entriesDAO"));
    storage.setPropertyValues(propertyValues);
    appContext.registerBeanDefinition("org.atomserver-contentStorage", storage);

    // clear the existing ENV
    ConfigurationAwareClassLoader.invalidateENV();

    // refresh the context to actually instantiate everything.
    appContext.refresh();

    // re-set the system properties
    System.setProperties(properties);

    // clear the update ENV
    ConfigurationAwareClassLoader.invalidateENV();

    // put our app context into the servlet context
    context.setAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, appContext);

    // load and init the service context for v1
    final ServiceContext serviceContext = (ServiceContext) appContext.getBean(ServiceContext.class.getName());
    serviceContext.init(new Abdera(), Collections.EMPTY_MAP);

    // create a new AtomServerServlet - but override the createServiceContext method
    AtomServerServlet servlet = new AtomServerServlet() {
        protected ServiceContext createServiceContext() {
            return serviceContext;
        }
    };

    // load and init the service context for v2
    final ServiceContext serviceContextV2 = (ServiceContext) appContext
            .getBean("org.atomserver-serviceContext.v2");
    serviceContextV2.init(new Abdera(), Collections.EMPTY_MAP);

    // create a new AtomServerServlet - but override the createServiceContext method
    AtomServerServlet servletV2 = new AtomServerServlet() {
        protected ServiceContext createServiceContext() {
            return serviceContextV2;
        }
    };

    // register the servlets
    context.addServlet(new ServletHolder(servlet), "/v1/*");
    context.addServlet(new ServletHolder(servletV2), "/v2/*");

    EntriesDAOiBatisImpl entriesDAO = (EntriesDAOiBatisImpl) appContext.getBean("org.atomserver-entriesDAO");
    entriesDAO.setUseWorkspaceCollectionCache(false);

    // ready to be started
    return server;
}

From source file:org.solmix.runtime.support.spring.ContainerPostProcessor.java

private void insertConstructorArg(ConstructorArgumentValues constructorArgs, Object valueToInsert) {
    List<ValueHolder> genericArgs = new ArrayList<ValueHolder>((constructorArgs.getGenericArgumentValues()));
    Map<Integer, ValueHolder> indexedArgs = new HashMap<Integer, ValueHolder>(
            constructorArgs.getIndexedArgumentValues());

    constructorArgs.clear();/*from   w w  w .ja  v  a2s . co  m*/
    for (ValueHolder genericValue : genericArgs) {
        constructorArgs.addGenericArgumentValue(genericValue);
    }
    for (Map.Entry<Integer, ValueHolder> entry : indexedArgs.entrySet()) {
        constructorArgs.addIndexedArgumentValue(entry.getKey() + 1, entry.getValue());
    }
    constructorArgs.addIndexedArgumentValue(0, valueToInsert);
}

From source file:net.firejack.platform.model.config.hibernate.HibernateFactoryBean.java

private void buildHibernateTransactionManager() {
    for (Map.Entry<String, Database> entry : databases.entrySet()) {
        String name = entry.getKey();
        Database database = entry.getValue();

        BasicDataSource dataSource = null;
        try {//from   w  w w .  j  av  a  2s  . co  m
            dataSource = context.getBean(name + HIBERNATE_DATA_SOURCE_SUFFIX, BasicDataSource.class);
        } catch (BeansException e) {
            logger.info("Manual Hibernate DataSource: " + name + HIBERNATE_DATA_SOURCE_SUFFIX
                    + " not found use default");
        }

        if (dataSource == null) {
            dataSource = defaultHibernate.getBean(HIBERNATE_DEFAULT_PREFIX + HIBERNATE_DATA_SOURCE_SUFFIX,
                    BasicDataSource.class);
            dataSource.setDriverClassName(database.type.getDriver());
            dataSource.setUrl(database.getUrl());
            dataSource.setUsername(database.getUsername());
            dataSource.setPassword(database.getPassword());
            dataSource.setValidationQuery(database.getType().getValidate());

            context.getBeanFactory().registerSingleton(name + HIBERNATE_DATA_SOURCE_SUFFIX, dataSource);
        }

        Properties properties = null;
        try {
            properties = context.getBean(name + HIBERNATE_PROPERTIES_SUFFIX, Properties.class);
        } catch (BeansException e) {
            logger.info("Manual Hibernate properties: " + name + HIBERNATE_PROPERTIES_SUFFIX
                    + " not found use default");
        }

        if (properties == null) {
            properties = defaultHibernate.getBean(HIBERNATE_DEFAULT_PREFIX + HIBERNATE_PROPERTIES_SUFFIX,
                    Properties.class);
            properties.put(Environment.DIALECT, database.getType().getDialect());

            context.getBeanFactory().registerSingleton(name + HIBERNATE_PROPERTIES_SUFFIX, properties);
        }

        SessionFactory sessionFactory = null;
        try {
            sessionFactory = context.getBean(name + HIBERNATE_SESSION_FACTORY_SUFFIX, SessionFactory.class);
        } catch (BeansException e) {
            logger.info("Manual Hibernate Session Factory: " + name + HIBERNATE_SESSION_FACTORY_SUFFIX
                    + " not found use default");
        }

        if (sessionFactory == null) {
            try {
                AnnotationSessionFactoryBean annotationSessionFactoryBean = new AnnotationSessionFactoryBean();
                annotationSessionFactoryBean.setAnnotatedClasses(new Class[] { BaseEntityModel.class });
                annotationSessionFactoryBean.setDataSource(dataSource);
                annotationSessionFactoryBean.setHibernateProperties(properties);
                annotationSessionFactoryBean.setPackagesToScan(database.getScanPackages());
                annotationSessionFactoryBean.setNamingStrategy(new OpenFlameNamingStrategy(database.getType()));

                if (database.getType() == DatabaseName.MySQL || database.getType() == DatabaseName.MSSQL) {
                    annotationSessionFactoryBean.setLobHandler(new DefaultLobHandler());
                } else if (database.getType() == DatabaseName.Oracle) {
                    annotationSessionFactoryBean.setLobHandler(new OracleLobHandler());
                }

                disposableBeans.add(annotationSessionFactoryBean);
                annotationSessionFactoryBean.afterPropertiesSet();
                sessionFactory = annotationSessionFactoryBean.getObject();
            } catch (Exception e) {
                logger.error(e, e);
            }
        }

        HibernateTemplate template = new HibernateTemplate();
        template.setSessionFactory(sessionFactory);

        context.getBeanFactory().registerSingleton(name + HIBERNATE_TEMPLATE_PREFIX, template);
        database.setHibernateSupport(template);
        logger.info("Initialize Hibernate support for stories: " + database);

        String beanName = name + HIBERNATE_TRANSACTION_MANAGER_SUFFIX;

        ConstructorArgumentValues values = new ConstructorArgumentValues();
        values.addGenericArgumentValue(sessionFactory);

        RootBeanDefinition definition = new RootBeanDefinition(HibernateTransactionManager.class);
        definition.setConstructorArgumentValues(values);
        registers.put(beanName, definition);

        Collection<HibernateSupport> stores = database.getStores();
        for (HibernateSupport store : stores) {
            targets.put(((Advised) store).getTargetClass(), beanName);
        }
    }
}

From source file:net.firejack.platform.model.config.hibernate.HibernateFactoryBean.java

private void buildXAHibernateTransactionManager() {
    if (xaDatabases.size() == 0)
        return;//from  w  ww .j a v  a2 s.co m

    String beanName = XA + HIBERNATE_TRANSACTION_MANAGER_SUFFIX;

    for (Map.Entry<String, Database> entry : xaDatabases.entrySet()) {
        String name = entry.getKey();
        Database database = entry.getValue();

        AtomikosDataSourceBean dataSource = null;
        try {
            dataSource = context.getBean(name + HIBERNATE_DATA_SOURCE_SUFFIX, AtomikosDataSourceBean.class);
        } catch (BeansException e) {
            logger.info("Manual XA Hibernate DataSource: " + name + HIBERNATE_DATA_SOURCE_SUFFIX
                    + " not found use default");
        }

        if (dataSource == null) {
            try {
                dataSource = defaultHibernate.getBean(
                        HIBERNATE_DEFAULT_PREFIX + XA + HIBERNATE_DATA_SOURCE_SUFFIX,
                        AtomikosDataSourceBean.class);
                dataSource.setUniqueResourceName(name);
                dataSource.setXaDataSourceClassName(database.getType().getXads());
                dataSource.setTestQuery(database.getType().getValidate());
                Properties xaProperties = new Properties();
                xaProperties.put("URL", database.getUrl());
                xaProperties.put("user", database.getUsername());
                xaProperties.put("password", database.getPassword());
                if (database.getType() == DatabaseName.MySQL) {
                    xaProperties.put("pinGlobalTxToPhysicalConnection", true);
                }
                dataSource.setXaProperties(xaProperties);
                dataSource.init();

                context.getBeanFactory().registerSingleton(name + HIBERNATE_DATA_SOURCE_SUFFIX, dataSource);
            } catch (AtomikosSQLException e) {
                logger.error(e, e);
            }
        }

        Properties properties = null;
        try {
            properties = context.getBean(name + HIBERNATE_PROPERTIES_SUFFIX, Properties.class);
        } catch (BeansException e) {
            logger.info("Manual XA Hibernate properties: " + name + HIBERNATE_PROPERTIES_SUFFIX
                    + " not found use default");
        }

        if (properties == null) {
            properties = defaultHibernate.getBean(HIBERNATE_DEFAULT_PREFIX + HIBERNATE_PROPERTIES_SUFFIX,
                    Properties.class);
            properties.put(Environment.DIALECT, database.getType().getDialect());
            properties.put(Environment.TRANSACTION_STRATEGY, TRANSACTION_STRATEGY);
            properties.put(Environment.TRANSACTION_MANAGER_STRATEGY, TRANSACTION_MANAGER_STRATEGY);

            context.getBeanFactory().registerSingleton(name + HIBERNATE_PROPERTIES_SUFFIX, properties);
        }

        SessionFactory sessionFactory = null;
        try {
            sessionFactory = context.getBean(name + HIBERNATE_SESSION_FACTORY_SUFFIX, SessionFactory.class);
        } catch (BeansException e) {
            logger.info("Manual XA Hibernate Session Factory: " + name + HIBERNATE_SESSION_FACTORY_SUFFIX
                    + " not found use default");
        }

        if (sessionFactory == null) {
            try {
                AnnotationSessionFactoryBean annotationSessionFactoryBean = new AnnotationSessionFactoryBean();
                annotationSessionFactoryBean.setAnnotatedClasses(new Class[] { BaseEntityModel.class });
                annotationSessionFactoryBean.setDataSource(dataSource);
                annotationSessionFactoryBean.setHibernateProperties(properties);
                annotationSessionFactoryBean.setPackagesToScan(database.getScanPackages());
                annotationSessionFactoryBean.setNamingStrategy(new OpenFlameNamingStrategy(database.getType()));

                if (database.getType() == DatabaseName.MySQL || database.getType() == DatabaseName.MSSQL) {
                    annotationSessionFactoryBean.setLobHandler(new DefaultLobHandler());
                } else if (database.getType() == DatabaseName.Oracle) {
                    annotationSessionFactoryBean.setLobHandler(new OracleLobHandler());
                }

                disposableBeans.add(annotationSessionFactoryBean);
                annotationSessionFactoryBean.afterPropertiesSet();
                sessionFactory = annotationSessionFactoryBean.getObject();
            } catch (Exception e) {
                logger.error(e, e);
            }

            Collection<HibernateSupport> stores = database.getStores();
            for (HibernateSupport store : stores) {
                targets.put(((Advised) store).getTargetClass(), beanName);
            }
        }

        HibernateTemplate template = new HibernateTemplate();
        template.setSessionFactory(sessionFactory);

        context.getBeanFactory().registerSingleton(HIBERNATE_TEMPLATE_PREFIX + name, template);
        database.setHibernateSupport(template);
        logger.info("Initialize Hibernate :" + HIBERNATE_TEMPLATE_PREFIX + name + " for stories:" + database);
    }

    ConstructorArgumentValues values = new ConstructorArgumentValues();
    values.addGenericArgumentValue(new UserTransactionImp());
    values.addGenericArgumentValue(new UserTransactionManager());

    RootBeanDefinition definition = new RootBeanDefinition(JtaTransactionManager.class);
    definition.setConstructorArgumentValues(values);
    registers.put(beanName, definition);
}

From source file:com.cloudseal.spring.client.namespace.CloudSealBeanDefinitionParserInstance.java

private BeanDefinition createMetadataGeneratorFilter() {
    BeanDefinitionBuilder generator = createBean(CloudSealMetadataGenerator.class);
    /*/*  w w w  .j  a  v a  2  s.  co m*/
     * When first request is performed, metadata generator will generate
     * service provider metadata which will contain supported bindings. By
     * default it will add all bindings to metadata and select a first one
     * to put into request unless there is assertionConsumerIndex set
     * pointing at the preferred binding method. CloudSeal IDP supports POST
     * binding and it is NOT the one metadata generator will select by default.
     * So we pass the assertionConsumerIndex parameter, but it will break if the 
     * order of bindings will change in future versions.
     */
    generator.addPropertyValue("assertionConsumerIndex", 1);
    generator.addPropertyValue("includeDiscovery", false);
    BeanDefinition generatorBean = generator.getBeanDefinition();
    registerBean(generatorBean);

    ConstructorArgumentValues constructorArgs = new ConstructorArgumentValues();
    constructorArgs.addGenericArgumentValue(generatorBean);

    BeanDefinition bean = getExistingOrCreateBean(getAttribute(ROOT_METADATA_GENERATOR_FILTER_REF_ATTRIBUTE),
            MetadataGeneratorFilter.class);
    bean.getConstructorArgumentValues().addArgumentValues(constructorArgs);
    return bean;
}

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

/**
 * Register {@link CacheService} definition.
 * DefaultCacheServiceProxy delegates the DefaultCacheService on behalf of the cache hit-rate statistics.
 *///from  ww w . j  a  v a 2  s.  com
protected GenericBeanDefinition initCacheServiceDefinition(Element element,
        BeanDefinitionRegistry beanDefinitionRegistry) {
    GenericBeanDefinition cacheDefinition = new GenericBeanDefinition();
    cacheDefinition.setBeanClass(DefaultCacheService.class);
    cacheDefinition.setAutowireCandidate(false);
    //JDK proxy not available, as the objects are managed by the Spring IOC
    /*        DefaultCacheService cacheServiceProxy = (DefaultCacheService)Proxy.newProxyInstance(DefaultCacheService.class.getClassLoader(),new Class<?>[]{DefaultCacheService.class}, new CacheServiceInvokerHandler());
            definition.setBeanClass(cacheServiceProxy.getClass());*/

    cacheServiceId = element.getAttribute(CACHE_SERVICE_ID_ATTR);

    if (!StringUtils.hasText(cacheServiceId)) {
        cacheServiceId = DEFAULT_CACHE_SERVICE_ID;
    }

    // Add reference to CacheFactory
    ConstructorArgumentValues constructorArgumentValues = cacheDefinition.getConstructorArgumentValues();

    String cacheClientFactoryId = element.getAttribute(CACHE_CLIENT_FACTORY_ID_ATTR);
    cacheItemConfigManager = element.getAttribute(CACHE_ITEM_MANAGER_ID_ATTR);
    if (!StringUtils.hasText(cacheClientFactoryId) || !StringUtils.hasText(cacheItemConfigManager)) {
        registerCacheRelatedWebService(beanDefinitionRegistry);
    }

    if (!StringUtils.hasText(cacheClientFactoryId)) {
        cacheClientFactoryId = DEFAULT_CACHE_CLIENT_FACTORY_ID;
        // Register default cache client factory
        registerDefaultCacheClientFactory(beanDefinitionRegistry);
    }
    constructorArgumentValues.addGenericArgumentValue(new RuntimeBeanReference(cacheClientFactoryId));
    constructorArgumentValues
            .addGenericArgumentValue(new RuntimeBeanReference(ONEWAY_CACHE_MANAGE_WEB_SERVICE_ID));

    if (!StringUtils.hasText(cacheItemConfigManager)) {
        cacheItemConfigManager = DEFAULT_ITEM_CONFIG_MANAGER_ID;
        // Register default cache item config manager
        registerDefaultCacheItemConfigManager(beanDefinitionRegistry);
    }
    constructorArgumentValues.addGenericArgumentValue(new RuntimeBeanReference(cacheItemConfigManager));

    return cacheDefinition;

    /*        BeanDefinitionHolder holder = new BeanDefinitionHolder(cacheDefinition, this.cacheServiceId);
            
            BeanDefinitionReaderUtils.registerBeanDefinition(holder, beanDefinitionRegistry);*/
}

From source file:ome.client.utests.Preferences3Test.java

@Test
public void test_makeOurOwnDefault() throws Exception {
    // Others:// ww  w.j a  v  a2s . c  om
    // new ManagedMap();
    // BeanWrapper bw = new BeanWrapperImpl( defaultMap );

    Map defaultMap = new HashMap();
    defaultMap.put("omero.user", "foo");
    ConstructorArgumentValues cav = new ConstructorArgumentValues();
    cav.addGenericArgumentValue(defaultMap);
    BeanDefinition def = new RootBeanDefinition(HashMap.class, cav, null);
    StaticApplicationContext ac = new StaticApplicationContext();
    ac.registerBeanDefinition("map", def);
    ac.refresh();

    ConstructorArgumentValues testCav = new ConstructorArgumentValues();
    testCav.addGenericArgumentValue(new RuntimeBeanReference("map"));
    BeanDefinition testDef = new RootBeanDefinition(HashMap.class, testCav, null);
    StaticApplicationContext defaultTest = new StaticApplicationContext(ac);
    defaultTest.registerBeanDefinition("test", testDef);
    defaultTest.refresh();
    assertTrue("foo".equals(((Map) defaultTest.getBean("test")).get("omero.user")));

}

From source file:ome.client.utests.Preferences3Test.java

@Test
public void test_makeOurOwnRuntime() throws Exception {

    // use properties
    // if no Properties given, then is static (global)

    Map runtimeMap = new HashMap();
    runtimeMap.put("omero.user", "bar");
    ConstructorArgumentValues cav2 = new ConstructorArgumentValues();
    cav2.addGenericArgumentValue(runtimeMap);
    BeanDefinition def2 = new RootBeanDefinition(HashMap.class, cav2, null);
    StaticApplicationContext ac2 = new StaticApplicationContext();
    ac2.registerBeanDefinition("map", def2);
    ac2.refresh();// w  w  w  .j  a va  2  s .  c o m

    ConstructorArgumentValues testCav2 = new ConstructorArgumentValues();
    testCav2.addGenericArgumentValue(new RuntimeBeanReference("map"));
    BeanDefinition testDef2 = new RootBeanDefinition(HashMap.class, testCav2, null);
    StaticApplicationContext defaultTest2 = new StaticApplicationContext(ac2);
    defaultTest2.registerBeanDefinition("test", testDef2);
    defaultTest2.refresh();
    assertTrue("bar".equals(((Map) defaultTest2.getBean("test")).get("omero.user")));

}