This project is a Java server side implementation of the SimplePush Protocol
send notification messages to their web applications. Originally SimplePush was introduced for Firefox OS but there are
plans to establish the API on the desktop and mobile browsers as well.
Firefox OS v1.1 uses SimplePush as its Push Notification technology. Firefox OS Push Notifications are designed for one
thing – waking up apps. They do not deal with data, desktop notifications and other features, since there are other
Web APIs that provide them. From the very beginning SimplePush was designed to explicitly not carry any payload.
Instead a version number is sent to the client. Based on that version number the client can perfom an action, e.g. refresh a view of data.
Mozilla published a very detailed article
that explains the API in depth.
AeroGear SimplePush consists of the following modules:
Just common classes used by multiple modules in the project.
Contains implementations of various datastores. Please see the specific datastore's readme for further details.
The SimplePush Server Protocol provides interfaces for the protocol.
An API for AeroGear SimplePush Server
An implementation of AeroGear SimplePush Server API.
The SimplePush Server implementation that uses Netty 4.x.
The SimplePush Server implementation that uses vert.x.
A WildFly/AS7 module for the SimplePush Server.
Please refer to the above modules documentation for more information.
The Docker image provided contains CouchDB and Redis which enables the functional tests that use these databases
to be run.
Build a SimplePush Container
Build using github path
docker build -t simplepush github.com/aerogear/aerogear-simplepush-server
Build using cloned project
docker build -t simplepush .
Run integration tests
docker run -it simplepush
Run standalone Netty server
docker run -p 7777:7777 -w /home/aerogear-simplepush-server/server-netty -it simplepush mvn exec:java
Manually running test
You may want to trigger test using a different branch, perhaps to run the integration tests against
that code base. This can be done by starting the image using a shell:
docker run -it simplepush /bin/bash
You'll need to start the databases (currently CouchDB and Redis):
Now, you can clone your fork and checkout a branch. To run all tests including the integration/functional tests:
mvn install -Pcouchdb,redis
Port forwarding for Mac OS X
You'll need to configure your VirtualBox to support port forwarding for port
VBoxManage modifyvm "boot2docker-vm" --natpf1 "guestnginx,tcp,,7777,,7777"