< prev index next >

test/jdk/java/net/httpclient/http2/server/Http2TestExchangeImpl.java

Print this page

        

@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
  * published by the Free Software Foundation.

@@ -24,16 +24,18 @@
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.io.IOException;
 import java.net.URI;
 import java.net.InetSocketAddress;
+import java.util.concurrent.CompletableFuture;
+import java.util.function.Consumer;
 import javax.net.ssl.SSLSession;
 import jdk.incubator.http.internal.common.HttpHeadersImpl;
 import jdk.incubator.http.internal.frame.HeaderFrame;
 import jdk.incubator.http.internal.frame.HeadersFrame;
 
-public class Http2TestExchange {
+public class Http2TestExchangeImpl implements Http2TestExchange {
 
     final HttpHeadersImpl reqheaders;
     final HttpHeadersImpl rspheaders;
     final URI uri;
     final String method;

@@ -46,11 +48,11 @@
     final Http2TestServer server;
 
     int responseCode = -1;
     long responseLength;
 
-    Http2TestExchange(int streamid,
+    Http2TestExchangeImpl(int streamid,
                       String method,
                       HttpHeadersImpl reqheaders,
                       HttpHeadersImpl rspheaders,
                       URI uri,
                       InputStream is,

@@ -69,48 +71,62 @@
         this.pushAllowed = pushAllowed;
         this.conn = conn;
         this.server = conn.server;
     }
 
+    @Override
     public HttpHeadersImpl getRequestHeaders() {
         return reqheaders;
     }
 
+    @Override
+    public CompletableFuture<Long> sendPing() {
+        return conn.sendPing();
+    }
+
+    @Override
     public HttpHeadersImpl getResponseHeaders() {
         return rspheaders;
     }
 
+    @Override
     public URI getRequestURI() {
         return uri;
     }
 
+    @Override
     public String getRequestMethod() {
         return method;
     }
 
+    @Override
     public SSLSession getSSLSession() {
         return sslSession;
     }
 
+    @Override
     public void close() {
         try {
             is.close();
             os.close();
         } catch (IOException e) {
             System.err.println("TestServer: HttpExchange.close exception: " + e);
             e.printStackTrace();
         }
     }
 
+    @Override
     public InputStream getRequestBody() {
         return is;
     }
 
+    @Override
     public OutputStream getResponseBody() {
         return os;
     }
 
+    @Override
     public void sendResponseHeaders(int rCode, long responseLength) throws IOException {
         this.responseLength = responseLength;
         if (responseLength > 0 || responseLength < 0) {
                 long clen = responseLength > 0 ? responseLength : 0;
             rspheaders.setHeader("Content-length", Long.toString(clen));

@@ -120,39 +136,47 @@
 
         Http2TestServerConnection.ResponseHeaders response
                 = new Http2TestServerConnection.ResponseHeaders(rspheaders);
         response.streamid(streamid);
         response.setFlag(HeaderFrame.END_HEADERS);
+
+
         if (responseLength < 0) {
             response.setFlag(HeadersFrame.END_STREAM);
             os.closeInternal();
         }
         conn.outputQ.put(response);
         os.goodToGo();
         System.err.println("Sent response headers " + rCode);
     }
 
+    @Override
     public InetSocketAddress getRemoteAddress() {
         return (InetSocketAddress) conn.socket.getRemoteSocketAddress();
     }
 
+    @Override
     public int getResponseCode() {
         return responseCode;
     }
 
+    @Override
     public InetSocketAddress getLocalAddress() {
         return server.getAddress();
     }
 
+    @Override
     public String getProtocol() {
         return "HTTP/2";
     }
 
+    @Override
     public boolean serverPushAllowed() {
         return pushAllowed;
     }
 
+    @Override
     public void serverPush(URI uri, HttpHeadersImpl headers, InputStream content) {
         OutgoingPushPromise pp = new OutgoingPushPromise(
                 streamid, uri, headers, content);
         headers.setHeader(":method", "GET");
         headers.setHeader(":scheme", uri.getScheme());
< prev index next >