Commit Graph

6343 Commits

Author SHA1 Message Date
Charlie Groves edf6dccdf7 Generate OidList signals for actionscript
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6418 542714f4-19e9-0310-aa3c-eee0fc999fb1
2011-01-06 09:08:24 +00:00
Andrzej Kapolka 2572112560 Need to splice the arguments, too.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6417 542714f4-19e9-0310-aa3c-eee0fc999fb1
2011-01-06 03:30:51 +00:00
Andrzej Kapolka 5a66c46308 Yeah, thanks for that.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6416 542714f4-19e9-0310-aa3c-eee0fc999fb1
2011-01-06 03:25:09 +00:00
Tom Conkling 0dae31b2c9 ActionScript DObjects dispatch a signal when they receive a MessageEvent
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6415 542714f4-19e9-0310-aa3c-eee0fc999fb1
2011-01-05 23:49:45 +00:00
Andrzej Kapolka f9ce9f6939 On second thought, let's configure the standalone client reference via an
optional injection.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6414 542714f4-19e9-0310-aa3c-eee0fc999fb1
2011-01-05 02:03:25 +00:00
Andrzej Kapolka 0c28d31357 Initializing the invocation director reference on deserialization doesn't work
well in standalone mode.  We need a way to install a director on registration.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6413 542714f4-19e9-0310-aa3c-eee0fc999fb1
2011-01-05 01:32:13 +00:00
Tom Conkling 68aba0e92a Add a mapping from java.lang.Cloneable -> com.threerings.util.Cloneable
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6412 542714f4-19e9-0310-aa3c-eee0fc999fb1
2011-01-05 00:21:16 +00:00
Andrzej Kapolka 49c6511fd1 Because getInterfaces only returns the interfaces implemented by the class
(not by its superclasses), we need to rise through its superclasses as well
in order to find the provider interface.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6411 542714f4-19e9-0310-aa3c-eee0fc999fb1
2011-01-04 22:46:22 +00:00
Mike Thomas 6cba470736 These override their superclass, so annotate as such.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6410 542714f4-19e9-0310-aa3c-eee0fc999fb1
2011-01-04 19:35:43 +00:00
Ray Greenwell bfd1f79107 Bugfix: we need to examine methods from superclasses as well.
ProjectXZoneRegistry extends a class that is a ZoneProvider...


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6409 542714f4-19e9-0310-aa3c-eee0fc999fb1
2011-01-03 21:17:55 +00:00
Andrzej Kapolka 55d1df93a1 Avoid ArrayIndexOutOfBoundsException.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6408 542714f4-19e9-0310-aa3c-eee0fc999fb1
2011-01-01 21:52:23 +00:00
Dave Hoover 02899d1083 Auld Lang Syne
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6407 542714f4-19e9-0310-aa3c-eee0fc999fb1
2011-01-01 05:02:21 +00:00
Michael Bayne f43c511436 No longer need to generate dispatchers. I'll leave the code here for the
time being.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6406 542714f4-19e9-0310-aa3c-eee0fc999fb1
2011-01-01 01:33:07 +00:00
Michael Bayne 97be2d9fc7 These guys are no longer needed.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6405 542714f4-19e9-0310-aa3c-eee0fc999fb1
2011-01-01 01:32:34 +00:00
Michael Bayne f8c7241f9f Switched providers to new dynamic dispatching.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6404 542714f4-19e9-0310-aa3c-eee0fc999fb1
2011-01-01 01:31:20 +00:00
Michael Bayne 5a67aa906b A while ago, I put on my todo list: "look into changing InvocationService to
use JVM generated proxies, nix marshaller/dispatcher."

The idea was to use Proxy.newProxyInstance to magically create (at runtime)
proxies for FooService interfaces instead of generating a bunch of boilerplate
code. I figured something similar could be done for FooDispatcher on the server
side.

