Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
import com.squareup.javapoet.ClassName;
import com.squareup.javapoet.JavaFile;
import com.squareup.javapoet.MethodSpec;
import com.squareup.javapoet.ParameterizedTypeName;
import com.squareup.javapoet.TypeSpec;
import javax.lang.model.element.Modifier;

Expand All @@ -47,6 +48,7 @@ public GeneratedJavaFile generateFile() {
.addMethod(createStreamResourceTest(streamClassName, testAnnotation))
.addMethod(createMapToJsonHelperMethod())
.addMethod(createMapToSseHelperMethod())
.addMethod(createCreateMapHelperMethod())
.build();

JavaFile testFile = JavaFile.builder(className.packageName(), testTypeSpec)
Expand All @@ -64,17 +66,21 @@ private MethodSpec createJsonStreamTest(ClassName streamClassName, ClassName tes
return MethodSpec.methodBuilder("testJsonStream")
.addAnnotation(testAnnotation)
.addModifiers(Modifier.PUBLIC)
.addCode(
"$T<$T> messages = $T.of(\n",
.addStatement(
"$T<$T<$T, $T>> messages = $T.asList(createMap($S, $S), createMap($S, $S))",
ClassName.get("java.util", "List"),
ClassName.get("java.util", "Map"),
ClassName.get("java.util", "List"))
.addCode(" $T.of($S, $S),\n", ClassName.get("java.util", "Map"), "message", "hello")
.addCode(" $T.of($S, $S)\n", ClassName.get("java.util", "Map"), "message", "world")
.addCode(");\n")
ClassName.get(String.class),
ClassName.get(String.class),
ClassName.get("java.util", "Arrays"),
"message",
"hello",
"message",
"world")
.addStatement(
"$T jsonStrings = messages.stream().map($T::mapToJson).collect($T.toList())",
"$T<$T> jsonStrings = messages.stream().map($T::mapToJson).collect($T.toList())",
ClassName.get("java.util", "List"),
ClassName.get(String.class),
ClassName.get(className.packageName(), STREAM_TEST_CLASS_NAME),
ClassName.get("java.util.stream", "Collectors"))
.addStatement(
Expand Down Expand Up @@ -106,17 +112,21 @@ private MethodSpec createSseStreamTest(ClassName streamClassName, ClassName test
return MethodSpec.methodBuilder("testSseStream")
.addAnnotation(testAnnotation)
.addModifiers(Modifier.PUBLIC)
.addCode(
"$T<$T> events = $T.of(\n",
.addStatement(
"$T<$T<$T, $T>> events = $T.asList(createMap($S, $S), createMap($S, $S))",
ClassName.get("java.util", "List"),
ClassName.get("java.util", "Map"),
ClassName.get("java.util", "List"))
.addCode(" $T.of($S, $S),\n", ClassName.get("java.util", "Map"), "event", "start")
.addCode(" $T.of($S, $S)\n", ClassName.get("java.util", "Map"), "event", "end")
.addCode(");\n")
ClassName.get(String.class),
ClassName.get(String.class),
ClassName.get("java.util", "Arrays"),
"event",
"start",
"event",
"end")
.addStatement(
"$T sseStrings = events.stream().map($T::mapToSse).collect($T.toList())",
"$T<$T> sseStrings = events.stream().map($T::mapToSse).collect($T.toList())",
ClassName.get("java.util", "List"),
ClassName.get(String.class),
ClassName.get(className.packageName(), STREAM_TEST_CLASS_NAME),
ClassName.get("java.util.stream", "Collectors"))
.addStatement(
Expand Down Expand Up @@ -148,17 +158,22 @@ private MethodSpec createSseStreamWithTerminatorTest(ClassName streamClassName,
return MethodSpec.methodBuilder("testSseStreamWithTerminator")
.addAnnotation(testAnnotation)
.addModifiers(Modifier.PUBLIC)
.addCode(
"$T<$T> events = $T.of(\n",
.addStatement(
"$T<$T<$T, $T>> events = $T.asList(createMap($S, $S), createMap($S, $S))",
ClassName.get("java.util", "List"),
ClassName.get("java.util", "Map"),
ClassName.get("java.util", "List"))
.addCode(" $T.of($S, $S),\n", ClassName.get("java.util", "Map"), "message", "first")
.addCode(" $T.of($S, $S)\n", ClassName.get("java.util", "Map"), "message", "second")
.addCode(");\n")
ClassName.get(String.class),
ClassName.get(String.class),
ClassName.get("java.util", "Arrays"),
"message",
"first",
"message",
"second")
.addStatement(
"$T sseStrings = events.stream().map($T::mapToSse).collect($T.toList())",
"$T<$T> sseStrings = new $T<>(events.stream().map($T::mapToSse).collect($T.toList()))",
ClassName.get("java.util", "List"),
ClassName.get(String.class),
ClassName.get("java.util", "ArrayList"),
ClassName.get(className.packageName(), STREAM_TEST_CLASS_NAME),
ClassName.get("java.util.stream", "Collectors"))
.addStatement("sseStrings.add($S)", "data: [DONE]")
Expand Down Expand Up @@ -232,4 +247,22 @@ private MethodSpec createMapToSseHelperMethod() {
.addStatement("return $S + mapToJson(map)", "data: ")
.build();
}

private MethodSpec createCreateMapHelperMethod() {
return MethodSpec.methodBuilder("createMap")
.addModifiers(Modifier.PRIVATE, Modifier.STATIC)
.returns(ParameterizedTypeName.get(
ClassName.get("java.util", "Map"), ClassName.get(String.class), ClassName.get(String.class)))
.addParameter(String.class, "key")
.addParameter(String.class, "value")
.addStatement(
"$T<$T, $T> map = new $T<>()",
ClassName.get("java.util", "Map"),
ClassName.get(String.class),
ClassName.get(String.class),
ClassName.get("java.util", "HashMap"))
.addStatement("map.put(key, value)")
.addStatement("return map")
.build();
}
}
8 changes: 8 additions & 0 deletions generators/java/sdk/versions.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
- version: 3.20.1
changelogEntry:
- summary: |
Fix StreamTest generator to use Java 8 compatible constructs. Replaced List.of() and Map.of() (Java 9+) with Arrays.asList() and a createMap() helper method using HashMap.
type: fix
createdAt: "2025-11-27"
irVersion: 61

- version: 3.20.0
changelogEntry:
- summary: |
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

23 changes: 17 additions & 6 deletions seed/java-sdk/alias/src/test/java/com/seed/alias/StreamTest.java

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading