The following table annotates some of the main packages in the wave code base.
Java Package |
Description |
Used By |
---|---|---|
com.google.wave.api |
This is not really an API. It is a set of implementation classes that seem to mostly have to do with Robots. |
|
org.waveprotocol.box.server |
This is the main root package of the Wave in a Box server. The ServerMain class is the class that bootstraps the server. This package uses an embedded jetty container to publish servlets for client, robot, and federation communication. It uses Guie to inject much of the server infrastructure (see the ServerModule) class. |
|
org.waveprotocol.box.server.frontend |
This package provides the portion of the sever that is focused on coordinating requests from the client. The WaveClientRpcImp implements the Client Server Protocol (Protobuf Interface) and forwards that the the ClientFrontend (ClientFrontEndImpl) delegate which actually works with the server internals (wave bus, etc). |
|
org.waveprotocol.box.server.persistence |
Contains the interfaces and implementations for Accounts, Attachments, and Deltas. It should be noted that the interface for the DeltaStore actually lices in org.waveprotocol.box.server.waveserver, whereas the Account and Attachment store interfaces live here. |
|
org.waveprotocol.box.server.robots |
Implements the server infrastructure for working with robots. Under that "agent" package several robot implementations are provided. |
|
org.waveprotocol.box.server.rpc |
Implements the server side handler for client RPC requests. this includes SocketIO implementations, WebSocket implementations, and the Servlets that respond to various URL patterns. these servlets are are registered via the ServerRpcProvider (by the ServerMain class). |
|
org.waveprotocol.box.waveimport |
Implements Wave Import and Export. Basically the code will export waves from GWave to files, and then import those files in to WiaB. The import and export format seems to decode the protobuf deltas into a JSON format. This used Google Robot API. I am not sure if we need this code anymore since G'Wave is no more. At the least we might need to revisit it. |
|
org.waveprotocol.box.webclient |
This package is the main bootstrap entry point for the GWT Web Client. The WebClient class is the main GWT class. This is what we hit after you log in. It contains the search panel / inbox. It also contains the placeholder for the undercurrent panel, and coordinates the StagesProvider to construct the undercurrent panel when a wave is loaded. |
|
org.waveprotocol.wave.client |
This is the implementation of the undercurrent wave panel. This contains the editor, doodads, blip renderers, etc. |
|
org.waveprotocol.wave.common |
|
|
org.waveprotocol.wave.communication |
|
|
org.waveprotocol.wave.concurrencycontrol |
|
|
org.waveprotocol.wave.crypto |
|
|
org.waveprotocol.wave.federation |
|
|
com.google.gwt.websockets |
|
|
org.waveprotocol.wave.media.model |
|
|
org.waveprotocol.wave.migration |
|
|
org.waveprotocol.wave.model |
|
|
org.waveprotocol.wave.util |
|
|