The AeroGear project is hiring, and we're looking for mobile native/hybrid/web developers to join our team.  All the details are in my blog: Join the JBoss Team!  If you are interested or know someone that is have them contact Jay Balunas (jbalunas at redhat dot com)!

We've got some other news as well!  We're creating a new project site with more details on the project, and informaiton on the native client libraries that we are creating.  All the details on this, and other updates in my blog Coming soon! New AeroGear Site & Other Updates

by aerogear at Wed Jul 18 14:52:02 EDT 2012
AeroGear Community

Mobile Web

RichFaces and JavaServer Faces

Aerogear News

AeroGear.js 1.2.0 has been “Pushed”!

We have been busy the last 6 weeks and this release is a big one. To help you navigate this post and get to the parts that most interest you, here is a list of the items covered.


SimplePush is a new specification and protocol coming out of the Mozilla camp that we are really excited about. In short, SimplePush gives Firefox OS and soon Firefox Desktop and Mobile browsers the ability to receive push notifications just like native mobile applications. The spec is much simpler than the current Push API draft specification being developed in that it is more like a basic ping to the client letting it know that something needs attention but then leaving it up to the client how to handle that notification. There is no message in the notification other than a simple version number which the client can use to verify that something has changed.

We believe that push messaging on the web will be an important part of web apps in the near future and with that in mind, we have created our SimplePushClient as part of the AeroGear JavaScript library, as well as our own SimplePush Server following the protocol as laid out by Mozilla. Our client will work just fine with Mozilla’s SimplePush server but we also wanted to provide another server option both for security (some companies would like more control over the push environment) and as a way to set up completely internal push networks. For example, a company with an internal app with a need for push notifications could deploy a SimplePush server on their internal network/VPN and have push messaging capability to their web apps without having to contact an outside server.

With these tools, our hope is to first help bring push messages to web apps in all browsers and second, to hopefully encourage developers to use these APIs, learn what they like and don’t like about them and then hopefully be the catalyst to encourage browsers to implement these features natively. Go grab the source from the links above or grab the SimplePushClient as part of the full AeroGear.js download or from Bower* and let us know what you think!

* To install via bower, after installing bower from the link above:

bower install aerogear


Along with our SimplePush offering, the team has been hard at work to create a quick and simple way of managing push messaging across multiple networks. To that end, today we are releasing our UnifiedPushClient which works with our also newly released UnifiedPush server as part of AeroGear.js 1.2.0.

The UnifiedPushClient provides and easy to use API for registering SimplePush endpoints registered through our SimplePushClient with a central service which will in turn manage sending push messages not only to our web apps but also iOS (APNS) and Android (GCM) applications as well. For a more thorough breakdown of UnifiedPush, see this blog post. To start using the JavaScript client, you can download AeroGear.js or use Bower.

Integration Testing and CI

A lot of work has been done to improve the testing of AeroGear.js. We have created a new integration test repo which contains QUnit tests for the pieces of the library that interact with other libraries and servers. There are also scripts there that will download or clone the servers and fire them up as needed and all of this is orchestrated by the amazing tool, Grunt.

Related to this effort, we have also set up a continuous integration strategy by way of Travis CI. Using commit hooks on Github, coupled with the environment provided by Travis, now every time a new commit is pushed to the master branch of AeroGear.js, a build is performed and all of the unit and integration tests are run to be sure anything added to the library doesn’t break anything else.

Documentation Updates

Outside of the usual documentation updates that come with releasing a new version, some effort has been made to give a bit more information about each component of the library. Specifically, a feature stability rating has been added to each part of AeroGear.js to give people an idea of how they can/should use it. There are 3 stability ratings as explained in this excerpt from the updated project README file:

  • Experimental – This feature is new and has not been thoroughly tested outside of development. This feature could be changed or removed at any time. Use of these features in a production environment is at your own risk.
  • Stable – This feature has existed for a full release cycle and has been thoroughly tested. These features are considered safe for use in production environments.
  • Deprecated – This feature is being removed or replaced. As with experimental features, these features could be removed at any time and their use in production environments is at your own risk. For features being replaced, it is recommended to update to the next version and begin using the new feature.

Change log / JIRA Resolutions

Now we get into the nitty-gritty of the release. Below you will find a list of commits from the git repo and a list of resolved JIRA tickets. This represents all of the changes to AeroGear.js in the 1.2.0 release.


  • Fixed typo in README
  • Build: Add missing integration test dev dependencies
  • Build: Add back missing qunit task
  • Build: Add integration tests for SimplePush
  • Add @status to all components for feature stability reporting
  • README: Add SimplePush and UnifiedPush documentation as well as feature stability definitions
  • Build: Remove hyphens from folder names and update build for consistency
  • updating JS doc to reflect the SimplePush specific ‘simplePushEndpoint’ URL attribute
  • Build: Remove failOnError causing false failures and remove quotes around stop parameter as they don’t help
  • Build: Add failOnError to grunt-shell commands
  • Build: Pass stop parameter as a string
  • Build: Don’t run integration on default build and don’t mix single and double quotes
  • Build: Remove test config and uncomment
  • Build: Break up integration tests by server type and control their execution from here
  • Build: Try reversing the server start order
  • Notifier Tests: Capitalization
  • Build: Fix shell task to kill java processes after the servers are no longer needed to allow grunt to continue processing
  • Build: Add dev dependency on grunt-contrib-connect for running integration tests
  • Notifier Tests: Add initial SimplePush tests
  • SimplePush: JSDoc tweaks
  • Notifier:SimplePush – Don’t store the pushEndpoint for security
  • SimplePush – Minor API changes for better polyfill behavior
  • SimplePush: Add documentation
  • Build: Remove old integration tests
  • Notifier:SimplePush – Add comments and updated JSDoc
  • Merge branch ‘master’ into Notifier
  • Pipeline: Add getAuthenticator method to retrieve the associated authenticator for a pipe. Fixes AGJS-63
  • SimplePush – Move navigator object modification into the connect callback to prevent accidental early use
  • SimplePush – Use options object instead of individual parameters and add a reconnect method for use when a connection is lost
  • Notifier:SimplePush – Add onClose callback to handle disconnection from SimplePush server and add a timeout to the triggering of registration success messages on previously registered channels
  • UnifiedPush: Use metadata object as argument in registerWithPushServer, more error checking and add JSDoc
  • adding http basic to the unregister()
  • SimplePush: Refactor to use a connect callback to simplify API and elliminate race conditions
  • SimplePush: Clean up hello channel registration and duplicate eventing
  • Fixes irc notifications
  • Build: Add condition to integration test folder removal
  • Build: Add command to remove the aerogear-js-integration folder to get a fresh clone on each run
  • Add the aerogear-js-integration folder to gitignore
  • Build: Add IRC notifications back to Travis config
  • Build: Update shell config to checkout aerogear/aerogear-js-integration master branch
  • Inclusion of missing tasks for travis
  • Initial task to trigger integration tests on Travis
  • Build: Remove integration test option as it will no longer work with the new Travis config for integration tests
  • SimplePush: Always send channelIDs on hello even if empty
  • make travis only build master branch
  • SimplePush: Change channels to channelIDs in hello message
  • Merge remote-tracking branch ‘abstractj/info’
  • Update outdated reference to JIRAs
  • Merge branch ‘master’ into Notifier
  • SimplePush: Refactor to properly handle reregistered channels
  • Build: Config push builds
  • Re-add external UUID lib
  • typo fix
  • Merge branch master into Notifier
  • Add external UUID library for ID generation in SimplePush
  • SimplePush – Remove unnecessary IIFE
  • Build: Fix failed rebase for simplePush concat
  • Build: Add btoa polyfill, base64.js
  • Add Notifier and SimplePush tasks to build
  • Notifier: Remove individual IIFEs which were causing errors by referencing libs that may not necessarily be needed or used at that time. Fixes AGJS-48
  • Remove unnecessary UUID library. Fixes AGJS-49
  • Build: Add Notifier vert.x integration tests
  • Notifier:vertx – Add send method. Fixes AGJS-50
  • Build: Add Notifier STOMPWS adapter integration tests to build and update custom tasks
  • Notifier:StompWS – Add protocol option to be able to specify a STOMP protocol
  • Build: Put integration tests behind a flag to prevent constant CI failures
  • SimplePush: Remove dependency on Unified Push as these should be independent. Fixes AGJS-44
  • Merge master into Notifier
  • Build: Add btoa polyfill, base64.js
  • Adding http_basic to device/channel registration
  • The alias key is no longer named ‘clientIdentifier’, the server is looking for the ‘alias’ key now
  • Removing unneeded check for ‘registered’; We now just perform straight POST, against common URL
  • Build: Add Notifier, SimplePush and Unified Push to Gruntfile
  • Notifier:SimplePush – Fix channel unregistration handling
  • Relax .jshintrc to allow callback creation in a loop
  • Notifier:SimplePush – Throw register and unregister errors
  • Add Notifier and SimplePush tasks to build
  • Merge branch ‘master’ into ‘Notifier’
  • UnifiedPush: Change registration error to a string
  • SimplePush: Add another todo about using native implementation
  • UnifiedPush: Add alias to device registration and require it for non-broadcast message types
  • UnifiedPush: Only use POST when registering or updating device registration
  • SimplePush: Rename pushNetworkURL to simplePushServerURL and add unifiedPushServerURL
  • SimplePush: Use http instead of ws for SockJS
  • Notifier:SimplePush – Convert to use SockJS instead of vanilla WebSockets to work across browsers
  • Adding the new header name for the ag-mobile-variant
  • Move unified push registration/unregistration to separate module. Fixes AGPUSH-8
  • Notifier:SimplePush – Add notification acknowledgments
  • SimplePush: Add ability to re-register endpoints with the unified push server. Fixes AGPUSH-5
  • SimplePush – Cleanup and use re-registration updates made in Notifier
  • Notifier:SimplePush – First pass at uaid reuse and channel re-registration
  • SimplePush: Move config off of AeroGear object to avoid reset and some other minor cleanup
  • Notifier:SimplePush – Build channel from message contents
  • SimplePush: Add unified push server registration
  • SimplePush: Update to use new SimplePush adapter for Notifier
  • Notifier: Add SimplePush adapter
  • SimplePush: Rework and add missing items to further match the SimplePush spec
  • SimplePush: Refactor to follow Mozilla’s API placing SimplePush on the navigator object to act as a proper pollyfill
  • SimplePush – Only store session ID and provide channel prefix
  • SimplePush – Add first draft of SimplePush API

JIRA Resolutions

AeroGear 1.1.2 Release

The latest release of AeroGear.js is out. This release contains some important fixes for the Notifier plugin, the addition of running integration tests to our build process and some general cleanup of the repo. For a complete list of bug fixes and changes see the changelog and list of resolved issues below or just go grab the latest version and try it out!


  • Bumping version to 1.1.2
  • Notifier: Remove individual IIFEs which were causing errors by referencing libs that may not necessarily be needed or used at that time. Fixes AGJS-48
  • Remove unnecessary UUID library. Fixes AGJS-49
  • Build: Add Notifier vert.x integration tests
  • Notifier:vertx – Add send method. Fixes AGJS-50
  • Build: Add Notifier STOMPWS adapter integration tests to build and update custom tasks
  • Notifier:StompWS – Add protocol option to be able to specify a STOMP protocol
  • Remove jQuery from package.json dependencies since it’s already included for our tests and has to be externally included when using the library

Resolved JIRA Issues – AGJS

  • AGJS-45
  • AGJS-48
  • AGJS-49
  • AGJS-50
AeroGear.js 1.1.0 Release

The latest minor release of AeroGear.js is out. This release contains the new Notifier plugin with adapters for communicating with both STOMP over websocket and vert.x based messaging services as well as a number of bug fixes. For a complete list of bug fixes and changes see the changelog and list of resolved issues below or just go grab the latest version and try it out!


  • Bump version to 1.1.0
  • Update jQuery dependency to 1.10.x
  • README: Add Notifier entry and list of dependencies and links for all plugins
  • Build: Add notifier unit tests to build
  • Tests: Add very basic unit tests for Notifier. Real functionality will be tested with integration tests
  • fix grammar
  • Notifier vertx – inline example updates
  • Notifier stompws – inline examples added
  • Notifier vertx: examples added
  • Notifier core: examples added
  • Notifier stompws – remove unneeded onDisconnect
  • Tests: Update to latest version of jQuery
  • use local vars instead of privleged methods
  • Notifier vertx – remove unneeded methods
  • Notifier stompws: add autoconnect
  • Notifier vertx: remove removeAllChannels and call unsubscribe
  • update comment
  • Adding comment to code
  • Notifier stompws: copy channel first
  • Notifier stompws: make connect options an object if it isn’t
  • Notifier stompws: remove unneeded privleged methods
  • Notifier vertx: remove unneeded privleged methods
  • Stomp Adapter: remove sockjs references
  • Merge branch ‘master’ into Notifier-adapters
  • Pipeline:Rest – Add ability to set contentType and dataType during pipe creation. Fixes AGJS-31
  • Update to latest version of mockjax for testing
  • Notifier:stompws – Use straight WebSockets for now
  • Notifier:stompws – First draft of stomp websocket adapter for Notifier
  • Merge branch master into Notifier
  • Updated dist files
  • Notifier:vertx – Add getChannelIndex method to allow checking for existence of a subscription
  • Notifier:vertx – Change default value for autoConnect to false unless channels exist at creation
  • Notifier:vertx – Initial implementation of subscribe, unsubscribe and disconnect
  • Update .jshintrc to add vertx to globals
  • Notifier:vertx – Fix scope issues and error callback name
  • Notifier:vertx – First pass at Notifier with vertx adapter

