You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@wicket.apache.org by Tobias Soloschenko <to...@googlemail.com> on 2016/06/28 21:08:19 UTC

Re: Apache Wicket rocks with http/2

Hi,

just a small update:

I switched the implementation to servlet-4.0.0-b01 API as far as possible:

https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api/4.0.0-b01

The only thing I can do now is to wait for the JEE standard to be finalized and to be implemented into the servers like jetty, tomcat, etc.

https://github.com/klopfdreh/jetty-http2-example

kind regards

Tobias

> Am 12.05.2016 um 18:15 schrieb Maxim Solodovnik <so...@gmail.com>:
> 
> Cool!
> 
> On Thu, May 12, 2016 at 10:10 PM, Tobias Soloschenko <
> tobiassoloschenko@googlemail.com> wrote:
> 
>> Hi,
>> 
>> I just managed to finish a PoC in which Apache Wicket runs on Jetty with
>> http/2 and uses the Servlet 4.0 Spec / PushBuilder to provide resources to
>> the client.
>> 
>> Notes:
>> * Small API which can be added to increase the performance of the webapp
>> with http/2
>> * No html changes required
>> 
>> References:
>> *
>> 
>> https://raw.githubusercontent.com/klopfdreh/jetty-http2-example/master/without_push.png
>> *
>> 
>> https://raw.githubusercontent.com/klopfdreh/jetty-http2-example/master/with_push.png
>> 
>> On localhost improved performance: 37ms latency without and 1ms latency to
>> serve the resource (CSS file)
>> 
>> Example Implementation:
>> *
>> 
>> https://github.com/klopfdreh/jetty-http2-example/blob/master/de.jetty.wicket.http2.example/src/main/java/de/jetty/wicket/http2/example/HTTP2Page.java#L28
>> 
>> Jetty Setup:
>> *
>> 
>> https://github.com/klopfdreh/jetty-http2-example/blob/master/de.jetty.wicket.http2.example/src/test/java/de/jetty/wicket/http2/example/Runner.java
>> 
>> hooray!
>> 
>> WDYT
>> 
>> kind regards
>> 
>> Tobias
> 
> 
> 
> -- 
> WBR
> Maxim aka solomax

Re: Apache Wicket rocks with http/2

Posted by Tobias Soloschenko <to...@googlemail.com>.
I am going to create a pull request the next weekend.

kind regards

Tobias

> Am 30.06.2016 um 09:40 schrieb Martin Grigorov <mg...@apache.org>:
> 
> I can add the Tomcat impl and docs how to setup Tomcat 8.5+ with HTTP2.
> 
> Martin Grigorov
> Wicket Training and Consulting
> https://twitter.com/mtgrigorov
> 
> On Wed, Jun 29, 2016 at 6:27 PM, Tobias Soloschenko <
> tobiassoloschenko@googlemail.com> wrote:
> 
>> Jep - would be great until the servlet 4 API reaches the final state.
>> 
>> I already reduced the usage of the container specific calls to one line.
>> This line can be delegated to the IInitialzer class.
>> 
>> I hope tomcat and other servers are implementing the PushBuilder API
>> similar. If yes it is rather easy to create such an integration.
>> 
>> kind regards
>> 
>> Tobias
>> 
>>> Am 29.06.2016 um 17:41 schrieb Martin Grigorov <mg...@apache.org>:
>>> 
>>> Hi,
>>> 
>>> What do you think about introducing PushBuilder-like API in Wicket-core ?
>>> The default implementation wil justl log warnings.
>>> If an application wants to make use of this new functionality then it
>> will
>>> have to add an additional jar to the classpath, e.g.
>>> wicketstuff-pushbuilder-jetty9.jar, that will replace the default
>> strategy
>>> (with IInitializer) with one that knows how to use Jetty9 internals. Same
>>> for Tomcat 8.5+ and any other container that provides this functionality
>>> with internal APIs.
>>> 
>>> 
>>> Martin Grigorov
>>> Wicket Training and Consulting
>>> https://twitter.com/mtgrigorov
>>> 
>>> On Tue, Jun 28, 2016 at 11:08 PM, Tobias Soloschenko <
>>> tobiassoloschenko@googlemail.com> wrote:
>>> 
>>>> Hi,
>>>> 
>>>> just a small update:
>>>> 
>>>> I switched the implementation to servlet-4.0.0-b01 API as far as
>> possible:
>> https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api/4.0.0-b01
>>>> 
>>>> The only thing I can do now is to wait for the JEE standard to be
>>>> finalized and to be implemented into the servers like jetty, tomcat,
>> etc.
>>>> 
>>>> https://github.com/klopfdreh/jetty-http2-example
>>>> 
>>>> kind regards
>>>> 
>>>> Tobias
>>>> 
>>>>> Am 12.05.2016 um 18:15 schrieb Maxim Solodovnik <solomax666@gmail.com
>>> :
>>>>> 
>>>>> Cool!
>>>>> 
>>>>> On Thu, May 12, 2016 at 10:10 PM, Tobias Soloschenko <
>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>> 
>>>>>> Hi,
>>>>>> 
>>>>>> I just managed to finish a PoC in which Apache Wicket runs on Jetty
>> with
>>>>>> http/2 and uses the Servlet 4.0 Spec / PushBuilder to provide
>> resources
>>>> to
>>>>>> the client.
>>>>>> 
>>>>>> Notes:
>>>>>> * Small API which can be added to increase the performance of the
>> webapp
>>>>>> with http/2
>>>>>> * No html changes required
>>>>>> 
>>>>>> References:
>>>>>> *
>> https://raw.githubusercontent.com/klopfdreh/jetty-http2-example/master/without_push.png
>>>>>> *
>> https://raw.githubusercontent.com/klopfdreh/jetty-http2-example/master/with_push.png
>>>>>> 
>>>>>> On localhost improved performance: 37ms latency without and 1ms
>> latency
>>>> to
>>>>>> serve the resource (CSS file)
>>>>>> 
>>>>>> Example Implementation:
>>>>>> *
>> https://github.com/klopfdreh/jetty-http2-example/blob/master/de.jetty.wicket.http2.example/src/main/java/de/jetty/wicket/http2/example/HTTP2Page.java#L28
>>>>>> 
>>>>>> Jetty Setup:
>>>>>> *
>> https://github.com/klopfdreh/jetty-http2-example/blob/master/de.jetty.wicket.http2.example/src/test/java/de/jetty/wicket/http2/example/Runner.java
>>>>>> 
>>>>>> hooray!
>>>>>> 
>>>>>> WDYT
>>>>>> 
>>>>>> kind regards
>>>>>> 
>>>>>> Tobias
>>>>> 
>>>>> 
>>>>> 
>>>>> --
>>>>> WBR
>>>>> Maxim aka solomax
>> 

Re: Apache Wicket rocks with http/2

Posted by Tobias Soloschenko <to...@googlemail.com>.
Hi Martin,

this is the third mail ( do you remember? ;-) ) - I fixed the build - 
can you retry it?

I had to re-add the types at this line:

private Set<String> urls = new ConcurrentHashSet<String>(new 
TreeSet<String>());

otherwise I got compile errors. I tried to add the following 
dependencies to my project and I tried to use the jetty implementation 
after mvn install, but I always receive the NoopPushBuilder somehow.

         <dependency>
<groupId>org.apache.wicket.experimental.wicket8</groupId>
             <artifactId>wicket-http2-jetty</artifactId>
             <version>0.1-SNAPSHOT</version>
         </dependency>

         <dependency>
<groupId>org.apache.wicket.experimental.wicket8</groupId>
             <artifactId>wicket-http2-core</artifactId>
             <version>0.1-SNAPSHOT</version>
         </dependency>

Is there anything I have to configure within the init mehod of my 
Application or something like this? I guess not because it is using the 
IInitializer interface.

kind regards

Tobias

Am 02.07.16 um 14:09 schrieb Martin Grigorov:
> Hi Tobias,
>
> Please check
> https://git1-us-west.apache.org/repos/asf?p=wicket.git;a=commit;h=5c06a916
> You will have to finish the impl of Jetty9PushBuilder. I wasn't able to
> find the jetty Maven dependency to make it building.
>
> Martin Grigorov
> Wicket Training and Consulting
> https://twitter.com/mtgrigorov
>
> On Sat, Jul 2, 2016 at 1:53 PM, Martin Grigorov <mg...@apache.org>
> wrote:
>
>> Hi Tobias,
>>
>> I'm working on it!
>>
>> Martin Grigorov
>> Wicket Training and Consulting
>> https://twitter.com/mtgrigorov
>>
>> On Sat, Jul 2, 2016 at 1:35 AM, Tobias Soloschenko <
>> tobiassoloschenko@googlemail.com> wrote:
>>
>>> Hi Martin,
>>>
>>> I prepared the structure a bit:
>>>
>>>
>>> https://github.com/apache/wicket/commit/eb730f2979dab6c937e87cefbbe84167cc5546e1
>>>
>>> - wicket-experimental
>>> --- wicket-http2
>>> ------ wicket-http2-core
>>> ------ wicket-http2-jetty
>>> ------ wicket-http2-tomcat
>>>
>>> * -core is providing the basic header item and make use of the
>>> IInitializers
>>> * -jetty, -tomcat, etc. are the implementations for the servers (I would
>>> suggest to use the maven dependencies but set them to provided so that
>>> there is no conflict within the running server.)
>>>
>>> Branch: "WICKET-6194"
>>>
>>> If you check it out there will be a compile error because of the line
>>> which is going to use the IInitializers callback to make use of the vendor
>>> specific PushBuilder API.
>>>
>>>
>>> https://github.com/apache/wicket/blob/eb730f2979dab6c937e87cefbbe84167cc5546e1/wicket-experimental/wicket-http2/wicket-http2-core/src/main/java/org/apache/wicket/http2/markup/head/PushHeaderItem.java#L77
>>>
>>> Can you give me a hint how to implement the IInitializers?
>>>
>>> kind regards
>>>
>>> Tobias
>>>
>>> Am 30.06.16 um 09:40 schrieb Martin Grigorov:
>>>
>>> I can add the Tomcat impl and docs how to setup Tomcat 8.5+ with HTTP2.
>>>> Martin Grigorov
>>>> Wicket Training and Consulting
>>>> https://twitter.com/mtgrigorov
>>>>
>>>> On Wed, Jun 29, 2016 at 6:27 PM, Tobias Soloschenko <
>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>
>>>> Jep - would be great until the servlet 4 API reaches the final state.
>>>>> I already reduced the usage of the container specific calls to one line.
>>>>> This line can be delegated to the IInitialzer class.
>>>>>
>>>>> I hope tomcat and other servers are implementing the PushBuilder API
>>>>> similar. If yes it is rather easy to create such an integration.
>>>>>
>>>>> kind regards
>>>>>
>>>>> Tobias
>>>>>
>>>>> Am 29.06.2016 um 17:41 schrieb Martin Grigorov <mg...@apache.org>:
>>>>>> Hi,
>>>>>>
>>>>>> What do you think about introducing PushBuilder-like API in
>>>>>> Wicket-core ?
>>>>>> The default implementation wil justl log warnings.
>>>>>> If an application wants to make use of this new functionality then it
>>>>>>
>>>>> will
>>>>>
>>>>>> have to add an additional jar to the classpath, e.g.
>>>>>> wicketstuff-pushbuilder-jetty9.jar, that will replace the default
>>>>>>
>>>>> strategy
>>>>>
>>>>>> (with IInitializer) with one that knows how to use Jetty9 internals.
>>>>>> Same
>>>>>> for Tomcat 8.5+ and any other container that provides this
>>>>>> functionality
>>>>>> with internal APIs.
>>>>>>
>>>>>>
>>>>>> Martin Grigorov
>>>>>> Wicket Training and Consulting
>>>>>> https://twitter.com/mtgrigorov
>>>>>>
>>>>>> On Tue, Jun 28, 2016 at 11:08 PM, Tobias Soloschenko <
>>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>>>
>>>>>> Hi,
>>>>>>> just a small update:
>>>>>>>
>>>>>>> I switched the implementation to servlet-4.0.0-b01 API as far as
>>>>>>>
>>>>>> possible:
>>>>>>>
>>>>> https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api/4.0.0-b01
>>>>>
>>>>>> The only thing I can do now is to wait for the JEE standard to be
>>>>>>> finalized and to be implemented into the servers like jetty, tomcat,
>>>>>>>
>>>>>> etc.
>>>>>> https://github.com/klopfdreh/jetty-http2-example
>>>>>>> kind regards
>>>>>>>
>>>>>>> Tobias
>>>>>>>
>>>>>>> Am 12.05.2016 um 18:15 schrieb Maxim Solodovnik <solomax666@gmail.com
>>>>>>> :
>>>>>>> Cool!
>>>>>>>> On Thu, May 12, 2016 at 10:10 PM, Tobias Soloschenko <
>>>>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>>>>>
>>>>>>>> Hi,
>>>>>>>>> I just managed to finish a PoC in which Apache Wicket runs on Jetty
>>>>>>>>>
>>>>>>>> with
>>>>>> http/2 and uses the Servlet 4.0 Spec / PushBuilder to provide
>>>>>>>> resources
>>>>>> to
>>>>>>>> the client.
>>>>>>>>> Notes:
>>>>>>>>> * Small API which can be added to increase the performance of the
>>>>>>>>>
>>>>>>>> webapp
>>>>>> with http/2
>>>>>>>>> * No html changes required
>>>>>>>>>
>>>>>>>>> References:
>>>>>>>>> *
>>>>>>>>>
>>>>> https://raw.githubusercontent.com/klopfdreh/jetty-http2-example/master/without_push.png
>>>>>
>>>>>> *
>>>>> https://raw.githubusercontent.com/klopfdreh/jetty-http2-example/master/with_push.png
>>>>>
>>>>>> On localhost improved performance: 37ms latency without and 1ms
>>>>>>>> latency
>>>>>> to
>>>>>>>> serve the resource (CSS file)
>>>>>>>>> Example Implementation:
>>>>>>>>> *
>>>>>>>>>
>>>>> https://github.com/klopfdreh/jetty-http2-example/blob/master/de.jetty.wicket.http2.example/src/main/java/de/jetty/wicket/http2/example/HTTP2Page.java#L28
>>>>>
>>>>>> Jetty Setup:
>>>>>>>>> *
>>>>>>>>>
>>>>> https://github.com/klopfdreh/jetty-http2-example/blob/master/de.jetty.wicket.http2.example/src/test/java/de/jetty/wicket/http2/example/Runner.java
>>>>>
>>>>>> hooray!
>>>>>>>>> WDYT
>>>>>>>>>
>>>>>>>>> kind regards
>>>>>>>>>
>>>>>>>>> Tobias
>>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> WBR
>>>>>>>> Maxim aka solomax
>>>>>>>>


Re: Apache Wicket rocks with http/2

Posted by Tobias Soloschenko <to...@googlemail.com>.
Hi,

really strange - the build fails:

https://ci.apache.org/builders/wicket-master/builds/422

the dependency is available. Someone know why this is not working on the build server?

kind regards

Tobias

> Am 03.07.2016 um 09:24 schrieb Martin Grigorov <ma...@gmail.com>:
> 
> Great!
> 
> I haven't tested it yet with Tomcat.
> 
> I remember reading that Undertow were planning to implement PushBuilder but
> I am not sure whether they are ready.
> On Jul 3, 2016 10:20 AM, "Tobias Soloschenko" <
> tobiassoloschenko@googlemail.com> wrote:
> 
>> Hi,
>> 
>> everything is working, now.
>> 
>> * Fixed the build for jetty
>> * moved resources to src/main/resources (they were at src/resources and
>> not included in the build)
>> * Jetty implementation is working for me (tested it with my webapp)
>> 
>> @Martin: Can you test it for tomcat? I assume it is working, too. Should
>> we also implement it for other server?
>> 
>> kind regards
>> 
>> Tobias
>> 
>>> Am 02.07.16 um 14:09 schrieb Martin Grigorov:
>>> 
>>> Hi Tobias,
>>> 
>>> Please check
>>> https://git1-us-west.apache.org/repos/asf?p=wicket.git;a=commit;h=5c06a916
>>> You will have to finish the impl of Jetty9PushBuilder. I wasn't able to
>>> find the jetty Maven dependency to make it building.
>>> 
>>> Martin Grigorov
>>> Wicket Training and Consulting
>>> https://twitter.com/mtgrigorov
>>> 
>>> On Sat, Jul 2, 2016 at 1:53 PM, Martin Grigorov <mg...@apache.org>
>>> wrote:
>>> 
>>> Hi Tobias,
>>>> 
>>>> I'm working on it!
>>>> 
>>>> Martin Grigorov
>>>> Wicket Training and Consulting
>>>> https://twitter.com/mtgrigorov
>>>> 
>>>> On Sat, Jul 2, 2016 at 1:35 AM, Tobias Soloschenko <
>>>> tobiassoloschenko@googlemail.com> wrote:
>>>> 
>>>> Hi Martin,
>>>>> 
>>>>> I prepared the structure a bit:
>>>>> 
>>>>> 
>>>>> 
>>>>> https://github.com/apache/wicket/commit/eb730f2979dab6c937e87cefbbe84167cc5546e1
>>>>> 
>>>>> - wicket-experimental
>>>>> --- wicket-http2
>>>>> ------ wicket-http2-core
>>>>> ------ wicket-http2-jetty
>>>>> ------ wicket-http2-tomcat
>>>>> 
>>>>> * -core is providing the basic header item and make use of the
>>>>> IInitializers
>>>>> * -jetty, -tomcat, etc. are the implementations for the servers (I would
>>>>> suggest to use the maven dependencies but set them to provided so that
>>>>> there is no conflict within the running server.)
>>>>> 
>>>>> Branch: "WICKET-6194"
>>>>> 
>>>>> If you check it out there will be a compile error because of the line
>>>>> which is going to use the IInitializers callback to make use of the
>>>>> vendor
>>>>> specific PushBuilder API.
>>>>> 
>>>>> 
>>>>> 
>>>>> https://github.com/apache/wicket/blob/eb730f2979dab6c937e87cefbbe84167cc5546e1/wicket-experimental/wicket-http2/wicket-http2-core/src/main/java/org/apache/wicket/http2/markup/head/PushHeaderItem.java#L77
>>>>> 
>>>>> Can you give me a hint how to implement the IInitializers?
>>>>> 
>>>>> kind regards
>>>>> 
>>>>> Tobias
>>>>> 
>>>>> Am 30.06.16 um 09:40 schrieb Martin Grigorov:
>>>>> 
>>>>> I can add the Tomcat impl and docs how to setup Tomcat 8.5+ with HTTP2.
>>>>> 
>>>>>> Martin Grigorov
>>>>>> Wicket Training and Consulting
>>>>>> https://twitter.com/mtgrigorov
>>>>>> 
>>>>>> On Wed, Jun 29, 2016 at 6:27 PM, Tobias Soloschenko <
>>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>>> 
>>>>>> Jep - would be great until the servlet 4 API reaches the final state.
>>>>>> 
>>>>>>> I already reduced the usage of the container specific calls to one
>>>>>>> line.
>>>>>>> This line can be delegated to the IInitialzer class.
>>>>>>> 
>>>>>>> I hope tomcat and other servers are implementing the PushBuilder API
>>>>>>> similar. If yes it is rather easy to create such an integration.
>>>>>>> 
>>>>>>> kind regards
>>>>>>> 
>>>>>>> Tobias
>>>>>>> 
>>>>>>> Am 29.06.2016 um 17:41 schrieb Martin Grigorov <mgrigorov@apache.org
>>>>>>>> :
>>>>>>> 
>>>>>>>> Hi,
>>>>>>>> 
>>>>>>>> What do you think about introducing PushBuilder-like API in
>>>>>>>> Wicket-core ?
>>>>>>>> The default implementation wil justl log warnings.
>>>>>>>> If an application wants to make use of this new functionality then it
>>>>>>>> 
>>>>>>>> will
>>>>>>> 
>>>>>>> have to add an additional jar to the classpath, e.g.
>>>>>>>> wicketstuff-pushbuilder-jetty9.jar, that will replace the default
>>>>>>>> 
>>>>>>>> strategy
>>>>>>> 
>>>>>>> (with IInitializer) with one that knows how to use Jetty9 internals.
>>>>>>>> Same
>>>>>>>> for Tomcat 8.5+ and any other container that provides this
>>>>>>>> functionality
>>>>>>>> with internal APIs.
>>>>>>>> 
>>>>>>>> 
>>>>>>>> Martin Grigorov
>>>>>>>> Wicket Training and Consulting
>>>>>>>> https://twitter.com/mtgrigorov
>>>>>>>> 
>>>>>>>> On Tue, Jun 28, 2016 at 11:08 PM, Tobias Soloschenko <
>>>>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>>>>> 
>>>>>>>> Hi,
>>>>>>>> 
>>>>>>>>> just a small update:
>>>>>>>>> 
>>>>>>>>> I switched the implementation to servlet-4.0.0-b01 API as far as
>>>>>>>>> 
>>>>>>>>> possible:
>>>>>>>> 
>>>>>>> https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api/4.0.0-b01
>>>>>>> 
>>>>>>> The only thing I can do now is to wait for the JEE standard to be
>>>>>>>> 
>>>>>>>>> finalized and to be implemented into the servers like jetty, tomcat,
>>>>>>>>> 
>>>>>>>>> etc.
>>>>>>>> https://github.com/klopfdreh/jetty-http2-example
>>>>>>>> 
>>>>>>>>> kind regards
>>>>>>>>> 
>>>>>>>>> Tobias
>>>>>>>>> 
>>>>>>>>> Am 12.05.2016 um 18:15 schrieb Maxim Solodovnik <
>>>>>>>>> solomax666@gmail.com
>>>>>>>>> :
>>>>>>>>> Cool!
>>>>>>>>> 
>>>>>>>>>> On Thu, May 12, 2016 at 10:10 PM, Tobias Soloschenko <
>>>>>>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>>>>>>> 
>>>>>>>>>> Hi,
>>>>>>>>>> 
>>>>>>>>>>> I just managed to finish a PoC in which Apache Wicket runs on
>>>>>>>>>>> Jetty
>>>>>>>>>>> 
>>>>>>>>>>> with
>>>>>>>>> http/2 and uses the Servlet 4.0 Spec / PushBuilder to provide
>>>>>>>> 
>>>>>>>>> resources
>>>>>>>>> to
>>>>>>>> 
>>>>>>>>> the client.
>>>>>>>>>> 
>>>>>>>>>>> Notes:
>>>>>>>>>>> * Small API which can be added to increase the performance of the
>>>>>>>>>>> 
>>>>>>>>>>> webapp
>>>>>>>>> with http/2
>>>>>>>> 
>>>>>>>>> * No html changes required
>>>>>>>>>>> 
>>>>>>>>>>> References:
>>>>>>>>>>> *
>>>>>>> https://raw.githubusercontent.com/klopfdreh/jetty-http2-example/master/without_push.png
>>>>>>> 
>>>>>>> *
>>>>>>> 
>>>>>>> https://raw.githubusercontent.com/klopfdreh/jetty-http2-example/master/with_push.png
>>>>>>> 
>>>>>>> On localhost improved performance: 37ms latency without and 1ms
>>>>>>>> 
>>>>>>>>> latency
>>>>>>>>> to
>>>>>>>> 
>>>>>>>>> serve the resource (CSS file)
>>>>>>>>>> 
>>>>>>>>>>> Example Implementation:
>>>>>>>>>>> *
>>>>>>> https://github.com/klopfdreh/jetty-http2-example/blob/master/de.jetty.wicket.http2.example/src/main/java/de/jetty/wicket/http2/example/HTTP2Page.java#L28
>>>>>>> 
>>>>>>> Jetty Setup:
>>>>>>>> 
>>>>>>>>> *
>>>>>>> https://github.com/klopfdreh/jetty-http2-example/blob/master/de.jetty.wicket.http2.example/src/test/java/de/jetty/wicket/http2/example/Runner.java
>>>>>>> 
>>>>>>> hooray!
>>>>>>>> 
>>>>>>>>> WDYT
>>>>>>>>>>> 
>>>>>>>>>>> kind regards
>>>>>>>>>>> 
>>>>>>>>>>> Tobias
>>>>>>>>>> --
>>>>>>>>>> WBR
>>>>>>>>>> Maxim aka solomax
>> 

