Example usage for org.springframework.beans.factory.config BeanDefinition getBeanClassName

List of usage examples for org.springframework.beans.factory.config BeanDefinition getBeanClassName

Introduction

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

Prototype

@Nullable
String getBeanClassName();

Source Link

Document

Return the current bean class name of this bean definition.

Usage

From source file:com.nominanuda.springmvc.MvcFrontControllerBeanDefinitionParser.java

private void initPlugins(ParserContext parserContext) throws InstantiationException, IllegalAccessException {
    plugins = new LinkedList<MvcFrontControllerBeanDefinitionParserPlugin>();
    plugins.add(new HandlerParserPlugin());
    plugins.add(new SourceParserPlugin());

    String[] beanNames = parserContext.getRegistry().getBeanDefinitionNames();
    for (String beanName : beanNames) {
        BeanDefinition bd = parserContext.getRegistry().getBeanDefinition(beanName);
        String clsName = bd.getBeanClassName();
        if (clsName != null) {
            try {
                Class<?> cls = Class.forName(clsName);
                if (MvcFrontControllerBeanDefinitionParserPlugin.class.isAssignableFrom(cls)) {
                    plugins.add((MvcFrontControllerBeanDefinitionParserPlugin) cls.newInstance());
                }/*from ww  w  .  j a v a 2  s .c om*/
            } catch (ClassNotFoundException e) {
                continue;
            }

        }
    }
}

From source file:io.acme.solution.application.conf.CommandBusConfigurer.java

@PostConstruct
private void setup() {

    Queue currentQueue = null;// ww w . j  a va2s.  c  om
    String currentCommandType = null;
    SimpleMessageListenerContainer currentContainer = null;
    MessageListenerAdapter currentAdapter = null;

    final RabbitAdmin rabbitAdmin = this.context.getBean("commandBusRabbitAdmin", RabbitAdmin.class);
    final ConnectionFactory connectionFactory = this.context.getBean("commandBusConnectionFactory",
            ConnectionFactory.class);
    final TopicExchange exchange = this.context.getBean("commandExchange", TopicExchange.class);
    final MessageConverter converter = this.context.getBean("commandBusMessageConverter",
            MessageConverter.class);
    final Map<String, CommandHandler> commandHandlersRegistry = CommandHandlerUtils
            .buildCommandHandlersRegistry(this.handlerBasePackage, this.context);
    final ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider(
            false);
    scanner.addIncludeFilter(new AssignableTypeFilter(Command.class));

    for (BeanDefinition bean : scanner.findCandidateComponents(this.commandBasePackage)) {
        currentCommandType = bean.getBeanClassName().substring(bean.getBeanClassName().lastIndexOf('.') + 1);
        rabbitAdmin.declareQueue(currentQueue = new Queue(this.queuePrefix + currentCommandType));
        rabbitAdmin.declareBinding(BindingBuilder.bind(currentQueue).to(exchange).with(currentCommandType));

        if (commandHandlersRegistry.containsKey(bean.getBeanClassName())) {
            currentAdapter = new MessageListenerAdapter(commandHandlersRegistry.get(bean.getBeanClassName()),
                    converter);

            currentContainer = new SimpleMessageListenerContainer(connectionFactory);
            currentContainer.setMessageListener(currentAdapter);
            currentContainer.setQueues(currentQueue);
            currentContainer.start();
        }
    }

}

From source file:edu.rit.flick.config.FileArchiverExtensionRegistry.java

/**
 * Constructs the file archiver extension registry and scans for
 * FileArchiver classes.//from  ww w . jav  a  2 s  .  c o  m
 */
private FileArchiverExtensionRegistry() {
    registry = new HashMap<String, FileDeflatorInflator>();
    deflationOptionSets = new ArrayList<DeflationOptionSet>();
    inflationOptionSets = new ArrayList<InflationOptionSet>();

    final ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider(
            false) {
        @Override
        protected boolean isCandidateComponent(AnnotatedBeanDefinition beanDefinition) {
            return beanDefinition.getMetadata().isIndependent();
        }
    };

    scanner.addIncludeFilter(new AnnotationTypeFilter(RegisterFileDeflatorInflator.class));

    for (final BeanDefinition bd : scanner.findCandidateComponents("*")) {
        try {
            final Class<?> cl = Class.forName(bd.getBeanClassName());
            final RegisterFileDeflatorInflator fileDIP = cl.getAnnotation(RegisterFileDeflatorInflator.class);
            if (fileDIP != null)
                registerFileArchiverExtensions(fileDIP);
        } catch (Exception e) {
        }
    }
}

