dubbo-rpc-extensions/dubbo-rpc-rest/src/main/java/org/apache/dubbo/rpc/protocol/rest/extension/resteasy/filter/ResteasyRequestContainerFilterAdapter.java [32:78]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@Activate(
        value = "resteasy",
        onClass = {
            "javax.ws.rs.container.ContainerRequestFilter",
            "org.jboss.resteasy.plugins.server.netty.NettyHttpRequest",
            "org.jboss.resteasy.plugins.server.netty.NettyHttpResponse"
        },
        order = Integer.MAX_VALUE - 1)
public class ResteasyRequestContainerFilterAdapter implements RestRequestFilter, ResteasyContext {

    @Override
    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 [33:79]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@Activate(
        value = "resteasy",
        onClass = {
            "javax.ws.rs.container.ContainerRequestFilter",
            "org.jboss.resteasy.plugins.server.netty.NettyHttpRequest",
            "org.jboss.resteasy.plugins.server.netty.NettyHttpResponse"
        },
        order = Integer.MAX_VALUE - 1)
public class ResteasyRequestContainerFilterAdapter implements RestRequestFilter, ResteasyContext {

    @Override
    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();
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