Re: Apache Wicket rocks with http/2

Posted by Tobias Soloschenko <to...@googlemail.com>.
> Am 11.07.2016 um 21:37 schrieb Martin Grigorov <ma...@gmail.com>:
> 
> On Jul 11, 2016 9:18 PM, "Tobias Soloschenko" <
> tobiassoloschenko@googlemail.com> wrote:
>> 
>> Hi Martin,
>> 
>> I wrote a chapter in the user guide.
> 
> Great!
> 
>> I think we should advice the user to read the documentation of the vendor
> specific server to setup http/2. I also added the
> 
> Yes, I guess this would be better.
> 
>> core module to the parent pom as jar dependency.
> 
> Why ? What's the use case?
> Applications will use it transitively

If a user wants to add an addition implementation. He can easily add the core dependency and write a different PushBuilder Impl.

> 
>> 
>> kind regards
>> 
>> Tobias
>> 
>>> Am 11.07.16 um 18:17 schrieb Martin Grigorov:
>>> 
>>> I've fixed it!
>>> 
>>> I'll test the Tomcat module and document how to use it later this week!
>>> 
>>> Martin Grigorov
>>> Wicket Training and Consulting
>>> https://twitter.com/mtgrigorov
>>> 
>>> On Mon, Jul 11, 2016 at 8:25 AM, Tobias Soloschenko <
>>> tobiassoloschenko@googlemail.com> wrote:
>>> 
>>>> Hi,
>>>> 
>>>> I think I managed to solve the dependency errors yesterday - I am going
> to
>>>> commit the changes later this day.
>>>> 
>>>> kind regards
>>>> 
>>>> Tobias
>>>> 
>>>>> Am 03.07.2016 um 09:24 schrieb Martin Grigorov <
>>>> 
>>>> martin.grigorov@gmail.com>:
>>>>> 
>>>>> Great!
>>>>> 
>>>>> I haven't tested it yet with Tomcat.
>>>>> 
>>>>> I remember reading that Undertow were planning to implement PushBuilder
>>>> 
>>>> but
>>>>> 
>>>>> I am not sure whether they are ready.
>>>>> On Jul 3, 2016 10:20 AM, "Tobias Soloschenko" <
>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>> 
>>>>>> Hi,
>>>>>> 
>>>>>> everything is working, now.
>>>>>> 
>>>>>> * Fixed the build for jetty
>>>>>> * moved resources to src/main/resources (they were at src/resources
> and
>>>>>> not included in the build)
>>>>>> * Jetty implementation is working for me (tested it with my webapp)
>>>>>> 
>>>>>> @Martin: Can you test it for tomcat? I assume it is working, too.
> Should
>>>>>> we also implement it for other server?
>>>>>> 
>>>>>> kind regards
>>>>>> 
>>>>>> Tobias
>>>>>> 
>>>>>>> Am 02.07.16 um 14:09 schrieb Martin Grigorov:
>>>>>>> 
>>>>>>> Hi Tobias,
>>>>>>> 
>>>>>>> Please check
> https://git1-us-west.apache.org/repos/asf?p=wicket.git;a=commit;h=5c06a916
>>>>>>> 
>>>>>>> You will have to finish the impl of Jetty9PushBuilder. I wasn't able
> to
>>>>>>> find the jetty Maven dependency to make it building.
>>>>>>> 
>>>>>>> Martin Grigorov
>>>>>>> Wicket Training and Consulting
>>>>>>> https://twitter.com/mtgrigorov
>>>>>>> 
>>>>>>> On Sat, Jul 2, 2016 at 1:53 PM, Martin Grigorov <mgrigorov@apache.org
>> 
>>>>>>> wrote:
>>>>>>> 
>>>>>>> Hi Tobias,
>>>>>>>> 
>>>>>>>> I'm working on it!
>>>>>>>> 
>>>>>>>> Martin Grigorov
>>>>>>>> Wicket Training and Consulting
>>>>>>>> https://twitter.com/mtgrigorov
>>>>>>>> 
>>>>>>>> On Sat, Jul 2, 2016 at 1:35 AM, Tobias Soloschenko <
>>>>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>>>>> 
>>>>>>>> Hi Martin,
>>>>>>>>> 
>>>>>>>>> I prepared the structure a bit:
> https://github.com/apache/wicket/commit/eb730f2979dab6c937e87cefbbe84167cc5546e1
>>>>>>>>> 
>>>>>>>>> - wicket-experimental
>>>>>>>>> --- wicket-http2
>>>>>>>>> ------ wicket-http2-core
>>>>>>>>> ------ wicket-http2-jetty
>>>>>>>>> ------ wicket-http2-tomcat
>>>>>>>>> 
>>>>>>>>> * -core is providing the basic header item and make use of the
>>>>>>>>> IInitializers
>>>>>>>>> * -jetty, -tomcat, etc. are the implementations for the servers (I
>>>> 
>>>> would
>>>>>>>>> 
>>>>>>>>> suggest to use the maven dependencies but set them to provided so
>>>> 
>>>> that
>>>>>>>>> 
>>>>>>>>> there is no conflict within the running server.)
>>>>>>>>> 
>>>>>>>>> Branch: "WICKET-6194"
>>>>>>>>> 
>>>>>>>>> If you check it out there will be a compile error because of the
> line
>>>>>>>>> which is going to use the IInitializers callback to make use of the
>>>>>>>>> vendor
>>>>>>>>> specific PushBuilder API.
> https://github.com/apache/wicket/blob/eb730f2979dab6c937e87cefbbe84167cc5546e1/wicket-experimental/wicket-http2/wicket-http2-core/src/main/java/org/apache/wicket/http2/markup/head/PushHeaderItem.java#L77
>>>>>>>>> 
>>>>>>>>> Can you give me a hint how to implement the IInitializers?
>>>>>>>>> 
>>>>>>>>> kind regards
>>>>>>>>> 
>>>>>>>>> Tobias
>>>>>>>>> 
>>>>>>>>> Am 30.06.16 um 09:40 schrieb Martin Grigorov:
>>>>>>>>> 
>>>>>>>>> I can add the Tomcat impl and docs how to setup Tomcat 8.5+ with
>>>> 
>>>> HTTP2.
>>>>>>>>>> 
>>>>>>>>>> Martin Grigorov
>>>>>>>>>> Wicket Training and Consulting
>>>>>>>>>> https://twitter.com/mtgrigorov
>>>>>>>>>> 
>>>>>>>>>> On Wed, Jun 29, 2016 at 6:27 PM, Tobias Soloschenko <
>>>>>>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>>>>>>> 
>>>>>>>>>> Jep - would be great until the servlet 4 API reaches the final
>>>> 
>>>> state.
>>>>>>>>>>> 
>>>>>>>>>>> I already reduced the usage of the container specific calls to
> one
>>>>>>>>>>> line.
>>>>>>>>>>> This line can be delegated to the IInitialzer class.
>>>>>>>>>>> 
>>>>>>>>>>> I hope tomcat and other servers are implementing the PushBuilder
>>>> 
>>>> API
>>>>>>>>>>> 
>>>>>>>>>>> similar. If yes it is rather easy to create such an integration.
>>>>>>>>>>> 
>>>>>>>>>>> kind regards
>>>>>>>>>>> 
>>>>>>>>>>> Tobias
>>>>>>>>>>> 
>>>>>>>>>>> Am 29.06.2016 um 17:41 schrieb Martin Grigorov <
>>>> 
>>>> mgrigorov@apache.org
>>>>>>>>>>>> 
>>>>>>>>>>>> :
>>>>>>>>>>>> Hi,
>>>>>>>>>>>> 
>>>>>>>>>>>> What do you think about introducing PushBuilder-like API in
>>>>>>>>>>>> Wicket-core ?
>>>>>>>>>>>> The default implementation wil justl log warnings.
>>>>>>>>>>>> If an application wants to make use of this new functionality
>>>> 
>>>> then it
>>>>>>>>>>>> 
>>>>>>>>>>>> will
>>>>>>>>>>> 
>>>>>>>>>>> have to add an additional jar to the classpath, e.g.
>>>>>>>>>>>> 
>>>>>>>>>>>> wicketstuff-pushbuilder-jetty9.jar, that will replace the
> default
>>>>>>>>>>>> 
>>>>>>>>>>>> strategy
>>>>>>>>>>> 
>>>>>>>>>>> (with IInitializer) with one that knows how to use Jetty9
>>>> 
>>>> internals.
>>>>>>>>>>>> 
>>>>>>>>>>>> Same
>>>>>>>>>>>> for Tomcat 8.5+ and any other container that provides this
>>>>>>>>>>>> functionality
>>>>>>>>>>>> with internal APIs.
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> Martin Grigorov
>>>>>>>>>>>> Wicket Training and Consulting
>>>>>>>>>>>> https://twitter.com/mtgrigorov
>>>>>>>>>>>> 
>>>>>>>>>>>> On Tue, Jun 28, 2016 at 11:08 PM, Tobias Soloschenko <
>>>>>>>>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>>>>>>>>> 
>>>>>>>>>>>> Hi,
>>>>>>>>>>>> 
>>>>>>>>>>>>> just a small update:
>>>>>>>>>>>>> 
>>>>>>>>>>>>> I switched the implementation to servlet-4.0.0-b01 API as far
> as
>>>>>>>>>>>>> 
>>>>>>>>>>>>> possible:
> https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api/4.0.0-b01
>>>>>>>>>>> 
>>>>>>>>>>> The only thing I can do now is to wait for the JEE standard to be
>>>>>>>>>>>>> 
>>>>>>>>>>>>> finalized and to be implemented into the servers like jetty,
>>>> 
>>>> tomcat,
>>>>>>>>>>>>> 
>>>>>>>>>>>>> etc.
>>>>>>>>>>>> 
>>>>>>>>>>>> https://github.com/klopfdreh/jetty-http2-example
>>>>>>>>>>>> 
>>>>>>>>>>>>> kind regards
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Tobias
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Am 12.05.2016 um 18:15 schrieb Maxim Solodovnik <
>>>>>>>>>>>>> solomax666@gmail.com
>>>>>>>>>>>>> :
>>>>>>>>>>>>> Cool!
>>>>>>>>>>>>> 
>>>>>>>>>>>>>> On Thu, May 12, 2016 at 10:10 PM, Tobias Soloschenko <
>>>>>>>>>>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Hi,
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> I just managed to finish a PoC in which Apache Wicket runs on
>>>>>>>>>>>>>>> Jetty
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> with
>>>>>>>>>>>>> 
>>>>>>>>>>>>> http/2 and uses the Servlet 4.0 Spec / PushBuilder to provide
>>>>>>>>>>>>> resources
>>>>>>>>>>>>> to
>>>>>>>>>>>>> the client.
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> Notes:
>>>>>>>>>>>>>>> * Small API which can be added to increase the performance of
>>>> 
>>>> the
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> webapp
>>>>>>>>>>>>> 
>>>>>>>>>>>>> with http/2
>>>>>>>>>>>>> * No html changes required
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> References:
>>>>>>>>>>>>>>> *
> https://raw.githubusercontent.com/klopfdreh/jetty-http2-example/master/without_push.png
>>>>>>>>>>> 
>>>>>>>>>>> *
> https://raw.githubusercontent.com/klopfdreh/jetty-http2-example/master/with_push.png
>>>>>>>>>>> 
>>>>>>>>>>> On localhost improved performance: 37ms latency without and 1ms
>>>>>>>>>>>>> 
>>>>>>>>>>>>> latency
>>>>>>>>>>>>> to
>>>>>>>>>>>>> serve the resource (CSS file)
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> Example Implementation:
>>>>>>>>>>>>>>> *
> https://github.com/klopfdreh/jetty-http2-example/blob/master/de.jetty.wicket.http2.example/src/main/java/de/jetty/wicket/http2/example/HTTP2Page.java#L28
>>>>>>>>>>> 
>>>>>>>>>>> Jetty Setup:
>>>>>>>>>>>>> 
>>>>>>>>>>>>> *
> https://github.com/klopfdreh/jetty-http2-example/blob/master/de.jetty.wicket.http2.example/src/test/java/de/jetty/wicket/http2/example/Runner.java
>>>>>>>>>>> 
>>>>>>>>>>> hooray!
>>>>>>>>>>>>> 
>>>>>>>>>>>>> WDYT
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> kind regards
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> Tobias
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> --
>>>>>>>>>>>>>> WBR
>>>>>>>>>>>>>> Maxim aka solomax
>> 
>> 

Re: Apache Wicket rocks with http/2

Posted by Tobias Soloschenko <to...@googlemail.com>.
But in the documentation we can split the information. One for the defined servers and one sub chapter how to implement a now PushBuilder

kind regards

Tobias

> Am 11.07.2016 um 21:37 schrieb Martin Grigorov <ma...@gmail.com>:
> 
> On Jul 11, 2016 9:18 PM, "Tobias Soloschenko" <
> tobiassoloschenko@googlemail.com> wrote:
>> 
>> Hi Martin,
>> 
>> I wrote a chapter in the user guide.
> 
> Great!
> 
>> I think we should advice the user to read the documentation of the vendor
> specific server to setup http/2. I also added the
> 
> Yes, I guess this would be better.
> 
>> core module to the parent pom as jar dependency.
> 
> Why ? What's the use case?
> Applications will use it transitively
> 
>> 
>> kind regards
>> 
>> Tobias
>> 
>>> Am 11.07.16 um 18:17 schrieb Martin Grigorov:
>>> 
>>> I've fixed it!
>>> 
>>> I'll test the Tomcat module and document how to use it later this week!
>>> 
>>> Martin Grigorov
>>> Wicket Training and Consulting
>>> https://twitter.com/mtgrigorov
>>> 
>>> On Mon, Jul 11, 2016 at 8:25 AM, Tobias Soloschenko <
>>> tobiassoloschenko@googlemail.com> wrote:
>>> 
>>>> Hi,
>>>> 
>>>> I think I managed to solve the dependency errors yesterday - I am going
> to
>>>> commit the changes later this day.
>>>> 
>>>> kind regards
>>>> 
>>>> Tobias
>>>> 
>>>>> Am 03.07.2016 um 09:24 schrieb Martin Grigorov <
>>>> 
>>>> martin.grigorov@gmail.com>:
>>>>> 
>>>>> Great!
>>>>> 
>>>>> I haven't tested it yet with Tomcat.
>>>>> 
>>>>> I remember reading that Undertow were planning to implement PushBuilder
>>>> 
>>>> but
>>>>> 
>>>>> I am not sure whether they are ready.
>>>>> On Jul 3, 2016 10:20 AM, "Tobias Soloschenko" <
>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>> 
>>>>>> Hi,
>>>>>> 
>>>>>> everything is working, now.
>>>>>> 
>>>>>> * Fixed the build for jetty
>>>>>> * moved resources to src/main/resources (they were at src/resources
> and
>>>>>> not included in the build)
>>>>>> * Jetty implementation is working for me (tested it with my webapp)
>>>>>> 
>>>>>> @Martin: Can you test it for tomcat? I assume it is working, too.
> Should
>>>>>> we also implement it for other server?
>>>>>> 
>>>>>> kind regards
>>>>>> 
>>>>>> Tobias
>>>>>> 
>>>>>>> Am 02.07.16 um 14:09 schrieb Martin Grigorov:
>>>>>>> 
>>>>>>> Hi Tobias,
>>>>>>> 
>>>>>>> Please check
> https://git1-us-west.apache.org/repos/asf?p=wicket.git;a=commit;h=5c06a916
>>>>>>> 
>>>>>>> You will have to finish the impl of Jetty9PushBuilder. I wasn't able
> to
>>>>>>> find the jetty Maven dependency to make it building.
>>>>>>> 
>>>>>>> Martin Grigorov
>>>>>>> Wicket Training and Consulting
>>>>>>> https://twitter.com/mtgrigorov
>>>>>>> 
>>>>>>> On Sat, Jul 2, 2016 at 1:53 PM, Martin Grigorov <mgrigorov@apache.org
>> 
>>>>>>> wrote:
>>>>>>> 
>>>>>>> Hi Tobias,
>>>>>>>> 
>>>>>>>> I'm working on it!
>>>>>>>> 
>>>>>>>> Martin Grigorov
>>>>>>>> Wicket Training and Consulting
>>>>>>>> https://twitter.com/mtgrigorov
>>>>>>>> 
>>>>>>>> On Sat, Jul 2, 2016 at 1:35 AM, Tobias Soloschenko <
>>>>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>>>>> 
>>>>>>>> Hi Martin,
>>>>>>>>> 
>>>>>>>>> I prepared the structure a bit:
> https://github.com/apache/wicket/commit/eb730f2979dab6c937e87cefbbe84167cc5546e1
>>>>>>>>> 
>>>>>>>>> - wicket-experimental
>>>>>>>>> --- wicket-http2
>>>>>>>>> ------ wicket-http2-core
>>>>>>>>> ------ wicket-http2-jetty
>>>>>>>>> ------ wicket-http2-tomcat
>>>>>>>>> 
>>>>>>>>> * -core is providing the basic header item and make use of the
>>>>>>>>> IInitializers
>>>>>>>>> * -jetty, -tomcat, etc. are the implementations for the servers (I
>>>> 
>>>> would
>>>>>>>>> 
>>>>>>>>> suggest to use the maven dependencies but set them to provided so
>>>> 
>>>> that
>>>>>>>>> 
>>>>>>>>> there is no conflict within the running server.)
>>>>>>>>> 
>>>>>>>>> Branch: "WICKET-6194"
>>>>>>>>> 
>>>>>>>>> If you check it out there will be a compile error because of the
> line
>>>>>>>>> which is going to use the IInitializers callback to make use of the
>>>>>>>>> vendor
>>>>>>>>> specific PushBuilder API.
> https://github.com/apache/wicket/blob/eb730f2979dab6c937e87cefbbe84167cc5546e1/wicket-experimental/wicket-http2/wicket-http2-core/src/main/java/org/apache/wicket/http2/markup/head/PushHeaderItem.java#L77
>>>>>>>>> 
>>>>>>>>> Can you give me a hint how to implement the IInitializers?
>>>>>>>>> 
>>>>>>>>> kind regards
>>>>>>>>> 
>>>>>>>>> Tobias
>>>>>>>>> 
>>>>>>>>> Am 30.06.16 um 09:40 schrieb Martin Grigorov:
>>>>>>>>> 
>>>>>>>>> I can add the Tomcat impl and docs how to setup Tomcat 8.5+ with
>>>> 
>>>> HTTP2.
>>>>>>>>>> 
>>>>>>>>>> Martin Grigorov
>>>>>>>>>> Wicket Training and Consulting
>>>>>>>>>> https://twitter.com/mtgrigorov
>>>>>>>>>> 
>>>>>>>>>> On Wed, Jun 29, 2016 at 6:27 PM, Tobias Soloschenko <
>>>>>>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>>>>>>> 
>>>>>>>>>> Jep - would be great until the servlet 4 API reaches the final
>>>> 
>>>> state.
>>>>>>>>>>> 
>>>>>>>>>>> I already reduced the usage of the container specific calls to
> one
>>>>>>>>>>> line.
>>>>>>>>>>> This line can be delegated to the IInitialzer class.
>>>>>>>>>>> 
>>>>>>>>>>> I hope tomcat and other servers are implementing the PushBuilder
>>>> 
>>>> API
>>>>>>>>>>> 
>>>>>>>>>>> similar. If yes it is rather easy to create such an integration.
>>>>>>>>>>> 
>>>>>>>>>>> kind regards
>>>>>>>>>>> 
>>>>>>>>>>> Tobias
>>>>>>>>>>> 
>>>>>>>>>>> Am 29.06.2016 um 17:41 schrieb Martin Grigorov <
>>>> 
>>>> mgrigorov@apache.org
>>>>>>>>>>>> 
>>>>>>>>>>>> :
>>>>>>>>>>>> Hi,
>>>>>>>>>>>> 
>>>>>>>>>>>> What do you think about introducing PushBuilder-like API in
>>>>>>>>>>>> Wicket-core ?
>>>>>>>>>>>> The default implementation wil justl log warnings.
>>>>>>>>>>>> If an application wants to make use of this new functionality
>>>> 
>>>> then it
>>>>>>>>>>>> 
>>>>>>>>>>>> will
>>>>>>>>>>> 
>>>>>>>>>>> have to add an additional jar to the classpath, e.g.
>>>>>>>>>>>> 
>>>>>>>>>>>> wicketstuff-pushbuilder-jetty9.jar, that will replace the
> default
>>>>>>>>>>>> 
>>>>>>>>>>>> strategy
>>>>>>>>>>> 
>>>>>>>>>>> (with IInitializer) with one that knows how to use Jetty9
>>>> 
>>>> internals.
>>>>>>>>>>>> 
>>>>>>>>>>>> Same
>>>>>>>>>>>> for Tomcat 8.5+ and any other container that provides this
>>>>>>>>>>>> functionality
>>>>>>>>>>>> with internal APIs.
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> Martin Grigorov
>>>>>>>>>>>> Wicket Training and Consulting
>>>>>>>>>>>> https://twitter.com/mtgrigorov
>>>>>>>>>>>> 
>>>>>>>>>>>> On Tue, Jun 28, 2016 at 11:08 PM, Tobias Soloschenko <
>>>>>>>>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>>>>>>>>> 
>>>>>>>>>>>> Hi,
>>>>>>>>>>>> 
>>>>>>>>>>>>> just a small update:
>>>>>>>>>>>>> 
>>>>>>>>>>>>> I switched the implementation to servlet-4.0.0-b01 API as far
> as
>>>>>>>>>>>>> 
>>>>>>>>>>>>> possible:
> https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api/4.0.0-b01
>>>>>>>>>>> 
>>>>>>>>>>> The only thing I can do now is to wait for the JEE standard to be
>>>>>>>>>>>>> 
>>>>>>>>>>>>> finalized and to be implemented into the servers like jetty,
>>>> 
>>>> tomcat,
>>>>>>>>>>>>> 
>>>>>>>>>>>>> etc.
>>>>>>>>>>>> 
>>>>>>>>>>>> https://github.com/klopfdreh/jetty-http2-example
>>>>>>>>>>>> 
>>>>>>>>>>>>> kind regards
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Tobias
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Am 12.05.2016 um 18:15 schrieb Maxim Solodovnik <
>>>>>>>>>>>>> solomax666@gmail.com
>>>>>>>>>>>>> :
>>>>>>>>>>>>> Cool!
>>>>>>>>>>>>> 
>>>>>>>>>>>>>> On Thu, May 12, 2016 at 10:10 PM, Tobias Soloschenko <
>>>>>>>>>>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Hi,
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> I just managed to finish a PoC in which Apache Wicket runs on
>>>>>>>>>>>>>>> Jetty
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> with
>>>>>>>>>>>>> 
>>>>>>>>>>>>> http/2 and uses the Servlet 4.0 Spec / PushBuilder to provide
>>>>>>>>>>>>> resources
>>>>>>>>>>>>> to
>>>>>>>>>>>>> the client.
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> Notes:
>>>>>>>>>>>>>>> * Small API which can be added to increase the performance of
>>>> 
>>>> the
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> webapp
>>>>>>>>>>>>> 
>>>>>>>>>>>>> with http/2
>>>>>>>>>>>>> * No html changes required
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> References:
>>>>>>>>>>>>>>> *
> https://raw.githubusercontent.com/klopfdreh/jetty-http2-example/master/without_push.png
>>>>>>>>>>> 
>>>>>>>>>>> *
> https://raw.githubusercontent.com/klopfdreh/jetty-http2-example/master/with_push.png
>>>>>>>>>>> 
>>>>>>>>>>> On localhost improved performance: 37ms latency without and 1ms
>>>>>>>>>>>>> 
>>>>>>>>>>>>> latency
>>>>>>>>>>>>> to
>>>>>>>>>>>>> serve the resource (CSS file)
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> Example Implementation:
>>>>>>>>>>>>>>> *
> https://github.com/klopfdreh/jetty-http2-example/blob/master/de.jetty.wicket.http2.example/src/main/java/de/jetty/wicket/http2/example/HTTP2Page.java#L28
>>>>>>>>>>> 
>>>>>>>>>>> Jetty Setup:
>>>>>>>>>>>>> 
>>>>>>>>>>>>> *
> https://github.com/klopfdreh/jetty-http2-example/blob/master/de.jetty.wicket.http2.example/src/test/java/de/jetty/wicket/http2/example/Runner.java
>>>>>>>>>>> 
>>>>>>>>>>> hooray!
>>>>>>>>>>>>> 
>>>>>>>>>>>>> WDYT
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> kind regards
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> Tobias
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> --
>>>>>>>>>>>>>> WBR
>>>>>>>>>>>>>> Maxim aka solomax
>> 
>> 

