Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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.bootstrap

Provide FlagConstants *(What are these?).  *It seems to have to do with RPC and is used on the in the server RPC package and in the web client.

 

org.waveprotocol.wave.common.logging

Provides logging facilities for the web client.

Media, cc, client, webclient

org.waveprotocol.wave.communication

 

Contains utilities for the various communications mechanisms for the client, federation, diff etc.  It contains classes that encode characters to numbers, byte arrays etc.  It also contains helper classes that deal with serialization of things to JSON, GSON, and GWT Objects.

client, federation, diff  

org.waveprotocol.wave.concurrencycontrol

This is the location of the concurrency control stack used in the client.  Despite what the java package structure might indicate, these classes are not used by the server.

WebClient Web Client Only

org.waveprotocol.wave.crypto

 

These classes handle the signing of wave protocol messages.

Server Only  

org.waveprotocol.wave.federation

 

 

com.google.gwt.websockets

 

Implements a GWT wrapper for interacting with Web Sockets in the client.

Client Only  

org.waveprotocol.wave.media.model

This package seems to represent image attachments in the client.  There are comments in the files that suggest that it is used by the server, but it seems to be used only by the client. client

Client Only

org.waveprotocol.wave.migration

 

 

org.waveprotocol.wave.model

 

 

org.waveprotocol.wave.util