I should have thought of that before. It would have saved me some time. :) There's several things in there I can use to help (like RiakResponse, IRiakObject, etc...).
The only thing I would say is that I was wanting to return Futures for everything, rather than the responses themselves (and/or take a callback) . Maybe introduce a RiakResponseCallback based on the CompletionHandler (success/failed/error, etc...) and also have an RawAsyncClient that returns Future<RiakResponse> and has a void method version that takes said RiakResponseCallback? The synchronous client can just call get() on everything. Thanks! Jon Brisbin http//jbrisbin.com ----- Original Message ----- > From: "Russell Brown" <russell.br...@me.com> > To: "Jon Brisbin" <j...@jbrisbin.com> > Cc: "riak-users Users" <riak-users@lists.basho.com> > Sent: Wednesday, June 22, 2011 2:27:17 AM > Subject: Re: Riak async PB client based on Grizzly > Hey Jon, > Any chance you want to implement the RawClient interface ( > https://github.com/basho/riak-java-client/blob/master/src/main/java/com/basho/riak/client/raw/RawClient.java > ) from the basho riak-java-client library? That way your client can > be swapped straight into the basho lib? > If not, let me know when you get a repo up on github and I'll write > an adapter so that the basho riak-java-client can make use of your > Grizzly client, which I guess means I'll pitch in a little (time > permitting) to help shape the Grizzly client so it is RawClient > shaped. > Cheers > Russell > On 21 Jun 2011, at 17:58, Jon Brisbin wrote: > > I'm trying to get my feet wet with Grizzly on another project, so > > I've been spending some late(ish) nights also working on a > > Grizzly-based asynchronous PB client for Riak. I'm dropping all the > > way down to the protobuf level and using Grizzly's NIO abstractions > > to implement a completely non-blocking client. I'm writing the > > low-level stuff in Java and I'd really like to build a Scala layer > > on top of this, which uses the nice Scala idioms (operators, case > > classes, etc...). But I can't write code as fast in Scala as I can > > in Java and some of the Java APIs inside Grizzly aren't all that > > Scala-friendly and make the code pretty ugly. I figured it would be > > better to implement a fairly low-level PB client in Java and flesh > > out the user-facing API in Scala and/or Java. > > > My question is basically, if I seed this project on GitHub with > > what > > I've got so far, would anyone else be interested in helping > > complete > > it? I'm just working on this after my other Grizzly work, so I > > can't > > devote full time to it. It might take me a little while to > > implement > > things like links and mapreduce. > > > I think it shows some real promise because it is completely > > non-blocking. It uses Futures and CompletionHandlers to do the > > dirty > > work. A Grizzly filter is responsible for the actual > > encoding/decoding of protobuf data. Right now, it will marshall > > JSON > > using Jackson if your content-type is set to "application/json", > > otherwise it uses JDK serialization to encode the entry (or just > > passes a String straight through, of course). > > > Since it's a first pass, there is no real attempt to separate the > > protobuf stuff from the client. That's a v2 thing. Since I have > > limited time, I'm interested in speed to completion of features > > rather than good-looking and properly abstracted code. :) > > > Thanks! > > > Jon Brisbin > > > http//jbrisbin.com > > > _______________________________________________ > > > riak-users mailing list > > > riak-users@lists.basho.com > > > http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com >
_______________________________________________ riak-users mailing list riak-users@lists.basho.com http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com