List of usage examples for org.springframework.beans.factory.config BeanDefinition isAbstract
boolean isAbstract();
From source file:org.impalaframework.spring.service.exporter.NamedServiceAutoExportPostProcessor.java
void processBeanFactory(final BeanFactoryCallback callback) { ConfigurableListableBeanFactory listableBeanFactory = ObjectUtils.cast(beanFactory, ConfigurableListableBeanFactory.class); // gets list of all bean definitions in this context final String[] beanNames = listableBeanFactory.getBeanDefinitionNames(); for (String beanName : beanNames) { final BeanDefinition beanDefinition = listableBeanFactory.getBeanDefinition(beanName); if (!beanDefinition.isAbstract()) { final Object bean = beanFactory.getBean(beanName); callback.doWithBean(beanName, bean); }/*from w w w . jav a2 s . co m*/ } }
From source file:org.kuali.kfs.sys.context.DataDictionaryConfigurationTest.java
public void testAllParentBeansAreAbstract() throws Exception { Field f = dataDictionary.getClass().getDeclaredField("ddBeans"); f.setAccessible(true);//from www .j a v a 2 s .com 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);/*from w ww .ja v a2 s.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 testParentBeansShouldBeAbstract() { List<String> failingBeanNames = new ArrayList<String>(); for (String beanName : SpringContext.applicationContext.getBeanDefinitionNames()) { 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; }//from w w w. j a v a2s . c o m if (beanName.endsWith("-parentBean") && !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.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; }/* w w w.ja v a 2 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()); }
From source file:org.kuali.kfs.sys.context.SpringConfigurationConsistencyCheckTest.java
public void testDAOsShouldBeDAOs() throws Exception { List<String> failingBeanNames = new ArrayList<String>(); for (String beanName : SpringContext.applicationContext.getBeanDefinitionNames()) { 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; }//w w w . j a v a2 s .com if (!beanDef.isAbstract()) { Object service = TestUtils.getUnproxiedService(beanName); if (beanName.endsWith("Dao") && !service.getClass().getName().endsWith("Proxy") && !service.getClass().getName().startsWith("org.kuali.rice")) { if (!(service instanceof PlatformAwareDao)) { failingBeanNames.add(" *** FAIL: " + beanName + " does not implement PlatformAwareDao (is " + service.getClass().getName() + ")\n" + " : " + beanDef.getResourceDescription() + "\n"); } if (!(service instanceof PlatformAwareDaoBaseOjb) && !(service instanceof PlatformAwareDaoBaseJdbc)) { failingBeanNames .add(" *** FAIL: " + beanName + " does not extend PlatformAwareDaoBaseOjb/Jdbc (is " + service.getClass().getName() + ")\n" + " : " + beanDef.getResourceDescription() + "\n"); } } } } for (Map.Entry<String, PlatformAwareDao> dao : SpringContext.getBeansOfType(PlatformAwareDao.class) .entrySet()) { Object service = ProxyUtils.getTargetIfProxied(dao.getValue()); if (!dao.getKey().endsWith("Dao") && !dao.getKey().endsWith("DaoBase") && !service.getClass().getName().startsWith("org.kuali.rice") && !FiscalYearMakerImpl.class.isAssignableFrom(service.getClass())) { failingBeanNames.add(" *** FAIL: Bean " + dao.getKey() + " implements PlatformAwareDao (" + service.getClass().getName() + ") but its name does not end in 'Dao'\n"); } } assertEquals("The following problems were detected in the DAO definitions:\n" + failingBeanNames, 0, failingBeanNames.size()); }
From source file:org.springframework.flex.config.RemotingAnnotationPostProcessor.java
/** * Helper that searches the BeanFactory for beans annotated with @RemotingDestination, being careful not to force * eager creation of the beans if it can be avoided. * /*from ww w . j a v a2 s . com*/ * @param beanFactory the BeanFactory to search * @return a set of collected RemotingDestinationMetadata */ private Set<RemotingDestinationMetadata> findRemotingDestinations(ConfigurableListableBeanFactory beanFactory) { Set<RemotingDestinationMetadata> remotingDestinations = new HashSet<RemotingDestinationMetadata>(); Set<String> beanNames = new HashSet<String>(); beanNames.addAll(Arrays.asList(beanFactory.getBeanDefinitionNames())); if (beanFactory.getParentBeanFactory() instanceof ListableBeanFactory) { beanNames.addAll(Arrays .asList(((ListableBeanFactory) beanFactory.getParentBeanFactory()).getBeanDefinitionNames())); } for (String beanName : beanNames) { if (beanName.startsWith("scopedTarget.")) { continue; } RemotingDestination remotingDestination = null; BeanDefinition bd = beanFactory.getMergedBeanDefinition(beanName); if (bd.isAbstract() || bd.isLazyInit()) { continue; } if (bd instanceof AbstractBeanDefinition) { AbstractBeanDefinition abd = (AbstractBeanDefinition) bd; if (abd.hasBeanClass()) { Class<?> beanClass = abd.getBeanClass(); remotingDestination = AnnotationUtils.findAnnotation(beanClass, RemotingDestination.class); if (remotingDestination != null) { remotingDestinations .add(new RemotingDestinationMetadata(remotingDestination, beanName, beanClass)); continue; } } } Class<?> handlerType = beanFactory.getType(beanName); if (handlerType != null) { remotingDestination = AnnotationUtils.findAnnotation(handlerType, RemotingDestination.class); } else { if (log.isDebugEnabled()) { log.debug("Could not get type of bean '" + beanName + "' from bean factory."); } } if (remotingDestination != null) { remotingDestinations .add(new RemotingDestinationMetadata(remotingDestination, beanName, handlerType)); } } return remotingDestinations; }
From source file:org.statefulj.framework.core.StatefulFactory.java
/** * Iterate thru all beans and fetch the StatefulControllers * * @param reg// w ww.j av a2 s . c o m * @return * @throws ClassNotFoundException */ private void mapControllerAndEntityClasses(BeanDefinitionRegistry reg, Map<String, Class<?>> controllerToEntityMapping, Map<Class<?>, String> entityToRepositoryMapping, Map<Class<?>, Set<String>> entityToControllerMappings) throws ClassNotFoundException { // Loop thru the bean registry // for (String bfName : reg.getBeanDefinitionNames()) { BeanDefinition bf = reg.getBeanDefinition(bfName); if (bf.isAbstract()) { logger.debug("Skipping abstract bean " + bfName); continue; } Class<?> clazz = getClassFromBeanDefinition(bf, reg); if (clazz == null) { logger.debug("Unable to resolve class for bean " + bfName); continue; } // If it's a StatefulController, map controller to the entity and the entity to the controller // if (ReflectionUtils.isAnnotationPresent(clazz, StatefulController.class)) { mapEntityWithController(controllerToEntityMapping, entityToControllerMappings, bfName, clazz); } // Else, if the Bean is a Repository, then map the // Entity associated with the Repo to the PersistenceSupport object // else if (RepositoryFactoryBeanSupport.class.isAssignableFrom(clazz)) { mapEntityToRepository(entityToRepositoryMapping, bfName, bf); } } }