dubbo-rpc-extensions/dubbo-rpc-rest/src/main/java/org/apache/dubbo/rpc/protocol/rest/extension/resteasy/filter/ResteasyRequestContainerFilterAdapter.java [43:80]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    public void filter(RestFilterContext restFilterContext) throws Exception {

        ServiceDeployer serviceDeployer = restFilterContext.getServiceDeployer();
        RequestFacade requestFacade = restFilterContext.getRequestFacade();
        URL url = restFilterContext.getUrl();
        NettyHttpResponse response = restFilterContext.getResponse();

        List<ContainerRequestFilter> containerRequestFilters =
                getExtension(serviceDeployer, ContainerRequestFilter.class);

        if (containerRequestFilters.isEmpty()) {

            return;
        }

        DubboPreMatchContainerRequestContext containerRequestContext = convertHttpRequestToContainerRequestContext(
                requestFacade, containerRequestFilters.toArray(new ContainerRequestFilter[0]));

        // set resteasy request for save user`s custom  request attribute
        restFilterContext.setOriginRequest(containerRequestContext.getHttpRequest());

        try {
            BuiltResponse restResponse = containerRequestContext.filter();

            if (restResponse == null) {
                return;
            }

            addResponseHeaders(response, restResponse.getHeaders());
            writeResteasyResponse(url, requestFacade, response, restResponse);
            // completed
            restFilterContext.setComplete(true);
        } catch (Throwable e) {
            throw new RuntimeException("dubbo rest resteasy ContainerRequestFilter write response encode error", e);
        } finally {
            containerRequestContext.getHttpRequest().releaseContentBuffer();
        }
    }
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



dubbo-rpc-extensions/dubbo-rpc-rest/src/main/java/org/apache/dubbo/rpc/protocol/rest/resteasy/filter/ResteasyRequestContainerFilterAdapter.java [44:81]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    public void filter(RestFilterContext restFilterContext) throws Exception {

        ServiceDeployer serviceDeployer = restFilterContext.getServiceDeployer();
        RequestFacade requestFacade = restFilterContext.getRequestFacade();
        URL url = restFilterContext.getUrl();
        NettyHttpResponse response = restFilterContext.getResponse();

        List<ContainerRequestFilter> containerRequestFilters =
                getExtension(serviceDeployer, ContainerRequestFilter.class);

        if (containerRequestFilters.isEmpty()) {

            return;
        }

        DubboPreMatchContainerRequestContext containerRequestContext = convertHttpRequestToContainerRequestContext(
                requestFacade, containerRequestFilters.toArray(new ContainerRequestFilter[0]));

        // set resteasy request for save user`s custom  request attribute
        restFilterContext.setOriginRequest(containerRequestContext.getHttpRequest());

        try {
            BuiltResponse restResponse = containerRequestContext.filter();

            if (restResponse == null) {
                return;
            }

            addResponseHeaders(response, restResponse.getHeaders());
            writeResteasyResponse(url, requestFacade, response, restResponse);
            // completed
            restFilterContext.setComplete(true);
        } catch (Throwable e) {
            throw new RuntimeException("dubbo rest resteasy ContainerRequestFilter write response encode error", e);
        } finally {
            containerRequestContext.getHttpRequest().releaseContentBuffer();
        }
    }
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



