Creating ExtensionId, AbstractExtensionId, ExtensionIdProvider and Extension

This commit is contained in:
Viktor Klang 2011-11-25 10:45:22 +01:00
parent bf20f3fa44
commit 603a8ed034
13 changed files with 85 additions and 60 deletions

View file

@ -13,18 +13,25 @@ import static org.junit.Assert.*;
public class JavaExtension {
static class Provider implements ExtensionProvider {
public Extension lookup() { return defaultInstance; }
static class Provider implements ExtensionIdProvider {
public ExtensionId lookup() { return defaultInstance; }
}
public final static TestExtension defaultInstance = new TestExtension();
public final static TestExtensionId defaultInstance = new TestExtensionId();
static class TestExtension extends AbstractExtension<ActorSystemImpl> {
public ActorSystemImpl createExtension(ActorSystemImpl i) {
return i;
static class TestExtensionId extends AbstractExtensionId<TestExtension> {
public TestExtension createExtension(ActorSystemImpl i) {
return new TestExtension(i);
}
}
static class TestExtension implements Extension {
public final ActorSystemImpl system;
public TestExtension(ActorSystemImpl i) {
system = i;
}
}
private Config c = ConfigFactory.parseString("akka.extensions = [ \"akka.actor.JavaExtension$Provider\" ]",
ConfigParseOptions.defaults());
@ -32,8 +39,8 @@ public class JavaExtension {
@Test
public void mustBeAccessible() {
assertSame(system.extension(defaultInstance), system);
assertSame(defaultInstance.apply(system), system);
assertSame(system.extension(defaultInstance).system, system);
assertSame(defaultInstance.apply(system).system, system);
}
}