From source file:org.bytesoft.bytetcc.supports.dubbo.CompensableDubboConfigValidator.java

public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
    ClassLoader cl = Thread.currentThread().getContextClassLoader();

    final Map<String, Class<?>> beanClassMap = new HashMap<String, Class<?>>();
    final Map<String, BeanDefinition> serviceMap = new HashMap<String, BeanDefinition>();
    final Map<String, BeanDefinition> references = new HashMap<String, BeanDefinition>();

    String[] beanNameArray = beanFactory.getBeanDefinitionNames();
    for (int i = 0; i < beanNameArray.length; i++) {
        String beanName = beanNameArray[i];
        BeanDefinition beanDef = beanFactory.getBeanDefinition(beanName);
        String beanClassName = beanDef.getBeanClassName();

        Class<?> beanClass = null;
        try {/* ww w.j  a v a2  s .  c  o m*/
            beanClass = cl.loadClass(beanClassName);
            beanClassMap.put(beanName, beanClass);
        } catch (Exception ex) {
            continue;
        }

        if (com.alibaba.dubbo.config.spring.ServiceBean.class.equals(beanClass)) {
            serviceMap.put(beanName, beanDef);
        } else if (com.alibaba.dubbo.config.spring.ReferenceBean.class.equals(beanClass)) {
            references.put(beanName, beanDef);
        }

    }

    for (Iterator<Map.Entry<String, BeanDefinition>> itr = serviceMap.entrySet().iterator(); itr.hasNext();) {
        Map.Entry<String, BeanDefinition> entry = itr.next();
        String beanKey = entry.getKey();
        BeanDefinition beanDef = entry.getValue();
        MutablePropertyValues mpv = beanDef.getPropertyValues();
        PropertyValue ref = mpv.getPropertyValue("ref");
        PropertyValue filter = mpv.getPropertyValue("filter");
        PropertyValue group = mpv.getPropertyValue("group");
        if (ref == null || ref.getValue() == null
                || RuntimeBeanReference.class.equals(ref.getValue().getClass()) == false) {
            continue;
        }
        RuntimeBeanReference beanRef = (RuntimeBeanReference) ref.getValue();
        Class<?> refClass = beanClassMap.get(beanRef.getBeanName());
        if (refClass.getAnnotation(Compensable.class) == null) {
            continue;
        }

        if (group == null || group.getValue() == null
                || KEY_GROUP_COMPENSABLE.equals(group.getValue()) == false) {
            logger.warn("The value of attr 'group'(beanId= {}) should be 'org.bytesoft.bytetcc'.", beanKey);
            continue;
        } else if (filter == null || filter.getValue() == null
                || KEY_FILTER_COMPENSABLE.equals(filter.getValue()) == false) {
            logger.warn("The value of attr 'filter'(beanId= {}) should be 'compensable'.", beanKey);
            continue;
        }

        PropertyValue timeoutPv = mpv.getPropertyValue(KEY_TIMEOUT);
        Object value = timeoutPv == null ? null : timeoutPv.getValue();
        if (String.valueOf(Integer.MAX_VALUE).equals(value) == false) {
            throw new FatalBeanException(String.format("Timeout value(beanId= %s) must be %s." //
                    , beanKey, Integer.MAX_VALUE));
        }
    }

    for (Iterator<Map.Entry<String, BeanDefinition>> itr = references.entrySet().iterator(); itr.hasNext();) {
        Map.Entry<String, BeanDefinition> entry = itr.next();
        String beanKey = entry.getKey();
        BeanDefinition beanDef = entry.getValue();
        MutablePropertyValues mpv = beanDef.getPropertyValues();
        PropertyValue filter = mpv.getPropertyValue("filter");
        PropertyValue group = mpv.getPropertyValue("group");

        if (group == null || group.getValue() == null
                || KEY_GROUP_COMPENSABLE.equals(group.getValue()) == false) {
            logger.warn("The value of attr 'group'(beanId= {}) should be 'org.bytesoft.bytetcc'.", beanKey);
            continue;
        } else if (filter == null || filter.getValue() == null
                || KEY_FILTER_COMPENSABLE.equals(filter.getValue()) == false) {
            logger.warn("The value of attr 'filter'(beanId= {}) should be 'compensable'.", beanKey);
            continue;
        }

        PropertyValue timeoutPv = mpv.getPropertyValue(KEY_TIMEOUT);
        Object value = timeoutPv == null ? null : timeoutPv.getValue();
        if (String.valueOf(Integer.MAX_VALUE).equals(value) == false) {
            throw new FatalBeanException(
                    String.format("The value of attribute 'timeout' (beanId= %s) must be %s." //
                            , beanKey, Integer.MAX_VALUE));
        }
    }
}

