Hi Michael As some of you know, I was planning to separate the communications > layer of the FedOne console client into a separate library. As > promised, I am posting this update to let you know how it's going. > > Over the past week I've been going over the FedOne source code, in > particular the code of the console client. I am glad to say that the > client code is overall well-structured and easy to follow (I wouldn't > expect any less from Google).
Cheers :-) > In fact, no major changes are necessary. > Mostly, the client code just needs to be cleaned up a bit and the > build configuration needs to be adjusted to generate a separate > library. > > I have divided the work into the following steps: > 1. Separate the client back-end into an abstract base class and a > protobuf/rpc-specific implementation. The back-end base class will be > protocol-agnostic. > Sounds good. I had a start to this in http://codereview.waveprotocol.org/23002/show for server submits, with a specific goal in mind, but that patch will need to be somewhat abandoned and a different approach taken. > 2. Clean up the API. > You're right that this needs to be done, it was a bit ad-hoc originally and hasn't changed all that much since. The focus has been on the server side. > 3. Create an abstract base class for the client (it's front end). Move > common client logic out of the console client and into the abstract > base class. > We've tried to keep the console specific code and the protocol/API code as separate as possible (the waveclient.common versus waveclient.console), but it can definitely go further, especially with more separation of the document model and a further layer of abstraction w.r.t the UI. Of course, it's possible have more waveclient packages if appropriate. > 4. Clean up dependencies and adjust the build configuration to > generate a separate library. > > Sounds great. This was meant to be the fedone-api.jar build target but there are a few waveserver dependencies (C/S protocol for a start -- would be nice to move this to a separate package), it got complicated, so we just ended up dumping everything without a main method in there. That said, it's broken. It would be great if this was cleaned up. > I will begin working on this within the next few days. I will post > further updates in this thread. > > One other thing -- I've upload a patch I will submit soon (i.e. between a week and a month :-) for review, though I will split it up a bit more (it's huge) before requesting a review. http://codereview.waveprotocol.org/25002/show, something to perhaps keep in mind. -- Ben -- You received this message because you are subscribed to the Google Groups "Wave Protocol" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/wave-protocol?hl=en.
