Example usage for org.springframework.beans.factory.annotation InitDestroyAnnotationBeanPostProcessor setDestroyAnnotationType

List of usage examples for org.springframework.beans.factory.annotation InitDestroyAnnotationBeanPostProcessor setDestroyAnnotationType

Introduction

In this page you can find the example usage for org.springframework.beans.factory.annotation InitDestroyAnnotationBeanPostProcessor setDestroyAnnotationType.

Prototype

public void setDestroyAnnotationType(Class<? extends Annotation> destroyAnnotationType) 

Source Link

Document

Specify the destroy annotation to check for, indicating destruction methods to call when the context is shutting down.

Usage

From source file:org.apache.james.container.spring.lifecycle.osgi.OsgiLifecycleBeanFactoryPostProcessor.java

@Override
public void postProcessBeanFactory(BundleContext context, ConfigurableListableBeanFactory factory)
        throws BeansException, InvalidSyntaxException, BundleException {
    // We need to set the beanfactory by hand. This MAY be a bug in spring-dm but I'm not sure yet
    LogEnabledBeanPostProcessor loggingProcessor = new LogEnabledBeanPostProcessor();
    loggingProcessor.setBeanFactory(factory);
    loggingProcessor.setLogProvider(logProvider);
    loggingProcessor.setOrder(0);//from   w  w  w .j a  v  a2s .c  om
    factory.addBeanPostProcessor(loggingProcessor);

    OSGIResourceAnnotationBeanPostProcessor resourceProcessor = new OSGIResourceAnnotationBeanPostProcessor();
    resourceProcessor.setBeanClassLoader(factory.getBeanClassLoader());
    resourceProcessor.setBeanFactory(factory);
    resourceProcessor.setBundleContext(context);
    resourceProcessor.setTimeout(60 * 1000);
    factory.addBeanPostProcessor(resourceProcessor);

    OSGIPersistenceUnitAnnotationBeanPostProcessor persistenceProcessor = new OSGIPersistenceUnitAnnotationBeanPostProcessor();
    persistenceProcessor.setBeanClassLoader(factory.getBeanClassLoader());
    persistenceProcessor.setBeanFactory(factory);
    persistenceProcessor.setBundleContext(context);
    persistenceProcessor.setTimeout(60 * 1000);
    factory.addBeanPostProcessor(persistenceProcessor);

    ConfigurableBeanPostProcessor configurationProcessor = new ConfigurableBeanPostProcessor();
    configurationProcessor.setBeanFactory(factory);
    configurationProcessor.setConfigurationProvider(confProvider);
    configurationProcessor.setOrder(2);
    factory.addBeanPostProcessor(configurationProcessor);

    InitDestroyAnnotationBeanPostProcessor annotationProcessor = new InitDestroyAnnotationBeanPostProcessor();
    annotationProcessor.setInitAnnotationType(PostConstruct.class);
    annotationProcessor.setDestroyAnnotationType(PreDestroy.class);
    factory.addBeanPostProcessor(annotationProcessor);

}