From source file:com.laxser.blitz.lama.core.LamaDaoProcessor.java

@Override
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
    if (logger.isInfoEnabled()) {
        logger.info("[jade] starting ...");
    }//from   w  w w.  j av a2 s.  c o  m
    final List<ResourceRef> resources;
    try {
        resources = BlitzScanner.getInstance().getJarOrClassesFolderResources();
    } catch (IOException e) {
        throw new ApplicationContextException("error on getJarResources/getClassesFolderResources", e);
    }
    List<String> urls = new LinkedList<String>();
    for (ResourceRef resourceInfo : resources) {
        if (resourceInfo.hasModifier("dao") || resourceInfo.hasModifier("DAO")) {
            try {
                Resource resource = resourceInfo.getResource();
                File resourceFile = resource.getFile();
                if (resourceFile.isFile()) {
                    urls.add("jar:file:" + resourceFile.toURI().getPath() + ResourceUtils.JAR_URL_SEPARATOR);
                } else if (resourceFile.isDirectory()) {
                    urls.add(resourceFile.toURI().toString());
                }
            } catch (IOException e) {
                throw new ApplicationContextException("error on resource.getFile", e);
            }
        }
    }

    if (logger.isInfoEnabled()) {
        logger.info("[jade] found " + urls.size() + " jade urls: " + urls);
    }
    if (urls.size() > 0) {
        LamaDaoComponentProvider provider = new LamaDaoComponentProvider(true);
        if (filters != null) {
            for (TypeFilter excludeFilter : filters) {
                provider.addExcludeFilter(excludeFilter);
            }
        }

        final DataAccessProvider dataAccessProvider = createJdbcTemplateDataAccessProvider();

        Set<String> daoClassNames = new HashSet<String>();

        for (String url : urls) {
            if (logger.isInfoEnabled()) {
                logger.info("[jade] call 'jade/find'");
            }
            Set<BeanDefinition> dfs = provider.findCandidateComponents(url);
            if (logger.isInfoEnabled()) {
                logger.info("[jade] found " + dfs.size()//
                        + " beanDefinition from '" + url + "'");
            }
            for (BeanDefinition beanDefinition : dfs) {
                String daoClassName = beanDefinition.getBeanClassName();

                if (daoClassNames.contains(daoClassName)) {
                    if (logger.isDebugEnabled()) {
                        logger.debug("[jade] ignored replicated jade dao class: " + daoClassName + "  [" + url
                                + "]");
                    }
                    continue;
                }
                daoClassNames.add(daoClassName);

                MutablePropertyValues propertyValues = beanDefinition.getPropertyValues();
                propertyValues.addPropertyValue("dataAccessProvider", dataAccessProvider);
                propertyValues.addPropertyValue("daoClass", daoClassName);
                ScannedGenericBeanDefinition scannedBeanDefinition = (ScannedGenericBeanDefinition) beanDefinition;
                scannedBeanDefinition.setPropertyValues(propertyValues);
                scannedBeanDefinition.setBeanClass(LamaDaoFactoryBean.class);

                DefaultListableBeanFactory defaultBeanFactory = (DefaultListableBeanFactory) beanFactory;
                defaultBeanFactory.registerBeanDefinition(daoClassName, beanDefinition);

                if (logger.isDebugEnabled()) {
                    logger.debug("[jade] register jade dao bean: " + daoClassName);
                }
            }
        }
    }
    if (logger.isInfoEnabled()) {
        logger.info("[jade] exits");
    }
}

From source file:com.dianping.zebra.monitor.spring.DataSourceAutoMonitor.java

