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:com.googlecode.shutdownlistener.spring.ApplicationContextShutdownWrapper.java

public ApplicationContextShutdownWrapper(ApplicationContext applicationContext) {
    Assert.notNull(applicationContext, "ApplicationContext cannot be null");
    this.applicationContext = applicationContext;
    if (!(applicationContext instanceof DisposableBean)) {
        throw new IllegalArgumentException("The provided BeanFactory must implement DisposableBean");
    }/* w ww.  j a va  2 s .c  o  m*/
    this.disposableBean = (DisposableBean) this.applicationContext;

    ShutdownHandler shutdownHandler = null;
    try {
        shutdownHandler = this.applicationContext.getBean(ShutdownHandlerBean.class);
    } catch (NoSuchBeanDefinitionException e) {
        //Ignore
    }

    if (shutdownHandler != null) {
        this.shutdownHandler = shutdownHandler;
        this.shutdownBeanFactory = null;
    } else {
        this.shutdownBeanFactory = new GenericApplicationContext(this.applicationContext);

        final GenericBeanDefinition shutdownBeanDefinition = new GenericBeanDefinition();
        shutdownBeanDefinition.setBeanClass(ShutdownHandlerBean.class);

        this.shutdownBeanFactory.registerBeanDefinition(ShutdownHandler.class.getName(),
                shutdownBeanDefinition);
        this.shutdownBeanFactory.refresh();

        this.shutdownHandler = this.shutdownBeanFactory.getBean(ShutdownHandler.class);
    }
}

From source file:pl.chilldev.web.spring.config.WebNamespaceHandler.java

/**
 * {@inheritDoc}//from  w  w  w  . ja  va  2 s. c  o  m
 * @since 0.0.1
 */
@Override
public void init() {
    // create bean instance that will be subject for all other settings
    GenericBeanDefinition pageMetaModelFactoryBean = new GenericBeanDefinition();
    pageMetaModelFactoryBean.setBeanClass(PageMetaModelFactoryBean.class);

    this.registerBeanDefinitionParser(WebNamespaceHandler.ELEMENT_HANDLEPAGEMODEL,
            new HandlePageModelBeanDefinitionParser(pageMetaModelFactoryBean));
    this.registerBeanDefinitionParser(WebNamespaceHandler.ELEMENT_XMLNS,
            new XmlnsBeanDefinitionParser(pageMetaModelFactoryBean));
    this.registerBeanDefinitionParser(WebNamespaceHandler.ELEMENT_TITLE,
            new TitleBeanDefinitionParser(pageMetaModelFactoryBean));
    this.registerBeanDefinitionParser(WebNamespaceHandler.ELEMENT_METANAME,
            new MetaNameBeanDefinitionParser(pageMetaModelFactoryBean));
    this.registerBeanDefinitionParser(WebNamespaceHandler.ELEMENT_METAHTTPEQUIV,
            new MetaHttpEquivBeanDefinitionParser(pageMetaModelFactoryBean));
    this.registerBeanDefinitionParser(WebNamespaceHandler.ELEMENT_METAPROPERTY,
            new MetaPropertyBeanDefinitionParser(pageMetaModelFactoryBean));
    this.registerBeanDefinitionParser(WebNamespaceHandler.ELEMENT_KEYWORDS,
            new MetaPropertyBeanDefinitionParser(pageMetaModelFactoryBean));
    this.registerBeanDefinitionParser(WebNamespaceHandler.ELEMENT_SCRIPT,
            new ScriptBeanDefinitionParser(pageMetaModelFactoryBean));
    this.registerBeanDefinitionParser(WebNamespaceHandler.ELEMENT_LINK,
            new LinkBeanDefinitionParser(pageMetaModelFactoryBean));
    this.registerBeanDefinitionParser(WebNamespaceHandler.ELEMENT_STYLESHEET,
            new StylesheetBeanDefinitionParser(pageMetaModelFactoryBean));
}

From source file:com.haulmont.cuba.core.sys.SpringBeanLoader.java

public void updateContext(Collection<Class> classes) {
    if (beanFactory != null) {
        boolean needToRefreshRemotingContext = false;
        for (Class clazz : classes) {
            Service serviceAnnotation = (Service) clazz.getAnnotation(Service.class);
            ManagedBean managedBeanAnnotation = (ManagedBean) clazz.getAnnotation(ManagedBean.class);
            Component componentAnnotation = (Component) clazz.getAnnotation(Component.class);
            Controller controllerAnnotation = (Controller) clazz.getAnnotation(Controller.class);

            String beanName = null;
            if (serviceAnnotation != null) {
                beanName = serviceAnnotation.value();
            } else if (managedBeanAnnotation != null) {
                beanName = managedBeanAnnotation.value();
            } else if (componentAnnotation != null) {
                beanName = componentAnnotation.value();
            } else if (controllerAnnotation != null) {
                beanName = controllerAnnotation.value();
            }/*from ww w .j a v a 2 s  .com*/

            if (StringUtils.isNotBlank(beanName)) {
                GenericBeanDefinition beanDefinition = new GenericBeanDefinition();
                beanDefinition.setBeanClass(clazz);
                Scope scope = (Scope) clazz.getAnnotation(Scope.class);
                if (scope != null) {
                    beanDefinition.setScope(scope.value());
                }

                beanFactory.registerBeanDefinition(beanName, beanDefinition);
            }

            if (StringUtils.isNotBlank(beanName)) {
                needToRefreshRemotingContext = true;
            }
        }

        if (needToRefreshRemotingContext) {
            ApplicationContext remotingContext = RemotingContextHolder.getRemotingApplicationContext();
            if (remotingContext != null && remotingContext instanceof ConfigurableApplicationContext) {
                ((ConfigurableApplicationContext) remotingContext).refresh();
            }
        }
    }
}

From source file:com.github.steveash.spring.WiringFactoryBeanFactoryPostProcessor.java

private void addPrototypeDef(ConfigurableListableBeanFactory beanFactory, String beanDefName,
        Class<?> protoBeanClass) {
    String beanName = getPrototypeBeanNameFromBeanClass(protoBeanClass);
    if (beanFactory.containsBeanDefinition(beanName)) {
        throw new BeanDefinitionValidationException("Trying to register a bean definition for a synthetic "
                + "prototype bean with name " + beanName + " due to the bean factory of name " + beanDefName
                + " but a bean with this name already exists!");
    }/*from   w w  w.j  av  a2 s  .c o  m*/

    GenericBeanDefinition protoBean = new GenericBeanDefinition();
    protoBean.setLazyInit(true);
    protoBean.setBeanClass(protoBeanClass);
    protoBean.setScope(BeanDefinition.SCOPE_PROTOTYPE);
    protoBean.setAutowireMode(AbstractBeanDefinition.AUTOWIRE_CONSTRUCTOR);
    protoBean.setBeanClassName(protoBeanClass.getName());

    log.debug("Dynamically adding prototype bean {} from factory {}", beanName, beanDefName);
    BeanDefinitionRegistry registry = (BeanDefinitionRegistry) beanFactory;
    registry.registerBeanDefinition(beanName, protoBean);
}

From source file:pl.chilldev.web.spring.config.HandlePageModelBeanDefinitionParser.java

/**
 * {@inheritDoc}//from www.j av  a  2s .  c  o m
 * @since 0.0.1
 */
@Override
public BeanDefinition parse(Element element, ParserContext parserContext) {
    // page model bean prototype
    GenericBeanDefinition pageMetaModelBean = new GenericBeanDefinition();
    pageMetaModelBean.setBeanClass(PageMetaModel.class);
    pageMetaModelBean.setScope(WebApplicationContext.SCOPE_REQUEST);
    pageMetaModelBean.setFactoryBeanName(PageMetaModelFactoryBean.class.getName());
    pageMetaModelBean.setFactoryMethodName(HandlePageModelBeanDefinitionParser.METHOD_CREATEPAGEMETAMODEL);
    parserContext.getRegistry().registerBeanDefinition(PageMetaModel.class.getName(), pageMetaModelBean);

    parserContext.getRegistry().registerBeanDefinition(PageMetaModelFactoryBean.class.getName(),
            this.pageMetaModelFactoryBean);

    // XHTML switch needs to be handled with generator bean
    if (element.hasAttribute(HandlePageModelBeanDefinitionParser.ATTRIBUTE_XHTML)) {
        boolean xhtml = element.getAttribute(HandlePageModelBeanDefinitionParser.ATTRIBUTE_XHTML)
                .equals("true");

        GenericBeanDefinition generatorBean = new GenericBeanDefinition();
        generatorBean.setBeanClass(Generator.class);

        this.logger.info("Setting markup generator XHTML mode to {}.", xhtml);
        ConstructorArgumentValues arguments = generatorBean.getConstructorArgumentValues();
        arguments.addGenericArgumentValue(xhtml);

        parserContext.getRegistry().registerBeanDefinition(Generator.class.getName(), generatorBean);

        arguments = pageMetaModelBean.getConstructorArgumentValues();
        arguments.addGenericArgumentValue(new RuntimeBeanReference(Generator.class.getName()));
    }

    // register new resolving strategy
    PageMetaModelContextUtils.setPageMetaModelResolver(new SpringBeansJspPageMetaModelResolver());
    pl.chilldev.web.faces.context.PageMetaModelContextUtils
            .setPageMetaModelResolver(new SpringBeansFacesPageMetaModelResolver());

    return null;
}

