# StructuredTaskScope (JEP 505 in 25). Fifth preview in 25, sixth in 26, seventh in 27.

$ javac StructuredHub.java      (JDK 25, no flag)
    <repo>/lanes/src/StructuredHub.java:1: error: StructuredTaskScope is a preview API and is disabled by default.
    import java.util.concurrent.StructuredTaskScope;
                               ^
      (use --enable-preview to enable preview APIs)
    <repo>/lanes/src/StructuredHub.java:15: error: StructuredTaskScope is a preview API and is disabled by default.
            try (var scope = StructuredTaskScope.open()) {
                             ^
      (use --enable-preview to enable preview APIs)
    <repo>/lanes/src/StructuredHub.java:24: error: StructuredTaskScope is a preview API and is disabled by default.
            try (var scope = StructuredTaskScope.open(StructuredTaskScope.Joiner.<String>anySuccessfulResultOrThrow())) {
                                                      ^
      (use --enable-preview to enable preview APIs)
    <repo>/lanes/src/StructuredHub.java:24: error: Joiner is a preview API and is disabled by default.
            try (var scope = StructuredTaskScope.open(StructuredTaskScope.Joiner.<String>anySuccessfulResultOrThrow())) {
                                                                         ^
      (use --enable-preview to enable preview APIs)
    <repo>/lanes/src/StructuredHub.java:24: error: StructuredTaskScope is a preview API and is disabled by default.
            try (var scope = StructuredTaskScope.open(StructuredTaskScope.Joiner.<String>anySuccessfulResultOrThrow())) {
                             ^
      (use --enable-preview to enable preview APIs)
    5 errors
    exit=1
$ javac --enable-preview --release 25 StructuredHub.java      (JDK 25)
    exit=0
$ java --enable-preview StructuredHub      (JDK 25)
    java.version = 25.0.4.1
    CHECK ok   : fan-out: both results joined: Dashboard[user=user-7, order=order-for-7]
    CHECK ok   : anySuccessfulResultOrThrow(): the first result wins and the slow subtask is cancelled

$ javac StructuredHub.java      (JDK 26, no flag)
    <repo>/lanes/src/StructuredHub.java:1: error: StructuredTaskScope is a preview API and is disabled by default.
    import java.util.concurrent.StructuredTaskScope;
                               ^
      (use --enable-preview to enable preview APIs)
    <repo>/lanes/src/StructuredHub.java:15: error: StructuredTaskScope is a preview API and is disabled by default.
            try (var scope = StructuredTaskScope.open()) {
                             ^
      (use --enable-preview to enable preview APIs)
    <repo>/lanes/src/StructuredHub.java:24: error: StructuredTaskScope is a preview API and is disabled by default.
            try (var scope = StructuredTaskScope.open(StructuredTaskScope.Joiner.<String>anySuccessfulResultOrThrow())) {
                                                      ^
      (use --enable-preview to enable preview APIs)
    <repo>/lanes/src/StructuredHub.java:24: error: Joiner is a preview API and is disabled by default.
            try (var scope = StructuredTaskScope.open(StructuredTaskScope.Joiner.<String>anySuccessfulResultOrThrow())) {
                                                                         ^
      (use --enable-preview to enable preview APIs)
    <repo>/lanes/src/StructuredHub.java:24: error: cannot find symbol
            try (var scope = StructuredTaskScope.open(StructuredTaskScope.Joiner.<String>anySuccessfulResultOrThrow())) {
                                                                                ^
      symbol:   method <String>anySuccessfulResultOrThrow()
      location: interface Joiner
    <repo>/lanes/src/StructuredHub.java:24: error: StructuredTaskScope is a preview API and is disabled by default.
            try (var scope = StructuredTaskScope.open(StructuredTaskScope.Joiner.<String>anySuccessfulResultOrThrow())) {
                             ^
      (use --enable-preview to enable preview APIs)
    6 errors
    exit=1
$ javac --enable-preview --release 26 StructuredHub.java      (JDK 26)
    <repo>/lanes/src/StructuredHub.java:24: error: cannot find symbol
            try (var scope = StructuredTaskScope.open(StructuredTaskScope.Joiner.<String>anySuccessfulResultOrThrow())) {
                                                                                ^
      symbol:   method <String>anySuccessfulResultOrThrow()
      location: interface Joiner
    1 error
    exit=1

$ javac StructuredHub.java      (JDK 27, no flag)
    <repo>/lanes/src/StructuredHub.java:1: error: StructuredTaskScope is a preview API and is disabled by default.
    import java.util.concurrent.StructuredTaskScope;
                               ^
      (use --enable-preview to enable preview APIs)
    <repo>/lanes/src/StructuredHub.java:15: error: StructuredTaskScope is a preview API and is disabled by default.
            try (var scope = StructuredTaskScope.open()) {
                             ^
      (use --enable-preview to enable preview APIs)
    <repo>/lanes/src/StructuredHub.java:24: error: StructuredTaskScope is a preview API and is disabled by default.
            try (var scope = StructuredTaskScope.open(StructuredTaskScope.Joiner.<String>anySuccessfulResultOrThrow())) {
                                                      ^
      (use --enable-preview to enable preview APIs)
    <repo>/lanes/src/StructuredHub.java:24: error: Joiner is a preview API and is disabled by default.
            try (var scope = StructuredTaskScope.open(StructuredTaskScope.Joiner.<String>anySuccessfulResultOrThrow())) {
                                                                         ^
      (use --enable-preview to enable preview APIs)
    <repo>/lanes/src/StructuredHub.java:24: error: cannot find symbol
            try (var scope = StructuredTaskScope.open(StructuredTaskScope.Joiner.<String>anySuccessfulResultOrThrow())) {
                                                                                ^
      symbol:   method <String>anySuccessfulResultOrThrow()
      location: interface Joiner
    <repo>/lanes/src/StructuredHub.java:24: error: StructuredTaskScope is a preview API and is disabled by default.
            try (var scope = StructuredTaskScope.open(StructuredTaskScope.Joiner.<String>anySuccessfulResultOrThrow())) {
                             ^
      (use --enable-preview to enable preview APIs)
    6 errors
    exit=1
$ javac --enable-preview --release 27 StructuredHub.java      (JDK 27)
    <repo>/lanes/src/StructuredHub.java:24: error: cannot find symbol
            try (var scope = StructuredTaskScope.open(StructuredTaskScope.Joiner.<String>anySuccessfulResultOrThrow())) {
                                                                                ^
      symbol:   method <String>anySuccessfulResultOrThrow()
      location: interface Joiner
    1 error
    exit=1

$ javac --enable-preview --release 26 StructuredHubNew.java      (JDK 26)
    exit=0
$ java --enable-preview StructuredHubNew      (JDK 26)
    java.version = 26.0.2.1
    CHECK ok   : anySuccessfulOrThrow(): the first result wins

$ javac --enable-preview --release 27 StructuredHubNew.java      (JDK 27)
    exit=0
$ java --enable-preview StructuredHubNew      (JDK 27)
    java.version = 27
    CHECK ok   : anySuccessfulOrThrow(): the first result wins