Resolved JIRA Issues – AGJS

  • AGJS-3
  • AGJS-27
  • AGJS-28
  • AGJS-33
  • AGJS-34
  • AGJS-35
  • AGJS-37
  • AGJS-38
  • AGJS-39
  • AGJS-43
AeroGear.js 1.0.1 Release

The latest maintenance release of AeroGear.js is out. This release contains a number of bug fixes, a fix for the generated source map, Travis CI integration and more. For a complete list of bug fixes and changes see the changelog and list of resolved issues below or just go grab the latest version and try it out!

Changelog -…819af95

  • Add link to JS landing page to the README
  • Update package.json version to 1.0.1
  • Auth:Rest and Pipeline:Rest – Remove Auth-Token. Fixes AGJS-26
  • Pipeline:Tests – Remove stray settings that no longer exist. Fixes AGJS-25
  • Add missing source map options for custom builds and replace banner option with preserveComments to fix broken source maps. Fixes AEROGEAR-805
  • web storage adapter checks for null. AEROGEAR-1076
  • fixing travis links
  • Merge branch ‘travis’
  • add irc notifications
  • Add Travis CI integration
  • Update to latest grunt and grunt-contrib dev dependencies

Resolved JIRA Issues – AEROGEAR / AGJS

  • AEROGEAR-805
  • AEROGEAR-989
  • AEROGEAR-1076
  • AEROGEAR-1080
  • AEROGEAR-1126
  • AEROGEAR-1128
  • AEROGEAR-1143
  • AEROGEAR-1219
  • AGJS-1
  • AGJS-22
  • AGJS-24
  • AGJS-25
  • AGJS-26
AeroGear JS 1.0.0 has landed!

It’s been a long time coming but the AeroGear team is pleased to announce the release of version 1.0.0 of the AeroGear.js library! This release provides simple yet robust and pluggable APIs for a number of the typical tasks developers must do when building a mobile application. From authentication to managing client side data to moving that data between server and client, AeroGear has you covered.


AeroGear.Auth provides simple methods for enrolling users and performing login/logout. Currently, if your server provides a REST interface to authentication, AeroGear.js will work with it.

Data Management

AeroGear.DataManager (clever name, right?) is here to help developers manage their application’s data. Whether you’re data is just stored in memory or if you need a little more persistence with session or local storage, DataManager provides a single, easy to use API for storing, retrieving and querying that data.

Data Transfer

Built on top of jQuery’s rock-solid AJAX method, AeroGear.Pipeline provides a simple, cross-browser API for persisting data to your server and retrieving that data either all at once or in manageable chunks with a standard based paging interface.

A Glimpse into the Future

With the solid foundation of AeroGear 1.0.0, we can now look into building features for more advanced web applications. The team is looking into ways to address important topics like data synchronization, offline access, websockets and push notifications, security, and a number of other things.

Check it Out

So go give it a test drive and let us know what you think! You can get the full version of AeroGear.js from our site or from Bower by running `bower install aerogear`. If you prefer a smaller version of AeroGear.js and only need certain features, check out our custom build tool. We also have a working demo showing off all of the features of AeroGear.js on OpenShift. Please report any issues or feature requests you may have in our JIRA instance.

View more aerogear news

5 Minutes to Mobile

Follow Aerogear on Twitter

Get Some Cool Stuff

Swag | Desktop wallpaper

Supported In: