List of usage examples for org.springframework.context.annotation ClassPathScanningCandidateComponentProvider ClassPathScanningCandidateComponentProvider
public ClassPathScanningCandidateComponentProvider(boolean useDefaultFilters)
From source file:com.mmnaseri.dragonfly.runtime.lookup.impl.AbstractClassPathScanningLookupSource.java
protected AbstractClassPathScanningLookupSource(ClassLoader classLoader) { this(new ClassPathScanningCandidateComponentProvider(false), classLoader); }
From source file:com.ocs.dynamo.ui.auth.DefaultPermissionCheckerImpl.java
@PostConstruct public void postConstruct() { // scan the class path for all classes annotated with @SpringView ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider( true);// w w w .jav a 2 s.co m provider.addIncludeFilter(new AnnotationTypeFilter(SpringView.class)); Set<BeanDefinition> views = provider.findCandidateComponents(basePackage); for (BeanDefinition d : views) { try { Class<?> clazz = Class.forName(d.getBeanClassName()); SpringView view = clazz.getAnnotation(SpringView.class); // store the permissions both under the bean name and the view // name - unfortunately these // don't always have to match but there is no way to tell this // to the authentication framework! Authorized auth = clazz.getAnnotation(Authorized.class); if (auth != null && auth.roles().length > 0) { int p = d.getBeanClassName().lastIndexOf("."); permissions.put(d.getBeanClassName().substring(p + 1), Arrays.asList(auth.roles())); editOnly.put(d.getBeanClassName().substring(p + 1), auth.editOnly()); permissions.put(view.name(), Arrays.asList(auth.roles())); editOnly.put(view.name(), auth.editOnly()); } } catch (ClassNotFoundException e) { LOG.error(e.getMessage(), e); } } }
From source file:org.openmrs.module.kenyacore.calculation.CalculationManager.java
/** * @see org.openmrs.module.kenyacore.ContentManager#refresh() *//*from ww w . j ava 2 s . co m*/ @Override public synchronized void refresh() { calculationClasses.clear(); flagCalculationClasses.clear(); ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider( false); scanner.addIncludeFilter(new AssignableTypeFilter(PatientCalculation.class)); for (BeanDefinition bd : scanner.findCandidateComponents("org.openmrs.module")) { try { Class<? extends PatientCalculation> clazz = (Class<? extends PatientCalculation>) Context .loadClass(bd.getBeanClassName()); calculationClasses.put(bd.getBeanClassName(), clazz); if (PatientFlagCalculation.class.isAssignableFrom(clazz)) { flagCalculationClasses.add((Class<? extends PatientFlagCalculation>) clazz); } } catch (ClassNotFoundException e) { e.printStackTrace(); } log.debug("Registered calculation class " + bd.getBeanClassName()); } }
From source file:com.springinpractice.ch11.oxm.ClasspathScanningJaxb2Marshaller.java
/** * @return/* www . j ava2 s . c o m*/ * @throws Exception */ private Class<?>[] getXmlRootElementClasses() throws Exception { ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider( false); scanner.addIncludeFilter(new AnnotationTypeFilter(XmlRootElement.class)); List<Class<?>> classes = new ArrayList<Class<?>>(); for (String basePackage : basePackages) { Set<BeanDefinition> definitions = scanner.findCandidateComponents(basePackage); for (BeanDefinition definition : definitions) { String className = definition.getBeanClassName(); log.info("Found class: {}", className); classes.add(Class.forName(className)); } } return classes.toArray(new Class<?>[0]); }
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.jav 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); } } } } } } }
From source file:io.gravitee.repository.mongodb.common.AbstractRepositoryConfiguration.java
protected Set<Class<?>> getInitialEntitySet() throws ClassNotFoundException { String basePackage = getMappingBasePackage(); Set<Class<?>> initialEntitySet = new HashSet<Class<?>>(); if (StringUtils.hasText(basePackage)) { ClassPathScanningCandidateComponentProvider componentProvider = new ClassPathScanningCandidateComponentProvider( false);//from ww w . java 2 s . c o m componentProvider.addIncludeFilter(new AnnotationTypeFilter(Document.class)); componentProvider.addIncludeFilter(new AnnotationTypeFilter(Persistent.class)); for (BeanDefinition candidate : componentProvider.findCandidateComponents(basePackage)) { initialEntitySet .add(ClassUtils.forName(candidate.getBeanClassName(), this.getClass().getClassLoader())); } } return initialEntitySet; }
From source file:com.reactive.hzdfs.utils.EntityFinder.java
/** * //from w w w . j av a2 s . com * @param basePkg * @return * @throws ClassNotFoundException */ public static Collection<Class<?>> findMapEntityClasses(String basePkg) throws ClassNotFoundException { ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider( false); provider.addIncludeFilter(new TypeFilter() { @Override public boolean match(MetadataReader metadataReader, MetadataReaderFactory metadataReaderFactory) throws IOException { AnnotationMetadata aMeta = metadataReader.getAnnotationMetadata(); return aMeta.hasAnnotation(IMapConfig.class.getName()); } }); return findComponents(provider, basePkg); }
From source file:com.reactivetechnologies.analytics.mapper.DataMappers.java
DataMappers() { scanner = new ClassPathScanningCandidateComponentProvider(false); scanner.addIncludeFilter(new TypeFilter() { @Override/*w w w . j a v a2s.co m*/ public boolean match(MetadataReader metadataReader, MetadataReaderFactory metadataReaderFactory) throws IOException { if (metadataReader.getClassMetadata().getClassName().equals(DataMappers.class.getName())) return false; String[] iFaces = metadataReader.getClassMetadata().getInterfaceNames(); Arrays.sort(iFaces); return Arrays.binarySearch(iFaces, DataMapper.class.getName()) >= 0; } }); Set<BeanDefinition> set = scanner.findCandidateComponents(ClassUtils.getPackageName(DataMapper.class)); if (set.isEmpty()) { throw new BeanCreationException("No data mapper implementation classes could be found under package [" + ClassUtils.getPackageName(DataMapper.class) + "]"); } for (BeanDefinition bd : set) { try { DataMapper dm = (DataMapper) ObjenesisHelper.newInstance(Class.forName(bd.getBeanClassName())); cache.put(dm.type(), dm); log.debug("Found data mapper:: Type [" + dm.type() + "] \t" + dm.getClass()); } catch (ClassNotFoundException e) { throw new BeanCreationException("Unable to instantiate data mapper class", e); } } }
From source file:com.newtranx.util.cassandra.spring.AccessorScannerConfigurer.java
@Override public void postProcessBeanFactory(ConfigurableListableBeanFactory context) throws BeansException { ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider( false) {// ww w .j ava 2 s . c o m @Override protected boolean isCandidateComponent(AnnotatedBeanDefinition beanDefinition) { return beanDefinition.getMetadata().isInterface(); } }; scanner.addIncludeFilter(new AnnotationTypeFilter(Accessor.class)); for (BeanDefinition bd : scanner.findCandidateComponents(basePackage)) { Class<?> accessorCls; try { accessorCls = Class.forName(bd.getBeanClassName()); } catch (ClassNotFoundException e) { throw new AssertionError(e); } log.info("Creating proxy accessor: " + accessorCls.getName()); MethodInterceptor interceptor = new MethodInterceptor() { private final Lazy<?> target = new Lazy<>(() -> { log.info("Creating actual accessor: " + accessorCls.getName()); Session session; if (AccessorScannerConfigurer.this.session == null) session = mainContext.getBean(Session.class); else session = AccessorScannerConfigurer.this.session; MappingManager mappingManager = new MappingManager(session); return mappingManager.createAccessor(accessorCls); }); @Override public Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable { if ("toString".equals(method.getName())) { return accessorCls.getName(); } return method.invoke(target.get(), args); } }; Enhancer enhancer = new Enhancer(); enhancer.setInterfaces(new Class<?>[] { accessorCls }); enhancer.setCallback(interceptor); Object bean = enhancer.create(); String beanName = StringUtils.uncapitalize(accessorCls.getSimpleName()); context.registerSingleton(beanName, bean); log.info("Bean registed, name=" + beanName + ", bean=" + bean.toString()); } }
From source file:com.github.javarch.persistence.orm.hibernate.spi.multitenant.CurrentTenantIdentifierFinder.java
@Override public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException { String connectionProvidersPackage = env .getProperty(HibernateEnviroment.CURRENT_TENANT_IDENTIFIER_RESOLVER_PACKAGE, ""); LOGGER.debug("Buscando @CurrentTenantIdentifierResolver no pacote {}", connectionProvidersPackage); ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider( false);//from w w w . jav a 2 s . com scanner.addIncludeFilter(new AnnotationTypeFilter(CurrentTenantIdentifierResolver.class)); Set<BeanDefinition> beanDefinitions = scanner.findCandidateComponents(connectionProvidersPackage); if (beanDefinitions.isEmpty()) { Set<BeanDefinition> defaultBeanDefinition = scanner .findCandidateComponents("com.github.javarch.persistence.orm.hibernate.spi.multitenant"); registrarBeanDefinitions(registry, defaultBeanDefinition); } else { registrarBeanDefinitions(registry, beanDefinitions); } }