extending systems and depended upon by services that need to lookup bodies.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5212 542714f4-19e9-0310-aa3c-eee0fc999fb1
downcast every time we register an invocation service provider.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5201 542714f4-19e9-0310-aa3c-eee0fc999fb1
Thread.dumpStack() which goes directly to stderr rather than through the
logging system.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5198 542714f4-19e9-0310-aa3c-eee0fc999fb1
If the arg specified is null, do not wrap it into an array! It prevents you
from being able to call a function and falling back to the default value
for the argument. Instead, only wrap non-null.
If you really do want to pass null as your arg, you'll have to wrap it in
an array.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5197 542714f4-19e9-0310-aa3c-eee0fc999fb1
TODO: provide a convertAllLangTypes method instead of adding new types as they crop up
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5189 542714f4-19e9-0310-aa3c-eee0fc999fb1
I myself couldn't even remember and had to trace through code.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5179 542714f4-19e9-0310-aa3c-eee0fc999fb1
Place manager delegates now store their own references to the omgr and invmgr
and set the members via the init function. This is fine, but due to the order
of calling PlaceManager's init and addDelegate, the PlaceManagerDelegate.init
was receiving null values.
The fix is to provied a more consistent guarantee about the relationship
between init and addDelegate. After both have been called (regardless of
order), we guarantee that both init and didInit have been called on all
delegates.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5177 542714f4-19e9-0310-aa3c-eee0fc999fb1
bind something to PeerManager.class will result in initialization failure.
A system that uses the peer services needs to extend PeerManager or
CrowdPeerManager with a concrete PeerManager and then
bind(PeerManager.class).to(SomePeerManager.class) to properly satisfy the
dependency.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5171 542714f4-19e9-0310-aa3c-eee0fc999fb1
dependencies into both. Moved the legacy statics into CrowdServer so that at
least Presents can be pure (we should probably eventually move them into
BangServer and PiracyServer and fix everything else). Added some useful manager
references to PlaceManager delegate (_omgr, _invmgr) that handle the majority
of their service needs.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5170 542714f4-19e9-0310-aa3c-eee0fc999fb1
because we want to follow that pattern in all of our games.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5169 542714f4-19e9-0310-aa3c-eee0fc999fb1
LocationProvider can be an interface like its brothers and sisters.
Modified the place registry to create PlaceManager instances using the injector
so that we can inject dependencies into managers. Also modified the custom
classloader functionality so that it can/will circumvent this process
entirely. It's not possible to inject using a custom classloader and one
certainly would not want to do so.
Unfortunately this means we can't inject some basic managers into PlaceManager
because it needs to work for games loaded into a sandboxed classloader, but the
big win is that in everything other than GameManager and PlaceManager, we can
inject to our heart's content.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5168 542714f4-19e9-0310-aa3c-eee0fc999fb1
More dependency injection (or removal in the case of SpeakUtil).
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5163 542714f4-19e9-0310-aa3c-eee0fc999fb1
- Inject the auth Invoker.
- Inject the Authenticator and formalize the chaining authenticator pattern.
- Simplify PeerNode creation and make the PeerAuthenticator a chainer.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5162 542714f4-19e9-0310-aa3c-eee0fc999fb1