All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.persapiens.jsfboot.annotations.JsfCdiToSpringBeanNameGenerator Maven / Gradle / Ivy

There is a newer version: 1.7.3
Show newest version
//
// Copyright described at LICENSE.txt
//
package com.github.persapiens.jsfboot.annotations;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import org.springframework.beans.factory.annotation.AnnotatedBeanDefinition;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
import org.springframework.context.annotation.AnnotationBeanNameGenerator;

/**
 * Spring Bean Name Generator to support cdi and jsf annotations
 */
public class JsfCdiToSpringBeanNameGenerator
    extends AnnotationBeanNameGenerator
{
    private static final Logger logger = LoggerFactory
			.getLogger(JsfCdiToSpringBeanNameGenerator.class);
    
    @Override
	public String generateBeanName(BeanDefinition definition, BeanDefinitionRegistry registry) {
        String result = super.generateBeanName(definition, registry);
        
        if ( definition instanceof AnnotatedBeanDefinition )
        {
            AnnotatedBeanDefinition annDef = ( AnnotatedBeanDefinition ) definition;

            String scopeName = JsfCdiToSpring.scopeName(annDef.getMetadata().getAnnotationTypes());
            if ( scopeName != null )
            {
                definition.setScope( scopeName );

                logger.debug( definition.getBeanClassName()
                    + " - Scope(" + definition.getScope().toUpperCase() 
                    + ")");
            }
        }
        
        return result;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy