java类javax.servlet.ReadListener的实例源码

UpgradeServletInputStream.java 文件源码 项目:lams 阅读 33 收藏 0 点赞 0 评论 0
@Override
public void setReadListener(final ReadListener readListener) {
    if (readListener == null) {
        throw UndertowServletMessages.MESSAGES.listenerCannotBeNull();
    }
    if (listener != null) {
        throw UndertowServletMessages.MESSAGES.listenerAlreadySet();
    }

    listener = readListener;
    channel.getReadSetter().set(new ServletInputStreamChannelListener());

    //we resume from an async task, after the request has been dispatched
    ioExecutor.execute(new Runnable() {
        @Override
        public void run() {
            channel.wakeupReads();
        }
    });
}
BodyReaderWrapper.java 文件源码 项目:spring-boot-start-current 阅读 29 收藏 0 点赞 0 评论 0
@Override
public ServletInputStream getInputStream () throws IOException {
    if ( null == body ) {
        return super.getInputStream();
    }
    final ByteArrayInputStream inputStream = new ByteArrayInputStream( body );
    return new ServletInputStream() {
        @Override
        public boolean isFinished () {
            return false;
        }

        @Override
        public boolean isReady () {
            return false;
        }

        @Override
        public void setReadListener ( ReadListener readListener ) {

        }

        @Override
        public int read () throws IOException {
            return inputStream.read();
        }
    };
}
RequestWrapper.java 文件源码 项目:wisp 阅读 33 收藏 0 点赞 0 评论 0
@Override
public ServletInputStream getInputStream() throws IOException {
    return new ServletInputStream() {
        @Override
        public boolean isFinished() {
            return false;
        }

        @Override
        public boolean isReady() {
            return false;
        }

        @Override
        public void setReadListener(ReadListener readListener) {

        }

        private TeeInputStream tee = new TeeInputStream(RequestWrapper.super.getInputStream(), bos);

        @Override
        public int read() throws IOException {
            return tee.read();
        }
    };
}
ProxyExchange.java 文件源码 项目:spring-cloud-gateway 阅读 34 收藏 0 点赞 0 评论 0
public ServletInputStream getInputStream() {
    ByteArrayInputStream body = new ByteArrayInputStream(
            builder.toString().getBytes());
    return new ServletInputStream() {

        @Override
        public int read() throws IOException {
            return body.read();
        }

        @Override
        public void setReadListener(ReadListener listener) {
        }

        @Override
        public boolean isReady() {
            return true;
        }

        @Override
        public boolean isFinished() {
            return body.available() <= 0;
        }
    };
}
RequestWrapper.java 文件源码 项目:summer 阅读 34 收藏 0 点赞 0 评论 0
@Override
public ServletInputStream getInputStream() throws IOException {
    return new ServletInputStream() {
        @Override
        public boolean isFinished() {
            return false;
        }

        @Override
        public boolean isReady() {
            return false;
        }

        @Override
        public void setReadListener(ReadListener readListener) {

        }

        private TeeInputStream tee = new TeeInputStream(RequestWrapper.super.getInputStream(), bos, true);

        @Override
        public int read() throws IOException {
            return tee.read();
        }
    };
}
AtmosphereServerHttpExchange.java 文件源码 项目:asity 阅读 44 收藏 0 点赞 0 评论 0
@Override
void start() {
  input.setReadListener(new ReadListener() {
    @Override
    public void onDataAvailable() throws IOException {
      read();
    }

    @Override
    public void onAllDataRead() throws IOException {
      end();
    }

    @Override
    public void onError(Throwable t) {
      errorActions.fire(t);
    }
  });
}
ServletServerHttpExchange.java 文件源码 项目:asity 阅读 29 收藏 0 点赞 0 评论 0
@Override
void start() {
  input.setReadListener(new ReadListener() {
    @Override
    public void onDataAvailable() throws IOException {
      read();
    }

    @Override
    public void onAllDataRead() throws IOException {
      end();
    }

    @Override
    public void onError(Throwable t) {
      errorActions.fire(t);
    }
  });
}
CustomHttpServletRequestWrapper.java 文件源码 项目:NFVO 阅读 34 收藏 0 点赞 0 评论 0
@Override
public ServletInputStream getInputStream() throws IOException {
  final ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(body.getBytes());
  return new ServletInputStream() {
    @Override
    public boolean isFinished() {
      return byteArrayInputStream.available() == 0;
    }

    @Override
    public boolean isReady() {
      return true;
    }

    @Override
    public void setReadListener(ReadListener listener) {
      throw new RuntimeException("Not implemented");
    }

    public int read() throws IOException {
      return byteArrayInputStream.read();
    }
  };
}
CachingRequestWrapper.java 文件源码 项目:spring-hmac-rest 阅读 36 收藏 0 点赞 0 评论 0
@Override
public ServletInputStream getInputStream() throws IOException {
    final ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(getPayload());
    return new ServletInputStream() {

        @Override
        public int read() throws IOException {
            return byteArrayInputStream.read();
        }

        @Override
        public boolean isFinished() {
            return false;
        }

        @Override
        public boolean isReady() {
            return true;
        }

        @Override
        public void setReadListener(ReadListener listener) {
            //
        }
    };
}
TestPayloadNameRequestWrapper.java 文件源码 项目:javamelody 阅读 38 收藏 0 点赞 0 评论 0
ServletInputStream createServletOutputStream() {
    final ByteArrayInputStream stream = new ByteArrayInputStream(body.getBytes());
    // CHECKSTYLE:OFF
    return new ServletInputStream() {
        // CHECKSTYLE:ON
        @Override
        public int read() throws IOException {
            return stream.read();
        }

        @Override
        public boolean isFinished() {
            return false;
        }

        @Override
        public boolean isReady() {
            return false;
        }

        @Override
        public void setReadListener(ReadListener readListener) {
            // nothing
        }
    };
}
ServletMocks.java 文件源码 项目:killbill-simple-tax-plugin 阅读 34 收藏 0 点赞 0 评论 0
public void withRequestBody(String requestBody) throws IOException {
    final ByteArrayInputStream in = new ByteArrayInputStream(requestBody.getBytes());

    when(req.getInputStream()).then(new Answer<ServletInputStream>() {
        @Override
        public ServletInputStream answer(InvocationOnMock invocation) throws Throwable {
            return new ServletInputStream() {

                @Override
                public int read() throws IOException {
                    return in.read();
                }

                @Override
                public void setReadListener(ReadListener readListener) {
                    try {
                        readListener.onDataAvailable();
                        readListener.onAllDataRead();
                    } catch (IOException letItCrash) {
                        throw new RuntimeException(letItCrash);
                    }
                }

                @Override
                public boolean isReady() {
                    return true;
                }

                @Override
                public boolean isFinished() {
                    return in.available() > 0;
                }
            };
        }
    });
}
AtmosphereServerHttpExchange.java 文件源码 项目:vibe-java-platform 阅读 37 收藏 0 点赞 0 评论 0
@Override
void start() {
    input.setReadListener(new ReadListener() {
        @Override
        public void onDataAvailable() throws IOException {
            read();
        }

        @Override
        public void onAllDataRead() throws IOException {
            end();
        }

        @Override
        public void onError(Throwable t) {
            errorActions.fire(t);
        }
    });
}
ServletServerHttpExchange.java 文件源码 项目:vibe-java-platform 阅读 30 收藏 0 点赞 0 评论 0
@Override
void start() {
    input.setReadListener(new ReadListener() {
        @Override
        public void onDataAvailable() throws IOException {
            read();
        }

        @Override
        public void onAllDataRead() throws IOException {
            end();
        }

        @Override
        public void onError(Throwable t) {
            errorActions.fire(t);
        }
    });
}
ServletInputStreamPublisherAdapterTest.java 文件源码 项目:reactive-jax-rs 阅读 36 收藏 0 点赞 0 评论 0
/**
   * TBD
   * @throws Exception
   */
  @Test public void whenDataAvailableExpectReadBytesPublishedToSubscriber() throws Exception {

    List<Byte> expectedValues = Arrays.asList((byte)2, (byte)47);

    AnswerArg1<ReadListener> answer = new AnswerArg1<>();

    BufferedSubscriber<byte[]> bufferedSubscriber = new BufferedSubscriber<>();

    // mock setup
    // receive setReadListener's argument
    Mockito
      .doAnswer(answer)
      .when(servletInputStreamMock).setReadListener(Mockito.any(ReadListener.class));

    // return one byte on ServletInputStream.read
    when(servletInputStreamMock.read())
      .thenReturn(2)
      .thenReturn(47);

    when(servletInputStreamMock.isReady())
      .thenReturn(true)
      .thenReturn(true)
      .thenReturn(false);

    servletInputStreamPublisherAdapter.startReading();
    servletInputStreamPublisherAdapter.subscribe(bufferedSubscriber);

    // inform about data availability
    answer.getArg().onDataAvailable();

    // asserts
    List<byte[]> receivedByteList = bufferedSubscriber.toList();
    Assert.assertThat(receivedByteList.size(), CoreMatchers.equalTo(2));
//    Assert.assertThat(receivedByteList, CoreMatchers.hasItem((byte)2));
//    Assert.assertThat(receivedByteList, CoreMatchers.hasItem((byte)47));
  }
