<div dir="ltr">Having this client allows us a better integration of WebPush into UPS, at some point (I need to check the javaagent for WildFly&#39;s bootclasspath anyways for my PoC on APNs&#39; HTTP/2 APIs, like [1]).<div><br></div><div>However, I was wondering how &#39;up-to-date&#39; our server actually is, regarding the spec<br><div><br></div><div><br></div><div><br></div><div>[1] <a href="http://undertow.io/blog/2015/03/26/HTTP2-In-Wildfly.html">http://undertow.io/blog/2015/03/26/HTTP2-In-Wildfly.html</a></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Mar 16, 2016 at 10:34 AM, Idel Pivnitskiy <span dir="ltr">&lt;<a href="mailto:idel.pivnitskiy@gmail.com" target="_blank">idel.pivnitskiy@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><span class=""><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span style="font-size:12.8px">will this replace the java client [1] we currently have? Or will can we extend it?</span></blockquote><div><br></div></span><div>Think that it will replace SimplePush in the future.</div><span class=""><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span style="font-size:12.8px">wanna have it included in the aerogear organization ? </span></blockquote><div><br></div></span><div>it would be great :)</div><div class="gmail_extra"><span class=""><br clear="all"><div><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">Best regards,<div>Idel Pivnitskiy</div><div>--<br></div><div>Twitter: <a href="https://twitter.com/idelpivnitskiy" target="_blank">@idelpivnitskiy</a></div><div>GitHub: <a href="https://github.com/idelpivnitskiy" target="_blank">@idelpivnitskiy</a></div></div></div></div></div></div></div>
<br></span><div><div class="h5"><div class="gmail_quote">On Wed, Mar 16, 2016 at 10:46 AM, Matthias Wessendorf <span dir="ltr">&lt;<a href="mailto:matzew@apache.org" target="_blank">matzew@apache.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">awesome!<div><br></div><div>wanna have it included in the aerogear organization ? </div></div><div class="gmail_extra"><br><div class="gmail_quote"><span>On Tue, Mar 15, 2016 at 9:17 PM, Idel Pivnitskiy <span dir="ltr">&lt;<a href="mailto:idel.pivnitskiy@gmail.com" target="_blank">idel.pivnitskiy@gmail.com</a>&gt;</span> wrote:<br></span><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><div dir="ltr">What&#39;s new in WebPush Java Client:<div><ul><li>Updated to the latest aerogear-parent</li><li>Updated Jetty http2-client to the latest version</li><li>Clean up pom.xml</li><li>Subscription and PushMessage objects became to be Serializable</li><li>Refactoring and little improvements</li><li>Added documentation to all public classes and methods - the most valuable improvement :)</li></ul><div>For more information, see [1].</div></div><div><br></div><div>Tests will be coming soon...</div><div><br></div><div>[1] <a href="https://github.com/idelpivnitskiy/aerogear-webpush-java-client/commits/master" target="_blank">https://github.com/idelpivnitskiy/aerogear-webpush-java-client/commits/master</a></div><div class="gmail_extra"><br clear="all"><div><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><span>Best regards,<div>Idel Pivnitskiy</div><div>--<br></div></span><div>Twitter: <a href="https://twitter.com/idelpivnitskiy" target="_blank">@idelpivnitskiy</a></div><div>GitHub: <a href="https://github.com/idelpivnitskiy" target="_blank">@idelpivnitskiy</a></div></div></div></div></div></div></div><div><div>
<br><div class="gmail_quote">On Wed, Aug 19, 2015 at 7:30 AM, Idel Pivnitskiy <span dir="ltr">&lt;<a href="mailto:idel.pivnitskiy@gmail.com" target="_blank">idel.pivnitskiy@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi all!<div><br></div><div>I&#39;ve just implemented a lightweight java client for receiving push messages from AeroGear WebPush Server [1]. It is easy to use and fully async!</div><div><br></div><div>A few words about decision to use Jetty as a HTTP/2 client:</div><div><br></div><div>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:</div><div><ul><li>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&#39;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.</li><li>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.</li><li>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.</li></ul><div>For more information, look at my commit history.</div><div>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.</div><div><br></div><div>Here is an example, how to use my library [4].</div><div><br></div></div><div>[1] <a href="https://github.com/idelpivnitskiy/aerogear-webpush-java-client" target="_blank">https://github.com/idelpivnitskiy/aerogear-webpush-java-client</a></div><div>[2] <a href="https://github.com/http2/http2-spec/wiki/Implementations" target="_blank">https://github.com/http2/http2-spec/wiki/Implementations</a><br clear="all"><div>[3] <a href="https://github.com/grpc/grpc-java/tree/master/okhttp" target="_blank">https://github.com/grpc/grpc-java/tree/master/okhttp</a></div><div>[4] <a href="https://github.com/idelpivnitskiy/aerogear-webpush-java-client/blob/master/src/example/java/org/jboss/aerogear/webpush/Example.java" target="_blank">https://github.com/idelpivnitskiy/aerogear-webpush-java-client/blob/master/src/example/java/org/jboss/aerogear/webpush/Example.java</a></div><div><br></div><div>Best regards,<div>Idel Pivnitskiy</div></div><span><font color="#888888">-- <div><div dir="ltr"><div><div dir="ltr"><div><div>E-mail: <a href="mailto:Idel.Pivnitskiy@gmail.com" target="_blank">Idel.Pivnitskiy@gmail.com</a></div></div><div>Twitter: <a href="https://twitter.com/idelpivnitskiy" target="_blank">@idelpivnitskiy</a></div><div>GitHub: <a href="https://github.com/idelpivnitskiy" target="_blank">@idelpivnitskiy</a></div></div></div></div></div>
</font></span></div></div>
</blockquote></div><br></div></div></div></div>
<br></div></div><span>_______________________________________________<br>
aerogear-dev mailing list<br>
<a href="mailto:aerogear-dev@lists.jboss.org" target="_blank">aerogear-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/aerogear-dev" rel="noreferrer" target="_blank">https://lists.jboss.org/mailman/listinfo/aerogear-dev</a><br></span></blockquote></div><span><font color="#888888"><br><br clear="all"><div><br></div>-- <br><div>Matthias Wessendorf <br><br>blog: <a href="http://matthiaswessendorf.wordpress.com/" target="_blank">http://matthiaswessendorf.wordpress.com/</a><br>sessions: <a href="http://www.slideshare.net/mwessendorf" target="_blank">http://www.slideshare.net/mwessendorf</a><br>twitter: <a href="http://twitter.com/mwessendorf" target="_blank">http://twitter.com/mwessendorf</a></div>
</font></span></div>
<br>_______________________________________________<br>
aerogear-dev mailing list<br>
<a href="mailto:aerogear-dev@lists.jboss.org" target="_blank">aerogear-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/aerogear-dev" rel="noreferrer" target="_blank">https://lists.jboss.org/mailman/listinfo/aerogear-dev</a><br></blockquote></div><br></div></div></div></div>
<br>_______________________________________________<br>
aerogear-dev mailing list<br>
<a href="mailto:aerogear-dev@lists.jboss.org">aerogear-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/aerogear-dev" rel="noreferrer" target="_blank">https://lists.jboss.org/mailman/listinfo/aerogear-dev</a><br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">Matthias Wessendorf <br><br>blog: <a href="http://matthiaswessendorf.wordpress.com/" target="_blank">http://matthiaswessendorf.wordpress.com/</a><br>sessions: <a href="http://www.slideshare.net/mwessendorf" target="_blank">http://www.slideshare.net/mwessendorf</a><br>twitter: <a href="http://twitter.com/mwessendorf" target="_blank">http://twitter.com/mwessendorf</a></div>
</div>