You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pekko.apache.org by he...@apache.org on 2025/09/19 15:34:34 UTC

(pekko) branch main updated: chore: Use Scala Option Converter (#2203)

This is an automated email from the ASF dual-hosted git repository.

hepin pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/pekko.git


The following commit(s) were added to refs/heads/main by this push:
     new 04f5fcd1b7 chore: Use Scala Option Converter (#2203)
04f5fcd1b7 is described below

commit 04f5fcd1b794940dd5f2ca2bdd80ef43c904ef24
Author: PJ Fanning <pj...@users.noreply.github.com>
AuthorDate: Fri Sep 19 16:34:29 2025 +0100

    chore: Use Scala Option Converter (#2203)
    
    * chore: Use Scala Option Converter
    ---------
    
    Co-authored-by: He-Pin <he...@gmail.com>
---
 CONTRIBUTING.md                                    |  2 +-
 .../actor/testkit/typed/CapturedLogEvent.scala     |  2 +-
 .../pekko/actor/testkit/typed/LoggingEvent.scala   |  2 +-
 .../pekko/util/JavaConverterScala3InlineTest.java  |  8 +-
 .../org/apache/pekko/util/Scala212CompatTest.scala | 76 -------------------
 .../actor/typed/delivery/ProducerController.scala  |  2 +-
 .../delivery/WorkPullingProducerController.scala   |  2 +-
 .../javaapi-option.excludes                        | 12 +++
 .../org/apache/pekko/util/OptionConverters.scala   | 85 ----------------------
 .../org/apache/pekko/util/OptionConverters.scala   | 79 --------------------
 .../org/apache/pekko/actor/AbstractActor.scala     |  4 +-
 .../main/scala/org/apache/pekko/actor/Actor.scala  |  2 +-
 .../scala/org/apache/pekko/actor/ActorSystem.scala |  2 +-
 .../scala/org/apache/pekko/actor/Address.scala     |  3 +-
 .../apache/pekko/actor/CoordinatedShutdown.scala   |  2 +-
 .../pekko/actor/setup/ActorSystemSetup.scala       |  2 +-
 .../scala/org/apache/pekko/pattern/Patterns.scala  |  4 +-
 .../delivery/ShardingProducerController.scala      |  2 +-
 .../typed/internal/ClusterShardingImpl.scala       |  2 +-
 .../typed/internal/ShardedDaemonProcessImpl.scala  |  2 +-
 .../sharding/typed/javadsl/ClusterSharding.scala   |  2 +-
 .../coordination/lease/internal/LeaseAdapter.scala |  2 +-
 .../apache/pekko/discovery/ServiceDiscovery.scala  |  2 +-
 .../pekko/cluster/ddata/ReplicatedData.scala       |  2 +-
 .../pekko/persistence/query/EventEnvelope.scala    |  2 +-
 .../persistence/query/typed/EventEnvelope.scala    |  4 +-
 .../javadsl/EventSourcedBehaviorTestKit.scala      |  2 +-
 .../PersistenceTestKitDurableStateStore.scala      |  2 +-
 .../typed/internal/EventSourcedBehaviorImpl.scala  |  2 +-
 .../typed/javadsl/EventSourcedBehavior.scala       |  2 +-
 .../typed/javadsl/PersistentFSMMigration.scala     |  2 +-
 .../persistence/snapshot/japi/SnapshotStore.scala  |  2 +-
 .../state/javadsl/DurableStateStore.scala          |  2 +-
 .../state/scaladsl/DurableStateStore.scala         |  2 +-
 .../jackson/JacksonObjectMapperProvider.scala      |  3 +-
 .../scala/org/apache/pekko/stream/Attributes.scala |  2 +-
 .../org/apache/pekko/stream/javadsl/Flow.scala     |  4 +-
 .../pekko/stream/javadsl/FlowWithContext.scala     |  2 +-
 .../org/apache/pekko/stream/javadsl/Queue.scala    |  2 +-
 .../apache/pekko/stream/javadsl/RetryFlow.scala    |  2 +-
 .../org/apache/pekko/stream/javadsl/Sink.scala     |  2 +-
 .../org/apache/pekko/stream/javadsl/Source.scala   |  4 +-
 .../pekko/stream/javadsl/SourceWithContext.scala   |  2 +-
 .../org/apache/pekko/stream/javadsl/SubFlow.scala  |  4 +-
 .../apache/pekko/stream/javadsl/SubSource.scala    |  4 +-
 .../org/apache/pekko/stream/javadsl/Tcp.scala      |  2 +-
 .../org/apache/pekko/stream/scaladsl/Queue.scala   |  2 +-
 47 files changed, 67 insertions(+), 293 deletions(-)

diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 6b93cd8d2c..e92557365d 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -531,7 +531,7 @@ Scala has proven the most viable way to do it, as long as you keep the following
 
 1. Use `org.apache.pekko.util.FutureConverters` to translate `Future`s to `CompletionStage`s (or vice versa).
 
-1. Use `org.apache.pekko.util.OptionConverters` to translate `Option`s to Java `Optional`s (or vice versa).
+1. Use `scala.jdk.javaapi.OptionConverters` to translate `Option`s to Java `Optional`s (or vice versa).
 
 1. Use `org.apache.pekko.util.FunctionConverters` to translate Scala Functions to Java Functions (or vice versa).
  
diff --git a/actor-testkit-typed/src/main/scala/org/apache/pekko/actor/testkit/typed/CapturedLogEvent.scala b/actor-testkit-typed/src/main/scala/org/apache/pekko/actor/testkit/typed/CapturedLogEvent.scala
index 6ee53a7709..13c06cac00 100644
--- a/actor-testkit-typed/src/main/scala/org/apache/pekko/actor/testkit/typed/CapturedLogEvent.scala
+++ b/actor-testkit-typed/src/main/scala/org/apache/pekko/actor/testkit/typed/CapturedLogEvent.scala
@@ -20,7 +20,7 @@ import org.slf4j.event.Level
 
 import org.apache.pekko
 import pekko.annotation.InternalApi
-import pekko.util.OptionConverters._
+import scala.jdk.OptionConverters._
 import pekko.util.OptionVal
 
 /**
diff --git a/actor-testkit-typed/src/main/scala/org/apache/pekko/actor/testkit/typed/LoggingEvent.scala b/actor-testkit-typed/src/main/scala/org/apache/pekko/actor/testkit/typed/LoggingEvent.scala
index 1e540d8125..cb893fdb91 100644
--- a/actor-testkit-typed/src/main/scala/org/apache/pekko/actor/testkit/typed/LoggingEvent.scala
+++ b/actor-testkit-typed/src/main/scala/org/apache/pekko/actor/testkit/typed/LoggingEvent.scala
@@ -20,7 +20,7 @@ import org.slf4j.event.Level
 
 import org.apache.pekko
 import pekko.util.ccompat.JavaConverters._
-import pekko.util.OptionConverters._
+import scala.jdk.OptionConverters._
 
 object LoggingEvent {
 
diff --git a/actor-tests/src/test/java/org/apache/pekko/util/JavaConverterScala3InlineTest.java b/actor-tests/src/test/java/org/apache/pekko/util/JavaConverterScala3InlineTest.java
index 5af2cd6a6a..cb55eb61a7 100644
--- a/actor-tests/src/test/java/org/apache/pekko/util/JavaConverterScala3InlineTest.java
+++ b/actor-tests/src/test/java/org/apache/pekko/util/JavaConverterScala3InlineTest.java
@@ -22,13 +22,13 @@ import java.util.*;
 import java.util.concurrent.CompletableFuture;
 import scala.Option;
 import scala.concurrent.Future;
+import scala.jdk.javaapi.OptionConverters;
 
 /**
  * These tests are here to ensure that methods from {@link org.apache.pekko.util.FutureConverters},
- * {@link org.apache.pekko.util.JavaDurationConverters} and {@link
- * org.apache.pekko.util.OptionConverters} for use within Java can be compiled from with Java
- * sources. This is because methods marked with the Scala 3 inline keyword cannot be called from
- * within Java (see https://github.com/lampepfl/dotty/issues/19346)
+ * {@link org.apache.pekko.util.JavaDurationConverters} for use within Java can be compiled from
+ * with Java sources. This is because methods marked with the Scala 3 inline keyword cannot be
+ * called from within Java (see https://github.com/lampepfl/dotty/issues/19346)
  */
 public class JavaConverterScala3InlineTest {
   public void compileTest() {
diff --git a/actor-tests/src/test/scala/org/apache/pekko/util/Scala212CompatTest.scala b/actor-tests/src/test/scala/org/apache/pekko/util/Scala212CompatTest.scala
deleted file mode 100644
index 2380197b22..0000000000
--- a/actor-tests/src/test/scala/org/apache/pekko/util/Scala212CompatTest.scala
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.pekko.util
-
-import org.apache.pekko
-import pekko.util.OptionConverters._
-
-import java.util._
-import scala.annotation.nowarn
-
-/**
- * These tests are here to ensure that methods from [[org.apache.pekko.util.FutureConverters]], [[org.apache.pekko.util.OptionConverters]]
- * and [[org.apache.pekko.util.FunctionConverters]] that used within Pekko ecosystem but not Pekko core properly cross compile on Scala 2.12
- * and Scala 2.13+.
- *
- * Remove this once Scala 2.12 support is dropped since all methods are in Scala 2.13+ stdlib
- */
-
-@nowarn("msg=deprecated")
-object Scala212CompatTest {
-
-  // .toJavaPrimitive tests
-  val javaDoubleOptional: java.util.Optional[Double] = java.util.Optional.of(1.0)
-  val scalaDoubleOption: Option[Double] = Some(1.0)
-  val doubleOptionalToJavaPrimitive: OptionalDouble = javaDoubleOptional.toJavaPrimitive
-  val doubleOptionToJavaPrimitive: OptionalDouble = scalaDoubleOption.toJavaPrimitive
-
-  val javaIntOptional: java.util.Optional[Int] = java.util.Optional.of(1)
-  val scalaIntOption: Option[Int] = Some(1)
-  val intOptionalToJavaPrimitive: OptionalInt = javaIntOptional.toJavaPrimitive
-  val intOptionToJavaPrimitive: OptionalInt = scalaIntOption.toJavaPrimitive
-
-  val javaLongOptional: java.util.Optional[Long] = java.util.Optional.of(1L)
-  val scalaLongOption: Option[Long] = Some(1L)
-  val longOptionalToJavaPrimitive: OptionalLong = javaLongOptional.toJavaPrimitive
-  val longOptionToJavaPrimitive: OptionalLong = scalaLongOption.toJavaPrimitive
-
-  // from java optional primitive
-  val javaOptionalDouble: java.util.OptionalDouble = java.util.OptionalDouble.of(1.0)
-  val optionalDoubleToScala: Option[Double] = javaOptionalDouble.toScala
-  val optionalDoubleToJavaGeneric: Optional[Double] = javaOptionalDouble.toJavaGeneric
-
-  val javaOptionalInt: java.util.OptionalInt = java.util.OptionalInt.of(1)
-  val optionalIntToScala: Option[Int] = javaOptionalInt.toScala
-  val optionalIntToJavaGeneric: Optional[Int] = javaOptionalInt.toJavaGeneric
-
-  val javaOptionalLong: java.util.OptionalLong = java.util.OptionalLong.of(1L)
-  val optionalLongToScala: Option[Long] = javaOptionalLong.toScala
-  val optionalLongToJavaGeneric: Optional[Long] = javaOptionalLong.toJavaGeneric
-
-  // OptionConverters toScala and toJava
-  OptionConverters.toJava(OptionConverters.toScala(java.util.Optional.of("")))
-  OptionConverters.toJava(OptionConverters.toScala(java.util.OptionalDouble.of(1.0)))
-  OptionConverters.toJava(OptionConverters.toScala(java.util.OptionalInt.of(1)))
-  OptionConverters.toJava(OptionConverters.toScala(java.util.OptionalLong.of(1L)))
-
-  // Iterable.single
-  val queue = scala.collection.immutable.Queue.empty[ByteString]
-  queue.enqueue(Iterable.single(ByteString.empty))
-
-}
diff --git a/actor-typed/src/main/scala/org/apache/pekko/actor/typed/delivery/ProducerController.scala b/actor-typed/src/main/scala/org/apache/pekko/actor/typed/delivery/ProducerController.scala
index 65e525d0a1..c4e9fe867c 100644
--- a/actor-typed/src/main/scala/org/apache/pekko/actor/typed/delivery/ProducerController.scala
+++ b/actor-typed/src/main/scala/org/apache/pekko/actor/typed/delivery/ProducerController.scala
@@ -33,7 +33,7 @@ import pekko.annotation.InternalApi
 import pekko.util.Helpers.toRootLowerCase
 import pekko.util.Helpers.Requiring
 import pekko.util.JavaDurationConverters._
-import pekko.util.OptionConverters._
+import scala.jdk.OptionConverters._
 
 /**
  * Point-to-point reliable delivery between a single producer actor sending messages and a single consumer
diff --git a/actor-typed/src/main/scala/org/apache/pekko/actor/typed/delivery/WorkPullingProducerController.scala b/actor-typed/src/main/scala/org/apache/pekko/actor/typed/delivery/WorkPullingProducerController.scala
index bbe094f3c2..ceea8229d1 100644
--- a/actor-typed/src/main/scala/org/apache/pekko/actor/typed/delivery/WorkPullingProducerController.scala
+++ b/actor-typed/src/main/scala/org/apache/pekko/actor/typed/delivery/WorkPullingProducerController.scala
@@ -30,7 +30,7 @@ import pekko.actor.typed.receptionist.ServiceKey
 import pekko.actor.typed.scaladsl.Behaviors
 import pekko.annotation.ApiMayChange
 import pekko.util.JavaDurationConverters._
-import pekko.util.OptionConverters._
+import scala.jdk.OptionConverters._
 
 /**
  * Work pulling is a pattern where several worker actors pull tasks in their own pace from
diff --git a/actor/src/main/mima-filters/2.0.x.backwards.excludes/javaapi-option.excludes b/actor/src/main/mima-filters/2.0.x.backwards.excludes/javaapi-option.excludes
index df185d36ca..3b9eaf3aed 100644
--- a/actor/src/main/mima-filters/2.0.x.backwards.excludes/javaapi-option.excludes
+++ b/actor/src/main/mima-filters/2.0.x.backwards.excludes/javaapi-option.excludes
@@ -21,3 +21,15 @@ ProblemFilters.exclude[MissingClassProblem]("org.apache.pekko.japi.Option$")
 ProblemFilters.exclude[MissingClassProblem]("org.apache.pekko.japi.Option$None$")
 ProblemFilters.exclude[MissingClassProblem]("org.apache.pekko.japi.Option$Some")
 ProblemFilters.exclude[MissingClassProblem]("org.apache.pekko.japi.Option$Some$")
+ProblemFilters.exclude[MissingClassProblem]("org.apache.pekko.util.OptionConverters")
+ProblemFilters.exclude[MissingClassProblem]("org.apache.pekko.util.OptionConverters$")
+ProblemFilters.exclude[MissingClassProblem]("org.apache.pekko.util.OptionConverters$RichOption")
+ProblemFilters.exclude[MissingClassProblem]("org.apache.pekko.util.OptionConverters$RichOption$")
+ProblemFilters.exclude[MissingClassProblem]("org.apache.pekko.util.OptionConverters$RichOptional")
+ProblemFilters.exclude[MissingClassProblem]("org.apache.pekko.util.OptionConverters$RichOptional$")
+ProblemFilters.exclude[MissingClassProblem]("org.apache.pekko.util.OptionConverters$RichOptionalDouble")
+ProblemFilters.exclude[MissingClassProblem]("org.apache.pekko.util.OptionConverters$RichOptionalDouble$")
+ProblemFilters.exclude[MissingClassProblem]("org.apache.pekko.util.OptionConverters$RichOptionalInt")
+ProblemFilters.exclude[MissingClassProblem]("org.apache.pekko.util.OptionConverters$RichOptionalInt$")
+ProblemFilters.exclude[MissingClassProblem]("org.apache.pekko.util.OptionConverters$RichOptionalLong")
+ProblemFilters.exclude[MissingClassProblem]("org.apache.pekko.util.OptionConverters$RichOptionalLong$")
diff --git a/actor/src/main/scala-2.13/org/apache/pekko/util/OptionConverters.scala b/actor/src/main/scala-2.13/org/apache/pekko/util/OptionConverters.scala
deleted file mode 100644
index 97eab8a0da..0000000000
--- a/actor/src/main/scala-2.13/org/apache/pekko/util/OptionConverters.scala
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.pekko.util
-
-import org.apache.pekko.annotation.InternalStableApi
-
-import java.util._
-import scala.jdk.OptionShape
-
-/**
- * INTERNAL API
- *
- * Remove this once Scala 2.12 support is dropped since all methods are in Scala 2.13+ stdlib
- */
-@InternalStableApi
-private[pekko] object OptionConverters {
-
-  @inline final def toScala[A](o: Optional[A]): Option[A] = scala.jdk.javaapi.OptionConverters.toScala(o)
-
-  @inline def toScala(o: OptionalDouble): Option[java.lang.Double] = scala.jdk.javaapi.OptionConverters.toScala(o)
-
-  @inline def toScala(o: OptionalInt): Option[java.lang.Integer] = scala.jdk.javaapi.OptionConverters.toScala(o)
-
-  @inline def toScala(o: OptionalLong): Option[java.lang.Long] = scala.jdk.javaapi.OptionConverters.toScala(o)
-
-  @inline final def toJava[A](o: Option[A]): Optional[A] = scala.jdk.javaapi.OptionConverters.toJava(o)
-
-  implicit final class RichOptional[A](private val o: java.util.Optional[A]) extends AnyVal {
-    @inline def toScala: Option[A] = scala.jdk.OptionConverters.RichOptional(o).toScala
-
-    @inline def toJavaPrimitive[O](implicit shape: OptionShape[A, O]): O =
-      scala.jdk.OptionConverters.RichOptional(o).toJavaPrimitive
-  }
-
-  implicit final class RichOption[A](private val o: Option[A]) extends AnyVal {
-    @inline def toJava: Optional[A] = scala.jdk.OptionConverters.RichOption(o).toJava
-
-    @inline def toJavaPrimitive[O](implicit shape: OptionShape[A, O]): O =
-      scala.jdk.OptionConverters.RichOption(o).toJavaPrimitive
-  }
-
-  implicit class RichOptionalDouble(private val o: OptionalDouble) extends AnyVal {
-
-    /** Convert a Java `OptionalDouble` to a Scala `Option` */
-    @inline def toScala: Option[Double] = scala.jdk.OptionConverters.RichOptionalDouble(o).toScala
-
-    /** Convert a Java `OptionalDouble` to a generic Java `Optional` */
-    @inline def toJavaGeneric: Optional[Double] = scala.jdk.OptionConverters.RichOptionalDouble(o).toJavaGeneric
-  }
-
-  /** Provides conversions from `OptionalInt` to Scala `Option` and the generic `Optional` */
-  implicit class RichOptionalInt(private val o: OptionalInt) extends AnyVal {
-
-    /** Convert a Java `OptionalInt` to a Scala `Option` */
-    @inline def toScala: Option[Int] = scala.jdk.OptionConverters.RichOptionalInt(o).toScala
-
-    /** Convert a Java `OptionalInt` to a generic Java `Optional` */
-    @inline def toJavaGeneric: Optional[Int] = scala.jdk.OptionConverters.RichOptionalInt(o).toJavaGeneric
-  }
-
-  /** Provides conversions from `OptionalLong` to Scala `Option` and the generic `Optional` */
-  implicit class RichOptionalLong(private val o: OptionalLong) extends AnyVal {
-
-    /** Convert a Java `OptionalLong` to a Scala `Option` */
-    @inline def toScala: Option[Long] = scala.jdk.OptionConverters.RichOptionalLong(o).toScala
-
-    /** Convert a Java `OptionalLong` to a generic Java `Optional` */
-    @inline def toJavaGeneric: Optional[Long] = scala.jdk.OptionConverters.RichOptionalLong(o).toJavaGeneric
-  }
-}
diff --git a/actor/src/main/scala-3/org/apache/pekko/util/OptionConverters.scala b/actor/src/main/scala-3/org/apache/pekko/util/OptionConverters.scala
deleted file mode 100644
index eb977d2518..0000000000
--- a/actor/src/main/scala-3/org/apache/pekko/util/OptionConverters.scala
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * license agreements; and to You under the Apache License, version 2.0:
- *
- *   https://www.apache.org/licenses/LICENSE-2.0
- *
- * This file is part of the Apache Pekko project, derived from Akka.
- */
-
-package org.apache.pekko.util
-
-import org.apache.pekko.annotation.InternalStableApi
-
-import java.util._
-import scala.jdk.OptionShape
-
-/**
- * INTERNAL API
- *
- * Remove this once Scala 2.12 support is dropped since all methods are in Scala 2.13+ stdlib.
- */
-@InternalStableApi
-private[pekko] object OptionConverters {
-
-  // Ideally these methods should have the Scala 3 inline keyword but then Java sources are
-  // unable to call these methods, see https://github.com/lampepfl/dotty/issues/19346
-  final def toScala[A](o: Optional[A]): Option[A] = scala.jdk.javaapi.OptionConverters.toScala(o)
-
-  def toScala(o: OptionalDouble): Option[java.lang.Double] = scala.jdk.javaapi.OptionConverters.toScala(o)
-
-  def toScala(o: OptionalInt): Option[java.lang.Integer] = scala.jdk.javaapi.OptionConverters.toScala(o)
-
-  def toScala(o: OptionalLong): Option[java.lang.Long] = scala.jdk.javaapi.OptionConverters.toScala(o)
-
-  final def toJava[A](o: Option[A]): Optional[A] = scala.jdk.javaapi.OptionConverters.toJava(o)
-
-  implicit final class RichOptional[A](private val o: java.util.Optional[A]) extends AnyVal {
-    inline def toScala: Option[A] = scala.jdk.OptionConverters.RichOptional(o).toScala
-
-    inline def toJavaPrimitive[O](implicit shape: OptionShape[A, O]): O =
-      scala.jdk.OptionConverters.RichOptional(o).toJavaPrimitive
-  }
-
-  implicit final class RichOption[A](private val o: Option[A]) extends AnyVal {
-    inline def toJava: Optional[A] = scala.jdk.OptionConverters.RichOption(o).toJava
-
-    inline def toJavaPrimitive[O](implicit shape: OptionShape[A, O]): O =
-      scala.jdk.OptionConverters.RichOption(o).toJavaPrimitive
-  }
-
-  implicit class RichOptionalDouble(private val o: OptionalDouble) extends AnyVal {
-
-    /** Convert a Java `OptionalDouble` to a Scala `Option` */
-    inline def toScala: Option[Double] = scala.jdk.OptionConverters.RichOptionalDouble(o).toScala
-
-    /** Convert a Java `OptionalDouble` to a generic Java `Optional` */
-    inline def toJavaGeneric: Optional[Double] = scala.jdk.OptionConverters.RichOptionalDouble(o).toJavaGeneric
-  }
-
-  /** Provides conversions from `OptionalInt` to Scala `Option` and the generic `Optional` */
-  implicit class RichOptionalInt(private val o: OptionalInt) extends AnyVal {
-
-    /** Convert a Java `OptionalInt` to a Scala `Option` */
-    inline def toScala: Option[Int] = scala.jdk.OptionConverters.RichOptionalInt(o).toScala
-
-    /** Convert a Java `OptionalInt` to a generic Java `Optional` */
-    inline def toJavaGeneric: Optional[Int] = scala.jdk.OptionConverters.RichOptionalInt(o).toJavaGeneric
-  }
-
-  /** Provides conversions from `OptionalLong` to Scala `Option` and the generic `Optional` */
-  implicit class RichOptionalLong(private val o: OptionalLong) extends AnyVal {
-
-    /** Convert a Java `OptionalLong` to a Scala `Option` */
-    inline def toScala: Option[Long] = scala.jdk.OptionConverters.RichOptionalLong(o).toScala
-
-    /** Convert a Java `OptionalLong` to a generic Java `Optional` */
-    inline def toJavaGeneric: Optional[Long] = scala.jdk.OptionConverters.RichOptionalLong(o).toJavaGeneric
-  }
-}
diff --git a/actor/src/main/scala/org/apache/pekko/actor/AbstractActor.scala b/actor/src/main/scala/org/apache/pekko/actor/AbstractActor.scala
index 000e387acb..c586ff55a3 100644
--- a/actor/src/main/scala/org/apache/pekko/actor/AbstractActor.scala
+++ b/actor/src/main/scala/org/apache/pekko/actor/AbstractActor.scala
@@ -283,7 +283,7 @@ abstract class AbstractActor extends Actor {
   @throws(classOf[Exception])
   @nowarn("msg=deprecated")
   override def preRestart(reason: Throwable, message: Option[Any]): Unit = {
-    import pekko.util.OptionConverters._
+    import scala.jdk.OptionConverters._
     preRestart(reason, message.toJava)
   }
 
@@ -295,7 +295,7 @@ abstract class AbstractActor extends Actor {
    */
   @throws(classOf[Exception])
   def preRestart(reason: Throwable, message: Optional[Any]): Unit = {
-    import pekko.util.OptionConverters._
+    import scala.jdk.OptionConverters._
     super.preRestart(reason, message.toScala)
   }
 
diff --git a/actor/src/main/scala/org/apache/pekko/actor/Actor.scala b/actor/src/main/scala/org/apache/pekko/actor/Actor.scala
index b23ea9a0fc..bf5ffcf713 100644
--- a/actor/src/main/scala/org/apache/pekko/actor/Actor.scala
+++ b/actor/src/main/scala/org/apache/pekko/actor/Actor.scala
@@ -100,7 +100,7 @@ final case class ActorIdentity(correlationId: Any, ref: Option[ActorRef]) {
    * not defined if no actor matched the request.
    */
   def getActorRef: Optional[ActorRef] = {
-    import pekko.util.OptionConverters._
+    import scala.jdk.OptionConverters._
     ref.toJava
   }
 }
diff --git a/actor/src/main/scala/org/apache/pekko/actor/ActorSystem.scala b/actor/src/main/scala/org/apache/pekko/actor/ActorSystem.scala
index 7a3d68e9a5..71f6fe8611 100644
--- a/actor/src/main/scala/org/apache/pekko/actor/ActorSystem.scala
+++ b/actor/src/main/scala/org/apache/pekko/actor/ActorSystem.scala
@@ -41,7 +41,7 @@ import pekko.japi.Util.immutableSeq
 import pekko.serialization.SerializationExtension
 import pekko.util._
 import pekko.util.FutureConverters._
-import pekko.util.OptionConverters._
+import scala.jdk.OptionConverters._
 import pekko.util.Helpers.toRootLowerCase
 import pekko.util.ccompat.JavaConverters._
 
diff --git a/actor/src/main/scala/org/apache/pekko/actor/Address.scala b/actor/src/main/scala/org/apache/pekko/actor/Address.scala
index 29db0cfb49..c38c44c3a1 100644
--- a/actor/src/main/scala/org/apache/pekko/actor/Address.scala
+++ b/actor/src/main/scala/org/apache/pekko/actor/Address.scala
@@ -12,6 +12,7 @@
  */
 
 package org.apache.pekko.actor
+
 import java.net.MalformedURLException
 import java.net.URI
 import java.net.URISyntaxException
@@ -22,7 +23,7 @@ import scala.collection.immutable
 
 import org.apache.pekko
 import pekko.annotation.InternalApi
-import pekko.util.OptionConverters._
+import scala.jdk.OptionConverters._
 
 /**
  * The address specifies the physical location under which an Actor can be
diff --git a/actor/src/main/scala/org/apache/pekko/actor/CoordinatedShutdown.scala b/actor/src/main/scala/org/apache/pekko/actor/CoordinatedShutdown.scala
index d1db9000bf..706db96b19 100644
--- a/actor/src/main/scala/org/apache/pekko/actor/CoordinatedShutdown.scala
+++ b/actor/src/main/scala/org/apache/pekko/actor/CoordinatedShutdown.scala
@@ -34,7 +34,7 @@ import pekko.Done
 import pekko.annotation.InternalApi
 import pekko.event.Logging
 import pekko.pattern.after
-import pekko.util.OptionConverters._
+import scala.jdk.OptionConverters._
 import pekko.util.OptionVal
 import pekko.util.FutureConverters._
 
diff --git a/actor/src/main/scala/org/apache/pekko/actor/setup/ActorSystemSetup.scala b/actor/src/main/scala/org/apache/pekko/actor/setup/ActorSystemSetup.scala
index db01928379..c3ac3ffbcb 100644
--- a/actor/src/main/scala/org/apache/pekko/actor/setup/ActorSystemSetup.scala
+++ b/actor/src/main/scala/org/apache/pekko/actor/setup/ActorSystemSetup.scala
@@ -20,7 +20,7 @@ import scala.reflect.ClassTag
 
 import org.apache.pekko
 import pekko.annotation.InternalApi
-import pekko.util.OptionConverters._
+import scala.jdk.OptionConverters._
 
 /**
  * Marker supertype for a setup part that can be put inside [[pekko.actor.setup.ActorSystemSetup]], if a specific concrete setup
diff --git a/actor/src/main/scala/org/apache/pekko/pattern/Patterns.scala b/actor/src/main/scala/org/apache/pekko/pattern/Patterns.scala
index 95a88c7910..3c884c9a1f 100644
--- a/actor/src/main/scala/org/apache/pekko/pattern/Patterns.scala
+++ b/actor/src/main/scala/org/apache/pekko/pattern/Patterns.scala
@@ -816,7 +816,7 @@ object Patterns {
       delayFunction: IntFunction[Optional[java.time.Duration]],
       scheduler: Scheduler,
       context: ExecutionContext): CompletionStage[T] = {
-    import pekko.util.OptionConverters._
+    import scala.jdk.OptionConverters._
     require(attempt != null, "Parameter attempt should not be null.")
     scalaRetry(
       () => attempt.call().asScala,
@@ -857,7 +857,7 @@ object Patterns {
       delayFunction: IntFunction[Optional[java.time.Duration]],
       scheduler: Scheduler,
       context: ExecutionContext): CompletionStage[T] = {
-    import pekko.util.OptionConverters._
+    import scala.jdk.OptionConverters._
     require(attempt != null, "Parameter attempt should not be null.")
     scalaRetry(
       () => attempt.call().asScala,
diff --git a/cluster-sharding-typed/src/main/scala/org/apache/pekko/cluster/sharding/typed/delivery/ShardingProducerController.scala b/cluster-sharding-typed/src/main/scala/org/apache/pekko/cluster/sharding/typed/delivery/ShardingProducerController.scala
index d0e22becd2..7ea27bc2b6 100644
--- a/cluster-sharding-typed/src/main/scala/org/apache/pekko/cluster/sharding/typed/delivery/ShardingProducerController.scala
+++ b/cluster-sharding-typed/src/main/scala/org/apache/pekko/cluster/sharding/typed/delivery/ShardingProducerController.scala
@@ -33,7 +33,7 @@ import pekko.annotation.ApiMayChange
 import pekko.cluster.sharding.typed.ShardingEnvelope
 import pekko.cluster.sharding.typed.delivery.internal.ShardingProducerControllerImpl
 import pekko.util.JavaDurationConverters._
-import pekko.util.OptionConverters._
+import scala.jdk.OptionConverters._
 
 /**
  * Reliable delivery between a producer actor sending messages to sharded consumer
diff --git a/cluster-sharding-typed/src/main/scala/org/apache/pekko/cluster/sharding/typed/internal/ClusterShardingImpl.scala b/cluster-sharding-typed/src/main/scala/org/apache/pekko/cluster/sharding/typed/internal/ClusterShardingImpl.scala
index 6ae172ec00..043562c169 100644
--- a/cluster-sharding-typed/src/main/scala/org/apache/pekko/cluster/sharding/typed/internal/ClusterShardingImpl.scala
+++ b/cluster-sharding-typed/src/main/scala/org/apache/pekko/cluster/sharding/typed/internal/ClusterShardingImpl.scala
@@ -147,7 +147,7 @@ import pekko.util.JavaDurationConverters._
 
   // javadsl impl
   override def init[M, E](entity: javadsl.Entity[M, E]): ActorRef[E] = {
-    import pekko.util.OptionConverters._
+    import scala.jdk.OptionConverters._
     init(
       new scaladsl.Entity(
         createBehavior = (ctx: EntityContext[M]) =>
diff --git a/cluster-sharding-typed/src/main/scala/org/apache/pekko/cluster/sharding/typed/internal/ShardedDaemonProcessImpl.scala b/cluster-sharding-typed/src/main/scala/org/apache/pekko/cluster/sharding/typed/internal/ShardedDaemonProcessImpl.scala
index 9107e1eede..28081cae29 100644
--- a/cluster-sharding-typed/src/main/scala/org/apache/pekko/cluster/sharding/typed/internal/ShardedDaemonProcessImpl.scala
+++ b/cluster-sharding-typed/src/main/scala/org/apache/pekko/cluster/sharding/typed/internal/ShardedDaemonProcessImpl.scala
@@ -40,7 +40,7 @@ import pekko.cluster.sharding.typed.scaladsl.StartEntity
 import pekko.cluster.typed.Cluster
 import pekko.cluster.typed.SelfUp
 import pekko.cluster.typed.Subscribe
-import pekko.util.OptionConverters._
+import scala.jdk.OptionConverters._
 import pekko.util.PrettyDuration
 
 /**
diff --git a/cluster-sharding-typed/src/main/scala/org/apache/pekko/cluster/sharding/typed/javadsl/ClusterSharding.scala b/cluster-sharding-typed/src/main/scala/org/apache/pekko/cluster/sharding/typed/javadsl/ClusterSharding.scala
index 450a075e58..e0b0343864 100644
--- a/cluster-sharding-typed/src/main/scala/org/apache/pekko/cluster/sharding/typed/javadsl/ClusterSharding.scala
+++ b/cluster-sharding-typed/src/main/scala/org/apache/pekko/cluster/sharding/typed/javadsl/ClusterSharding.scala
@@ -32,7 +32,7 @@ import pekko.cluster.sharding.ShardCoordinator.ShardAllocationStrategy
 import pekko.cluster.sharding.typed.internal.EntityTypeKeyImpl
 import pekko.japi.function.{ Function => JFunction }
 import pekko.pattern.StatusReply
-import pekko.util.OptionConverters._
+import scala.jdk.OptionConverters._
 
 @FunctionalInterface
 trait EntityFactory[M] {
diff --git a/coordination/src/main/scala/org/apache/pekko/coordination/lease/internal/LeaseAdapter.scala b/coordination/src/main/scala/org/apache/pekko/coordination/lease/internal/LeaseAdapter.scala
index a7af9fc676..e3276fb3e8 100644
--- a/coordination/src/main/scala/org/apache/pekko/coordination/lease/internal/LeaseAdapter.scala
+++ b/coordination/src/main/scala/org/apache/pekko/coordination/lease/internal/LeaseAdapter.scala
@@ -26,7 +26,7 @@ import pekko.coordination.lease.LeaseSettings
 import pekko.coordination.lease.javadsl.{ Lease => JavaLease }
 import pekko.coordination.lease.scaladsl.{ Lease => ScalaLease }
 import pekko.util.FutureConverters._
-import pekko.util.OptionConverters._
+import scala.jdk.OptionConverters._
 
 /**
  * INTERNAL API
diff --git a/discovery/src/main/scala/org/apache/pekko/discovery/ServiceDiscovery.scala b/discovery/src/main/scala/org/apache/pekko/discovery/ServiceDiscovery.scala
index aa9b0961d0..8a3abfd8a8 100644
--- a/discovery/src/main/scala/org/apache/pekko/discovery/ServiceDiscovery.scala
+++ b/discovery/src/main/scala/org/apache/pekko/discovery/ServiceDiscovery.scala
@@ -25,7 +25,7 @@ import scala.concurrent.duration.FiniteDuration
 import org.apache.pekko
 import pekko.actor.{ DeadLetterSuppression, NoSerializationVerificationNeeded }
 import pekko.util.HashCode
-import pekko.util.OptionConverters._
+import scala.jdk.OptionConverters._
 
 object ServiceDiscovery {
 
diff --git a/distributed-data/src/main/scala/org/apache/pekko/cluster/ddata/ReplicatedData.scala b/distributed-data/src/main/scala/org/apache/pekko/cluster/ddata/ReplicatedData.scala
index cbfb9f8e1c..bfe2f92900 100644
--- a/distributed-data/src/main/scala/org/apache/pekko/cluster/ddata/ReplicatedData.scala
+++ b/distributed-data/src/main/scala/org/apache/pekko/cluster/ddata/ReplicatedData.scala
@@ -17,7 +17,7 @@ import java.util.Optional
 
 import org.apache.pekko
 import pekko.cluster.UniqueAddress
-import pekko.util.OptionConverters._
+import scala.jdk.OptionConverters._
 
 /**
  * Interface for implementing a state based convergent
diff --git a/persistence-query/src/main/scala/org/apache/pekko/persistence/query/EventEnvelope.scala b/persistence-query/src/main/scala/org/apache/pekko/persistence/query/EventEnvelope.scala
index 4218744884..2a91f29e71 100644
--- a/persistence-query/src/main/scala/org/apache/pekko/persistence/query/EventEnvelope.scala
+++ b/persistence-query/src/main/scala/org/apache/pekko/persistence/query/EventEnvelope.scala
@@ -64,7 +64,7 @@ final class EventEnvelope(
    * Java API
    */
   def getEventMetaData(): Optional[Any] = {
-    import pekko.util.OptionConverters._
+    import scala.jdk.OptionConverters._
     eventMetadata.toJava
   }
 
diff --git a/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/EventEnvelope.scala b/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/EventEnvelope.scala
index d7556ac30f..ab45eb2b21 100644
--- a/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/EventEnvelope.scala
+++ b/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/EventEnvelope.scala
@@ -93,7 +93,7 @@ final class EventEnvelope[Event](
    * Java API
    */
   def getOptionalEvent(): Optional[Event] = {
-    import pekko.util.OptionConverters._
+    import scala.jdk.OptionConverters._
     eventOption.toJava
   }
 
@@ -101,7 +101,7 @@ final class EventEnvelope[Event](
    * Java API
    */
   def getEventMetaData(): Optional[AnyRef] = {
-    import pekko.util.OptionConverters._
+    import scala.jdk.OptionConverters._
     eventMetadata.map(_.asInstanceOf[AnyRef]).toJava
   }
 
diff --git a/persistence-testkit/src/main/scala/org/apache/pekko/persistence/testkit/javadsl/EventSourcedBehaviorTestKit.scala b/persistence-testkit/src/main/scala/org/apache/pekko/persistence/testkit/javadsl/EventSourcedBehaviorTestKit.scala
index e42d3b68d7..40d6d48d18 100644
--- a/persistence-testkit/src/main/scala/org/apache/pekko/persistence/testkit/javadsl/EventSourcedBehaviorTestKit.scala
+++ b/persistence-testkit/src/main/scala/org/apache/pekko/persistence/testkit/javadsl/EventSourcedBehaviorTestKit.scala
@@ -226,7 +226,7 @@ final class EventSourcedBehaviorTestKit[Command, Event, State](
 
   private val _persistenceTestKit = new PersistenceTestKit(delegate.persistenceTestKit)
   private val _snapshotTestKit = {
-    import pekko.util.OptionConverters._
+    import scala.jdk.OptionConverters._
     delegate.snapshotTestKit.map(new SnapshotTestKit(_)).toJava
   }
 
diff --git a/persistence-testkit/src/main/scala/org/apache/pekko/persistence/testkit/state/javadsl/PersistenceTestKitDurableStateStore.scala b/persistence-testkit/src/main/scala/org/apache/pekko/persistence/testkit/state/javadsl/PersistenceTestKitDurableStateStore.scala
index ea95141fc6..c6c350bde1 100644
--- a/persistence-testkit/src/main/scala/org/apache/pekko/persistence/testkit/state/javadsl/PersistenceTestKitDurableStateStore.scala
+++ b/persistence-testkit/src/main/scala/org/apache/pekko/persistence/testkit/state/javadsl/PersistenceTestKitDurableStateStore.scala
@@ -27,7 +27,7 @@ import pekko.persistence.state.javadsl.GetObjectResult
 import pekko.persistence.testkit.state.scaladsl.{ PersistenceTestKitDurableStateStore => SStore }
 import pekko.stream.javadsl.Source
 import pekko.util.FutureConverters._
-import pekko.util.OptionConverters._
+import scala.jdk.OptionConverters._
 
 object PersistenceTestKitDurableStateStore {
   val Identifier = pekko.persistence.testkit.state.scaladsl.PersistenceTestKitDurableStateStore.Identifier
diff --git a/persistence-typed/src/main/scala/org/apache/pekko/persistence/typed/internal/EventSourcedBehaviorImpl.scala b/persistence-typed/src/main/scala/org/apache/pekko/persistence/typed/internal/EventSourcedBehaviorImpl.scala
index 938fe5187b..9433e16357 100644
--- a/persistence-typed/src/main/scala/org/apache/pekko/persistence/typed/internal/EventSourcedBehaviorImpl.scala
+++ b/persistence-typed/src/main/scala/org/apache/pekko/persistence/typed/internal/EventSourcedBehaviorImpl.scala
@@ -387,7 +387,7 @@ private[pekko] final case class PublishedEventImpl(
     replicatedMetaData: Option[ReplicatedPublishedEventMetaData])
     extends PublishedEvent
     with InternalProtocol {
-  import pekko.util.OptionConverters._
+  import scala.jdk.OptionConverters._
 
   def tags: Set[String] = payload match {
     case t: Tagged => t.tags
diff --git a/persistence-typed/src/main/scala/org/apache/pekko/persistence/typed/javadsl/EventSourcedBehavior.scala b/persistence-typed/src/main/scala/org/apache/pekko/persistence/typed/javadsl/EventSourcedBehavior.scala
index d342589d98..0dcb374a55 100644
--- a/persistence-typed/src/main/scala/org/apache/pekko/persistence/typed/javadsl/EventSourcedBehavior.scala
+++ b/persistence-typed/src/main/scala/org/apache/pekko/persistence/typed/javadsl/EventSourcedBehavior.scala
@@ -27,7 +27,7 @@ import pekko.annotation.InternalApi
 import pekko.persistence.typed._
 import pekko.persistence.typed.EventAdapter
 import pekko.persistence.typed.internal._
-import pekko.util.OptionConverters._
+import scala.jdk.OptionConverters._
 import pekko.util.unused
 
 abstract class EventSourcedBehavior[Command, Event, State] private[pekko] (
diff --git a/persistence-typed/src/main/scala/org/apache/pekko/persistence/typed/javadsl/PersistentFSMMigration.scala b/persistence-typed/src/main/scala/org/apache/pekko/persistence/typed/javadsl/PersistentFSMMigration.scala
index ddc23cef96..01d45ef790 100644
--- a/persistence-typed/src/main/scala/org/apache/pekko/persistence/typed/javadsl/PersistentFSMMigration.scala
+++ b/persistence-typed/src/main/scala/org/apache/pekko/persistence/typed/javadsl/PersistentFSMMigration.scala
@@ -20,7 +20,7 @@ import org.apache.pekko
 import pekko.japi.function.Function3
 import pekko.persistence.typed.SnapshotAdapter
 import pekko.util.JavaDurationConverters._
-import pekko.util.OptionConverters._
+import scala.jdk.OptionConverters._
 
 /**
  * Helper functions for migration from PersistentFSM to Persistence Typed
diff --git a/persistence/src/main/scala/org/apache/pekko/persistence/snapshot/japi/SnapshotStore.scala b/persistence/src/main/scala/org/apache/pekko/persistence/snapshot/japi/SnapshotStore.scala
index 7ff382d8c3..c243006ebf 100644
--- a/persistence/src/main/scala/org/apache/pekko/persistence/snapshot/japi/SnapshotStore.scala
+++ b/persistence/src/main/scala/org/apache/pekko/persistence/snapshot/japi/SnapshotStore.scala
@@ -30,7 +30,7 @@ abstract class SnapshotStore extends SSnapshotStore with SnapshotStorePlugin {
   override final def loadAsync(
       persistenceId: String,
       criteria: SnapshotSelectionCriteria): Future[Option[SelectedSnapshot]] = {
-    import pekko.util.OptionConverters._
+    import scala.jdk.OptionConverters._
     doLoadAsync(persistenceId, criteria).asScala.map(_.toScala)(ExecutionContext.parasitic)
   }
 
diff --git a/persistence/src/main/scala/org/apache/pekko/persistence/state/javadsl/DurableStateStore.scala b/persistence/src/main/scala/org/apache/pekko/persistence/state/javadsl/DurableStateStore.scala
index 08853f8335..662dcfc128 100644
--- a/persistence/src/main/scala/org/apache/pekko/persistence/state/javadsl/DurableStateStore.scala
+++ b/persistence/src/main/scala/org/apache/pekko/persistence/state/javadsl/DurableStateStore.scala
@@ -18,7 +18,7 @@ import java.util.concurrent.CompletionStage
 
 import org.apache.pekko
 import pekko.persistence.state.scaladsl.{ GetObjectResult => SGetObjectResult }
-import pekko.util.OptionConverters._
+import scala.jdk.OptionConverters._
 
 /**
  * API for reading durable state objects with payload `A`.
diff --git a/persistence/src/main/scala/org/apache/pekko/persistence/state/scaladsl/DurableStateStore.scala b/persistence/src/main/scala/org/apache/pekko/persistence/state/scaladsl/DurableStateStore.scala
index 66de616542..7a2710bcca 100644
--- a/persistence/src/main/scala/org/apache/pekko/persistence/state/scaladsl/DurableStateStore.scala
+++ b/persistence/src/main/scala/org/apache/pekko/persistence/state/scaladsl/DurableStateStore.scala
@@ -17,7 +17,7 @@ import scala.concurrent.Future
 
 import org.apache.pekko
 import pekko.persistence.state.javadsl.{ GetObjectResult => JGetObjectResult }
-import pekko.util.OptionConverters._
+import scala.jdk.OptionConverters._
 
 /**
  * API for reading durable state objects with payload `A`.
diff --git a/serialization-jackson/src/main/scala/org/apache/pekko/serialization/jackson/JacksonObjectMapperProvider.scala b/serialization-jackson/src/main/scala/org/apache/pekko/serialization/jackson/JacksonObjectMapperProvider.scala
index a371dce881..62e3635451 100644
--- a/serialization-jackson/src/main/scala/org/apache/pekko/serialization/jackson/JacksonObjectMapperProvider.scala
+++ b/serialization-jackson/src/main/scala/org/apache/pekko/serialization/jackson/JacksonObjectMapperProvider.scala
@@ -18,6 +18,7 @@ import java.util.concurrent.ConcurrentHashMap
 import scala.annotation.nowarn
 import scala.collection.immutable
 import scala.util.{ Failure, Success }
+
 import com.fasterxml.jackson.annotation.{ JsonAutoDetect, JsonCreator, PropertyAccessor }
 import com.fasterxml.jackson.core.{
   JsonFactory,
@@ -56,7 +57,7 @@ import pekko.actor.setup.Setup
 import pekko.annotation.InternalStableApi
 import pekko.event.{ Logging, LoggingAdapter }
 import pekko.util.unused
-import pekko.util.OptionConverters._
+import scala.jdk.OptionConverters._
 
 object JacksonObjectMapperProvider extends ExtensionId[JacksonObjectMapperProvider] with ExtensionIdProvider {
   override def get(system: ActorSystem): JacksonObjectMapperProvider = super.get(system)
diff --git a/stream/src/main/scala/org/apache/pekko/stream/Attributes.scala b/stream/src/main/scala/org/apache/pekko/stream/Attributes.scala
index 5b4751bcf6..06fa311fe0 100644
--- a/stream/src/main/scala/org/apache/pekko/stream/Attributes.scala
+++ b/stream/src/main/scala/org/apache/pekko/stream/Attributes.scala
@@ -32,7 +32,7 @@ import pekko.stream.impl.TraversalBuilder
 import pekko.util.{ ByteString, OptionVal }
 import pekko.util.JavaDurationConverters._
 import pekko.util.LineNumbers
-import pekko.util.OptionConverters._
+import scala.jdk.OptionConverters._
 
 /**
  * Holds attributes which can be used to alter [[pekko.stream.scaladsl.Flow]] / [[pekko.stream.javadsl.Flow]]
diff --git a/stream/src/main/scala/org/apache/pekko/stream/javadsl/Flow.scala b/stream/src/main/scala/org/apache/pekko/stream/javadsl/Flow.scala
index 43b5461459..af413eb0b5 100755
--- a/stream/src/main/scala/org/apache/pekko/stream/javadsl/Flow.scala
+++ b/stream/src/main/scala/org/apache/pekko/stream/javadsl/Flow.scala
@@ -37,7 +37,7 @@ import pekko.stream.impl.fusing.{ StatefulMapConcat, ZipWithIndexJava }
 import pekko.util.ConstantFun
 import pekko.util.FutureConverters._
 import pekko.util.JavaDurationConverters._
-import pekko.util.OptionConverters._
+import scala.jdk.OptionConverters._
 import pekko.util.Timeout
 import pekko.util.unused
 import org.reactivestreams.Processor
@@ -4342,7 +4342,7 @@ final class Flow[In, Out, Mat](delegate: scaladsl.Flow[In, Out, Mat]) extends Gr
       harvest: function.Function[Agg, Emit],
       emitOnTimer: Optional[Pair[function.Predicate[Agg], java.time.Duration]])
       : javadsl.Flow[In, Emit, Mat] = {
-    import org.apache.pekko.util.OptionConverters._
+    import scala.jdk.OptionConverters._
     asScala
       .aggregateWithBoundary(() => allocate.create())(
         aggregate = (agg, out) => aggregate.apply(agg, out).toScala,
diff --git a/stream/src/main/scala/org/apache/pekko/stream/javadsl/FlowWithContext.scala b/stream/src/main/scala/org/apache/pekko/stream/javadsl/FlowWithContext.scala
index 998e303391..2e9f996b43 100644
--- a/stream/src/main/scala/org/apache/pekko/stream/javadsl/FlowWithContext.scala
+++ b/stream/src/main/scala/org/apache/pekko/stream/javadsl/FlowWithContext.scala
@@ -26,7 +26,7 @@ import pekko.stream._
 import pekko.util.ConstantFun
 import pekko.util.FutureConverters._
 import pekko.util.JavaDurationConverters._
-import pekko.util.OptionConverters._
+import scala.jdk.OptionConverters._
 import pekko.util.ccompat.JavaConverters._
 
 object FlowWithContext {
diff --git a/stream/src/main/scala/org/apache/pekko/stream/javadsl/Queue.scala b/stream/src/main/scala/org/apache/pekko/stream/javadsl/Queue.scala
index d8c433cf7b..da36a1701c 100644
--- a/stream/src/main/scala/org/apache/pekko/stream/javadsl/Queue.scala
+++ b/stream/src/main/scala/org/apache/pekko/stream/javadsl/Queue.scala
@@ -23,7 +23,7 @@ import pekko.Done
 import scala.concurrent.ExecutionContext
 import pekko.stream.QueueOfferResult
 import pekko.util.FutureConverters._
-import pekko.util.OptionConverters._
+import scala.jdk.OptionConverters._
 
 /**
  * This trait allows to have a queue as a data source for some stream.
diff --git a/stream/src/main/scala/org/apache/pekko/stream/javadsl/RetryFlow.scala b/stream/src/main/scala/org/apache/pekko/stream/javadsl/RetryFlow.scala
index e49d023ffd..78f4731ef5 100644
--- a/stream/src/main/scala/org/apache/pekko/stream/javadsl/RetryFlow.scala
+++ b/stream/src/main/scala/org/apache/pekko/stream/javadsl/RetryFlow.scala
@@ -20,7 +20,7 @@ import pekko.annotation.ApiMayChange
 import pekko.japi.Pair
 import pekko.stream.scaladsl
 import pekko.util.JavaDurationConverters._
-import pekko.util.OptionConverters._
+import scala.jdk.OptionConverters._
 
 object RetryFlow {
 
diff --git a/stream/src/main/scala/org/apache/pekko/stream/javadsl/Sink.scala b/stream/src/main/scala/org/apache/pekko/stream/javadsl/Sink.scala
index bc5e1306ac..fb6e5dbe3b 100644
--- a/stream/src/main/scala/org/apache/pekko/stream/javadsl/Sink.scala
+++ b/stream/src/main/scala/org/apache/pekko/stream/javadsl/Sink.scala
@@ -32,7 +32,7 @@ import pekko.stream.impl.LinearTraversalBuilder
 import pekko.stream.scaladsl.SinkToCompletionStage
 import pekko.util.ConstantFun.scalaAnyToUnit
 import pekko.util.FutureConverters._
-import pekko.util.OptionConverters._
+import scala.jdk.OptionConverters._
 
 import org.reactivestreams.{ Publisher, Subscriber }
 
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 db56847b21..9d778dd5cb 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
@@ -36,7 +36,7 @@ import pekko.stream.impl.fusing.{ ArraySource, StatefulMapConcat, ZipWithIndexJa
 import pekko.util.{ unused, _ }
 import pekko.util.FutureConverters._
 import pekko.util.JavaDurationConverters._
-import pekko.util.OptionConverters._
+import scala.jdk.OptionConverters._
 import pekko.util.ccompat.JavaConverters._
 
 import org.reactivestreams.{ Publisher, Subscriber }
@@ -4782,7 +4782,7 @@ final class Source[Out, Mat](delegate: scaladsl.Source[Out, Mat]) extends Graph[
       aggregate: function.Function2[Agg, Out, Pair[Agg, Boolean]],
       harvest: function.Function[Agg, Emit],
       emitOnTimer: Optional[Pair[function.Predicate[Agg], java.time.Duration]]): javadsl.Source[Emit, Mat] = {
-    import org.apache.pekko.util.OptionConverters._
+    import scala.jdk.OptionConverters._
     asScala
       .aggregateWithBoundary(() => allocate.create())(
         aggregate = (agg, out) => aggregate.apply(agg, out).toScala,
diff --git a/stream/src/main/scala/org/apache/pekko/stream/javadsl/SourceWithContext.scala b/stream/src/main/scala/org/apache/pekko/stream/javadsl/SourceWithContext.scala
index 53d1449883..0b860d5050 100644
--- a/stream/src/main/scala/org/apache/pekko/stream/javadsl/SourceWithContext.scala
+++ b/stream/src/main/scala/org/apache/pekko/stream/javadsl/SourceWithContext.scala
@@ -28,7 +28,7 @@ import pekko.stream._
 import pekko.util.ConstantFun
 import pekko.util.FutureConverters._
 import pekko.util.JavaDurationConverters._
-import pekko.util.OptionConverters._
+import scala.jdk.OptionConverters._
 import pekko.util.ccompat.JavaConverters._
 
 object SourceWithContext {
diff --git a/stream/src/main/scala/org/apache/pekko/stream/javadsl/SubFlow.scala b/stream/src/main/scala/org/apache/pekko/stream/javadsl/SubFlow.scala
index f55a58caa3..8b7b94e494 100755
--- a/stream/src/main/scala/org/apache/pekko/stream/javadsl/SubFlow.scala
+++ b/stream/src/main/scala/org/apache/pekko/stream/javadsl/SubFlow.scala
@@ -30,7 +30,7 @@ import pekko.stream.impl.fusing.{ StatefulMapConcat, ZipWithIndexJava }
 import pekko.util.ConstantFun
 import pekko.util.FutureConverters._
 import pekko.util.JavaDurationConverters._
-import pekko.util.OptionConverters._
+import scala.jdk.OptionConverters._
 import pekko.util.ccompat.JavaConverters._
 
 object SubFlow {
@@ -2824,7 +2824,7 @@ final class SubFlow[In, Out, Mat](
       harvest: function.Function[Agg, Emit],
       emitOnTimer: Optional[Pair[function.Predicate[Agg], java.time.Duration]])
       : javadsl.SubFlow[In, Emit, Mat] = {
-    import org.apache.pekko.util.OptionConverters._
+    import scala.jdk.OptionConverters._
     new SubFlow(
       asScala.aggregateWithBoundary(() => allocate.create())(
         aggregate = (agg, out) => aggregate.apply(agg, out).toScala,
diff --git a/stream/src/main/scala/org/apache/pekko/stream/javadsl/SubSource.scala b/stream/src/main/scala/org/apache/pekko/stream/javadsl/SubSource.scala
index d09c74fdf1..567cb0d9ae 100755
--- a/stream/src/main/scala/org/apache/pekko/stream/javadsl/SubSource.scala
+++ b/stream/src/main/scala/org/apache/pekko/stream/javadsl/SubSource.scala
@@ -30,7 +30,7 @@ import pekko.stream.impl.fusing.{ StatefulMapConcat, ZipWithIndexJava }
 import pekko.util.ConstantFun
 import pekko.util.FutureConverters._
 import pekko.util.JavaDurationConverters._
-import pekko.util.OptionConverters._
+import scala.jdk.OptionConverters._
 import pekko.util.ccompat.JavaConverters._
 
 /**
@@ -2798,7 +2798,7 @@ final class SubSource[Out, Mat](
       harvest: function.Function[Agg, Emit],
       emitOnTimer: Optional[Pair[function.Predicate[Agg], java.time.Duration]])
       : javadsl.SubSource[Emit, Mat] = {
-    import org.apache.pekko.util.OptionConverters._
+    import scala.jdk.OptionConverters._
     new SubSource(
       asScala.aggregateWithBoundary(() => allocate.create())(
         aggregate = (agg, out) => aggregate.apply(agg, out).toScala,
diff --git a/stream/src/main/scala/org/apache/pekko/stream/javadsl/Tcp.scala b/stream/src/main/scala/org/apache/pekko/stream/javadsl/Tcp.scala
index 53b618bcae..3848adc3d3 100644
--- a/stream/src/main/scala/org/apache/pekko/stream/javadsl/Tcp.scala
+++ b/stream/src/main/scala/org/apache/pekko/stream/javadsl/Tcp.scala
@@ -41,7 +41,7 @@ import pekko.stream.scaladsl
 import pekko.util.ByteString
 import pekko.util.FutureConverters._
 import pekko.util.JavaDurationConverters._
-import pekko.util.OptionConverters._
+import scala.jdk.OptionConverters._
 
 object Tcp extends ExtensionId[Tcp] with ExtensionIdProvider {
 
diff --git a/stream/src/main/scala/org/apache/pekko/stream/scaladsl/Queue.scala b/stream/src/main/scala/org/apache/pekko/stream/scaladsl/Queue.scala
index ebdeda7db4..e1746ce438 100644
--- a/stream/src/main/scala/org/apache/pekko/stream/scaladsl/Queue.scala
+++ b/stream/src/main/scala/org/apache/pekko/stream/scaladsl/Queue.scala
@@ -24,7 +24,7 @@ import pekko.annotation.InternalApi
 import scala.concurrent.ExecutionContext
 import pekko.stream.QueueOfferResult
 import pekko.util.FutureConverters._
-import pekko.util.OptionConverters._
+import scala.jdk.OptionConverters._
 
 /**
  * This trait allows to have a queue as a data source for some stream.


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pekko.apache.org
For additional commands, e-mail: commits-help@pekko.apache.org