ServletInputStreamPublisherAdapterTest.java 文件源码 项目:reactive-jax-rs 阅读 38 收藏 0 点赞 0 评论 0
@Test public void whenNoMoreDataAvailableOnCompletedCalled() throws Exception {

    AnswerArg1<ReadListener> answer = new AnswerArg1<>();

    BufferedSubscriber<Object> bufferedSubscriber = new BufferedSubscriber<>();

    // mock setup
    // receive setReadListener's argument
    Mockito
      .doAnswer(answer)
      .when(servletInputStreamMock).setReadListener(Mockito.any(ReadListener.class));

    // return one byte on ServletInputStream.read
    when(servletInputStreamMock.read())
      .thenReturn(-1);

    when(servletInputStreamMock.isReady())
      .thenReturn(true);

    servletInputStreamPublisherAdapter.startReading();
    servletInputStreamPublisherAdapter.subscribe(bufferedSubscriber);

    // inform about data availability
    answer.getArg().onDataAvailable();

    // asserts
    Assert.assertThat(bufferedSubscriber.isCompleted(), CoreMatchers.equalTo(true));
  }
ServletInputStreamPublisherAdapterTest.java 文件源码 项目:reactive-jax-rs 阅读 30 收藏 0 点赞 0 评论 0
@Test public void whenIoExceptionThrownOnReadExpectOnErrorCalled() throws Exception {
  IOException expectedException = new IOException();

  AnswerArg1<ReadListener> answer = new AnswerArg1<>();

  BufferedSubscriber<Object> bufferedSubscriber = new BufferedSubscriber<>();

  // mock setup
  // receive setReadListener's argument
  Mockito
    .doAnswer(answer)
    .when(servletInputStreamMock).setReadListener(Mockito.any(ReadListener.class));

  // return one byte on ServletInputStream.read
  when(servletInputStreamMock.read())
    .thenThrow(expectedException);

  when(servletInputStreamMock.isReady())
    .thenReturn(true);

  servletInputStreamPublisherAdapter.startReading();
  servletInputStreamPublisherAdapter.subscribe(bufferedSubscriber);

  // inform about data availability
  answer.getArg().onDataAvailable();

  // asserts
  Assert.assertThat(bufferedSubscriber.getException(), CoreMatchers.equalTo(expectedException));
}
JsonRequestWrapper.java 文件源码 项目:wxcard 阅读 33 收藏 0 点赞 0 评论 0
@Override
  public ServletInputStream getInputStream() throws IOException {
    final ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(body.getBytes());
    ServletInputStream servletInputStream = new ServletInputStream() {
      public int read() throws IOException {
        return byteArrayInputStream.read();
      }

@Override
public boolean isFinished() {
    // TODO Auto-generated method stub
    return false;
}

@Override
public boolean isReady() {
    // TODO Auto-generated method stub
    return false;
}

@Override
public void setReadListener(ReadListener readListener) {
    // TODO Auto-generated method stub

}
    };
    return servletInputStream;
  }
