Example usage for org.springframework.web.context.request RequestContextListener requestInitialized

List of usage examples for org.springframework.web.context.request RequestContextListener requestInitialized

Introduction

In this page you can find the example usage for org.springframework.web.context.request RequestContextListener requestInitialized.

Prototype

@Override
    public void requestInitialized(ServletRequestEvent requestEvent) 

Source Link

Usage

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

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

    Response response = new Response();

    // get servlet context and request dispatcher
    ServletContext servletContext = null;
    RequestDispatcher requestDispatcher = null;
    try {//from w  ww .j  a v  a  2  s  . c om
        Object context = PentahoSystem.getApplicationContext().getContext();
        if (context instanceof ServletContext) {
            servletContext = (ServletContext) context;
            requestDispatcher = servletContext.getRequestDispatcher("/api" + endpointPath);
        }
    } catch (NoClassDefFoundError ex) {
        logger.error("Failed to get application servlet context", ex);
        return response;
    }

    if (requestDispatcher != null) {

        // create servlet request
        final InternalHttpServletRequest servletRequest = new InternalHttpServletRequest(httpMethod, "/pentaho",
                "/api", endpointPath);
        servletRequest.setAttribute("org.apache.catalina.core.DISPATCHER_TYPE", 2); // FORWARD = 2

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

        ServletRequestEvent servletRequestEvent = new ServletRequestEvent(servletContext, servletRequest);
        RequestContextListener requestContextListener = new RequestContextListener();
        requestContextListener.requestInitialized(servletRequestEvent);

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

        try {
            // used for calculating the response time
            long startTime = System.currentTimeMillis();

            requestDispatcher.forward(servletRequest, servletResponse);

            // get response time
            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 {
            requestContextListener.requestDestroyed(servletRequestEvent);
        }

    }

    return response;
}

From source file:br.com.caelum.vraptor.ioc.spring.SpringProviderRegisteringComponentsTest.java

@Override
protected <T> T executeInsideRequest(final WhatToDo<T> execution) {
    Callable<T> task = new Callable<T>() {
        public T call() throws Exception {
            T result = null;/*from ww w  .j a  v  a 2 s .  c om*/
            HttpSessionMock session = new HttpSessionMock(context, "session" + ++counter);
            HttpServletRequestMock httpRequest = new HttpServletRequestMock(session,
                    mock(MutableRequest.class, "request" + counter));
            MutableResponse response = mock(MutableResponse.class, "response" + counter);

            RequestInfo request = new RequestInfo(context, null, httpRequest, response);
            VRaptorRequestHolder.setRequestForCurrentThread(request);

            RequestContextListener contextListener = new RequestContextListener();
            contextListener.requestInitialized(new ServletRequestEvent(context, httpRequest));
            result = execution.execute(request, counter);
            contextListener.requestDestroyed(new ServletRequestEvent(context, httpRequest));

            VRaptorRequestHolder.resetRequestForCurrentThread();
            return result;
        }
    };

    Future<T> future = Executors.newSingleThreadExecutor().submit(task);

    try {
        return future.get(60, TimeUnit.SECONDS);
    } catch (Exception e) {
        throw new RuntimeException(e);
    }
}

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

protected Response invokePlatformEndpoint(final String endpointPath, final String httpMethod,
        final Map<String, String> queryParameters) {

    Response response = new Response();

    // get servlet context and request dispatcher
    ServletContext servletContext = null;
    RequestDispatcher requestDispatcher = null;
    try {// w  ww  .j  a va2s  .co m
        Object context = getContext();
        if (context instanceof ServletContext) {
            servletContext = (ServletContext) context;
            requestDispatcher = servletContext.getRequestDispatcher("/api" + endpointPath);
        }
    } catch (NoClassDefFoundError ex) {
        logger.error("Failed to get application servlet context", ex);
        return response;
    }

    if (requestDispatcher != null) {
        // create servlet request
        URL fullyQualifiedServerURL;
        try {
            fullyQualifiedServerURL = getUrl();
        } catch (MalformedURLException e) {
            logger.error("FullyQualifiedServerURL is incorrect");
            return response;
        }

        final InternalHttpServletRequest servletRequest = new InternalHttpServletRequest(httpMethod,
                fullyQualifiedServerURL, "/api", endpointPath);
        servletRequest.setAttribute("org.apache.catalina.core.DISPATCHER_TYPE", DispatcherType.FORWARD); //FORWARD = 2

        try {
            insertParameters(httpMethod, queryParameters, servletRequest);
        } catch (UnsupportedEncodingException e) {
            logger.error("Can't encode parameters");
            return response;
        }

        ServletRequestEvent servletRequestEvent = new ServletRequestEvent(servletContext, servletRequest);
        RequestContextListener requestContextListener = new RequestContextListener();
        requestContextListener.requestInitialized(servletRequestEvent);

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

        try {
            // used for calculating the response time
            long startTime = System.currentTimeMillis();

            requestDispatcher.forward(servletRequest, servletResponse);

            // get response time
            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 {
            requestContextListener.requestDestroyed(servletRequestEvent);
        }

    }

    return response;
}