@SuppressWarnings("unchecked")
private boolean checkInnerDataSourceInZebra(String beanName, BeanDefinition zebraDataSourceDefinition) {
    MutablePropertyValues propertyValues = zebraDataSourceDefinition.getPropertyValues();
    PropertyValue dataSourcePoolVal = propertyValues.getPropertyValue("dataSourcePool");

    if (dataSourcePoolVal == null) {
        if (logger.isWarnEnabled()) {
            logger.warn("Zebra dataSource's dataSourcePool property not found, maybe its name is modified, "
                    + "change the automonitor's implementation, otherwise some inner dataSource cannot be monitored.");
        }/*from  w  w w  . ja  va 2 s.com*/
        return true;
    }

    Map<TypedStringValue, Object> innerDSDefinitionMap = (Map<TypedStringValue, Object>) dataSourcePoolVal
            .getValue();
    for (Entry<TypedStringValue, Object> innerDSDefEntry : innerDSDefinitionMap.entrySet()) {
        Object innerDSDefVal = innerDSDefEntry.getValue();
        if (innerDSDefVal instanceof BeanDefinitionHolder) {
            BeanDefinitionHolder innerDSDefHolder = (BeanDefinitionHolder) innerDSDefVal;
            BeanDefinition innerDSDefinition = innerDSDefHolder.getBeanDefinition();
            if (GroupDataSource.class.getName().equals(innerDSDefinition.getBeanClassName())) {
                return false;
            }
        }
    }

    return false;
}

From source file:com.sourceallies.beanoh.BeanohTestCase.java

/**
 * Reconcile the beans marked with org.springframework.stereotype.Component
 * in the classpath with the beans loaded in the Spring context.
 * /* w w w  . j  a  v  a 2  s  .c o  m*/
 * Ignore classes with the method ignoreClassNames and ignore packages with
 * the method ignorePackages.
 * 
 * @param basePackage
 *            the base package in which classes annotated with
 *            org.springframework.stereotype.Component will be located
 */
public void assertComponentsInContext(String basePackage) {
    loadContext();
    final Set<String> scannedComponents = new HashSet<String>();
    ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider(true);
    scanner.addIncludeFilter(new AnnotationTypeFilter(Component.class));

    collectComponentsInClasspath(basePackage, scannedComponents, scanner);
    removeComponentsInPackages(scannedComponents);
    removeIgnoredClasses(scannedComponents);

    iterateBeanDefinitions(new BeanDefinitionAction() {
        @Override
        public void execute(String name, BeanDefinition definition) {
            scannedComponents.remove(definition.getBeanClassName());
        }
    });

    if (scannedComponents.size() > 0) {
        throw new MissingComponentException(
                "There are beans marked with '@Component' in the classpath that are not configured by Spring. "
                        + "Either configure these beans or ignore them with the 'ignoreClassNames' or 'ignorePackages' method.\n"
                        + "Components not in Spring:" + missingList(scannedComponents));
    }
}

From source file:info.sargis.eventbus.config.EventBusHandlerBeanDefinitionParser.java

private boolean isEventBusHandlerCandidate(BeanDefinition component, ParserContext parserContext) {
    try {//from  w  w  w . ja v a2 s.c  om
        String beanClassName = component.getBeanClassName();
        Class<?> beanClass = Class.forName(beanClassName);

        for (Method method : beanClass.getMethods()) {
            Subscribe annotation = method.getAnnotation(Subscribe.class);
            if (annotation != null) {
                return true;
            }
        }
    } catch (ClassNotFoundException e) {
        logger.error("", e);
    }

    return false;
}

From source file:it.geosolutions.geobatch.annotations.ActionServicePostProcessor.java