XssHttpServletRequestWrapper.java 文件源码 项目:renren-fast 阅读 34 收藏 0 点赞 0 评论 0
@Override
public ServletInputStream getInputStream() throws IOException {
    //非json类型,直接返回
    if(!super.getHeader(HttpHeaders.CONTENT_TYPE).equalsIgnoreCase(MediaType.APPLICATION_JSON_VALUE)){
        return super.getInputStream();
    }

    //为空,直接返回
    String json = IOUtils.toString(super.getInputStream(), "utf-8");
    if (StringUtils.isBlank(json)) {
        return super.getInputStream();
    }

    //xss过滤
    json = xssEncode(json);
    final ByteArrayInputStream bis = new ByteArrayInputStream(json.getBytes("utf-8"));
    return new ServletInputStream() {
        @Override
        public boolean isFinished() {
            return true;
        }

        @Override
        public boolean isReady() {
            return true;
        }

        @Override
        public void setReadListener(ReadListener readListener) {

        }

        @Override
        public int read() throws IOException {
            return bis.read();
        }
    };
}
ServletInputStreamImpl.java 文件源码 项目:lams 阅读 32 收藏 0 点赞 0 评论 0
@Override
public void setReadListener(final ReadListener readListener) {
    if (readListener == null) {
        throw UndertowServletMessages.MESSAGES.listenerCannotBeNull();
    }
    if (listener != null) {
        throw UndertowServletMessages.MESSAGES.listenerAlreadySet();
    }
    if (!request.isAsyncStarted()) {
        throw UndertowServletMessages.MESSAGES.asyncNotStarted();
    }

    asyncContext = request.getAsyncContext();
    listener = readListener;
    channel.getReadSetter().set(internalListener = new ServletInputStreamChannelListener());

    //we resume from an async task, after the request has been dispatched
    asyncContext.addAsyncTask(new Runnable() {
        @Override
        public void run() {
            channel.getIoThread().execute(new Runnable() {
                @Override
                public void run() {
                    channel.resumeReads();
                    internalListener.handleEvent(channel);
                }
            });
        }
    });
}
XssHttpServletRequestWrapper.java 文件源码 项目:my-spring-boot-project 阅读 37 收藏 0 点赞 0 评论 0
@Override
public ServletInputStream getInputStream() throws IOException {
    //非json类型,直接返回
    if (!super.getHeader(HttpHeaders.CONTENT_TYPE).equalsIgnoreCase(MediaType.APPLICATION_JSON_VALUE)) {
        return super.getInputStream();
    }

    //为空,直接返回
    String json = IOUtils.toString(super.getInputStream(), "utf-8");
    if (StringUtils.isBlank(json)) {
        return super.getInputStream();
    }

    //xss过滤
    json = xssEncode(json);
    final ByteArrayInputStream bis = new ByteArrayInputStream(json.getBytes("utf-8"));
    return new ServletInputStream() {
        @Override
        public boolean isFinished() {
            return false;
        }

        @Override
        public boolean isReady() {
            return false;
        }

        @Override
        public void setReadListener(ReadListener readListener) {

        }

        @Override
        public int read() throws IOException {
            return bis.read();
        }
    };
}
AccessLogFilter.java 文件源码 项目:dremio-oss 阅读 34 收藏 0 点赞 0 评论 0
@Override
public ServletInputStream getInputStream() throws IOException {
  final ServletInputStream inputStream = d.getInputStream();
  return new ServletInputStream() {

    @Override
    public int read() throws IOException {
      int b = inputStream.read();
      if (b != -1) {
        reqBody.write(b);
      }
      return b;
    }

    @Override
    public void setReadListener(ReadListener readListener) {
      inputStream.setReadListener(readListener);
    }

    @Override
    public boolean isReady() {
      return inputStream.isReady();
    }

    @Override
    public boolean isFinished() {
      return inputStream.isFinished();
    }
  };
}
XssHttpServletRequestWrapper.java 文件源码 项目:renren-msg 阅读 34 收藏 0 点赞 0 评论 0
@Override
public ServletInputStream getInputStream() throws IOException {
    //非json类型,直接返回
    if(!super.getHeader(HttpHeaders.CONTENT_TYPE).equalsIgnoreCase(MediaType.APPLICATION_JSON_VALUE)){
        return super.getInputStream();
    }

    //为空,直接返回
    String json = IOUtils.toString(super.getInputStream(), "utf-8");
    if (StringUtils.isBlank(json)) {
        return super.getInputStream();
    }

    //xss过滤
    json = xssEncode(json);
    final ByteArrayInputStream bis = new ByteArrayInputStream(json.getBytes("utf-8"));
    return new ServletInputStream() {
        @Override
        public boolean isFinished() {
            return true;
        }

        @Override
        public boolean isReady() {
            return true;
        }

        @Override
        public void setReadListener(ReadListener readListener) {
        }

        @Override
        public int read() throws IOException {
            return bis.read();
        }
    };
}
BodyReaderHttpServletRequestWrapper.java 文件源码 项目:springboot-quick-build 阅读 33 收藏 0 点赞 0 评论 0
@Override
public ServletInputStream getInputStream() throws IOException {

    final ByteArrayInputStream bais = new ByteArrayInputStream(body);

    return new ServletInputStream() {

        @Override
        public int read() throws IOException {
            return bais.read();
        }

        @Override
        public boolean isFinished() {
            return false;
        }

        @Override
        public boolean isReady() {
            return false;
        }

        @Override
        public void setReadListener(ReadListener readListener) {

        }
    };
}
RequestLoggingFilter.java 文件源码 项目:herd 阅读 31 收藏 0 点赞 0 评论 0
@Override
public ServletInputStream getInputStream() throws IOException
{
    if (payload == null)
    {
        // If no payload is present (i.e. debug logging isn't enabled), then perform the standard super class functionality.
        return super.getInputStream();
    }
    else
    {
        return new ServletInputStream()
        {
            final ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(payload);

            public int read() throws IOException
            {
                // Read bytes from the previously read payload.
                return byteArrayInputStream.read();
            }

            public boolean isFinished()
            {
                return true;
            }

            public boolean isReady()
            {
                return true;
            }

            public void setReadListener(final ReadListener readListener)
            {
                // Empty method.
            }

        };
    }
}
ServletInputStreamWrapper.java 文件源码 项目:AvunaHTTPD-Java 阅读 28 收藏 0 点赞 0 评论 0
@Override
public void setReadListener(ReadListener arg0) {
    try {
        arg0.onDataAvailable();
    }catch (IOException e) {
        request.host.logger.logError(e);
    }
    listener = arg0;
}
MyRequestWrapper.java 文件源码 项目:hopsworks 阅读 55 收藏 0 点赞 0 评论 0
@Override
public ServletInputStream getInputStream() throws IOException {
  final ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(
          body.getBytes());
  ServletInputStream servletInputStream = new ServletInputStream() {
    public int read() throws IOException {
      return byteArrayInputStream.read();
    }

    @Override
    public boolean isFinished() {
      throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public boolean isReady() {
      throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void setReadListener(ReadListener readListener) {
      throw new UnsupportedOperationException("Not supported yet.");
    }

  };
  return servletInputStream;
}
PayloadNameRequestWrapper.java 文件源码 项目:javamelody 阅读 32 收藏 0 点赞 0 评论 0
/** {@inheritDoc} */
@Override
public ServletInputStream getInputStream() throws IOException {
    final ServletInputStream requestInputStream = super.getInputStream();
    if (bufferedInputStream == null) {
        return requestInputStream;
    }
    if (inputStream == null) {
        final BufferedInputStream myBufferedInputStream = bufferedInputStream;
        //CHECKSTYLE:OFF
        inputStream = new ServletInputStream() {
            //CHECKSTYLE:ON
            @Override
            public int read() throws IOException {
                return myBufferedInputStream.read();
            }

            @Override
            public boolean isFinished() {
                return requestInputStream.isFinished();
            }

            @Override
            public boolean isReady() {
                return requestInputStream.isReady();
            }

            @Override
            public void setReadListener(ReadListener readListener) {
                requestInputStream.setReadListener(readListener);
            }
        };
    }
    return inputStream;
}
TestMonitoringFilter.java 文件源码 项目:javamelody 阅读 34 收藏 0 点赞 0 评论 0
private ServletInputStream createInputStreamForString(final String string) {
    final ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(
            string.getBytes());
    // CHECKSTYLE:OFF
    final ServletInputStream inputStream = new ServletInputStream() {
        // CHECKSTYLE:ON
        @Override
        public int read() throws IOException {
            return byteArrayInputStream.read();
        }

        @Override
        public boolean isFinished() {
            return false;
        }

        @Override
        public boolean isReady() {
            return false;
        }

        @Override
        public void setReadListener(ReadListener readListener) {
            // nothing
        }
    };
    return inputStream;
}
PingServlet31AsyncRead.java 文件源码 项目:sample.daytrader7 阅读 32 收藏 0 点赞 0 评论 0
/**
 * forwards post requests to the doGet method Creation date: (11/6/2000
 * 10:52:39 AM)
 *
 * @param res
 *            javax.servlet.http.HttpServletRequest
 * @param res2
 *            javax.servlet.http.HttpServletResponse
 */
@Override
public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
    res.setContentType("text/html");

    AsyncContext ac = req.startAsync();

    ServletInputStream input = req.getInputStream();
    ReadListener readListener = new ReadListenerImpl(input, res, ac);
    input.setReadListener(readListener);
}
PingServlet31Async.java 文件源码 项目:sample.daytrader7 阅读 32 收藏 0 点赞 0 评论 0
/**
 * forwards post requests to the doGet method Creation date: (11/6/2000
 * 10:52:39 AM)
 *
 * @param res
 *            javax.servlet.http.HttpServletRequest
 * @param res2
 *            javax.servlet.http.HttpServletResponse
 */
@Override
public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
    res.setContentType("text/html");

    AsyncContext ac = req.startAsync();

    ServletInputStream input = req.getInputStream();
    ReadListener readListener = new ReadListenerImpl(input, res, ac);
    input.setReadListener(readListener);
}


问题


面经


文章

微信
公众号

扫码关注公众号