Example usage for org.springframework.beans.factory ListableBeanFactory getBean

List of usage examples for org.springframework.beans.factory ListableBeanFactory getBean

Introduction

In this page you can find the example usage for org.springframework.beans.factory ListableBeanFactory getBean.

Prototype

<T> T getBean(String name, Class<T> requiredType) throws BeansException;

Source Link

Document

Return an instance, which may be shared or independent, of the specified bean.

Usage

From source file:pt.webdetails.cns.notifications.sparkl.kettle.baserver.web.utils.HttpConnectionHelper.java

protected static Response invokePluginEndpoint(final String pluginName, final String endpointPath,
        final String httpMethod, final Map<String, String> queryParameters) {

    Response response = new Response();

    IPluginManager pluginManager = PentahoSystem.get(IPluginManager.class);
    if (pluginManager == null) {
        logger.error("Failed to get plugin manager");
        return response;
    }/*  w  w w . ja  va 2 s . c  o  m*/

    ClassLoader classLoader = pluginManager.getClassLoader(pluginName);
    if (classLoader == null) {
        logger.error("No such plugin: " + pluginName);
        return response;
    }

    ListableBeanFactory beanFactory = pluginManager.getBeanFactory(pluginName);

    if (beanFactory == null || !beanFactory.containsBean("api")) {
        logger.error("Bean not found for plugin: " + pluginName);
        return response;
    }

    JAXRSPluginServlet pluginServlet = (JAXRSPluginServlet) beanFactory.getBean("api",
            JAXRSPluginServlet.class);

    // create servlet request
    final InternalHttpServletRequest servletRequest = new InternalHttpServletRequest(httpMethod, "", "/plugin",
            "/" + pluginName + "/api" + endpointPath);

    for (Map.Entry<String, String> entry : queryParameters.entrySet()) {
        servletRequest.setParameter(entry.getKey(), entry.getValue());
    }

    // create servlet response
    ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
    final InternalHttpServletResponse servletResponse = new InternalHttpServletResponse(outputStream);

    ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
    try {
        // used for calculating the response time
        long startTime = System.currentTimeMillis();

        Thread.currentThread().setContextClassLoader(classLoader);
        pluginServlet.service(servletRequest, servletResponse);
        long responseTime = System.currentTimeMillis() - startTime;

        response.setStatusCode(servletResponse.getStatus());
        response.setResult(servletResponse.getContentAsString());
        response.setResponseTime(responseTime);

    } catch (ServletException ex) {
        logger.error("Failed ", ex);
        return response;
    } catch (IOException ex) {
        logger.error("Failed ", ex);
        return response;
    } finally {
        Thread.currentThread().setContextClassLoader(contextClassLoader);
    }

    return response;
}

From source file:pt.webdetails.cpf.messaging.BeanyPluginCall.java

private static JAXRSPluginServlet getApiBean(String pluginId) {
    IPluginManager pluginManager = PentahoSystem.get(IPluginManager.class);
    ListableBeanFactory beanFactory = pluginManager.getBeanFactory(pluginId);

    if (beanFactory == null) {
        if (pluginManager.getClassLoader(pluginId) == null) {
            logger.error("No such plugin: " + pluginId);
        } else {/*  w w w.j a v  a2  s  .co  m*/
            logger.error("No bean factory for plugin: " + pluginId);
        }
        return null;
    }

    if (!beanFactory.containsBean("api")) {
        logger.error("'api' bean not found in " + pluginId);
        return null;
    }

    return (JAXRSPluginServlet) beanFactory.getBean("api", JAXRSPluginServlet.class);
}

From source file:org.lightadmin.core.config.bootstrap.RepositoriesFactoryBean.java

private Map<Class<?>, String> repositoryBeanNames(ListableBeanFactory beanFactory) {
    Map<Class<?>, String> repositoryBeanNames = newHashMap();
    for (String name : beanFactory.getBeanNamesForType(RepositoryFactoryInformation.class, false, false)) {
        RepositoryFactoryInformation repositoryFactoryInformation = beanFactory.getBean(name,
                RepositoryFactoryInformation.class);
        Class<?> userDomainType = ClassUtils
                .getUserClass(repositoryFactoryInformation.getRepositoryInformation().getDomainType());
        repositoryBeanNames.put(userDomainType, BeanFactoryUtils.transformedBeanName(name));
    }/*from   ww w .  j a v a2  s. co m*/
    return repositoryBeanNames;
}

