Commit Graph

166 Commits

Author SHA1 Message Date
Par Winzell 6f7c9831d8 Comment tweak.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5940 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-09-09 14:50:30 +00:00
Ray Greenwell bf5d3c666f Avast, thar be bugs here too.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5936 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-08-30 00:37:08 +00:00
Mike Thomas 5099dc9d96 Mark run() as an override since it is.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5895 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-08-04 18:23:55 +00:00
Michael Bayne c3e31440ab Comment some fiddliness.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5894 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-08-04 16:48:21 +00:00
Michael Bayne 9ce8a7ac71 Moved our peer-aware cron service into Presents from MSOY.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5893 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-08-01 23:01:40 +00:00
Michael Bayne c0c68f98d3 Added RootDObjectManager.newInterval() for creating intervals that are
automatically canceled when the omgr is shutdown (they actually cancel
themselves if they fire after the omgr has been shutdown, which stock intervals
also do, but these guys do so quietly because we know they mean to work that
way).

Made use of that new method and the fluent schedule methods in various places.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5880 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-07-20 22:43:00 +00:00
Dave Hoover 57b630727e Unused import
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5879 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-07-20 21:37:15 +00:00
Michael Bayne db2ef0f8f0 Judging by this method from RMISynchronousCacheReplicator:
static List listRemoteCachePeers(Ehcache cache) {
        CacheManagerPeerProvider provider =
        cache.getCacheManager().getCacheManagerPeerProvider("RMI");
        return provider.listRemoteCachePeers(cache);
    }

we need to return "RMI" from getScheme(). Zell can confirm that we are meant to
work with the RMISynchronousCacheReplicator but the repeated freakoutey stack
traces in the log incline me to believe so.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5878 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-07-18 00:55:50 +00:00
Michael Bayne 7e8a42487d Only return cache information on the cache requested.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5877 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-07-17 22:26:57 +00:00
Ray Greenwell b4599943c8 Bugfix: return to correct functioning behavior, with added
functional fun, which is what mdb probably intended.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5873 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-07-14 20:36:14 +00:00
Dave Hoover ef600104e4 Unused import patrol
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5872 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-07-13 17:22:04 +00:00
Michael Bayne 231edfa66e applyToNodes() is superfluous now that we have getNodeObjects().
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5869 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-07-13 00:59:32 +00:00
Michael Bayne 047dd3b871 Sprinkled some functional programming onto node object handling.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5868 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-07-13 00:55:03 +00:00
Michael Bayne 9cdd93ee11 Publish our server startup time in our NodeObject.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5867 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-07-13 00:34:19 +00:00
Michael Bayne 08292eec9e Ehcache 1.6.0 requires an implementation of getScheme(). I'm not 100% clear
what this is meant to do, but I'll sort that out once I have it up and running.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5845 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-07-02 20:59:04 +00:00
Michael Bayne 97befada23 We can just inject the injector.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5843 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-07-01 19:02:45 +00:00
Michael Bayne 7efa2c74a7 Tidy up name handling a bit more: when setUsername() is called on a
PresentsSession, we don't need to or want to change our auth name, we can and
should operate entirely on ClientObject.username. The ClientManager maintains
two mappings: "current username" -> ClientObject (which is what needs to change
when setUsername or updateUsername is called) and "authname" -> PresentsSession
which has always been just the authname and has never changed during the course
of a session.  PresentsSession.getUsername() goes away and
PresentsSession.getAuthName() always returns the name that was used to
authenticate the session.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5838 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-06-23 06:20:31 +00:00
Michael Bayne 2c2e28f5ed Move our EHCache peer coordinator down here where other projects can use it.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5835 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-06-22 22:10:34 +00:00
Michael Bayne fcda0f3156 Added internal hostname reporting, documented other PeerNode methods.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5834 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-06-22 22:05:06 +00:00
Dave Hoover 7db51dafdb Mark overrides
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5831 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-06-22 17:36:32 +00:00
Michael Bayne 6e9077780c Added/updated source headers.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5829 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-06-20 21:09:34 +00:00
Michael Bayne a1aa2d77ae Revamping/cleanup of how we handle authentication usernames as well as chained
authenticators and chained session factories. We can share a lot more code this
way and the implicit requirement that the default authenticator/factory had to
be configured before anyone else configured a chanied author/factory is gone.

The other big change is that Credentials doesn't require a username
(UsernamePasswordCreds inherits that username so most derived classes don't
notice any difference). Instead we require that a canonical authentication
username be determined and configured in AuthingConnection during the
authentication process. This canonical username is then used to resolve the
client session and map everything in the client manager.

This is pretty much exactly what was going on before except that we were doing
it all in an ad hoc way by jamming a new name into Credentials during the
authentication process and also doing jiggery pokery in
PresentsSession.assignStartingUsername. That all goes away and/or becomes
cleaner and more explicit.

