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