From source file:org.lightadmin.core.config.bootstrap.RepositoriesFactoryBean.java

@SuppressWarnings("unchecked")
private Map<Class<?>, RepositoryFactoryInformation<Object, Serializable>> repositoryFactoryInfos(
        ListableBeanFactory beanFactory) {
    Map<Class<?>, RepositoryFactoryInformation<Object, Serializable>> repositoryFactoryInfos = newHashMap();
    for (String name : beanFactory.getBeanNamesForType(RepositoryFactoryInformation.class, false, false)) {
        RepositoryFactoryInformation repositoryFactoryInformation = beanFactory.getBean(name,
                RepositoryFactoryInformation.class);
        Class<?> userDomainType = ClassUtils
                .getUserClass(repositoryFactoryInformation.getRepositoryInformation().getDomainType());
        repositoryFactoryInfos.put(userDomainType, repositoryFactoryInformation);
    }/*from   w w w .ja v a2 s . c om*/
    return repositoryFactoryInfos;
}

From source file:org.pentaho.di.baserver.utils.web.HttpConnectionHelper.java

protected JAXRSPluginServlet getJAXRSPluginServlet(ListableBeanFactory beanFactory) {
    return (JAXRSPluginServlet) beanFactory.getBean("api", JAXRSPluginServlet.class);
}

From source file:ome.services.graphs.GraphEntry.java

/**
 * Load the spec which has the same name as this entry, but do not load the
 * spec if the name matches {@link #name}. This is called early in the
 * {@link GraphEntry} lifecycle, by {@link GraphSpec}.
 *//* w w  w .ja va  2  s  .c  o  m*/
protected void postProcess(ListableBeanFactory factory) {
    if (name.equals(self.getName())) {
        return;
    } else if (factory.containsBeanDefinition(name)
            && GraphSpec.class.isAssignableFrom(factory.getType(name))) {
        this.subSpec = factory.getBean(name, GraphSpec.class);
        this.subSpec.postProcess(factory);
    }
}

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

private <T> List<Entry<String, T>> getOrderedBeansOfType(ListableBeanFactory beanFactory, Class<T> type,
        Set<?> excludes) {//from   w  ww. j  ava2s.c  om
    List<Entry<String, T>> beans = new ArrayList<Entry<String, T>>();
    Comparator<Entry<String, T>> comparator = new Comparator<Entry<String, T>>() {

        @Override
        public int compare(Entry<String, T> o1, Entry<String, T> o2) {
            return AnnotationAwareOrderComparator.INSTANCE.compare(o1.getValue(), o2.getValue());
        }

    };
    String[] names = beanFactory.getBeanNamesForType(type, true, false);
    Map<String, T> map = new LinkedHashMap<String, T>();
    for (String name : names) {
        if (!excludes.contains(name)) {
            T bean = beanFactory.getBean(name, type);
            if (!excludes.contains(bean)) {
                map.put(name, bean);
            }
        }
    }
    beans.addAll(map.entrySet());
    Collections.sort(beans, comparator);
    return beans;
}

From source file:org.springframework.boot.web.servlet.ServletContextInitializerBeans.java

private <T> List<Entry<String, T>> getOrderedBeansOfType(ListableBeanFactory beanFactory, Class<T> type,
        Set<?> excludes) {/*  ww  w . j  a v a 2s. c o m*/
    List<Entry<String, T>> beans = new ArrayList<Entry<String, T>>();
    Comparator<Entry<String, T>> comparator = new Comparator<Entry<String, T>>() {

        @Override
        public int compare(Entry<String, T> o1, Entry<String, T> o2) {
            return AnnotationAwareOrderComparator.INSTANCE.compare(o1.getValue(), o2.getValue());
        }

    };
    String[] names = beanFactory.getBeanNamesForType(type, true, false);
    Map<String, T> map = new LinkedHashMap<String, T>();
    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);
            }
        }
    }
    beans.addAll(map.entrySet());
    Collections.sort(beans, comparator);
    return beans;
}