You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by ts...@apache.org on 2016/08/01 16:29:23 UTC

wicket git commit: WICKET-6194 - Create a server specific http/2 push support

Repository: wicket
Updated Branches:
  refs/heads/master 936b0336d -> 397840df5


WICKET-6194 - Create a server specific http/2 push support

Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/397840df
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/397840df
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/397840df

Branch: refs/heads/master
Commit: 397840df5ec94358f3205e7a38f5917a60a459c8
Parents: 936b033
Author: Tobias Soloschenko <ts...@apache.org>
Authored: Mon Aug 1 18:27:24 2016 +0200
Committer: Tobias Soloschenko <ts...@apache.org>
Committed: Mon Aug 1 18:27:24 2016 +0200

----------------------------------------------------------------------
 .../src/docs/guide/http2push/http2push_2.gdoc   | 55 ++++++++++++++++++++
 wicket-user-guide/src/docs/guide/toc.yml        |  1 +
 2 files changed, 56 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/397840df/wicket-user-guide/src/docs/guide/http2push/http2push_2.gdoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/docs/guide/http2push/http2push_2.gdoc b/wicket-user-guide/src/docs/guide/http2push/http2push_2.gdoc
new file mode 100644
index 0000000..2e1999e
--- /dev/null
+++ b/wicket-user-guide/src/docs/guide/http2push/http2push_2.gdoc
@@ -0,0 +1,55 @@
+To create a server specific http/2 push support of the Wicket PushBuilder API just follow these steps:
+
+1. Add the following dependency to your projects pom.xml (and of course adjust the version)
+{code}
+<dependency>
+	<groupId>org.apache.wicket.experimental.wicket8</groupId>
+	<artifactId>wicket-http2-core</artifactId>
+	<version>0.X-SNAPSHOT</version>
+</dependency>
+{code}
+
+2. Add a text file called "org.apache.wicket.IInitializer" into the folder src/main/resources/META-INF/services/
+
+3. Add a single line with the name of the IInitializer class example: "org.apache.wicket.http2.Initializer" to the created file
+
+4. Implement your own server specific PushBuilder class which implements the interface "org.apache.wicket.http2.markup.head.PushBuilder". This is an example how it was done for jetty:
+{code}
+public class Jetty9PushBuilder implements PushBuilder
+{
+	@Override
+	public void push(HttpServletRequest httpServletRequest, String... paths)
+	{
+		Request request = RequestCycle.get().getRequest();
+		HttpServletRequest httpRequest = (HttpServletRequest) request.getContainerRequest();
+		org.eclipse.jetty.server.PushBuilder pushBuilder = org.eclipse.jetty.server.Request.getBaseRequest(httpRequest).getPushBuilder();
+		for (String path : paths)
+		{
+			pushBuilder.path(path);
+		}
+		pushBuilder.push();
+	}
+}
+{code}
+
+5. Implement the class within the package "org.apache.wicket.http2.Initializer" and add your own server specific PushBuilder class to the Http2Settings. This is an example how it was done for jetty:
+{code}
+public class Initializer implements IInitializer
+{
+	/**
+	 * Initializes the push builder API of Jetty 9.3+
+	 */
+	@Override
+	public void init(Application application)
+	{
+		Http2Settings http2Settings = Http2Settings.Holder.get(application);
+		http2Settings.setPushBuilder(new Jetty9PushBuilder());
+	}
+
+	@Override
+	public void destroy(Application application)
+	{
+		// NOOP
+	}
+}
+{code}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/wicket/blob/397840df/wicket-user-guide/src/docs/guide/toc.yml
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/docs/guide/toc.yml b/wicket-user-guide/src/docs/guide/toc.yml
index d72fb3d..04951e1 100644
--- a/wicket-user-guide/src/docs/guide/toc.yml
+++ b/wicket-user-guide/src/docs/guide/toc.yml
@@ -218,6 +218,7 @@ lambdas:
 http2push:
   title: Wicket HTTP/2 Support (Experimental)
   http2push_1: Example Usage
+  http2push_2: Create server specific http/2 push support
 monitoring:
   title: Wicket Metrics Monitoring (Experimental)
   monitoring_1: Example setup