Example #1
0
  protected void defaultServerSetup() {
    server();

    server.get(
        "/echo",
        new Handler() {

          @Override
          public Object handle(HttpExchange h) throws Exception {
            LowLevelHttpExchange x = (LowLevelHttpExchange) h;
            return x.verb_().get()
                + ":"
                + x.path_().get()
                + ":"
                + x.subpath_().get()
                + ":"
                + x.query_().get();
          }
        });

    server.get(
        "/hello",
        new Handler() {
          @Override
          public Object handle(HttpExchange x) {
            return "Hello";
          }
        });

    server.post(
        "/upload",
        new Handler() {
          @SuppressWarnings("unchecked")
          @Override
          public Object handle(HttpExchange x) {
            return U.join(
                ":",
                x.cookies().get("foo"),
                x.cookies().get("COOKIE1"),
                x.posted().get("a"),
                x.files().size(),
                Crypto.md5(x.files().get("f1")),
                Crypto.md5(x.files().get("f2")),
                Crypto.md5(U.or(x.files().get("f3"), new byte[0])));
          }
        });

    server.serve(
        new Handler() {
          @Override
          public Object handle(HttpExchange x) {
            return U.join(":", x.verb(), x.path(), x.subpath(), x.query());
          }
        });

    start();
  }
Example #2
0
 public HTTPResponse() {
   statusCode = 0;
   setVersion("1.1");
   setContentType("text/html; charset=\"utf-8\"");
   setServer(HTTPServer.getName());
   setContent("");
 }
Example #3
0
 @Override
 public void stop() {
   LOG.info("stopping http server");
   if (usesComponent(NATTraversal.class)) {
     getComponent(NATTraversal.class).unmap();
   }
   httpServer.stop(t);
 }
Example #4
0
  @Override
  public void start() {
    try {

      int port = url.getPort();
      if (usesComponent(NATTraversal.class)) {
        getComponent(NATTraversal.class).setPort(port);
        getComponent(NATTraversal.class).map();
      }

      httpServer.setPort(port);
      httpServer.setHandler(handler);

      t = new Thread(httpServer, "HTTPServer");
      t.start();

    } catch (Exception e) {
      LOG.error(e);
    }
  }
 public void run() {
   HTTPSocket httpSock = new HTTPSocket(sock);
   if (httpSock.open() == false) return;
   HTTPRequest httpReq = new HTTPRequest();
   httpReq.setSocket(httpSock);
   while (httpReq.read() == true) {
     httpServer.performRequestListener(httpReq);
     if (httpReq.isKeepAlive() == false) break;
   }
   httpSock.close();
 }
Example #6
0
 protected void shutdown() {
   server.shutdown();
   UTILS.sleep(300);
   System.out.println("--- SERVER STOPPED ---");
 }
Example #7
0
  protected void start() {
    server.start();

    UTILS.sleep(300);
    System.out.println("----------------------------------------");
  }
Example #8
0
  @Test
  public void test() throws UnknownHostException, ExecutionException, InterruptedException {
    final JavaSerializer serializer = new JavaSerializer();
    RPCHandler handler1 = new RPCHandler(serializer);
    RPCHandler handler2 = new RPCHandler(serializer);
    RoutingHandler router =
        new RoutingHandler(
            ImmutableMap.<String, ChannelHandler>builder()
                .put("/one", handler1)
                .put("/two", handler2)
                .build());
    HTTPServer server =
        new HTTPServer(
            TcpOptions.create().localAddress(new InetSocketAddress(InetAddress.getLocalHost(), 0)),
            2,
            router);

    RPCClient client1 = new RPCClient(TcpOptions.create(), "/one", 2, serializer);
    RPCClient client2 = new RPCClient(TcpOptions.create(), "/two", 2, serializer);
    RPCClient client3 = new RPCClient(TcpOptions.create(), "/noexisting", 2, serializer);

    RPC<Void, String> signature = RPC.signature("/method", Void.class, String.class);
    server.startAsync().awaitRunning();
    try {
      handler1.register(
          signature,
          new ServerMethod<Void, String>() {
            @Override
            public ListenableFuture<String> call(Envelope envelope, Void argument) {
              return Futures.immediateFuture("one");
            }
          });

      handler2.register(
          signature,
          new ServerMethod<Void, String>() {
            @Override
            public ListenableFuture<String> call(Envelope envelope, Void argument) {
              return Futures.immediateFuture("two");
            }
          });

      ClientMethod<Void, String> method1 = client1.createMethod(signature);
      ClientMethod<Void, String> method2 = client2.createMethod(signature);
      ClientMethod<Void, String> method3 = client3.createMethod(signature);

      Envelope envelope = new Envelope(1000, "asdfasdfas");
      assertEquals(method1.call(server.getLocalAddress(), envelope, null).get(), "one");
      assertEquals(method2.call(server.getLocalAddress(), envelope, null).get(), "two");

      try {
        assertEquals(method3.call(server.getLocalAddress(), envelope, null).get(), "wtf?");
        fail();
      } catch (ExecutionException e) {
        assertTrue(e.getCause() instanceof BadResponseException);
        assertTrue(e.getCause().getMessage().contains("404"));
      }

    } finally {
      client1.stopAsync().awaitTerminated();
      client2.stopAsync().awaitTerminated();
      client3.stopAsync().awaitTerminated();
      server.stopAsync().awaitTerminated();
    }
  }