@Override
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {

    if (bean.getClass().equals(AliasRegistry.class)) {
        AliasRegistry aliasRegistry = (AliasRegistry) bean;
        ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider(
                true);/*from w ww. j  a v  a2s. c  o m*/
        scanner.addIncludeFilter(new AnnotationTypeFilter(Action.class));
        for (BeanDefinition bd : scanner.findCandidateComponents("it.geosolutions")) {
            try {
                Class actionClass = Class.forName(bd.getBeanClassName());
                Action annotation = (Action) actionClass.getAnnotation(Action.class);
                if (annotation != null) {
                    Class<? extends ActionConfiguration> configurationClass = annotation.configurationClass();

                    String alias = configurationClass.getSimpleName();
                    if (annotation.configurationAlias() != null && !annotation.configurationAlias().isEmpty()) {
                        alias = annotation.configurationAlias();
                    }
                    aliasRegistry.putAlias(alias, configurationClass);

                    if (annotation.aliases() != null) {
                        for (Class a : annotation.aliases()) {
                            if (NullType.class == a)
                                continue;
                            aliasRegistry.putAlias(a.getSimpleName(), a);
                        }
                    }

                    if (annotation.implicitCollections() != null) {
                        for (String ic : annotation.implicitCollections()) {
                            if (ic == null || ic.isEmpty())
                                continue;
                            aliasRegistry.putImplicitCollection(ic, configurationClass);
                        }
                    }

                    GenericActionService asr = new GenericActionService(
                            annotation.configurationClass().getSimpleName(), actionClass);
                    asr.setApplicationContext(applicationContext);
                    actionList.add(asr);
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

    return bean;
}

From source file:org.openmrs.module.webservices.rest.web.DelegatingCrudResourceTest.java

/**
 * This test looks at all subclasses of DelegatingCrudResource, and test all {@link RepHandler}
 * methods to make sure they are all capable of running without exceptions. It also checks that
 *//* w w w.  j a  v  a  2s.c  om*/
@SuppressWarnings("rawtypes")
@Test
@Ignore
public void testAllReprsentationDescriptions() throws Exception {
    ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider(
            true);
    //only match subclasses of BaseDelegatingResource
    provider.addIncludeFilter(new AssignableTypeFilter(BaseDelegatingResource.class));

    // scan in org.openmrs.module.webservices.rest.web.resource package 
    Set<BeanDefinition> components = provider
            .findCandidateComponents("org.openmrs.module.webservices.rest.web.resource");
    if (CollectionUtils.isEmpty(components))
        Assert.fail("Faile to load any resource classes");

    for (BeanDefinition component : components) {
        Class resourceClass = Class.forName(component.getBeanClassName());
        for (Method method : ReflectionUtils.getAllDeclaredMethods(resourceClass)) {
            ParameterizedType parameterizedType = (ParameterizedType) resourceClass.getGenericSuperclass();
            Class openmrsClass = (Class) parameterizedType.getActualTypeArguments()[0];
            //User Resource is special in that the Actual parameterized Type isn't a standard domain object, so we also
            //need to look up fields and methods from the org.openmrs.User class 
            boolean isUserResource = resourceClass.equals(UserResource1_8.class);
            List<Object> refDescriptions = new ArrayList<Object>();

            if (method.getName().equals("getRepresentationDescription")
                    && method.getDeclaringClass().equals(resourceClass)) {
                //get all the rep definitions for all representations
                refDescriptions
                        .add(method.invoke(resourceClass.newInstance(), new Object[] { Representation.REF }));
                refDescriptions.add(
                        method.invoke(resourceClass.newInstance(), new Object[] { Representation.DEFAULT }));
                refDescriptions
                        .add(method.invoke(resourceClass.newInstance(), new Object[] { Representation.FULL }));
            }

            for (Object value : refDescriptions) {
                if (value != null) {
                    DelegatingResourceDescription des = (DelegatingResourceDescription) value;
                    for (String key : des.getProperties().keySet()) {
                        if (!key.equals("uri") && !key.equals("display") && !key.equals("auditInfo")) {
                            boolean hasFieldOrPropertySetter = (ReflectionUtils.findField(openmrsClass,
                                    key) != null);
                            if (!hasFieldOrPropertySetter) {
                                hasFieldOrPropertySetter = hasSetterMethod(key, resourceClass);
                                if (!hasFieldOrPropertySetter && isUserResource)
                                    hasFieldOrPropertySetter = (ReflectionUtils.findField(User.class,
                                            key) != null);
                            }
                            if (!hasFieldOrPropertySetter)
                                hasFieldOrPropertySetter = hasSetterMethod(key, resourceClass);

                            //TODO replace this hacky way that we are using to check if there is a get method for a 
                            //collection that has no actual getter e.g activeIdentifers and activeAttributes for Patient
                            if (!hasFieldOrPropertySetter) {
                                hasFieldOrPropertySetter = (ReflectionUtils.findMethod(openmrsClass,
                                        "get" + StringUtils.capitalize(key)) != null);
                                if (!hasFieldOrPropertySetter && isUserResource)
                                    hasFieldOrPropertySetter = (ReflectionUtils.findMethod(User.class,
                                            "get" + StringUtils.capitalize(key)) != null);
                            }

                            if (!hasFieldOrPropertySetter)
                                hasFieldOrPropertySetter = isallowedMissingProperty(resourceClass, key);

                            Assert.assertTrue(
                                    "No property found for '" + key + "' for " + openmrsClass
                                            + " nor setter method on resource " + resourceClass,
                                    hasFieldOrPropertySetter);
                        }
                    }
                }
            }
        }
    }
}