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

He-Pin pushed a commit to branch remove-actor-materializer-deprecated
in repository https://gitbox.apache.org/repos/asf/pekko.git

commit 7fd5eda910dd3efbd8a5720a677c72075bb68463
Author: 虎鸣 <[email protected]>
AuthorDate: Sun Jul 5 17:01:00 2026 +0800

    refactor: remove deprecated ActorMaterializerSettings, IOSettings and 
StreamRefSettings factory methods
    
    Motivation:
    Several ActorMaterializerSettings builder methods (withInputBuffer, 
withDispatcher),
    IOSettings factory/constructor, and StreamRefSettings factory were 
deprecated since
    Akka 2.6.0. Since Pekko 2.0.0 is a major version bump, these can be safely 
removed.
    
    Modification:
    - Remove ActorMaterializerSettings.withInputBuffer (deprecated since Akka 
2.6.0)
    - Change ActorMaterializerSettings.withDispatcher from public deprecated to 
private[pekko]
      (still used internally by remote module ArterySettings)
    - Remove IOSettings.apply(config) factory and deprecated binary-compat 
constructor
    - Change IOSettings constructor from private to private[stream] for 
internal use
    - Remove StreamRefSettings.apply(config) factory
    - Inline IOSettings and StreamRefSettings construction in 
ActorMaterializerSettings.apply
    - Add MiMa exclusion filters for the removed methods
    
    Result:
    Deprecated Akka 2.6.0 era APIs are removed from the public surface while 
preserving
    internal functionality used by the remote module.
    
    Tests:
    - sbt "stream / Compile / compile" "remote / Compile / compile" - success
    - sbt "stream / Test / compile" "remote / Test / compile" - success
    - sbt "+stream / mimaReportBinaryIssues" "+remote / mimaReportBinaryIssues" 
- no issues
    
    References:
    None - proactive cleanup of deprecated APIs before Pekko 2.0.0 release
---
 ...emove-deprecated-materializer-settings.excludes | 21 ++++++++
 .../apache/pekko/stream/ActorMaterializer.scala    | 59 +++++++---------------
 .../apache/pekko/stream/StreamRefSettings.scala    | 20 +-------
 3 files changed, 41 insertions(+), 59 deletions(-)

diff --git 
a/stream/src/main/mima-filters/2.0.x.backwards.excludes/remove-deprecated-materializer-settings.excludes
 
b/stream/src/main/mima-filters/2.0.x.backwards.excludes/remove-deprecated-materializer-settings.excludes
new file mode 100644
index 0000000000..e99832e516
--- /dev/null
+++ 
b/stream/src/main/mima-filters/2.0.x.backwards.excludes/remove-deprecated-materializer-settings.excludes
@@ -0,0 +1,21 @@
+# 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.
+
+# Remove deprecated ActorMaterializerSettings builder methods and IOSettings 
constructor (deprecated since Akka 2.6.0)
+ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.stream.ActorMaterializerSettings.withInputBuffer")
+ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.stream.ActorMaterializerSettings.withDispatcher")
+ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.stream.IOSettings.this")
diff --git 
a/stream/src/main/scala/org/apache/pekko/stream/ActorMaterializer.scala 
b/stream/src/main/scala/org/apache/pekko/stream/ActorMaterializer.scala
index 3e234c5069..0fb1878075 100644
--- a/stream/src/main/scala/org/apache/pekko/stream/ActorMaterializer.scala
+++ b/stream/src/main/scala/org/apache/pekko/stream/ActorMaterializer.scala
@@ -26,6 +26,7 @@ import pekko.actor.ActorSystem
 import pekko.actor.ExtendedActorSystem
 import pekko.annotation.InternalApi
 import pekko.stream.impl._
+import pekko.stream.impl.streamref.StreamRefSettingsImpl
 import pekko.stream.stage.GraphStageLogic
 import pekko.util.Helpers.toRootLowerCase
 
@@ -209,8 +210,21 @@ private[pekko] object ActorMaterializerSettings {
       autoFusing = config.getBoolean("auto-fusing"),
       maxFixedBufferSize = config.getInt("max-fixed-buffer-size"),
       syncProcessingLimit = config.getInt("sync-processing-limit"),
-      ioSettings = IOSettings(config.getConfig("io")),
-      streamRefSettings = StreamRefSettings(config.getConfig("stream-ref")),
+      ioSettings = new IOSettings(
+        tcpWriteBufferSize = math.min(Int.MaxValue, 
config.getConfig("io").getBytes("tcp.write-buffer-size")).toInt,
+        coalesceWrites = config.getConfig("io").getInt("tcp.coalesce-writes")),
+      streamRefSettings = StreamRefSettingsImpl(
+        bufferCapacity = 
config.getConfig("stream-ref").getInt("buffer-capacity"),
+        demandRedeliveryInterval = config
+          .getConfig("stream-ref")
+          .getDuration("demand-redelivery-interval", TimeUnit.MILLISECONDS)
+          .millis,
+        subscriptionTimeout =
+          config.getConfig("stream-ref").getDuration("subscription-timeout", 
TimeUnit.MILLISECONDS).millis,
+        finalTerminationSignalDeadline = config
+          .getConfig("stream-ref")
+          .getDuration("final-termination-signal-deadline", 
TimeUnit.MILLISECONDS)
+          .millis),
       blockingIoDispatcher = config.getString("blocking-io-dispatcher"))
 }
 
@@ -282,32 +296,9 @@ final class ActorMaterializerSettings @InternalApi private 
(
       blockingIoDispatcher)
   }
 
-  /**
-   * Each asynchronous piece of a materialized stream topology is executed by 
one Actor
-   * that manages an input buffer for all inlets of its shape. This setting 
configures
-   * the default for initial and maximal input buffer in number of elements 
for each inlet.
-   * This can be overridden for individual parts of the
-   * stream topology by using [[pekko.stream.Attributes#inputBuffer]].
-   *
-   * FIXME: this is used for all kinds of buffers, not only the stream actor, 
some use initial some use max,
-   *        document and or fix if it should not be like that. Search for 
get[Attributes.InputBuffer] to see how it is used
-   */
-  @deprecated("Use attribute 'Attributes.InputBuffer' to change setting 
value", "Akka 2.6.0")
-  def withInputBuffer(initialSize: Int, maxSize: Int): 
ActorMaterializerSettings = {
-    if (initialSize == this.initialInputBufferSize && maxSize == 
this.maxInputBufferSize) this
-    else copy(initialInputBufferSize = initialSize, maxInputBufferSize = 
maxSize)
-  }
-
-  /**
-   * This setting configures the default dispatcher to be used by streams 
materialized
-   * with the [[ActorMaterializer]]. This can be overridden for individual 
parts of the
-   * stream topology by using [[pekko.stream.Attributes#dispatcher]].
-   */
-  @deprecated("Use attribute 'ActorAttributes.Dispatcher' to change setting 
value", "Akka 2.6.0")
-  def withDispatcher(dispatcher: String): ActorMaterializerSettings = {
+  private[pekko] def withDispatcher(dispatcher: String): 
ActorMaterializerSettings =
     if (this.dispatcher == dispatcher) this
     else copy(dispatcher = dispatcher)
-  }
 
   /**
    * Leaked publishers and subscribers are cleaned up when they are not used 
within a given
@@ -377,24 +368,12 @@ final class ActorMaterializerSettings @InternalApi 
private (
 }
 
 @InternalApi
-private[pekko] object IOSettings {
-  @deprecated(
-    "Use setting 'pekko.stream.materializer.io.tcp.write-buffer-size' or 
attribute TcpAttributes.writeBufferSize instead",
-    "Akka 2.6.0")
-  def apply(config: Config): IOSettings =
-    new IOSettings(
-      tcpWriteBufferSize = math.min(Int.MaxValue, 
config.getBytes("tcp.write-buffer-size")).toInt,
-      coalesceWrites = config.getInt("tcp.coalesce-writes"))
-}
+private[pekko] object IOSettings
 
-final class IOSettings private (
+final class IOSettings private[stream] (
     private[stream] val tcpWriteBufferSize: Int,
     val coalesceWrites: Int) {
 
-  // constructor for binary compatibility with version 2.6.15 and earlier
-  @deprecated("Use attribute 'TcpAttributes.TcpWriteBufferSize' to read the 
concrete setting value", "Akka 2.6.0")
-  def this(tcpWriteBufferSize: Int) = this(tcpWriteBufferSize, coalesceWrites 
= 10)
-
   def withTcpWriteBufferSize(value: Int): IOSettings = copy(tcpWriteBufferSize 
= value)
 
   def withCoalesceWrites(value: Int): IOSettings = copy(coalesceWrites = value)
diff --git 
a/stream/src/main/scala/org/apache/pekko/stream/StreamRefSettings.scala 
b/stream/src/main/scala/org/apache/pekko/stream/StreamRefSettings.scala
index 6aa90497ae..da2ad89c7b 100644
--- a/stream/src/main/scala/org/apache/pekko/stream/StreamRefSettings.scala
+++ b/stream/src/main/scala/org/apache/pekko/stream/StreamRefSettings.scala
@@ -13,32 +13,14 @@
 
 package org.apache.pekko.stream
 
-import java.util.concurrent.TimeUnit
-
 import scala.annotation.nowarn
 import scala.concurrent.duration._
 
 import org.apache.pekko
 import pekko.annotation.{ DoNotInherit, InternalApi }
-import pekko.stream.impl.streamref.StreamRefSettingsImpl
-
-import com.typesafe.config.Config
 
 @InternalApi
-private[stream] object StreamRefSettings {
-
-  /** Scala API */
-  @deprecated(
-    "Use attributes on the Runnable graph or change the defaults in 
configuration, see migration guide for details 
https://doc.akka.io/docs/akka/2.6/project/migration-guide-2.5.x-2.6.x.html";,
-    since = "Akka 2.6.0")
-  def apply(c: Config): StreamRefSettings = {
-    StreamRefSettingsImpl(
-      bufferCapacity = c.getInt("buffer-capacity"),
-      demandRedeliveryInterval = c.getDuration("demand-redelivery-interval", 
TimeUnit.MILLISECONDS).millis,
-      subscriptionTimeout = c.getDuration("subscription-timeout", 
TimeUnit.MILLISECONDS).millis,
-      finalTerminationSignalDeadline = 
c.getDuration("final-termination-signal-deadline", 
TimeUnit.MILLISECONDS).millis)
-  }
-}
+private[stream] object StreamRefSettings {}
 
 /**
  * Settings specific to [[SourceRef]] and [[SinkRef]].


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to