b4e8609a95
PresentsConnection does not check that its handler is non-null before processing messages, so let's put a (logging) NOOP handler in place when we disconnect it from the PresentsSession.
Michael Bayne
2011-04-20 23:31:49 +00:00
69f8f4ef88
Break sendSpeak out into a separate method so that we can override it.
Andrzej Kapolka
2011-04-20 23:30:12 +00:00
ca82921db0
Clear the handler reference when we replace the connection. For some reason, it seems like we're still getting messages from old connections.
Andrzej Kapolka
2011-04-20 04:56:48 +00:00
179bd880c6
I was wondering why the connection ids were all over the place.
Andrzej Kapolka
2011-04-20 03:20:14 +00:00
2a5da18f20
Allow customizing the ServerSocketChannelAcceptor to configure the socket differently (specifically, we want to enable SO_REUSEADDR in Spiral Knights).
Andrzej Kapolka
2011-04-12 01:23:53 +00:00
b37c054873
OK, we have to recompile against samskivert 1.4-SNAPSHOT because add(index,observer) used to return void and now it returns boolean. Really I'd rather add(index,observer) and add(observer) both returned void and threw an exception if a duplicate was detected (because wtf are you doing?), but Collection dictates a signature of boolean add (elem) and if I changed that, then *everybody* would need to recompile. Sigh. We'll just suck it up and leave add(i,o) consistent with add(o) and have Narya rebuild agains the latest bytecode.
Michael Bayne
2011-04-10 21:24:22 +00:00
0e289a295b
Not needed.
Michael Bayne
2011-04-10 19:51:48 +00:00
aa55ea4c17
Guava r09.
Ray Greenwell
2011-04-10 19:39:42 +00:00
23dd064230
Latest samskivert. Just trying to make everything work...
Ray Greenwell
2011-04-10 19:36:43 +00:00
7d9366a0d2
Add isEmpty so I don't keep fucking up when I assume DSet is a Collection
Charlie Groves
2011-04-09 01:31:23 +00:00
018823edf6
I'm having a devil of a time figuring out why there are still subscriptions lying around when the client reconnects. Let's try just clearing them out again on resumption.
Andrzej Kapolka
2011-04-08 03:30:13 +00:00
0765897bcc
We're getting datagram PONGs on resumed connections that haven't yet sent datagram PINGs. Let's make sure that the connection to which we're sending the pong is the same one from which we received the ping. Ping, pong, ping, pong.
Andrzej Kapolka
2011-04-08 02:38:49 +00:00
afe0589baf
Removed ancient vestigial templates.
Michael Bayne
2011-04-07 21:42:32 +00:00
b74952a097
Allow final classes to be streamed too
Jamie Doornbos
2011-04-07 04:42:14 +00:00
807111d985
InvocationResponseEvent is no longer used for listeners
Charlie Groves
2011-04-07 00:49:13 +00:00
300df7a843
Reference the proper packages here.
Michael Bayne
2011-04-06 21:56:45 +00:00
9647820534
Details on our numerous artifacts.
Michael Bayne
2011-04-06 21:56:30 +00:00
9890b968e6
Added link to javadocs.
Michael Bayne
2011-04-06 21:56:18 +00:00
20ded3bd14
Properly format them links.
Michael Bayne
2011-04-06 21:56:02 +00:00
79b272a8ab
Out with the old.
Michael Bayne
2011-04-06 21:55:43 +00:00
4257b389bc
Updated to reflect new public home.
Michael Bayne
2011-04-06 21:55:31 +00:00
a5ad43c237
Brought the README out of the stoneage, Markdownified.
Michael Bayne
2011-04-06 21:55:18 +00:00
e318cd6697
Oops, SimpleStreamableObject handles toString.
Andrzej Kapolka
2011-04-06 03:02:25 +00:00
cd63a86bff
This got skipped when Tuple<String, Integer> became DObjectAddress, leaving us with lots of "Requested to clear unknown proxy" warnings in Spiral Knights.
Andrzej Kapolka
2011-04-06 02:59:54 +00:00
f3d6712cd2
Fixed some more eol issues. genservice and gendobj work for me now.
Jamie Doornbos
2011-04-05 23:33:29 +00:00
c5a098119f
Use the convenience creation methods on ObserverList
Charlie Groves
2011-04-05 21:01:02 +00:00
ddb30e640e
Allow session observers to hook into the part of the session lifecycle before the session subclasses start nuking things, but once it is known that it will end.
Jamie Doornbos
2011-04-05 17:46:29 +00:00
1d3b40c4dc
Various generics/typesafety bits.
Mike Thomas
2011-04-05 17:35:59 +00:00
d076ff4bb7
Missing @Overrides
Mike Thomas
2011-04-05 17:15:13 +00:00
cae3a3f1b9
Support converstion of java enum to com.threerings.util.Enum as part of actionscript streamable conversion.
Jamie Doornbos
2011-04-04 21:11:58 +00:00
7120c9c292
Fixed conflict in generated source merge when using native eol-styles by allowing an optional CR before the LF ($ here did not work for some reason)
Jamie Doornbos
2011-04-04 20:15:48 +00:00
dfe51acd4b
Join our big brother on the new bleeding edge.
Michael Bayne
2011-04-04 04:53:10 +00:00
fc5265b860
A 1.8 release of these artifacts, which only go to OOO's Maven Repository, to go along with the public release I just did to Maven Central of the main jar artifact.
Michael Bayne
2011-04-04 04:17:32 +00:00
fe473b8446
[maven-release-plugin] prepare for next development iteration
Michael Bayne
2011-04-04 04:12:20 +00:00
4f6f789e0d
[maven-release-plugin] prepare release narya-1.8
Michael Bayne
2011-04-04 04:12:00 +00:00
8725eaf8f9
Use stable 1.3 samskivert.
Michael Bayne
2011-04-04 04:09:54 +00:00
bc4c9224ec
Added some scaffolding for testing peer related stuffs.
Michael Bayne
2011-04-03 22:49:46 +00:00
560fd59f26
Put bootstrap.xml in etc with all of our other misfit .xml files.
Michael Bayne
2011-04-03 16:35:56 +00:00
8c740b8353
Decided to switch to using setOld{Entry|Value} instead of having two constructors. Fixed ElementUpdatedEvent along the way.
Michael Bayne
2011-04-02 23:25:10 +00:00
03576f00ee
I certainly shouldn't have said that it was illegal! Gah, it's too hot today.
Michael Bayne
2011-04-02 06:07:48 +00:00
871409e060
The zero arg ctor must be public, and I'm making the other ctor public because it's totally wacky to have the ctor you shouldn't use, be public, and the one you should, not.
Michael Bayne
2011-04-02 05:24:35 +00:00
17dc26fe52
More hackery preservation.
Michael Bayne
2011-04-02 04:04:00 +00:00
63c967d8d2
We can't allow the primary ctor to be called for EntryUpdated/RemovedEvent because that will overwrite the hackery we do with _oldEntry. Oh hackery, how we love you so.
Michael Bayne
2011-04-02 04:02:12 +00:00
12b8aa0a2a
We should be on guava r08. Unless this breaks something.... then it's mike's fault.
Ray Greenwell
2011-04-02 01:26:39 +00:00
b85a7d71a5
Fiddlesticks. We can't keep the deprecated constructor in here because that breaks streaming. Everyone will have to regenerate their services. Sorry! If only I hadn't hardcoded the insertion of the constructor in the first place, this would have all been nicely behind an abstraction boundary. It will be once the services are regenerated.
Michael Bayne
2011-04-02 01:03:07 +00:00
1203c59588
Added a static method for concise condition requirey in invocation services.
Michael Bayne
2011-04-02 00:48:01 +00:00
248795ba57
Handle service methods with forall types.
Michael Bayne
2011-04-02 00:47:50 +00:00
fc7706c79d
Get the transport specification out of the construction path, since it's not a streamed property of the event. It turns out to be cleaner to just set it in the places where we know that we want a specific transport anyway.
Michael Bayne
2011-04-02 00:01:46 +00:00
22330e955b
The CompoundEvent needs a zero-arg ctor, as its non-zero-arg ctor does lots of crazy stuff.
Michael Bayne
2011-04-01 23:22:10 +00:00
96b7feb7f2
Keerist, that doesn't even compile. I'll let mdb sort this out.
Ray Greenwell
2011-04-01 23:17:00 +00:00
21105cb8fa
Thumper's mom's advice is echoing through my head right now.
Ray Greenwell
2011-04-01 23:14:01 +00:00
e3d0a81a2c
Ray has convinced me that the zero-args constructor is less weird. Though I think that's probably just because we're used to it.
Michael Bayne
2011-04-01 22:32:37 +00:00
eb37356f0c
I'm not sure what's worse, a weird extra constructor for use when unserializing, or a weird alternative code path in the main constructor when unserializing.
Michael Bayne
2011-04-01 22:19:06 +00:00
b986464ee7
Take advantage of our new "one constructor to rule them all" capabilities in various base classes. This allows us to use final fields in some cases, which I've done (though our naughty penchant for mutation forced me to roll back a bunch of other spots where I would have liked to make fields final).
Michael Bayne
2011-04-01 22:06:42 +00:00
61de392df9
If we find our zero args constructor, we're done. Don't let our eyes wander over to those other luscious constructors.
Michael Bayne
2011-04-01 22:04:05 +00:00
56eeeb128d
Allow any Streamable class to use the "we'll call your single non-zero-argument constructor with zero/null values and then overwrite any fields initialized with them immediately afterward" approach. If a Streamable has a zero-args constructor, that is still used, so all the existing Streamable classes will still function exactly as before. But new classes (or old classes undergoing scrutiny) can opt to reduce their boilerplate as long as they know they cope with the zero/null-valued constructor call.
Michael Bayne
2011-04-01 21:34:01 +00:00
57d5d4ef0b
As with the messages, turn this into a method so that we can override it.
Andrzej Kapolka
2011-03-31 23:25:07 +00:00
301cd0d885
Changed the way that peer messages sent/received are tracked so that we can customize the tracking in a subclass.
Andrzej Kapolka
2011-03-31 21:00:57 +00:00
af239ad733
Remove some @Overrides that were for things that were implementing an interface method, not overriding a base class method - this is a 1.6ism. Also, add some @Overrides that were missing on things that were overriding a base class method.
Mike Thomas
2011-03-31 18:28:32 +00:00
b42af5855f
Instead of forcing PeerManager's view of the architecture (that peer stuff shall be accessed via the Main Invoker) on the developer, let's mark the peer invoker uniquely so that it can be run elsewhere. In order to maintain backwards compatibility, this got a little weird in the organization of PresentsModule doing its default binding. If the new binding went in bindInvokers() where it theoretically belongs, anyone who is already overriding bindInvokers() (and not calling super, cuz this is how things work) would not be binding PeerInvoker at all and would be confused.
Mike Thomas
2011-03-31 18:07:15 +00:00
5d4ed6636b
Resulting, from projectx. RFC. I realize I need to add a lot of examples to the documentation. The biggest win here is only needing to learn the ins and outs of this one class, and using it everywhere for your listening/chaining needs.
Ray Greenwell
2011-03-31 00:09:14 +00:00
194664eea9
Need to copy the value, not the reference, for peerMessagesIn.
Andrzej Kapolka
2011-03-30 22:26:05 +00:00
c2b21f83fa
Just fixing some comments that confused me a little
Jamie Doornbos
2011-03-30 17:52:27 +00:00
7888fa376e
No-op tweak.
Ray Greenwell
2011-03-30 04:12:00 +00:00
56155507d8
At some point a blank initializer snuck in here, wearing the camouflage of being an empty method body.
Ray Greenwell
2011-03-30 03:54:56 +00:00
a36030d8a5
Charlie's change violates the new design, which is that we figure out how we're going to stream a class and then create the right streamer for it. Using the ClassStreamer for an interface and then not doing any of the ClassStreamer stuff means: don't use a ClassStreamer.
Ray Greenwell
2011-03-30 03:53:17 +00:00
0f5bc2e813
Added a test for an array of an interface that is Streamable.
Ray Greenwell
2011-03-30 03:47:28 +00:00
cacd08b3fd
If there's an array of an interface that implements Streamable on a Streamable, we created a Streamer for it. We throw a RuntimeException when we don't find a constructor, so skip our init in creating Streamers for interfaces
Charlie Groves
2011-03-30 02:54:47 +00:00
d4b2999c91
Initialize our constructor separately from our marshallers, so that sneaky classes that rely on the marshallers never being initialized don't break.
Michael Bayne
2011-03-30 01:17:39 +00:00
54c8226ea2
As Andrzej points out, this injected member should be transient. But oddly, the original source code did not list it as such:
Michael Bayne
2011-03-30 00:53:02 +00:00
8f5af330c6
Let's do this delayed marshaller initialization slightly differently, so that only CustomClassStreamer needs to know about it.
Michael Bayne
2011-03-30 00:45:38 +00:00
d0bc9da2b5
Calling createObject requires initialization, else we get an NPE.
Andrzej Kapolka
2011-03-30 00:38:27 +00:00
c55279a211
Converted some static inner classes into anonymous inner classes, yielding improvement in locality of code and reduction in LOC.
Michael Bayne
2011-03-30 00:32:47 +00:00
b759128425
With a magestic legacy as long and historied as Presents, nothing is ever easy. We need to support legacy closures that have multiple constructors, one of which will be a zero-argument constructor. All of the existing static inner classes that extend NodeAction/NodeRequest will be such legacy classes. Whee!
Michael Bayne
2011-03-30 00:14:22 +00:00
73ef57ecc9
Guava: there's a class for that.
Ray Greenwell
2011-03-30 00:01:48 +00:00
87c36ebf67
Improvements in comments.
Michael Bayne
2011-03-29 23:56:36 +00:00
3291089b8c
Jumped the gun there a little. We need to be sure not to filter out the synthetic val$local fields that get inserted, only the this$outer field. And we need to pass "zero" values for val$ fields to the synthesized constructor.
Michael Bayne
2011-03-29 23:55:11 +00:00
10bea22f14
Made our node action and request into streamable closures, and removed the warning about having to extend them with static inner classes.
Michael Bayne
2011-03-29 23:30:23 +00:00
064fbe425a
Added support for "streamable closures". The idea with these are that the streaming mechanism will quietly gloss over the funny little outer class reference stuffed into your closure as long as you promise not to use it (because it's going to be null on the other side of the wire).
Michael Bayne
2011-03-29 23:28:26 +00:00
7c07bfcedc
register() already puts our mapping in the _handlers table.
Michael Bayne
2011-03-29 20:02:00 +00:00
6dc165f911
Fixed misplaced parenthesis.
Andrzej Kapolka
2011-03-23 02:12:36 +00:00
34f0f9ab8d
Unused imports
Charlie Groves
2011-03-23 01:46:55 +00:00
94c89e390c
Include the longest elapsed time in the profile (not too useful if you profile from the beginning, but useful if you clear the profiles in order to record over a brief interval).
Andrzej Kapolka
2011-03-23 01:40:08 +00:00
a1013e66bf
Provide a means of setting the unit profile sampling frequency.
Andrzej Kapolka
2011-03-22 22:36:34 +00:00
e9bbdd2c4b
Use the getIntervalClassName method to identify intervals that have been cancelled.
Andrzej Kapolka
2011-03-22 22:24:34 +00:00
74b598fc02
Add a main to PolicyServer that binds on the master port by default
Charlie Groves
2011-03-22 07:09:43 +00:00
c4a53bbbaa
Explicitly handle the other cases of the enum in the switch so it's clear we mean to do nothing.
Mike Thomas
2011-03-18 21:41:42 +00:00
30b04ce54e
Revert relationship bits on consultation with MDB.
Andrzej Kapolka
2011-03-17 23:10:52 +00:00
a7c4b2a949
- Allow you to optionally reload the global messages bundle when changing your locale
Mark Johnson
2011-03-17 01:33:53 +00:00
fccd605b9f
The very beginnings of support for different peer topologies: instead of having every node connect to every other, we want to support having (for example) nodes connect to a "super-peer" that distributes updates to its children.
Andrzej Kapolka
2011-03-17 00:54:24 +00:00
03e58a28e1
We register as a client observer when we start up; we need to remove ourselves when we shut down.
Andrzej Kapolka
2011-03-15 23:48:36 +00:00
a1398a7d65
We should probably have a gencheck on the CPP files as well.
Michael Bayne
2011-03-15 18:21:55 +00:00
a3c0b0bbdd
Put our headers on the CPP files as well. This also fixes a problem where the headers on the associated Java files were being stripped.
Michael Bayne
2011-03-15 18:20:17 +00:00
217927de2b
A variety of javadoc fixes.
Michael Bayne
2011-03-15 18:17:09 +00:00
0a15a1e09a
Avoid generating {@link Outer.Inner}, as Javadoc does not support such links. Bug 4464323 was filed 10 years ago, bringing this to Sun's attention, and has been acknowledged as a known bug. Apparently this has not annoyed anyone on the Java team enough to merit fixing. Sigh.
Michael Bayne
2011-03-15 17:50:09 +00:00
de7254ac5b
These need to reference built.classpath as there is no longer a compile.classpath.
Michael Bayne
2011-03-15 17:42:30 +00:00
b205f60d1c
Use the hostname stored in the Client rather than the IP address in case we're using a proxy, in which case we'll send the non-proxy hostname in the bootstrap data.
Andrzej Kapolka
2011-03-10 23:18:22 +00:00
4acf173bf3
Clarify.
Ray Greenwell
2011-03-09 04:10:29 +00:00
fb39890cbd
Refine and elaborate this warning message.
Ray Greenwell
2011-03-08 22:36:39 +00:00
5a3f7bbdc7
Tidy this up by making it recursive. Deeply multidimensional arrays are rare.
Ray Greenwell
2011-03-08 22:30:19 +00:00