Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'examples')
-rw-r--r--examples/embedded/pom.xml14
-rw-r--r--examples/embedded/src/main/java/org/eclipse/jetty/embedded/Http2Server.java174
-rw-r--r--examples/embedded/src/main/java/org/eclipse/jetty/embedded/SpdyConnector.java114
-rw-r--r--examples/embedded/src/main/java/org/eclipse/jetty/embedded/SpdyServer.java210
-rw-r--r--examples/embedded/src/main/resources/docroot/push.html101
-rw-r--r--examples/embedded/src/main/resources/docroot/pushed/tile00.jpgbin0 -> 15228 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/pushed/tile01.jpgbin0 -> 15168 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/pushed/tile02.jpgbin0 -> 15217 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/pushed/tile03.jpgbin0 -> 15323 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/pushed/tile04.jpgbin0 -> 15321 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/pushed/tile05.jpgbin0 -> 15276 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/pushed/tile06.jpgbin0 -> 15302 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/pushed/tile07.jpgbin0 -> 15246 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/pushed/tile08.jpgbin0 -> 15281 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/pushed/tile09.jpgbin0 -> 15539 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/pushed/tile10.jpgbin0 -> 16093 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/pushed/tile11.jpgbin0 -> 16024 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/pushed/tile12.jpgbin0 -> 15972 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/pushed/tile13.jpgbin0 -> 16012 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/pushed/tile14.jpgbin0 -> 16069 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/pushed/tile15.jpgbin0 -> 15916 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/pushed/tile16.jpgbin0 -> 15792 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/pushed/tile17.jpgbin0 -> 15813 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/pushed/tile18.jpgbin0 -> 15868 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/pushed/tile19.jpgbin0 -> 16299 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/pushed/tile20.jpgbin0 -> 15852 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/pushed/tile21.jpgbin0 -> 15775 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/pushed/tile22.jpgbin0 -> 15740 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/pushed/tile23.jpgbin0 -> 15950 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/pushed/tile24.jpgbin0 -> 16441 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/pushed/tile25.jpgbin0 -> 16426 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/pushed/tile26.jpgbin0 -> 15749 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/pushed/tile27.jpgbin0 -> 15647 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/pushed/tile28.jpgbin0 -> 15744 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/pushed/tile29.jpgbin0 -> 15849 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/pushed/tile30.jpgbin0 -> 15638 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/pushed/tile31.jpgbin0 -> 15567 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/pushed/tile32.jpgbin0 -> 15660 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/pushed/tile33.jpgbin0 -> 16331 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/pushed/tile34.jpgbin0 -> 16060 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/pushed/tile35.jpgbin0 -> 16062 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/pushed/tile36.jpgbin0 -> 16395 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/pushed/tile37.jpgbin0 -> 15823 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/pushed/tile38.jpgbin0 -> 15664 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/pushed/tile39.jpgbin0 -> 15609 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/pushed/tile40.jpgbin0 -> 15601 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/pushed/tile41.jpgbin0 -> 15664 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/pushed/tile42.jpgbin0 -> 16299 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/pushed/tile43.jpgbin0 -> 15958 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/pushed/tile44.jpgbin0 -> 15915 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/pushed/tile45.jpgbin0 -> 15903 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/pushed/tile46.jpgbin0 -> 15927 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/pushed/tile47.jpgbin0 -> 16327 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/pushed/tile48.jpgbin0 -> 15690 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/pushed/tile49.jpgbin0 -> 15612 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/tiles/tile00.jpgbin0 -> 15089 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/tiles/tile01.jpgbin0 -> 15085 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/tiles/tile02.jpgbin0 -> 15140 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/tiles/tile03.jpgbin0 -> 15276 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/tiles/tile04.jpgbin0 -> 15235 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/tiles/tile05.jpgbin0 -> 15254 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/tiles/tile06.jpgbin0 -> 15292 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/tiles/tile07.jpgbin0 -> 15227 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/tiles/tile08.jpgbin0 -> 15282 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/tiles/tile09.jpgbin0 -> 15532 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/tiles/tile10.jpgbin0 -> 15677 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/tiles/tile11.jpgbin0 -> 15673 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/tiles/tile12.jpgbin0 -> 15605 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/tiles/tile13.jpgbin0 -> 15664 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/tiles/tile14.jpgbin0 -> 15730 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/tiles/tile15.jpgbin0 -> 15614 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/tiles/tile16.jpgbin0 -> 15507 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/tiles/tile17.jpgbin0 -> 15533 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/tiles/tile18.jpgbin0 -> 15615 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/tiles/tile19.jpgbin0 -> 16092 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/tiles/tile20.jpgbin0 -> 15844 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/tiles/tile21.jpgbin0 -> 15815 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/tiles/tile22.jpgbin0 -> 15788 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/tiles/tile23.jpgbin0 -> 15994 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/tiles/tile24.jpgbin0 -> 16491 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/tiles/tile25.jpgbin0 -> 16403 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/tiles/tile26.jpgbin0 -> 15743 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/tiles/tile27.jpgbin0 -> 15603 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/tiles/tile28.jpgbin0 -> 15748 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/tiles/tile29.jpgbin0 -> 15876 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/tiles/tile30.jpgbin0 -> 15476 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/tiles/tile31.jpgbin0 -> 15438 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/tiles/tile32.jpgbin0 -> 15509 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/tiles/tile33.jpgbin0 -> 16272 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/tiles/tile34.jpgbin0 -> 16062 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/tiles/tile35.jpgbin0 -> 16064 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/tiles/tile36.jpgbin0 -> 16259 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/tiles/tile37.jpgbin0 -> 15679 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/tiles/tile38.jpgbin0 -> 15502 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/tiles/tile39.jpgbin0 -> 15439 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/tiles/tile40.jpgbin0 -> 15390 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/tiles/tile41.jpgbin0 -> 15455 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/tiles/tile42.jpgbin0 -> 16162 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/tiles/tile43.jpgbin0 -> 15896 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/tiles/tile44.jpgbin0 -> 15861 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/tiles/tile45.jpgbin0 -> 15843 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/tiles/tile46.jpgbin0 -> 15848 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/tiles/tile47.jpgbin0 -> 16214 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/tiles/tile48.jpgbin0 -> 15564 bytes
-rw-r--r--examples/embedded/src/main/resources/docroot/tiles/tile49.jpgbin0 -> 15517 bytes
105 files changed, 287 insertions, 326 deletions
diff --git a/examples/embedded/pom.xml b/examples/embedded/pom.xml
index 0aab3c82f9..6fbb0b7cc1 100644
--- a/examples/embedded/pom.xml
+++ b/examples/embedded/pom.xml
@@ -56,8 +56,18 @@
<version>${project.version}</version>
</dependency>
<dependency>
- <groupId>org.eclipse.jetty.spdy</groupId>
- <artifactId>spdy-http-server</artifactId>
+ <groupId>org.eclipse.jetty.http2</groupId>
+ <artifactId>http2-server</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty.alpn</groupId>
+ <artifactId>alpn-api</artifactId>
+ <version>${alpn.api.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-alpn-server</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
diff --git a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/Http2Server.java b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/Http2Server.java
new file mode 100644
index 0000000000..d83c76f11e
--- /dev/null
+++ b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/Http2Server.java
@@ -0,0 +1,174 @@
+//
+// ========================================================================
+// Copyright (c) 1995-2015 Mort Bay Consulting Pty. Ltd.
+// ------------------------------------------------------------------------
+// All rights reserved. This program and the accompanying materials
+// are made available under the terms of the Eclipse Public License v1.0
+// and Apache License v2.0 which accompanies this distribution.
+//
+// The Eclipse Public License is available at
+// http://www.eclipse.org/legal/epl-v10.html
+//
+// The Apache License v2.0 is available at
+// http://www.opensource.org/licenses/apache2.0.php
+//
+// You may elect to redistribute this code under either of these licenses.
+// ========================================================================
+//
+
+
+package org.eclipse.jetty.embedded;
+
+import java.io.IOException;
+import java.util.Date;
+import java.util.EnumSet;
+
+import javax.servlet.DispatcherType;
+import javax.servlet.Filter;
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
+import javax.servlet.Servlet;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.Cookie;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+
+import org.eclipse.jetty.alpn.ALPN;
+import org.eclipse.jetty.alpn.server.ALPNServerConnectionFactory;
+import org.eclipse.jetty.http2.server.HTTP2ServerConnectionFactory;
+import org.eclipse.jetty.server.HttpConfiguration;
+import org.eclipse.jetty.server.HttpConnectionFactory;
+import org.eclipse.jetty.server.NegotiatingServerConnectionFactory;
+import org.eclipse.jetty.server.Request;
+import org.eclipse.jetty.server.SecureRequestCustomizer;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.ServerConnector;
+import org.eclipse.jetty.server.SslConnectionFactory;
+import org.eclipse.jetty.servlet.DefaultServlet;
+import org.eclipse.jetty.servlet.ServletContextHandler;
+import org.eclipse.jetty.servlet.ServletHolder;
+import org.eclipse.jetty.servlets.PushSessionCacheFilter;
+import org.eclipse.jetty.util.ssl.SslContextFactory;
+
+
+/* ------------------------------------------------------------ */
+/**
+ */
+public class Http2Server
+{
+ public static void main(String... args) throws Exception
+ {
+ Server server = new Server();
+
+ ServletContextHandler context = new ServletContextHandler(server, "/",ServletContextHandler.SESSIONS);
+ context.setResourceBase("src/main/resources/docroot");
+ context.addFilter(PushSessionCacheFilter.class,"/*",EnumSet.of(DispatcherType.REQUEST));
+ context.addFilter(PushedTilesFilter.class,"/*",EnumSet.of(DispatcherType.REQUEST));
+ context.addServlet(new ServletHolder(servlet), "/test/*");
+ context.addServlet(DefaultServlet.class, "/").setInitParameter("maxCacheSize","81920");
+ server.setHandler(context);
+
+ // HTTP Configuration
+ HttpConfiguration http_config = new HttpConfiguration();
+ http_config.setSecureScheme("https");
+ http_config.setSecurePort(8443);
+ http_config.setSendXPoweredBy(true);
+ http_config.setSendServerVersion(true);
+
+ // HTTP connector
+ ServerConnector http = new ServerConnector(server,new HttpConnectionFactory(http_config));
+ http.setPort(8080);
+ server.addConnector(http);
+
+ // SSL Context Factory for HTTPS and SPDY
+ String jetty_distro = System.getProperty("jetty.distro","../../jetty-distribution/target/distribution");
+ SslContextFactory sslContextFactory = new SslContextFactory();
+ sslContextFactory.setKeyStorePath(jetty_distro + "/etc/keystore");
+ sslContextFactory.setKeyStorePassword("OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4");
+ sslContextFactory.setKeyManagerPassword("OBF:1u2u1wml1z7s1z7a1wnl1u2g");
+
+ // HTTPS Configuration
+ HttpConfiguration https_config = new HttpConfiguration(http_config);
+ https_config.addCustomizer(new SecureRequestCustomizer());
+
+ // HTTP2 factory
+ HTTP2ServerConnectionFactory h2 = new HTTP2ServerConnectionFactory(https_config);
+
+ NegotiatingServerConnectionFactory.checkProtocolNegotiationAvailable();
+ ALPNServerConnectionFactory alpn = new ALPNServerConnectionFactory();
+ alpn.setDefaultProtocol(http.getDefaultProtocol());
+
+ // SSL Factory
+ SslConnectionFactory ssl = new SslConnectionFactory(sslContextFactory,alpn.getProtocol());
+
+ // HTTP2 Connector
+ ServerConnector http2Connector =
+ new ServerConnector(server,ssl,alpn,h2,new HttpConnectionFactory(https_config));
+ http2Connector.setPort(8443);
+ server.addConnector(http2Connector);
+
+ ALPN.debug=false;
+
+ server.start();
+ server.dumpStdErr();
+ server.join();
+ }
+
+ public static class PushedTilesFilter implements Filter
+ {
+ @Override
+ public void init(FilterConfig filterConfig) throws ServletException
+ {
+ }
+
+ @Override
+ public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException
+ {
+ Request baseRequest = Request.getBaseRequest(request);
+
+ if (baseRequest.isPush() && baseRequest.getRequestURI().contains("tiles") )
+ {
+ String uri = baseRequest.getRequestURI().replace("tiles","pushed").substring(baseRequest.getContextPath().length());
+ request.getRequestDispatcher(uri).forward(request,response);
+ return;
+ }
+
+ chain.doFilter(request,response);
+ }
+
+ @Override
+ public void destroy()
+ {
+ }
+ };
+
+ static Servlet servlet = new HttpServlet()
+ {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
+ {
+ String code=request.getParameter("code");
+ if (code!=null)
+ response.setStatus(Integer.parseInt(code));
+
+ HttpSession session = request.getSession(true);
+ if (session.isNew())
+ response.addCookie(new Cookie("bigcookie",
+ "This is a test cookies that was created on "+new Date()+" and is used by the jetty http/2 test servlet."));
+ response.setHeader("Custom","Value");
+ response.setContentType("text/plain");
+ String content = "Hello from Jetty using "+request.getProtocol() +"\n";
+ content+="uri="+request.getRequestURI()+"\n";
+ content+="session="+session.getId()+(session.isNew()?"(New)\n":"\n");
+ content+="date="+new Date()+"\n";
+ response.setContentLength(content.length());
+ response.getOutputStream().print(content);
+ }
+ };
+}
diff --git a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/SpdyConnector.java b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/SpdyConnector.java
deleted file mode 100644
index f35957b978..0000000000
--- a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/SpdyConnector.java
+++ /dev/null
@@ -1,114 +0,0 @@
-//
-// ========================================================================
-// Copyright (c) 1995-2015 Mort Bay Consulting Pty. Ltd.
-// ------------------------------------------------------------------------
-// All rights reserved. This program and the accompanying materials
-// are made available under the terms of the Eclipse Public License v1.0
-// and Apache License v2.0 which accompanies this distribution.
-//
-// The Eclipse Public License is available at
-// http://www.eclipse.org/legal/epl-v10.html
-//
-// The Apache License v2.0 is available at
-// http://www.opensource.org/licenses/apache2.0.php
-//
-// You may elect to redistribute this code under either of these licenses.
-// ========================================================================
-//
-
-package org.eclipse.jetty.embedded;
-
-import org.eclipse.jetty.npn.server.NPNServerConnectionFactory;
-import java.io.File;
-import java.io.FileNotFoundException;
-
-import org.eclipse.jetty.server.HttpConfiguration;
-import org.eclipse.jetty.server.HttpConnectionFactory;
-import org.eclipse.jetty.server.NegotiatingServerConnectionFactory;
-import org.eclipse.jetty.server.SecureRequestCustomizer;
-import org.eclipse.jetty.server.Server;
-import org.eclipse.jetty.server.ServerConnector;
-import org.eclipse.jetty.server.SslConnectionFactory;
-import org.eclipse.jetty.spdy.server.http.HTTPSPDYServerConnectionFactory;
-import org.eclipse.jetty.spdy.server.http.ReferrerPushStrategy;
-import org.eclipse.jetty.util.ssl.SslContextFactory;
-
-/**
- * A Jetty server with HTTP and SPDY connectors.
- */
-public class SpdyConnector
-{
- public static void main(String[] args) throws Exception
- {
- // Path to as-built jetty-distribution directory
- String jettyHomeBuild = "../../jetty-distribution/target/distribution";
-
- // Find jetty home directories
- String homePath = System.getProperty("jetty.home", jettyHomeBuild);
- File homeDir = new File(homePath);
- if (!homeDir.exists())
- {
- throw new FileNotFoundException(homeDir.getAbsolutePath());
- }
- String jetty_home = homeDir.getAbsolutePath();
- System.setProperty("jetty.home", jetty_home);
-
- // The Server
- Server server = new Server();
-
- // HTTP Configuration
- HttpConfiguration http_config = new HttpConfiguration();
- http_config.setSecureScheme("https");
- http_config.setSecurePort(8443);
-
- // HTTP connector
- ServerConnector http = new ServerConnector(server,
- new HttpConnectionFactory(http_config));
- http.setPort(8080);
- server.addConnector(http);
-
- // SSL Context Factory for HTTPS and SPDY
- SslContextFactory sslContextFactory = new SslContextFactory();
- sslContextFactory.setKeyStorePath(jetty_home + "/etc/keystore");
- sslContextFactory.setKeyStorePassword("OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4");
- sslContextFactory.setKeyManagerPassword("OBF:1u2u1wml1z7s1z7a1wnl1u2g");
-
- // HTTPS Configuration
- HttpConfiguration https_config = new HttpConfiguration(http_config);
- https_config.addCustomizer(new SecureRequestCustomizer());
-
- // SPDY versions
- HTTPSPDYServerConnectionFactory spdy2 =
- new HTTPSPDYServerConnectionFactory(2, https_config);
-
- HTTPSPDYServerConnectionFactory spdy3 =
- new HTTPSPDYServerConnectionFactory(3, https_config,
- new ReferrerPushStrategy());
-
- // NPN Factory
- NegotiatingServerConnectionFactory.checkProtocolNegotiationAvailable();
- NPNServerConnectionFactory npn = new NPNServerConnectionFactory(
- spdy3.getProtocol(),
- spdy2.getProtocol(),
- http.getDefaultProtocol());
- npn.setDefaultProtocol(http.getDefaultProtocol());
-
- // SSL Factory
- SslConnectionFactory ssl = new SslConnectionFactory(
- sslContextFactory, npn.getProtocol());
-
- // SPDY Connector
- ServerConnector spdyConnector = new ServerConnector(server, ssl,
- npn, spdy3, spdy2,
- new HttpConnectionFactory(https_config));
- spdyConnector.setPort(8443);
- server.addConnector(spdyConnector);
-
- // Set a handler
- server.setHandler(new HelloHandler());
-
- // Start the server
- server.start();
- server.join();
- }
-}
diff --git a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/SpdyServer.java b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/SpdyServer.java
deleted file mode 100644
index 60f2f8d461..0000000000
--- a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/SpdyServer.java
+++ /dev/null
@@ -1,210 +0,0 @@
-//
-// ========================================================================
-// Copyright (c) 1995-2015 Mort Bay Consulting Pty. Ltd.
-// ------------------------------------------------------------------------
-// All rights reserved. This program and the accompanying materials
-// are made available under the terms of the Eclipse Public License v1.0
-// and Apache License v2.0 which accompanies this distribution.
-//
-// The Eclipse Public License is available at
-// http://www.eclipse.org/legal/epl-v10.html
-//
-// The Apache License v2.0 is available at
-// http://www.opensource.org/licenses/apache2.0.php
-//
-// You may elect to redistribute this code under either of these licenses.
-// ========================================================================
-//
-
-package org.eclipse.jetty.embedded;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.lang.management.ManagementFactory;
-
-import org.eclipse.jetty.deploy.DeploymentManager;
-import org.eclipse.jetty.deploy.providers.WebAppProvider;
-import org.eclipse.jetty.jmx.MBeanContainer;
-import org.eclipse.jetty.npn.server.NPNServerConnectionFactory;
-import org.eclipse.jetty.security.HashLoginService;
-import org.eclipse.jetty.server.AsyncNCSARequestLog;
-import org.eclipse.jetty.server.ForwardedRequestCustomizer;
-import org.eclipse.jetty.server.Handler;
-import org.eclipse.jetty.server.HttpConfiguration;
-import org.eclipse.jetty.server.HttpConnectionFactory;
-import org.eclipse.jetty.server.NCSARequestLog;
-import org.eclipse.jetty.server.NegotiatingServerConnectionFactory;
-import org.eclipse.jetty.server.SecureRequestCustomizer;
-import org.eclipse.jetty.server.Server;
-import org.eclipse.jetty.server.ServerConnector;
-import org.eclipse.jetty.server.SslConnectionFactory;
-import org.eclipse.jetty.server.handler.ContextHandlerCollection;
-import org.eclipse.jetty.server.handler.DefaultHandler;
-import org.eclipse.jetty.server.handler.HandlerCollection;
-import org.eclipse.jetty.server.handler.RequestLogHandler;
-import org.eclipse.jetty.server.handler.StatisticsHandler;
-import org.eclipse.jetty.spdy.server.http.HTTPSPDYServerConnectionFactory;
-import org.eclipse.jetty.spdy.server.http.PushStrategy;
-import org.eclipse.jetty.spdy.server.http.ReferrerPushStrategy;
-import org.eclipse.jetty.util.ssl.SslContextFactory;
-import org.eclipse.jetty.util.thread.QueuedThreadPool;
-
-public class SpdyServer
-{
- public static void main( String[] args ) throws Exception
- {
- // Path to as-built jetty-distribution directory
- String jettyHomeBuild = "../../jetty-distribution/target/distribution";
-
- // Find jetty home directories
- String homePath = System.getProperty("jetty.home", jettyHomeBuild);
- File homeDir = new File(homePath);
- if (!homeDir.exists())
- {
- throw new FileNotFoundException(homeDir.getAbsolutePath());
- }
- String jetty_home = homeDir.getAbsolutePath();
- System.setProperty("jetty.home", jetty_home);
-
- // Setup Threadpool
- QueuedThreadPool threadPool = new QueuedThreadPool(512);
-
- // Setup Jetty Server instance
- Server server = new Server(threadPool);
- server.manage(threadPool);
- server.setDumpAfterStart(false);
- server.setDumpBeforeStop(false);
-
- // Setup JMX
- MBeanContainer mbContainer = new MBeanContainer(
- ManagementFactory.getPlatformMBeanServer());
- server.addBean(mbContainer);
-
- // Common HTTP configuration
- HttpConfiguration config = new HttpConfiguration();
- config.setSecurePort(8443);
- config.addCustomizer(new ForwardedRequestCustomizer());
- config.addCustomizer(new SecureRequestCustomizer());
- config.setSendServerVersion(true);
-
- // Http Connector Setup
-
- // A plain HTTP connector listening on port 8080. Note that it's also
- // possible to have port 8080 configured as a non SSL SPDY connector.
- // But the specification and most browsers do not allow to use SPDY
- // without SSL encryption. However some browsers allow it to be
- // configured.
- HttpConnectionFactory http = new HttpConnectionFactory(config);
- ServerConnector httpConnector = new ServerConnector(server, http);
- httpConnector.setPort(8080);
- httpConnector.setIdleTimeout(10000);
- server.addConnector(httpConnector);
-
- // SSL configurations
-
- // We need a SSLContextFactory for the SSL encryption. That
- // SSLContextFactory will be used by the SPDY
- // connector.
- SslContextFactory sslContextFactory = new SslContextFactory();
- sslContextFactory.setKeyStorePath(jetty_home + "/etc/keystore");
- sslContextFactory.setKeyStorePassword("OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4");
- sslContextFactory.setKeyManagerPassword("OBF:1u2u1wml1z7s1z7a1wnl1u2g");
- sslContextFactory.setTrustStorePath(jetty_home + "/etc/keystore");
- sslContextFactory.setTrustStorePassword("OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4");
- sslContextFactory.setExcludeCipherSuites(
- "SSL_RSA_WITH_DES_CBC_SHA",
- "SSL_DHE_RSA_WITH_DES_CBC_SHA",
- "SSL_DHE_DSS_WITH_DES_CBC_SHA",
- "SSL_RSA_EXPORT_WITH_RC4_40_MD5",
- "SSL_RSA_EXPORT_WITH_DES40_CBC_SHA",
- "SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA",
- "SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA");
-
- // Spdy Connector
-
- // Make sure that the required NPN implementations are available.
- NegotiatingServerConnectionFactory.checkProtocolNegotiationAvailable();
-
- // A ReferrerPushStrategy is being initialized.
- // See:
- // http://www.eclipse.org/jetty/documentation/current/spdy-configuring-push.html
- // for more details.
- PushStrategy push = new ReferrerPushStrategy();
- HTTPSPDYServerConnectionFactory spdy2 =
- new HTTPSPDYServerConnectionFactory(2, config, push);
- spdy2.setInputBufferSize(8192);
- spdy2.setInitialWindowSize(32768);
-
- // We need a connection factory per protocol that our server is supposed
- // to support on the NPN port. We then
- // create a ServerConnector and pass in the supported factories. NPN
- // will then be used to negotiate the
- // protocol with the client.
- HTTPSPDYServerConnectionFactory spdy3 =
- new HTTPSPDYServerConnectionFactory(3, config, push);
- spdy3.setInputBufferSize(8192);
-
- NPNServerConnectionFactory npn = new NPNServerConnectionFactory(
- spdy3.getProtocol(), spdy2.getProtocol(), http.getProtocol());
- npn.setDefaultProtocol(http.getProtocol());
- npn.setInputBufferSize(1024);
-
- SslConnectionFactory ssl = new SslConnectionFactory(sslContextFactory,
- npn.getProtocol());
-
- // Setup the npn connector on port 8443
- ServerConnector spdyConnector = new ServerConnector(server, ssl,
- npn, spdy3, spdy2, http);
- spdyConnector.setPort(8443);
-
- server.addConnector(spdyConnector);
-
- // The following section adds some handlers, deployers and webapp
- // providers. See
- // http://www.eclipse.org/jetty/documentation/current/advanced-embedding.html
- // for details.
-
- // Setup handlers
- HandlerCollection handlers = new HandlerCollection();
- ContextHandlerCollection contexts = new ContextHandlerCollection();
- RequestLogHandler requestLogHandler = new RequestLogHandler();
-
- handlers.setHandlers(new Handler[] { contexts, new DefaultHandler(),
- requestLogHandler });
-
- StatisticsHandler stats = new StatisticsHandler();
- stats.setHandler(handlers);
-
- server.setHandler(stats);
-
- // Setup deployers
- DeploymentManager deployer = new DeploymentManager();
- deployer.setContexts(contexts);
- server.addBean(deployer);
-
- WebAppProvider webapp_provider = new WebAppProvider();
- webapp_provider.setMonitoredDirName(jetty_home + "/webapps");
- webapp_provider.setParentLoaderPriority(false);
- webapp_provider.setExtractWars(true);
- webapp_provider.setScanInterval(2);
- webapp_provider.setDefaultsDescriptor(jetty_home
- + "/etc/webdefault.xml");
- deployer.addAppProvider(webapp_provider);
-
- HashLoginService login = new HashLoginService();
- login.setName("Test Realm");
- login.setConfig(jetty_home + "/etc/realm.properties");
- server.addBean(login);
-
- NCSARequestLog requestLog = new AsyncNCSARequestLog();
- requestLog.setFilename(jetty_home + "/logs/jetty-yyyy_mm_dd.log");
- requestLog.setExtended(false);
- requestLogHandler.setRequestLog(requestLog);
-
- server.setStopAtShutdown(true);
-
- server.start();
- server.dumpStdErr();
- server.join();
- }
-}
diff --git a/examples/embedded/src/main/resources/docroot/push.html b/examples/embedded/src/main/resources/docroot/push.html
new file mode 100644
index 0000000000..9c3c817ea8
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/push.html
@@ -0,0 +1,101 @@
+
+<!DOCTYPE html>
+<html lang="en-US">
+<head>
+<style>
+img {
+ width: 80px;
+ height: 80px;
+ border: 0px;
+}
+
+td {
+ width: 80px;
+ height: 80px;
+}
+
+tr {
+ height: 80px;
+}
+
+table {
+ border-collapse: collapse;
+}
+
+table, th, td {
+ border: 0px solid black;
+ margin: 0px;
+ padding: 0px;
+}
+
+</style>
+
+<body>
+<div id="pushtiles">
+<table>
+<tbody>
+<tr>
+<td><img src="tiles/tile00.jpg" alt="" /></td>
+<td><img src="tiles/tile01.jpg" alt="" /></td>
+<td><img src="tiles/tile02.jpg" alt="" /></td>
+<td><img src="tiles/tile03.jpg" alt="" /></td>
+<td><img src="tiles/tile04.jpg" alt="" /></td>
+<td><img src="tiles/tile05.jpg" alt="" /></td>
+<td><img src="tiles/tile06.jpg" alt="" /></td>
+<td><img src="tiles/tile07.jpg" alt="" /></td>
+<td><img src="tiles/tile08.jpg" alt="" /></td>
+<td><img src="tiles/tile09.jpg" alt="" /></td>
+</tr>
+<tr>
+<td><img src="tiles/tile10.jpg" alt="" /></td>
+<td><img src="tiles/tile11.jpg" alt="" /></td>
+<td><img src="tiles/tile12.jpg" alt="" /></td>
+<td><img src="tiles/tile13.jpg" alt="" /></td>
+<td><img src="tiles/tile14.jpg" alt="" /></td>
+<td><img src="tiles/tile15.jpg" alt="" /></td>
+<td><img src="tiles/tile16.jpg" alt="" /></td>
+<td><img src="tiles/tile17.jpg" alt="" /></td>
+<td><img src="tiles/tile18.jpg" alt="" /></td>
+<td><img src="tiles/tile19.jpg" alt="" /></td>
+</tr>
+<tr>
+<td><img src="tiles/tile20.jpg" alt="" /></td>
+<td><img src="tiles/tile21.jpg" alt="" /></td>
+<td><img src="tiles/tile22.jpg" alt="" /></td>
+<td><img src="tiles/tile23.jpg" alt="" /></td>
+<td><img src="tiles/tile24.jpg" alt="" /></td>
+<td><img src="tiles/tile25.jpg" alt="" /></td>
+<td><img src="tiles/tile26.jpg" alt="" /></td>
+<td><img src="tiles/tile27.jpg" alt="" /></td>
+<td><img src="tiles/tile28.jpg" alt="" /></td>
+<td><img src="tiles/tile29.jpg" alt="" /></td>
+</tr>
+<tr>
+<td><img src="tiles/tile30.jpg" alt="" /></td>
+<td><img src="tiles/tile31.jpg" alt="" /></td>
+<td><img src="tiles/tile32.jpg" alt="" /></td>
+<td><img src="tiles/tile33.jpg" alt="" /></td>
+<td><img src="tiles/tile34.jpg" alt="" /></td>
+<td><img src="tiles/tile35.jpg" alt="" /></td>
+<td><img src="tiles/tile36.jpg" alt="" /></td>
+<td><img src="tiles/tile37.jpg" alt="" /></td>
+<td><img src="tiles/tile38.jpg" alt="" /></td>
+<td><img src="tiles/tile39.jpg" alt="" /></td>
+</tr>
+<tr>
+<td><img src="tiles/tile40.jpg" alt="" /></td>
+<td><img src="tiles/tile41.jpg" alt="" /></td>
+<td><img src="tiles/tile42.jpg" alt="" /></td>
+<td><img src="tiles/tile43.jpg" alt="" /></td>
+<td><img src="tiles/tile44.jpg" alt="" /></td>
+<td><img src="tiles/tile45.jpg" alt="" /></td>
+<td><img src="tiles/tile46.jpg" alt="" /></td>
+<td><img src="tiles/tile47.jpg" alt="" /></td>
+<td><img src="tiles/tile48.jpg" alt="" /></td>
+<td><img src="tiles/tile49.jpg" alt="" /></td>
+</tr>
+</tbody>
+</table>
+</div>
+</body>
+</html>
diff --git a/examples/embedded/src/main/resources/docroot/pushed/tile00.jpg b/examples/embedded/src/main/resources/docroot/pushed/tile00.jpg
new file mode 100644
index 0000000000..dc303075c6
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/pushed/tile00.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/pushed/tile01.jpg b/examples/embedded/src/main/resources/docroot/pushed/tile01.jpg
new file mode 100644
index 0000000000..66c2e25253
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/pushed/tile01.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/pushed/tile02.jpg b/examples/embedded/src/main/resources/docroot/pushed/tile02.jpg
new file mode 100644
index 0000000000..f281dfd3f6
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/pushed/tile02.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/pushed/tile03.jpg b/examples/embedded/src/main/resources/docroot/pushed/tile03.jpg
new file mode 100644
index 0000000000..4787e69e90
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/pushed/tile03.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/pushed/tile04.jpg b/examples/embedded/src/main/resources/docroot/pushed/tile04.jpg
new file mode 100644
index 0000000000..64e6d1026c
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/pushed/tile04.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/pushed/tile05.jpg b/examples/embedded/src/main/resources/docroot/pushed/tile05.jpg
new file mode 100644
index 0000000000..1530c7687b
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/pushed/tile05.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/pushed/tile06.jpg b/examples/embedded/src/main/resources/docroot/pushed/tile06.jpg
new file mode 100644
index 0000000000..cd59c5f7ee
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/pushed/tile06.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/pushed/tile07.jpg b/examples/embedded/src/main/resources/docroot/pushed/tile07.jpg
new file mode 100644
index 0000000000..7f852875de
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/pushed/tile07.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/pushed/tile08.jpg b/examples/embedded/src/main/resources/docroot/pushed/tile08.jpg
new file mode 100644
index 0000000000..31ebcb0db8
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/pushed/tile08.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/pushed/tile09.jpg b/examples/embedded/src/main/resources/docroot/pushed/tile09.jpg
new file mode 100644
index 0000000000..b9cfb1a487
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/pushed/tile09.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/pushed/tile10.jpg b/examples/embedded/src/main/resources/docroot/pushed/tile10.jpg
new file mode 100644
index 0000000000..11c6faeb2e
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/pushed/tile10.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/pushed/tile11.jpg b/examples/embedded/src/main/resources/docroot/pushed/tile11.jpg
new file mode 100644
index 0000000000..fee6760310
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/pushed/tile11.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/pushed/tile12.jpg b/examples/embedded/src/main/resources/docroot/pushed/tile12.jpg
new file mode 100644
index 0000000000..a5032464e2
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/pushed/tile12.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/pushed/tile13.jpg b/examples/embedded/src/main/resources/docroot/pushed/tile13.jpg
new file mode 100644
index 0000000000..4227207ddb
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/pushed/tile13.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/pushed/tile14.jpg b/examples/embedded/src/main/resources/docroot/pushed/tile14.jpg
new file mode 100644
index 0000000000..6071c0ffbf
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/pushed/tile14.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/pushed/tile15.jpg b/examples/embedded/src/main/resources/docroot/pushed/tile15.jpg
new file mode 100644
index 0000000000..64a0bf99b8
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/pushed/tile15.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/pushed/tile16.jpg b/examples/embedded/src/main/resources/docroot/pushed/tile16.jpg
new file mode 100644
index 0000000000..f5995168c2
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/pushed/tile16.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/pushed/tile17.jpg b/examples/embedded/src/main/resources/docroot/pushed/tile17.jpg
new file mode 100644
index 0000000000..b4183b3ea8
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/pushed/tile17.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/pushed/tile18.jpg b/examples/embedded/src/main/resources/docroot/pushed/tile18.jpg
new file mode 100644
index 0000000000..5a568e2801
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/pushed/tile18.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/pushed/tile19.jpg b/examples/embedded/src/main/resources/docroot/pushed/tile19.jpg
new file mode 100644
index 0000000000..126c3c6404
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/pushed/tile19.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/pushed/tile20.jpg b/examples/embedded/src/main/resources/docroot/pushed/tile20.jpg
new file mode 100644
index 0000000000..5423ac1811
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/pushed/tile20.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/pushed/tile21.jpg b/examples/embedded/src/main/resources/docroot/pushed/tile21.jpg
new file mode 100644
index 0000000000..0b6edb0d77
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/pushed/tile21.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/pushed/tile22.jpg b/examples/embedded/src/main/resources/docroot/pushed/tile22.jpg
new file mode 100644
index 0000000000..f788a4849a
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/pushed/tile22.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/pushed/tile23.jpg b/examples/embedded/src/main/resources/docroot/pushed/tile23.jpg
new file mode 100644
index 0000000000..1fbc64d0ba
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/pushed/tile23.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/pushed/tile24.jpg b/examples/embedded/src/main/resources/docroot/pushed/tile24.jpg
new file mode 100644
index 0000000000..f565b8fff2
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/pushed/tile24.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/pushed/tile25.jpg b/examples/embedded/src/main/resources/docroot/pushed/tile25.jpg
new file mode 100644
index 0000000000..18a4d0697c
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/pushed/tile25.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/pushed/tile26.jpg b/examples/embedded/src/main/resources/docroot/pushed/tile26.jpg
new file mode 100644
index 0000000000..dde86ecf64
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/pushed/tile26.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/pushed/tile27.jpg b/examples/embedded/src/main/resources/docroot/pushed/tile27.jpg
new file mode 100644
index 0000000000..eaf0ce8a76
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/pushed/tile27.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/pushed/tile28.jpg b/examples/embedded/src/main/resources/docroot/pushed/tile28.jpg
new file mode 100644
index 0000000000..7e596304f3
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/pushed/tile28.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/pushed/tile29.jpg b/examples/embedded/src/main/resources/docroot/pushed/tile29.jpg
new file mode 100644
index 0000000000..1eb25b7dce
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/pushed/tile29.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/pushed/tile30.jpg b/examples/embedded/src/main/resources/docroot/pushed/tile30.jpg
new file mode 100644
index 0000000000..ea68292a07
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/pushed/tile30.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/pushed/tile31.jpg b/examples/embedded/src/main/resources/docroot/pushed/tile31.jpg
new file mode 100644
index 0000000000..31455ca321
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/pushed/tile31.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/pushed/tile32.jpg b/examples/embedded/src/main/resources/docroot/pushed/tile32.jpg
new file mode 100644
index 0000000000..f6a2a2947d
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/pushed/tile32.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/pushed/tile33.jpg b/examples/embedded/src/main/resources/docroot/pushed/tile33.jpg
new file mode 100644
index 0000000000..8362cf44a5
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/pushed/tile33.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/pushed/tile34.jpg b/examples/embedded/src/main/resources/docroot/pushed/tile34.jpg
new file mode 100644
index 0000000000..2b856a0dc7
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/pushed/tile34.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/pushed/tile35.jpg b/examples/embedded/src/main/resources/docroot/pushed/tile35.jpg
new file mode 100644
index 0000000000..4e59e21a91
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/pushed/tile35.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/pushed/tile36.jpg b/examples/embedded/src/main/resources/docroot/pushed/tile36.jpg
new file mode 100644
index 0000000000..7df53fdd73
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/pushed/tile36.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/pushed/tile37.jpg b/examples/embedded/src/main/resources/docroot/pushed/tile37.jpg
new file mode 100644
index 0000000000..31844113b9
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/pushed/tile37.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/pushed/tile38.jpg b/examples/embedded/src/main/resources/docroot/pushed/tile38.jpg
new file mode 100644
index 0000000000..52b44b8c98
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/pushed/tile38.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/pushed/tile39.jpg b/examples/embedded/src/main/resources/docroot/pushed/tile39.jpg
new file mode 100644
index 0000000000..2f7a636b4a
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/pushed/tile39.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/pushed/tile40.jpg b/examples/embedded/src/main/resources/docroot/pushed/tile40.jpg
new file mode 100644
index 0000000000..61cfdfacb0
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/pushed/tile40.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/pushed/tile41.jpg b/examples/embedded/src/main/resources/docroot/pushed/tile41.jpg
new file mode 100644
index 0000000000..d25a4e4db4
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/pushed/tile41.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/pushed/tile42.jpg b/examples/embedded/src/main/resources/docroot/pushed/tile42.jpg
new file mode 100644
index 0000000000..029e0f6731
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/pushed/tile42.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/pushed/tile43.jpg b/examples/embedded/src/main/resources/docroot/pushed/tile43.jpg
new file mode 100644
index 0000000000..5ea4f5582d
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/pushed/tile43.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/pushed/tile44.jpg b/examples/embedded/src/main/resources/docroot/pushed/tile44.jpg
new file mode 100644
index 0000000000..ba18b30f5a
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/pushed/tile44.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/pushed/tile45.jpg b/examples/embedded/src/main/resources/docroot/pushed/tile45.jpg
new file mode 100644
index 0000000000..b856d66a3f
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/pushed/tile45.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/pushed/tile46.jpg b/examples/embedded/src/main/resources/docroot/pushed/tile46.jpg
new file mode 100644
index 0000000000..f474cc2f9f
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/pushed/tile46.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/pushed/tile47.jpg b/examples/embedded/src/main/resources/docroot/pushed/tile47.jpg
new file mode 100644
index 0000000000..6b2f58e2ca
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/pushed/tile47.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/pushed/tile48.jpg b/examples/embedded/src/main/resources/docroot/pushed/tile48.jpg
new file mode 100644
index 0000000000..e5d1426542
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/pushed/tile48.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/pushed/tile49.jpg b/examples/embedded/src/main/resources/docroot/pushed/tile49.jpg
new file mode 100644
index 0000000000..6a33cf3725
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/pushed/tile49.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/tiles/tile00.jpg b/examples/embedded/src/main/resources/docroot/tiles/tile00.jpg
new file mode 100644
index 0000000000..b2e52fbb8b
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/tiles/tile00.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/tiles/tile01.jpg b/examples/embedded/src/main/resources/docroot/tiles/tile01.jpg
new file mode 100644
index 0000000000..4d98637b23
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/tiles/tile01.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/tiles/tile02.jpg b/examples/embedded/src/main/resources/docroot/tiles/tile02.jpg
new file mode 100644
index 0000000000..06b289b5a4
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/tiles/tile02.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/tiles/tile03.jpg b/examples/embedded/src/main/resources/docroot/tiles/tile03.jpg
new file mode 100644
index 0000000000..fcb7b194af
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/tiles/tile03.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/tiles/tile04.jpg b/examples/embedded/src/main/resources/docroot/tiles/tile04.jpg
new file mode 100644
index 0000000000..0cc4933277
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/tiles/tile04.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/tiles/tile05.jpg b/examples/embedded/src/main/resources/docroot/tiles/tile05.jpg
new file mode 100644
index 0000000000..6a6d66fb41
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/tiles/tile05.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/tiles/tile06.jpg b/examples/embedded/src/main/resources/docroot/tiles/tile06.jpg
new file mode 100644
index 0000000000..89ddd6406e
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/tiles/tile06.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/tiles/tile07.jpg b/examples/embedded/src/main/resources/docroot/tiles/tile07.jpg
new file mode 100644
index 0000000000..967931796e
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/tiles/tile07.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/tiles/tile08.jpg b/examples/embedded/src/main/resources/docroot/tiles/tile08.jpg
new file mode 100644
index 0000000000..aa895c4969
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/tiles/tile08.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/tiles/tile09.jpg b/examples/embedded/src/main/resources/docroot/tiles/tile09.jpg
new file mode 100644
index 0000000000..9c234cacf3
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/tiles/tile09.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/tiles/tile10.jpg b/examples/embedded/src/main/resources/docroot/tiles/tile10.jpg
new file mode 100644
index 0000000000..8bc306c463
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/tiles/tile10.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/tiles/tile11.jpg b/examples/embedded/src/main/resources/docroot/tiles/tile11.jpg
new file mode 100644
index 0000000000..85b62b6b70
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/tiles/tile11.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/tiles/tile12.jpg b/examples/embedded/src/main/resources/docroot/tiles/tile12.jpg
new file mode 100644
index 0000000000..448faa2533
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/tiles/tile12.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/tiles/tile13.jpg b/examples/embedded/src/main/resources/docroot/tiles/tile13.jpg
new file mode 100644
index 0000000000..4f4f9012e0
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/tiles/tile13.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/tiles/tile14.jpg b/examples/embedded/src/main/resources/docroot/tiles/tile14.jpg
new file mode 100644
index 0000000000..e03120b27c
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/tiles/tile14.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/tiles/tile15.jpg b/examples/embedded/src/main/resources/docroot/tiles/tile15.jpg
new file mode 100644
index 0000000000..64bc2383dc
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/tiles/tile15.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/tiles/tile16.jpg b/examples/embedded/src/main/resources/docroot/tiles/tile16.jpg
new file mode 100644
index 0000000000..5e858b9ecd
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/tiles/tile16.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/tiles/tile17.jpg b/examples/embedded/src/main/resources/docroot/tiles/tile17.jpg
new file mode 100644
index 0000000000..2da3aa8ef0
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/tiles/tile17.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/tiles/tile18.jpg b/examples/embedded/src/main/resources/docroot/tiles/tile18.jpg
new file mode 100644
index 0000000000..e934ce5ec1
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/tiles/tile18.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/tiles/tile19.jpg b/examples/embedded/src/main/resources/docroot/tiles/tile19.jpg
new file mode 100644
index 0000000000..15707bc73e
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/tiles/tile19.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/tiles/tile20.jpg b/examples/embedded/src/main/resources/docroot/tiles/tile20.jpg
new file mode 100644
index 0000000000..4b940f13d4
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/tiles/tile20.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/tiles/tile21.jpg b/examples/embedded/src/main/resources/docroot/tiles/tile21.jpg
new file mode 100644
index 0000000000..b340585ab0
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/tiles/tile21.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/tiles/tile22.jpg b/examples/embedded/src/main/resources/docroot/tiles/tile22.jpg
new file mode 100644
index 0000000000..39b08249da
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/tiles/tile22.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/tiles/tile23.jpg b/examples/embedded/src/main/resources/docroot/tiles/tile23.jpg
new file mode 100644
index 0000000000..42adae167e
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/tiles/tile23.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/tiles/tile24.jpg b/examples/embedded/src/main/resources/docroot/tiles/tile24.jpg
new file mode 100644
index 0000000000..a8281ddb53
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/tiles/tile24.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/tiles/tile25.jpg b/examples/embedded/src/main/resources/docroot/tiles/tile25.jpg
new file mode 100644
index 0000000000..43692f0795
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/tiles/tile25.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/tiles/tile26.jpg b/examples/embedded/src/main/resources/docroot/tiles/tile26.jpg
new file mode 100644
index 0000000000..f8de0f7f36
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/tiles/tile26.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/tiles/tile27.jpg b/examples/embedded/src/main/resources/docroot/tiles/tile27.jpg
new file mode 100644
index 0000000000..f6c210ac9d
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/tiles/tile27.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/tiles/tile28.jpg b/examples/embedded/src/main/resources/docroot/tiles/tile28.jpg
new file mode 100644
index 0000000000..39f262204c
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/tiles/tile28.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/tiles/tile29.jpg b/examples/embedded/src/main/resources/docroot/tiles/tile29.jpg
new file mode 100644
index 0000000000..952ce0bf67
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/tiles/tile29.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/tiles/tile30.jpg b/examples/embedded/src/main/resources/docroot/tiles/tile30.jpg
new file mode 100644
index 0000000000..e699a53cd4
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/tiles/tile30.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/tiles/tile31.jpg b/examples/embedded/src/main/resources/docroot/tiles/tile31.jpg
new file mode 100644
index 0000000000..d6256fe653
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/tiles/tile31.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/tiles/tile32.jpg b/examples/embedded/src/main/resources/docroot/tiles/tile32.jpg
new file mode 100644
index 0000000000..fde5e8b9b3
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/tiles/tile32.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/tiles/tile33.jpg b/examples/embedded/src/main/resources/docroot/tiles/tile33.jpg
new file mode 100644
index 0000000000..2ba66aa343
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/tiles/tile33.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/tiles/tile34.jpg b/examples/embedded/src/main/resources/docroot/tiles/tile34.jpg
new file mode 100644
index 0000000000..37e24f05c2
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/tiles/tile34.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/tiles/tile35.jpg b/examples/embedded/src/main/resources/docroot/tiles/tile35.jpg
new file mode 100644
index 0000000000..b147697ed6
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/tiles/tile35.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/tiles/tile36.jpg b/examples/embedded/src/main/resources/docroot/tiles/tile36.jpg
new file mode 100644
index 0000000000..6501650b18
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/tiles/tile36.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/tiles/tile37.jpg b/examples/embedded/src/main/resources/docroot/tiles/tile37.jpg
new file mode 100644
index 0000000000..e2d40eeb9d
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/tiles/tile37.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/tiles/tile38.jpg b/examples/embedded/src/main/resources/docroot/tiles/tile38.jpg
new file mode 100644
index 0000000000..1363781678
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/tiles/tile38.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/tiles/tile39.jpg b/examples/embedded/src/main/resources/docroot/tiles/tile39.jpg
new file mode 100644
index 0000000000..790cfd220a
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/tiles/tile39.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/tiles/tile40.jpg b/examples/embedded/src/main/resources/docroot/tiles/tile40.jpg
new file mode 100644
index 0000000000..3027238b9e
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/tiles/tile40.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/tiles/tile41.jpg b/examples/embedded/src/main/resources/docroot/tiles/tile41.jpg
new file mode 100644
index 0000000000..d085e38e42
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/tiles/tile41.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/tiles/tile42.jpg b/examples/embedded/src/main/resources/docroot/tiles/tile42.jpg
new file mode 100644
index 0000000000..b7ec60fed9
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/tiles/tile42.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/tiles/tile43.jpg b/examples/embedded/src/main/resources/docroot/tiles/tile43.jpg
new file mode 100644
index 0000000000..6230abd253
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/tiles/tile43.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/tiles/tile44.jpg b/examples/embedded/src/main/resources/docroot/tiles/tile44.jpg
new file mode 100644
index 0000000000..46ad6a1f20
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/tiles/tile44.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/tiles/tile45.jpg b/examples/embedded/src/main/resources/docroot/tiles/tile45.jpg
new file mode 100644
index 0000000000..89d2d325d1
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/tiles/tile45.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/tiles/tile46.jpg b/examples/embedded/src/main/resources/docroot/tiles/tile46.jpg
new file mode 100644
index 0000000000..9f3451f881
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/tiles/tile46.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/tiles/tile47.jpg b/examples/embedded/src/main/resources/docroot/tiles/tile47.jpg
new file mode 100644
index 0000000000..b702178926
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/tiles/tile47.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/tiles/tile48.jpg b/examples/embedded/src/main/resources/docroot/tiles/tile48.jpg
new file mode 100644
index 0000000000..9defd9a30e
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/tiles/tile48.jpg
Binary files differ
diff --git a/examples/embedded/src/main/resources/docroot/tiles/tile49.jpg b/examples/embedded/src/main/resources/docroot/tiles/tile49.jpg
new file mode 100644
index 0000000000..26f2a44a56
--- /dev/null
+++ b/examples/embedded/src/main/resources/docroot/tiles/tile49.jpg
Binary files differ

Back to the top