This is going to impact some Yohoho jiggery pokery, which I will shortly commit
a patch for, but we're going to need to test it. Omelets, eggs, etc.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5828 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-06-20 00:56:01 +00:00
Michael Bayne ae6535583a Use getKey() for updatePartial().
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5809 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-05-29 19:14:34 +00:00
Michael Bayne f565fa0e42 Update to match Depot API changes.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5808 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-05-29 00:19:32 +00:00
Michael Bayne 3f19fcacf2 Moved Lifecycle to samskivert (my initial desire to do this came from a
non-work project). I promise to stop fooling around now.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5805 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-05-27 19:16:49 +00:00
Michael Bayne e87c86dc2c Let's make the Lifecycle a bit more abstract and decouple it from all the
server business. I'd move the whole kit and kaboodle to samskivert but that
would mean moving the DependencyGraph as well...


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5804 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-05-27 19:09:47 +00:00
Michael Bayne 0a20b36c8e Out with ShutdownManager, in with LifecycleManager which handles both
initialization and shutdown. This will obviate the need for a lot of manual
wiring up. ShutdownManager still works and passes through to LifecycleManager,
but switching to the new deal is encouraged.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5802 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-05-27 18:32:45 +00:00
Dave Hoover e13aca6570 Prune trailing whitespace & foreachize loops.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5799 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-05-23 01:56:35 +00:00
Dave Hoover b222eed2fd A healthy dash of google-collections
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5798 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-05-23 01:04:08 +00:00
Michael Bayne a66c27a169 Track various peer stats.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5760 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-04-29 22:10:31 +00:00
Michael Bayne da4159c665 Switch to the ServerCommunicator. I'm sure it'll work just fine!
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5748 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-04-27 19:51:06 +00:00
Michael Bayne a2d6549121 Comment fix.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5747 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-04-27 19:48:00 +00:00
Jamie Doornbos e76d1a6610 Interesting... if the peer disconnects before the node object subscription completes, an NPE would fire... but could this have prevented a lock from being release. It doesn't seem likely since a lock probably can't be assigned until the subscription is complete anyway(?). But then again, maybe some information is passed prior to this. In any case, stop throwing an NPE here.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5723 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-04-16 17:12:15 +00:00
Ray Greenwell d1d6aa50d9 Unburden init() from things that can be injected.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5715 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-04-11 01:21:19 +00:00
Ray Greenwell 24760fa266 Create our PeerNode object through injection.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5714 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-04-11 01:12:16 +00:00
Ray Greenwell 18d36176a3 The PeerNode is the thing that calls clientLoggedOn/Off on the PeerManager,
so let's keep with that pattern for any clients there when the
peer itself connects or disconnects.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5713 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-04-10 22:25:35 +00:00
Michael Bayne 688f2580ed Varargified log calls.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5697 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-03-26 00:02:19 +00:00
Ray Greenwell 647a25dfdc Even better: have the base PeerManager call clientLoggedOn and clientLoggedOff
for every client on another node when it connects or disconnects from that node.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5696 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-03-25 23:10:02 +00:00
Michael Bayne dec9e7ee70 Execute clearClientInfo() in a transaction on NodeObject so that when derived
classes naturally remove extra crap from the NodeObject as a result of the
client departing this node, it all goes out in a single event. Cross-server
traffic-- go!


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5684 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-03-11 19:27:33 +00:00
Michael Bayne 4a7cb2c82f Rethink! Instead of hacking up the peer ClientInfo system for the one thing
that actually needs to look clients up by visible name (chat forwarding), we'll
just leave things as is (as in mapped by auth username) and take care of our
own shit in ClientPeerManager.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5683 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-03-11 17:47:35 +00:00
Michael Bayne 65f4810832 Nixed unused import.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5649 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-02-03 01:43:14 +00:00
Ray Greenwell b2b8f57454 - Monitor logins to other nodes, boot any local sessions with the same
authentication name.
- Use new (ca. 2002) pattern of creating an overridable listener,
rather than making the whole class a listener.

Mdb told me to add this at the msoy level, but I think it belongs here.
Presents simply expects a user to be in one place.

It also occurs to me that we probably want something more sophisticated:
there may be unpersisted data connected to the session that should
be flushed prior to the session starting on another node. We may
want something like a lock when users log-in, so that other nodes
can terminate the session and flush any persistent data FIRST.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5635 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-01-15 23:19:02 +00:00
Michael Bayne 96fb4752b3 Make it easy to determine how many (if any) nodes on which your function was
called.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5631 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-01-10 22:51:26 +00:00
Michael Bayne 991b9a9ffc Updated to new Depot world order.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5625 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-01-08 02:10:25 +00:00
Par Winzell 09850202a8 The signature of findAll() has changed.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5624 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-01-07 19:32:59 +00:00
Michael Bayne 46a5bbd0cc Don't cache our nodes query. We always want the latest and the freshest.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5571 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-12-02 21:58:50 +00:00
Michael Bayne 14307d7292 Break out communicator creation into an overridable method temporarily.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5569 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-26 23:57:17 +00:00
Michael Bayne 457c8a59d6 Allow reporters to be registered for different report types and the type to be
specified at report generation time.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5564 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-19 19:53:46 +00:00
Michael Bayne 9a67119557 Added type to generateReport().
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5563 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-19 19:43:36 +00:00
Michael Bayne 034284e103 Tuple.create -> Tuple.newTuple.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5559 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-18 21:15:43 +00:00