Skip to content

Commit 1de9317

Browse files
committed
clean up micronaut framework integration
Signed-off-by: Gabriel Harris-Rouquette <gabizou@me.com>
1 parent 8f5deb9 commit 1de9317

File tree

327 files changed

+1355
-22577
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

327 files changed

+1355
-22577
lines changed

.java-version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
graalvm64-17.0.4
1+
20.0.1

.jvmopts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,5 @@
33
-Xss6M
44
-XX:ReservedCodeCacheSize=256M
55
-Dfile.encoding=UTF-8
6+
--enable-preview
67
--add-opens=java.base/java.lang=ALL-UNNAMED

akka/build.gradle.kts

Lines changed: 10 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -2,28 +2,16 @@
22
version = "0.1"
33
group = "org.spongepowered.downloads"
44

5-
6-
val akkaVersion: String by project
7-
val scalaVersion: String by project
8-
val akkaManagementVersion: String by project
9-
val akkaProjection: String by project
5+
plugins {
6+
id("com.github.johnrengelman.shadow")
7+
id("io.micronaut.library")
8+
}
109

1110
dependencies {
12-
implementation("com.ongres.scram:client:2.1")
13-
implementation("jakarta.annotation:jakarta.annotation-api")
14-
implementation(platform("com.typesafe.akka:akka-bom_${scalaVersion}:${akkaVersion}"))
15-
implementation("com.typesafe.akka:akka-actor-typed_${scalaVersion}")
16-
implementation("com.typesafe.akka:akka-cluster-sharding-typed_${scalaVersion}")
17-
implementation("com.typesafe.akka:akka-cluster-typed_${scalaVersion}")
18-
implementation("com.typesafe.akka:akka-discovery_${scalaVersion}")
19-
implementation("com.typesafe.akka:akka-discovery_${scalaVersion}")
20-
implementation("com.lightbend.akka.management:akka-management_${scalaVersion}:${akkaManagementVersion}")
21-
implementation("com.lightbend.akka.management:akka-management-cluster-bootstrap_${scalaVersion}:${akkaManagementVersion}")
22-
23-
runtimeOnly("ch.qos.logback:logback-classic")
24-
compileOnly("org.graalvm.nativeimage:svm")
25-
26-
implementation("io.micronaut:micronaut-validation")
11+
annotationProcessor("io.micronaut.serde:micronaut-serde-processor")
12+
implementation("io.micronaut.serde:micronaut-serde-jackson")
13+
api("io.micronaut:micronaut-inject")
14+
api(platform(libs.akkaBom))
15+
api(libs.bundles.actors)
16+
implementation(libs.bundles.akkaManagement)
2717
}
28-
29-

akka/settings.gradle

Lines changed: 0 additions & 3 deletions
This file was deleted.

akka/src/main/java/module-info.java

Lines changed: 0 additions & 5 deletions
This file was deleted.
Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package org.spongepowered.downloads.akka;
22

33
import akka.actor.typed.ActorSystem;
4+
import akka.actor.typed.Behavior;
45
import akka.actor.typed.Scheduler;
56
import akka.actor.typed.SpawnProtocol;
67
import akka.actor.typed.javadsl.Adapter;
@@ -12,35 +13,32 @@
1213
import com.typesafe.config.ConfigFactory;
1314
import io.micronaut.context.annotation.Bean;
1415
import io.micronaut.context.annotation.Factory;
16+
import io.micronaut.core.annotation.NonNull;
17+
import jakarta.inject.Singleton;
1518

1619
@Factory
1720
public class AkkaExtension {
1821

1922
@Bean
20-
public Scheduler systemScheduler() {
21-
return system().scheduler();
23+
public Scheduler systemScheduler(@NonNull ActorSystem<?> system) {
24+
return system.scheduler();
2225
}
2326

2427
@Bean
2528
public Config akkaConfig() {
26-
return ConfigFactory.load();
29+
return ConfigFactory.defaultApplication();
2730
}
2831

32+
@Singleton
2933
@Bean(preDestroy = "terminate")
30-
public ActorSystem<SpawnProtocol.Command> system() {
31-
Config config = akkaConfig();
32-
return ActorSystem.create(
33-
Behaviors.setup(ctx -> {
34-
akka.actor.ActorSystem unTypedSystem = Adapter.toClassic(ctx.getSystem());
35-
AkkaManagement.get(unTypedSystem).start();
36-
ClusterBootstrap.get(unTypedSystem).start();
37-
return SpawnProtocol.create();
38-
}), config.getString("some.cluster.name"));
34+
public ActorSystem<?> system(@NonNull Behavior<?> behavior, @NonNull Config config) {
35+
return ActorSystem.create(behavior, "soad-master");
3936
}
4037

4138
@Bean
42-
public ClusterSharding clusterSharding() {
43-
return ClusterSharding.get(system());
39+
@Singleton
40+
public ClusterSharding clusterSharding(@NonNull ActorSystem<?> system) {
41+
return ClusterSharding.get(system);
4442
}
4543

4644
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package org.spongepowered.downloads.akka;
2+
3+
/**
4+
* Marker interface for Akka serialization via Jackson
5+
*/
6+
public interface AkkaSerializable {
7+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package org.spongepowered.downloads.akka;
2+
3+
import akka.actor.typed.ActorSystem;
4+
import akka.actor.typed.Behavior;
5+
import akka.actor.typed.SpawnProtocol;
6+
import akka.actor.typed.javadsl.Behaviors;
7+
import akka.management.cluster.bootstrap.ClusterBootstrap;
8+
import akka.management.javadsl.AkkaManagement;
9+
import io.micronaut.context.annotation.Bean;
10+
import io.micronaut.context.annotation.Factory;
11+
import io.micronaut.context.annotation.Requires;
12+
13+
@Factory
14+
public class ProductionAkkaSystem {
15+
16+
@Bean
17+
public Behavior<SpawnProtocol.Command> productionGuardian() {
18+
return Behaviors.<SpawnProtocol.Command>setup(ctx -> {
19+
final var system = ctx.getSystem();
20+
ClusterBootstrap.get(system).start();
21+
AkkaManagement.get(system).start();
22+
return SpawnProtocol.create();
23+
});
24+
}
25+
26+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
2+
akka {
3+
actor {
4+
provider = "cluster"
5+
serialization-bindings {
6+
"org.spongepowered.downloads.akka.AkkaSerializable" = jackson-json
7+
}
8+
}
9+
remote.artery {
10+
canonical {
11+
hostname = "127.0.0.1"
12+
port = 2551
13+
}
14+
}
15+
16+
cluster {
17+
seed-nodes = [
18+
"akka://ClusterSystem@127.0.0.1:2551",
19+
"akka://ClusterSystem@127.0.0.1:2552"]
20+
21+
downing-provider-class = "akka.cluster.sbr.SplitBrainResolverProvider"
22+
}
23+
}

akka/testkit/build.gradle.kts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
2+
3+
4+
plugins {
5+
id("com.github.johnrengelman.shadow")
6+
id("io.micronaut.library")
7+
}
8+
dependencies {
9+
annotationProcessor("io.micronaut.serde:micronaut-serde-processor")
10+
implementation("io.micronaut.serde:micronaut-serde-jackson")
11+
api("io.micronaut:micronaut-inject")
12+
api(project(":akka"))
13+
api(libs.akka.testkit)
14+
}
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package org.spongepowered.downloads.test.akka;
2+
3+
import akka.actor.testkit.typed.javadsl.ActorTestKit;
4+
import akka.actor.testkit.typed.javadsl.BehaviorTestKit;
5+
import akka.actor.typed.ActorSystem;
6+
import akka.actor.typed.Behavior;
7+
import akka.actor.typed.SpawnProtocol;
8+
import com.typesafe.config.Config;
9+
import com.typesafe.config.ConfigFactory;
10+
import io.micronaut.context.annotation.Bean;
11+
import io.micronaut.context.annotation.Factory;
12+
import io.micronaut.context.annotation.Replaces;
13+
import io.micronaut.core.annotation.NonNull;
14+
import jakarta.inject.Singleton;
15+
16+
@Factory
17+
public class AkkaTestExtension {
18+
19+
@Replaces
20+
@Bean
21+
public Behavior<SpawnProtocol.Command> testBehavior() {
22+
return SpawnProtocol.create();
23+
}
24+
25+
@Replaces
26+
@Bean
27+
public Config testConfig() {
28+
return ConfigFactory.defaultApplication()
29+
.withFallback(BehaviorTestKit.applicationTestConfig())
30+
.resolve();
31+
}
32+
33+
@Bean(preDestroy = "shutdownTestKit")
34+
public ActorTestKit testKit() {
35+
return ActorTestKit.create();
36+
}
37+
38+
@Replaces(bean = ActorSystem.class)
39+
@Singleton
40+
public ActorSystem<?> system(@NonNull ActorTestKit kit) {
41+
return kit.system();
42+
}
43+
44+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
systemofadownload {
2+
clustering = false
3+
}

artifact-api/src/main/java/org/spongepowered/downloads/artifact/api/Artifact.java

Lines changed: 0 additions & 46 deletions
This file was deleted.

artifact-api/src/main/java/org/spongepowered/downloads/artifact/api/ArtifactCollection.java

Lines changed: 0 additions & 42 deletions
This file was deleted.

artifact-api/src/main/java/org/spongepowered/downloads/artifact/api/ArtifactCoordinates.java

Lines changed: 0 additions & 66 deletions
This file was deleted.

0 commit comments

Comments
 (0)