From source file:org.codehaus.griffon.runtime.spring.GriffonApplicationContext.java

/**
 * Register a singleton bean with the underlying bean factory.
 * <p>For more advanced needs, register with the underlying BeanFactory directly.
 * @see #getDefaultListableBeanFactory/* w  w w. ja  va 2s .  c  om*/
 */
public void registerSingleton(String name, Class clazz) throws BeansException {
    GenericBeanDefinition bd = new GenericBeanDefinition();
    bd.setBeanClass(clazz);
    getDefaultListableBeanFactory().registerBeanDefinition(name, bd);
}

From source file:org.codehaus.griffon.runtime.spring.GriffonApplicationContext.java

/**
 * Register a singleton bean with the underlying bean factory.
 * <p>For more advanced needs, register with the underlying BeanFactory directly.
 * @see #getDefaultListableBeanFactory/*from ww  w .j a v a 2s.c o m*/
 */
public void registerSingleton(String name, Class clazz, MutablePropertyValues pvs) throws BeansException {
    GenericBeanDefinition bd = new GenericBeanDefinition();
    bd.setBeanClass(clazz);
    bd.setPropertyValues(pvs);
    getDefaultListableBeanFactory().registerBeanDefinition(name, bd);
}

From source file:org.wallride.autoconfigure.WebAdminComponentScanRegistrar.java

private void addWebAdminComponentScanBeanPostProcessor(BeanDefinitionRegistry registry,
        Set<String> packagesToScan) {
    GenericBeanDefinition beanDefinition = new GenericBeanDefinition();
    beanDefinition.setBeanClass(WebAdminComponentScanBeanPostProcessor.class);
    beanDefinition.getConstructorArgumentValues().addGenericArgumentValue(toArray(packagesToScan));
    beanDefinition.setRole(BeanDefinition.ROLE_INFRASTRUCTURE);
    // We don't need this one to be post processed otherwise it can cause a
    // cascade of bean instantiation that we would rather avoid.
    beanDefinition.setSynthetic(true);//from w w  w  . jav a 2  s  .c om
    registry.registerBeanDefinition(BEAN_NAME, beanDefinition);
}

From source file:org.wallride.autoconfigure.WebGuestComponentScanRegistrar.java

private void addWebGuestComponentScanBeanPostProcessor(BeanDefinitionRegistry registry,
        Set<String> packagesToScan) {
    GenericBeanDefinition beanDefinition = new GenericBeanDefinition();
    beanDefinition.setBeanClass(WebGuestComponentScanBeanPostProcessor.class);
    beanDefinition.getConstructorArgumentValues().addGenericArgumentValue(toArray(packagesToScan));
    beanDefinition.setRole(BeanDefinition.ROLE_INFRASTRUCTURE);
    // We don't need this one to be post processed otherwise it can cause a
    // cascade of bean instantiation that we would rather avoid.
    beanDefinition.setSynthetic(true);//from  w  w  w.  j a va  2s . c o  m
    registry.registerBeanDefinition(BEAN_NAME, beanDefinition);
}

From source file:com.khs.sherpa.spring.SpringManagedBeanFactory.java

public void loadManagedBean(String name, Class<?> type) {
    BeanDefinitionRegistry registry = ((BeanDefinitionRegistry) springApplicationContext
            .getAutowireCapableBeanFactory());
    GenericBeanDefinition beanDefinition = new GenericBeanDefinition();
    beanDefinition.setBeanClass(type);
    registry.registerBeanDefinition(name, beanDefinition);
}