Clone this wiki locally
Overall Project Goals
The Deacon Project seeks to create a Java push notification class library that acts as a client to the Meteor comet-technology web server. The library is intended to enable the delivery of push notifications to native applications written for the Android mobile telephony platform.
: May 16th, 2010
The Deacon alpha release is intended primarily to enable answering of the following questions about Android and push technology:
Can push notifications be delivered to Android devices using a Meteor web server client? (proof of concept)Yes.
How much does the maintenance of a long-held TCP connection to a Meteor server affect Android device battery life?Not very much.
Which Meteor comet modes (streaming, short polling, long polling) are compatible with Android devices?Any, but short polling isn’t much different from existing approaches, and streaming is fraught with problems at the link level.
In order to answer these questions, the alpha release will need the following basic functionality:
|Connect to a Meteor server using the subscriber request format described in the Meteor server documentation||Done|
|Subscribe to one or more channels on the server||Done|
|Receive push notifications using the following Meteor-defined stream types:
* xhrinteractive N/A
* Short polling (lowest implementation priority) N/A
|Parse response messages received from the Meteor server (reverse engineering required)||Done|
|Deliver the received notifications to Android application software using callbacks||Done|
|Basic network connectivity awareness and server connection start/stop||Done|
|Structural models updated in Design Document||Done|
|Release tagged in Git||Done|
: Q3 2010
The Deacon beta release is intended to produce a usable Java class library that can be evaluated by Android application developers. It should achieve the following functionality and general level of readiness:
|β-001||Connect to a Meteor server, subscribe to one or more channels, receive notifications, deliver by callback||Done (Alpha)|
|β-002||Full network connectivity awareness, automated start/stop of service subscriptions, upstream notification by callbacks||Done|
|β-002.1||Configurable notification backlog retrieval; get missed notifications due to network disconnection.
|β-003||Unit tests implemented for key methods in Deacon core||Done|
|β-004||Minimal API Javadocs complete||Done (Alpha)|
|β-007||Models updated in Design Document||In Progress|
|β-008||Release tagged in Git||Done|
|β-009||Deacon-Test client feature set updated:
* Configure server address, port, channel
* Configure action taken on push notification receipt (display toast, alert, notification, etc.)
* Add connect/disconnect buttons
* Display status
* Improve visual design
|Track under separate roadmap|
|β-010||Add intent-generation capability to Deacon; allow reuse of C2DM receiver code with Deacon pushes||Cancelled|
|β-011||Automate build process with Ant||Cancelled|
The 1.0 release of Deacon should be a complete, usable, documented Java class library for production use by Android developers.
|1-001||Enable developer-customizable Meteor stream configuration format
* Goal: Devs can configure their own Meteor response format in /etc/meteord.conf
* Will need methods to call to set format string, which will then convert into regex to be used by Parse()
|Not yet started|
|1-00N-3||Distribution JAR for pure-Java Deacon core implementation||Not yet started|
|1-00N-2||Distribution JAR for Android-dependent Deacon implementation||Not yet started|
|1-00N-1||Models updated in Design Document||Not yet started|
|1-00N||Release tagged in Git||Not yet started|