Examples of BinResponseHandler


Examples of org.butor.json.service.BinResponseHandler

  @Override
  public Runnable createBinWorker(final MuleMessage mmsg, final PipedOutputStream pos,
      final JsonServiceRequest req, final String logReqInfo) {

    final ResponseHandler<byte[]> streamer = new BinResponseHandler() {
      boolean contentTypeSet = false;
      @Override
      public OutputStream getOutputStream() {
        return pos;
      }
View Full Code Here

Examples of org.butor.json.service.BinResponseHandler

  @Override
  public void process(final HttpServletRequest req_, final HttpServletResponse resp_)
      throws ServletException, IOException {

    OutputStream os = null;
    BinResponseHandler streamer = null;
    String serviceName = null;
    JsonRequest jr = null;
    try {
      jr = findJsonRequest(req_);
      List<?> params = _jsh.deserialize(jr.getServiceArgsJson(), List.class);
      int nbArgs = params.size();
      final JsonRequest fjr = jr;

      serviceName = jr.getService();
      if (StringUtil.isEmpty(serviceName))
        throw new IllegalArgumentException("Missing serviceName");

      Method m = findService(serviceName, nbArgs);
      if (m == null)
        throw new UnsupportedOperationException(
          String.format("Service=%s with %d args doesn't exists",
            serviceName, nbArgs +1));

      os = resp_.getOutputStream();
      final OutputStream fos = os;
     
      streamer = new BinResponseHandler() {
        @Override
        public void end() {
        }
        @Override
        public boolean addRow(byte[] row_) {
View Full Code Here

Examples of org.butor.json.service.BinResponseHandler

      ResponseHandler<byte[]> handler, String loReqInfo) throws IOException {
    //_reqLogInfo = loReqInfo_;
    // if content-type and headers are set, the stream starts
    // with "___content_type___\n"
    String boundary = "___content_type___\n";
    BinResponseHandler brh = (BinResponseHandler)handler;
    OutputStream os = brh.getOutputStream();

    int n = 0;
    int bl = boundary.length();
    byte[] buffer = new byte[1024];
    while (n < bl) {
      byte b = (byte)is.read();
      if (b == -1) {
        break;
      }
      buffer[n++] = b;
    }
    if (new String(buffer, 0, bl).equalsIgnoreCase(boundary)) {
      // then retrieve content-type and others headers till reaching \n\n
      ByteBuffer bb = ByteBuffer.allocate(1024); // will grows if more space required
      bb.clear();
      byte prevB = 0, b=0;
      while (true) {
        prevB = b;
        b = (byte) is.read();
        if (b == 10 && prevB == 10) { // end of headers
          break;
        }
        bb.put(b);
      }
      bb.flip();
      String[] lines = new String(bb.array(), 0, bb.limit()).split("\n");
      bb.clear();
      String contentType = null;
      Map<String, String> headers = new HashMap<String, String>();
      for (String h : lines) {
        if (Strings.isNullOrEmpty(h)) {
          continue;
        }
        int pos = h.indexOf(":");
        String hn = h.substring(0, pos++);
        String hv = h.substring(pos);
        if (hn .equalsIgnoreCase("Content-Type")) {
          contentType = hv;
        } else {
          headers.put(hn, hv);
        }
      }
      brh.setContentType(contentType, headers);

    } else {
      os.write(buffer, 0, bl);
    }

    while ((n = is.read(buffer)) > -1) {
      os.write(buffer, 0, n);
    }
    brh.end();
  }
View Full Code Here

Examples of org.butor.json.service.BinResponseHandler

  @Override
  public void process(final HttpServletRequest req_, final HttpServletResponse resp_)
      throws ServletException, IOException {

    OutputStream os = null;
    BinResponseHandler streamer = null;
    String serviceName = null;
    JsonRequest jr = null;
    try {
      jr = findJsonRequest(req_);
      List<?> params = _jsh.deserialize(jr.getServiceArgsJson(), List.class);
      int nbArgs = params.size();
      final JsonRequest fjr = jr;

      serviceName = jr.getService();
      if (StringUtil.isEmpty(serviceName))
        throw new IllegalArgumentException("Missing serviceName");

      Method m = findService(serviceName, nbArgs);
      if (m == null)
        throw new UnsupportedOperationException(
          String.format("Service=%s with %d args doesn't exists",
            serviceName, nbArgs +1));

      os = resp_.getOutputStream();
      final OutputStream fos = os;
     
      streamer = new BinResponseHandler() {
        @Override
        public void end() {
        }
        @Override
        public boolean addRow(byte[] row_) {
View Full Code Here

Examples of org.butor.json.service.BinResponseHandler

  @Override
  public Runnable createBinWorker(final MuleMessage mmsg, final PipedOutputStream pos,
      final JsonServiceRequest req, final String logReqInfo) {

    final ResponseHandler<byte[]> streamer = new BinResponseHandler() {
      boolean contentTypeSet = false;
      @Override
      public OutputStream getOutputStream() {
        return pos;
      }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.