AeroGear Crypto Java 0.1.2 released
by Bruno Oliveira
Good morning, just to let you know we released today the bits for digital signatures and some bug fixes.
Have a happy new year sweet hearts.
--
abstractj
2 years, 6 months
AeroGear WebPush Java Client
by Idel Pivnitskiy
Hi all!
I've just implemented a lightweight java client for receiving push messages
from AeroGear WebPush Server [1]. It is easy to use and fully async!
A few words about decision to use Jetty as a HTTP/2 client:
Currently there are only 3 Java libraries, which implement client side of
HTTP/2 protocol [2]: Netty, Jetty and OkHttp. I tried all of them:
- First of all I tried to use OkHttp. This is a lightweight http client
for Android and other Java apps. But currently this library supports HTTP/2
protocol only via old HTTP/1.1 API. It works well for simple
request-response, but its client API does not allow to use HTTP/2 features,
like Server Push Frames. I looked at GRPC [3], because Googlers use OkHttp
for HTTP/2 transport. But they don't use public API, they use only inner
classes to handle frames and built their own logic atop this classes. It
would be too complicated for our purposes.
- Secondary, I tried to refactor our WebPush console to a client
library. But this way is complicated too. netty-codec-http2 does not
provide a client API, it is only codec, low level protocol implementation.
- Now I use jetty-http2-client. It is easy to configure and use, fast
and async. Jetty provides a user friendly API to handle HTTP/2 streams and
get PUSH_PROMISE frames.
For more information, look at my commit history.
In the future, if there will be more lightweight alternatives than Jetty
(for example, new version of OkHttp or Java 9 API), I will rewrite the
transport layer of my library.
Here is an example, how to use my library [4].
[1] https://github.com/idelpivnitskiy/aerogear-webpush-java-client
[2] https://github.com/http2/http2-spec/wiki/Implementations
[3] https://github.com/grpc/grpc-java/tree/master/okhttp
[4]
https://github.com/idelpivnitskiy/aerogear-webpush-java-client/blob/maste...
Best regards,
Idel Pivnitskiy
--
E-mail: Idel.Pivnitskiy(a)gmail.com
Twitter: @idelpivnitskiy <https://twitter.com/idelpivnitskiy>
GitHub: @idelpivnitskiy <https://github.com/idelpivnitskiy>
8 years, 9 months
GCM Topics in UPS
by Summers Pittman
So I've got a few ideas for how to implement this, but I hope some people
more experienced with the platform can give some feedback before.
Quick Background:
In UPS right now we have a concept of categories. A single UPS message can
be broadcast to a bunch of devices which are subscribed to this category.
Google now supports this for GCM on Chrome, iOS, and Android so UPS can
send a single message to GCM and GCM will broadcast that to up to a million
devices.
End Quick Background
So first, how do we switch between sending a message to each device in a
category to sending a topic message to GCM?
In TokenLoader.java#L113 we are using the clientInstallationService to
build a string of deviceTokens based on the variant and message criteria.
Is there any reason we can't create a "topicToken" which will be recognized
later by GCMPushNotificationSender? Another benefit to making this change
here is that if we have over a million subscribers to the category we can
just default to the default messaging.
There is also an open issue of whether or not we will update the clients to
filter based on what category a message was sent to. To do this we will
have to include the category information in the message when we send it to
devices going forward. In GCM a topic message includes this information.
This means that if we have over a million subscriptions in the topic we
will need to fall back to using the category information anyway.
Continuing on from the thread of falling back, it is possible for a topic
message to fail to send because there are too many subscribers. How would
UPS handle regenerating the messages as deviceToken instead of topicToken
messages?
Of course if someone has a better idea than "topicTokens" I'm all ears.
8 years, 9 months
Google Summer of Code 2016
by Matthias Wessendorf
Hi,
for GSoC 2016 we have not discussed our participation on this subject. I'd
like to get a new and modern version of AeroDoc in.
Here is some text that I came up with:
<snip>
AeroDoc Demo case for Unified Push Server
Write a new versions of the different components for our successful AeroDoc
example, which you can see here
https://youtu.be/IVMHW1uzrH4?t=209
Backend/Server microservice component
* remove picket link based auth with Keycloak for pure OAuth2 login
* convert the server to WildFly Swarm fat JARs, to run AeroDoc as a
Microservice, in a scalable mode.
** Features like WildFly's Ribbon layer (from Netflix OSS) could be used
* Rewrite the UI, using Angular2 and make it look nicer :)
* Use latest of Hibernate's Geo library for Geolocation based push
notifications
IMO it could be done as a complete rewrite.
iOS app update:
* port the application to Swift and use our Keycloak library for OAuth2
Android app update
* port app to latest Android APIs and use our Keycloak library for OAuth2
New Windows version of the App
* would be nice to have
New feature:
* Silent notifications:
Introduce the usage of silent notification (no alert) to ping the
application. The app wakes up, and performs a HTTP background check against
the backend, to check for new Leads (for the AeroDoc Sales guys). Based on
the HTTP response of the call, done in the background, local notifications
are issued and presented to the user. This includes fine grain update of
badge icon on iOS, and similar techniques on Android.
</snip>
I think the above would make a good exercise of a student, interested in
mobile app development, that also deals with an interesting use-case
(Geolocation, OAuth2 and Push), as well as backend interaction.
Any thoughts?
-Matthias
--
Matthias Wessendorf
blog: http://matthiaswessendorf.wordpress.com/
sessions: http://www.slideshare.net/mwessendorf
twitter: http://twitter.com/mwessendorf
8 years, 9 months
Why we support NPN in WebPush project?
by Idel Pivnitskiy
Hi all!
I just want to know and discuss why we support NPN in WebPush project.
Jetty npn-boot works only with Java 7. But "aerogear-webpush-server-netty"
uses a lot of Java 8 API and it's impossible to compile it with javac 7.
We may support it in "webpush-console" because it doesn't use Java 8 API.
But do we really want to support deprecated protocol and API?
Best regards,
Idel Pivnitskiy
--
E-mail: Idel.Pivnitskiy(a)gmail.com
Twitter: @idelpivnitskiy <https://twitter.com/idelpivnitskiy>
GitHub: @idelpivnitskiy <https://github.com/idelpivnitskiy>
8 years, 9 months
Android oauth2 logout from Facebook/Google
by bianghouse
Hi, I'd like to know if there's a way to perform a logout or revoke access
from socialproviders.
I'm currently using Android Authorization (OAuth2) to connect my app to
social-platforms.
Taking a look at AuthzModule interface it declares the following methods
public boolean isAuthorized();
public boolean hasCredentials();
public void requestAccess(Activity activity, Callback<String> callback);
public boolean refreshAccess();
public void deleteAccount();
I tried with deleteAcccount() method with no luck, when I try to login with
a new login user no OAuthWebViewDialog appears and my app redirects to
succeeded login with the old credentials.
Thanks in advance.
M.
--
View this message in context: http://aerogear-dev.1069024.n5.nabble.com/Android-oauth2-logout-from-Face...
Sent from the aerogear-dev mailing list archive at Nabble.com.
8 years, 9 months
ups node sender 0.11.0 release
by Luke Holmquist
i've just released the 0.11.0 version of the unified push node sender. The
biggest, perhaps only change, for this release is that it is now using the
Request library for doing requests.
Happy Friday
8 years, 9 months
PUT request in aerogear pipe android
by Anuj Garg
I am seeing in examples of how to place put request from httpProvider. But
wanted ti know if there is any way of doing it directly from configured
pipe.
Please provide a link of example if possible
Thanks
8 years, 9 months