List of usage examples for org.springframework.core.type.filter AssignableTypeFilter AssignableTypeFilter
public AssignableTypeFilter(Class<?> targetType)
From source file:org.alfresco.repo.dictionary.ModelUtils.java
/** * This method doesn't seem to work due to possible spring bug in 3.0.0? * https://jira.springsource.org/browse/SPR-6592?page=com.atlassian.jirafisheyeplugin%3Afisheye-issuepanel * /*from w ww . j a va2s . co m*/ * @return */ @SuppressWarnings("unchecked") public static HashMap<String, AbstractConstraint> getAllConstrainTypesAuto() { HashMap<String, AbstractConstraint> classList = new HashMap<String, AbstractConstraint>(); ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider( true); provider.addIncludeFilter(new AssignableTypeFilter(AbstractConstraint.class)); // scan in org.example.package Set<BeanDefinition> components = provider .findCandidateComponents("org/alfresco/repo/dictionary/constraint"); for (BeanDefinition component : components) { try { Class clazz = Class.forName(component.getBeanClassName()); AbstractConstraint object = (AbstractConstraint) clazz.newInstance(); String name = object.getType(); classList.put(name, object); } catch (ClassNotFoundException e) { } catch (InstantiationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return classList; }
From source file:org.apache.syncope.client.console.init.ClassPathScanImplementationLookup.java
@SuppressWarnings("unchecked") public void load() { pages = new ArrayList<>(); previewers = new ArrayList<>(); extPages = new ArrayList<>(); extWidgets = new ArrayList<>(); ssoLoginFormPanels = new ArrayList<>(); reportletConfs = new HashMap<>(); accountRuleConfs = new HashMap<>(); passwordRuleConfs = new HashMap<>(); pullCorrelationRuleConfs = new HashMap<>(); ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider( false);/*from w w w. j av a 2s. c om*/ scanner.addIncludeFilter(new AssignableTypeFilter(BasePage.class)); scanner.addIncludeFilter(new AssignableTypeFilter(AbstractBinaryPreviewer.class)); scanner.addIncludeFilter(new AssignableTypeFilter(BaseExtPage.class)); scanner.addIncludeFilter(new AssignableTypeFilter(BaseExtWidget.class)); scanner.addIncludeFilter(new AssignableTypeFilter(SSOLoginFormPanel.class)); scanner.addIncludeFilter(new AssignableTypeFilter(ReportletConf.class)); scanner.addIncludeFilter(new AssignableTypeFilter(AccountRuleConf.class)); scanner.addIncludeFilter(new AssignableTypeFilter(PasswordRuleConf.class)); scanner.addIncludeFilter(new AssignableTypeFilter(PullCorrelationRuleConf.class)); scanner.findCandidateComponents(getBasePackage()).forEach(bd -> { try { Class<?> clazz = ClassUtils.resolveClassName(bd.getBeanClassName(), ClassUtils.getDefaultClassLoader()); boolean isAbsractClazz = Modifier.isAbstract(clazz.getModifiers()); if (!isAbsractClazz) { if (BaseExtPage.class.isAssignableFrom(clazz)) { if (clazz.isAnnotationPresent(ExtPage.class)) { extPages.add((Class<? extends BaseExtPage>) clazz); } else { LOG.error("Could not find annotation {} in {}, ignoring", ExtPage.class.getName(), clazz.getName()); } } else if (BaseExtWidget.class.isAssignableFrom(clazz)) { if (clazz.isAnnotationPresent(ExtWidget.class)) { extWidgets.add((Class<? extends BaseExtWidget>) clazz); } else { LOG.error("Could not find annotation {} in {}, ignoring", ExtWidget.class.getName(), clazz.getName()); } } else if (BasePage.class.isAssignableFrom(clazz)) { pages.add((Class<? extends BasePage>) clazz); } else if (AbstractBinaryPreviewer.class.isAssignableFrom(clazz)) { previewers.add((Class<? extends AbstractBinaryPreviewer>) clazz); } else if (SSOLoginFormPanel.class.isAssignableFrom(clazz)) { ssoLoginFormPanels.add((Class<? extends SSOLoginFormPanel>) clazz); } else if (ReportletConf.class.isAssignableFrom(clazz)) { reportletConfs.put(clazz.getName(), (Class<? extends ReportletConf>) clazz); } else if (AccountRuleConf.class.isAssignableFrom(clazz)) { accountRuleConfs.put(clazz.getName(), (Class<? extends AccountRuleConf>) clazz); } else if (PasswordRuleConf.class.isAssignableFrom(clazz)) { passwordRuleConfs.put(clazz.getName(), (Class<? extends PasswordRuleConf>) clazz); } else if (PullCorrelationRuleConf.class.isAssignableFrom(clazz)) { pullCorrelationRuleConfs.put(clazz.getName(), (Class<? extends PullCorrelationRuleConf>) clazz); } } } catch (Throwable t) { LOG.warn("Could not inspect class {}", bd.getBeanClassName(), t); } }); pages = Collections.unmodifiableList(pages); previewers = Collections.unmodifiableList(previewers); Collections.sort(extPages, (o1, o2) -> ObjectUtils.compare(o1.getAnnotation(ExtPage.class).priority(), o2.getAnnotation(ExtPage.class).priority())); extPages = Collections.unmodifiableList(extPages); Collections.sort(extWidgets, (o1, o2) -> ObjectUtils.compare(o1.getAnnotation(ExtWidget.class).priority(), o2.getAnnotation(ExtWidget.class).priority())); extWidgets = Collections.unmodifiableList(extWidgets); ssoLoginFormPanels = Collections.unmodifiableList(ssoLoginFormPanels); reportletConfs = Collections.unmodifiableMap(reportletConfs); accountRuleConfs = Collections.unmodifiableMap(accountRuleConfs); passwordRuleConfs = Collections.unmodifiableMap(passwordRuleConfs); pullCorrelationRuleConfs = Collections.unmodifiableMap(pullCorrelationRuleConfs); LOG.debug("Binary previewers found: {}", previewers); LOG.debug("Extension pages found: {}", extPages); LOG.debug("Extension widgets found: {}", extWidgets); LOG.debug("SSO Login pages found: {}", ssoLoginFormPanels); LOG.debug("Reportlet configurations found: {}", reportletConfs); LOG.debug("Account Rule configurations found: {}", accountRuleConfs); LOG.debug("Password Rule configurations found: {}", passwordRuleConfs); LOG.debug("Pull Correlation Rule configurations found: {}", pullCorrelationRuleConfs); }
From source file:org.apache.syncope.client.console.init.ImplementationClassNamesLoader.java
@Override @SuppressWarnings("unchecked") public void load() { previewers = new ArrayList<>(); extPanels = new ArrayList<>(); ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider( false);//from w w w. j a va 2 s . c o m scanner.addIncludeFilter(new AssignableTypeFilter(AbstractBinaryPreviewer.class)); scanner.addIncludeFilter(new AssignableTypeFilter(AbstractExtensionPanel.class)); for (BeanDefinition bd : scanner.findCandidateComponents(StringUtils.EMPTY)) { try { Class<?> clazz = ClassUtils.resolveClassName(bd.getBeanClassName(), ClassUtils.getDefaultClassLoader()); boolean isAbsractClazz = Modifier.isAbstract(clazz.getModifiers()); if (AbstractBinaryPreviewer.class.isAssignableFrom(clazz) && !isAbsractClazz) { previewers.add((Class<? extends AbstractBinaryPreviewer>) clazz); } else if (AbstractExtensionPanel.class.isAssignableFrom(clazz) && !isAbsractClazz) { extPanels.add((Class<? extends AbstractExtensionPanel>) clazz); } } catch (Throwable t) { LOG.warn("Could not inspect class {}", bd.getBeanClassName(), t); } } previewers = Collections.unmodifiableList(previewers); extPanels = Collections.unmodifiableList(extPanels); LOG.debug("Binary previewers found: {}", previewers); LOG.debug("Extension panels found: {}", extPanels); }
From source file:org.apache.syncope.core.logic.init.ClassPathScanImplementationLookup.java
@Override @SuppressWarnings("unchecked") public void load() { classNames = new EnumMap<>(Type.class); for (Type type : Type.values()) { classNames.put(type, new HashSet<String>()); }//from w w w. j a v a2s . co m reportletClasses = new HashMap<>(); accountRuleClasses = new HashMap<>(); passwordRuleClasses = new HashMap<>(); ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider( false); scanner.addIncludeFilter(new AssignableTypeFilter(Reportlet.class)); scanner.addIncludeFilter(new AssignableTypeFilter(AccountRule.class)); scanner.addIncludeFilter(new AssignableTypeFilter(PasswordRule.class)); scanner.addIncludeFilter(new AssignableTypeFilter(MappingItemTransformer.class)); scanner.addIncludeFilter(new AssignableTypeFilter(SchedTaskJobDelegate.class)); scanner.addIncludeFilter(new AssignableTypeFilter(ReconciliationFilterBuilder.class)); scanner.addIncludeFilter(new AssignableTypeFilter(LogicActions.class)); scanner.addIncludeFilter(new AssignableTypeFilter(PropagationActions.class)); scanner.addIncludeFilter(new AssignableTypeFilter(PullActions.class)); scanner.addIncludeFilter(new AssignableTypeFilter(PushActions.class)); scanner.addIncludeFilter(new AssignableTypeFilter(PullCorrelationRule.class)); scanner.addIncludeFilter(new AssignableTypeFilter(Validator.class)); scanner.addIncludeFilter(new AssignableTypeFilter(NotificationRecipientsProvider.class)); for (BeanDefinition bd : scanner.findCandidateComponents(StringUtils.EMPTY)) { try { Class<?> clazz = ClassUtils.resolveClassName(bd.getBeanClassName(), ClassUtils.getDefaultClassLoader()); boolean isAbsractClazz = Modifier.isAbstract(clazz.getModifiers()); if (Reportlet.class.isAssignableFrom(clazz) && !isAbsractClazz) { ReportletConfClass annotation = clazz.getAnnotation(ReportletConfClass.class); if (annotation == null) { LOG.warn("Found Reportlet {} without declared configuration", clazz.getName()); } else { classNames.get(Type.REPORTLET_CONF).add(annotation.value().getName()); reportletClasses.put(annotation.value(), (Class<? extends Reportlet>) clazz); } } if (AccountRule.class.isAssignableFrom(clazz) && !isAbsractClazz) { AccountRuleConfClass annotation = clazz.getAnnotation(AccountRuleConfClass.class); if (annotation == null) { LOG.warn("Found account policy rule {} without declared configuration", clazz.getName()); } else { classNames.get(Type.ACCOUNT_RULE_CONF).add(annotation.value().getName()); accountRuleClasses.put(annotation.value(), (Class<? extends AccountRule>) clazz); } } if (PasswordRule.class.isAssignableFrom(clazz) && !isAbsractClazz) { PasswordRuleConfClass annotation = clazz.getAnnotation(PasswordRuleConfClass.class); if (annotation == null) { LOG.warn("Found password policy rule {} without declared configuration", clazz.getName()); } else { classNames.get(Type.PASSWORD_RULE_CONF).add(annotation.value().getName()); passwordRuleClasses.put(annotation.value(), (Class<? extends PasswordRule>) clazz); } } if (MappingItemTransformer.class.isAssignableFrom(clazz) && !isAbsractClazz && !clazz.equals(JEXLMappingItemTransformerImpl.class)) { classNames.get(Type.MAPPING_ITEM_TRANSFORMER).add(clazz.getName()); } if (SchedTaskJobDelegate.class.isAssignableFrom(clazz) && !isAbsractClazz && !PullJobDelegate.class.isAssignableFrom(clazz) && !PushJobDelegate.class.isAssignableFrom(clazz) && !GroupMemberProvisionTaskJobDelegate.class.isAssignableFrom(clazz)) { classNames.get(Type.TASKJOBDELEGATE).add(bd.getBeanClassName()); } if (ReconciliationFilterBuilder.class.isAssignableFrom(clazz) && !isAbsractClazz) { classNames.get(Type.RECONCILIATION_FILTER_BUILDER).add(bd.getBeanClassName()); } if (LogicActions.class.isAssignableFrom(clazz) && !isAbsractClazz) { classNames.get(Type.LOGIC_ACTIONS).add(bd.getBeanClassName()); } if (PropagationActions.class.isAssignableFrom(clazz) && !isAbsractClazz) { classNames.get(Type.PROPAGATION_ACTIONS).add(bd.getBeanClassName()); } if (PullActions.class.isAssignableFrom(clazz) && !isAbsractClazz) { classNames.get(Type.PULL_ACTIONS).add(bd.getBeanClassName()); } if (PushActions.class.isAssignableFrom(clazz) && !isAbsractClazz) { classNames.get(Type.PUSH_ACTIONS).add(bd.getBeanClassName()); } if (PullCorrelationRule.class.isAssignableFrom(clazz) && !isAbsractClazz && !PlainAttrsPullCorrelationRule.class.isAssignableFrom(clazz)) { classNames.get(Type.PULL_CORRELATION_RULE).add(bd.getBeanClassName()); } if (Validator.class.isAssignableFrom(clazz) && !isAbsractClazz) { classNames.get(Type.VALIDATOR).add(bd.getBeanClassName()); } if (NotificationRecipientsProvider.class.isAssignableFrom(clazz) && !isAbsractClazz) { classNames.get(Type.NOTIFICATION_RECIPIENTS_PROVIDER).add(bd.getBeanClassName()); } } catch (Throwable t) { LOG.warn("Could not inspect class {}", bd.getBeanClassName(), t); } } classNames = Collections.unmodifiableMap(classNames); reportletClasses = Collections.unmodifiableMap(reportletClasses); accountRuleClasses = Collections.unmodifiableMap(accountRuleClasses); passwordRuleClasses = Collections.unmodifiableMap(passwordRuleClasses); LOG.debug("Implementation classes found: {}", classNames); }
From source file:org.apache.syncope.core.logic.init.ImplementationClassNamesLoader.java
@Override public void load() { classNames = new EnumMap<>(Type.class); for (Type type : Type.values()) { classNames.put(type, new HashSet<String>()); }// w w w . ja va 2s . c o m ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider( false); scanner.addIncludeFilter(new AssignableTypeFilter(Reportlet.class)); scanner.addIncludeFilter(new AssignableTypeFilter(TaskJob.class)); scanner.addIncludeFilter(new AssignableTypeFilter(SyncActions.class)); scanner.addIncludeFilter(new AssignableTypeFilter(PushActions.class)); scanner.addIncludeFilter(new AssignableTypeFilter(SyncCorrelationRule.class)); // Remove once SYNCOPE-631 is done //scanner.addIncludeFilter(new AssignableTypeFilter(PushCorrelationRule.class)); scanner.addIncludeFilter(new AssignableTypeFilter(PropagationActions.class)); scanner.addIncludeFilter(new AssignableTypeFilter(Validator.class)); for (BeanDefinition bd : scanner.findCandidateComponents(StringUtils.EMPTY)) { try { Class<?> clazz = ClassUtils.resolveClassName(bd.getBeanClassName(), ClassUtils.getDefaultClassLoader()); boolean isAbsractClazz = Modifier.isAbstract(clazz.getModifiers()); if (Reportlet.class.isAssignableFrom(clazz) && !isAbsractClazz) { classNames.get(Type.REPORTLET).add(clazz.getName()); } if (TaskJob.class.isAssignableFrom(clazz) && !isAbsractClazz && !SyncJob.class.isAssignableFrom(clazz) && !PushJob.class.isAssignableFrom(clazz)) { classNames.get(Type.TASKJOB).add(bd.getBeanClassName()); } if (SyncActions.class.isAssignableFrom(clazz) && !isAbsractClazz) { classNames.get(Type.SYNC_ACTIONS).add(bd.getBeanClassName()); } if (PushActions.class.isAssignableFrom(clazz) && !isAbsractClazz) { classNames.get(Type.PUSH_ACTIONS).add(bd.getBeanClassName()); } if (SyncCorrelationRule.class.isAssignableFrom(clazz) && !isAbsractClazz) { classNames.get(Type.SYNC_CORRELATION_RULE).add(bd.getBeanClassName()); } // Uncomment when SYNCOPE-631 is done /* if (PushCorrelationRule.class.isAssignableFrom(clazz) && !isAbsractClazz) { * classNames.get(Type.PUSH_CORRELATION_RULES).add(metadata.getClassName()); * } */ if (PropagationActions.class.isAssignableFrom(clazz) && !isAbsractClazz) { classNames.get(Type.PROPAGATION_ACTIONS).add(bd.getBeanClassName()); } if (Validator.class.isAssignableFrom(clazz) && !isAbsractClazz) { classNames.get(Type.VALIDATOR).add(bd.getBeanClassName()); } } catch (Throwable t) { LOG.warn("Could not inspect class {}", bd.getBeanClassName(), t); } } classNames = Collections.unmodifiableMap(classNames); LOG.debug("Implementation classes found: {}", classNames); }
From source file:org.apache.usergrid.persistence.Schema.java
@SuppressWarnings("unchecked") public void scanEntities() { synchronized (entitiesScanPath) { for (String path : entitiesScanPath) { ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider( true);/*w ww .j a va2 s .c o m*/ 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); } } }
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. *///ww w . java 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.springframework.retry.backoff.BackOffPolicySerializationTests.java
@Parameters(name = "{index}: {0}") public static List<Object[]> policies() { List<Object[]> result = new ArrayList<Object[]>(); ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider(true); scanner.addIncludeFilter(new AssignableTypeFilter(BackOffPolicy.class)); scanner.addExcludeFilter(new RegexPatternTypeFilter(Pattern.compile(".*Test.*"))); scanner.addExcludeFilter(new RegexPatternTypeFilter(Pattern.compile(".*Mock.*"))); scanner.addExcludeFilter(new RegexPatternTypeFilter(Pattern.compile(".*Configuration.*"))); Set<BeanDefinition> candidates = scanner.findCandidateComponents("org.springframework.retry"); for (BeanDefinition beanDefinition : candidates) { try {/*from w ww. j a v a2 s. c om*/ result.add(new Object[] { BeanUtils .instantiate(ClassUtils.resolveClassName(beanDefinition.getBeanClassName(), null)) }); } catch (Exception e) { logger.warn("Cannot create instance of " + beanDefinition.getBeanClassName()); } } return result; }
From source file:org.springframework.retry.policy.RetryContextSerializationTests.java
@Parameters(name = "{index}: {0}") public static List<Object[]> policies() { List<Object[]> result = new ArrayList<Object[]>(); ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider(true); scanner.addIncludeFilter(new AssignableTypeFilter(RetryPolicy.class)); scanner.addExcludeFilter(new RegexPatternTypeFilter(Pattern.compile(".*Test.*"))); scanner.addExcludeFilter(new RegexPatternTypeFilter(Pattern.compile(".*Mock.*"))); Set<BeanDefinition> candidates = scanner.findCandidateComponents("org.springframework.retry.policy"); for (BeanDefinition beanDefinition : candidates) { try {//from w w w. ja v a 2 s . c om result.add(new Object[] { BeanUtils .instantiate(ClassUtils.resolveClassName(beanDefinition.getBeanClassName(), null)) }); } catch (Exception e) { logger.warn("Cannot create instance of " + beanDefinition.getBeanClassName(), e); } } ExceptionClassifierRetryPolicy extra = new ExceptionClassifierRetryPolicy(); extra.setExceptionClassifier(new SubclassClassifier<Throwable, RetryPolicy>(new AlwaysRetryPolicy())); result.add(new Object[] { extra }); return result; }