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:org.codehaus.groovy.grails.commons.spring.GrailsRuntimeConfigurator.java

private void doPostResourceConfiguration(GrailsApplication app, RuntimeSpringConfiguration springConfig) {
    ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
    String resourceName = null;//from  w ww.j av  a 2  s.co  m
    try {
        Resource springResources;
        if (app.isWarDeployed()) {
            resourceName = GrailsRuntimeConfigurator.SPRING_RESOURCES_XML;
            springResources = parent.getResource(resourceName);
        } else {
            resourceName = DEVELOPMENT_SPRING_RESOURCES_XML;
            ResourcePatternResolver patternResolver = new PathMatchingResourcePatternResolver();
            springResources = patternResolver.getResource(resourceName);
        }

        if (springResources != null && springResources.exists()) {
            if (LOG.isDebugEnabled())
                LOG.debug(
                        "[RuntimeConfiguration] Configuring additional beans from " + springResources.getURL());
            DefaultListableBeanFactory xmlBf = new DefaultListableBeanFactory();
            new XmlBeanDefinitionReader(xmlBf).loadBeanDefinitions(springResources);
            xmlBf.setBeanClassLoader(classLoader);
            String[] beanNames = xmlBf.getBeanDefinitionNames();
            if (LOG.isDebugEnabled())
                LOG.debug("[RuntimeConfiguration] Found [" + beanNames.length + "] beans to configure");
            for (String beanName : beanNames) {
                BeanDefinition bd = xmlBf.getBeanDefinition(beanName);
                final String beanClassName = bd.getBeanClassName();
                Class<?> beanClass = beanClassName == null ? null
                        : ClassUtils.forName(beanClassName, classLoader);

                springConfig.addBeanDefinition(beanName, bd);
                String[] aliases = xmlBf.getAliases(beanName);
                for (String alias : aliases) {
                    springConfig.addAlias(alias, beanName);
                }
                if (beanClass != null) {
                    if (BeanFactoryPostProcessor.class.isAssignableFrom(beanClass)) {
                        ((ConfigurableApplicationContext) springConfig.getUnrefreshedApplicationContext())
                                .addBeanFactoryPostProcessor(
                                        (BeanFactoryPostProcessor) xmlBf.getBean(beanName));
                    }
                }
            }
        } else if (LOG.isDebugEnabled()) {
            LOG.debug("[RuntimeConfiguration] " + resourceName + " not found. Skipping configuration.");
        }
    } catch (Exception ex) {
        LOG.error("[RuntimeConfiguration] Unable to perform post initialization config: " + resourceName, ex);
    }

    GrailsRuntimeConfigurator.loadSpringGroovyResources(springConfig, app);
}

From source file:org.craftercms.studio.impl.repository.mongodb.tools.RepoShell.java

/**
 * Using Spring's ClassPathScanningCandidateComponentProvider search for all Classes
 * that Extends {@link org.craftercms.studio.impl.repository.mongodb.tools.AbstractAction}
 * in the package <i>org.craftercms.studio.impl.repository.mongodb</i> and loads and register them.
 * @throws ClassNotFoundException If Class can't be found.
 * @throws IllegalAccessException If Class can't be access.
 * @throws InstantiationException If Class can't be Instantiated.
 * @throws ClassCastException If Class can't be cast to AbstractAction.
 *//*from   w ww.  j a v  a  2  s  .  c  o m*/
private void loadActions()
        throws ClassNotFoundException, IllegalAccessException, InstantiationException, ClassCastException {
    this.actionList = new FastList<>();
    ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider(
            true);
    provider.addIncludeFilter(new AssignableTypeFilter(AbstractAction.class));

    Set<BeanDefinition> components = provider
            .findCandidateComponents("org.craftercms.studio.impl.repository" + "" + ".mongodb");
    for (BeanDefinition component : components) {
        actionList.add((AbstractAction) Class.forName(component.getBeanClassName()).newInstance());
    }
    actionList.add(new HelpAction(Collections.unmodifiableList(actionList)));
}

From source file:org.dd4t.databind.builder.BaseDataBinder.java

