Example usage for org.springframework.core.annotation AnnotationAwareOrderComparator sort

List of usage examples for org.springframework.core.annotation AnnotationAwareOrderComparator sort

Introduction

In this page you can find the example usage for org.springframework.core.annotation AnnotationAwareOrderComparator sort.

Prototype

public static void sort(Object[] array) 

Source Link

Document

Sort the given array with a default AnnotationAwareOrderComparator.

Usage

From source file:org.wallride.autoconfigure.WallRideDispatcherServlet.java

@Override
protected void initStrategies(ApplicationContext context) {
    super.initStrategies(context);

    if (this.detectParentHandlerMappings) {
        this.parentHandlerMappings = null;
        if (getWebApplicationContext().getParent() != null) {
            Map<String, HandlerMapping> matchingBeans = BeanFactoryUtils.beansOfTypeIncludingAncestors(
                    getWebApplicationContext().getParent(), HandlerMapping.class, true, false);
            if (!matchingBeans.isEmpty()) {
                this.parentHandlerMappings = new ArrayList<>(matchingBeans.values());
                AnnotationAwareOrderComparator.sort(this.parentHandlerMappings);
            }/*from  w w w.ja  v  a 2 s  . c  om*/
        }
    }
}

From source file:ratpack.spring.config.internal.ChainConfigurers.java

public void execute(Chain chain) throws Exception {
    List<Action<Chain>> delegates = new ArrayList<Action<Chain>>(this.delegates);
    if (delegates.isEmpty()) {
        delegates.addAll(ratpackScriptBacking().getHandlerActions());
    }/*from   w  w w  .  j av  a 2 s .  c o m*/
    if (handlers.size() == 1) {
        delegates.add(singleHandlerAction());
    } else if (delegates.isEmpty()) {
        delegates.add(singleHandlerAction());
    }
    delegates.add(staticResourcesAction(chain.getLaunchConfig()));
    AnnotationAwareOrderComparator.sort(delegates);
    for (Action<Chain> delegate : delegates) {
        if (!(delegate instanceof ChainConfigurers)) {
            delegate.execute(chain);
        }
    }
}

From source file:io.gravitee.common.spring.factory.SpringFactoriesLoader.java

private Collection<? extends T> getSpringFactoriesInstances(Class<T> type, Class<?>[] parameterTypes,
        Object... args) {// www .j  ava  2s. c o  m
    ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
    // Use names and ensure unique to protect against duplicates
    Set<String> names = new LinkedHashSet<>(
            org.springframework.core.io.support.SpringFactoriesLoader.loadFactoryNames(type, classLoader));
    List<T> instances = createSpringFactoriesInstances(type, parameterTypes, classLoader, args, names);
    AnnotationAwareOrderComparator.sort(instances);
    return instances;
}

From source file:org.wso2.msf4j.spring.MSF4JSpringApplication.java

private <T> Collection<? extends T> getSpringFactoriesInstances(Class<T> type, Class<?>[] parameterTypes,
        Object... args) {//from w  w  w.j ava2s  .c  o m
    ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
    Set<String> names = new LinkedHashSet<>(SpringFactoriesLoader.loadFactoryNames(type, classLoader));
    List<T> instances = createSpringFactoriesInstances(type, parameterTypes, classLoader, args, names);
    AnnotationAwareOrderComparator.sort(instances);
    return instances;
}

From source file:com.haulmont.cuba.gui.config.WindowConfig.java

protected void init() {
    screens.clear();// w ww .jav a 2  s. co m

    Map<String, ScreenAgent> agentMap = AppBeans.getAll(ScreenAgent.class);

    Map<String, ScreenAgent> screenAgents = new LinkedHashMap<>();
    List<ScreenAgent> availableAgents = new ArrayList<>(agentMap.values());

    AnnotationAwareOrderComparator.sort(availableAgents);

    for (ScreenAgent screenAgent : availableAgents) {
        screenAgents.put(screenAgent.getAlias(), screenAgent);
    }
    this.activeScreenAgents = screenAgents;

    String configName = AppContext.getProperty(WINDOW_CONFIG_XML_PROP);
    StrTokenizer tokenizer = new StrTokenizer(configName);
    for (String location : tokenizer.getTokenArray()) {
        Resource resource = resources.getResource(location);
        if (resource.exists()) {
            InputStream stream = null;
            try {
                stream = resource.getInputStream();
                loadConfig(Dom4j.readDocument(stream).getRootElement());
            } catch (IOException e) {
                throw new RuntimeException("Unable to read window config from " + location, e);
            } finally {
                IOUtils.closeQuietly(stream);
            }
        } else {
            log.warn("Resource {} not found, ignore it", location);
        }
    }
}

