The Deacon Project Droid+Beacon – Open-Source Push Notifications for Android & Java

25Nov/110

Deacon Version 1.0.0, Release Candidate 01

With traffic on recent bug-fixes quiet, new contributions received, and all else otherwise stable, I'm getting ready to bump Deacon to version 1.0.0. I've pushed a new tag to the Deacon repository on GitHub, and made quite a few updates to the codebase to better-accommodate anticipated downstream changes. I've decided to do this version bump because Deacon's development pace lately has been slow; my time to work on it is limited, and development is largely being driven by bug reports and contributed features. So I'm going to let features drive the minor release numbers, and bug reports drive the incremental numbers.

New in this release:

  • Deacon is refactored to use a generic PushReceiver class to handle all top-level controls and configurations (i.e. start, stop, timeouts, etc.). This is sub-classed by server- or transport-specific client implementations for particular push mechanisms.
  • All Meteor-specific client code has been pulled out into MeteorPushReceiver.
  • The Android-specific "Deacon" class has become "AndroidPushSupervisor", which is instantiated by a hosting Android application in parallel with its chosen PushReceiver. The application registers the PushReceiver with the AndroidPushSupervisor, which will then call stop() and start() methods based on received BroadcastIntents containing network connectivity information.
  • The methods in the DeaconObserver interface and DeaconObservable class have been updated, and some of the high-specificity methods have been deprecated. Those deprecated methods will still work (and, in the case of DeaconObserver, still be required in application code) but will be removed before the final 1.0.0 release.
  • Important! Deacon no longer handles Android inter-thread communication using Handler and Message. This was a Demo-oriented hack to get around Android's requirement that UI object accesses only take place from the associated Activity's thread. This inter-thread communication is really the responsibility of the service that hosts Deacon (and instantiates whatever PushReceiver is required).
This is only a release candidate; there is still more work to do before a full 1.0.0 release; this will be tagged with _rc02, _rc03, etc., incorporating at least the following to-dos:
  • Incorporate Cyrille Colin's SSL- and authentication-capable Meteor client as a subclass of MeteorPushReceiver.
  • Refactor the unit test to decouple access to the PushReceiver and MeteorPushReceiver classes, and test them separately.
  • Remove extraneous System.out.println() and Log.d() calls, and other general code clean-up.
Many thanks to everyone who has contributed - whether code, bug reports, debug effort or resources - to the Deacon Project!

About Dave

Dave Rea is an upstate-NY engineer specializing in embedded systems. He holds a BS degree in Electrical Engineering and a MS degree in Software Engineering, both from the Rochester Institute of Technology. Dave is an open-source enthusiast, totes an HTC Droid Incredible, and runs Ubuntu Linux. You can find more on Dave at daverea.com or LinkedIn.
Filed under: News, Releases Leave a comment
Comments (0) Trackbacks (0)

No comments yet.


Leave a comment


No trackbacks yet.