private <T> List<Entry<String, T>> getOrderedBeansOfType( ListableBeanFactory beanFactory, Class<T> type, Set<?> excludes) { String[] names = beanFactory.getBeanNamesForType(type, true, false); Map<String, T> map = new LinkedHashMap<>(); for (String name : names) { if (!excludes.contains(name) && !ScopedProxyUtils.isScopedTarget(name)) { T bean = beanFactory.getBean(name, type); if (!excludes.contains(bean)) { map.put(name, bean); } } } List<Entry<String, T>> beans = new ArrayList<>(); beans.addAll(map.entrySet()); beans.sort((o1, o2) -> AnnotationAwareOrderComparator.INSTANCE .compare(o1.getValue(), o2.getValue())); return beans; }
@Test public void order() { assertThat(AnnotationAwareOrderComparator.INSTANCE.compare(this.filter, new SessionRepositoryFilterDefaultOrder())); }
@Test public void compareOrderWebSecurityConfigurerAdapterWhenLowestOrderToDefaultOrderThenGreaterThanZero() throws Exception { AnnotationAwareOrderComparator comparator = new AnnotationAwareOrderComparator(); assertThat(comparator.compare( new LowestPriorityWebSecurityConfig(), new DefaultOrderWebSecurityConfig())).isGreaterThan(0); }
@Override public int compareTo(EventHandlerMethod o) { return AnnotationAwareOrderComparator.INSTANCE.compare(this.method, o.method); } }
@Override public int compareTo(EventHandlerMethod o) { return AnnotationAwareOrderComparator.INSTANCE.compare(this.method, o.method); }
@Override public int compare(Object o1, Object o2) { return super.compare(((Map.Entry<?, ?>) o1).getValue(), ((Map.Entry<?, ?>) o2).getValue()); } }
public ErrorResponseComposer(List<AbstractExceptionHandler<T>> handlers) { this.handlers = handlers.stream().collect( Collectors.toMap(AbstractExceptionHandler::getExceptionClass, Function.identity(), (handler1, handler2) -> { return AnnotationAwareOrderComparator .INSTANCE.compare(handler1, handler2) < 0 ? handler1 : handler2; })); log.info("Created"); }
private <T> List<Entry<String, T>> getOrderedBeansOfType( ListableBeanFactory beanFactory, Class<T> type, Set<?> excludes) { Comparator<Entry<String, T>> comparator = (o1, o2) -> AnnotationAwareOrderComparator.INSTANCE.compare(o1.getValue(), o2.getValue()); String[] names = beanFactory.getBeanNamesForType(type, true, false); Map<String, T> map = new LinkedHashMap<>(); for (String name : names) { if (!excludes.contains(name) && !ScopedProxyUtils.isScopedTarget(name)) { T bean = beanFactory.getBean(name, type); if (!excludes.contains(bean)) { map.put(name, bean); } } } List<Entry<String, T>> beans = new ArrayList<>(); beans.addAll(map.entrySet()); beans.sort(comparator); return beans; }
private <T> List<Entry<String, T>> getOrderedBeansOfType( ListableBeanFactory beanFactory, Class<T> type, Set<?> excludes) { Comparator<Entry<String, T>> comparator = (o1, o2) -> AnnotationAwareOrderComparator.INSTANCE.compare(o1.getValue(), o2.getValue()); String[] names = beanFactory.getBeanNamesForType(type, true, false); Map<String, T> map = new LinkedHashMap<>(); for (String name : names) { if (!excludes.contains(name) && !ScopedProxyUtils.isScopedTarget(name)) { T bean = beanFactory.getBean(name, type); if (!excludes.contains(bean)) { map.put(name, bean); } } } List<Entry<String, T>> beans = new ArrayList<>(); beans.addAll(map.entrySet()); beans.sort(comparator); return beans; }
/** * Builds a comparator that sorts first by the order, if specified, then by the display * name to break ties. It is assumed that the compared elements are all non-null * @return The comparator */ private Comparator<AnnotationSidebarFactory> buildComparator() { return (asf1, asf2) -> new CompareToBuilder() .appendSuper(AnnotationAwareOrderComparator.INSTANCE.compare(asf1, asf2)) .append(asf1.getDisplayName(), asf2.getDisplayName()) .toComparison(); } }
(o1, o2) -> AnnotationAwareOrderComparator.INSTANCE.compare(o1.getImportSelector(), o2.getImportSelector());