org.springframework.core.type.filter.AssignableTypeFilter Java Examples
The following examples show how to use
org.springframework.core.type.filter.AssignableTypeFilter.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: AJExtensionsCompileTest.java From alfresco-repository with GNU Lesser General Public License v3.0 | 6 votes |
@Test public void testCompileExtendedServices() throws Exception { ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider(true); provider.addIncludeFilter(new AssignableTypeFilter(Extensible.class)); Set<BeanDefinition> components = provider.findCandidateComponents("org/alfresco/*"); Set<Class<? extends Extensible>> extensibles = new HashSet<>(); for (BeanDefinition component : components) { @SuppressWarnings("unchecked") Class<? extends Extensible> extensibleClass = (Class<? extends Extensible>) Class.forName(component .getBeanClassName()); extensibles.add(extensibleClass); } compile(extensibles); }
Example #2
Source File: SpringClassHierarchySupplier.java From feign-error-decoder with MIT License | 6 votes |
@Override public Set<Class<?>> getSubClasses(Class<?> clazz, String basePackage) { ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider(false); provider.addIncludeFilter(new AssignableTypeFilter(clazz)); Set<BeanDefinition> components = provider.findCandidateComponents(basePackage); return components .stream() .map( component -> { try { return Class.forName(component.getBeanClassName()); } catch (ClassNotFoundException e) { throw new IllegalStateException( String.format("Could not load child class '%s'.", component.getBeanClassName()), e); } }) .collect(Collectors.toSet()); }
Example #3
Source File: CommandHandlerUtils.java From cqrs-es-kafka with MIT License | 6 votes |
public static Map<String, CommandHandler> buildCommandHandlersRegistry(final String basePackage, final ApplicationContext context) { final Map<String, CommandHandler> registry = new HashMap<>(); final ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider(false); final AutowireCapableBeanFactory beanFactory = context.getAutowireCapableBeanFactory(); scanner.addIncludeFilter(new AssignableTypeFilter(CommandHandler.class)); CommandHandler currentHandler = null; for (BeanDefinition bean : scanner.findCandidateComponents(basePackage)) { currentHandler = (CommandHandler) beanFactory.createBean(ClassUtils.resolveClassName(bean.getBeanClassName(), context.getClassLoader()), AutowireCapableBeanFactory.AUTOWIRE_BY_TYPE, true); registry.put(currentHandler.getInterest(), currentHandler); } return registry; }
Example #4
Source File: EventHandlerUtils.java From cqrs-es-kafka with MIT License | 6 votes |
public static Map<String, EventHandler> buildEventHandlersRegistry(final String basePackage, final ApplicationContext context) { final Map<String, EventHandler> registry = new HashMap<>(); final ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider(false); final AutowireCapableBeanFactory beanFactory = context.getAutowireCapableBeanFactory(); scanner.addIncludeFilter(new AssignableTypeFilter(EventHandler.class)); EventHandler currentHandler = null; for (BeanDefinition bean : scanner.findCandidateComponents(basePackage)) { currentHandler = (EventHandler) beanFactory.createBean(ClassUtils.resolveClassName(bean.getBeanClassName(), context.getClassLoader()), AutowireCapableBeanFactory.AUTOWIRE_BY_TYPE, true); registry.put(currentHandler.getInterest(), currentHandler); } return registry; }
Example #5
Source File: RESTApiFacadeImpl.java From zstack with Apache License 2.0 | 6 votes |
void init() throws ClassNotFoundException, InstantiationException, IllegalAccessException { Set<APIEvent> boundEvents = new HashSet<APIEvent>(100); ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider(true); scanner.resetFilters(false); scanner.addIncludeFilter(new AssignableTypeFilter(APIEvent.class)); for (String pkg : getBasePkgNames()) { for (BeanDefinition bd : scanner.findCandidateComponents(pkg)) { Class<?> clazz = Class.forName(bd.getBeanClassName()); if (clazz == APIEvent.class) { continue; } APIEvent evt = (APIEvent) clazz.newInstance(); boundEvents.add(evt); } } for (APIEvent e : boundEvents) { bus.subscribeEvent(this, e); } }
Example #6
Source File: ClassPathBeanDefinitionScannerTests.java From spring-analysis-note with MIT License | 6 votes |
@Test public void testCustomAssignableTypeExcludeFilterAndDefaultsWithoutPostProcessors() { GenericApplicationContext context = new GenericApplicationContext(); ClassPathBeanDefinitionScanner scanner = new ClassPathBeanDefinitionScanner(context, true); scanner.setIncludeAnnotationConfig(false); scanner.addExcludeFilter(new AssignableTypeFilter(FooService.class)); int beanCount = scanner.scan(BASE_PACKAGE); assertEquals(6, beanCount); assertFalse(context.containsBean("fooServiceImpl")); assertTrue(context.containsBean("serviceInvocationCounter")); assertTrue(context.containsBean("stubFooDao")); assertTrue(context.containsBean("myNamedComponent")); assertTrue(context.containsBean("myNamedDao")); assertFalse(context.containsBean(AnnotationConfigUtils.AUTOWIRED_ANNOTATION_PROCESSOR_BEAN_NAME)); assertFalse(context.containsBean(AnnotationConfigUtils.COMMON_ANNOTATION_PROCESSOR_BEAN_NAME)); }
Example #7
Source File: ClassPathBeanDefinitionScannerTests.java From spring-analysis-note with MIT License | 6 votes |
@Test public void testCustomAssignableTypeExcludeFilterAndDefaults() { GenericApplicationContext context = new GenericApplicationContext(); ClassPathBeanDefinitionScanner scanner = new ClassPathBeanDefinitionScanner(context, true); scanner.addExcludeFilter(new AssignableTypeFilter(FooService.class)); int beanCount = scanner.scan(BASE_PACKAGE); assertEquals(11, beanCount); assertFalse(context.containsBean("fooServiceImpl")); assertTrue(context.containsBean("serviceInvocationCounter")); assertTrue(context.containsBean("stubFooDao")); assertTrue(context.containsBean("myNamedComponent")); assertTrue(context.containsBean("myNamedDao")); assertTrue(context.containsBean(AnnotationConfigUtils.AUTOWIRED_ANNOTATION_PROCESSOR_BEAN_NAME)); assertTrue(context.containsBean(AnnotationConfigUtils.COMMON_ANNOTATION_PROCESSOR_BEAN_NAME)); assertTrue(context.containsBean(AnnotationConfigUtils.EVENT_LISTENER_PROCESSOR_BEAN_NAME)); assertTrue(context.containsBean(AnnotationConfigUtils.EVENT_LISTENER_FACTORY_BEAN_NAME)); }
Example #8
Source File: RestConfiguration.java From moserp with Apache License 2.0 | 6 votes |
@Override public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) { ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider(true); provider.addIncludeFilter(new AssignableTypeFilter(IdentifiableEntity.class)); Set<BeanDefinition> components = provider.findCandidateComponents(this.getClass().getPackage().getName()); List<Class<?>> classes = new ArrayList<>(); components.forEach(component -> { try { classes.add(Class.forName(component.getBeanClassName())); } catch (Exception e) { e.printStackTrace(); } }); config.exposeIdsFor(classes.toArray(new Class[classes.size()])); }
Example #9
Source File: Deployer.java From zstack with Apache License 2.0 | 6 votes |
private void scanDeployer() { ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider(true); scanner.addIncludeFilter(new AssignableTypeFilter(AbstractDeployer.class)); scanner.addExcludeFilter(new AnnotationTypeFilter(Controller.class)); scanner.addExcludeFilter(new AnnotationTypeFilter(org.springframework.stereotype.Component.class)); for (BeanDefinition bd : scanner.findCandidateComponents("org.zstack.test")) { try { Class<?> clazz = Class.forName(bd.getBeanClassName()); AbstractDeployer d = (AbstractDeployer) clazz.newInstance(); deployers.put(d.getSupportedDeployerClassType(), d); logger.debug(String.format("Scanned a deployer[%s] supporting %s", d.getClass().getName(), d.getSupportedDeployerClassType())); } catch (Exception e) { logger.warn(String.format("unable to create deployer[%s], it's probably there are some beans requried by deployer is not loaded, skip it. error message:\n%s", bd.getBeanClassName(), e.getMessage())); } } }
Example #10
Source File: ConfigurationManagerImpl.java From zstack with Apache License 2.0 | 6 votes |
private void generateApiMessageGroovyClass(StringBuilder sb, List<String> basePkgs) { ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider(true); scanner.addIncludeFilter(new AssignableTypeFilter(APIMessage.class)); scanner.addIncludeFilter(new AssignableTypeFilter(APIReply.class)); scanner.addIncludeFilter(new AssignableTypeFilter(APIEvent.class)); scanner.addExcludeFilter(new AnnotationTypeFilter(Controller.class)); scanner.addExcludeFilter(new AnnotationTypeFilter(Component.class)); for (String pkg : basePkgs) { for (BeanDefinition bd : scanner.findCandidateComponents(pkg)) { try { Class<?> clazz = Class.forName(bd.getBeanClassName()); //classToApiMessageGroovyClass(sb, clazz); classToApiMessageGroovyInformation(sb, clazz); } catch (ClassNotFoundException e) { logger.warn(String.format("Unable to generate groovy class for %s", bd.getBeanClassName()), e); } } } }
Example #11
Source File: TransformerUtils.java From DataGenerator with Apache License 2.0 | 6 votes |
public static Set<Class<FunctionTransformation>> findFunctionTransformers(String basePackage) { ClassPathScanner classPathScanner = new SimpleClassPathScanner(basePackage); classPathScanner.addIncludeFilter(new AssignableTypeFilter(FunctionTransformation.class)); for(BeanDefinition bd : classPathScanner.findComponents()) { try { Class cl = Class.forName(bd.getBeanClassName()); if(!Modifier.isAbstract(cl.getModifiers())) { logger.debug("Adding transformer function {}", cl); functionTransformerClasses.add(cl); } else { logger.debug("Ignoring transformer function {}", cl); } } catch (ClassNotFoundException e) { e.printStackTrace(); } } return functionTransformerClasses; }
Example #12
Source File: Schema.java From usergrid with Apache License 2.0 | 6 votes |
@SuppressWarnings("unchecked") public void scanEntities() { synchronized ( entitiesScanPath ) { for ( String path : entitiesScanPath ) { ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider( true ); provider.addIncludeFilter( new AssignableTypeFilter( TypedEntity.class ) ); Set<BeanDefinition> components = provider.findCandidateComponents( path ); for ( BeanDefinition component : components ) { try { Class<?> cls = Class.forName( component.getBeanClassName() ); if ( Entity.class.isAssignableFrom( cls ) ) { registerEntity( ( Class<? extends Entity> ) cls ); } } catch ( ClassNotFoundException e ) { logger.error( "Unable to get entity class ", e ); } } registerEntity( DynamicEntity.class ); } } }
Example #13
Source File: ClassPathBeanDefinitionScannerTests.java From spring-analysis-note with MIT License | 6 votes |
@Test public void testMultipleCustomExcludeFiltersAndDefaults() { GenericApplicationContext context = new GenericApplicationContext(); ClassPathBeanDefinitionScanner scanner = new ClassPathBeanDefinitionScanner(context, true); scanner.addExcludeFilter(new AssignableTypeFilter(FooService.class)); scanner.addExcludeFilter(new AnnotationTypeFilter(Aspect.class)); int beanCount = scanner.scan(BASE_PACKAGE); assertEquals(10, beanCount); assertFalse(context.containsBean("fooServiceImpl")); assertFalse(context.containsBean("serviceInvocationCounter")); assertTrue(context.containsBean("stubFooDao")); assertTrue(context.containsBean("myNamedComponent")); assertTrue(context.containsBean("myNamedDao")); assertTrue(context.containsBean(AnnotationConfigUtils.AUTOWIRED_ANNOTATION_PROCESSOR_BEAN_NAME)); assertTrue(context.containsBean(AnnotationConfigUtils.COMMON_ANNOTATION_PROCESSOR_BEAN_NAME)); assertTrue(context.containsBean(AnnotationConfigUtils.EVENT_LISTENER_PROCESSOR_BEAN_NAME)); assertTrue(context.containsBean(AnnotationConfigUtils.EVENT_LISTENER_FACTORY_BEAN_NAME)); }
Example #14
Source File: QueryByCriteriaJaxbTest.java From rice with Educational Community License v2.0 | 6 votes |
/** * Search the classes in the PREDICATE_BASE_PACKAGE and build a list of all simple (non-composite) Predicate classes * @return a list of simple Predicate classes * @throws ClassNotFoundException */ private ArrayList<Class<?>> discoverSimplePredicateClasses() throws ClassNotFoundException { ArrayList<Class<?>> discoveredPredicateClasses = new ArrayList<Class<?>>(); // This technique was copped from: // http://stackoverflow.com/questions/520328/can-you-find-all-classes-in-a-package-using-reflection ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider(true); provider.addIncludeFilter(new AssignableTypeFilter(Predicate.class)); // scan in org.example.package Set<BeanDefinition> components = provider.findCandidateComponents(PREDICATE_BASE_PACKAGE); for (BeanDefinition component : components) { Class cls = Class.forName(component.getBeanClassName()); if (!cls.isMemberClass() // filter out inner class predicates from test packages && Predicate.class.isAssignableFrom(cls) // filter out any non-predicate classes && !CompositePredicate.class.isAssignableFrom(cls)) // filter out 'and' and 'or' predicates { discoveredPredicateClasses.add(cls); // use class cls found LOG.debug("discovered " + cls.toString()); } } return discoveredPredicateClasses; }
Example #15
Source File: MagicalMaterialAndMaterialConfigConversionTest.java From gocd with Apache License 2.0 | 6 votes |
@Test public void failIfNewTypeOfMaterialIsNotAddedInTheAboveTest() throws Exception { ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider(false); provider.addIncludeFilter(new AssignableTypeFilter(MaterialConfig.class)); Set<BeanDefinition> candidateComponents = provider.findCandidateComponents("com/thoughtworks"); List<Class> reflectionsSubTypesOf = candidateComponents.stream().map(beanDefinition -> beanDefinition.getBeanClassName()).map(s -> { try { return Class.forName(s); } catch (ClassNotFoundException e) { throw new RuntimeException(e); } }).collect(Collectors.toList()); reflectionsSubTypesOf.removeIf(this::isNotAConcrete_NonTest_MaterialConfigImplementation); List<Class> allExpectedMaterialConfigImplementations = allMaterialConfigsWhichAreDataPointsInThisTest(); assertThatAllMaterialConfigsInCodeAreTestedHere(reflectionsSubTypesOf, allExpectedMaterialConfigImplementations); }
Example #16
Source File: CommandController.java From ESarch with Apache License 2.0 | 6 votes |
@PostConstruct private void initializeCommandApi() { logger.info("Initialising the command API list."); ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider(false); BASE_COMMAND_CLASS.forEach(superCmdClazz -> provider.addIncludeFilter(new AssignableTypeFilter(superCmdClazz))); List<String> commandClassNames = provider.findCandidateComponents(CORE_API_PACKAGE) .stream() .map(BeanDefinition::getBeanClassName) .collect(Collectors.toList()); simpleToFullClassName = commandClassNames.stream().collect(Collectors.toMap( this::simpleCommandClassName, commandClassName -> commandClassName )); commandApi = commandClassNames.stream().collect(Collectors.toMap( this::simpleCommandClassName, this::commandJsonSchema )); logger.info("{} commands available.", commandApi.size()); }
Example #17
Source File: ErrorService.java From gemini with Apache License 2.0 | 6 votes |
@Override public void afterPropertiesSet() throws Exception { ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider(false); provider.addIncludeFilter(new AssignableTypeFilter(GeminiException.class)); Set<BeanDefinition> components = provider.findCandidateComponents("it.at7.gemini"); for (BeanDefinition component : components) { Class<?> gemException = Class.forName(component.getBeanClassName()); Class<?>[] innerClasses = gemException.getDeclaredClasses(); for (Class<?> innerClass : innerClasses) { String simpleName = innerClass.getSimpleName(); if (simpleName.equals("Code")) { Enum[] enumConstants = (Enum[]) innerClass.getEnumConstants(); register(enumConstants); } } } }
Example #18
Source File: WebServicesImplTest.java From kfs with GNU Affero General Public License v3.0 | 6 votes |
public void testWebServices() throws Exception { ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider(false); provider.addIncludeFilter(new AssignableTypeFilter(KfsKcSoapService.class)); Set<BeanDefinition> components = provider.findCandidateComponents(TEST_BASE_PACKAGE); for (BeanDefinition component : components) { String className = component.getBeanClassName(); Class<KfsKcSoapService> kfsServiceClass = (Class<KfsKcSoapService>) Class.forName(className); try { KfsKcSoapService kfsServiceInst = kfsServiceClass.newInstance(); URL myWsdl = kfsServiceInst.getWsdl(); assertTrue(isValidfetchXML(myWsdl)); } catch (Exception ex) { fail(ex.getMessage()); } } }
Example #19
Source File: ClassPathBeanDefinitionScannerTests.java From spring4-understanding with Apache License 2.0 | 6 votes |
@Test public void testCustomAssignableTypeExcludeFilterAndDefaults() { GenericApplicationContext context = new GenericApplicationContext(); ClassPathBeanDefinitionScanner scanner = new ClassPathBeanDefinitionScanner(context, true); scanner.addExcludeFilter(new AssignableTypeFilter(FooService.class)); int beanCount = scanner.scan(BASE_PACKAGE); assertEquals(11, beanCount); assertFalse(context.containsBean("fooServiceImpl")); assertTrue(context.containsBean("serviceInvocationCounter")); assertTrue(context.containsBean("stubFooDao")); assertTrue(context.containsBean("myNamedComponent")); assertTrue(context.containsBean("myNamedDao")); assertTrue(context.containsBean(AnnotationConfigUtils.AUTOWIRED_ANNOTATION_PROCESSOR_BEAN_NAME)); assertTrue(context.containsBean(AnnotationConfigUtils.REQUIRED_ANNOTATION_PROCESSOR_BEAN_NAME)); assertTrue(context.containsBean(AnnotationConfigUtils.COMMON_ANNOTATION_PROCESSOR_BEAN_NAME)); assertTrue(context.containsBean(AnnotationConfigUtils.EVENT_LISTENER_PROCESSOR_BEAN_NAME)); assertTrue(context.containsBean(AnnotationConfigUtils.EVENT_LISTENER_FACTORY_BEAN_NAME)); }
Example #20
Source File: ClassPathBeanDefinitionScannerTests.java From spring4-understanding with Apache License 2.0 | 6 votes |
@Test public void testCustomAssignableTypeExcludeFilterAndDefaultsWithoutPostProcessors() { GenericApplicationContext context = new GenericApplicationContext(); ClassPathBeanDefinitionScanner scanner = new ClassPathBeanDefinitionScanner(context, true); scanner.setIncludeAnnotationConfig(false); scanner.addExcludeFilter(new AssignableTypeFilter(FooService.class)); int beanCount = scanner.scan(BASE_PACKAGE); assertEquals(5, beanCount); assertFalse(context.containsBean("fooServiceImpl")); assertTrue(context.containsBean("serviceInvocationCounter")); assertTrue(context.containsBean("stubFooDao")); assertTrue(context.containsBean("myNamedComponent")); assertTrue(context.containsBean("myNamedDao")); assertFalse(context.containsBean(AnnotationConfigUtils.AUTOWIRED_ANNOTATION_PROCESSOR_BEAN_NAME)); assertFalse(context.containsBean(AnnotationConfigUtils.REQUIRED_ANNOTATION_PROCESSOR_BEAN_NAME)); assertFalse(context.containsBean(AnnotationConfigUtils.COMMON_ANNOTATION_PROCESSOR_BEAN_NAME)); }
Example #21
Source File: ClassPathBeanDefinitionScannerTests.java From spring4-understanding with Apache License 2.0 | 6 votes |
@Test public void testMultipleCustomExcludeFiltersAndDefaults() { GenericApplicationContext context = new GenericApplicationContext(); ClassPathBeanDefinitionScanner scanner = new ClassPathBeanDefinitionScanner(context, true); scanner.addExcludeFilter(new AssignableTypeFilter(FooService.class)); scanner.addExcludeFilter(new AnnotationTypeFilter(Aspect.class)); int beanCount = scanner.scan(BASE_PACKAGE); assertEquals(10, beanCount); assertFalse(context.containsBean("fooServiceImpl")); assertFalse(context.containsBean("serviceInvocationCounter")); assertTrue(context.containsBean("stubFooDao")); assertTrue(context.containsBean("myNamedComponent")); assertTrue(context.containsBean("myNamedDao")); assertTrue(context.containsBean(AnnotationConfigUtils.AUTOWIRED_ANNOTATION_PROCESSOR_BEAN_NAME)); assertTrue(context.containsBean(AnnotationConfigUtils.REQUIRED_ANNOTATION_PROCESSOR_BEAN_NAME)); assertTrue(context.containsBean(AnnotationConfigUtils.COMMON_ANNOTATION_PROCESSOR_BEAN_NAME)); assertTrue(context.containsBean(AnnotationConfigUtils.EVENT_LISTENER_PROCESSOR_BEAN_NAME)); assertTrue(context.containsBean(AnnotationConfigUtils.EVENT_LISTENER_FACTORY_BEAN_NAME)); }
Example #22
Source File: ClassPathBeanDefinitionScannerTests.java From java-technology-stack with MIT License | 6 votes |
@Test public void testMultipleCustomExcludeFiltersAndDefaults() { GenericApplicationContext context = new GenericApplicationContext(); ClassPathBeanDefinitionScanner scanner = new ClassPathBeanDefinitionScanner(context, true); scanner.addExcludeFilter(new AssignableTypeFilter(FooService.class)); scanner.addExcludeFilter(new AnnotationTypeFilter(Aspect.class)); int beanCount = scanner.scan(BASE_PACKAGE); assertEquals(10, beanCount); assertFalse(context.containsBean("fooServiceImpl")); assertFalse(context.containsBean("serviceInvocationCounter")); assertTrue(context.containsBean("stubFooDao")); assertTrue(context.containsBean("myNamedComponent")); assertTrue(context.containsBean("myNamedDao")); assertTrue(context.containsBean(AnnotationConfigUtils.AUTOWIRED_ANNOTATION_PROCESSOR_BEAN_NAME)); assertTrue(context.containsBean(AnnotationConfigUtils.COMMON_ANNOTATION_PROCESSOR_BEAN_NAME)); assertTrue(context.containsBean(AnnotationConfigUtils.EVENT_LISTENER_PROCESSOR_BEAN_NAME)); assertTrue(context.containsBean(AnnotationConfigUtils.EVENT_LISTENER_FACTORY_BEAN_NAME)); }
Example #23
Source File: ClassPathBeanDefinitionScannerTests.java From java-technology-stack with MIT License | 6 votes |
@Test public void testCustomAssignableTypeExcludeFilterAndDefaultsWithoutPostProcessors() { GenericApplicationContext context = new GenericApplicationContext(); ClassPathBeanDefinitionScanner scanner = new ClassPathBeanDefinitionScanner(context, true); scanner.setIncludeAnnotationConfig(false); scanner.addExcludeFilter(new AssignableTypeFilter(FooService.class)); int beanCount = scanner.scan(BASE_PACKAGE); assertEquals(6, beanCount); assertFalse(context.containsBean("fooServiceImpl")); assertTrue(context.containsBean("serviceInvocationCounter")); assertTrue(context.containsBean("stubFooDao")); assertTrue(context.containsBean("myNamedComponent")); assertTrue(context.containsBean("myNamedDao")); assertFalse(context.containsBean(AnnotationConfigUtils.AUTOWIRED_ANNOTATION_PROCESSOR_BEAN_NAME)); assertFalse(context.containsBean(AnnotationConfigUtils.COMMON_ANNOTATION_PROCESSOR_BEAN_NAME)); }
Example #24
Source File: ClassPathBeanDefinitionScannerTests.java From java-technology-stack with MIT License | 6 votes |
@Test public void testCustomAssignableTypeExcludeFilterAndDefaults() { GenericApplicationContext context = new GenericApplicationContext(); ClassPathBeanDefinitionScanner scanner = new ClassPathBeanDefinitionScanner(context, true); scanner.addExcludeFilter(new AssignableTypeFilter(FooService.class)); int beanCount = scanner.scan(BASE_PACKAGE); assertEquals(11, beanCount); assertFalse(context.containsBean("fooServiceImpl")); assertTrue(context.containsBean("serviceInvocationCounter")); assertTrue(context.containsBean("stubFooDao")); assertTrue(context.containsBean("myNamedComponent")); assertTrue(context.containsBean("myNamedDao")); assertTrue(context.containsBean(AnnotationConfigUtils.AUTOWIRED_ANNOTATION_PROCESSOR_BEAN_NAME)); assertTrue(context.containsBean(AnnotationConfigUtils.COMMON_ANNOTATION_PROCESSOR_BEAN_NAME)); assertTrue(context.containsBean(AnnotationConfigUtils.EVENT_LISTENER_PROCESSOR_BEAN_NAME)); assertTrue(context.containsBean(AnnotationConfigUtils.EVENT_LISTENER_FACTORY_BEAN_NAME)); }
Example #25
Source File: BusJacksonAutoConfiguration.java From spring-cloud-bus with Apache License 2.0 | 6 votes |
private Class<?>[] findSubTypes() { List<Class<?>> types = new ArrayList<>(); if (this.packagesToScan != null) { for (String pkg : this.packagesToScan) { ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider( false); provider.addIncludeFilter( new AssignableTypeFilter(RemoteApplicationEvent.class)); Set<BeanDefinition> components = provider.findCandidateComponents(pkg); for (BeanDefinition component : components) { try { types.add(Class.forName(component.getBeanClassName())); } catch (ClassNotFoundException e) { throw new IllegalStateException( "Failed to scan classpath for remote event classes", e); } } } } if (log.isDebugEnabled()) { log.debug("Found sub types: " + types); } return types.toArray(new Class<?>[0]); }
Example #26
Source File: DatastorePersistentEntityImpl.java From spring-cloud-gcp with Apache License 2.0 | 5 votes |
private void initializeSubclassEntities() { ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider(false); provider.addIncludeFilter(new AssignableTypeFilter(getType())); for (BeanDefinition component : provider.findCandidateComponents(getType().getPackage().getName())) { try { this.datastoreMappingContext.getPersistentEntity(Class.forName(component.getBeanClassName())); } catch (ClassNotFoundException ex) { throw new DatastoreDataException("Could not find expected subclass for this entity: " + getType(), ex); } } }
Example #27
Source File: ComponentScanBeanDefinitionParser.java From spring4-understanding with Apache License 2.0 | 5 votes |
@SuppressWarnings("unchecked") protected TypeFilter createTypeFilter(Element element, ClassLoader classLoader, ParserContext parserContext) { String filterType = element.getAttribute(FILTER_TYPE_ATTRIBUTE); String expression = element.getAttribute(FILTER_EXPRESSION_ATTRIBUTE); expression = parserContext.getReaderContext().getEnvironment().resolvePlaceholders(expression); try { if ("annotation".equals(filterType)) { return new AnnotationTypeFilter((Class<Annotation>) classLoader.loadClass(expression)); } else if ("assignable".equals(filterType)) { return new AssignableTypeFilter(classLoader.loadClass(expression)); } else if ("aspectj".equals(filterType)) { return new AspectJTypeFilter(expression, classLoader); } else if ("regex".equals(filterType)) { return new RegexPatternTypeFilter(Pattern.compile(expression)); } else if ("custom".equals(filterType)) { Class<?> filterClass = classLoader.loadClass(expression); if (!TypeFilter.class.isAssignableFrom(filterClass)) { throw new IllegalArgumentException( "Class is not assignable to [" + TypeFilter.class.getName() + "]: " + expression); } return (TypeFilter) BeanUtils.instantiateClass(filterClass); } else { throw new IllegalArgumentException("Unsupported filter type: " + filterType); } } catch (ClassNotFoundException ex) { throw new FatalBeanException("Type filter class not found: " + expression, ex); } }
Example #28
Source File: ComponentScanBeanDefinitionParser.java From lams with GNU General Public License v2.0 | 5 votes |
@SuppressWarnings("unchecked") protected TypeFilter createTypeFilter(Element element, ClassLoader classLoader, ParserContext parserContext) { String filterType = element.getAttribute(FILTER_TYPE_ATTRIBUTE); String expression = element.getAttribute(FILTER_EXPRESSION_ATTRIBUTE); expression = parserContext.getReaderContext().getEnvironment().resolvePlaceholders(expression); try { if ("annotation".equals(filterType)) { return new AnnotationTypeFilter((Class<Annotation>) classLoader.loadClass(expression)); } else if ("assignable".equals(filterType)) { return new AssignableTypeFilter(classLoader.loadClass(expression)); } else if ("aspectj".equals(filterType)) { return new AspectJTypeFilter(expression, classLoader); } else if ("regex".equals(filterType)) { return new RegexPatternTypeFilter(Pattern.compile(expression)); } else if ("custom".equals(filterType)) { Class<?> filterClass = classLoader.loadClass(expression); if (!TypeFilter.class.isAssignableFrom(filterClass)) { throw new IllegalArgumentException( "Class is not assignable to [" + TypeFilter.class.getName() + "]: " + expression); } return (TypeFilter) BeanUtils.instantiateClass(filterClass); } else { throw new IllegalArgumentException("Unsupported filter type: " + filterType); } } catch (ClassNotFoundException ex) { throw new FatalBeanException("Type filter class not found: " + expression, ex); } }
Example #29
Source File: AssignableTypeFilterTests.java From spring4-understanding with Apache License 2.0 | 5 votes |
@Test public void interfaceMatch() throws Exception { MetadataReaderFactory metadataReaderFactory = new SimpleMetadataReaderFactory(); String classUnderTest = "org.springframework.core.type.AssignableTypeFilterTests$TestInterfaceImpl"; MetadataReader metadataReader = metadataReaderFactory.getMetadataReader(classUnderTest); AssignableTypeFilter filter = new AssignableTypeFilter(TestInterface.class); assertTrue(filter.match(metadataReader, metadataReaderFactory)); ClassloadingAssertions.assertClassNotLoaded(classUnderTest); }
Example #30
Source File: AssignableTypeFilterTests.java From spring4-understanding with Apache License 2.0 | 5 votes |
@Test public void superClassMatch() throws Exception { MetadataReaderFactory metadataReaderFactory = new SimpleMetadataReaderFactory(); String classUnderTest = "org.springframework.core.type.AssignableTypeFilterTests$SomeDaoLikeImpl"; MetadataReader metadataReader = metadataReaderFactory.getMetadataReader(classUnderTest); AssignableTypeFilter filter = new AssignableTypeFilter(SimpleJdbcDaoSupport.class); assertTrue(filter.match(metadataReader, metadataReaderFactory)); ClassloadingAssertions.assertClassNotLoaded(classUnderTest); }