Skip to content

Commit f23d602

Browse files
authored
Akka to Pekko migration (#397)
* change all refs from akka to pekko
1 parent 40a0211 commit f23d602

40 files changed

+223
-223
lines changed

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ The configuration specifies:
8181
* httpStatusPath - The path in the http server for the status.
8282
* jvmMetricsCollectionInterval - The JVM metrics collection interval in ISO-8601 period notation.
8383
* limiters - Configuration of zero or more limiters by name.
84-
* akkaConfiguration - Configuration of Akka.
84+
* pekkoConfiguration - Configuration of Pekko.
8585

8686
For example:
8787

@@ -95,14 +95,14 @@ For example:
9595
"httpHealthCheckPath": "/mad/healthcheck",
9696
"httpStatusPath": "/mad/status",
9797
"jvmMetricsCollectionInterval": "PT1.0S",
98-
"akkaConfiguration": {
99-
"akka": {
98+
"pekkoConfiguration": {
99+
"pekko": {
100100
"loggers": [
101-
"akka.event.slf4j.Slf4jLogger"
101+
"org.apache.pekko.event.slf4j.Slf4jLogger"
102102
],
103103
"loglevel": "DEBUG",
104104
"stdout-loglevel": "DEBUG",
105-
"logging-filter": "akka.event.slf4j.Slf4jLoggingFilter",
105+
"logging-filter": "org.apache.pekko.event.slf4j.Slf4jLoggingFilter",
106106
"actor": {
107107
"debug": {
108108
"unhandled": "on"

config/config.conf

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ enableHttps=true
1313
#httpsKeyPath=/opt/mad/tls/key.pem
1414
#httpHealthCheckPath="/ping"
1515
#httpStatusPath="/status"
16-
#supplementalHttpRoutesClass="com.example.MyAkkaRoutes"
16+
#supplementalHttpRoutesClass="com.example.MyPekkoRoutes"
1717

1818
# Metrics
1919
# ~~~~
@@ -46,14 +46,14 @@ monitoringCluster="mad"
4646
# ~~~~
4747
logDirectory="logs"
4848

49-
# Akka
49+
# Pekko
5050
# ~~~~
51-
akkaConfiguration {
52-
akka {
53-
loggers = [ "akka.event.slf4j.Slf4jLogger" ]
51+
pekkoConfiguration {
52+
pekko {
53+
loggers = [ "org.apache.pekko.event.slf4j.Slf4jLogger" ]
5454
loglevel="DEBUG"
5555
stdout-loglevel="DEBUG"
56-
logging-filter="akka.event.slf4j.Slf4jLoggingFilter"
56+
logging-filter="org.apache.pekko.event.slf4j.Slf4jLoggingFilter"
5757
actor.debug.unhandled="on"
5858
http.server.preview.enable-http2 = on
5959

pom.xml

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,6 @@
7171

7272
<properties>
7373
<!--Dependency versions-->
74-
<akka.version>2.6.19</akka.version>
75-
<akka.http.version>10.2.10</akka.http.version>
7674
<apache.httpclient.version>4.5.14</apache.httpclient.version>
7775
<apache.httpcore.version>4.4.16</apache.httpcore.version>
7876
<arpnetworking.commons.version>3.1.0</arpnetworking.commons.version>
@@ -98,6 +96,8 @@
9896
<metrics.client.incubator.version>0.13.0</metrics.client.incubator.version>
9997
<metrics.jvm.extra.version>0.13.0</metrics.jvm.extra.version>
10098
<oval.version>3.2.1</oval.version>
99+
<pekko.version>1.0.2</pekko.version>
100+
<pekko.http.version>1.0.0</pekko.http.version>
101101
<protobuf.version>3.25.2</protobuf.version>
102102
<scala.version>2.13</scala.version>
103103
<scala.library.version>2.13.12</scala.library.version>
@@ -548,9 +548,9 @@
548548
<scope>runtime</scope>
549549
</dependency>
550550
<dependency>
551-
<groupId>com.typesafe.akka</groupId>
552-
<artifactId>akka-slf4j_${scala.version}</artifactId>
553-
<version>${akka.version}</version>
551+
<groupId>org.apache.pekko</groupId>
552+
<artifactId>pekko-slf4j_${scala.version}</artifactId>
553+
<version>${pekko.version}</version>
554554
<scope>runtime</scope>
555555
</dependency>
556556
<!-- Metrics -->
@@ -707,21 +707,21 @@
707707
<artifactId>jackson-module-afterburner</artifactId>
708708
<version>${jackson.version}</version>
709709
</dependency>
710-
<!-- Akka -->
710+
<!-- Pekko -->
711711
<dependency>
712-
<groupId>com.typesafe.akka</groupId>
713-
<artifactId>akka-actor_${scala.version}</artifactId>
714-
<version>${akka.version}</version>
712+
<groupId>org.apache.pekko</groupId>
713+
<artifactId>pekko-actor_${scala.version}</artifactId>
714+
<version>${pekko.version}</version>
715715
</dependency>
716716
<dependency>
717-
<groupId>com.typesafe.akka</groupId>
718-
<artifactId>akka-http-core_${scala.version}</artifactId>
719-
<version>${akka.http.version}</version>
717+
<groupId>org.apache.pekko</groupId>
718+
<artifactId>pekko-http-core_${scala.version}</artifactId>
719+
<version>${pekko.http.version}</version>
720720
</dependency>
721721
<dependency>
722-
<groupId>com.typesafe.akka</groupId>
723-
<artifactId>akka-stream_${scala.version}</artifactId>
724-
<version>${akka.version}</version>
722+
<groupId>org.apache.pekko</groupId>
723+
<artifactId>pekko-stream_${scala.version}</artifactId>
724+
<version>${pekko.version}</version>
725725
</dependency>
726726
<dependency>
727727
<groupId>com.typesafe</groupId>
@@ -881,9 +881,9 @@
881881
<scope>test</scope>
882882
</dependency>
883883
<dependency>
884-
<groupId>com.typesafe.akka</groupId>
885-
<artifactId>akka-testkit_${scala.version}</artifactId>
886-
<version>${akka.version}</version>
884+
<groupId>org.apache.pekko</groupId>
885+
<artifactId>pekko-testkit_${scala.version}</artifactId>
886+
<version>${pekko.version}</version>
887887
<scope>test</scope>
888888
</dependency>
889889
<!-- Test - Performance -->

src/main/java/com/arpnetworking/http/RequestReply.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@
1515
*/
1616
package com.arpnetworking.http;
1717

18-
import akka.http.javadsl.model.HttpRequest;
19-
import akka.http.javadsl.model.HttpResponse;
18+
import org.apache.pekko.http.javadsl.model.HttpRequest;
19+
import org.apache.pekko.http.javadsl.model.HttpResponse;
2020

2121
import java.util.concurrent.CompletableFuture;
2222

src/main/java/com/arpnetworking/http/Routes.java

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -15,31 +15,6 @@
1515
*/
1616
package com.arpnetworking.http;
1717

18-
import akka.actor.ActorNotFound;
19-
import akka.actor.ActorRef;
20-
import akka.actor.ActorSystem;
21-
import akka.actor.PoisonPill;
22-
import akka.actor.Status.Failure;
23-
import akka.actor.Status.Success;
24-
import akka.http.javadsl.model.ContentType;
25-
import akka.http.javadsl.model.ContentTypes;
26-
import akka.http.javadsl.model.HttpHeader;
27-
import akka.http.javadsl.model.HttpMethods;
28-
import akka.http.javadsl.model.HttpRequest;
29-
import akka.http.javadsl.model.HttpResponse;
30-
import akka.http.javadsl.model.StatusCodes;
31-
import akka.http.javadsl.model.headers.CacheControl;
32-
import akka.http.javadsl.model.headers.CacheDirectives;
33-
import akka.http.javadsl.model.ws.Message;
34-
import akka.japi.JavaPartialFunction;
35-
import akka.japi.function.Function;
36-
import akka.pattern.Patterns;
37-
import akka.stream.CompletionStrategy;
38-
import akka.stream.OverflowStrategy;
39-
import akka.stream.javadsl.Sink;
40-
import akka.stream.javadsl.Source;
41-
import akka.util.ByteString;
42-
import akka.util.Timeout;
4318
import com.arpnetworking.metrics.common.sources.ClientHttpSourceV1;
4419
import com.arpnetworking.metrics.common.sources.ClientHttpSourceV2;
4520
import com.arpnetworking.metrics.common.sources.ClientHttpSourceV3;
@@ -60,6 +35,31 @@
6035
import com.google.common.collect.ImmutableList;
6136
import com.google.common.io.Resources;
6237
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
38+
import org.apache.pekko.actor.ActorNotFound;
39+
import org.apache.pekko.actor.ActorRef;
40+
import org.apache.pekko.actor.ActorSystem;
41+
import org.apache.pekko.actor.PoisonPill;
42+
import org.apache.pekko.actor.Status.Failure;
43+
import org.apache.pekko.actor.Status.Success;
44+
import org.apache.pekko.http.javadsl.model.ContentType;
45+
import org.apache.pekko.http.javadsl.model.ContentTypes;
46+
import org.apache.pekko.http.javadsl.model.HttpHeader;
47+
import org.apache.pekko.http.javadsl.model.HttpMethods;
48+
import org.apache.pekko.http.javadsl.model.HttpRequest;
49+
import org.apache.pekko.http.javadsl.model.HttpResponse;
50+
import org.apache.pekko.http.javadsl.model.StatusCodes;
51+
import org.apache.pekko.http.javadsl.model.headers.CacheControl;
52+
import org.apache.pekko.http.javadsl.model.headers.CacheDirectives;
53+
import org.apache.pekko.http.javadsl.model.ws.Message;
54+
import org.apache.pekko.japi.JavaPartialFunction;
55+
import org.apache.pekko.japi.function.Function;
56+
import org.apache.pekko.pattern.Patterns;
57+
import org.apache.pekko.stream.CompletionStrategy;
58+
import org.apache.pekko.stream.OverflowStrategy;
59+
import org.apache.pekko.stream.javadsl.Sink;
60+
import org.apache.pekko.stream.javadsl.Source;
61+
import org.apache.pekko.util.ByteString;
62+
import org.apache.pekko.util.Timeout;
6363

6464
import java.time.Duration;
6565
import java.util.Objects;
@@ -79,7 +79,7 @@
7979
*/
8080
@SuppressFBWarnings("SIC_INNER_SHOULD_BE_STATIC_ANON")
8181
public final class Routes implements Function<HttpRequest, CompletionStage<HttpResponse>>,
82-
akka.japi.Function<HttpRequest, CompletionStage<HttpResponse>> {
82+
org.apache.pekko.japi.Function<HttpRequest, CompletionStage<HttpResponse>> {
8383

8484
/**
8585
* Public constructor.
@@ -230,7 +230,7 @@ private CompletionStage<HttpResponse> process(final HttpRequest request) {
230230
if (supplmentalRouteFuture.isPresent()) {
231231
return supplmentalRouteFuture.get();
232232
}
233-
// CHECKSTYLE.OFF: IllegalCatch - Akka's functional interface declares Exception thrown
233+
// CHECKSTYLE.OFF: IllegalCatch - Pekko's functional interface declares Exception thrown
234234
} catch (final Exception e) {
235235
// CHECKSTYLE.ON: IllegalCatch
236236
LOGGER.warn()
@@ -275,9 +275,9 @@ private CompletionStage<HttpResponse> getHttpResponseForTelemetry(
275275
final HttpRequest request,
276276
final MessageProcessorsFactory messageProcessorsFactory) {
277277
final Optional<HttpHeader> upgradeToWebSocketHeader = request.getHeader("UpgradeToWebSocket");
278-
if (upgradeToWebSocketHeader.orElse(null) instanceof akka.http.impl.engine.ws.UpgradeToWebSocketLowLevel) {
279-
final akka.http.impl.engine.ws.UpgradeToWebSocketLowLevel lowLevelUpgradeToWebSocketHeader =
280-
(akka.http.impl.engine.ws.UpgradeToWebSocketLowLevel) upgradeToWebSocketHeader.get();
278+
if (upgradeToWebSocketHeader.orElse(null) instanceof org.apache.pekko.http.impl.engine.ws.UpgradeToWebSocketLowLevel) {
279+
final org.apache.pekko.http.impl.engine.ws.UpgradeToWebSocketLowLevel lowLevelUpgradeToWebSocketHeader =
280+
(org.apache.pekko.http.impl.engine.ws.UpgradeToWebSocketLowLevel) upgradeToWebSocketHeader.get();
281281

282282
final ActorRef connection = _actorSystem.actorOf(Connection.props(_metrics, messageProcessorsFactory));
283283
final Sink<Message, ?> inChannel = Sink.actorRef(connection, PoisonPill.getInstance());

src/main/java/com/arpnetworking/http/SupplementalRoutes.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@
1515
*/
1616
package com.arpnetworking.http;
1717

18-
import akka.http.javadsl.model.HttpRequest;
19-
import akka.http.javadsl.model.HttpResponse;
20-
import akka.japi.function.Function;
18+
import org.apache.pekko.http.javadsl.model.HttpRequest;
19+
import org.apache.pekko.http.javadsl.model.HttpResponse;
20+
import org.apache.pekko.japi.function.Function;
2121

2222
import java.util.Optional;
2323
import java.util.concurrent.CompletionStage;

src/main/java/com/arpnetworking/metrics/common/sources/ActorSource.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,18 +15,18 @@
1515
*/
1616
package com.arpnetworking.metrics.common.sources;
1717

18-
import akka.actor.ActorRef;
19-
import akka.actor.ActorSystem;
20-
import akka.actor.PoisonPill;
21-
import akka.actor.Props;
22-
import akka.pattern.Patterns;
23-
import akka.routing.RoundRobinPool;
2418
import com.arpnetworking.steno.Logger;
2519
import com.arpnetworking.steno.LoggerFactory;
2620
import com.fasterxml.jackson.annotation.JacksonInject;
2721
import net.sf.oval.constraint.Min;
2822
import net.sf.oval.constraint.NotEmpty;
2923
import net.sf.oval.constraint.NotNull;
24+
import org.apache.pekko.actor.ActorRef;
25+
import org.apache.pekko.actor.ActorSystem;
26+
import org.apache.pekko.actor.PoisonPill;
27+
import org.apache.pekko.actor.Props;
28+
import org.apache.pekko.pattern.Patterns;
29+
import org.apache.pekko.routing.RoundRobinPool;
3030

3131
import java.time.Duration;
3232
import java.util.concurrent.ExecutionException;
@@ -88,9 +88,9 @@ protected ActorSystem getActorSystem() {
8888
}
8989

9090
/**
91-
* Return an {@link ActorRef} to this source's Akka actor.
91+
* Return an {@link ActorRef} to this source's Pekko actor.
9292
*
93-
* @return An {@link ActorRef} to this source's Akka actor.
93+
* @return An {@link ActorRef} to this source's Pekko actor.
9494
*/
9595
protected ActorRef getActor() {
9696
return _actor;

src/main/java/com/arpnetworking/metrics/common/sources/BaseTcpSource.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,19 +15,19 @@
1515
*/
1616
package com.arpnetworking.metrics.common.sources;
1717

18-
import akka.actor.AbstractActor;
19-
import akka.actor.ActorRef;
20-
import akka.actor.Props;
21-
import akka.io.Tcp;
22-
import akka.io.TcpMessage;
23-
import akka.pattern.Patterns;
2418
import com.arpnetworking.steno.LogBuilder;
2519
import com.arpnetworking.steno.Logger;
2620
import com.arpnetworking.steno.LoggerFactory;
2721
import net.sf.oval.constraint.Min;
2822
import net.sf.oval.constraint.NotEmpty;
2923
import net.sf.oval.constraint.NotNull;
3024
import net.sf.oval.constraint.Range;
25+
import org.apache.pekko.actor.AbstractActor;
26+
import org.apache.pekko.actor.ActorRef;
27+
import org.apache.pekko.actor.Props;
28+
import org.apache.pekko.io.Tcp;
29+
import org.apache.pekko.io.TcpMessage;
30+
import org.apache.pekko.pattern.Patterns;
3131

3232
import java.net.InetSocketAddress;
3333
import java.time.Duration;

src/main/java/com/arpnetworking/metrics/common/sources/HttpSource.java

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -15,29 +15,6 @@
1515
*/
1616
package com.arpnetworking.metrics.common.sources;
1717

18-
import akka.Done;
19-
import akka.NotUsed;
20-
import akka.actor.AbstractActor;
21-
import akka.actor.Props;
22-
import akka.http.javadsl.model.HttpHeader;
23-
import akka.http.javadsl.model.HttpRequest;
24-
import akka.http.javadsl.model.HttpResponse;
25-
import akka.http.javadsl.model.RequestEntity;
26-
import akka.japi.Pair;
27-
import akka.stream.ActorAttributes;
28-
import akka.stream.FanInShape2;
29-
import akka.stream.FlowShape;
30-
import akka.stream.Graph;
31-
import akka.stream.Materializer;
32-
import akka.stream.Supervision;
33-
import akka.stream.UniformFanOutShape;
34-
import akka.stream.javadsl.Broadcast;
35-
import akka.stream.javadsl.Flow;
36-
import akka.stream.javadsl.GraphDSL;
37-
import akka.stream.javadsl.Keep;
38-
import akka.stream.javadsl.Sink;
39-
import akka.stream.javadsl.Zip;
40-
import akka.util.ByteString;
4118
import com.arpnetworking.http.RequestReply;
4219
import com.arpnetworking.metrics.common.parsers.Parser;
4320
import com.arpnetworking.metrics.common.parsers.exceptions.ParsingException;
@@ -51,6 +28,29 @@
5128
import com.fasterxml.jackson.annotation.JacksonInject;
5229
import com.google.common.collect.ImmutableMultimap;
5330
import net.sf.oval.constraint.NotNull;
31+
import org.apache.pekko.Done;
32+
import org.apache.pekko.NotUsed;
33+
import org.apache.pekko.actor.AbstractActor;
34+
import org.apache.pekko.actor.Props;
35+
import org.apache.pekko.http.javadsl.model.HttpHeader;
36+
import org.apache.pekko.http.javadsl.model.HttpRequest;
37+
import org.apache.pekko.http.javadsl.model.HttpResponse;
38+
import org.apache.pekko.http.javadsl.model.RequestEntity;
39+
import org.apache.pekko.japi.Pair;
40+
import org.apache.pekko.stream.ActorAttributes;
41+
import org.apache.pekko.stream.FanInShape2;
42+
import org.apache.pekko.stream.FlowShape;
43+
import org.apache.pekko.stream.Graph;
44+
import org.apache.pekko.stream.Materializer;
45+
import org.apache.pekko.stream.Supervision;
46+
import org.apache.pekko.stream.UniformFanOutShape;
47+
import org.apache.pekko.stream.javadsl.Broadcast;
48+
import org.apache.pekko.stream.javadsl.Flow;
49+
import org.apache.pekko.stream.javadsl.GraphDSL;
50+
import org.apache.pekko.stream.javadsl.Keep;
51+
import org.apache.pekko.stream.javadsl.Sink;
52+
import org.apache.pekko.stream.javadsl.Zip;
53+
import org.apache.pekko.util.ByteString;
5454

5555
import java.time.Duration;
5656
import java.util.List;
@@ -108,7 +108,7 @@ public Receive createReceive() {
108108

109109
private void requestReply(final RequestReply requestReply) {
110110
// TODO(barp): Fix the ugly HttpRequest cast here due to java vs scala dsl
111-
akka.stream.javadsl.Source.single(requestReply.getRequest())
111+
org.apache.pekko.stream.javadsl.Source.single(requestReply.getRequest())
112112
.log("http source stream failure")
113113
.via(_processGraph)
114114
.toMat(_sink, Keep.right())

0 commit comments

Comments
 (0)