From 6fa4847bebd21fe7dde72df7a46f59ebbfc53f74 Mon Sep 17 00:00:00 2001 From: PJ Fanning Date: Wed, 17 Sep 2025 02:24:52 +0100 Subject: [PATCH 1/2] drop scala 2.12 support --- .github/workflows/nightly.yml | 2 +- .github/workflows/unit-tests.yml | 1 - .../discovery/awsapi/ecs/AsyncEcsDiscovery.scala | 3 ++- .../awsapi/ecs/AsyncEcsServiceDiscovery.scala | 6 ++++-- .../awsapi/ecs/AsyncEcsTaskSetDiscovery.scala | 6 ++++-- .../awsapi/ec2/Ec2TagBasedServiceDiscovery.scala | 2 +- .../awsapi/ecs/EcsServiceDiscovery.scala | 3 ++- .../discovery/awsapi/ec2/FiltersParsingTest.scala | 3 ++- .../discovery/consul/ConsulServiceDiscovery.scala | 2 +- .../pekko/discovery/kubernetes/Settings.scala | 2 +- .../pekko/cluster/bootstrap/IntegrationTest.scala | 2 +- .../lease/kubernetes/KubernetesSettings.scala | 4 ++-- .../bootstrap/ClusterBootstrapSettings.scala | 15 ++++++++------- .../cluster/bootstrap/JoinDecider.scala | 4 +++- .../cluster/javadsl/ClusterMembershipCheck.scala | 3 ++- .../cluster/scaladsl/ClusterMembershipCheck.scala | 2 +- .../pki/kubernetes/PemManagersProvider.scala | 3 ++- .../pekko/management/HealthCheckSettings.scala | 13 ++++++------- .../management/PekkoManagementSettings.scala | 5 +++-- .../management/internal/HealthChecksImpl.scala | 5 +++-- .../pekko/management/javadsl/HealthChecks.scala | 9 ++++----- .../management/javadsl/PekkoManagement.scala | 4 +++- .../management/scaladsl/PekkoManagement.scala | 5 +++-- project/Dependencies.scala | 1 - project/project-info.conf | 2 +- 25 files changed, 60 insertions(+), 47 deletions(-) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 17a76c60..0e3fb324 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -12,7 +12,7 @@ jobs: strategy: fail-fast: false matrix: - scalaVersion: ['2.12', '2.13', '3.3'] + scalaVersion: ['2.13', '3.3'] javaVersion: [17, 21] pekkoVersion: ['default'] steps: diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml index 2b078d81..4c6e9936 100644 --- a/.github/workflows/unit-tests.yml +++ b/.github/workflows/unit-tests.yml @@ -17,7 +17,6 @@ jobs: fail-fast: false matrix: include: - - { javaVersion: 17, scalaVersion: 2.12, sbtOpts: '' } - { javaVersion: 17, scalaVersion: 2.13, sbtOpts: '' } - { javaVersion: 17, scalaVersion: 3.3, sbtOpts: '' } steps: diff --git a/discovery-aws-api-async/src/main/scala/org/apache/pekko/discovery/awsapi/ecs/AsyncEcsDiscovery.scala b/discovery-aws-api-async/src/main/scala/org/apache/pekko/discovery/awsapi/ecs/AsyncEcsDiscovery.scala index b3c98c8a..18d6f7cc 100644 --- a/discovery-aws-api-async/src/main/scala/org/apache/pekko/discovery/awsapi/ecs/AsyncEcsDiscovery.scala +++ b/discovery-aws-api-async/src/main/scala/org/apache/pekko/discovery/awsapi/ecs/AsyncEcsDiscovery.scala @@ -16,9 +16,10 @@ package org.apache.pekko.discovery.awsapi.ecs import java.net.{ InetAddress, NetworkInterface } import org.apache.pekko -import pekko.util.ccompat.JavaConverters._ import pekko.annotation.ApiMayChange +import scala.jdk.CollectionConverters._ + @ApiMayChange object AsyncEcsDiscovery { diff --git a/discovery-aws-api-async/src/main/scala/org/apache/pekko/discovery/awsapi/ecs/AsyncEcsServiceDiscovery.scala b/discovery-aws-api-async/src/main/scala/org/apache/pekko/discovery/awsapi/ecs/AsyncEcsServiceDiscovery.scala index 09270cad..023d12a0 100644 --- a/discovery-aws-api-async/src/main/scala/org/apache/pekko/discovery/awsapi/ecs/AsyncEcsServiceDiscovery.scala +++ b/discovery-aws-api-async/src/main/scala/org/apache/pekko/discovery/awsapi/ecs/AsyncEcsServiceDiscovery.scala @@ -15,10 +15,14 @@ package org.apache.pekko.discovery.awsapi.ecs import java.net.InetAddress import java.util.concurrent.TimeoutException + import scala.collection.immutable.Seq import scala.concurrent.duration._ import scala.concurrent.{ ExecutionContext, Future } +import scala.jdk.CollectionConverters._ +import scala.jdk.FutureConverters._ import scala.util.Try + import org.apache.pekko import pekko.actor.ActorSystem import pekko.annotation.ApiMayChange @@ -26,8 +30,6 @@ import pekko.discovery.ServiceDiscovery.{ Resolved, ResolvedTarget } import pekko.discovery.awsapi.ecs.AsyncEcsServiceDiscovery.{ resolveTasks, Tag } import pekko.discovery.{ Lookup, ServiceDiscovery } import pekko.pattern.after -import pekko.util.FutureConverters._ -import pekko.util.ccompat.JavaConverters._ import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration import software.amazon.awssdk.http.nio.netty.NettyNioAsyncHttpClient import software.amazon.awssdk.retries.DefaultRetryStrategy diff --git a/discovery-aws-api-async/src/main/scala/org/apache/pekko/discovery/awsapi/ecs/AsyncEcsTaskSetDiscovery.scala b/discovery-aws-api-async/src/main/scala/org/apache/pekko/discovery/awsapi/ecs/AsyncEcsTaskSetDiscovery.scala index b4c941aa..fdcb4b96 100644 --- a/discovery-aws-api-async/src/main/scala/org/apache/pekko/discovery/awsapi/ecs/AsyncEcsTaskSetDiscovery.scala +++ b/discovery-aws-api-async/src/main/scala/org/apache/pekko/discovery/awsapi/ecs/AsyncEcsTaskSetDiscovery.scala @@ -15,10 +15,14 @@ package org.apache.pekko.discovery.awsapi.ecs import java.net.InetAddress import java.util.concurrent.TimeoutException + import scala.collection.immutable.Seq import scala.concurrent.duration._ import scala.concurrent.{ ExecutionContext, Future } +import scala.jdk.CollectionConverters._ +import scala.jdk.FutureConverters._ import scala.util.Try + import org.apache.pekko import pekko.actor.ActorSystem import pekko.annotation.ApiMayChange @@ -31,8 +35,6 @@ import pekko.http.scaladsl.unmarshalling.Unmarshal import pekko.http.scaladsl.{ Http, HttpExt } import pekko.pattern.after import pekko.stream.Materializer -import pekko.util.FutureConverters._ -import pekko.util.ccompat.JavaConverters._ import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration import software.amazon.awssdk.retries.DefaultRetryStrategy import software.amazon.awssdk.services.ecs._ diff --git a/discovery-aws-api/src/main/scala/org/apache/pekko/discovery/awsapi/ec2/Ec2TagBasedServiceDiscovery.scala b/discovery-aws-api/src/main/scala/org/apache/pekko/discovery/awsapi/ec2/Ec2TagBasedServiceDiscovery.scala index 88682029..69d9c94b 100644 --- a/discovery-aws-api/src/main/scala/org/apache/pekko/discovery/awsapi/ec2/Ec2TagBasedServiceDiscovery.scala +++ b/discovery-aws-api/src/main/scala/org/apache/pekko/discovery/awsapi/ec2/Ec2TagBasedServiceDiscovery.scala @@ -26,7 +26,6 @@ import pekko.discovery.awsapi.ec2.Ec2TagBasedServiceDiscovery.parseFiltersString import pekko.discovery.{ Lookup, ServiceDiscovery } import pekko.event.Logging import pekko.pattern.after -import pekko.util.ccompat.JavaConverters._ import java.net.InetAddress import java.util.concurrent.TimeoutException @@ -34,6 +33,7 @@ import scala.annotation.tailrec import scala.collection.immutable.Seq import scala.concurrent.duration.FiniteDuration import scala.concurrent.{ ExecutionContext, Future } +import scala.jdk.CollectionConverters._ import scala.util.{ Failure, Success, Try } /** INTERNAL API */ diff --git a/discovery-aws-api/src/main/scala/org/apache/pekko/discovery/awsapi/ecs/EcsServiceDiscovery.scala b/discovery-aws-api/src/main/scala/org/apache/pekko/discovery/awsapi/ecs/EcsServiceDiscovery.scala index 1d21a94a..6a6a438d 100644 --- a/discovery-aws-api/src/main/scala/org/apache/pekko/discovery/awsapi/ecs/EcsServiceDiscovery.scala +++ b/discovery-aws-api/src/main/scala/org/apache/pekko/discovery/awsapi/ecs/EcsServiceDiscovery.scala @@ -15,13 +15,13 @@ package org.apache.pekko.discovery.awsapi.ecs import java.net.{ InetAddress, NetworkInterface } import java.util.concurrent.TimeoutException + import org.apache.pekko import pekko.actor.ActorSystem import pekko.discovery.{ Lookup, ServiceDiscovery } import pekko.discovery.ServiceDiscovery.{ Resolved, ResolvedTarget } import pekko.discovery.awsapi.ecs.EcsServiceDiscovery.resolveTasks import pekko.pattern.after -import pekko.util.ccompat.JavaConverters._ import com.amazonaws.ClientConfiguration import com.amazonaws.client.builder.AwsClientBuilder.EndpointConfiguration @@ -33,6 +33,7 @@ import scala.annotation.tailrec import scala.collection.immutable.Seq import scala.concurrent.{ ExecutionContext, Future } import scala.concurrent.duration._ +import scala.jdk.CollectionConverters._ import scala.util.Try final class EcsServiceDiscovery(system: ActorSystem) extends ServiceDiscovery { diff --git a/discovery-aws-api/src/test/scala/org/apache/pekko/discovery/awsapi/ec2/FiltersParsingTest.scala b/discovery-aws-api/src/test/scala/org/apache/pekko/discovery/awsapi/ec2/FiltersParsingTest.scala index 23f6d37e..6f1d815b 100644 --- a/discovery-aws-api/src/test/scala/org/apache/pekko/discovery/awsapi/ec2/FiltersParsingTest.scala +++ b/discovery-aws-api/src/test/scala/org/apache/pekko/discovery/awsapi/ec2/FiltersParsingTest.scala @@ -16,10 +16,11 @@ package org.apache.pekko.discovery.awsapi.ec2 import com.amazonaws.services.ec2.model.Filter import org.apache.pekko import pekko.discovery.awsapi.ec2.Ec2TagBasedServiceDiscovery.parseFiltersString -import pekko.util.ccompat.JavaConverters._ import org.scalatest.funsuite.AnyFunSuite import org.scalatest.matchers.should.Matchers +import scala.jdk.CollectionConverters._ + class FiltersParsingTest extends AnyFunSuite with Matchers { test("empty string does not break parsing") { diff --git a/discovery-consul/src/main/scala/org/apache/pekko/discovery/consul/ConsulServiceDiscovery.scala b/discovery-consul/src/main/scala/org/apache/pekko/discovery/consul/ConsulServiceDiscovery.scala index 9885af4d..5df883b8 100644 --- a/discovery-consul/src/main/scala/org/apache/pekko/discovery/consul/ConsulServiceDiscovery.scala +++ b/discovery-consul/src/main/scala/org/apache/pekko/discovery/consul/ConsulServiceDiscovery.scala @@ -26,7 +26,6 @@ import pekko.discovery.ServiceDiscovery.{ Resolved, ResolvedTarget } import pekko.discovery.consul.ConsulServiceDiscovery._ import pekko.discovery.{ Lookup, ServiceDiscovery } import pekko.pattern.after -import pekko.util.ccompat.JavaConverters._ import java.net.InetAddress import java.util @@ -34,6 +33,7 @@ import java.util.concurrent.TimeoutException import scala.collection.immutable.Seq import scala.concurrent.duration.FiniteDuration import scala.concurrent.{ ExecutionContext, Future, Promise } +import scala.jdk.CollectionConverters._ import scala.util.Try @ApiMayChange diff --git a/discovery-kubernetes-api/src/main/scala/org/apache/pekko/discovery/kubernetes/Settings.scala b/discovery-kubernetes-api/src/main/scala/org/apache/pekko/discovery/kubernetes/Settings.scala index 3cc39636..f9609185 100644 --- a/discovery-kubernetes-api/src/main/scala/org/apache/pekko/discovery/kubernetes/Settings.scala +++ b/discovery-kubernetes-api/src/main/scala/org/apache/pekko/discovery/kubernetes/Settings.scala @@ -18,7 +18,7 @@ import java.util.Optional import org.apache.pekko.actor._ import com.typesafe.config.Config -import org.apache.pekko.util.OptionConverters._ +import scala.jdk.OptionConverters._ final class Settings(kubernetesApi: Config) extends Extension { diff --git a/integration-test/aws-api-ec2/src/test/scala/org/apache/pekko/cluster/bootstrap/IntegrationTest.scala b/integration-test/aws-api-ec2/src/test/scala/org/apache/pekko/cluster/bootstrap/IntegrationTest.scala index 04b5a1aa..0ad5bb9d 100644 --- a/integration-test/aws-api-ec2/src/test/scala/org/apache/pekko/cluster/bootstrap/IntegrationTest.scala +++ b/integration-test/aws-api-ec2/src/test/scala/org/apache/pekko/cluster/bootstrap/IntegrationTest.scala @@ -23,7 +23,6 @@ import pekko.http.scaladsl.Http import pekko.http.scaladsl.model.HttpRequest import pekko.management.cluster.{ ClusterHttpManagementJsonProtocol, ClusterMembers } import pekko.util.ByteString -import pekko.util.ccompat.JavaConverters._ import org.scalatest.BeforeAndAfterAll import org.scalatest.concurrent.PatienceConfiguration.{ Interval, Timeout } import org.scalatest.concurrent.{ Eventually, ScalaFutures } @@ -33,6 +32,7 @@ import org.scalatest.time.{ Seconds, Span, SpanSugar } import spray.json._ import scala.concurrent.{ Await, Future } +import scala.jdk.CollectionConverters._ import scala.language.postfixOps trait HttpClient { diff --git a/lease-kubernetes/src/main/scala/org/apache/pekko/coordination/lease/kubernetes/KubernetesSettings.scala b/lease-kubernetes/src/main/scala/org/apache/pekko/coordination/lease/kubernetes/KubernetesSettings.scala index 74c956b4..6782fe1e 100644 --- a/lease-kubernetes/src/main/scala/org/apache/pekko/coordination/lease/kubernetes/KubernetesSettings.scala +++ b/lease-kubernetes/src/main/scala/org/apache/pekko/coordination/lease/kubernetes/KubernetesSettings.scala @@ -17,10 +17,10 @@ import org.apache.pekko import pekko.actor.ActorSystem import pekko.annotation.InternalApi import pekko.coordination.lease.TimeoutSettings -import pekko.util.JavaDurationConverters._ import com.typesafe.config.Config import scala.concurrent.duration.{ FiniteDuration, _ } +import scala.jdk.DurationConverters._ /** * INTERNAL API @@ -45,7 +45,7 @@ private[pekko] object KubernetesSettings { val apiServerRequestTimeout = if (config.hasDefined("api-server-request-timeout")) - config.getDuration("api-server-request-timeout").asScala + config.getDuration("api-server-request-timeout").toScala else leaseTimeoutSettings.operationTimeout * 2 / 5 // 2/5 gives two API operations + a buffer diff --git a/management-cluster-bootstrap/src/main/scala/org/apache/pekko/management/cluster/bootstrap/ClusterBootstrapSettings.scala b/management-cluster-bootstrap/src/main/scala/org/apache/pekko/management/cluster/bootstrap/ClusterBootstrapSettings.scala index ca6d47e5..3990b323 100644 --- a/management-cluster-bootstrap/src/main/scala/org/apache/pekko/management/cluster/bootstrap/ClusterBootstrapSettings.scala +++ b/management-cluster-bootstrap/src/main/scala/org/apache/pekko/management/cluster/bootstrap/ClusterBootstrapSettings.scala @@ -21,9 +21,10 @@ import org.apache.pekko import pekko.actor.ActorSystem import pekko.event.LoggingAdapter import com.typesafe.config.Config + import scala.concurrent.duration.{ FiniteDuration, _ } -import pekko.util.JavaDurationConverters._ -import pekko.util.OptionConverters._ +import scala.jdk.DurationConverters._ +import scala.jdk.OptionConverters._ final class ClusterBootstrapSettings(config: Config, log: LoggingAdapter) { import pekko.management.PekkoManagementSettings._ @@ -112,10 +113,10 @@ final class ClusterBootstrapSettings(config: Config, log: LoggingAdapter) { def getContactPointDiscoveryMethod: String = contactPointDiscovery.discoveryMethod /** Java API */ - def getContactPointDiscoveryStableMargin: java.time.Duration = contactPointDiscovery.stableMargin.asJava + def getContactPointDiscoveryStableMargin: java.time.Duration = contactPointDiscovery.stableMargin.toJava /** Java API */ - def getContactPointDiscoveryInterval: java.time.Duration = contactPointDiscovery.interval.asJava + def getContactPointDiscoveryInterval: java.time.Duration = contactPointDiscovery.interval.toJava /** Java API */ def getContactPointDiscoveryExponentialBackoffRandomFactor: Double = @@ -123,13 +124,13 @@ final class ClusterBootstrapSettings(config: Config, log: LoggingAdapter) { /** Java API */ def getContactPointDiscoveryExponentialBackoffMax: java.time.Duration = - contactPointDiscovery.exponentialBackoffMax.asJava + contactPointDiscovery.exponentialBackoffMax.toJava /** Java API */ def getContactPointDiscoveryRequiredContactPointsNr: Int = contactPointDiscovery.requiredContactPointsNr /** Java API */ - def getContactPointDiscoveryResolveTimeout: java.time.Duration = contactPointDiscovery.resolveTimeout.asJava + def getContactPointDiscoveryResolveTimeout: java.time.Duration = contactPointDiscovery.resolveTimeout.toJava object contactPoint { private val contactPointConfig = bootConfig.getConfig("contact-point") @@ -159,7 +160,7 @@ final class ClusterBootstrapSettings(config: Config, log: LoggingAdapter) { def getContactPointFallbackPort: Int = contactPoint.fallbackPort /** Java API */ - def getContactPointProbingFailureTimeout: java.time.Duration = contactPoint.probingFailureTimeout.asJava + def getContactPointProbingFailureTimeout: java.time.Duration = contactPoint.probingFailureTimeout.toJava object joinDecider { val implClass: String = bootConfig.getString("join-decider.class") diff --git a/management-cluster-bootstrap/src/main/scala/org/apache/pekko/management/cluster/bootstrap/JoinDecider.scala b/management-cluster-bootstrap/src/main/scala/org/apache/pekko/management/cluster/bootstrap/JoinDecider.scala index f50cfdd7..d5375fc0 100644 --- a/management-cluster-bootstrap/src/main/scala/org/apache/pekko/management/cluster/bootstrap/JoinDecider.scala +++ b/management-cluster-bootstrap/src/main/scala/org/apache/pekko/management/cluster/bootstrap/JoinDecider.scala @@ -14,11 +14,13 @@ package org.apache.pekko.management.cluster.bootstrap import java.time.LocalDateTime + import scala.concurrent.Future +import scala.jdk.CollectionConverters._ + import org.apache.pekko import pekko.actor.Address import pekko.discovery.ServiceDiscovery.ResolvedTarget -import pekko.util.ccompat.JavaConverters._ /** * The decisions of joining existing seed-nodes or join self to form new diff --git a/management-cluster-http/src/main/scala/org/apache/pekko/management/cluster/javadsl/ClusterMembershipCheck.scala b/management-cluster-http/src/main/scala/org/apache/pekko/management/cluster/javadsl/ClusterMembershipCheck.scala index f67e177e..b915bc80 100644 --- a/management-cluster-http/src/main/scala/org/apache/pekko/management/cluster/javadsl/ClusterMembershipCheck.scala +++ b/management-cluster-http/src/main/scala/org/apache/pekko/management/cluster/javadsl/ClusterMembershipCheck.scala @@ -19,7 +19,8 @@ import org.apache.pekko import pekko.actor.ActorSystem import pekko.dispatch.ExecutionContexts import pekko.management.cluster.scaladsl.{ ClusterMembershipCheck => ScalaClusterReadinessCheck } -import pekko.util.FutureConverters._ + +import scala.jdk.FutureConverters._ class ClusterMembershipCheck(system: ActorSystem) extends java.util.function.Supplier[CompletionStage[java.lang.Boolean]] { diff --git a/management-cluster-http/src/main/scala/org/apache/pekko/management/cluster/scaladsl/ClusterMembershipCheck.scala b/management-cluster-http/src/main/scala/org/apache/pekko/management/cluster/scaladsl/ClusterMembershipCheck.scala index 6cfede97..fc7dc058 100644 --- a/management-cluster-http/src/main/scala/org/apache/pekko/management/cluster/scaladsl/ClusterMembershipCheck.scala +++ b/management-cluster-http/src/main/scala/org/apache/pekko/management/cluster/scaladsl/ClusterMembershipCheck.scala @@ -18,11 +18,11 @@ import pekko.actor.ActorSystem import pekko.annotation.InternalApi import pekko.cluster.{ Cluster, MemberStatus } import pekko.util.Helpers -import pekko.util.ccompat.JavaConverters._ import com.typesafe.config.Config import scala.concurrent.Future +import scala.jdk.CollectionConverters._ /** * Internal API diff --git a/management-pki/src/main/scala/org/apache/pekko/pki/kubernetes/PemManagersProvider.scala b/management-pki/src/main/scala/org/apache/pekko/pki/kubernetes/PemManagersProvider.scala index aa82c3f6..91503a92 100644 --- a/management-pki/src/main/scala/org/apache/pekko/pki/kubernetes/PemManagersProvider.scala +++ b/management-pki/src/main/scala/org/apache/pekko/pki/kubernetes/PemManagersProvider.scala @@ -18,13 +18,14 @@ import java.nio.charset.StandardCharsets import java.nio.file.Files import java.security.{ KeyStore, PrivateKey } import java.security.cert.{ Certificate, CertificateFactory } + import scala.concurrent.blocking +import scala.jdk.CollectionConverters._ import scala.util.Random import org.apache.pekko import pekko.annotation.InternalApi import pekko.pki.pem.{ DERPrivateKeyLoader, PEMDecoder } -import pekko.util.ccompat.JavaConverters._ import javax.net.ssl.{ TrustManager, TrustManagerFactory } diff --git a/management/src/main/scala/org/apache/pekko/management/HealthCheckSettings.scala b/management/src/main/scala/org/apache/pekko/management/HealthCheckSettings.scala index 55e06bff..352ed6a6 100644 --- a/management/src/main/scala/org/apache/pekko/management/HealthCheckSettings.scala +++ b/management/src/main/scala/org/apache/pekko/management/HealthCheckSettings.scala @@ -14,12 +14,11 @@ package org.apache.pekko.management import com.typesafe.config.Config -import org.apache.pekko -import pekko.util.JavaDurationConverters._ -import pekko.util.ccompat.JavaConverters._ import scala.collection.immutable import scala.concurrent.duration.FiniteDuration +import scala.jdk.CollectionConverters._ +import scala.jdk.DurationConverters._ final case class NamedHealthCheck(name: String, fullyQualifiedClassName: String) @@ -62,7 +61,7 @@ object HealthCheckSettings { config.getString("startup-path"), config.getString("readiness-path"), config.getString("liveness-path"), - config.getDuration("check-timeout").asScala) + config.getDuration("check-timeout").toScala) } /** @@ -88,7 +87,7 @@ object HealthCheckSettings { startupPath, readinessPath, livenessPath, - checkDuration.asScala) + checkDuration.toScala) /** * Java API @@ -107,7 +106,7 @@ object HealthCheckSettings { "", readinessPath, livenessPath, - checkDuration.asScala) + checkDuration.toScala) } /** @@ -165,5 +164,5 @@ final class HealthCheckSettings( /** * Java API */ - def getCheckTimeout(): java.time.Duration = checkTimeout.asJava + def getCheckTimeout(): java.time.Duration = checkTimeout.toJava } diff --git a/management/src/main/scala/org/apache/pekko/management/PekkoManagementSettings.scala b/management/src/main/scala/org/apache/pekko/management/PekkoManagementSettings.scala index 27ed9bb1..ae7a6301 100644 --- a/management/src/main/scala/org/apache/pekko/management/PekkoManagementSettings.scala +++ b/management/src/main/scala/org/apache/pekko/management/PekkoManagementSettings.scala @@ -17,11 +17,12 @@ import java.net.InetAddress import java.util.Optional import scala.collection.immutable +import scala.jdk.CollectionConverters._ +import scala.jdk.OptionConverters._ import org.apache.pekko import pekko.annotation.InternalApi -import pekko.util.OptionConverters._ -import pekko.util.ccompat.JavaConverters._ + import com.typesafe.config.Config final class PekkoManagementSettings(val config: Config) { diff --git a/management/src/main/scala/org/apache/pekko/management/internal/HealthChecksImpl.scala b/management/src/main/scala/org/apache/pekko/management/internal/HealthChecksImpl.scala index c46a8c62..3bc93247 100644 --- a/management/src/main/scala/org/apache/pekko/management/internal/HealthChecksImpl.scala +++ b/management/src/main/scala/org/apache/pekko/management/internal/HealthChecksImpl.scala @@ -17,6 +17,7 @@ import java.util.concurrent.CompletionStage import java.util.function.Supplier import java.util.{ List => JList } import java.lang.{ Boolean => JBoolean } + import org.apache.pekko import pekko.actor.{ ActorSystem, ExtendedActorSystem } import pekko.annotation.InternalApi @@ -26,11 +27,11 @@ import pekko.management.javadsl.{ LivenessCheckSetup => JLivenessCheckSetup } import pekko.management.javadsl.{ ReadinessCheckSetup => JReadinessCheckSetup } import pekko.management.javadsl.{ StartupCheckSetup => JStartupCheckSetup } import pekko.management.scaladsl.{ HealthChecks, LivenessCheckSetup, ReadinessCheckSetup, StartupCheckSetup } -import pekko.util.FutureConverters._ -import pekko.util.ccompat.JavaConverters._ import scala.collection.immutable import scala.concurrent.Future +import scala.jdk.CollectionConverters._ +import scala.jdk.FutureConverters._ import scala.util.{ Failure, Success, Try } final case class CheckFailedException(msg: String, cause: Throwable) extends RuntimeException(msg, cause) diff --git a/management/src/main/scala/org/apache/pekko/management/javadsl/HealthChecks.scala b/management/src/main/scala/org/apache/pekko/management/javadsl/HealthChecks.scala index f4c71fe8..58ebc4cd 100644 --- a/management/src/main/scala/org/apache/pekko/management/javadsl/HealthChecks.scala +++ b/management/src/main/scala/org/apache/pekko/management/javadsl/HealthChecks.scala @@ -17,16 +17,16 @@ import java.util.concurrent.CompletionStage import java.util.function.Supplier import java.util.function.{ Function => JFunction } import java.util.{ List => JList, Optional } + import org.apache.pekko import pekko.actor.ActorSystem import pekko.actor.ExtendedActorSystem import pekko.actor.setup.Setup import pekko.management.HealthCheckSettings import pekko.management.internal.HealthChecksImpl -import pekko.util.FunctionConverters._ -import pekko.util.FutureConverters._ -import scala.annotation.nowarn +import scala.jdk.FunctionConverters._ +import scala.jdk.FutureConverters._ /** * Can be used to instantiate health checks directly rather than rely on the @@ -140,7 +140,6 @@ final class CheckResult private[javadsl] (private val result: Either[String, Uni def isSuccess: java.lang.Boolean = result.isRight - @nowarn // remove annotation and ".right" with Scala 2.12 support def success: Optional[Unit] = - Optional.ofNullable(result.right.toOption.orNull) + Optional.ofNullable(result.toOption.orNull) } diff --git a/management/src/main/scala/org/apache/pekko/management/javadsl/PekkoManagement.scala b/management/src/main/scala/org/apache/pekko/management/javadsl/PekkoManagement.scala index bca752d4..2d34d845 100644 --- a/management/src/main/scala/org/apache/pekko/management/javadsl/PekkoManagement.scala +++ b/management/src/main/scala/org/apache/pekko/management/javadsl/PekkoManagement.scala @@ -15,6 +15,7 @@ package org.apache.pekko.management.javadsl import java.util.concurrent.CompletionStage import java.util.function.{ Function => JFunction } + import org.apache.pekko import pekko.Done import pekko.actor.{ ActorSystem, ClassicActorSystemProvider } @@ -22,7 +23,8 @@ import pekko.http.javadsl.model.Uri import pekko.http.javadsl.server.directives.RouteAdapter import pekko.management.PekkoManagementSettings import pekko.management.scaladsl -import pekko.util.FutureConverters._ + +import scala.jdk.FutureConverters._ object PekkoManagement { def get(system: ActorSystem): PekkoManagement = diff --git a/management/src/main/scala/org/apache/pekko/management/scaladsl/PekkoManagement.scala b/management/src/main/scala/org/apache/pekko/management/scaladsl/PekkoManagement.scala index 50edbb24..8c4a4242 100644 --- a/management/src/main/scala/org/apache/pekko/management/scaladsl/PekkoManagement.scala +++ b/management/src/main/scala/org/apache/pekko/management/scaladsl/PekkoManagement.scala @@ -33,14 +33,15 @@ import pekko.http.scaladsl.server.directives.Credentials import pekko.http.scaladsl.settings.ServerSettings import pekko.management.{ javadsl, ManagementLogMarker, NamedRouteProvider, PekkoManagementSettings } import pekko.util.ManifestInfo -import pekko.util.FutureConverters._ -import pekko.util.OptionConverters._ import java.util.Optional import java.util.concurrent.atomic.AtomicReference + import scala.annotation.tailrec import scala.collection.immutable import scala.concurrent.{ Future, Promise } +import scala.jdk.FutureConverters._ +import scala.jdk.OptionConverters._ import scala.util.{ Failure, Success } import scala.util.control.NonFatal diff --git a/project/Dependencies.scala b/project/Dependencies.scala index a266f6fa..f53f3ba4 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -11,7 +11,6 @@ import sbt._ object Dependencies { // keep in sync with .github/workflows/unit-tests.yml - val scala212Version = "2.12.20" val scala213Version = "2.13.16" val scala3Version = "3.3.6" val crossScalaVersions = Seq(scala212Version, scala213Version, scala3Version) diff --git a/project/project-info.conf b/project/project-info.conf index 1e3b1444..32ea7984 100644 --- a/project/project-info.conf +++ b/project/project-info.conf @@ -1,6 +1,6 @@ project-info { version: "current" - scala-versions: ["2.12", "2.13", "3"] + scala-versions: ["2.13", "3"] shared-info { jdk-versions: ["OpenJDK 17", "OpenJDK 21"] snapshots: { From a3c3b16ffdb684349283dc05129738f41cf05e18 Mon Sep 17 00:00:00 2001 From: PJ Fanning Date: Wed, 17 Sep 2025 02:27:43 +0100 Subject: [PATCH 2/2] Update Dependencies.scala --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index f53f3ba4..029c51d3 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -13,7 +13,7 @@ object Dependencies { // keep in sync with .github/workflows/unit-tests.yml val scala213Version = "2.13.16" val scala3Version = "3.3.6" - val crossScalaVersions = Seq(scala212Version, scala213Version, scala3Version) + val crossScalaVersions = Seq(scala213Version, scala3Version) val pekkoVersion = PekkoCoreDependency.version val pekkoBinaryVersion = PekkoCoreDependency.default.link