Use injected dependencies, regened services.

git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5206 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
Michael Bayne
2008-06-29 12:43:34 +00:00
parent 34439e3461
commit c2d22b1e24
6 changed files with 66 additions and 71 deletions
@@ -114,7 +114,7 @@ public class RegistryTester
*/
public void start ()
{
TestServer.setClientTarget(_clientTarget);
_server.setClientTarget(_clientTarget);
Thread thread = new Thread("Registry test thread") {
public void run () {
@@ -181,7 +181,7 @@ public class RegistryTester
_omgr.postRunnable(new Runnable() {
public void run () {
for (AgentObject obj : _agents) {
TestServer.breg.destroyAgent(obj);
_bureauReg.destroyAgent(obj);
}
}
});
@@ -197,7 +197,7 @@ public class RegistryTester
(size != 0 && _rng1.nextInt(100) >= _createChance)) {
AgentObject toRemove = _agents.remove(_rng1.nextInt(size));
log.info("Removing agent " + toRemove.getOid());
TestServer.breg.destroyAgent(toRemove);
_bureauReg.destroyAgent(toRemove);
}
else {
AgentObject added = create(_rng1.nextInt(_numBureaus) + 1);
@@ -214,11 +214,12 @@ public class RegistryTester
AgentObject obj = new AgentObject();
obj.bureauType = "test";
obj.bureauId = "test-" + bureau;
TestServer.breg.startAgent(obj);
_bureauReg.startAgent(obj);
return obj;
}
@Inject protected RootDObjectManager _omgr;
@Inject protected BureauRegistry _bureauReg;
protected TestServer _server;
protected boolean _stop;
@@ -22,7 +22,9 @@
package com.threerings.bureau.server;
import com.google.inject.Guice;
import com.google.inject.Inject;
import com.google.inject.Injector;
import com.google.inject.Singleton;
import com.threerings.presents.server.PresentsServer;
@@ -31,13 +33,9 @@ import static com.threerings.bureau.Log.log;
/**
* Extends a presents server to include a bureau registry.
*/
@Singleton
public class TestServer extends PresentsServer
{
/**
* The bureau registry for the server. Will be null until <code>init</code> is called.
*/
public static BureauRegistry breg;
/**
* Creates a new server and runs it.
*/
@@ -47,7 +45,7 @@ public class TestServer extends PresentsServer
TestServer server = injector.getInstance(TestServer.class);
try {
server.init(injector);
setClientTarget("bureau-runclient");
server.setClientTarget("bureau-runclient");
server.run();
} catch (Exception e) {
@@ -55,38 +53,34 @@ public class TestServer extends PresentsServer
}
}
public static BureauRegistry.CommandGenerator antCommandGenerator (final String target)
{
return new BureauRegistry.CommandGenerator() {
public String[] createCommand (String serverNameAndPort, String bureauId, String token) {
int colon = serverNameAndPort.indexOf(':');
return new String[] {
"ant",
"-DserverName=" + serverNameAndPort.substring(0, colon),
"-DserverPort=" + serverNameAndPort.substring(colon + 1),
"-DbureauId=" + bureauId,
"-Dtoken=" + token,
target };
}
};
}
@Override // from PresentsServer
public void init (Injector injector)
throws Exception
{
super.init(injector);
breg = new BureauRegistry("localhost:47624", _invmgr, _omgr, _invoker);
_bureauReg.init("localhost:47624");
}
public static void setClientTarget (String target)
{
breg.setCommandGenerator("test", antCommandGenerator(target));
}
public static BureauRegistry.CommandGenerator antCommandGenerator (
final String target)
{
return new BureauRegistry.CommandGenerator() {
public String[] createCommand (
String serverNameAndPort,
String bureauId,
String token) {
int colon = serverNameAndPort.indexOf(':');
String [] cmd = {"ant",
"-DserverName=" + serverNameAndPort.substring(0, colon),
"-DserverPort=" + serverNameAndPort.substring(colon + 1),
"-DbureauId=" + bureauId,
"-Dtoken=" + token,
target};
return cmd;
}
};
public void setClientTarget (String target)
{
_bureauReg.setCommandGenerator("test", antCommandGenerator(target));
}
@Inject protected BureauRegistry _bureauReg;
}
@@ -12,21 +12,11 @@ import com.threerings.crowd.data.PlaceObject;
import static com.threerings.crowd.Log.log;
/**
* A basic server that creates a single room and sticks everyone in it
* where they can chat with one another.
* A basic server that creates a single room and sticks everyone in it where they can chat with one
* another.
*/
public class JabberServer extends CrowdServer
{
// documentation inherited
public void init (Injector injector)
throws Exception
{
super.init(injector);
// create a single location
_pmgr = plreg.createPlace(new JabberConfig());
}
public static void main (String[] args)
{
Injector injector = Guice.createInjector(new Module());
@@ -40,5 +30,15 @@ public class JabberServer extends CrowdServer
}
}
@Override // from CrowdServer
public void init (Injector injector)
throws Exception
{
super.init(injector);
// create a single location
_pmgr = _plreg.createPlace(new JabberConfig());
}
protected PlaceManager _pmgr;
}
@@ -2,7 +2,7 @@
// $Id$
//
// Narya library - tools for developing networked games
// Copyright (C) 2002-2006 Three Rings Design, Inc., All Rights Reserved
// Copyright (C) 2002-2008 Three Rings Design, Inc., All Rights Reserved
// http://www.threerings.net/code/narya/
//
// This library is free software; you can redistribute it and/or modify it
@@ -23,8 +23,8 @@ package com.threerings.presents.data;
import com.threerings.presents.client.Client;
import com.threerings.presents.client.TestService;
import com.threerings.presents.data.InvocationMarshaller;
import com.threerings.presents.dobj.InvocationResponseEvent;
import com.threerings.presents.net.Transport;
import java.util.ArrayList;
/**
@@ -37,7 +37,9 @@ import java.util.ArrayList;
public class TestMarshaller extends InvocationMarshaller
implements TestService
{
// documentation inherited
/**
* Marshalls results to implementations of {@link TestFuncListener}.
*/
public static class TestFuncMarshaller extends ListenerMarshaller
implements TestFuncListener
{
@@ -45,16 +47,16 @@ public class TestMarshaller extends InvocationMarshaller
* responses. */
public static final int TEST_SUCCEEDED = 1;
// documentation inherited from interface
// from interface TestFuncMarshaller
public void testSucceeded (String arg1, int arg2)
{
_invId = null;
omgr.postEvent(new InvocationResponseEvent(
callerOid, requestId, TEST_SUCCEEDED,
new Object[] { arg1, Integer.valueOf(arg2) }));
new Object[] { arg1, Integer.valueOf(arg2) }, transport));
}
// documentation inherited
@Override // from InvocationMarshaller
public void dispatchResponse (int methodId, Object[] args)
{
switch (methodId) {
@@ -70,7 +72,9 @@ public class TestMarshaller extends InvocationMarshaller
}
}
// documentation inherited
/**
* Marshalls results to implementations of {@link TestOidListener}.
*/
public static class TestOidMarshaller extends ListenerMarshaller
implements TestOidListener
{
@@ -78,16 +82,16 @@ public class TestMarshaller extends InvocationMarshaller
* responses. */
public static final int GOT_TEST_OID = 1;
// documentation inherited from interface
// from interface TestOidMarshaller
public void gotTestOid (int arg1)
{
_invId = null;
omgr.postEvent(new InvocationResponseEvent(
callerOid, requestId, GOT_TEST_OID,
new Object[] { Integer.valueOf(arg1) }));
new Object[] { Integer.valueOf(arg1) }, transport));
}
// documentation inherited
@Override // from InvocationMarshaller
public void dispatchResponse (int methodId, Object[] args)
{
switch (methodId) {
@@ -106,7 +110,7 @@ public class TestMarshaller extends InvocationMarshaller
/** The method id used to dispatch {@link #getTestOid} requests. */
public static final int GET_TEST_OID = 1;
// documentation inherited from interface
// from interface TestService
public void getTestOid (Client arg1, TestService.TestOidListener arg2)
{
TestMarshaller.TestOidMarshaller listener2 = new TestMarshaller.TestOidMarshaller();
@@ -119,7 +123,7 @@ public class TestMarshaller extends InvocationMarshaller
/** The method id used to dispatch {@link #test} requests. */
public static final int TEST = 2;
// documentation inherited from interface
// from interface TestService
public void test (Client arg1, String arg2, int arg3, ArrayList<java.lang.Integer> arg4, TestService.TestFuncListener arg5)
{
TestMarshaller.TestFuncMarshaller listener5 = new TestMarshaller.TestFuncMarshaller();
@@ -128,5 +132,4 @@ public class TestMarshaller extends InvocationMarshaller
arg2, Integer.valueOf(arg3), arg4, listener5
});
}
}
@@ -2,7 +2,7 @@
// $Id$
//
// Narya library - tools for developing networked games
// Copyright (C) 2002-2006 Three Rings Design, Inc., All Rights Reserved
// Copyright (C) 2002-2008 Three Rings Design, Inc., All Rights Reserved
// http://www.threerings.net/code/narya/
//
// This library is free software; you can redistribute it and/or modify it
@@ -25,14 +25,12 @@ import com.threerings.presents.client.TestService;
import com.threerings.presents.data.ClientObject;
import com.threerings.presents.data.InvocationMarshaller;
import com.threerings.presents.data.TestMarshaller;
import com.threerings.presents.server.InvocationDispatcher;
import com.threerings.presents.server.InvocationException;
import java.util.ArrayList;
/**
* Dispatches requests to the {@link TestProvider}.
*/
public class TestDispatcher extends InvocationDispatcher
public class TestDispatcher extends InvocationDispatcher<TestMarshaller>
{
/**
* Creates a dispatcher that may be registered to dispatch invocation
@@ -43,13 +41,14 @@ public class TestDispatcher extends InvocationDispatcher
this.provider = provider;
}
// documentation inherited
public InvocationMarshaller createMarshaller ()
@Override // documentation inherited
public TestMarshaller createMarshaller ()
{
return new TestMarshaller();
}
@SuppressWarnings("unchecked") // documentation inherited
@SuppressWarnings("unchecked")
@Override // documentation inherited
public void dispatchRequest (
ClientObject source, int methodId, Object[] args)
throws InvocationException
@@ -2,7 +2,7 @@
// $Id$
//
// Narya library - tools for developing networked games
// Copyright (C) 2002-2006 Three Rings Design, Inc., All Rights Reserved
// Copyright (C) 2002-2008 Three Rings Design, Inc., All Rights Reserved
// http://www.threerings.net/code/narya/
//
// This library is free software; you can redistribute it and/or modify it
@@ -23,8 +23,6 @@ package com.threerings.presents.server;
import com.threerings.presents.client.TestService;
import com.threerings.presents.data.ClientObject;
import com.threerings.presents.server.InvocationException;
import com.threerings.presents.server.InvocationProvider;
import java.util.ArrayList;
/**