However, we also generate C++ and ActionScript marshallers, and those aren't
ever going away (AS might support some sort of dynamic magic to do what we
need, but C++ sure don't). So I decided to leave the marshaller side of things
as is.

I did revamp the dispatcher side of things to eliminate the need for
FooDispatcher on the server. This turned out not to even require the use of
something so magical as java.lang.reflect.Proxy, because in this case we're
just reading in method ids over the network (and arguments), and calling the
appropriate method. Such mundane activities are easily accomplished with the
regular reflection API.

The existing dispatcher stuff still works as well, of course, and though the
conversion from the old style to the new style is pretty simple:

< invmgr.registerDispatcher(new FooDispatcher(fooprov))
> invmgr.registerProvider(fooprov, FooMarshaller.class)

there's no burning need to convert things over. Fortunately, there's no
(compatibility) impact on client projects to converting Narya and Vilya, so
I'll be doing that shortly. There will be a miniscule performance impact, but I
think the cost of a single reflective method call, given that all of its
arguments were read and unmarshalled from the network, will be a good distance
south of immaterial.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6403 542714f4-19e9-0310-aa3c-eee0fc999fb1
2011-01-01 01:29:26 +00:00
Michael Bayne 1db66920d2 Deprecated DSet.toArray. Pretending like arrays are parameterized collections
is a bad idea and will lead to pain. Nixed the one place where toArray was used
(which was a serous pig's breakfast itself).


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6402 542714f4-19e9-0310-aa3c-eee0fc999fb1
2011-01-01 01:15:33 +00:00
Michael Bayne 328ff30506 Marshaller no longer needs Client import.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6401 542714f4-19e9-0310-aa3c-eee0fc999fb1
2010-12-31 22:42:45 +00:00
Michael Bayne 127e388349 Unused import nixage.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6400 542714f4-19e9-0310-aa3c-eee0fc999fb1
2010-12-31 22:36:46 +00:00
Michael Bayne 90c6429070 Missed a spot.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6399 542714f4-19e9-0310-aa3c-eee0fc999fb1
2010-12-31 22:32:15 +00:00
Michael Bayne e80409a7f4 Updated to use new Client-reference-free style.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6398 542714f4-19e9-0310-aa3c-eee0fc999fb1
2010-12-31 22:28:21 +00:00
Michael Bayne b60112ae93 Some fiddling to keep the CPP bits in sync as well.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6397 542714f4-19e9-0310-aa3c-eee0fc999fb1
2010-12-31 22:27:51 +00:00
Michael Bayne 5d2852544b Generate our test service(s) as well.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6396 542714f4-19e9-0310-aa3c-eee0fc999fb1
2010-12-31 22:17:00 +00:00
Michael Bayne 36a98f8794 Removed the need to supply a Client reference when making invocation service
calls on the Java side, to match this added convenience we introduced to the
ActionScript side some time ago.

Before arms are raised into the air and waved like they really do care, bear
the following in mind:

Nothing will change at all on your project until you take some action to do so.
That action could include any of the following:

1. Continue to use narya-tools-1.2 to run genservice and you'll get the old
style "pass a Client reference for every service method invocation" marshallers
and you can continue to live happily in the past.

2. Leave some of your stuff un-regenerated, but generate new stuff using the
new tools and use the Client-reference-free style for new services. This is
likely to engender some PITA if you're trying to use both styles in the same
project because genservice just wants to operate on everything, but I offer it
as an option in case some other PITA motivates the tolerance of this
(presumably smaller) PITA.

3. Embrace the brave new world of simplicity and wield your good friend sed for
fun and profit:

(make necessary build.xml updates to start using narya-tools-1.4-SNAPSHOT)

% find src -name '*Service.java' | xargs sed -i 's:Client client, ::g'
(this will remove the Client argument from most of your services, some manual
fixes may be needed)

% ant genservice

% find src -name '*.java' | xargs sed -i 's:_ctx.getClient(), ::g'
(this will fix most of the places that pass a client reference into an
invocation service, some manual fixes will probably be needed)

I did this on Vilya and it magically took care of like 95% of the places where
changes were needed. The remaining half dozen changes were painless. Clearly
something like Yohoho vastly dwarfs Vilya in scope, but someone looking for an
hour or two of mindless typing to distract them on a lazy Sunday afternoon
would likely breeze through even that vast codebase without breaking a sweat.

Two more notes:

1. I'm going to switch Narya and Vilya over to the new style, and I'll be
fixing all the projects that use their services.

2. I lied (a teeny bit) about nothing changing. I made the old Client-taking
sendRequest methods deprecated, so projects that don't switch to the new style
will be presented with a large number of deprecation warnings. If this is too
terrible a burden to bear, I can remove the deprecation annotations on those
methods.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6395 542714f4-19e9-0310-aa3c-eee0fc999fb1
2010-12-31 21:56:46 +00:00
Par Winzell 2bb7f6e821 If we're going to support the idea that things can log in without a body, we can't have the peer manager NPE when that happens.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6394 542714f4-19e9-0310-aa3c-eee0fc999fb1
2010-12-28 14:58:07 +00:00
Dave Hoover faa7413d3c Nix unused import.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6393 542714f4-19e9-0310-aa3c-eee0fc999fb1
2010-12-22 19:47:36 +00:00
Michael Bayne 1d838d5e8e Simplify.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6392 542714f4-19e9-0310-aa3c-eee0fc999fb1
2010-12-22 01:42:32 +00:00
Michael Bayne d52be825ec Abstract the manner by which DObject reads and writes its fields. This allows
us to create a Scala trait that handles reading and writing Scala "fields"
which are not public fields but are rather private fields with public getters
and setters. This also enables the creation of bridges for other JVM-hosted
non-Java languages.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6391 542714f4-19e9-0310-aa3c-eee0fc999fb1
2010-12-22 01:30:55 +00:00
Tom Conkling aea50988da Changed the names of generated actionscript DObject signals to be more in line with the listener events they're mirroring, and also to read more fluently.
(Hope I'm not stepping on anyone's toes with this; I'm happy to revert if there are strong arguments against.)


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6390 542714f4-19e9-0310-aa3c-eee0fc999fb1
2010-12-21 22:02:25 +00:00
Tom Conkling 865c00dbfe Add a 'destroyed' signal to generated ActionScript DObjects
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6389 542714f4-19e9-0310-aa3c-eee0fc999fb1
2010-12-21 19:54:57 +00:00
Tom Conkling 0b3e8297e4 GenActionScriptStreamableTask parses imports out of the existing .as file and merges them into the output, regardless of whether they appear between the GENERATED PREAMBLE START/END markers.
(Eclipse's auto-import-ordering makes it too easy for manually-added imports to get moved to a location where they'd be blown away by the task.)



git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6388 542714f4-19e9-0310-aa3c-eee0fc999fb1
2010-12-18 00:47:33 +00:00
Par Winzell b041c6804b Since GWT is clearly moving away from (deprecating) TabPanel, let's ween ourselves off of it. However, TabLayoutPanel is a RequiresResize widget, which means it's not a drop-in replacement; it needs to be part of a layout.
The easiest way to accomplish this, if you have a degree of control over your page, is with something like:

    RootLayoutPanel.get().add(new ConfigEditorPanel(barHeight));

git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6387 542714f4-19e9-0310-aa3c-eee0fc999fb1
2010-12-16 17:54:39 +00:00
Michael Bayne 884ffabddc We need the current timestamp to report proper idle duration.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6386 542714f4-19e9-0310-aa3c-eee0fc999fb1
2010-12-16 02:22:21 +00:00
Michael Bayne 74c2c77443 Passing in the timestamp that dictates idleness allows us to propagate the idle
duration a bit less far. And Ray will be pleased to know that we're doing much
less redundant arithmetic.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6385 542714f4-19e9-0310-aa3c-eee0fc999fb1
2010-12-16 02:18:53 +00:00
Charlie Groves 6a45fec4ea Don't let presents' ping interval into Connection
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6384 542714f4-19e9-0310-aa3c-eee0fc999fb1
2010-12-16 01:59:47 +00:00
Charlie Groves 4d163ffd7f Allow generated sections to be turned off.
If a generated section like

// GENERATED BLAH START
var s: String = "I am some awesome stuff you didn't have to write";
// GENERATED BLAH END

is replaced with

// GENERATED BLAH DISABLED

that generated section will no longer be merged in.

This currently allows the class declaration to be customized in the actionscript
stuff, if it needs to extend or implement something that can't be inferred from
the Java class.  If someone's feeling frisky, they could split the streamable
section into sections for readObject, writeObject and fields to allow for read
and write customization.

This also fixes dropping no-longer generated sections and allows for sections
to be reordered in the source.



git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6383 542714f4-19e9-0310-aa3c-eee0fc999fb1
2010-12-15 23:46:56 +00:00
Par Winzell 0d8e889292 Oops, pubFields here too.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6382 542714f4-19e9-0310-aa3c-eee0fc999fb1
2010-12-15 18:31:03 +00:00
Par Winzell 1555bf92f9 Turn protected Java members into protected ActionScript members, and put them in the right place in the file.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6381 542714f4-19e9-0310-aa3c-eee0fc999fb1
2010-12-15 18:25:03 +00:00
Michael Bayne 413f06ac26 Use the new fluent API because it's sexy.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6380 542714f4-19e9-0310-aa3c-eee0fc999fb1
2010-12-15 00:51:17 +00:00
Michael Bayne 1a6587f69b Bump Depot to 1.2-SNAPSHOT and regenerate records using type-safe column
expressions. We'll get to a new stable release soonish.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6379 542714f4-19e9-0310-aa3c-eee0fc999fb1
2010-12-15 00:47:20 +00:00
Charlie Groves 68f8a577e9 Don't depend on presents
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6378 542714f4-19e9-0310-aa3c-eee0fc999fb1
2010-12-15 00:37:10 +00:00
Charlie Groves f12887ae87 Don't require that ConnectionManager be a Reporter
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6377 542714f4-19e9-0310-aa3c-eee0fc999fb1
2010-12-15 00:31:29 +00:00
Michael Bayne 2b90dee9f7 Let's make it easy for anyone to indicate their expected connection, and use it
to suppress subscription failure events in addition to subscription success, as
well as event forwards (though those shouldn't, in theory, go out over a new
connection because subscribers are cleared when a connection is dropped).
Nothing else looked like it might result in a spurious message being sent if a
connection was dropped and reestablished, so none of the other calls were made
to supply an expected connection.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6376 542714f4-19e9-0310-aa3c-eee0fc999fb1
2010-12-15 00:19:33 +00:00
Andrzej Kapolka a2f8e4f7d9 This is what seems to be happening: the client requests a subscription
on one connection, then disconnects.  While that request is in the
pipeline, it reconnects, then receives the subcription that the first
connection requested before it sends its own subscription requests.  To
prevent this, make sure that the current connection is the same one
that made the request.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6375 542714f4-19e9-0310-aa3c-eee0fc999fb1
2010-12-10 21:20:47 +00:00
Charlie Groves 0af27e8475 It's only presents for now, but it's the xcode project for all of narya
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6374 542714f4-19e9-0310-aa3c-eee0fc999fb1
2010-12-10 21:18:58 +00:00
Michael Bayne b574df2c70 Regenerated minus the ignore bits.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6373 542714f4-19e9-0310-aa3c-eee0fc999fb1
2010-12-10 18:31:26 +00:00
Michael Bayne 82978427ff We can get rid of our C++ backwards compatibility business now that we've
shipped that to our 1.3 release.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6372 542714f4-19e9-0310-aa3c-eee0fc999fb1
2010-12-10 18:02:10 +00:00
Michael Bayne 8c1062894f Join our friend the main pom on the 1.4-SNAPSHOT train.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6371 542714f4-19e9-0310-aa3c-eee0fc999fb1
2010-12-10 18:00:34 +00:00
Michael Bayne 32c0791ff9 Ship a 1.3 release of all of our auxiliary artifacts to OOO's internal Maven
repository.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6370 542714f4-19e9-0310-aa3c-eee0fc999fb1
2010-12-10 17:58:53 +00:00
Michael Bayne da92dc7772 [maven-release-plugin] prepare for next development iteration
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6369 542714f4-19e9-0310-aa3c-eee0fc999fb1
2010-12-10 17:54:37 +00:00