Package org.xlightweb

Examples of org.xlightweb.NonBlockingBodyDataSource


             
                public void onResponse(IHttpResponse response) throws IOException {
                   
                    BodyDataSink ds = exchange.send(response.getResponseHeader());
                   
                    NonBlockingBodyDataSource source = response.getNonBlockingBody();
                    BodyForwarder bf = new BodyForwarder(source, ds) {
                       
                        @Override
                        public void onData(NonBlockingBodyDataSource bodyDataSource, BodyDataSink bodyDataSink) throws BufferUnderflowException, IOException {
                            int available = bodyDataSource.available();
View Full Code Here


        try {
                  responseBody = response.getNonBlockingBody();
          responseBodyInfo = "(" + response.getNonBlockingBody().getClass().getSimpleName() + ")";

          BodyListener bodyListener = new BodyListener();
          NonBlockingBodyDataSource ds = response.getNonBlockingBody();
          ds.addCompleteListener(bodyListener);
          ds.addDestroyListener(bodyListener);
         
        } catch (IOException ioe) {
          if (LOG.isLoggable(Level.FINE)) {
            LOG.fine("error occured by registering complete listener " + ioe.toString());
          }
View Full Code Here

          } else {
              return requestHeaderInfo + " " + requestBodyInfo + "-> " + responseHeaderInfo + " " + responseBodyInfo + " [" + elapsed + " " + " body=" + reveivedBodySize + " " + getConInfo() + "]";
          }   
       
      } else if (isHeaderReceived) {
          NonBlockingBodyDataSource rb = responseBody;
          if (rb == null) {
              return requestHeaderInfo + " " + requestBodyInfo + "-> " + responseHeaderInfo + " " + responseBodyInfo + " [READING BODY " + elapsed + " " + getConInfo() + "]";
          } else {
              return requestHeaderInfo + " " + requestBodyInfo + "-> " + responseHeaderInfo + " " + responseBodyInfo + " [READING BODY " + elapsed + " " + " body=" + DataConverter.toFormatedBytesSize(HttpClientConnection.getDataReceived(rb)) + " " + getConInfo() + "]";
          }
View Full Code Here

  private static final class ContentEchoHandler implements IHttpRequestHandler {

    public void onRequest(IHttpExchange exchange) throws IOException {

      IHttpRequest request = exchange.getRequest();
      NonBlockingBodyDataSource bodyChannel = request.getNonBlockingBody();
      exchange.send(new HttpResponse(200, request.getContentType(), bodyChannel));     
    }
View Full Code Here

  private static final class ContentEchoHandler implements IHttpRequestHandler {

    public void onRequest(IHttpExchange exchange) throws IOException {

      IHttpRequest request = exchange.getRequest();
      NonBlockingBodyDataSource bodyChannel = request.getNonBlockingBody();
      exchange.send(new HttpResponse(200, request.getContentType(), bodyChannel));     
    }
View Full Code Here

          // does request contain a body?
          if (response.hasBody()) {
           
            // get the body
            NonBlockingBodyDataSource orgDataSource = response.getNonBlockingBody();
           
            // ... and replace it 
            final BodyDataSink inBodyChannel = exchange.send(response.getResponseHeader());
           
            //... by a body forward handler
            BodyForwarder bodyForwardHandler = new BodyForwarder(orgDataSource, inBodyChannel) {
             
              @Override
              public void onData(NonBlockingBodyDataSource bodyDataSource, BodyDataSink bodyDataSink) throws BufferUnderflowException, IOException {
                ByteBuffer[] bufs = bodyDataSource.readByteBufferByLength(bodyDataSource.available());
                   
                for (ByteBuffer byteBuffer : bufs) {
                  // WARNING DataConverter call could fail!
                  requestString.append(DataConverter.toString(byteBuffer.duplicate()));
                }
                   
                bodyDataSink.write(bufs);
                bodyDataSink.flush();
              }
            };
            orgDataSource.setDataHandler(bodyForwardHandler);
           
          } else {
            exchange.send(response);
          }
        }
       
        public void onException(IOException ioe) {
         
        }
      };
     
     
      // does request contain a body?
      if (req.hasBody()) {
       
        // get the body
        NonBlockingBodyDataSource orgDataSource = req.getNonBlockingBody();
       
        // ... and replace it 
        final BodyDataSink inBodyChannel = exchange.forward(req.getRequestHeader(), respHdl);
       
        //... by a body forward handler
        BodyForwarder bodyForwardHandler = new BodyForwarder(orgDataSource, inBodyChannel) {
         
          @Override
          public void onData(NonBlockingBodyDataSource bodyDataSource, BodyDataSink bodyDataSink) throws BufferUnderflowException, IOException {
            ByteBuffer[] bufs = bodyDataSource.readByteBufferByLength(bodyDataSource.available());
               
            for (ByteBuffer byteBuffer : bufs) {
              // WARNING DataConverter call could fail!
              requestString.append(DataConverter.toString(byteBuffer.duplicate()));
            }
               
            bodyDataSink.write(bufs);
            bodyDataSink.flush();
          }
        };
        orgDataSource.setDataHandler(bodyForwardHandler);
       
      } else {
        exchange.forward(req, respHdl);
      }
    }
View Full Code Here

        public void onResponse(IHttpResponse response) throws IOException {

          if (response.hasBody()) {

            // get the body
            NonBlockingBodyDataSource orgDataSource = response.getNonBlockingBody();

            // ... and replace it 
            final BodyDataSink inBodyChannel = exchange.send(response.getResponseHeader());
           
            //... by a body forward handler
            BodyForwarder bodyForwardHandler = new BodyForwarder(orgDataSource, inBodyChannel) {
             
              @Override
              public void onData(NonBlockingBodyDataSource bodyDataSource, BodyDataSink bodyDataSink) throws BufferUnderflowException, IOException {
                byte[] data = bodyDataSource.readBytesByLength(bodyDataSource.available());
                   
                for (int i = 0; i < data.length; i++) {
                  data[i] = (byte) ((int) data[i] - shift);
                }
                                       
                inBodyChannel.write(data);
                inBodyChannel.flush();
              }
            };
            orgDataSource.setDataHandler(bodyForwardHandler);
           
          } else {
            exchange.send(response);
          }
        };
       
        public void onException(IOException ioe) {
         
        };
      };
     
      // does request contain a body?
      if (exchange.getRequest().hasBody()) {
       
        // get the body
        NonBlockingBodyDataSource orgDataSource = exchange.getRequest().getNonBlockingBody();
       
        // ... and replace it ...
        final BodyDataSink inBodyChannel = exchange.forward(exchange.getRequest().getRequestHeader(), responseInterceptor);
       
        //... by a body forward handler
        BodyForwarder bodyForwardHandler = new BodyForwarder(orgDataSource, inBodyChannel) {
         
          @Override
          public void onData(NonBlockingBodyDataSource bodyDataSource, BodyDataSink bodyDataSink) throws BufferUnderflowException, IOException {
            byte[] data = bodyDataSource.readBytesByLength(bodyDataSource.available());
               
            for (int i = 0; i < data.length; i++) {
              data[i] = (byte) ((int) data[i] + shift);
            }
               
               
            inBodyChannel.write(data);
            inBodyChannel.flush();
          }
        };
        orgDataSource.setDataHandler(bodyForwardHandler);
       
      } else {
        exchange.forward(exchange.getRequest(), responseInterceptor);
      }
    }