From source file:org.springframework.aop.framework.ProxyFactoryBean.java

/**
 * Add all global interceptors and pointcuts.
 *//*w w  w.  ja v  a2s  . c  om*/
private void addGlobalAdvisor(ListableBeanFactory beanFactory, String prefix) {
    String[] globalAdvisorNames = BeanFactoryUtils.beanNamesForTypeIncludingAncestors(beanFactory,
            Advisor.class);
    String[] globalInterceptorNames = BeanFactoryUtils.beanNamesForTypeIncludingAncestors(beanFactory,
            Interceptor.class);
    List<Object> beans = new ArrayList<>(globalAdvisorNames.length + globalInterceptorNames.length);
    Map<Object, String> names = new HashMap<>(beans.size());
    for (String name : globalAdvisorNames) {
        Object bean = beanFactory.getBean(name);
        beans.add(bean);
        names.put(bean, name);
    }
    for (String name : globalInterceptorNames) {
        Object bean = beanFactory.getBean(name);
        beans.add(bean);
        names.put(bean, name);
    }
    AnnotationAwareOrderComparator.sort(beans);
    for (Object bean : beans) {
        String name = names.get(bean);
        if (name.startsWith(prefix)) {
            addAdvisorOnChainCreation(bean, name);
        }
    }
}

From source file:org.springframework.boot.autoconfigure.jersey.JerseyAutoConfiguration.java

private void customize() {
    if (this.customizers != null) {
        AnnotationAwareOrderComparator.sort(this.customizers);
        for (ResourceConfigCustomizer customizer : this.customizers) {
            customizer.customize(this.config);
        }//from w  w w .  java 2  s .co m
    }
}

From source file:org.springframework.boot.context.embedded.ServletContextInitializerBeans.java

ServletContextInitializerBeans(ListableBeanFactory beanFactory) {
    this.initializers = new LinkedMultiValueMap<Class<?>, ServletContextInitializer>();
    addServletContextInitializerBeans(beanFactory);
    addAdaptableBeans(beanFactory);/*from  w w w .  j av a  2s  . c  o  m*/
    List<ServletContextInitializer> sortedInitializers = new ArrayList<ServletContextInitializer>();
    for (Map.Entry<?, List<ServletContextInitializer>> entry : this.initializers.entrySet()) {
        AnnotationAwareOrderComparator.sort(entry.getValue());
        sortedInitializers.addAll(entry.getValue());
    }
    this.sortedList = Collections.unmodifiableList(sortedInitializers);
}

From source file:org.springframework.boot.diagnostics.FailureAnalyzers.java

private List<FailureAnalyzer> loadFailureAnalyzers(ClassLoader classLoader) {
    List<String> analyzerNames = SpringFactoriesLoader.loadFactoryNames(FailureAnalyzer.class, classLoader);
    List<FailureAnalyzer> analyzers = new ArrayList<FailureAnalyzer>();
    for (String analyzerName : analyzerNames) {
        try {/*from  w w  w . j a  va  2  s. c o  m*/
            Constructor<?> constructor = ClassUtils.forName(analyzerName, classLoader).getDeclaredConstructor();
            ReflectionUtils.makeAccessible(constructor);
            analyzers.add((FailureAnalyzer) constructor.newInstance());
        } catch (Throwable ex) {
            log.trace("Failed to load " + analyzerName, ex);
        }
    }
    AnnotationAwareOrderComparator.sort(analyzers);
    return analyzers;
}

From source file:org.springframework.boot.SpringApplication.java

@SuppressWarnings("unchecked")
private <T> Collection<? extends T> getSpringFactoriesInstances(Class<T> type, Class<?>[] parameterTypes,
        Object... args) {/*from   w ww  .j a v a  2  s  .c  om*/
    ClassLoader classLoader = Thread.currentThread().getContextClassLoader();

    // Use names and ensure unique to protect against duplicates
    Set<String> names = new LinkedHashSet<String>(SpringFactoriesLoader.loadFactoryNames(type, classLoader));
    List<T> instances = new ArrayList<T>(names.size());

    // Create instances from the names
    for (String name : names) {
        try {
            Class<?> instanceClass = ClassUtils.forName(name, classLoader);
            Assert.isAssignable(type, instanceClass);
            Constructor<?> constructor = instanceClass.getConstructor(parameterTypes);
            T instance = (T) constructor.newInstance(args);
            instances.add(instance);
        } catch (Throwable ex) {
            throw new IllegalArgumentException("Cannot instantiate " + type + " : " + name, ex);
        }
    }

    AnnotationAwareOrderComparator.sort(instances);
    return instances;
}