From f98bf5fba37f9f5a3672b9555ad568be4de43491 Mon Sep 17 00:00:00 2001 From: "He-Pin(kerr)" Date: Wed, 17 Dec 2025 17:53:35 +0800 Subject: [PATCH] chore: Deprecate Source#future in javadsl (#2555) * chore: Deprecate Source#future in javadsl * Update stream/src/main/scala/org/apache/pekko/stream/javadsl/Source.scala Co-authored-by: PJ Fanning --------- Co-authored-by: PJ Fanning --- .../apache/pekko/stream/javadsl/LazyAndFutureSourcesTest.java | 1 + .../main/scala/org/apache/pekko/stream/javadsl/Source.scala | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/stream-tests/src/test/java/org/apache/pekko/stream/javadsl/LazyAndFutureSourcesTest.java b/stream-tests/src/test/java/org/apache/pekko/stream/javadsl/LazyAndFutureSourcesTest.java index ea98d6eef6e..b84fee1685a 100644 --- a/stream-tests/src/test/java/org/apache/pekko/stream/javadsl/LazyAndFutureSourcesTest.java +++ b/stream-tests/src/test/java/org/apache/pekko/stream/javadsl/LazyAndFutureSourcesTest.java @@ -42,6 +42,7 @@ public LazyAndFutureSourcesTest() { // note these are minimal happy path tests to cover API, more thorough tests are on the Scala side @Test + @SuppressWarnings("deprecation") public void future() throws Exception { CompletionStage> result = Source.future(Future.successful("one")).runWith(Sink.seq(), system); diff --git a/stream/src/main/scala/org/apache/pekko/stream/javadsl/Source.scala b/stream/src/main/scala/org/apache/pekko/stream/javadsl/Source.scala index 9df1019e60e..40c41647f08 100755 --- a/stream/src/main/scala/org/apache/pekko/stream/javadsl/Source.scala +++ b/stream/src/main/scala/org/apache/pekko/stream/javadsl/Source.scala @@ -322,6 +322,7 @@ object Source { * * Here for Java interoperability, the normal use from Java should be [[Source.completionStage]] */ + @deprecated("Use 'Source.completionStage' or 'scaladsl.Source.future' instead", "1.5.0") def future[T](futureElement: Future[T]): Source[T, NotUsed] = scaladsl.Source.future(futureElement).asJava @@ -337,7 +338,7 @@ object Source { * If the `CompletionStage` is completed with a failure the stream is failed. */ def completionStage[T](completionStage: CompletionStage[T]): Source[T, NotUsed] = - future(completionStage.asScala) + new Source(scaladsl.Source.future(completionStage.asScala)) /** * Turn a `CompletionStage[Source]` into a source that will emit the values of the source when the future completes successfully.