View Full Code Here

          // does request contain a body?
          if (response.hasBody()) {
           
            // get the body
            NonBlockingBodyDataSource orgDataSource = response.getNonBlockingBody();
           
            // ... and replace it 
            final BodyDataSink inBodyChannel = exchange.send(response.getResponseHeader());
           
            //... by a body forward handler
            BodyForwarder bodyForwardHandler = new BodyForwarder(orgDataSource, inBodyChannel) {
             
              @Override
              public void onData(NonBlockingBodyDataSource bodyDataSource, BodyDataSink bodyDataSink) throws BufferUnderflowException, IOException {
                ByteBuffer[] bufs = bodyDataSource.readByteBufferByLength(bodyDataSource.available());
                   
                for (ByteBuffer byteBuffer : bufs) {
                  // WARNING DataConverter call could fail!
                  requestString.append(DataConverter.toString(byteBuffer.duplicate()));
                }
                   
                bodyDataSink.write(bufs);
                bodyDataSink.flush();
              }
            };
            orgDataSource.setDataHandler(bodyForwardHandler);
           
          } else {
            exchange.send(response);
          }
        }
       
        public void onException(IOException ioe) {
         
        }
      };
     
     
      // does request contain a body?
      if (req.hasBody()) {
       
        // get the body
        NonBlockingBodyDataSource orgDataSource = req.getNonBlockingBody();
       
        // ... and replace it 
        final BodyDataSink inBodyChannel = exchange.forward(req.getRequestHeader(), respHdl);
       
        //... by a body forward handler
        BodyForwarder bodyForwardHandler = new BodyForwarder(orgDataSource, inBodyChannel) {
         
          @Override
          public void onData(NonBlockingBodyDataSource bodyDataSource, BodyDataSink bodyDataSink) throws BufferUnderflowException, IOException {
            ByteBuffer[] bufs = bodyDataSource.readByteBufferByLength(bodyDataSource.available());
               
            for (ByteBuffer byteBuffer : bufs) {
              // WARNING DataConverter call could fail!
              requestString.append(DataConverter.toString(byteBuffer.duplicate()));
            }
               
            bodyDataSink.write(bufs);
            bodyDataSink.flush();
          }
        };
        orgDataSource.setDataHandler(bodyForwardHandler);
       
      } else {
        exchange.forward(req, respHdl);
      }
    }
View Full Code Here

        public void onResponse(IHttpResponse response) throws IOException {

          if (response.hasBody()) {

            // get the body
            NonBlockingBodyDataSource orgDataSource = response.getNonBlockingBody();

            // ... and replace it 
            final BodyDataSink inBodyChannel = exchange.send(response.getResponseHeader());
           
            //... by a body forward handler
            BodyForwarder bodyForwardHandler = new BodyForwarder(orgDataSource, inBodyChannel) {
             
              @Override
              public void onData(NonBlockingBodyDataSource bodyDataSource, BodyDataSink bodyDataSink) throws BufferUnderflowException, IOException {
                byte[] data = bodyDataSource.readBytesByLength(bodyDataSource.available());
                   
                for (int i = 0; i < data.length; i++) {
                  data[i] = (byte) ((int) data[i] - shift);
                }
                                       
                inBodyChannel.write(data);
                inBodyChannel.flush();
              }
            };
            orgDataSource.setDataHandler(bodyForwardHandler);
           
          } else {
            exchange.send(response);
          }
        };
       
        public void onException(IOException ioe) {
         
        };
      };
     
      // does request contain a body?
      if (exchange.getRequest().hasBody()) {
       
        // get the body
        NonBlockingBodyDataSource orgDataSource = exchange.getRequest().getNonBlockingBody();
       
        // ... and replace it ...
        final BodyDataSink inBodyChannel = exchange.forward(exchange.getRequest().getRequestHeader(), responseInterceptor);
       
        //... by a body forward handler
        BodyForwarder bodyForwardHandler = new BodyForwarder(orgDataSource, inBodyChannel) {
         
          @Override
          public void onData(NonBlockingBodyDataSource bodyDataSource, BodyDataSink bodyDataSink) throws BufferUnderflowException, IOException {
            byte[] data = bodyDataSource.readBytesByLength(bodyDataSource.available());
               
            for (int i = 0; i < data.length; i++) {
              data[i] = (byte) ((int) data[i] + shift);
            }
               
               
            inBodyChannel.write(data);
            inBodyChannel.flush();
          }
        };
        orgDataSource.setDataHandler(bodyForwardHandler);
       
      } else {
        exchange.forward(exchange.getRequest(), responseInterceptor);
      }
    }
View Full Code Here

        if (response.hasBody()) {
         
          final IHttpResponseHeader header = response.getResponseHeader();
          final List<ByteBuffer> bodyData = new ArrayList<ByteBuffer>();
         
          NonBlockingBodyDataSource orgDataSource = response.getNonBlockingBody();
          final BodyDataSink inBodyChannel = exchange.send(response.getResponseHeader());
         
          //... by a body forward handler
          BodyForwarder bodyForwardHandler = new BodyForwarder(orgDataSource, inBodyChannel) {
           
            @Override
            public void onData(NonBlockingBodyDataSource bodyDataSource, BodyDataSink bodyDataSink) throws BufferUnderflowException, IOException {
              ByteBuffer[] bufs = bodyDataSource.readByteBufferByLength(bodyDataSource.available());
                 
              for (ByteBuffer byteBuffer : bufs) {
                bodyData.add(byteBuffer.duplicate());
              }
                 
              bodyDataSink.write(bufs);
              bodyDataSink.flush();
            }
           
            @Override
            public void onComplete() {
              System.out.println(header.toString());
              try {
                System.out.println(header.toString() + DataConverter.toString(bodyData, header.getCharacterEncoding()));
              } catch (Exception e) {
                System.out.println("<body not printable>");
              }
            }
          };
          orgDataSource.setDataHandler(bodyForwardHandler);
         
        } else {
          try {
            System.out.println(response.getResponseHeader());
          } catch (Exception ignore) { }
          exchange.send(response);
        }
      }
     
      public void onException(IOException ioe) {
        exchange.sendError(500);
      }
    };
   
   
    // does request contain a body?
    if (req.hasBody()) {
     
      final IHttpRequestHeader header = req.getRequestHeader();
      final List<ByteBuffer> bodyData = new ArrayList<ByteBuffer>();
     
      // get the body
      NonBlockingBodyDataSource orgDataSource = req.getNonBlockingBody();
     
      // ... and replace it 
      final BodyDataSink inBodyChannel = exchange.forward(req.getRequestHeader(), respHdl);
     
      //... by a body forward handler
      BodyForwarder bodyForwardHandler = new BodyForwarder(orgDataSource, inBodyChannel) {
       
        @Override
        public void onData(NonBlockingBodyDataSource bodyDataSource, BodyDataSink bodyDataSink) throws BufferUnderflowException, IOException {
          ByteBuffer[] bufs = bodyDataSource.readByteBufferByLength(bodyDataSource.available());
             
          for (ByteBuffer byteBuffer : bufs) {
             bodyData.add(byteBuffer.duplicate());
          }
             
          bodyDataSink.write(bufs);
          bodyDataSink.flush();
        }
       
        @Override
        public void onComplete() {
          System.out.println(header.toString());
          try {
            System.out.println(header.toString() + DataConverter.toString(bodyData, header.getCharacterEncoding()));
          } catch (Exception e) {
            System.out.println("<body not printable>");
          }
        }
      };
      orgDataSource.setDataHandler(bodyForwardHandler);
     
    } else {
      System.out.println(req.getRequestHeader().toString());
      exchange.forward(req, respHdl);
    }
View Full Code Here

TOP

Related Classes of org.xlightweb.NonBlockingBodyDataSource

Copyright © 2018 www.massapicom. 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.