protected void scanAndLoadModels() {
    LOG.info("Init: scanning view models.");
    final ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider(
            false);//  www . j  a v  a2s  .  co m
    scanner.addIncludeFilter(new AnnotationTypeFilter(ViewModel.class));
    for (BeanDefinition bd : scanner.findCandidateComponents(this.viewModelPackageRoot)) {
        try {
            final Class clazz = Class.forName(bd.getBeanClassName());
            if (clazz != null) {
                LOG.debug("Loading class: " + clazz.getCanonicalName());
                final ViewModel viewModelParameters = (ViewModel) clazz.getAnnotation(ViewModel.class);

                if (hasProperModelInformation(viewModelParameters, clazz)) {
                    LOG.debug(
                            "Parameters: Viewmodel name(s):{}, Root Element name(s){}, Set Component: {}, Set raw: {} ",
                            new Object[] { viewModelParameters.viewModelNames(),
                                    viewModelParameters.rootElementNames(),
                                    viewModelParameters.setComponentObject(),
                                    viewModelParameters.setRawData() });
                    storeModelClass(viewModelParameters, clazz);
                }
            }
            LOG.info("Init: Done scanning view models.");
        } catch (ClassNotFoundException e) {
            LOG.error("Unexpected exception", e);
        }
    }
}

From source file:org.directwebremoting.spring.DwrNamespaceHandler.java

/**
 *  Try getting the beanClassName from the definition and if that fails try to get it from
 *  the parent (and even parent BeanFactory if we have to).
 *  @param definition//from  w w  w . j a va  2  s  .c  o  m
 *  @param registry
 *  @return class name or null if not found
 */
protected static String resolveBeanClassname(BeanDefinition definition, BeanDefinitionRegistry registry) {
    String beanClassName = definition.getBeanClassName();
    while (!StringUtils.hasText(beanClassName)) {
        try {
            Method m = definition.getClass().getMethod("getParentName", new Class[0]);
            String parentName = (String) m.invoke(definition, new Object[0]);
            BeanDefinition parentDefinition = findParentDefinition(parentName, registry);
            beanClassName = parentDefinition.getBeanClassName();
            definition = parentDefinition;
        } catch (Exception e) {
            throw new FatalBeanException("No parent bean could be found for " + definition, e);
        }
    }
    return beanClassName;
}

From source file:org.grails.web.servlet.context.support.GrailsRuntimeConfigurator.java

protected void doPostResourceConfiguration(GrailsApplication app, RuntimeSpringConfiguration springConfig) {
    ClassLoader classLoader = app.getClassLoader();
    String resourceName = null;// www  . ja  v  a  2  s .co  m
    try {
        Resource springResources;
        if (app.isWarDeployed()) {
            resourceName = GrailsRuntimeConfigurator.SPRING_RESOURCES_XML;
            springResources = parent.getResource(resourceName);
        } else {
            resourceName = DEVELOPMENT_SPRING_RESOURCES_XML;
            ResourcePatternResolver patternResolver = new PathMatchingResourcePatternResolver();
            springResources = patternResolver.getResource(resourceName);
        }

        if (springResources != null && springResources.exists()) {
            if (LOG.isDebugEnabled())
                LOG.debug(
                        "[RuntimeConfiguration] Configuring additional beans from " + springResources.getURL());
            DefaultListableBeanFactory xmlBf = new OptimizedAutowireCapableBeanFactory();
            new XmlBeanDefinitionReader(xmlBf).loadBeanDefinitions(springResources);
            xmlBf.setBeanClassLoader(classLoader);
            String[] beanNames = xmlBf.getBeanDefinitionNames();
            if (LOG.isDebugEnabled())
                LOG.debug("[RuntimeConfiguration] Found [" + beanNames.length + "] beans to configure");
            for (String beanName : beanNames) {
                BeanDefinition bd = xmlBf.getBeanDefinition(beanName);
                final String beanClassName = bd.getBeanClassName();
                Class<?> beanClass = beanClassName == null ? null
                        : ClassUtils.forName(beanClassName, classLoader);

                springConfig.addBeanDefinition(beanName, bd);
                String[] aliases = xmlBf.getAliases(beanName);
                for (String alias : aliases) {
                    springConfig.addAlias(alias, beanName);
                }
                if (beanClass != null) {
                    if (BeanFactoryPostProcessor.class.isAssignableFrom(beanClass)) {
                        ((ConfigurableApplicationContext) springConfig.getUnrefreshedApplicationContext())
                                .addBeanFactoryPostProcessor(
                                        (BeanFactoryPostProcessor) xmlBf.getBean(beanName));
                    }
                }
            }
        } else if (LOG.isDebugEnabled()) {
            LOG.debug("[RuntimeConfiguration] " + resourceName + " not found. Skipping configuration.");
        }
    } catch (Exception ex) {
        LOG.error("[RuntimeConfiguration] Unable to perform post initialization config: " + resourceName, ex);
    }

    GrailsRuntimeConfigurator.loadSpringGroovyResources(springConfig, app);
}

