List of usage examples for org.springframework.beans.factory.config BeanDefinition getBeanClassName
@Nullable String getBeanClassName();
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()); }