test/jdk/java/net/httpclient/LineAdaptersCompileOnly.java
branchhttp-client-branch
changeset 56159 039ab5a71a5c
parent 56089 42208b2f224e
child 56167 96fa4f49a9ff
equal deleted inserted replaced
56157:3f29747a858a 56159:039ab5a71a5c
    19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    20  * or visit www.oracle.com if you need additional information or have any
    20  * or visit www.oracle.com if you need additional information or have any
    21  * questions.
    21  * questions.
    22  */
    22  */
    23 
    23 
    24 import java.nio.charset.StandardCharsets;
       
    25 import java.util.concurrent.Flow;
    24 import java.util.concurrent.Flow;
    26 import java.util.function.Function;
    25 import java.util.function.Function;
    27 import java.net.http.HttpResponse.BodyHandler;
    26 import java.net.http.HttpResponse.BodyHandler;
    28 import java.net.http.HttpResponse.BodySubscriber;
    27 import java.net.http.HttpResponse.BodySubscriber;
       
    28 import static java.util.function.Function.identity;
       
    29 import static java.nio.charset.StandardCharsets.*;
    29 
    30 
    30 /*
    31 /*
    31  * @test
    32  * @test
    32  * @summary Basic test for Flow adapters with generic type parameters
    33  * @summary Basic test for Flow adapters with generic type parameters
    33  * @compile LineAdaptersCompileOnly.java
    34  * @compile LineAdaptersCompileOnly.java
    38     public static void main(String[] args) {
    39     public static void main(String[] args) {
    39         makesSureDifferentGenericSignaturesCompile();
    40         makesSureDifferentGenericSignaturesCompile();
    40     }
    41     }
    41 
    42 
    42     static void makesSureDifferentGenericSignaturesCompile() {
    43     static void makesSureDifferentGenericSignaturesCompile() {
    43 
       
    44         BodyHandler.fromLineSubscriber(new StringSubscriber());
    44         BodyHandler.fromLineSubscriber(new StringSubscriber());
    45         BodyHandler.fromLineSubscriber(new CharSequenceSubscriber());
    45         BodyHandler.fromLineSubscriber(new CharSequenceSubscriber());
    46         BodyHandler.fromLineSubscriber(new ObjectSubscriber());
    46         BodyHandler.fromLineSubscriber(new ObjectSubscriber());
    47 
       
    48 
    47 
    49         BodySubscriber.fromLineSubscriber(new StringSubscriber());
    48         BodySubscriber.fromLineSubscriber(new StringSubscriber());
    50         BodySubscriber.fromLineSubscriber(new CharSequenceSubscriber());
    49         BodySubscriber.fromLineSubscriber(new CharSequenceSubscriber());
    51         BodySubscriber.fromLineSubscriber(new ObjectSubscriber());
    50         BodySubscriber.fromLineSubscriber(new ObjectSubscriber());
    52 
    51 
       
    52         BodyHandler.fromLineSubscriber(new StringSubscriber(),       identity(), "\n");
       
    53         BodyHandler.fromLineSubscriber(new CharSequenceSubscriber(), identity(), "\r\n");
       
    54         BodyHandler.fromLineSubscriber(new ObjectSubscriber(),       identity(), "\n");
       
    55         BodyHandler.fromLineSubscriber(new StringSubscriber(),       identity(), null);
       
    56         BodyHandler.fromLineSubscriber(new CharSequenceSubscriber(), identity(), null);
       
    57         BodyHandler.fromLineSubscriber(new ObjectSubscriber(),       identity(), null);
    53 
    58 
    54         BodyHandler.fromLineSubscriber(new StringSubscriber(), Function.identity(), "\n");
    59         BodySubscriber.fromLineSubscriber(new StringSubscriber(),       identity(), UTF_8,    "\n");
    55         BodyHandler.fromLineSubscriber(new CharSequenceSubscriber(), Function.identity(),  "\r\n");
    60         BodySubscriber.fromLineSubscriber(new CharSequenceSubscriber(), identity(), UTF_16,   "\r\n");
    56         BodyHandler.fromLineSubscriber(new ObjectSubscriber(), Function.identity(), "\n");
    61         BodySubscriber.fromLineSubscriber(new ObjectSubscriber(),       identity(), US_ASCII, "\n");
    57         BodyHandler.fromLineSubscriber(new StringSubscriber(), Function.identity(), null);
    62         BodySubscriber.fromLineSubscriber(new StringSubscriber(),       identity(), UTF_8,    null);
    58         BodyHandler.fromLineSubscriber(new CharSequenceSubscriber(), Function.identity(),  null);
    63         BodySubscriber.fromLineSubscriber(new CharSequenceSubscriber(), identity(), UTF_16,   null);
    59         BodyHandler.fromLineSubscriber(new ObjectSubscriber(), Function.identity(), null);
    64         BodySubscriber.fromLineSubscriber(new ObjectSubscriber(),       identity(), US_ASCII, null);
    60 
       
    61         BodySubscriber.fromLineSubscriber(new StringSubscriber(), Function.identity(),
       
    62                 StandardCharsets.UTF_8, "\n");
       
    63         BodySubscriber.fromLineSubscriber(new CharSequenceSubscriber(), Function.identity(),
       
    64                 StandardCharsets.UTF_16, "\r\n");
       
    65         BodySubscriber.fromLineSubscriber(new ObjectSubscriber(), Function.identity(),
       
    66                 StandardCharsets.US_ASCII, "\n");
       
    67         BodySubscriber.fromLineSubscriber(new StringSubscriber(), Function.identity(),
       
    68                 StandardCharsets.UTF_8, null);
       
    69         BodySubscriber.fromLineSubscriber(new CharSequenceSubscriber(), Function.identity(),
       
    70                 StandardCharsets.UTF_16, null);
       
    71         BodySubscriber.fromLineSubscriber(new ObjectSubscriber(), Function.identity(),
       
    72                 StandardCharsets.US_ASCII, null);
       
    73     }
    65     }
    74 
    66 
    75     static class StringSubscriber implements Flow.Subscriber<String> {
    67     static class StringSubscriber implements Flow.Subscriber<String> {
    76         @Override public void onSubscribe(Flow.Subscription subscription) { }
    68         @Override public void onSubscribe(Flow.Subscription subscription) { }
    77         @Override public void onNext(String item) { }
    69         @Override public void onNext(String item) { }
    90         @Override public void onSubscribe(Flow.Subscription subscription) { }
    82         @Override public void onSubscribe(Flow.Subscription subscription) { }
    91         @Override public void onNext(Object item) { }
    83         @Override public void onNext(Object item) { }
    92         @Override public void onError(Throwable throwable) { }
    84         @Override public void onError(Throwable throwable) { }
    93         @Override public void onComplete() { }
    85         @Override public void onComplete() { }
    94     }
    86     }
       
    87 
       
    88     // ---
       
    89 
       
    90     static final Function<StringSubscriber,Integer> f1 = subscriber -> 1;
       
    91     static final Function<StringSubscriber,Number> f2 = subscriber -> 2;
       
    92     static final Function<StringSubscriberX,Integer> f3 = subscriber -> 3;
       
    93     static final Function<StringSubscriberX,Number> f4 = subscriber -> 4;
       
    94 
       
    95     static class StringSubscriberX extends StringSubscriber {
       
    96         int getIntegerX() { return 5; }
       
    97     }
       
    98 
       
    99     static void makesSureDifferentGenericFunctionSignaturesCompile() {
       
   100         BodyHandler<Integer> bh01 = BodyHandler.fromLineSubscriber(new StringSubscriber(), s -> 6, "\n");
       
   101         BodyHandler<Number>  bh02 = BodyHandler.fromLineSubscriber(new StringSubscriber(), s -> 7, "\n");
       
   102         BodyHandler<Integer> bh03 = BodyHandler.fromLineSubscriber(new StringSubscriber(), f1, "\n");
       
   103         BodyHandler<Number>  bh04 = BodyHandler.fromLineSubscriber(new StringSubscriber(), f1, "\n");
       
   104         BodyHandler<Number>  bh05 = BodyHandler.fromLineSubscriber(new StringSubscriber(), f2, "\n");
       
   105         BodyHandler<Integer> bh06 = BodyHandler.fromLineSubscriber(new StringSubscriberX(), f1, "\n");
       
   106         BodyHandler<Number>  bh07 = BodyHandler.fromLineSubscriber(new StringSubscriberX(), f1, "\n");
       
   107         BodyHandler<Number>  bh08 = BodyHandler.fromLineSubscriber(new StringSubscriberX(), f2, "\n");
       
   108         BodyHandler<Integer> bh09 = BodyHandler.fromLineSubscriber(new StringSubscriberX(), StringSubscriberX::getIntegerX, "\n");
       
   109         BodyHandler<Number>  bh10 = BodyHandler.fromLineSubscriber(new StringSubscriberX(), StringSubscriberX::getIntegerX, "\n");
       
   110         BodyHandler<Integer> bh11 = BodyHandler.fromLineSubscriber(new StringSubscriberX(), f3, "\n");
       
   111         BodyHandler<Number>  bh12 = BodyHandler.fromLineSubscriber(new StringSubscriberX(), f3, "\n");
       
   112         BodyHandler<Number>  bh13 = BodyHandler.fromLineSubscriber(new StringSubscriberX(), f4, "\n");
       
   113 
       
   114         BodySubscriber<Integer> bs01 = BodySubscriber.fromLineSubscriber(new StringSubscriber(), s -> 6, UTF_8, "\n");
       
   115         BodySubscriber<Number>  bs02 = BodySubscriber.fromLineSubscriber(new StringSubscriber(), s -> 7, UTF_8, "\n");
       
   116         BodySubscriber<Integer> bs03 = BodySubscriber.fromLineSubscriber(new StringSubscriber(), f1, UTF_8, "\n");
       
   117         BodySubscriber<Number>  bs04 = BodySubscriber.fromLineSubscriber(new StringSubscriber(), f1, UTF_8, "\n");
       
   118         BodySubscriber<Number>  bs05 = BodySubscriber.fromLineSubscriber(new StringSubscriber(), f2, UTF_8, "\n");
       
   119         BodySubscriber<Integer> bs06 = BodySubscriber.fromLineSubscriber(new StringSubscriberX(), f1, UTF_8, "\n");
       
   120         BodySubscriber<Number>  bs07 = BodySubscriber.fromLineSubscriber(new StringSubscriberX(), f1, UTF_8, "\n");
       
   121         BodySubscriber<Number>  bs08 = BodySubscriber.fromLineSubscriber(new StringSubscriberX(), f2, UTF_8, "\n");
       
   122         BodySubscriber<Integer> bs09 = BodySubscriber.fromLineSubscriber(new StringSubscriberX(), StringSubscriberX::getIntegerX, UTF_8, "\n");
       
   123         BodySubscriber<Number>  bs10 = BodySubscriber.fromLineSubscriber(new StringSubscriberX(), StringSubscriberX::getIntegerX, UTF_8, "\n");
       
   124         BodySubscriber<Integer> bs11 = BodySubscriber.fromLineSubscriber(new StringSubscriberX(), f3, UTF_8, "\n");
       
   125         BodySubscriber<Number>  bs12 = BodySubscriber.fromLineSubscriber(new StringSubscriberX(), f3, UTF_8, "\n");
       
   126         BodySubscriber<Number>  bs13 = BodySubscriber.fromLineSubscriber(new StringSubscriberX(), f4, UTF_8, "\n");
       
   127     }
    95 }
   128 }