From source file:org.gridgain.grid.kernal.processors.spring.GridSpringProcessorImpl.java

/**
 * Creates Spring application context. Optionally excluded properties can be specified,
 * it means that if such a property is found in {@link GridConfiguration}
 * then it is removed before the bean is instantiated.
 * For example, {@code streamerConfiguration} can be excluded from the configs that Visor uses.
 *
 * @param cfgUrl Resource where config file is located.
 * @param excludedProps Properties to be excluded.
 * @return Spring application context./*ww  w  .  java2s .co  m*/
 */
public static ApplicationContext applicationContext(URL cfgUrl, final String... excludedProps) {
    GenericApplicationContext springCtx = new GenericApplicationContext();

    BeanFactoryPostProcessor postProc = new BeanFactoryPostProcessor() {
        @Override
        public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
            for (String beanName : beanFactory.getBeanDefinitionNames()) {
                BeanDefinition def = beanFactory.getBeanDefinition(beanName);

                if (def.getBeanClassName() != null) {
                    try {
                        Class.forName(def.getBeanClassName());
                    } catch (ClassNotFoundException ignored) {
                        ((BeanDefinitionRegistry) beanFactory).removeBeanDefinition(beanName);

                        continue;
                    }
                }

                MutablePropertyValues vals = def.getPropertyValues();

                for (PropertyValue val : new ArrayList<>(vals.getPropertyValueList())) {
                    for (String excludedProp : excludedProps) {
                        if (val.getName().equals(excludedProp))
                            vals.removePropertyValue(val);
                    }
                }
            }
        }
    };

    springCtx.addBeanFactoryPostProcessor(postProc);

    new XmlBeanDefinitionReader(springCtx).loadBeanDefinitions(new UrlResource(cfgUrl));

    springCtx.refresh();

    return springCtx;
}

From source file:org.kaaproject.kaa.server.admin.services.KaaAdminServiceImpl.java

private void scanPluginsPackage(ClassPathScanningCandidateComponentProvider scanner, String packageName)
        throws Exception {
    Set<BeanDefinition> beans = scanner.findCandidateComponents(packageName);
    for (BeanDefinition bean : beans) {
        Class<?> clazz = Class.forName(bean.getBeanClassName());
        KaaPluginConfig annotation = clazz.getAnnotation(KaaPluginConfig.class);
        PluginConfig pluginConfig = (PluginConfig) clazz.newInstance();
        RecordField fieldConfiguration = FormAvroConverter
                .createRecordFieldFromSchema(pluginConfig.getPluginConfigSchema());
        PluginInfoDto pluginInfo = new PluginInfoDto(pluginConfig.getPluginTypeName(), fieldConfiguration,
                pluginConfig.getPluginClassName());
        pluginsInfo.get(annotation.pluginType()).put(pluginInfo.getPluginClassName(), pluginInfo);
    }/*from   ww  w .  java2s.  c om*/
}

From source file:org.kuali.kfs.sys.context.DataDictionaryConfigurationTest.java