Re: Apache Wicket rocks with http/2

Posted by Martin Grigorov <ma...@gmail.com>.
On Jul 11, 2016 9:18 PM, "Tobias Soloschenko" <
tobiassoloschenko@googlemail.com> wrote:
>
> Hi Martin,
>
> I wrote a chapter in the user guide.

Great!

> I think we should advice the user to read the documentation of the vendor
specific server to setup http/2. I also added the

Yes, I guess this would be better.

> core module to the parent pom as jar dependency.

Why ? What's the use case?
Applications will use it transitively

>
> kind regards
>
> Tobias
>
> Am 11.07.16 um 18:17 schrieb Martin Grigorov:
>
>> I've fixed it!
>>
>> I'll test the Tomcat module and document how to use it later this week!
>>
>> Martin Grigorov
>> Wicket Training and Consulting
>> https://twitter.com/mtgrigorov
>>
>> On Mon, Jul 11, 2016 at 8:25 AM, Tobias Soloschenko <
>> tobiassoloschenko@googlemail.com> wrote:
>>
>>> Hi,
>>>
>>> I think I managed to solve the dependency errors yesterday - I am going
to
>>> commit the changes later this day.
>>>
>>> kind regards
>>>
>>> Tobias
>>>
>>>> Am 03.07.2016 um 09:24 schrieb Martin Grigorov <
>>>
>>> martin.grigorov@gmail.com>:
>>>>
>>>> Great!
>>>>
>>>> I haven't tested it yet with Tomcat.
>>>>
>>>> I remember reading that Undertow were planning to implement PushBuilder
>>>
>>> but
>>>>
>>>> I am not sure whether they are ready.
>>>> On Jul 3, 2016 10:20 AM, "Tobias Soloschenko" <
>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> everything is working, now.
>>>>>
>>>>> * Fixed the build for jetty
>>>>> * moved resources to src/main/resources (they were at src/resources
and
>>>>> not included in the build)
>>>>> * Jetty implementation is working for me (tested it with my webapp)
>>>>>
>>>>> @Martin: Can you test it for tomcat? I assume it is working, too.
Should
>>>>> we also implement it for other server?
>>>>>
>>>>> kind regards
>>>>>
>>>>> Tobias
>>>>>
>>>>>> Am 02.07.16 um 14:09 schrieb Martin Grigorov:
>>>>>>
>>>>>> Hi Tobias,
>>>>>>
>>>>>> Please check
>>>>>>
>>>
https://git1-us-west.apache.org/repos/asf?p=wicket.git;a=commit;h=5c06a916
>>>>>>
>>>>>> You will have to finish the impl of Jetty9PushBuilder. I wasn't able
to
>>>>>> find the jetty Maven dependency to make it building.
>>>>>>
>>>>>> Martin Grigorov
>>>>>> Wicket Training and Consulting
>>>>>> https://twitter.com/mtgrigorov
>>>>>>
>>>>>> On Sat, Jul 2, 2016 at 1:53 PM, Martin Grigorov <mgrigorov@apache.org
>
>>>>>> wrote:
>>>>>>
>>>>>> Hi Tobias,
>>>>>>>
>>>>>>> I'm working on it!
>>>>>>>
>>>>>>> Martin Grigorov
>>>>>>> Wicket Training and Consulting
>>>>>>> https://twitter.com/mtgrigorov
>>>>>>>
>>>>>>> On Sat, Jul 2, 2016 at 1:35 AM, Tobias Soloschenko <
>>>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>>>>
>>>>>>> Hi Martin,
>>>>>>>>
>>>>>>>> I prepared the structure a bit:
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>
https://github.com/apache/wicket/commit/eb730f2979dab6c937e87cefbbe84167cc5546e1
>>>>>>>>
>>>>>>>> - wicket-experimental
>>>>>>>> --- wicket-http2
>>>>>>>> ------ wicket-http2-core
>>>>>>>> ------ wicket-http2-jetty
>>>>>>>> ------ wicket-http2-tomcat
>>>>>>>>
>>>>>>>> * -core is providing the basic header item and make use of the
>>>>>>>> IInitializers
>>>>>>>> * -jetty, -tomcat, etc. are the implementations for the servers (I
>>>
>>> would
>>>>>>>>
>>>>>>>> suggest to use the maven dependencies but set them to provided so
>>>
>>> that
>>>>>>>>
>>>>>>>> there is no conflict within the running server.)
>>>>>>>>
>>>>>>>> Branch: "WICKET-6194"
>>>>>>>>
>>>>>>>> If you check it out there will be a compile error because of the
line
>>>>>>>> which is going to use the IInitializers callback to make use of the
>>>>>>>> vendor
>>>>>>>> specific PushBuilder API.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>
https://github.com/apache/wicket/blob/eb730f2979dab6c937e87cefbbe84167cc5546e1/wicket-experimental/wicket-http2/wicket-http2-core/src/main/java/org/apache/wicket/http2/markup/head/PushHeaderItem.java#L77
>>>>>>>>
>>>>>>>> Can you give me a hint how to implement the IInitializers?
>>>>>>>>
>>>>>>>> kind regards
>>>>>>>>
>>>>>>>> Tobias
>>>>>>>>
>>>>>>>> Am 30.06.16 um 09:40 schrieb Martin Grigorov:
>>>>>>>>
>>>>>>>> I can add the Tomcat impl and docs how to setup Tomcat 8.5+ with
>>>
>>> HTTP2.
>>>>>>>>>
>>>>>>>>> Martin Grigorov
>>>>>>>>> Wicket Training and Consulting
>>>>>>>>> https://twitter.com/mtgrigorov
>>>>>>>>>
>>>>>>>>> On Wed, Jun 29, 2016 at 6:27 PM, Tobias Soloschenko <
>>>>>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>>>>>>
>>>>>>>>> Jep - would be great until the servlet 4 API reaches the final
>>>
>>> state.
>>>>>>>>>>
>>>>>>>>>> I already reduced the usage of the container specific calls to
one
>>>>>>>>>> line.
>>>>>>>>>> This line can be delegated to the IInitialzer class.
>>>>>>>>>>
>>>>>>>>>> I hope tomcat and other servers are implementing the PushBuilder
>>>
>>> API
>>>>>>>>>>
>>>>>>>>>> similar. If yes it is rather easy to create such an integration.
>>>>>>>>>>
>>>>>>>>>> kind regards
>>>>>>>>>>
>>>>>>>>>> Tobias
>>>>>>>>>>
>>>>>>>>>> Am 29.06.2016 um 17:41 schrieb Martin Grigorov <
>>>
>>> mgrigorov@apache.org
>>>>>>>>>>>
>>>>>>>>>>> :
>>>>>>>>>>> Hi,
>>>>>>>>>>>
>>>>>>>>>>> What do you think about introducing PushBuilder-like API in
>>>>>>>>>>> Wicket-core ?
>>>>>>>>>>> The default implementation wil justl log warnings.
>>>>>>>>>>> If an application wants to make use of this new functionality
>>>
>>> then it
>>>>>>>>>>>
>>>>>>>>>>> will
>>>>>>>>>>
>>>>>>>>>> have to add an additional jar to the classpath, e.g.
>>>>>>>>>>>
>>>>>>>>>>> wicketstuff-pushbuilder-jetty9.jar, that will replace the
default
>>>>>>>>>>>
>>>>>>>>>>> strategy
>>>>>>>>>>
>>>>>>>>>> (with IInitializer) with one that knows how to use Jetty9
>>>
>>> internals.
>>>>>>>>>>>
>>>>>>>>>>> Same
>>>>>>>>>>> for Tomcat 8.5+ and any other container that provides this
>>>>>>>>>>> functionality
>>>>>>>>>>> with internal APIs.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Martin Grigorov
>>>>>>>>>>> Wicket Training and Consulting
>>>>>>>>>>> https://twitter.com/mtgrigorov
>>>>>>>>>>>
>>>>>>>>>>> On Tue, Jun 28, 2016 at 11:08 PM, Tobias Soloschenko <
>>>>>>>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>> Hi,
>>>>>>>>>>>
>>>>>>>>>>>> just a small update:
>>>>>>>>>>>>
>>>>>>>>>>>> I switched the implementation to servlet-4.0.0-b01 API as far
as
>>>>>>>>>>>>
>>>>>>>>>>>> possible:
>>>
>>>
https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api/4.0.0-b01
>>>>>>>>>>
>>>>>>>>>> The only thing I can do now is to wait for the JEE standard to be
>>>>>>>>>>>>
>>>>>>>>>>>> finalized and to be implemented into the servers like jetty,
>>>
>>> tomcat,
>>>>>>>>>>>>
>>>>>>>>>>>> etc.
>>>>>>>>>>>
>>>>>>>>>>> https://github.com/klopfdreh/jetty-http2-example
>>>>>>>>>>>
>>>>>>>>>>>> kind regards
>>>>>>>>>>>>
>>>>>>>>>>>> Tobias
>>>>>>>>>>>>
>>>>>>>>>>>> Am 12.05.2016 um 18:15 schrieb Maxim Solodovnik <
>>>>>>>>>>>> solomax666@gmail.com
>>>>>>>>>>>> :
>>>>>>>>>>>> Cool!
>>>>>>>>>>>>
>>>>>>>>>>>>> On Thu, May 12, 2016 at 10:10 PM, Tobias Soloschenko <
>>>>>>>>>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>> Hi,
>>>>>>>>>>>>>
>>>>>>>>>>>>>> I just managed to finish a PoC in which Apache Wicket runs on
>>>>>>>>>>>>>> Jetty
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> with
>>>>>>>>>>>>
>>>>>>>>>>>> http/2 and uses the Servlet 4.0 Spec / PushBuilder to provide
>>>>>>>>>>>> resources
>>>>>>>>>>>> to
>>>>>>>>>>>> the client.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Notes:
>>>>>>>>>>>>>> * Small API which can be added to increase the performance of
>>>
>>> the
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> webapp
>>>>>>>>>>>>
>>>>>>>>>>>> with http/2
>>>>>>>>>>>> * No html changes required
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> References:
>>>>>>>>>>>>>> *
>>>
>>>
https://raw.githubusercontent.com/klopfdreh/jetty-http2-example/master/without_push.png
>>>>>>>>>>
>>>>>>>>>> *
>>>>>>>>>>
>>>>>>>>>>
>>>
https://raw.githubusercontent.com/klopfdreh/jetty-http2-example/master/with_push.png
>>>>>>>>>>
>>>>>>>>>> On localhost improved performance: 37ms latency without and 1ms
>>>>>>>>>>>>
>>>>>>>>>>>> latency
>>>>>>>>>>>> to
>>>>>>>>>>>> serve the resource (CSS file)
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Example Implementation:
>>>>>>>>>>>>>> *
>>>
>>>
https://github.com/klopfdreh/jetty-http2-example/blob/master/de.jetty.wicket.http2.example/src/main/java/de/jetty/wicket/http2/example/HTTP2Page.java#L28
>>>>>>>>>>
>>>>>>>>>> Jetty Setup:
>>>>>>>>>>>>
>>>>>>>>>>>> *
>>>
>>>
https://github.com/klopfdreh/jetty-http2-example/blob/master/de.jetty.wicket.http2.example/src/test/java/de/jetty/wicket/http2/example/Runner.java
>>>>>>>>>>
>>>>>>>>>> hooray!
>>>>>>>>>>>>
>>>>>>>>>>>> WDYT
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> kind regards
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Tobias
>>>>>>>>>>>>>
>>>>>>>>>>>>> --
>>>>>>>>>>>>> WBR
>>>>>>>>>>>>> Maxim aka solomax
>
>

Re: Apache Wicket rocks with http/2

Posted by Tobias Soloschenko <to...@googlemail.com>.
Hi,

I am going to create a chapter how to write a Wicket PushBuilder implementation for a specific server, soon.

kind regards

Tobias

> Am 12.07.2016 um 11:49 schrieb Andrea Del Bene <an...@gmail.com>:
> 
> 
> 
>> On 11/07/2016 21:18, Tobias Soloschenko wrote:
>> Hi Martin,
>> 
>> I wrote a chapter in the user guide. I think we should advice the user to read the documentation of the vendor specific server to setup http/2. I also added the core module to the parent pom as jar dependency.
> Grazie!!!  ;_;
>> kind regards
>> 
>> Tobias
>> 
>> Am 11.07.16 um 18:17 schrieb Martin Grigorov:
> 

Re: Apache Wicket rocks with http/2

Posted by Andrea Del Bene <an...@gmail.com>.

On 11/07/2016 21:18, Tobias Soloschenko wrote:
> Hi Martin,
>
> I wrote a chapter in the user guide. I think we should advice the user 
> to read the documentation of the vendor specific server to setup 
> http/2. I also added the core module to the parent pom as jar dependency.
>
Grazie!!!  ;_;
> kind regards
>
> Tobias
>
> Am 11.07.16 um 18:17 schrieb Martin Grigorov:


Re: Apache Wicket rocks with http/2

Posted by Tobias Soloschenko <to...@googlemail.com>.
Hi Martin,

I wrote a chapter in the user guide. I think we should advice the user 
to read the documentation of the vendor specific server to setup http/2. 
I also added the core module to the parent pom as jar dependency.

kind regards

Tobias

Am 11.07.16 um 18:17 schrieb Martin Grigorov:
> I've fixed it!
>
> I'll test the Tomcat module and document how to use it later this week!
>
> Martin Grigorov
> Wicket Training and Consulting
> https://twitter.com/mtgrigorov
>
> On Mon, Jul 11, 2016 at 8:25 AM, Tobias Soloschenko <
> tobiassoloschenko@googlemail.com> wrote:
>
>> Hi,
>>
>> I think I managed to solve the dependency errors yesterday - I am going to
>> commit the changes later this day.
>>
>> kind regards
>>
>> Tobias
>>
>>> Am 03.07.2016 um 09:24 schrieb Martin Grigorov <
>> martin.grigorov@gmail.com>:
>>> Great!
>>>
>>> I haven't tested it yet with Tomcat.
>>>
>>> I remember reading that Undertow were planning to implement PushBuilder
>> but
>>> I am not sure whether they are ready.
>>> On Jul 3, 2016 10:20 AM, "Tobias Soloschenko" <
>>> tobiassoloschenko@googlemail.com> wrote:
>>>
>>>> Hi,
>>>>
>>>> everything is working, now.
>>>>
>>>> * Fixed the build for jetty
>>>> * moved resources to src/main/resources (they were at src/resources and
>>>> not included in the build)
>>>> * Jetty implementation is working for me (tested it with my webapp)
>>>>
>>>> @Martin: Can you test it for tomcat? I assume it is working, too. Should
>>>> we also implement it for other server?
>>>>
>>>> kind regards
>>>>
>>>> Tobias
>>>>
>>>>> Am 02.07.16 um 14:09 schrieb Martin Grigorov:
>>>>>
>>>>> Hi Tobias,
>>>>>
>>>>> Please check
>>>>>
>> https://git1-us-west.apache.org/repos/asf?p=wicket.git;a=commit;h=5c06a916
>>>>> You will have to finish the impl of Jetty9PushBuilder. I wasn't able to
>>>>> find the jetty Maven dependency to make it building.
>>>>>
>>>>> Martin Grigorov
>>>>> Wicket Training and Consulting
>>>>> https://twitter.com/mtgrigorov
>>>>>
>>>>> On Sat, Jul 2, 2016 at 1:53 PM, Martin Grigorov <mg...@apache.org>
>>>>> wrote:
>>>>>
>>>>> Hi Tobias,
>>>>>> I'm working on it!
>>>>>>
>>>>>> Martin Grigorov
>>>>>> Wicket Training and Consulting
>>>>>> https://twitter.com/mtgrigorov
>>>>>>
>>>>>> On Sat, Jul 2, 2016 at 1:35 AM, Tobias Soloschenko <
>>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>>>
>>>>>> Hi Martin,
>>>>>>> I prepared the structure a bit:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>> https://github.com/apache/wicket/commit/eb730f2979dab6c937e87cefbbe84167cc5546e1
>>>>>>> - wicket-experimental
>>>>>>> --- wicket-http2
>>>>>>> ------ wicket-http2-core
>>>>>>> ------ wicket-http2-jetty
>>>>>>> ------ wicket-http2-tomcat
>>>>>>>
>>>>>>> * -core is providing the basic header item and make use of the
>>>>>>> IInitializers
>>>>>>> * -jetty, -tomcat, etc. are the implementations for the servers (I
>> would
>>>>>>> suggest to use the maven dependencies but set them to provided so
>> that
>>>>>>> there is no conflict within the running server.)
>>>>>>>
>>>>>>> Branch: "WICKET-6194"
>>>>>>>
>>>>>>> If you check it out there will be a compile error because of the line
>>>>>>> which is going to use the IInitializers callback to make use of the
>>>>>>> vendor
>>>>>>> specific PushBuilder API.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>> https://github.com/apache/wicket/blob/eb730f2979dab6c937e87cefbbe84167cc5546e1/wicket-experimental/wicket-http2/wicket-http2-core/src/main/java/org/apache/wicket/http2/markup/head/PushHeaderItem.java#L77
>>>>>>> Can you give me a hint how to implement the IInitializers?
>>>>>>>
>>>>>>> kind regards
>>>>>>>
>>>>>>> Tobias
>>>>>>>
>>>>>>> Am 30.06.16 um 09:40 schrieb Martin Grigorov:
>>>>>>>
>>>>>>> I can add the Tomcat impl and docs how to setup Tomcat 8.5+ with
>> HTTP2.
>>>>>>>> Martin Grigorov
>>>>>>>> Wicket Training and Consulting
>>>>>>>> https://twitter.com/mtgrigorov
>>>>>>>>
>>>>>>>> On Wed, Jun 29, 2016 at 6:27 PM, Tobias Soloschenko <
>>>>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>>>>>
>>>>>>>> Jep - would be great until the servlet 4 API reaches the final
>> state.
>>>>>>>>> I already reduced the usage of the container specific calls to one
>>>>>>>>> line.
>>>>>>>>> This line can be delegated to the IInitialzer class.
>>>>>>>>>
>>>>>>>>> I hope tomcat and other servers are implementing the PushBuilder
>> API
>>>>>>>>> similar. If yes it is rather easy to create such an integration.
>>>>>>>>>
>>>>>>>>> kind regards
>>>>>>>>>
>>>>>>>>> Tobias
>>>>>>>>>
>>>>>>>>> Am 29.06.2016 um 17:41 schrieb Martin Grigorov <
>> mgrigorov@apache.org
>>>>>>>>>> :
>>>>>>>>>> Hi,
>>>>>>>>>>
>>>>>>>>>> What do you think about introducing PushBuilder-like API in
>>>>>>>>>> Wicket-core ?
>>>>>>>>>> The default implementation wil justl log warnings.
>>>>>>>>>> If an application wants to make use of this new functionality
>> then it
>>>>>>>>>> will
>>>>>>>>> have to add an additional jar to the classpath, e.g.
>>>>>>>>>> wicketstuff-pushbuilder-jetty9.jar, that will replace the default
>>>>>>>>>>
>>>>>>>>>> strategy
>>>>>>>>> (with IInitializer) with one that knows how to use Jetty9
>> internals.
>>>>>>>>>> Same
>>>>>>>>>> for Tomcat 8.5+ and any other container that provides this
>>>>>>>>>> functionality
>>>>>>>>>> with internal APIs.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Martin Grigorov
>>>>>>>>>> Wicket Training and Consulting
>>>>>>>>>> https://twitter.com/mtgrigorov
>>>>>>>>>>
>>>>>>>>>> On Tue, Jun 28, 2016 at 11:08 PM, Tobias Soloschenko <
>>>>>>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>>>>>>>
>>>>>>>>>> Hi,
>>>>>>>>>>
>>>>>>>>>>> just a small update:
>>>>>>>>>>>
>>>>>>>>>>> I switched the implementation to servlet-4.0.0-b01 API as far as
>>>>>>>>>>>
>>>>>>>>>>> possible:
>> https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api/4.0.0-b01
>>>>>>>>> The only thing I can do now is to wait for the JEE standard to be
>>>>>>>>>>> finalized and to be implemented into the servers like jetty,
>> tomcat,
>>>>>>>>>>> etc.
>>>>>>>>>> https://github.com/klopfdreh/jetty-http2-example
>>>>>>>>>>
>>>>>>>>>>> kind regards
>>>>>>>>>>>
>>>>>>>>>>> Tobias
>>>>>>>>>>>
>>>>>>>>>>> Am 12.05.2016 um 18:15 schrieb Maxim Solodovnik <
>>>>>>>>>>> solomax666@gmail.com
>>>>>>>>>>> :
>>>>>>>>>>> Cool!
>>>>>>>>>>>
>>>>>>>>>>>> On Thu, May 12, 2016 at 10:10 PM, Tobias Soloschenko <
>>>>>>>>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>> Hi,
>>>>>>>>>>>>
>>>>>>>>>>>>> I just managed to finish a PoC in which Apache Wicket runs on
>>>>>>>>>>>>> Jetty
>>>>>>>>>>>>>
>>>>>>>>>>>>> with
>>>>>>>>>>> http/2 and uses the Servlet 4.0 Spec / PushBuilder to provide
>>>>>>>>>>> resources
>>>>>>>>>>> to
>>>>>>>>>>> the client.
>>>>>>>>>>>>> Notes:
>>>>>>>>>>>>> * Small API which can be added to increase the performance of
>> the
>>>>>>>>>>>>> webapp
>>>>>>>>>>> with http/2
>>>>>>>>>>> * No html changes required
>>>>>>>>>>>>> References:
>>>>>>>>>>>>> *
>> https://raw.githubusercontent.com/klopfdreh/jetty-http2-example/master/without_push.png
>>>>>>>>> *
>>>>>>>>>
>>>>>>>>>
>> https://raw.githubusercontent.com/klopfdreh/jetty-http2-example/master/with_push.png
>>>>>>>>> On localhost improved performance: 37ms latency without and 1ms
>>>>>>>>>>> latency
>>>>>>>>>>> to
>>>>>>>>>>> serve the resource (CSS file)
>>>>>>>>>>>>> Example Implementation:
>>>>>>>>>>>>> *
>> https://github.com/klopfdreh/jetty-http2-example/blob/master/de.jetty.wicket.http2.example/src/main/java/de/jetty/wicket/http2/example/HTTP2Page.java#L28
>>>>>>>>> Jetty Setup:
>>>>>>>>>>> *
>> https://github.com/klopfdreh/jetty-http2-example/blob/master/de.jetty.wicket.http2.example/src/test/java/de/jetty/wicket/http2/example/Runner.java
>>>>>>>>> hooray!
>>>>>>>>>>> WDYT
>>>>>>>>>>>>> kind regards
>>>>>>>>>>>>>
>>>>>>>>>>>>> Tobias
>>>>>>>>>>>> --
>>>>>>>>>>>> WBR
>>>>>>>>>>>> Maxim aka solomax


Re: Apache Wicket rocks with http/2

Posted by Martin Grigorov <mg...@apache.org>.
I've fixed it!

I'll test the Tomcat module and document how to use it later this week!

Martin Grigorov
Wicket Training and Consulting
https://twitter.com/mtgrigorov

On Mon, Jul 11, 2016 at 8:25 AM, Tobias Soloschenko <
tobiassoloschenko@googlemail.com> wrote:

> Hi,
>
> I think I managed to solve the dependency errors yesterday - I am going to
> commit the changes later this day.
>
> kind regards
>
> Tobias
>
> > Am 03.07.2016 um 09:24 schrieb Martin Grigorov <
> martin.grigorov@gmail.com>:
> >
> > Great!
> >
> > I haven't tested it yet with Tomcat.
> >
> > I remember reading that Undertow were planning to implement PushBuilder
> but
> > I am not sure whether they are ready.
> > On Jul 3, 2016 10:20 AM, "Tobias Soloschenko" <
> > tobiassoloschenko@googlemail.com> wrote:
> >
> >> Hi,
> >>
> >> everything is working, now.
> >>
> >> * Fixed the build for jetty
> >> * moved resources to src/main/resources (they were at src/resources and
> >> not included in the build)
> >> * Jetty implementation is working for me (tested it with my webapp)
> >>
> >> @Martin: Can you test it for tomcat? I assume it is working, too. Should
> >> we also implement it for other server?
> >>
> >> kind regards
> >>
> >> Tobias
> >>
> >>> Am 02.07.16 um 14:09 schrieb Martin Grigorov:
> >>>
> >>> Hi Tobias,
> >>>
> >>> Please check
> >>>
> https://git1-us-west.apache.org/repos/asf?p=wicket.git;a=commit;h=5c06a916
> >>> You will have to finish the impl of Jetty9PushBuilder. I wasn't able to
> >>> find the jetty Maven dependency to make it building.
> >>>
> >>> Martin Grigorov
> >>> Wicket Training and Consulting
> >>> https://twitter.com/mtgrigorov
> >>>
> >>> On Sat, Jul 2, 2016 at 1:53 PM, Martin Grigorov <mg...@apache.org>
> >>> wrote:
> >>>
> >>> Hi Tobias,
> >>>>
> >>>> I'm working on it!
> >>>>
> >>>> Martin Grigorov
> >>>> Wicket Training and Consulting
> >>>> https://twitter.com/mtgrigorov
> >>>>
> >>>> On Sat, Jul 2, 2016 at 1:35 AM, Tobias Soloschenko <
> >>>> tobiassoloschenko@googlemail.com> wrote:
> >>>>
> >>>> Hi Martin,
> >>>>>
> >>>>> I prepared the structure a bit:
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> https://github.com/apache/wicket/commit/eb730f2979dab6c937e87cefbbe84167cc5546e1
> >>>>>
> >>>>> - wicket-experimental
> >>>>> --- wicket-http2
> >>>>> ------ wicket-http2-core
> >>>>> ------ wicket-http2-jetty
> >>>>> ------ wicket-http2-tomcat
> >>>>>
> >>>>> * -core is providing the basic header item and make use of the
> >>>>> IInitializers
> >>>>> * -jetty, -tomcat, etc. are the implementations for the servers (I
> would
> >>>>> suggest to use the maven dependencies but set them to provided so
> that
> >>>>> there is no conflict within the running server.)
> >>>>>
> >>>>> Branch: "WICKET-6194"
> >>>>>
> >>>>> If you check it out there will be a compile error because of the line
> >>>>> which is going to use the IInitializers callback to make use of the
> >>>>> vendor
> >>>>> specific PushBuilder API.
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> https://github.com/apache/wicket/blob/eb730f2979dab6c937e87cefbbe84167cc5546e1/wicket-experimental/wicket-http2/wicket-http2-core/src/main/java/org/apache/wicket/http2/markup/head/PushHeaderItem.java#L77
> >>>>>
> >>>>> Can you give me a hint how to implement the IInitializers?
> >>>>>
> >>>>> kind regards
> >>>>>
> >>>>> Tobias
> >>>>>
> >>>>> Am 30.06.16 um 09:40 schrieb Martin Grigorov:
> >>>>>
> >>>>> I can add the Tomcat impl and docs how to setup Tomcat 8.5+ with
> HTTP2.
> >>>>>
> >>>>>> Martin Grigorov
> >>>>>> Wicket Training and Consulting
> >>>>>> https://twitter.com/mtgrigorov
> >>>>>>
> >>>>>> On Wed, Jun 29, 2016 at 6:27 PM, Tobias Soloschenko <
> >>>>>> tobiassoloschenko@googlemail.com> wrote:
> >>>>>>
> >>>>>> Jep - would be great until the servlet 4 API reaches the final
> state.
> >>>>>>
> >>>>>>> I already reduced the usage of the container specific calls to one
> >>>>>>> line.
> >>>>>>> This line can be delegated to the IInitialzer class.
> >>>>>>>
> >>>>>>> I hope tomcat and other servers are implementing the PushBuilder
> API
> >>>>>>> similar. If yes it is rather easy to create such an integration.
> >>>>>>>
> >>>>>>> kind regards
> >>>>>>>
> >>>>>>> Tobias
> >>>>>>>
> >>>>>>> Am 29.06.2016 um 17:41 schrieb Martin Grigorov <
> mgrigorov@apache.org
> >>>>>>>> :
> >>>>>>>
> >>>>>>>> Hi,
> >>>>>>>>
> >>>>>>>> What do you think about introducing PushBuilder-like API in
> >>>>>>>> Wicket-core ?
> >>>>>>>> The default implementation wil justl log warnings.
> >>>>>>>> If an application wants to make use of this new functionality
> then it
> >>>>>>>>
> >>>>>>>> will
> >>>>>>>
> >>>>>>> have to add an additional jar to the classpath, e.g.
> >>>>>>>> wicketstuff-pushbuilder-jetty9.jar, that will replace the default
> >>>>>>>>
> >>>>>>>> strategy
> >>>>>>>
> >>>>>>> (with IInitializer) with one that knows how to use Jetty9
> internals.
> >>>>>>>> Same
> >>>>>>>> for Tomcat 8.5+ and any other container that provides this
> >>>>>>>> functionality
> >>>>>>>> with internal APIs.
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> Martin Grigorov
> >>>>>>>> Wicket Training and Consulting
> >>>>>>>> https://twitter.com/mtgrigorov
> >>>>>>>>
> >>>>>>>> On Tue, Jun 28, 2016 at 11:08 PM, Tobias Soloschenko <
> >>>>>>>> tobiassoloschenko@googlemail.com> wrote:
> >>>>>>>>
> >>>>>>>> Hi,
> >>>>>>>>
> >>>>>>>>> just a small update:
> >>>>>>>>>
> >>>>>>>>> I switched the implementation to servlet-4.0.0-b01 API as far as
> >>>>>>>>>
> >>>>>>>>> possible:
> >>>>>>>>
> >>>>>>>
> https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api/4.0.0-b01
> >>>>>>>
> >>>>>>> The only thing I can do now is to wait for the JEE standard to be
> >>>>>>>>
> >>>>>>>>> finalized and to be implemented into the servers like jetty,
> tomcat,
> >>>>>>>>>
> >>>>>>>>> etc.
> >>>>>>>> https://github.com/klopfdreh/jetty-http2-example
> >>>>>>>>
> >>>>>>>>> kind regards
> >>>>>>>>>
> >>>>>>>>> Tobias
> >>>>>>>>>
> >>>>>>>>> Am 12.05.2016 um 18:15 schrieb Maxim Solodovnik <
> >>>>>>>>> solomax666@gmail.com
> >>>>>>>>> :
> >>>>>>>>> Cool!
> >>>>>>>>>
> >>>>>>>>>> On Thu, May 12, 2016 at 10:10 PM, Tobias Soloschenko <
> >>>>>>>>>> tobiassoloschenko@googlemail.com> wrote:
> >>>>>>>>>>
> >>>>>>>>>> Hi,
> >>>>>>>>>>
> >>>>>>>>>>> I just managed to finish a PoC in which Apache Wicket runs on
> >>>>>>>>>>> Jetty
> >>>>>>>>>>>
> >>>>>>>>>>> with
> >>>>>>>>> http/2 and uses the Servlet 4.0 Spec / PushBuilder to provide
> >>>>>>>>
> >>>>>>>>> resources
> >>>>>>>>> to
> >>>>>>>>
> >>>>>>>>> the client.
> >>>>>>>>>>
> >>>>>>>>>>> Notes:
> >>>>>>>>>>> * Small API which can be added to increase the performance of
> the
> >>>>>>>>>>>
> >>>>>>>>>>> webapp
> >>>>>>>>> with http/2
> >>>>>>>>
> >>>>>>>>> * No html changes required
> >>>>>>>>>>>
> >>>>>>>>>>> References:
> >>>>>>>>>>> *
> >>>>>>>
> https://raw.githubusercontent.com/klopfdreh/jetty-http2-example/master/without_push.png
> >>>>>>>
> >>>>>>> *
> >>>>>>>
> >>>>>>>
> https://raw.githubusercontent.com/klopfdreh/jetty-http2-example/master/with_push.png
> >>>>>>>
> >>>>>>> On localhost improved performance: 37ms latency without and 1ms
> >>>>>>>>
> >>>>>>>>> latency
> >>>>>>>>> to
> >>>>>>>>
> >>>>>>>>> serve the resource (CSS file)
> >>>>>>>>>>
> >>>>>>>>>>> Example Implementation:
> >>>>>>>>>>> *
> >>>>>>>
> https://github.com/klopfdreh/jetty-http2-example/blob/master/de.jetty.wicket.http2.example/src/main/java/de/jetty/wicket/http2/example/HTTP2Page.java#L28
> >>>>>>>
> >>>>>>> Jetty Setup:
> >>>>>>>>
> >>>>>>>>> *
> >>>>>>>
> https://github.com/klopfdreh/jetty-http2-example/blob/master/de.jetty.wicket.http2.example/src/test/java/de/jetty/wicket/http2/example/Runner.java
> >>>>>>>
> >>>>>>> hooray!
> >>>>>>>>
> >>>>>>>>> WDYT
> >>>>>>>>>>>
> >>>>>>>>>>> kind regards
> >>>>>>>>>>>
> >>>>>>>>>>> Tobias
> >>>>>>>>>> --
> >>>>>>>>>> WBR
> >>>>>>>>>> Maxim aka solomax
> >>
>

Re: Apache Wicket rocks with http/2

Posted by Tobias Soloschenko <to...@googlemail.com>.
Hi,

I think I managed to solve the dependency errors yesterday - I am going to commit the changes later this day.

kind regards

Tobias

> Am 03.07.2016 um 09:24 schrieb Martin Grigorov <ma...@gmail.com>:
> 
> Great!
> 
> I haven't tested it yet with Tomcat.
> 
> I remember reading that Undertow were planning to implement PushBuilder but
> I am not sure whether they are ready.
> On Jul 3, 2016 10:20 AM, "Tobias Soloschenko" <
> tobiassoloschenko@googlemail.com> wrote:
> 
>> Hi,
>> 
>> everything is working, now.
>> 
>> * Fixed the build for jetty
>> * moved resources to src/main/resources (they were at src/resources and
>> not included in the build)
>> * Jetty implementation is working for me (tested it with my webapp)
>> 
>> @Martin: Can you test it for tomcat? I assume it is working, too. Should
>> we also implement it for other server?
>> 
>> kind regards
>> 
>> Tobias
>> 
>>> Am 02.07.16 um 14:09 schrieb Martin Grigorov:
>>> 
>>> Hi Tobias,
>>> 
>>> Please check
>>> https://git1-us-west.apache.org/repos/asf?p=wicket.git;a=commit;h=5c06a916
>>> You will have to finish the impl of Jetty9PushBuilder. I wasn't able to
>>> find the jetty Maven dependency to make it building.
>>> 
>>> Martin Grigorov
>>> Wicket Training and Consulting
>>> https://twitter.com/mtgrigorov
>>> 
>>> On Sat, Jul 2, 2016 at 1:53 PM, Martin Grigorov <mg...@apache.org>
>>> wrote:
>>> 
>>> Hi Tobias,
>>>> 
>>>> I'm working on it!
>>>> 
>>>> Martin Grigorov
>>>> Wicket Training and Consulting
>>>> https://twitter.com/mtgrigorov
>>>> 
>>>> On Sat, Jul 2, 2016 at 1:35 AM, Tobias Soloschenko <
>>>> tobiassoloschenko@googlemail.com> wrote:
>>>> 
>>>> Hi Martin,
>>>>> 
>>>>> I prepared the structure a bit:
>>>>> 
>>>>> 
>>>>> 
>>>>> https://github.com/apache/wicket/commit/eb730f2979dab6c937e87cefbbe84167cc5546e1
>>>>> 
>>>>> - wicket-experimental
>>>>> --- wicket-http2
>>>>> ------ wicket-http2-core
>>>>> ------ wicket-http2-jetty
>>>>> ------ wicket-http2-tomcat
>>>>> 
>>>>> * -core is providing the basic header item and make use of the
>>>>> IInitializers
>>>>> * -jetty, -tomcat, etc. are the implementations for the servers (I would
>>>>> suggest to use the maven dependencies but set them to provided so that
>>>>> there is no conflict within the running server.)
>>>>> 
>>>>> Branch: "WICKET-6194"
>>>>> 
>>>>> If you check it out there will be a compile error because of the line
>>>>> which is going to use the IInitializers callback to make use of the
>>>>> vendor
>>>>> specific PushBuilder API.
>>>>> 
>>>>> 
>>>>> 
>>>>> https://github.com/apache/wicket/blob/eb730f2979dab6c937e87cefbbe84167cc5546e1/wicket-experimental/wicket-http2/wicket-http2-core/src/main/java/org/apache/wicket/http2/markup/head/PushHeaderItem.java#L77
>>>>> 
>>>>> Can you give me a hint how to implement the IInitializers?
>>>>> 
>>>>> kind regards
>>>>> 
>>>>> Tobias
>>>>> 
>>>>> Am 30.06.16 um 09:40 schrieb Martin Grigorov:
>>>>> 
>>>>> I can add the Tomcat impl and docs how to setup Tomcat 8.5+ with HTTP2.
>>>>> 
>>>>>> Martin Grigorov
>>>>>> Wicket Training and Consulting
>>>>>> https://twitter.com/mtgrigorov
>>>>>> 
>>>>>> On Wed, Jun 29, 2016 at 6:27 PM, Tobias Soloschenko <
>>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>>> 
>>>>>> Jep - would be great until the servlet 4 API reaches the final state.
>>>>>> 
>>>>>>> I already reduced the usage of the container specific calls to one
>>>>>>> line.
>>>>>>> This line can be delegated to the IInitialzer class.
>>>>>>> 
>>>>>>> I hope tomcat and other servers are implementing the PushBuilder API
>>>>>>> similar. If yes it is rather easy to create such an integration.
>>>>>>> 
>>>>>>> kind regards
>>>>>>> 
>>>>>>> Tobias
>>>>>>> 
>>>>>>> Am 29.06.2016 um 17:41 schrieb Martin Grigorov <mgrigorov@apache.org
>>>>>>>> :
>>>>>>> 
>>>>>>>> Hi,
>>>>>>>> 
>>>>>>>> What do you think about introducing PushBuilder-like API in
>>>>>>>> Wicket-core ?
>>>>>>>> The default implementation wil justl log warnings.
>>>>>>>> If an application wants to make use of this new functionality then it
>>>>>>>> 
>>>>>>>> will
>>>>>>> 
>>>>>>> have to add an additional jar to the classpath, e.g.
>>>>>>>> wicketstuff-pushbuilder-jetty9.jar, that will replace the default
>>>>>>>> 
>>>>>>>> strategy
>>>>>>> 
>>>>>>> (with IInitializer) with one that knows how to use Jetty9 internals.
>>>>>>>> Same
>>>>>>>> for Tomcat 8.5+ and any other container that provides this
>>>>>>>> functionality
>>>>>>>> with internal APIs.
>>>>>>>> 
>>>>>>>> 
>>>>>>>> Martin Grigorov
>>>>>>>> Wicket Training and Consulting
>>>>>>>> https://twitter.com/mtgrigorov
>>>>>>>> 
>>>>>>>> On Tue, Jun 28, 2016 at 11:08 PM, Tobias Soloschenko <
>>>>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>>>>> 
>>>>>>>> Hi,
>>>>>>>> 
>>>>>>>>> just a small update:
>>>>>>>>> 
>>>>>>>>> I switched the implementation to servlet-4.0.0-b01 API as far as
>>>>>>>>> 
>>>>>>>>> possible:
>>>>>>>> 
>>>>>>> https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api/4.0.0-b01
>>>>>>> 
>>>>>>> The only thing I can do now is to wait for the JEE standard to be
>>>>>>>> 
>>>>>>>>> finalized and to be implemented into the servers like jetty, tomcat,
>>>>>>>>> 
>>>>>>>>> etc.
>>>>>>>> https://github.com/klopfdreh/jetty-http2-example
>>>>>>>> 
>>>>>>>>> kind regards
>>>>>>>>> 
>>>>>>>>> Tobias
>>>>>>>>> 
>>>>>>>>> Am 12.05.2016 um 18:15 schrieb Maxim Solodovnik <
>>>>>>>>> solomax666@gmail.com
>>>>>>>>> :
>>>>>>>>> Cool!
>>>>>>>>> 
>>>>>>>>>> On Thu, May 12, 2016 at 10:10 PM, Tobias Soloschenko <
>>>>>>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>>>>>>> 
>>>>>>>>>> Hi,
>>>>>>>>>> 
>>>>>>>>>>> I just managed to finish a PoC in which Apache Wicket runs on
>>>>>>>>>>> Jetty
>>>>>>>>>>> 
>>>>>>>>>>> with
>>>>>>>>> http/2 and uses the Servlet 4.0 Spec / PushBuilder to provide
>>>>>>>> 
>>>>>>>>> resources
>>>>>>>>> to
>>>>>>>> 
>>>>>>>>> the client.
>>>>>>>>>> 
>>>>>>>>>>> Notes:
>>>>>>>>>>> * Small API which can be added to increase the performance of the
>>>>>>>>>>> 
>>>>>>>>>>> webapp
>>>>>>>>> with http/2
>>>>>>>> 
>>>>>>>>> * No html changes required
>>>>>>>>>>> 
>>>>>>>>>>> References:
>>>>>>>>>>> *
>>>>>>> https://raw.githubusercontent.com/klopfdreh/jetty-http2-example/master/without_push.png
>>>>>>> 
>>>>>>> *
>>>>>>> 
>>>>>>> https://raw.githubusercontent.com/klopfdreh/jetty-http2-example/master/with_push.png
>>>>>>> 
>>>>>>> On localhost improved performance: 37ms latency without and 1ms
>>>>>>>> 
>>>>>>>>> latency
>>>>>>>>> to
>>>>>>>> 
>>>>>>>>> serve the resource (CSS file)
>>>>>>>>>> 
>>>>>>>>>>> Example Implementation:
>>>>>>>>>>> *
>>>>>>> https://github.com/klopfdreh/jetty-http2-example/blob/master/de.jetty.wicket.http2.example/src/main/java/de/jetty/wicket/http2/example/HTTP2Page.java#L28
>>>>>>> 
>>>>>>> Jetty Setup:
>>>>>>>> 
>>>>>>>>> *
>>>>>>> https://github.com/klopfdreh/jetty-http2-example/blob/master/de.jetty.wicket.http2.example/src/test/java/de/jetty/wicket/http2/example/Runner.java
>>>>>>> 
>>>>>>> hooray!
>>>>>>>> 
>>>>>>>>> WDYT
>>>>>>>>>>> 
>>>>>>>>>>> kind regards
>>>>>>>>>>> 
>>>>>>>>>>> Tobias
>>>>>>>>>> --
>>>>>>>>>> WBR
>>>>>>>>>> Maxim aka solomax
>> 

Re: Apache Wicket rocks with http/2

Posted by Tobias Soloschenko <to...@googlemail.com>.
Hi Martin,

I am going to create the submodule, soon. I think @ weekend.

kind regards

Tobias

> Am 06.07.2016 um 07:09 schrieb Martin Grigorov <mg...@apache.org>:
> 
> Hi Tobias,
> 
> Here is the impl in Undertow:
> https://github.com/undertow-io/undertow/blob/master/servlet/src/main/java/io/undertow/servlet/spec/PushBuilderImpl.java
> 
> We need to cast to io.undertow.servlet.spec.HttpServletRequestImpl and use
> it : #getPushBuilder()
> 
> It is available in io.undertow:undertow-servlet:2.0.0.Alpha1+
> 
> 
> 
> 
> Martin Grigorov
> Wicket Training and Consulting
> https://twitter.com/mtgrigorov
> 
> On Sun, Jul 3, 2016 at 9:29 AM, Tobias Soloschenko <
> tobiassoloschenko@googlemail.com> wrote:
> 
>> Hi Martin,
>> 
>> seems to be Alpha state:
>> 
>> https://github.com/jboss/jboss-servlet-api_spec
>> 
>> kind regards
>> 
>> Tobias
>> 
>> Am 03.07.16 um 09:24 schrieb Martin Grigorov:
>> 
>> Great!
>>> 
>>> I haven't tested it yet with Tomcat.
>>> 
>>> I remember reading that Undertow were planning to implement PushBuilder
>>> but
>>> I am not sure whether they are ready.
>>> On Jul 3, 2016 10:20 AM, "Tobias Soloschenko" <
>>> tobiassoloschenko@googlemail.com> wrote:
>>> 
>>> Hi,
>>>> 
>>>> everything is working, now.
>>>> 
>>>> * Fixed the build for jetty
>>>> * moved resources to src/main/resources (they were at src/resources and
>>>> not included in the build)
>>>> * Jetty implementation is working for me (tested it with my webapp)
>>>> 
>>>> @Martin: Can you test it for tomcat? I assume it is working, too. Should
>>>> we also implement it for other server?
>>>> 
>>>> kind regards
>>>> 
>>>> Tobias
>>>> 
>>>> Am 02.07.16 um 14:09 schrieb Martin Grigorov:
>>>> 
>>>> Hi Tobias,
>>>>> 
>>>>> Please check
>>>>> 
>>>>> https://git1-us-west.apache.org/repos/asf?p=wicket.git;a=commit;h=5c06a916
>>>>> You will have to finish the impl of Jetty9PushBuilder. I wasn't able to
>>>>> find the jetty Maven dependency to make it building.
>>>>> 
>>>>> Martin Grigorov
>>>>> Wicket Training and Consulting
>>>>> https://twitter.com/mtgrigorov
>>>>> 
>>>>> On Sat, Jul 2, 2016 at 1:53 PM, Martin Grigorov <mg...@apache.org>
>>>>> wrote:
>>>>> 
>>>>> Hi Tobias,
>>>>> 
>>>>>> I'm working on it!
>>>>>> 
>>>>>> Martin Grigorov
>>>>>> Wicket Training and Consulting
>>>>>> https://twitter.com/mtgrigorov
>>>>>> 
>>>>>> On Sat, Jul 2, 2016 at 1:35 AM, Tobias Soloschenko <
>>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>>> 
>>>>>> Hi Martin,
>>>>>> 
>>>>>>> I prepared the structure a bit:
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> https://github.com/apache/wicket/commit/eb730f2979dab6c937e87cefbbe84167cc5546e1
>>>>>>> 
>>>>>>> - wicket-experimental
>>>>>>> --- wicket-http2
>>>>>>> ------ wicket-http2-core
>>>>>>> ------ wicket-http2-jetty
>>>>>>> ------ wicket-http2-tomcat
>>>>>>> 
>>>>>>> * -core is providing the basic header item and make use of the
>>>>>>> IInitializers
>>>>>>> * -jetty, -tomcat, etc. are the implementations for the servers (I
>>>>>>> would
>>>>>>> suggest to use the maven dependencies but set them to provided so that
>>>>>>> there is no conflict within the running server.)
>>>>>>> 
>>>>>>> Branch: "WICKET-6194"
>>>>>>> 
>>>>>>> If you check it out there will be a compile error because of the line
>>>>>>> which is going to use the IInitializers callback to make use of the
>>>>>>> vendor
>>>>>>> specific PushBuilder API.
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> https://github.com/apache/wicket/blob/eb730f2979dab6c937e87cefbbe84167cc5546e1/wicket-experimental/wicket-http2/wicket-http2-core/src/main/java/org/apache/wicket/http2/markup/head/PushHeaderItem.java#L77
>>>>>>> 
>>>>>>> Can you give me a hint how to implement the IInitializers?
>>>>>>> 
>>>>>>> kind regards
>>>>>>> 
>>>>>>> Tobias
>>>>>>> 
>>>>>>> Am 30.06.16 um 09:40 schrieb Martin Grigorov:
>>>>>>> 
>>>>>>> I can add the Tomcat impl and docs how to setup Tomcat 8.5+ with
>>>>>>> HTTP2.
>>>>>>> 
>>>>>>> Martin Grigorov
>>>>>>>> Wicket Training and Consulting
>>>>>>>> https://twitter.com/mtgrigorov
>>>>>>>> 
>>>>>>>> On Wed, Jun 29, 2016 at 6:27 PM, Tobias Soloschenko <
>>>>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>>>>> 
>>>>>>>> Jep - would be great until the servlet 4 API reaches the final state.
>>>>>>>> 
>>>>>>>> I already reduced the usage of the container specific calls to one
>>>>>>>>> line.
>>>>>>>>> This line can be delegated to the IInitialzer class.
>>>>>>>>> 
>>>>>>>>> I hope tomcat and other servers are implementing the PushBuilder API
>>>>>>>>> similar. If yes it is rather easy to create such an integration.
>>>>>>>>> 
>>>>>>>>> kind regards
>>>>>>>>> 
>>>>>>>>> Tobias
>>>>>>>>> 
>>>>>>>>> Am 29.06.2016 um 17:41 schrieb Martin Grigorov <
>>>>>>>>> mgrigorov@apache.org
>>>>>>>>> 
>>>>>>>>>> :
>>>>>>>>>> Hi,
>>>>>>>>>> 
>>>>>>>>>> What do you think about introducing PushBuilder-like API in
>>>>>>>>>> Wicket-core ?
>>>>>>>>>> The default implementation wil justl log warnings.
>>>>>>>>>> If an application wants to make use of this new functionality then
>>>>>>>>>> it
>>>>>>>>>> 
>>>>>>>>>> will
>>>>>>>>> have to add an additional jar to the classpath, e.g.
>>>>>>>>> 
>>>>>>>>>> wicketstuff-pushbuilder-jetty9.jar, that will replace the default
>>>>>>>>>> 
>>>>>>>>>> strategy
>>>>>>>>> (with IInitializer) with one that knows how to use Jetty9 internals.
>>>>>>>>> 
>>>>>>>>>> Same
>>>>>>>>>> for Tomcat 8.5+ and any other container that provides this
>>>>>>>>>> functionality
>>>>>>>>>> with internal APIs.
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> Martin Grigorov
>>>>>>>>>> Wicket Training and Consulting
>>>>>>>>>> https://twitter.com/mtgrigorov
>>>>>>>>>> 
>>>>>>>>>> On Tue, Jun 28, 2016 at 11:08 PM, Tobias Soloschenko <
>>>>>>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>>>>>>> 
>>>>>>>>>> Hi,
>>>>>>>>>> 
>>>>>>>>>> just a small update:
>>>>>>>>>>> 
>>>>>>>>>>> I switched the implementation to servlet-4.0.0-b01 API as far as
>>>>>>>>>>> 
>>>>>>>>>>> possible:
>>>>>>>>> https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api/4.0.0-b01
>>>>>>>>> 
>>>>>>>>> The only thing I can do now is to wait for the JEE standard to be
>>>>>>>>> 
>>>>>>>>>> finalized and to be implemented into the servers like jetty,
>>>>>>>>>>> tomcat,
>>>>>>>>>>> 
>>>>>>>>>>> etc.
>>>>>>>>>> https://github.com/klopfdreh/jetty-http2-example
>>>>>>>>>> 
>>>>>>>>>> kind regards
>>>>>>>>>>> 
>>>>>>>>>>> Tobias
>>>>>>>>>>> 
>>>>>>>>>>> Am 12.05.2016 um 18:15 schrieb Maxim Solodovnik <
>>>>>>>>>>> solomax666@gmail.com
>>>>>>>>>>> :
>>>>>>>>>>> Cool!
>>>>>>>>>>> 
>>>>>>>>>>> On Thu, May 12, 2016 at 10:10 PM, Tobias Soloschenko <
>>>>>>>>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>>>>>>>>> 
>>>>>>>>>>>> Hi,
>>>>>>>>>>>> 
>>>>>>>>>>>> I just managed to finish a PoC in which Apache Wicket runs on
>>>>>>>>>>>>> Jetty
>>>>>>>>>>>>> 
>>>>>>>>>>>>> with
>>>>>>>>>>>> http/2 and uses the Servlet 4.0 Spec / PushBuilder to provide
>>>>>>>>>>> resources
>>>>>>>>>>> to
>>>>>>>>>>> the client.
>>>>>>>>>>> 
>>>>>>>>>>>> Notes:
>>>>>>>>>>>>> * Small API which can be added to increase the performance of
>>>>>>>>>>>>> the
>>>>>>>>>>>>> 
>>>>>>>>>>>>> webapp
>>>>>>>>>>>> with http/2
>>>>>>>>>>> * No html changes required
>>>>>>>>>>> 
>>>>>>>>>>>> References:
>>>>>>>>>>>>> *
>>>>>>>>> https://raw.githubusercontent.com/klopfdreh/jetty-http2-example/master/without_push.png
>>>>>>>>> 
>>>>>>>>> *
>>>>>>>>> 
>>>>>>>>> https://raw.githubusercontent.com/klopfdreh/jetty-http2-example/master/with_push.png
>>>>>>>>> 
>>>>>>>>> On localhost improved performance: 37ms latency without and 1ms
>>>>>>>>> 
>>>>>>>>>> latency
>>>>>>>>>>> to
>>>>>>>>>>> serve the resource (CSS file)
>>>>>>>>>>> 
>>>>>>>>>>>> Example Implementation:
>>>>>>>>>>>>> *
>>>>>>>>> https://github.com/klopfdreh/jetty-http2-example/blob/master/de.jetty.wicket.http2.example/src/main/java/de/jetty/wicket/http2/example/HTTP2Page.java#L28
>>>>>>>>> 
>>>>>>>>> Jetty Setup:
>>>>>>>>> 
>>>>>>>>>> *
>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>> https://github.com/klopfdreh/jetty-http2-example/blob/master/de.jetty.wicket.http2.example/src/test/java/de/jetty/wicket/http2/example/Runner.java
>>>>>>>>> 
>>>>>>>>> hooray!
>>>>>>>>> 
>>>>>>>>>> WDYT
>>>>>>>>>>> 
>>>>>>>>>>>> kind regards
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Tobias
>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>>> --
>>>>>>>>>>>> WBR
>>>>>>>>>>>> Maxim aka solomax
>> 

Re: Apache Wicket rocks with http/2

Posted by Martin Grigorov <mg...@apache.org>.
Hi Tobias,

Here is the impl in Undertow:
https://github.com/undertow-io/undertow/blob/master/servlet/src/main/java/io/undertow/servlet/spec/PushBuilderImpl.java

We need to cast to io.undertow.servlet.spec.HttpServletRequestImpl and use
it : #getPushBuilder()

It is available in io.undertow:undertow-servlet:2.0.0.Alpha1+




Martin Grigorov
Wicket Training and Consulting
https://twitter.com/mtgrigorov

On Sun, Jul 3, 2016 at 9:29 AM, Tobias Soloschenko <
tobiassoloschenko@googlemail.com> wrote:

> Hi Martin,
>
> seems to be Alpha state:
>
> https://github.com/jboss/jboss-servlet-api_spec
>
> kind regards
>
> Tobias
>
> Am 03.07.16 um 09:24 schrieb Martin Grigorov:
>
> Great!
>>
>> I haven't tested it yet with Tomcat.
>>
>> I remember reading that Undertow were planning to implement PushBuilder
>> but
>> I am not sure whether they are ready.
>> On Jul 3, 2016 10:20 AM, "Tobias Soloschenko" <
>> tobiassoloschenko@googlemail.com> wrote:
>>
>> Hi,
>>>
>>> everything is working, now.
>>>
>>> * Fixed the build for jetty
>>> * moved resources to src/main/resources (they were at src/resources and
>>> not included in the build)
>>> * Jetty implementation is working for me (tested it with my webapp)
>>>
>>> @Martin: Can you test it for tomcat? I assume it is working, too. Should
>>> we also implement it for other server?
>>>
>>> kind regards
>>>
>>> Tobias
>>>
>>> Am 02.07.16 um 14:09 schrieb Martin Grigorov:
>>>
>>> Hi Tobias,
>>>>
>>>> Please check
>>>>
>>>> https://git1-us-west.apache.org/repos/asf?p=wicket.git;a=commit;h=5c06a916
>>>> You will have to finish the impl of Jetty9PushBuilder. I wasn't able to
>>>> find the jetty Maven dependency to make it building.
>>>>
>>>> Martin Grigorov
>>>> Wicket Training and Consulting
>>>> https://twitter.com/mtgrigorov
>>>>
>>>> On Sat, Jul 2, 2016 at 1:53 PM, Martin Grigorov <mg...@apache.org>
>>>> wrote:
>>>>
>>>> Hi Tobias,
>>>>
>>>>> I'm working on it!
>>>>>
>>>>> Martin Grigorov
>>>>> Wicket Training and Consulting
>>>>> https://twitter.com/mtgrigorov
>>>>>
>>>>> On Sat, Jul 2, 2016 at 1:35 AM, Tobias Soloschenko <
>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>>
>>>>> Hi Martin,
>>>>>
>>>>>> I prepared the structure a bit:
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> https://github.com/apache/wicket/commit/eb730f2979dab6c937e87cefbbe84167cc5546e1
>>>>>>
>>>>>> - wicket-experimental
>>>>>> --- wicket-http2
>>>>>> ------ wicket-http2-core
>>>>>> ------ wicket-http2-jetty
>>>>>> ------ wicket-http2-tomcat
>>>>>>
>>>>>> * -core is providing the basic header item and make use of the
>>>>>> IInitializers
>>>>>> * -jetty, -tomcat, etc. are the implementations for the servers (I
>>>>>> would
>>>>>> suggest to use the maven dependencies but set them to provided so that
>>>>>> there is no conflict within the running server.)
>>>>>>
>>>>>> Branch: "WICKET-6194"
>>>>>>
>>>>>> If you check it out there will be a compile error because of the line
>>>>>> which is going to use the IInitializers callback to make use of the
>>>>>> vendor
>>>>>> specific PushBuilder API.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> https://github.com/apache/wicket/blob/eb730f2979dab6c937e87cefbbe84167cc5546e1/wicket-experimental/wicket-http2/wicket-http2-core/src/main/java/org/apache/wicket/http2/markup/head/PushHeaderItem.java#L77
>>>>>>
>>>>>> Can you give me a hint how to implement the IInitializers?
>>>>>>
>>>>>> kind regards
>>>>>>
>>>>>> Tobias
>>>>>>
>>>>>> Am 30.06.16 um 09:40 schrieb Martin Grigorov:
>>>>>>
>>>>>> I can add the Tomcat impl and docs how to setup Tomcat 8.5+ with
>>>>>> HTTP2.
>>>>>>
>>>>>> Martin Grigorov
>>>>>>> Wicket Training and Consulting
>>>>>>> https://twitter.com/mtgrigorov
>>>>>>>
>>>>>>> On Wed, Jun 29, 2016 at 6:27 PM, Tobias Soloschenko <
>>>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>>>>
>>>>>>> Jep - would be great until the servlet 4 API reaches the final state.
>>>>>>>
>>>>>>> I already reduced the usage of the container specific calls to one
>>>>>>>> line.
>>>>>>>> This line can be delegated to the IInitialzer class.
>>>>>>>>
>>>>>>>> I hope tomcat and other servers are implementing the PushBuilder API
>>>>>>>> similar. If yes it is rather easy to create such an integration.
>>>>>>>>
>>>>>>>> kind regards
>>>>>>>>
>>>>>>>> Tobias
>>>>>>>>
>>>>>>>> Am 29.06.2016 um 17:41 schrieb Martin Grigorov <
>>>>>>>> mgrigorov@apache.org
>>>>>>>>
>>>>>>>>> :
>>>>>>>>> Hi,
>>>>>>>>>
>>>>>>>>> What do you think about introducing PushBuilder-like API in
>>>>>>>>> Wicket-core ?
>>>>>>>>> The default implementation wil justl log warnings.
>>>>>>>>> If an application wants to make use of this new functionality then
>>>>>>>>> it
>>>>>>>>>
>>>>>>>>> will
>>>>>>>>>
>>>>>>>> have to add an additional jar to the classpath, e.g.
>>>>>>>>
>>>>>>>>> wicketstuff-pushbuilder-jetty9.jar, that will replace the default
>>>>>>>>>
>>>>>>>>> strategy
>>>>>>>>>
>>>>>>>> (with IInitializer) with one that knows how to use Jetty9 internals.
>>>>>>>>
>>>>>>>>> Same
>>>>>>>>> for Tomcat 8.5+ and any other container that provides this
>>>>>>>>> functionality
>>>>>>>>> with internal APIs.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Martin Grigorov
>>>>>>>>> Wicket Training and Consulting
>>>>>>>>> https://twitter.com/mtgrigorov
>>>>>>>>>
>>>>>>>>> On Tue, Jun 28, 2016 at 11:08 PM, Tobias Soloschenko <
>>>>>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>>>>>>
>>>>>>>>> Hi,
>>>>>>>>>
>>>>>>>>> just a small update:
>>>>>>>>>>
>>>>>>>>>> I switched the implementation to servlet-4.0.0-b01 API as far as
>>>>>>>>>>
>>>>>>>>>> possible:
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>> https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api/4.0.0-b01
>>>>>>>>
>>>>>>>> The only thing I can do now is to wait for the JEE standard to be
>>>>>>>>
>>>>>>>>> finalized and to be implemented into the servers like jetty,
>>>>>>>>>> tomcat,
>>>>>>>>>>
>>>>>>>>>> etc.
>>>>>>>>>>
>>>>>>>>> https://github.com/klopfdreh/jetty-http2-example
>>>>>>>>>
>>>>>>>>> kind regards
>>>>>>>>>>
>>>>>>>>>> Tobias
>>>>>>>>>>
>>>>>>>>>> Am 12.05.2016 um 18:15 schrieb Maxim Solodovnik <
>>>>>>>>>> solomax666@gmail.com
>>>>>>>>>> :
>>>>>>>>>> Cool!
>>>>>>>>>>
>>>>>>>>>> On Thu, May 12, 2016 at 10:10 PM, Tobias Soloschenko <
>>>>>>>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>> Hi,
>>>>>>>>>>>
>>>>>>>>>>> I just managed to finish a PoC in which Apache Wicket runs on
>>>>>>>>>>>> Jetty
>>>>>>>>>>>>
>>>>>>>>>>>> with
>>>>>>>>>>>>
>>>>>>>>>>> http/2 and uses the Servlet 4.0 Spec / PushBuilder to provide
>>>>>>>>>> resources
>>>>>>>>>> to
>>>>>>>>>> the client.
>>>>>>>>>>
>>>>>>>>>>> Notes:
>>>>>>>>>>>> * Small API which can be added to increase the performance of
>>>>>>>>>>>> the
>>>>>>>>>>>>
>>>>>>>>>>>> webapp
>>>>>>>>>>>>
>>>>>>>>>>> with http/2
>>>>>>>>>> * No html changes required
>>>>>>>>>>
>>>>>>>>>>> References:
>>>>>>>>>>>> *
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>> https://raw.githubusercontent.com/klopfdreh/jetty-http2-example/master/without_push.png
>>>>>>>>
>>>>>>>> *
>>>>>>>>
>>>>>>>> https://raw.githubusercontent.com/klopfdreh/jetty-http2-example/master/with_push.png
>>>>>>>>
>>>>>>>> On localhost improved performance: 37ms latency without and 1ms
>>>>>>>>
>>>>>>>>> latency
>>>>>>>>>> to
>>>>>>>>>> serve the resource (CSS file)
>>>>>>>>>>
>>>>>>>>>>> Example Implementation:
>>>>>>>>>>>> *
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>> https://github.com/klopfdreh/jetty-http2-example/blob/master/de.jetty.wicket.http2.example/src/main/java/de/jetty/wicket/http2/example/HTTP2Page.java#L28
>>>>>>>>
>>>>>>>> Jetty Setup:
>>>>>>>>
>>>>>>>>> *
>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>> https://github.com/klopfdreh/jetty-http2-example/blob/master/de.jetty.wicket.http2.example/src/test/java/de/jetty/wicket/http2/example/Runner.java
>>>>>>>>
>>>>>>>> hooray!
>>>>>>>>
>>>>>>>>> WDYT
>>>>>>>>>>
>>>>>>>>>>> kind regards
>>>>>>>>>>>>
>>>>>>>>>>>> Tobias
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> --
>>>>>>>>>>> WBR
>>>>>>>>>>> Maxim aka solomax
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>

Re: Apache Wicket rocks with http/2

Posted by Tobias Soloschenko <to...@googlemail.com>.
Hi Martin,

seems to be Alpha state:

https://github.com/jboss/jboss-servlet-api_spec

kind regards

Tobias

Am 03.07.16 um 09:24 schrieb Martin Grigorov:
> Great!
>
> I haven't tested it yet with Tomcat.
>
> I remember reading that Undertow were planning to implement PushBuilder but
> I am not sure whether they are ready.
> On Jul 3, 2016 10:20 AM, "Tobias Soloschenko" <
> tobiassoloschenko@googlemail.com> wrote:
>
>> Hi,
>>
>> everything is working, now.
>>
>> * Fixed the build for jetty
>> * moved resources to src/main/resources (they were at src/resources and
>> not included in the build)
>> * Jetty implementation is working for me (tested it with my webapp)
>>
>> @Martin: Can you test it for tomcat? I assume it is working, too. Should
>> we also implement it for other server?
>>
>> kind regards
>>
>> Tobias
>>
>> Am 02.07.16 um 14:09 schrieb Martin Grigorov:
>>
>>> Hi Tobias,
>>>
>>> Please check
>>> https://git1-us-west.apache.org/repos/asf?p=wicket.git;a=commit;h=5c06a916
>>> You will have to finish the impl of Jetty9PushBuilder. I wasn't able to
>>> find the jetty Maven dependency to make it building.
>>>
>>> Martin Grigorov
>>> Wicket Training and Consulting
>>> https://twitter.com/mtgrigorov
>>>
>>> On Sat, Jul 2, 2016 at 1:53 PM, Martin Grigorov <mg...@apache.org>
>>> wrote:
>>>
>>> Hi Tobias,
>>>> I'm working on it!
>>>>
>>>> Martin Grigorov
>>>> Wicket Training and Consulting
>>>> https://twitter.com/mtgrigorov
>>>>
>>>> On Sat, Jul 2, 2016 at 1:35 AM, Tobias Soloschenko <
>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>
>>>> Hi Martin,
>>>>> I prepared the structure a bit:
>>>>>
>>>>>
>>>>>
>>>>> https://github.com/apache/wicket/commit/eb730f2979dab6c937e87cefbbe84167cc5546e1
>>>>>
>>>>> - wicket-experimental
>>>>> --- wicket-http2
>>>>> ------ wicket-http2-core
>>>>> ------ wicket-http2-jetty
>>>>> ------ wicket-http2-tomcat
>>>>>
>>>>> * -core is providing the basic header item and make use of the
>>>>> IInitializers
>>>>> * -jetty, -tomcat, etc. are the implementations for the servers (I would
>>>>> suggest to use the maven dependencies but set them to provided so that
>>>>> there is no conflict within the running server.)
>>>>>
>>>>> Branch: "WICKET-6194"
>>>>>
>>>>> If you check it out there will be a compile error because of the line
>>>>> which is going to use the IInitializers callback to make use of the
>>>>> vendor
>>>>> specific PushBuilder API.
>>>>>
>>>>>
>>>>>
>>>>> https://github.com/apache/wicket/blob/eb730f2979dab6c937e87cefbbe84167cc5546e1/wicket-experimental/wicket-http2/wicket-http2-core/src/main/java/org/apache/wicket/http2/markup/head/PushHeaderItem.java#L77
>>>>>
>>>>> Can you give me a hint how to implement the IInitializers?
>>>>>
>>>>> kind regards
>>>>>
>>>>> Tobias
>>>>>
>>>>> Am 30.06.16 um 09:40 schrieb Martin Grigorov:
>>>>>
>>>>> I can add the Tomcat impl and docs how to setup Tomcat 8.5+ with HTTP2.
>>>>>
>>>>>> Martin Grigorov
>>>>>> Wicket Training and Consulting
>>>>>> https://twitter.com/mtgrigorov
>>>>>>
>>>>>> On Wed, Jun 29, 2016 at 6:27 PM, Tobias Soloschenko <
>>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>>>
>>>>>> Jep - would be great until the servlet 4 API reaches the final state.
>>>>>>
>>>>>>> I already reduced the usage of the container specific calls to one
>>>>>>> line.
>>>>>>> This line can be delegated to the IInitialzer class.
>>>>>>>
>>>>>>> I hope tomcat and other servers are implementing the PushBuilder API
>>>>>>> similar. If yes it is rather easy to create such an integration.
>>>>>>>
>>>>>>> kind regards
>>>>>>>
>>>>>>> Tobias
>>>>>>>
>>>>>>> Am 29.06.2016 um 17:41 schrieb Martin Grigorov <mgrigorov@apache.org
>>>>>>>> :
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> What do you think about introducing PushBuilder-like API in
>>>>>>>> Wicket-core ?
>>>>>>>> The default implementation wil justl log warnings.
>>>>>>>> If an application wants to make use of this new functionality then it
>>>>>>>>
>>>>>>>> will
>>>>>>> have to add an additional jar to the classpath, e.g.
>>>>>>>> wicketstuff-pushbuilder-jetty9.jar, that will replace the default
>>>>>>>>
>>>>>>>> strategy
>>>>>>> (with IInitializer) with one that knows how to use Jetty9 internals.
>>>>>>>> Same
>>>>>>>> for Tomcat 8.5+ and any other container that provides this
>>>>>>>> functionality
>>>>>>>> with internal APIs.
>>>>>>>>
>>>>>>>>
>>>>>>>> Martin Grigorov
>>>>>>>> Wicket Training and Consulting
>>>>>>>> https://twitter.com/mtgrigorov
>>>>>>>>
>>>>>>>> On Tue, Jun 28, 2016 at 11:08 PM, Tobias Soloschenko <
>>>>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>>>>>
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>>> just a small update:
>>>>>>>>>
>>>>>>>>> I switched the implementation to servlet-4.0.0-b01 API as far as
>>>>>>>>>
>>>>>>>>> possible:
>>>>>>>>>
>>>>>>> https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api/4.0.0-b01
>>>>>>>
>>>>>>> The only thing I can do now is to wait for the JEE standard to be
>>>>>>>>> finalized and to be implemented into the servers like jetty, tomcat,
>>>>>>>>>
>>>>>>>>> etc.
>>>>>>>> https://github.com/klopfdreh/jetty-http2-example
>>>>>>>>
>>>>>>>>> kind regards
>>>>>>>>>
>>>>>>>>> Tobias
>>>>>>>>>
>>>>>>>>> Am 12.05.2016 um 18:15 schrieb Maxim Solodovnik <
>>>>>>>>> solomax666@gmail.com
>>>>>>>>> :
>>>>>>>>> Cool!
>>>>>>>>>
>>>>>>>>>> On Thu, May 12, 2016 at 10:10 PM, Tobias Soloschenko <
>>>>>>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>>>>>>>
>>>>>>>>>> Hi,
>>>>>>>>>>
>>>>>>>>>>> I just managed to finish a PoC in which Apache Wicket runs on
>>>>>>>>>>> Jetty
>>>>>>>>>>>
>>>>>>>>>>> with
>>>>>>>>> http/2 and uses the Servlet 4.0 Spec / PushBuilder to provide
>>>>>>>>> resources
>>>>>>>>> to
>>>>>>>>> the client.
>>>>>>>>>>> Notes:
>>>>>>>>>>> * Small API which can be added to increase the performance of the
>>>>>>>>>>>
>>>>>>>>>>> webapp
>>>>>>>>> with http/2
>>>>>>>>> * No html changes required
>>>>>>>>>>> References:
>>>>>>>>>>> *
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>> https://raw.githubusercontent.com/klopfdreh/jetty-http2-example/master/without_push.png
>>>>>>>
>>>>>>> *
>>>>>>> https://raw.githubusercontent.com/klopfdreh/jetty-http2-example/master/with_push.png
>>>>>>>
>>>>>>> On localhost improved performance: 37ms latency without and 1ms
>>>>>>>>> latency
>>>>>>>>> to
>>>>>>>>> serve the resource (CSS file)
>>>>>>>>>>> Example Implementation:
>>>>>>>>>>> *
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>> https://github.com/klopfdreh/jetty-http2-example/blob/master/de.jetty.wicket.http2.example/src/main/java/de/jetty/wicket/http2/example/HTTP2Page.java#L28
>>>>>>>
>>>>>>> Jetty Setup:
>>>>>>>>> *
>>>>>>>>>>>
>>>>>>> https://github.com/klopfdreh/jetty-http2-example/blob/master/de.jetty.wicket.http2.example/src/test/java/de/jetty/wicket/http2/example/Runner.java
>>>>>>>
>>>>>>> hooray!
>>>>>>>>> WDYT
>>>>>>>>>>> kind regards
>>>>>>>>>>>
>>>>>>>>>>> Tobias
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> WBR
>>>>>>>>>> Maxim aka solomax
>>>>>>>>>>
>>>>>>>>>>


Re: Apache Wicket rocks with http/2

Posted by Martin Grigorov <ma...@gmail.com>.
Great!

I haven't tested it yet with Tomcat.

I remember reading that Undertow were planning to implement PushBuilder but
I am not sure whether they are ready.
On Jul 3, 2016 10:20 AM, "Tobias Soloschenko" <
tobiassoloschenko@googlemail.com> wrote:

> Hi,
>
> everything is working, now.
>
> * Fixed the build for jetty
> * moved resources to src/main/resources (they were at src/resources and
> not included in the build)
> * Jetty implementation is working for me (tested it with my webapp)
>
> @Martin: Can you test it for tomcat? I assume it is working, too. Should
> we also implement it for other server?
>
> kind regards
>
> Tobias
>
> Am 02.07.16 um 14:09 schrieb Martin Grigorov:
>
>> Hi Tobias,
>>
>> Please check
>> https://git1-us-west.apache.org/repos/asf?p=wicket.git;a=commit;h=5c06a916
>> You will have to finish the impl of Jetty9PushBuilder. I wasn't able to
>> find the jetty Maven dependency to make it building.
>>
>> Martin Grigorov
>> Wicket Training and Consulting
>> https://twitter.com/mtgrigorov
>>
>> On Sat, Jul 2, 2016 at 1:53 PM, Martin Grigorov <mg...@apache.org>
>> wrote:
>>
>> Hi Tobias,
>>>
>>> I'm working on it!
>>>
>>> Martin Grigorov
>>> Wicket Training and Consulting
>>> https://twitter.com/mtgrigorov
>>>
>>> On Sat, Jul 2, 2016 at 1:35 AM, Tobias Soloschenko <
>>> tobiassoloschenko@googlemail.com> wrote:
>>>
>>> Hi Martin,
>>>>
>>>> I prepared the structure a bit:
>>>>
>>>>
>>>>
>>>> https://github.com/apache/wicket/commit/eb730f2979dab6c937e87cefbbe84167cc5546e1
>>>>
>>>> - wicket-experimental
>>>> --- wicket-http2
>>>> ------ wicket-http2-core
>>>> ------ wicket-http2-jetty
>>>> ------ wicket-http2-tomcat
>>>>
>>>> * -core is providing the basic header item and make use of the
>>>> IInitializers
>>>> * -jetty, -tomcat, etc. are the implementations for the servers (I would
>>>> suggest to use the maven dependencies but set them to provided so that
>>>> there is no conflict within the running server.)
>>>>
>>>> Branch: "WICKET-6194"
>>>>
>>>> If you check it out there will be a compile error because of the line
>>>> which is going to use the IInitializers callback to make use of the
>>>> vendor
>>>> specific PushBuilder API.
>>>>
>>>>
>>>>
>>>> https://github.com/apache/wicket/blob/eb730f2979dab6c937e87cefbbe84167cc5546e1/wicket-experimental/wicket-http2/wicket-http2-core/src/main/java/org/apache/wicket/http2/markup/head/PushHeaderItem.java#L77
>>>>
>>>> Can you give me a hint how to implement the IInitializers?
>>>>
>>>> kind regards
>>>>
>>>> Tobias
>>>>
>>>> Am 30.06.16 um 09:40 schrieb Martin Grigorov:
>>>>
>>>> I can add the Tomcat impl and docs how to setup Tomcat 8.5+ with HTTP2.
>>>>
>>>>> Martin Grigorov
>>>>> Wicket Training and Consulting
>>>>> https://twitter.com/mtgrigorov
>>>>>
>>>>> On Wed, Jun 29, 2016 at 6:27 PM, Tobias Soloschenko <
>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>>
>>>>> Jep - would be great until the servlet 4 API reaches the final state.
>>>>>
>>>>>> I already reduced the usage of the container specific calls to one
>>>>>> line.
>>>>>> This line can be delegated to the IInitialzer class.
>>>>>>
>>>>>> I hope tomcat and other servers are implementing the PushBuilder API
>>>>>> similar. If yes it is rather easy to create such an integration.
>>>>>>
>>>>>> kind regards
>>>>>>
>>>>>> Tobias
>>>>>>
>>>>>> Am 29.06.2016 um 17:41 schrieb Martin Grigorov <mgrigorov@apache.org
>>>>>> >:
>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> What do you think about introducing PushBuilder-like API in
>>>>>>> Wicket-core ?
>>>>>>> The default implementation wil justl log warnings.
>>>>>>> If an application wants to make use of this new functionality then it
>>>>>>>
>>>>>>> will
>>>>>>
>>>>>> have to add an additional jar to the classpath, e.g.
>>>>>>> wicketstuff-pushbuilder-jetty9.jar, that will replace the default
>>>>>>>
>>>>>>> strategy
>>>>>>
>>>>>> (with IInitializer) with one that knows how to use Jetty9 internals.
>>>>>>> Same
>>>>>>> for Tomcat 8.5+ and any other container that provides this
>>>>>>> functionality
>>>>>>> with internal APIs.
>>>>>>>
>>>>>>>
>>>>>>> Martin Grigorov
>>>>>>> Wicket Training and Consulting
>>>>>>> https://twitter.com/mtgrigorov
>>>>>>>
>>>>>>> On Tue, Jun 28, 2016 at 11:08 PM, Tobias Soloschenko <
>>>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>>> just a small update:
>>>>>>>>
>>>>>>>> I switched the implementation to servlet-4.0.0-b01 API as far as
>>>>>>>>
>>>>>>>> possible:
>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>> https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api/4.0.0-b01
>>>>>>
>>>>>> The only thing I can do now is to wait for the JEE standard to be
>>>>>>>
>>>>>>>> finalized and to be implemented into the servers like jetty, tomcat,
>>>>>>>>
>>>>>>>> etc.
>>>>>>> https://github.com/klopfdreh/jetty-http2-example
>>>>>>>
>>>>>>>> kind regards
>>>>>>>>
>>>>>>>> Tobias
>>>>>>>>
>>>>>>>> Am 12.05.2016 um 18:15 schrieb Maxim Solodovnik <
>>>>>>>> solomax666@gmail.com
>>>>>>>> :
>>>>>>>> Cool!
>>>>>>>>
>>>>>>>>> On Thu, May 12, 2016 at 10:10 PM, Tobias Soloschenko <
>>>>>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>>>>>>
>>>>>>>>> Hi,
>>>>>>>>>
>>>>>>>>>> I just managed to finish a PoC in which Apache Wicket runs on
>>>>>>>>>> Jetty
>>>>>>>>>>
>>>>>>>>>> with
>>>>>>>>>
>>>>>>>> http/2 and uses the Servlet 4.0 Spec / PushBuilder to provide
>>>>>>>
>>>>>>>> resources
>>>>>>>>>
>>>>>>>> to
>>>>>>>
>>>>>>>> the client.
>>>>>>>>>
>>>>>>>>>> Notes:
>>>>>>>>>> * Small API which can be added to increase the performance of the
>>>>>>>>>>
>>>>>>>>>> webapp
>>>>>>>>>
>>>>>>>> with http/2
>>>>>>>
>>>>>>>> * No html changes required
>>>>>>>>>>
>>>>>>>>>> References:
>>>>>>>>>> *
>>>>>>>>>>
>>>>>>>>>>
>>>>>> https://raw.githubusercontent.com/klopfdreh/jetty-http2-example/master/without_push.png
>>>>>>
>>>>>> *
>>>>>>>
>>>>>>
>>>>>> https://raw.githubusercontent.com/klopfdreh/jetty-http2-example/master/with_push.png
>>>>>>
>>>>>> On localhost improved performance: 37ms latency without and 1ms
>>>>>>>
>>>>>>>> latency
>>>>>>>>>
>>>>>>>> to
>>>>>>>
>>>>>>>> serve the resource (CSS file)
>>>>>>>>>
>>>>>>>>>> Example Implementation:
>>>>>>>>>> *
>>>>>>>>>>
>>>>>>>>>>
>>>>>> https://github.com/klopfdreh/jetty-http2-example/blob/master/de.jetty.wicket.http2.example/src/main/java/de/jetty/wicket/http2/example/HTTP2Page.java#L28
>>>>>>
>>>>>> Jetty Setup:
>>>>>>>
>>>>>>>> *
>>>>>>>>>>
>>>>>>>>>>
>>>>>> https://github.com/klopfdreh/jetty-http2-example/blob/master/de.jetty.wicket.http2.example/src/test/java/de/jetty/wicket/http2/example/Runner.java
>>>>>>
>>>>>> hooray!
>>>>>>>
>>>>>>>> WDYT
>>>>>>>>>>
>>>>>>>>>> kind regards
>>>>>>>>>>
>>>>>>>>>> Tobias
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> WBR
>>>>>>>>> Maxim aka solomax
>>>>>>>>>
>>>>>>>>>
>

Re: Apache Wicket rocks with http/2

Posted by Tobias Soloschenko <to...@googlemail.com>.
Hi,

everything is working, now.

* Fixed the build for jetty
* moved resources to src/main/resources (they were at src/resources and 
not included in the build)
* Jetty implementation is working for me (tested it with my webapp)

@Martin: Can you test it for tomcat? I assume it is working, too. Should 
we also implement it for other server?

kind regards

Tobias

Am 02.07.16 um 14:09 schrieb Martin Grigorov:
> Hi Tobias,
>
> Please check
> https://git1-us-west.apache.org/repos/asf?p=wicket.git;a=commit;h=5c06a916
> You will have to finish the impl of Jetty9PushBuilder. I wasn't able to
> find the jetty Maven dependency to make it building.
>
> Martin Grigorov
> Wicket Training and Consulting
> https://twitter.com/mtgrigorov
>
> On Sat, Jul 2, 2016 at 1:53 PM, Martin Grigorov <mg...@apache.org>
> wrote:
>
>> Hi Tobias,
>>
>> I'm working on it!
>>
>> Martin Grigorov
>> Wicket Training and Consulting
>> https://twitter.com/mtgrigorov
>>
>> On Sat, Jul 2, 2016 at 1:35 AM, Tobias Soloschenko <
>> tobiassoloschenko@googlemail.com> wrote:
>>
>>> Hi Martin,
>>>
>>> I prepared the structure a bit:
>>>
>>>
>>> https://github.com/apache/wicket/commit/eb730f2979dab6c937e87cefbbe84167cc5546e1
>>>
>>> - wicket-experimental
>>> --- wicket-http2
>>> ------ wicket-http2-core
>>> ------ wicket-http2-jetty
>>> ------ wicket-http2-tomcat
>>>
>>> * -core is providing the basic header item and make use of the
>>> IInitializers
>>> * -jetty, -tomcat, etc. are the implementations for the servers (I would
>>> suggest to use the maven dependencies but set them to provided so that
>>> there is no conflict within the running server.)
>>>
>>> Branch: "WICKET-6194"
>>>
>>> If you check it out there will be a compile error because of the line
>>> which is going to use the IInitializers callback to make use of the vendor
>>> specific PushBuilder API.
>>>
>>>
>>> https://github.com/apache/wicket/blob/eb730f2979dab6c937e87cefbbe84167cc5546e1/wicket-experimental/wicket-http2/wicket-http2-core/src/main/java/org/apache/wicket/http2/markup/head/PushHeaderItem.java#L77
>>>
>>> Can you give me a hint how to implement the IInitializers?
>>>
>>> kind regards
>>>
>>> Tobias
>>>
>>> Am 30.06.16 um 09:40 schrieb Martin Grigorov:
>>>
>>> I can add the Tomcat impl and docs how to setup Tomcat 8.5+ with HTTP2.
>>>> Martin Grigorov
>>>> Wicket Training and Consulting
>>>> https://twitter.com/mtgrigorov
>>>>
>>>> On Wed, Jun 29, 2016 at 6:27 PM, Tobias Soloschenko <
>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>
>>>> Jep - would be great until the servlet 4 API reaches the final state.
>>>>> I already reduced the usage of the container specific calls to one line.
>>>>> This line can be delegated to the IInitialzer class.
>>>>>
>>>>> I hope tomcat and other servers are implementing the PushBuilder API
>>>>> similar. If yes it is rather easy to create such an integration.
>>>>>
>>>>> kind regards
>>>>>
>>>>> Tobias
>>>>>
>>>>> Am 29.06.2016 um 17:41 schrieb Martin Grigorov <mg...@apache.org>:
>>>>>> Hi,
>>>>>>
>>>>>> What do you think about introducing PushBuilder-like API in
>>>>>> Wicket-core ?
>>>>>> The default implementation wil justl log warnings.
>>>>>> If an application wants to make use of this new functionality then it
>>>>>>
>>>>> will
>>>>>
>>>>>> have to add an additional jar to the classpath, e.g.
>>>>>> wicketstuff-pushbuilder-jetty9.jar, that will replace the default
>>>>>>
>>>>> strategy
>>>>>
>>>>>> (with IInitializer) with one that knows how to use Jetty9 internals.
>>>>>> Same
>>>>>> for Tomcat 8.5+ and any other container that provides this
>>>>>> functionality
>>>>>> with internal APIs.
>>>>>>
>>>>>>
>>>>>> Martin Grigorov
>>>>>> Wicket Training and Consulting
>>>>>> https://twitter.com/mtgrigorov
>>>>>>
>>>>>> On Tue, Jun 28, 2016 at 11:08 PM, Tobias Soloschenko <
>>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>>>
>>>>>> Hi,
>>>>>>> just a small update:
>>>>>>>
>>>>>>> I switched the implementation to servlet-4.0.0-b01 API as far as
>>>>>>>
>>>>>> possible:
>>>>>>>
>>>>> https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api/4.0.0-b01
>>>>>
>>>>>> The only thing I can do now is to wait for the JEE standard to be
>>>>>>> finalized and to be implemented into the servers like jetty, tomcat,
>>>>>>>
>>>>>> etc.
>>>>>> https://github.com/klopfdreh/jetty-http2-example
>>>>>>> kind regards
>>>>>>>
>>>>>>> Tobias
>>>>>>>
>>>>>>> Am 12.05.2016 um 18:15 schrieb Maxim Solodovnik <solomax666@gmail.com
>>>>>>> :
>>>>>>> Cool!
>>>>>>>> On Thu, May 12, 2016 at 10:10 PM, Tobias Soloschenko <
>>>>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>>>>>
>>>>>>>> Hi,
>>>>>>>>> I just managed to finish a PoC in which Apache Wicket runs on Jetty
>>>>>>>>>
>>>>>>>> with
>>>>>> http/2 and uses the Servlet 4.0 Spec / PushBuilder to provide
>>>>>>>> resources
>>>>>> to
>>>>>>>> the client.
>>>>>>>>> Notes:
>>>>>>>>> * Small API which can be added to increase the performance of the
>>>>>>>>>
>>>>>>>> webapp
>>>>>> with http/2
>>>>>>>>> * No html changes required
>>>>>>>>>
>>>>>>>>> References:
>>>>>>>>> *
>>>>>>>>>
>>>>> https://raw.githubusercontent.com/klopfdreh/jetty-http2-example/master/without_push.png
>>>>>
>>>>>> *
>>>>> https://raw.githubusercontent.com/klopfdreh/jetty-http2-example/master/with_push.png
>>>>>
>>>>>> On localhost improved performance: 37ms latency without and 1ms
>>>>>>>> latency
>>>>>> to
>>>>>>>> serve the resource (CSS file)
>>>>>>>>> Example Implementation:
>>>>>>>>> *
>>>>>>>>>
>>>>> https://github.com/klopfdreh/jetty-http2-example/blob/master/de.jetty.wicket.http2.example/src/main/java/de/jetty/wicket/http2/example/HTTP2Page.java#L28
>>>>>
>>>>>> Jetty Setup:
>>>>>>>>> *
>>>>>>>>>
>>>>> https://github.com/klopfdreh/jetty-http2-example/blob/master/de.jetty.wicket.http2.example/src/test/java/de/jetty/wicket/http2/example/Runner.java
>>>>>
>>>>>> hooray!
>>>>>>>>> WDYT
>>>>>>>>>
>>>>>>>>> kind regards
>>>>>>>>>
>>>>>>>>> Tobias
>>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> WBR
>>>>>>>> Maxim aka solomax
>>>>>>>>


Re: Apache Wicket rocks with http/2

Posted by Tobias Soloschenko <to...@googlemail.com>.
Hi Martin,

I am not able to implement it till next weekend - if this is to late I would suggest to use jetty aggregate and set the scope to provided as here:

https://github.com/klopfdreh/jetty-http2-example/blob/master/de.jetty.wicket.http2.example/pom.xml

kind regards

Tobias

> Am 02.07.2016 um 14:09 schrieb Martin Grigorov <mg...@apache.org>:
> 
> Hi Tobias,
> 
> Please check
> https://git1-us-west.apache.org/repos/asf?p=wicket.git;a=commit;h=5c06a916
> You will have to finish the impl of Jetty9PushBuilder. I wasn't able to
> find the jetty Maven dependency to make it building.
> 
> Martin Grigorov
> Wicket Training and Consulting
> https://twitter.com/mtgrigorov
> 
> On Sat, Jul 2, 2016 at 1:53 PM, Martin Grigorov <mg...@apache.org>
> wrote:
> 
>> Hi Tobias,
>> 
>> I'm working on it!
>> 
>> Martin Grigorov
>> Wicket Training and Consulting
>> https://twitter.com/mtgrigorov
>> 
>> On Sat, Jul 2, 2016 at 1:35 AM, Tobias Soloschenko <
>> tobiassoloschenko@googlemail.com> wrote:
>> 
>>> Hi Martin,
>>> 
>>> I prepared the structure a bit:
>>> 
>>> 
>>> https://github.com/apache/wicket/commit/eb730f2979dab6c937e87cefbbe84167cc5546e1
>>> 
>>> - wicket-experimental
>>> --- wicket-http2
>>> ------ wicket-http2-core
>>> ------ wicket-http2-jetty
>>> ------ wicket-http2-tomcat
>>> 
>>> * -core is providing the basic header item and make use of the
>>> IInitializers
>>> * -jetty, -tomcat, etc. are the implementations for the servers (I would
>>> suggest to use the maven dependencies but set them to provided so that
>>> there is no conflict within the running server.)
>>> 
>>> Branch: "WICKET-6194"
>>> 
>>> If you check it out there will be a compile error because of the line
>>> which is going to use the IInitializers callback to make use of the vendor
>>> specific PushBuilder API.
>>> 
>>> 
>>> https://github.com/apache/wicket/blob/eb730f2979dab6c937e87cefbbe84167cc5546e1/wicket-experimental/wicket-http2/wicket-http2-core/src/main/java/org/apache/wicket/http2/markup/head/PushHeaderItem.java#L77
>>> 
>>> Can you give me a hint how to implement the IInitializers?
>>> 
>>> kind regards
>>> 
>>> Tobias
>>> 
>>> Am 30.06.16 um 09:40 schrieb Martin Grigorov:
>>> 
>>> I can add the Tomcat impl and docs how to setup Tomcat 8.5+ with HTTP2.
>>>> 
>>>> Martin Grigorov
>>>> Wicket Training and Consulting
>>>> https://twitter.com/mtgrigorov
>>>> 
>>>> On Wed, Jun 29, 2016 at 6:27 PM, Tobias Soloschenko <
>>>> tobiassoloschenko@googlemail.com> wrote:
>>>> 
>>>> Jep - would be great until the servlet 4 API reaches the final state.
>>>>> 
>>>>> I already reduced the usage of the container specific calls to one line.
>>>>> This line can be delegated to the IInitialzer class.
>>>>> 
>>>>> I hope tomcat and other servers are implementing the PushBuilder API
>>>>> similar. If yes it is rather easy to create such an integration.
>>>>> 
>>>>> kind regards
>>>>> 
>>>>> Tobias
>>>>> 
>>>>>> Am 29.06.2016 um 17:41 schrieb Martin Grigorov <mg...@apache.org>:
>>>>>> 
>>>>>> Hi,
>>>>>> 
>>>>>> What do you think about introducing PushBuilder-like API in
>>>>>> Wicket-core ?
>>>>>> The default implementation wil justl log warnings.
>>>>>> If an application wants to make use of this new functionality then it
>>>>> will
>>>>> 
>>>>>> have to add an additional jar to the classpath, e.g.
>>>>>> wicketstuff-pushbuilder-jetty9.jar, that will replace the default
>>>>> strategy
>>>>> 
>>>>>> (with IInitializer) with one that knows how to use Jetty9 internals.
>>>>>> Same
>>>>>> for Tomcat 8.5+ and any other container that provides this
>>>>>> functionality
>>>>>> with internal APIs.
>>>>>> 
>>>>>> 
>>>>>> Martin Grigorov
>>>>>> Wicket Training and Consulting
>>>>>> https://twitter.com/mtgrigorov
>>>>>> 
>>>>>> On Tue, Jun 28, 2016 at 11:08 PM, Tobias Soloschenko <
>>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>>> 
>>>>>> Hi,
>>>>>>> 
>>>>>>> just a small update:
>>>>>>> 
>>>>>>> I switched the implementation to servlet-4.0.0-b01 API as far as
>>>>>> possible:
>>>>> 
>>>>>> 
>>>>> https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api/4.0.0-b01
>>>>> 
>>>>>> The only thing I can do now is to wait for the JEE standard to be
>>>>>>> finalized and to be implemented into the servers like jetty, tomcat,
>>>>>> etc.
>>>>> 
>>>>>> https://github.com/klopfdreh/jetty-http2-example
>>>>>>> 
>>>>>>> kind regards
>>>>>>> 
>>>>>>> Tobias
>>>>>>> 
>>>>>>> Am 12.05.2016 um 18:15 schrieb Maxim Solodovnik <solomax666@gmail.com
>>>>>>> :
>>>>>> 
>>>>>>> Cool!
>>>>>>>> 
>>>>>>>> On Thu, May 12, 2016 at 10:10 PM, Tobias Soloschenko <
>>>>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>>>>> 
>>>>>>>> Hi,
>>>>>>>>> 
>>>>>>>>> I just managed to finish a PoC in which Apache Wicket runs on Jetty
>>>>>>>> with
>>>>> 
>>>>>> http/2 and uses the Servlet 4.0 Spec / PushBuilder to provide
>>>>>>>> resources
>>>>> 
>>>>>> to
>>>>>>> 
>>>>>>>> the client.
>>>>>>>>> 
>>>>>>>>> Notes:
>>>>>>>>> * Small API which can be added to increase the performance of the
>>>>>>>> webapp
>>>>> 
>>>>>> with http/2
>>>>>>>>> * No html changes required
>>>>>>>>> 
>>>>>>>>> References:
>>>>>>>>> *
>>>>> https://raw.githubusercontent.com/klopfdreh/jetty-http2-example/master/without_push.png
>>>>> 
>>>>>> *
>>>>> https://raw.githubusercontent.com/klopfdreh/jetty-http2-example/master/with_push.png
>>>>> 
>>>>>> On localhost improved performance: 37ms latency without and 1ms
>>>>>>>> latency
>>>>> 
>>>>>> to
>>>>>>> 
>>>>>>>> serve the resource (CSS file)
>>>>>>>>> 
>>>>>>>>> Example Implementation:
>>>>>>>>> *
>>>>> https://github.com/klopfdreh/jetty-http2-example/blob/master/de.jetty.wicket.http2.example/src/main/java/de/jetty/wicket/http2/example/HTTP2Page.java#L28
>>>>> 
>>>>>> Jetty Setup:
>>>>>>>>> *
>>>>> https://github.com/klopfdreh/jetty-http2-example/blob/master/de.jetty.wicket.http2.example/src/test/java/de/jetty/wicket/http2/example/Runner.java
>>>>> 
>>>>>> hooray!
>>>>>>>>> 
>>>>>>>>> WDYT
>>>>>>>>> 
>>>>>>>>> kind regards
>>>>>>>>> 
>>>>>>>>> Tobias
>>>>>>>> 
>>>>>>>> 
>>>>>>>> --
>>>>>>>> WBR
>>>>>>>> Maxim aka solomax
>> 

Re: Apache Wicket rocks with http/2

Posted by Tobias Soloschenko <to...@googlemail.com>.
Hi Martin,

I send the mail to early. The Rest of the implementation looks great to me! Thanks a lot for your time! :-)

kind regards

Tobias

> Am 02.07.2016 um 14:09 schrieb Martin Grigorov <mg...@apache.org>:
> 
> Hi Tobias,
> 
> Please check
> https://git1-us-west.apache.org/repos/asf?p=wicket.git;a=commit;h=5c06a916
> You will have to finish the impl of Jetty9PushBuilder. I wasn't able to
> find the jetty Maven dependency to make it building.
> 
> Martin Grigorov
> Wicket Training and Consulting
> https://twitter.com/mtgrigorov
> 
> On Sat, Jul 2, 2016 at 1:53 PM, Martin Grigorov <mg...@apache.org>
> wrote:
> 
>> Hi Tobias,
>> 
>> I'm working on it!
>> 
>> Martin Grigorov
>> Wicket Training and Consulting
>> https://twitter.com/mtgrigorov
>> 
>> On Sat, Jul 2, 2016 at 1:35 AM, Tobias Soloschenko <
>> tobiassoloschenko@googlemail.com> wrote:
>> 
>>> Hi Martin,
>>> 
>>> I prepared the structure a bit:
>>> 
>>> 
>>> https://github.com/apache/wicket/commit/eb730f2979dab6c937e87cefbbe84167cc5546e1
>>> 
>>> - wicket-experimental
>>> --- wicket-http2
>>> ------ wicket-http2-core
>>> ------ wicket-http2-jetty
>>> ------ wicket-http2-tomcat
>>> 
>>> * -core is providing the basic header item and make use of the
>>> IInitializers
>>> * -jetty, -tomcat, etc. are the implementations for the servers (I would
>>> suggest to use the maven dependencies but set them to provided so that
>>> there is no conflict within the running server.)
>>> 
>>> Branch: "WICKET-6194"
>>> 
>>> If you check it out there will be a compile error because of the line
>>> which is going to use the IInitializers callback to make use of the vendor
>>> specific PushBuilder API.
>>> 
>>> 
>>> https://github.com/apache/wicket/blob/eb730f2979dab6c937e87cefbbe84167cc5546e1/wicket-experimental/wicket-http2/wicket-http2-core/src/main/java/org/apache/wicket/http2/markup/head/PushHeaderItem.java#L77
>>> 
>>> Can you give me a hint how to implement the IInitializers?
>>> 
>>> kind regards
>>> 
>>> Tobias
>>> 
>>> Am 30.06.16 um 09:40 schrieb Martin Grigorov:
>>> 
>>> I can add the Tomcat impl and docs how to setup Tomcat 8.5+ with HTTP2.
>>>> 
>>>> Martin Grigorov
>>>> Wicket Training and Consulting
>>>> https://twitter.com/mtgrigorov
>>>> 
>>>> On Wed, Jun 29, 2016 at 6:27 PM, Tobias Soloschenko <
>>>> tobiassoloschenko@googlemail.com> wrote:
>>>> 
>>>> Jep - would be great until the servlet 4 API reaches the final state.
>>>>> 
>>>>> I already reduced the usage of the container specific calls to one line.
>>>>> This line can be delegated to the IInitialzer class.
>>>>> 
>>>>> I hope tomcat and other servers are implementing the PushBuilder API
>>>>> similar. If yes it is rather easy to create such an integration.
>>>>> 
>>>>> kind regards
>>>>> 
>>>>> Tobias
>>>>> 
>>>>>> Am 29.06.2016 um 17:41 schrieb Martin Grigorov <mg...@apache.org>:
>>>>>> 
>>>>>> Hi,
>>>>>> 
>>>>>> What do you think about introducing PushBuilder-like API in
>>>>>> Wicket-core ?
>>>>>> The default implementation wil justl log warnings.
>>>>>> If an application wants to make use of this new functionality then it
>>>>> will
>>>>> 
>>>>>> have to add an additional jar to the classpath, e.g.
>>>>>> wicketstuff-pushbuilder-jetty9.jar, that will replace the default
>>>>> strategy
>>>>> 
>>>>>> (with IInitializer) with one that knows how to use Jetty9 internals.
>>>>>> Same
>>>>>> for Tomcat 8.5+ and any other container that provides this
>>>>>> functionality
>>>>>> with internal APIs.
>>>>>> 
>>>>>> 
>>>>>> Martin Grigorov
>>>>>> Wicket Training and Consulting
>>>>>> https://twitter.com/mtgrigorov
>>>>>> 
>>>>>> On Tue, Jun 28, 2016 at 11:08 PM, Tobias Soloschenko <
>>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>>> 
>>>>>> Hi,
>>>>>>> 
>>>>>>> just a small update:
>>>>>>> 
>>>>>>> I switched the implementation to servlet-4.0.0-b01 API as far as
>>>>>> possible:
>>>>> 
>>>>>> 
>>>>> https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api/4.0.0-b01
>>>>> 
>>>>>> The only thing I can do now is to wait for the JEE standard to be
>>>>>>> finalized and to be implemented into the servers like jetty, tomcat,
>>>>>> etc.
>>>>> 
>>>>>> https://github.com/klopfdreh/jetty-http2-example
>>>>>>> 
>>>>>>> kind regards
>>>>>>> 
>>>>>>> Tobias
>>>>>>> 
>>>>>>> Am 12.05.2016 um 18:15 schrieb Maxim Solodovnik <solomax666@gmail.com
>>>>>>> :
>>>>>> 
>>>>>>> Cool!
>>>>>>>> 
>>>>>>>> On Thu, May 12, 2016 at 10:10 PM, Tobias Soloschenko <
>>>>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>>>>> 
>>>>>>>> Hi,
>>>>>>>>> 
>>>>>>>>> I just managed to finish a PoC in which Apache Wicket runs on Jetty
>>>>>>>> with
>>>>> 
>>>>>> http/2 and uses the Servlet 4.0 Spec / PushBuilder to provide
>>>>>>>> resources
>>>>> 
>>>>>> to
>>>>>>> 
>>>>>>>> the client.
>>>>>>>>> 
>>>>>>>>> Notes:
>>>>>>>>> * Small API which can be added to increase the performance of the
>>>>>>>> webapp
>>>>> 
>>>>>> with http/2
>>>>>>>>> * No html changes required
>>>>>>>>> 
>>>>>>>>> References:
>>>>>>>>> *
>>>>> https://raw.githubusercontent.com/klopfdreh/jetty-http2-example/master/without_push.png
>>>>> 
>>>>>> *
>>>>> https://raw.githubusercontent.com/klopfdreh/jetty-http2-example/master/with_push.png
>>>>> 
>>>>>> On localhost improved performance: 37ms latency without and 1ms
>>>>>>>> latency
>>>>> 
>>>>>> to
>>>>>>> 
>>>>>>>> serve the resource (CSS file)
>>>>>>>>> 
>>>>>>>>> Example Implementation:
>>>>>>>>> *
>>>>> https://github.com/klopfdreh/jetty-http2-example/blob/master/de.jetty.wicket.http2.example/src/main/java/de/jetty/wicket/http2/example/HTTP2Page.java#L28
>>>>> 
>>>>>> Jetty Setup:
>>>>>>>>> *
>>>>> https://github.com/klopfdreh/jetty-http2-example/blob/master/de.jetty.wicket.http2.example/src/test/java/de/jetty/wicket/http2/example/Runner.java
>>>>> 
>>>>>> hooray!
>>>>>>>>> 
>>>>>>>>> WDYT
>>>>>>>>> 
>>>>>>>>> kind regards
>>>>>>>>> 
>>>>>>>>> Tobias
>>>>>>>> 
>>>>>>>> 
>>>>>>>> --
>>>>>>>> WBR
>>>>>>>> Maxim aka solomax
>> 

Re: Apache Wicket rocks with http/2

Posted by Martin Grigorov <mg...@apache.org>.
Hi Tobias,

Please check
https://git1-us-west.apache.org/repos/asf?p=wicket.git;a=commit;h=5c06a916
You will have to finish the impl of Jetty9PushBuilder. I wasn't able to
find the jetty Maven dependency to make it building.

Martin Grigorov
Wicket Training and Consulting
https://twitter.com/mtgrigorov

On Sat, Jul 2, 2016 at 1:53 PM, Martin Grigorov <mg...@apache.org>
wrote:

> Hi Tobias,
>
> I'm working on it!
>
> Martin Grigorov
> Wicket Training and Consulting
> https://twitter.com/mtgrigorov
>
> On Sat, Jul 2, 2016 at 1:35 AM, Tobias Soloschenko <
> tobiassoloschenko@googlemail.com> wrote:
>
>> Hi Martin,
>>
>> I prepared the structure a bit:
>>
>>
>> https://github.com/apache/wicket/commit/eb730f2979dab6c937e87cefbbe84167cc5546e1
>>
>> - wicket-experimental
>> --- wicket-http2
>> ------ wicket-http2-core
>> ------ wicket-http2-jetty
>> ------ wicket-http2-tomcat
>>
>> * -core is providing the basic header item and make use of the
>> IInitializers
>> * -jetty, -tomcat, etc. are the implementations for the servers (I would
>> suggest to use the maven dependencies but set them to provided so that
>> there is no conflict within the running server.)
>>
>> Branch: "WICKET-6194"
>>
>> If you check it out there will be a compile error because of the line
>> which is going to use the IInitializers callback to make use of the vendor
>> specific PushBuilder API.
>>
>>
>> https://github.com/apache/wicket/blob/eb730f2979dab6c937e87cefbbe84167cc5546e1/wicket-experimental/wicket-http2/wicket-http2-core/src/main/java/org/apache/wicket/http2/markup/head/PushHeaderItem.java#L77
>>
>> Can you give me a hint how to implement the IInitializers?
>>
>> kind regards
>>
>> Tobias
>>
>> Am 30.06.16 um 09:40 schrieb Martin Grigorov:
>>
>> I can add the Tomcat impl and docs how to setup Tomcat 8.5+ with HTTP2.
>>>
>>> Martin Grigorov
>>> Wicket Training and Consulting
>>> https://twitter.com/mtgrigorov
>>>
>>> On Wed, Jun 29, 2016 at 6:27 PM, Tobias Soloschenko <
>>> tobiassoloschenko@googlemail.com> wrote:
>>>
>>> Jep - would be great until the servlet 4 API reaches the final state.
>>>>
>>>> I already reduced the usage of the container specific calls to one line.
>>>> This line can be delegated to the IInitialzer class.
>>>>
>>>> I hope tomcat and other servers are implementing the PushBuilder API
>>>> similar. If yes it is rather easy to create such an integration.
>>>>
>>>> kind regards
>>>>
>>>> Tobias
>>>>
>>>> Am 29.06.2016 um 17:41 schrieb Martin Grigorov <mg...@apache.org>:
>>>>>
>>>>> Hi,
>>>>>
>>>>> What do you think about introducing PushBuilder-like API in
>>>>> Wicket-core ?
>>>>> The default implementation wil justl log warnings.
>>>>> If an application wants to make use of this new functionality then it
>>>>>
>>>> will
>>>>
>>>>> have to add an additional jar to the classpath, e.g.
>>>>> wicketstuff-pushbuilder-jetty9.jar, that will replace the default
>>>>>
>>>> strategy
>>>>
>>>>> (with IInitializer) with one that knows how to use Jetty9 internals.
>>>>> Same
>>>>> for Tomcat 8.5+ and any other container that provides this
>>>>> functionality
>>>>> with internal APIs.
>>>>>
>>>>>
>>>>> Martin Grigorov
>>>>> Wicket Training and Consulting
>>>>> https://twitter.com/mtgrigorov
>>>>>
>>>>> On Tue, Jun 28, 2016 at 11:08 PM, Tobias Soloschenko <
>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>>
>>>>> Hi,
>>>>>>
>>>>>> just a small update:
>>>>>>
>>>>>> I switched the implementation to servlet-4.0.0-b01 API as far as
>>>>>>
>>>>> possible:
>>>>
>>>>>
>>>>>>
>>>>>>
>>>> https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api/4.0.0-b01
>>>>
>>>>> The only thing I can do now is to wait for the JEE standard to be
>>>>>> finalized and to be implemented into the servers like jetty, tomcat,
>>>>>>
>>>>> etc.
>>>>
>>>>> https://github.com/klopfdreh/jetty-http2-example
>>>>>>
>>>>>> kind regards
>>>>>>
>>>>>> Tobias
>>>>>>
>>>>>> Am 12.05.2016 um 18:15 schrieb Maxim Solodovnik <solomax666@gmail.com
>>>>>>>
>>>>>> :
>>>>>
>>>>>> Cool!
>>>>>>>
>>>>>>> On Thu, May 12, 2016 at 10:10 PM, Tobias Soloschenko <
>>>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>>>>
>>>>>>> Hi,
>>>>>>>>
>>>>>>>> I just managed to finish a PoC in which Apache Wicket runs on Jetty
>>>>>>>>
>>>>>>> with
>>>>
>>>>> http/2 and uses the Servlet 4.0 Spec / PushBuilder to provide
>>>>>>>>
>>>>>>> resources
>>>>
>>>>> to
>>>>>>
>>>>>>> the client.
>>>>>>>>
>>>>>>>> Notes:
>>>>>>>> * Small API which can be added to increase the performance of the
>>>>>>>>
>>>>>>> webapp
>>>>
>>>>> with http/2
>>>>>>>> * No html changes required
>>>>>>>>
>>>>>>>> References:
>>>>>>>> *
>>>>>>>>
>>>>>>>
>>>> https://raw.githubusercontent.com/klopfdreh/jetty-http2-example/master/without_push.png
>>>>
>>>>> *
>>>>>>>>
>>>>>>>
>>>> https://raw.githubusercontent.com/klopfdreh/jetty-http2-example/master/with_push.png
>>>>
>>>>> On localhost improved performance: 37ms latency without and 1ms
>>>>>>>>
>>>>>>> latency
>>>>
>>>>> to
>>>>>>
>>>>>>> serve the resource (CSS file)
>>>>>>>>
>>>>>>>> Example Implementation:
>>>>>>>> *
>>>>>>>>
>>>>>>>
>>>> https://github.com/klopfdreh/jetty-http2-example/blob/master/de.jetty.wicket.http2.example/src/main/java/de/jetty/wicket/http2/example/HTTP2Page.java#L28
>>>>
>>>>> Jetty Setup:
>>>>>>>> *
>>>>>>>>
>>>>>>>
>>>> https://github.com/klopfdreh/jetty-http2-example/blob/master/de.jetty.wicket.http2.example/src/test/java/de/jetty/wicket/http2/example/Runner.java
>>>>
>>>>> hooray!
>>>>>>>>
>>>>>>>> WDYT
>>>>>>>>
>>>>>>>> kind regards
>>>>>>>>
>>>>>>>> Tobias
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> WBR
>>>>>>> Maxim aka solomax
>>>>>>>
>>>>>>
>>
>

Re: Apache Wicket rocks with http/2

Posted by Martin Grigorov <mg...@apache.org>.
Hi Tobias,

I'm working on it!

Martin Grigorov
Wicket Training and Consulting
https://twitter.com/mtgrigorov

On Sat, Jul 2, 2016 at 1:35 AM, Tobias Soloschenko <
tobiassoloschenko@googlemail.com> wrote:

> Hi Martin,
>
> I prepared the structure a bit:
>
>
> https://github.com/apache/wicket/commit/eb730f2979dab6c937e87cefbbe84167cc5546e1
>
> - wicket-experimental
> --- wicket-http2
> ------ wicket-http2-core
> ------ wicket-http2-jetty
> ------ wicket-http2-tomcat
>
> * -core is providing the basic header item and make use of the
> IInitializers
> * -jetty, -tomcat, etc. are the implementations for the servers (I would
> suggest to use the maven dependencies but set them to provided so that
> there is no conflict within the running server.)
>
> Branch: "WICKET-6194"
>
> If you check it out there will be a compile error because of the line
> which is going to use the IInitializers callback to make use of the vendor
> specific PushBuilder API.
>
>
> https://github.com/apache/wicket/blob/eb730f2979dab6c937e87cefbbe84167cc5546e1/wicket-experimental/wicket-http2/wicket-http2-core/src/main/java/org/apache/wicket/http2/markup/head/PushHeaderItem.java#L77
>
> Can you give me a hint how to implement the IInitializers?
>
> kind regards
>
> Tobias
>
> Am 30.06.16 um 09:40 schrieb Martin Grigorov:
>
> I can add the Tomcat impl and docs how to setup Tomcat 8.5+ with HTTP2.
>>
>> Martin Grigorov
>> Wicket Training and Consulting
>> https://twitter.com/mtgrigorov
>>
>> On Wed, Jun 29, 2016 at 6:27 PM, Tobias Soloschenko <
>> tobiassoloschenko@googlemail.com> wrote:
>>
>> Jep - would be great until the servlet 4 API reaches the final state.
>>>
>>> I already reduced the usage of the container specific calls to one line.
>>> This line can be delegated to the IInitialzer class.
>>>
>>> I hope tomcat and other servers are implementing the PushBuilder API
>>> similar. If yes it is rather easy to create such an integration.
>>>
>>> kind regards
>>>
>>> Tobias
>>>
>>> Am 29.06.2016 um 17:41 schrieb Martin Grigorov <mg...@apache.org>:
>>>>
>>>> Hi,
>>>>
>>>> What do you think about introducing PushBuilder-like API in Wicket-core
>>>> ?
>>>> The default implementation wil justl log warnings.
>>>> If an application wants to make use of this new functionality then it
>>>>
>>> will
>>>
>>>> have to add an additional jar to the classpath, e.g.
>>>> wicketstuff-pushbuilder-jetty9.jar, that will replace the default
>>>>
>>> strategy
>>>
>>>> (with IInitializer) with one that knows how to use Jetty9 internals.
>>>> Same
>>>> for Tomcat 8.5+ and any other container that provides this functionality
>>>> with internal APIs.
>>>>
>>>>
>>>> Martin Grigorov
>>>> Wicket Training and Consulting
>>>> https://twitter.com/mtgrigorov
>>>>
>>>> On Tue, Jun 28, 2016 at 11:08 PM, Tobias Soloschenko <
>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>
>>>> Hi,
>>>>>
>>>>> just a small update:
>>>>>
>>>>> I switched the implementation to servlet-4.0.0-b01 API as far as
>>>>>
>>>> possible:
>>>
>>>>
>>>>>
>>>>>
>>> https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api/4.0.0-b01
>>>
>>>> The only thing I can do now is to wait for the JEE standard to be
>>>>> finalized and to be implemented into the servers like jetty, tomcat,
>>>>>
>>>> etc.
>>>
>>>> https://github.com/klopfdreh/jetty-http2-example
>>>>>
>>>>> kind regards
>>>>>
>>>>> Tobias
>>>>>
>>>>> Am 12.05.2016 um 18:15 schrieb Maxim Solodovnik <solomax666@gmail.com
>>>>>>
>>>>> :
>>>>
>>>>> Cool!
>>>>>>
>>>>>> On Thu, May 12, 2016 at 10:10 PM, Tobias Soloschenko <
>>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>>>
>>>>>> Hi,
>>>>>>>
>>>>>>> I just managed to finish a PoC in which Apache Wicket runs on Jetty
>>>>>>>
>>>>>> with
>>>
>>>> http/2 and uses the Servlet 4.0 Spec / PushBuilder to provide
>>>>>>>
>>>>>> resources
>>>
>>>> to
>>>>>
>>>>>> the client.
>>>>>>>
>>>>>>> Notes:
>>>>>>> * Small API which can be added to increase the performance of the
>>>>>>>
>>>>>> webapp
>>>
>>>> with http/2
>>>>>>> * No html changes required
>>>>>>>
>>>>>>> References:
>>>>>>> *
>>>>>>>
>>>>>>
>>> https://raw.githubusercontent.com/klopfdreh/jetty-http2-example/master/without_push.png
>>>
>>>> *
>>>>>>>
>>>>>>
>>> https://raw.githubusercontent.com/klopfdreh/jetty-http2-example/master/with_push.png
>>>
>>>> On localhost improved performance: 37ms latency without and 1ms
>>>>>>>
>>>>>> latency
>>>
>>>> to
>>>>>
>>>>>> serve the resource (CSS file)
>>>>>>>
>>>>>>> Example Implementation:
>>>>>>> *
>>>>>>>
>>>>>>
>>> https://github.com/klopfdreh/jetty-http2-example/blob/master/de.jetty.wicket.http2.example/src/main/java/de/jetty/wicket/http2/example/HTTP2Page.java#L28
>>>
>>>> Jetty Setup:
>>>>>>> *
>>>>>>>
>>>>>>
>>> https://github.com/klopfdreh/jetty-http2-example/blob/master/de.jetty.wicket.http2.example/src/test/java/de/jetty/wicket/http2/example/Runner.java
>>>
>>>> hooray!
>>>>>>>
>>>>>>> WDYT
>>>>>>>
>>>>>>> kind regards
>>>>>>>
>>>>>>> Tobias
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> WBR
>>>>>> Maxim aka solomax
>>>>>>
>>>>>
>

Re: Apache Wicket rocks with http/2

Posted by Tobias Soloschenko <to...@googlemail.com>.
Hi Martin,

I prepared the structure a bit:

https://github.com/apache/wicket/commit/eb730f2979dab6c937e87cefbbe84167cc5546e1

- wicket-experimental
--- wicket-http2
------ wicket-http2-core
------ wicket-http2-jetty
------ wicket-http2-tomcat

* -core is providing the basic header item and make use of the IInitializers
* -jetty, -tomcat, etc. are the implementations for the servers (I would 
suggest to use the maven dependencies but set them to provided so that 
there is no conflict within the running server.)

Branch: "WICKET-6194"

If you check it out there will be a compile error because of the line 
which is going to use the IInitializers callback to make use of the 
vendor specific PushBuilder API.

https://github.com/apache/wicket/blob/eb730f2979dab6c937e87cefbbe84167cc5546e1/wicket-experimental/wicket-http2/wicket-http2-core/src/main/java/org/apache/wicket/http2/markup/head/PushHeaderItem.java#L77

Can you give me a hint how to implement the IInitializers?

kind regards

Tobias

Am 30.06.16 um 09:40 schrieb Martin Grigorov:
> I can add the Tomcat impl and docs how to setup Tomcat 8.5+ with HTTP2.
>
> Martin Grigorov
> Wicket Training and Consulting
> https://twitter.com/mtgrigorov
>
> On Wed, Jun 29, 2016 at 6:27 PM, Tobias Soloschenko <
> tobiassoloschenko@googlemail.com> wrote:
>
>> Jep - would be great until the servlet 4 API reaches the final state.
>>
>> I already reduced the usage of the container specific calls to one line.
>> This line can be delegated to the IInitialzer class.
>>
>> I hope tomcat and other servers are implementing the PushBuilder API
>> similar. If yes it is rather easy to create such an integration.
>>
>> kind regards
>>
>> Tobias
>>
>>> Am 29.06.2016 um 17:41 schrieb Martin Grigorov <mg...@apache.org>:
>>>
>>> Hi,
>>>
>>> What do you think about introducing PushBuilder-like API in Wicket-core ?
>>> The default implementation wil justl log warnings.
>>> If an application wants to make use of this new functionality then it
>> will
>>> have to add an additional jar to the classpath, e.g.
>>> wicketstuff-pushbuilder-jetty9.jar, that will replace the default
>> strategy
>>> (with IInitializer) with one that knows how to use Jetty9 internals. Same
>>> for Tomcat 8.5+ and any other container that provides this functionality
>>> with internal APIs.
>>>
>>>
>>> Martin Grigorov
>>> Wicket Training and Consulting
>>> https://twitter.com/mtgrigorov
>>>
>>> On Tue, Jun 28, 2016 at 11:08 PM, Tobias Soloschenko <
>>> tobiassoloschenko@googlemail.com> wrote:
>>>
>>>> Hi,
>>>>
>>>> just a small update:
>>>>
>>>> I switched the implementation to servlet-4.0.0-b01 API as far as
>> possible:
>>>>
>>>>
>> https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api/4.0.0-b01
>>>> The only thing I can do now is to wait for the JEE standard to be
>>>> finalized and to be implemented into the servers like jetty, tomcat,
>> etc.
>>>> https://github.com/klopfdreh/jetty-http2-example
>>>>
>>>> kind regards
>>>>
>>>> Tobias
>>>>
>>>>> Am 12.05.2016 um 18:15 schrieb Maxim Solodovnik <solomax666@gmail.com
>>> :
>>>>> Cool!
>>>>>
>>>>> On Thu, May 12, 2016 at 10:10 PM, Tobias Soloschenko <
>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> I just managed to finish a PoC in which Apache Wicket runs on Jetty
>> with
>>>>>> http/2 and uses the Servlet 4.0 Spec / PushBuilder to provide
>> resources
>>>> to
>>>>>> the client.
>>>>>>
>>>>>> Notes:
>>>>>> * Small API which can be added to increase the performance of the
>> webapp
>>>>>> with http/2
>>>>>> * No html changes required
>>>>>>
>>>>>> References:
>>>>>> *
>> https://raw.githubusercontent.com/klopfdreh/jetty-http2-example/master/without_push.png
>>>>>> *
>> https://raw.githubusercontent.com/klopfdreh/jetty-http2-example/master/with_push.png
>>>>>> On localhost improved performance: 37ms latency without and 1ms
>> latency
>>>> to
>>>>>> serve the resource (CSS file)
>>>>>>
>>>>>> Example Implementation:
>>>>>> *
>> https://github.com/klopfdreh/jetty-http2-example/blob/master/de.jetty.wicket.http2.example/src/main/java/de/jetty/wicket/http2/example/HTTP2Page.java#L28
>>>>>> Jetty Setup:
>>>>>> *
>> https://github.com/klopfdreh/jetty-http2-example/blob/master/de.jetty.wicket.http2.example/src/test/java/de/jetty/wicket/http2/example/Runner.java
>>>>>> hooray!
>>>>>>
>>>>>> WDYT
>>>>>>
>>>>>> kind regards
>>>>>>
>>>>>> Tobias
>>>>>
>>>>>
>>>>> --
>>>>> WBR
>>>>> Maxim aka solomax


Re: Apache Wicket rocks with http/2

Posted by Tobias Soloschenko <to...@googlemail.com>.
Okay - I am going to start with it very soon - I add it to experimental 

kind regards

Tobias

> Am 30.06.2016 um 09:40 schrieb Martin Grigorov <mg...@apache.org>:
> 
> I can add the Tomcat impl and docs how to setup Tomcat 8.5+ with HTTP2.
> 
> Martin Grigorov
> Wicket Training and Consulting
> https://twitter.com/mtgrigorov
> 
> On Wed, Jun 29, 2016 at 6:27 PM, Tobias Soloschenko <
> tobiassoloschenko@googlemail.com> wrote:
> 
>> Jep - would be great until the servlet 4 API reaches the final state.
>> 
>> I already reduced the usage of the container specific calls to one line.
>> This line can be delegated to the IInitialzer class.
>> 
>> I hope tomcat and other servers are implementing the PushBuilder API
>> similar. If yes it is rather easy to create such an integration.
>> 
>> kind regards
>> 
>> Tobias
>> 
>>> Am 29.06.2016 um 17:41 schrieb Martin Grigorov <mg...@apache.org>:
>>> 
>>> Hi,
>>> 
>>> What do you think about introducing PushBuilder-like API in Wicket-core ?
>>> The default implementation wil justl log warnings.
>>> If an application wants to make use of this new functionality then it
>> will
>>> have to add an additional jar to the classpath, e.g.
>>> wicketstuff-pushbuilder-jetty9.jar, that will replace the default
>> strategy
>>> (with IInitializer) with one that knows how to use Jetty9 internals. Same
>>> for Tomcat 8.5+ and any other container that provides this functionality
>>> with internal APIs.
>>> 
>>> 
>>> Martin Grigorov
>>> Wicket Training and Consulting
>>> https://twitter.com/mtgrigorov
>>> 
>>> On Tue, Jun 28, 2016 at 11:08 PM, Tobias Soloschenko <
>>> tobiassoloschenko@googlemail.com> wrote:
>>> 
>>>> Hi,
>>>> 
>>>> just a small update:
>>>> 
>>>> I switched the implementation to servlet-4.0.0-b01 API as far as
>> possible:
>> https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api/4.0.0-b01
>>>> 
>>>> The only thing I can do now is to wait for the JEE standard to be
>>>> finalized and to be implemented into the servers like jetty, tomcat,
>> etc.
>>>> 
>>>> https://github.com/klopfdreh/jetty-http2-example
>>>> 
>>>> kind regards
>>>> 
>>>> Tobias
>>>> 
>>>>> Am 12.05.2016 um 18:15 schrieb Maxim Solodovnik <solomax666@gmail.com
>>> :
>>>>> 
>>>>> Cool!
>>>>> 
>>>>> On Thu, May 12, 2016 at 10:10 PM, Tobias Soloschenko <
>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>> 
>>>>>> Hi,
>>>>>> 
>>>>>> I just managed to finish a PoC in which Apache Wicket runs on Jetty
>> with
>>>>>> http/2 and uses the Servlet 4.0 Spec / PushBuilder to provide
>> resources
>>>> to
>>>>>> the client.
>>>>>> 
>>>>>> Notes:
>>>>>> * Small API which can be added to increase the performance of the
>> webapp
>>>>>> with http/2
>>>>>> * No html changes required
>>>>>> 
>>>>>> References:
>>>>>> *
>> https://raw.githubusercontent.com/klopfdreh/jetty-http2-example/master/without_push.png
>>>>>> *
>> https://raw.githubusercontent.com/klopfdreh/jetty-http2-example/master/with_push.png
>>>>>> 
>>>>>> On localhost improved performance: 37ms latency without and 1ms
>> latency
>>>> to
>>>>>> serve the resource (CSS file)
>>>>>> 
>>>>>> Example Implementation:
>>>>>> *
>> https://github.com/klopfdreh/jetty-http2-example/blob/master/de.jetty.wicket.http2.example/src/main/java/de/jetty/wicket/http2/example/HTTP2Page.java#L28
>>>>>> 
>>>>>> Jetty Setup:
>>>>>> *
>> https://github.com/klopfdreh/jetty-http2-example/blob/master/de.jetty.wicket.http2.example/src/test/java/de/jetty/wicket/http2/example/Runner.java
>>>>>> 
>>>>>> hooray!
>>>>>> 
>>>>>> WDYT
>>>>>> 
>>>>>> kind regards
>>>>>> 
>>>>>> Tobias
>>>>> 
>>>>> 
>>>>> 
>>>>> --
>>>>> WBR
>>>>> Maxim aka solomax
>> 

Re: Apache Wicket rocks with http/2

Posted by Martin Grigorov <mg...@apache.org>.
I can add the Tomcat impl and docs how to setup Tomcat 8.5+ with HTTP2.

Martin Grigorov
Wicket Training and Consulting
https://twitter.com/mtgrigorov

On Wed, Jun 29, 2016 at 6:27 PM, Tobias Soloschenko <
tobiassoloschenko@googlemail.com> wrote:

> Jep - would be great until the servlet 4 API reaches the final state.
>
> I already reduced the usage of the container specific calls to one line.
> This line can be delegated to the IInitialzer class.
>
> I hope tomcat and other servers are implementing the PushBuilder API
> similar. If yes it is rather easy to create such an integration.
>
> kind regards
>
> Tobias
>
> > Am 29.06.2016 um 17:41 schrieb Martin Grigorov <mg...@apache.org>:
> >
> > Hi,
> >
> > What do you think about introducing PushBuilder-like API in Wicket-core ?
> > The default implementation wil justl log warnings.
> > If an application wants to make use of this new functionality then it
> will
> > have to add an additional jar to the classpath, e.g.
> > wicketstuff-pushbuilder-jetty9.jar, that will replace the default
> strategy
> > (with IInitializer) with one that knows how to use Jetty9 internals. Same
> > for Tomcat 8.5+ and any other container that provides this functionality
> > with internal APIs.
> >
> >
> > Martin Grigorov
> > Wicket Training and Consulting
> > https://twitter.com/mtgrigorov
> >
> > On Tue, Jun 28, 2016 at 11:08 PM, Tobias Soloschenko <
> > tobiassoloschenko@googlemail.com> wrote:
> >
> >> Hi,
> >>
> >> just a small update:
> >>
> >> I switched the implementation to servlet-4.0.0-b01 API as far as
> possible:
> >>
> >>
> >>
> https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api/4.0.0-b01
> >>
> >> The only thing I can do now is to wait for the JEE standard to be
> >> finalized and to be implemented into the servers like jetty, tomcat,
> etc.
> >>
> >> https://github.com/klopfdreh/jetty-http2-example
> >>
> >> kind regards
> >>
> >> Tobias
> >>
> >>> Am 12.05.2016 um 18:15 schrieb Maxim Solodovnik <solomax666@gmail.com
> >:
> >>>
> >>> Cool!
> >>>
> >>> On Thu, May 12, 2016 at 10:10 PM, Tobias Soloschenko <
> >>> tobiassoloschenko@googlemail.com> wrote:
> >>>
> >>>> Hi,
> >>>>
> >>>> I just managed to finish a PoC in which Apache Wicket runs on Jetty
> with
> >>>> http/2 and uses the Servlet 4.0 Spec / PushBuilder to provide
> resources
> >> to
> >>>> the client.
> >>>>
> >>>> Notes:
> >>>> * Small API which can be added to increase the performance of the
> webapp
> >>>> with http/2
> >>>> * No html changes required
> >>>>
> >>>> References:
> >>>> *
> >>
> https://raw.githubusercontent.com/klopfdreh/jetty-http2-example/master/without_push.png
> >>>> *
> >>
> https://raw.githubusercontent.com/klopfdreh/jetty-http2-example/master/with_push.png
> >>>>
> >>>> On localhost improved performance: 37ms latency without and 1ms
> latency
> >> to
> >>>> serve the resource (CSS file)
> >>>>
> >>>> Example Implementation:
> >>>> *
> >>
> https://github.com/klopfdreh/jetty-http2-example/blob/master/de.jetty.wicket.http2.example/src/main/java/de/jetty/wicket/http2/example/HTTP2Page.java#L28
> >>>>
> >>>> Jetty Setup:
> >>>> *
> >>
> https://github.com/klopfdreh/jetty-http2-example/blob/master/de.jetty.wicket.http2.example/src/test/java/de/jetty/wicket/http2/example/Runner.java
> >>>>
> >>>> hooray!
> >>>>
> >>>> WDYT
> >>>>
> >>>> kind regards
> >>>>
> >>>> Tobias
> >>>
> >>>
> >>>
> >>> --
> >>> WBR
> >>> Maxim aka solomax
> >>
>

Re: Apache Wicket rocks with http/2

Posted by Tobias Soloschenko <to...@googlemail.com>.
Jep - would be great until the servlet 4 API reaches the final state.

I already reduced the usage of the container specific calls to one line. This line can be delegated to the IInitialzer class.

I hope tomcat and other servers are implementing the PushBuilder API similar. If yes it is rather easy to create such an integration.

kind regards

Tobias

> Am 29.06.2016 um 17:41 schrieb Martin Grigorov <mg...@apache.org>:
> 
> Hi,
> 
> What do you think about introducing PushBuilder-like API in Wicket-core ?
> The default implementation wil justl log warnings.
> If an application wants to make use of this new functionality then it will
> have to add an additional jar to the classpath, e.g.
> wicketstuff-pushbuilder-jetty9.jar, that will replace the default strategy
> (with IInitializer) with one that knows how to use Jetty9 internals. Same
> for Tomcat 8.5+ and any other container that provides this functionality
> with internal APIs.
> 
> 
> Martin Grigorov
> Wicket Training and Consulting
> https://twitter.com/mtgrigorov
> 
> On Tue, Jun 28, 2016 at 11:08 PM, Tobias Soloschenko <
> tobiassoloschenko@googlemail.com> wrote:
> 
>> Hi,
>> 
>> just a small update:
>> 
>> I switched the implementation to servlet-4.0.0-b01 API as far as possible:
>> 
>> 
>> https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api/4.0.0-b01
>> 
>> The only thing I can do now is to wait for the JEE standard to be
>> finalized and to be implemented into the servers like jetty, tomcat, etc.
>> 
>> https://github.com/klopfdreh/jetty-http2-example
>> 
>> kind regards
>> 
>> Tobias
>> 
>>> Am 12.05.2016 um 18:15 schrieb Maxim Solodovnik <so...@gmail.com>:
>>> 
>>> Cool!
>>> 
>>> On Thu, May 12, 2016 at 10:10 PM, Tobias Soloschenko <
>>> tobiassoloschenko@googlemail.com> wrote:
>>> 
>>>> Hi,
>>>> 
>>>> I just managed to finish a PoC in which Apache Wicket runs on Jetty with
>>>> http/2 and uses the Servlet 4.0 Spec / PushBuilder to provide resources
>> to
>>>> the client.
>>>> 
>>>> Notes:
>>>> * Small API which can be added to increase the performance of the webapp
>>>> with http/2
>>>> * No html changes required
>>>> 
>>>> References:
>>>> *
>> https://raw.githubusercontent.com/klopfdreh/jetty-http2-example/master/without_push.png
>>>> *
>> https://raw.githubusercontent.com/klopfdreh/jetty-http2-example/master/with_push.png
>>>> 
>>>> On localhost improved performance: 37ms latency without and 1ms latency
>> to
>>>> serve the resource (CSS file)
>>>> 
>>>> Example Implementation:
>>>> *
>> https://github.com/klopfdreh/jetty-http2-example/blob/master/de.jetty.wicket.http2.example/src/main/java/de/jetty/wicket/http2/example/HTTP2Page.java#L28
>>>> 
>>>> Jetty Setup:
>>>> *
>> https://github.com/klopfdreh/jetty-http2-example/blob/master/de.jetty.wicket.http2.example/src/test/java/de/jetty/wicket/http2/example/Runner.java
>>>> 
>>>> hooray!
>>>> 
>>>> WDYT
>>>> 
>>>> kind regards
>>>> 
>>>> Tobias
>>> 
>>> 
>>> 
>>> --
>>> WBR
>>> Maxim aka solomax
>> 

Re: Apache Wicket rocks with http/2

Posted by Martin Grigorov <mg...@apache.org>.
Hi,

What do you think about introducing PushBuilder-like API in Wicket-core ?
The default implementation wil justl log warnings.
If an application wants to make use of this new functionality then it will
have to add an additional jar to the classpath, e.g.
wicketstuff-pushbuilder-jetty9.jar, that will replace the default strategy
(with IInitializer) with one that knows how to use Jetty9 internals. Same
for Tomcat 8.5+ and any other container that provides this functionality
with internal APIs.


Martin Grigorov
Wicket Training and Consulting
https://twitter.com/mtgrigorov

On Tue, Jun 28, 2016 at 11:08 PM, Tobias Soloschenko <
tobiassoloschenko@googlemail.com> wrote:

> Hi,
>
> just a small update:
>
> I switched the implementation to servlet-4.0.0-b01 API as far as possible:
>
>
> https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api/4.0.0-b01
>
> The only thing I can do now is to wait for the JEE standard to be
> finalized and to be implemented into the servers like jetty, tomcat, etc.
>
> https://github.com/klopfdreh/jetty-http2-example
>
> kind regards
>
> Tobias
>
> > Am 12.05.2016 um 18:15 schrieb Maxim Solodovnik <so...@gmail.com>:
> >
> > Cool!
> >
> > On Thu, May 12, 2016 at 10:10 PM, Tobias Soloschenko <
> > tobiassoloschenko@googlemail.com> wrote:
> >
> >> Hi,
> >>
> >> I just managed to finish a PoC in which Apache Wicket runs on Jetty with
> >> http/2 and uses the Servlet 4.0 Spec / PushBuilder to provide resources
> to
> >> the client.
> >>
> >> Notes:
> >> * Small API which can be added to increase the performance of the webapp
> >> with http/2
> >> * No html changes required
> >>
> >> References:
> >> *
> >>
> >>
> https://raw.githubusercontent.com/klopfdreh/jetty-http2-example/master/without_push.png
> >> *
> >>
> >>
> https://raw.githubusercontent.com/klopfdreh/jetty-http2-example/master/with_push.png
> >>
> >> On localhost improved performance: 37ms latency without and 1ms latency
> to
> >> serve the resource (CSS file)
> >>
> >> Example Implementation:
> >> *
> >>
> >>
> https://github.com/klopfdreh/jetty-http2-example/blob/master/de.jetty.wicket.http2.example/src/main/java/de/jetty/wicket/http2/example/HTTP2Page.java#L28
> >>
> >> Jetty Setup:
> >> *
> >>
> >>
> https://github.com/klopfdreh/jetty-http2-example/blob/master/de.jetty.wicket.http2.example/src/test/java/de/jetty/wicket/http2/example/Runner.java
> >>
> >> hooray!
> >>
> >> WDYT
> >>
> >> kind regards
> >>
> >> Tobias
> >
> >
> >
> > --
> > WBR
> > Maxim aka solomax
>