stuff moved to a new package. you wouldn't expect that in a point release, but they put type aliases in place so Scala users wouldn't notice. but the change is visible to Java code. the upgrade is not strictly necessary, but it would be convenient for the Scala 2.13 community build to have this merged, so I don't have to maintain these changes in our Akka fork
85 lines
2.5 KiB
Java
85 lines
2.5 KiB
Java
/*
|
|
* Copyright (C) 2009-2019 Lightbend Inc. <https://www.lightbend.com>
|
|
*/
|
|
|
|
package akka.actor;
|
|
|
|
import akka.testkit.AkkaJUnitActorSystemResource;
|
|
import org.junit.*;
|
|
import akka.testkit.AkkaSpec;
|
|
import com.typesafe.config.ConfigFactory;
|
|
import org.scalatestplus.junit.JUnitSuite;
|
|
|
|
import static org.junit.Assert.*;
|
|
|
|
public class JavaExtension extends JUnitSuite {
|
|
|
|
static class TestExtensionId extends AbstractExtensionId<TestExtension>
|
|
implements ExtensionIdProvider {
|
|
public static final TestExtensionId TestExtensionProvider = new TestExtensionId();
|
|
|
|
public ExtensionId<TestExtension> lookup() {
|
|
return TestExtensionId.TestExtensionProvider;
|
|
}
|
|
|
|
public TestExtension createExtension(ExtendedActorSystem i) {
|
|
return new TestExtension(i);
|
|
}
|
|
}
|
|
|
|
static class TestExtension implements Extension {
|
|
public final ExtendedActorSystem system;
|
|
|
|
public TestExtension(ExtendedActorSystem i) {
|
|
system = i;
|
|
}
|
|
}
|
|
|
|
static class OtherExtensionId extends AbstractExtensionId<OtherExtension>
|
|
implements ExtensionIdProvider {
|
|
|
|
public static final OtherExtensionId OtherExtensionProvider = new OtherExtensionId();
|
|
|
|
@Override
|
|
public ExtensionId<OtherExtension> lookup() {
|
|
return OtherExtensionId.OtherExtensionProvider;
|
|
}
|
|
|
|
@Override
|
|
public OtherExtension createExtension(ExtendedActorSystem system) {
|
|
return new OtherExtension(system);
|
|
}
|
|
}
|
|
|
|
static class OtherExtension implements Extension {
|
|
static final ExtensionId<OtherExtension> key = OtherExtensionId.OtherExtensionProvider;
|
|
|
|
public final ExtendedActorSystem system;
|
|
|
|
public OtherExtension(ExtendedActorSystem system) {
|
|
this.system = system;
|
|
}
|
|
}
|
|
|
|
@ClassRule
|
|
public static AkkaJUnitActorSystemResource actorSystemResource =
|
|
new AkkaJUnitActorSystemResource(
|
|
"JavaExtension",
|
|
ConfigFactory.parseString(
|
|
"akka.extensions = [ \"akka.actor.JavaExtension$TestExtensionId\" ]")
|
|
.withFallback(AkkaSpec.testConf()));
|
|
|
|
private final ActorSystem system = actorSystemResource.getSystem();
|
|
|
|
@Test
|
|
public void mustBeAccessible() {
|
|
assertTrue(system.hasExtension((TestExtensionId.TestExtensionProvider)));
|
|
assertSame(system.extension(TestExtensionId.TestExtensionProvider).system, system);
|
|
assertSame(TestExtensionId.TestExtensionProvider.apply(system).system, system);
|
|
}
|
|
|
|
@Test
|
|
public void mustBeAdHoc() {
|
|
assertSame(OtherExtension.key.apply(system).system, system);
|
|
}
|
|
}
|