public void testAllParentBeansAreAbstract() throws Exception {
    Field f = dataDictionary.getClass().getDeclaredField("ddBeans");
    f.setAccessible(true);//w  w w.ja va2  s  .c o  m
    KualiDefaultListableBeanFactory ddBeans = (KualiDefaultListableBeanFactory) f.get(dataDictionary);
    List<String> failingBeanNames = new ArrayList<String>();
    for (String beanName : ddBeans.getBeanDefinitionNames()) {
        BeanDefinition beanDef = ddBeans.getMergedBeanDefinition(beanName);
        String beanClass = beanDef.getBeanClassName();
        // skip Rice classes
        if (beanClass != null && beanClass.startsWith("org.kuali.rice")) {
            continue;
        }
        if ((beanName.endsWith("-parentBean") || beanName.endsWith("-baseBean")) && !beanDef.isAbstract()) {
            failingBeanNames.add(beanName + " : " + beanDef.getResourceDescription() + "\n");
        }
    }
    assertEquals("The following parent beans are not defined as abstract:\n" + failingBeanNames, 0,
            failingBeanNames.size());
}

From source file:org.kuali.kfs.sys.context.DataDictionaryConfigurationTest.java

protected void somethingShouldHaveParentBeans(Class<?> baseClass, List<String> exclusions) throws Exception {
    Field f = dataDictionary.getClass().getDeclaredField("ddBeans");
    f.setAccessible(true);// w w w. ja  v a 2s .c  om
    KualiDefaultListableBeanFactory ddBeans = (KualiDefaultListableBeanFactory) f.get(dataDictionary);
    List<String> failingBeanNames = new ArrayList<String>();

    for (String beanName : ddBeans.getBeanDefinitionNames()) {
        if (doesBeanNameMatchList(beanName, exclusions)) {
            continue;
        }
        BeanDefinition beanDef = ddBeans.getMergedBeanDefinition(beanName);
        String beanClass = beanDef.getBeanClassName();
        if (beanClass == null) {
            System.err.println("ERROR: Bean " + beanName + " has a null class.");
        }
        if (!beanDef.isAbstract() && beanClass != null
                && baseClass.isAssignableFrom(Class.forName(beanClass))) {
            try {
                BeanDefinition parentBean = ddBeans.getBeanDefinition(beanName + "-parentBean");
            } catch (NoSuchBeanDefinitionException ex) {
                failingBeanNames.add(beanName + " : " + beanDef.getResourceDescription() + "\n");
            }
        }
    }
    assertEquals("The following " + baseClass.getSimpleName() + " beans do not have \"-parentBean\"s:\n"
            + failingBeanNames, 0, failingBeanNames.size());
}

From source file:org.kuali.kfs.sys.context.SpringConfigurationConsistencyCheckTest.java

public void testServicesShouldHaveParentBeans() {
    List<String> failingBeanNames = new ArrayList<String>();
    for (String beanName : SpringContext.applicationContext.getBeanDefinitionNames()) {
        // skip testing mock beans
        if (StringUtils.containsIgnoreCase(beanName, "mock")) {
            continue;
        }//from   ww  w.j  a  v a2 s .c o  m
        BeanDefinition beanDef = SpringContext.applicationContext.getBeanFactory().getBeanDefinition(beanName);
        // skip entries in the rice import files or in testing files
        if (StringUtils.contains(beanDef.getResourceDescription(), "spring-kfs-imported-rice-beans.xml")
                || StringUtils.contains(beanDef.getResourceDescription(), "-test.xml")) {
            continue;
        }
        String serviceClass = beanDef.getBeanClassName();
        if (StringUtils.contains(serviceClass, "service.impl") && //should be a service
                !StringUtils.startsWith(serviceClass, "org.kuali.rice") && //let rice test their code
                !beanDef.isAbstract()) { //abstract = parent

            try {
                BeanDefinition parentBean = SpringContext.applicationContext.getBeanFactory()
                        .getBeanDefinition(beanName + "-parentBean");
                String parentClass = parentBean.getBeanClassName();
            } catch (NoSuchBeanDefinitionException ex) {
                failingBeanNames.add(beanName + " : " + beanDef.getResourceDescription() + "\n");
            }
        }
    }
    assertEquals("The following service beans do not have \"-parentBean\"s:\n" + failingBeanNames, 0,
            failingBeanNames.size());
}