You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2021/05/27 13:06:56 UTC
[wicket] branch master updated: WICKET-6887 Merge wicket-http2 into
wicket-core
This is an automated email from the ASF dual-hosted git repository.
mgrigorov pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/wicket.git
The following commit(s) were added to refs/heads/master by this push:
new 315611f WICKET-6887 Merge wicket-http2 into wicket-core
315611f is described below
commit 315611f7b674cef9bcb2e150671f52805b3207fc
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
AuthorDate: Tue May 18 09:40:37 2021 +0300
WICKET-6887 Merge wicket-http2 into wicket-core
Move the classes from wicket-http2-core and wicket-http2-servlet4 to wicket-core.
Delete the Tomcat/Jetty/Undertow specific classes.
---
.../wicket/markup/head/http2/IPushBuilder.java | 4 +-
.../wicket/markup/head/http2/PushBuilder.java | 11 +--
.../wicket/markup/head/http2}/PushHeaderItem.java | 31 +++---
.../apache/wicket/markup/head/http2}/PushItem.java | 6 +-
.../markup/head/http2}/PushItemHeaderValue.java | 2 +-
wicket-experimental/pom.xml | 1 -
wicket-experimental/wicket-http2/pom.xml | 41 --------
.../wicket-http2/wicket-http2-core/pom.xml | 46 ---------
.../org/apache/wicket/http2/Http2Settings.java | 108 ---------------------
.../wicket/http2/markup/head/NoopPushBuilder.java | 60 ------------
.../util/license/ApacheLicenceHeaderTest.java | 34 -------
.../wicket-http2/wicket-http2-jetty/pom.xml | 51 ----------
.../http2/markup/head/jetty/Initializer.java | 44 ---------
.../http2/markup/head/jetty/Jetty9PushBuilder.java | 69 -------------
.../services/org.apache.wicket.IInitializer | 1 -
.../util/license/ApacheLicenceHeaderTest.java | 34 -------
.../wicket-http2/wicket-http2-servlet4/pom.xml | 50 ----------
.../http2/markup/head/servlet4/Initializer.java | 44 ---------
.../services/org.apache.wicket.IInitializer | 1 -
.../util/license/ApacheLicenceHeaderTest.java | 34 -------
.../wicket-http2/wicket-http2-tomcat/pom.xml | 61 ------------
.../http2/markup/head/tomcat/Initializer.java | 44 ---------
.../markup/head/tomcat/Tomcat85PushBuilder.java | 68 -------------
.../services/org.apache.wicket.IInitializer | 1 -
.../util/license/ApacheLicenceHeaderTest.java | 34 -------
.../wicket-http2/wicket-http2-undertow/pom.xml | 61 ------------
.../http2/markup/head/undertow/Initializer.java | 46 ---------
.../markup/head/undertow/UndertowPushBuilder.java | 71 --------------
.../services/org.apache.wicket.IInitializer | 1 -
.../util/license/ApacheLicenceHeaderTest.java | 34 -------
30 files changed, 27 insertions(+), 1066 deletions(-)
diff --git a/wicket-experimental/wicket-http2/wicket-http2-core/src/main/java/org/apache/wicket/http2/markup/head/PushBuilder.java b/wicket-core/src/main/java/org/apache/wicket/markup/head/http2/IPushBuilder.java
similarity index 94%
rename from wicket-experimental/wicket-http2/wicket-http2-core/src/main/java/org/apache/wicket/http2/markup/head/PushBuilder.java
rename to wicket-core/src/main/java/org/apache/wicket/markup/head/http2/IPushBuilder.java
index 246b091..c7733e5 100644
--- a/wicket-experimental/wicket-http2/wicket-http2-core/src/main/java/org/apache/wicket/http2/markup/head/PushBuilder.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/head/http2/IPushBuilder.java
@@ -14,14 +14,14 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.wicket.http2.markup.head;
+package org.apache.wicket.markup.head.http2;
import jakarta.servlet.http.HttpServletRequest;
/**
* Used to delegate the push call to the vendor specific push builder API
*/
-public interface PushBuilder
+public interface IPushBuilder
{
/**
* Pushes the given paths with the push builder received from the http servlet request
diff --git a/wicket-experimental/wicket-http2/wicket-http2-servlet4/src/main/java/org/apache/wicket/http2/markup/head/servlet4/Servlet4PushBuilder.java b/wicket-core/src/main/java/org/apache/wicket/markup/head/http2/PushBuilder.java
similarity index 82%
rename from wicket-experimental/wicket-http2/wicket-http2-servlet4/src/main/java/org/apache/wicket/http2/markup/head/servlet4/Servlet4PushBuilder.java
rename to wicket-core/src/main/java/org/apache/wicket/markup/head/http2/PushBuilder.java
index a706417..214c3e6 100644
--- a/wicket-experimental/wicket-http2/wicket-http2-servlet4/src/main/java/org/apache/wicket/http2/markup/head/servlet4/Servlet4PushBuilder.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/head/http2/PushBuilder.java
@@ -14,14 +14,11 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.wicket.http2.markup.head.servlet4;
+package org.apache.wicket.markup.head.http2;
import jakarta.servlet.http.HttpServletRequest;
-import org.apache.wicket.http2.markup.head.PushBuilder;
-import org.apache.wicket.http2.markup.head.PushItem;
-import org.apache.wicket.http2.markup.head.PushItemHeaderValue;
-import org.apache.wicket.http2.markup.head.PushItemHeaderValue.HeaderOperation;
+import org.apache.wicket.markup.head.http2.PushItemHeaderValue.HeaderOperation;
import org.apache.wicket.request.Request;
import org.apache.wicket.request.cycle.RequestCycle;
import org.slf4j.Logger;
@@ -32,9 +29,9 @@ import org.slf4j.LoggerFactory;
*
* @author Tobias Soloschenko
*/
-public class Servlet4PushBuilder implements PushBuilder
+public class PushBuilder implements IPushBuilder
{
- private static final Logger LOG = LoggerFactory.getLogger(Servlet4PushBuilder.class);
+ private static final Logger LOG = LoggerFactory.getLogger(PushBuilder.class);
@Override
public void push(HttpServletRequest httpServletRequest, PushItem... pushItems)
diff --git a/wicket-experimental/wicket-http2/wicket-http2-core/src/main/java/org/apache/wicket/http2/markup/head/PushHeaderItem.java b/wicket-core/src/main/java/org/apache/wicket/markup/head/http2/PushHeaderItem.java
similarity index 94%
rename from wicket-experimental/wicket-http2/wicket-http2-core/src/main/java/org/apache/wicket/http2/markup/head/PushHeaderItem.java
rename to wicket-core/src/main/java/org/apache/wicket/markup/head/http2/PushHeaderItem.java
index aabfb27..acdb2f3 100644
--- a/wicket-experimental/wicket-http2/wicket-http2-core/src/main/java/org/apache/wicket/http2/markup/head/PushHeaderItem.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/head/http2/PushHeaderItem.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.wicket.http2.markup.head;
+package org.apache.wicket.markup.head.http2;
import java.io.IOException;
import java.net.URL;
@@ -31,10 +31,8 @@ import java.util.TreeSet;
import java.util.concurrent.ConcurrentHashMap;
import jakarta.servlet.http.HttpServletRequest;
-import org.apache.wicket.Application;
import org.apache.wicket.Page;
import org.apache.wicket.WicketRuntimeException;
-import org.apache.wicket.http2.Http2Settings;
import org.apache.wicket.markup.head.HeaderItem;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.protocol.http.WebApplication;
@@ -48,6 +46,7 @@ import org.apache.wicket.request.http.WebResponse;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.wicket.request.mapper.parameter.PageParametersEncoder;
import org.apache.wicket.request.resource.ResourceReference;
+import org.apache.wicket.util.lang.Args;
/**
* A push header item to be used in the http/2 context and to reduce the latency of the web
@@ -113,6 +112,8 @@ public class PushHeaderItem extends HeaderItem
*/
private Page page;
+ private final IPushBuilder pushBuilder;
+
/**
* Creates a push header item based on the given page and the corresponding page request / page
* response. To get the request and response
@@ -127,17 +128,22 @@ public class PushHeaderItem extends HeaderItem
*/
public PushHeaderItem(Page page, Request pageRequest, Response pageResponse)
{
- if (page == null || !(page instanceof WebPage) || pageResponse == null ||
- !(pageResponse instanceof WebResponse))
+ this(page, pageRequest, pageResponse, new PushBuilder());
+ }
+
+ public PushHeaderItem(Page page, Request pageRequest, Response pageResponse, IPushBuilder pushBuilder)
+ {
+ if (!(page instanceof WebPage) || !(pageRequest instanceof WebRequest) || !(pageResponse instanceof WebResponse))
{
throw new WicketRuntimeException(
- "Please hand over the web page, the web request and the web response to the push header item like \"new PushHeaderItem(this, yourWebPageRequest, yourWebPageResponse)\" - " +
- "The webPageResponse / webPageRequest can be obtained via \"getRequestCycle().getRequest()\" / \"getRequestCycle().getResponse()\" and placed into the page as fields " +
+ "Please hand over the web page, the web request and the web response to the push header item like \"new PushHeaderItem(page, webRequest, webResponse)\" - " +
+ "The webResponse / webRequest can be obtained via \"getRequestCycle().getRequest()\" / \"getRequestCycle().getResponse()\" and placed into the page as fields " +
"\"private transient Response webPageResponse;\" / \"private transient Request webPageRequest;\"");
}
this.pageWebRequest = (WebRequest)pageRequest;
this.pageWebResponse = (WebResponse)pageResponse;
this.page = page;
+ this.pushBuilder = Args.notNull(pushBuilder, "pushBuilder");
}
/**
@@ -146,7 +152,7 @@ public class PushHeaderItem extends HeaderItem
@Override
public Iterable<?> getRenderTokens()
{
- Set<String> tokens = new TreeSet<String>();
+ Set<String> tokens = new TreeSet<>();
for (PushItem pushItem : pushItems)
{
tokens.add(pushItem.getUrl() + TOKEN_SUFFIX);
@@ -303,10 +309,7 @@ public class PushHeaderItem extends HeaderItem
*/
protected void push(HttpServletRequest request)
{
- // Receives the vendor specific push builder
- Http2Settings http2Settings = Http2Settings.Holder.get(Application.get());
- PushBuilder pushBuilder = http2Settings.getPushBuilder();
- pushBuilder.push(request, pushItems.toArray(new PushItem[pushItems.size()]));
+ pushBuilder.push(request, pushItems.toArray(new PushItem[0]));
}
/**
@@ -333,7 +336,7 @@ public class PushHeaderItem extends HeaderItem
"Please provide an object to the items to be pushed, so that the url can be created for the given resource.");
}
- CharSequence url = null;
+ CharSequence url;
if (object instanceof ResourceReference)
{
url = requestCycle.urlFor((ResourceReference)object, parameters);
@@ -385,7 +388,7 @@ public class PushHeaderItem extends HeaderItem
filterPath = filterPath.substring(0, filterPath.length() - 1);
}
partialUrl.append(filterPath);
- partialUrl.append(url.toString());
+ partialUrl.append(url);
// Set the url the resource is going to be pushed with
pushItem.setUrl(partialUrl.toString());
diff --git a/wicket-experimental/wicket-http2/wicket-http2-core/src/main/java/org/apache/wicket/http2/markup/head/PushItem.java b/wicket-core/src/main/java/org/apache/wicket/markup/head/http2/PushItem.java
similarity index 95%
rename from wicket-experimental/wicket-http2/wicket-http2-core/src/main/java/org/apache/wicket/http2/markup/head/PushItem.java
rename to wicket-core/src/main/java/org/apache/wicket/markup/head/http2/PushItem.java
index 1e73af9..54a6e4e 100644
--- a/wicket-experimental/wicket-http2/wicket-http2-core/src/main/java/org/apache/wicket/http2/markup/head/PushItem.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/head/http2/PushItem.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.wicket.http2.markup.head;
+package org.apache.wicket.markup.head.http2;
import java.io.Serializable;
import java.util.HashMap;
@@ -157,7 +157,7 @@ public class PushItem implements Serializable
/**
* Gets the URL composed within the push header item
*
- * @see {@link org.apache.wicket.http2.markup.head.PushHeaderItem#push(List)}
+ * @see {@link PushHeaderItem#push(List)}
* @return the URL to be pushed
*/
public String getUrl()
@@ -168,7 +168,7 @@ public class PushItem implements Serializable
/**
* Sets the URL composed within the push header item
*
- * @see {@link org.apache.wicket.http2.markup.head.PushHeaderItem#push(List)}
+ * @see {@link PushHeaderItem#push(List)}
* @param url
* the URL used to push the resource
* @return the push item
diff --git a/wicket-experimental/wicket-http2/wicket-http2-core/src/main/java/org/apache/wicket/http2/markup/head/PushItemHeaderValue.java b/wicket-core/src/main/java/org/apache/wicket/markup/head/http2/PushItemHeaderValue.java
similarity index 97%
rename from wicket-experimental/wicket-http2/wicket-http2-core/src/main/java/org/apache/wicket/http2/markup/head/PushItemHeaderValue.java
rename to wicket-core/src/main/java/org/apache/wicket/markup/head/http2/PushItemHeaderValue.java
index 2c3c72c..8bcd3e5 100644
--- a/wicket-experimental/wicket-http2/wicket-http2-core/src/main/java/org/apache/wicket/http2/markup/head/PushItemHeaderValue.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/head/http2/PushItemHeaderValue.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.wicket.http2.markup.head;
+package org.apache.wicket.markup.head.http2;
/**
* A push header to be applied when the resource is pushed
diff --git a/wicket-experimental/pom.xml b/wicket-experimental/pom.xml
index 92f9cce..b511652 100644
--- a/wicket-experimental/pom.xml
+++ b/wicket-experimental/pom.xml
@@ -29,7 +29,6 @@
<name>Wicket-Experimental</name>
<description>Wicket-Experimental contains experimental Wicket modules that may or may not be supported in the future.</description>
<modules>
- <module>wicket-http2</module>
<module>wicket-metrics</module>
</modules>
diff --git a/wicket-experimental/wicket-http2/pom.xml b/wicket-experimental/wicket-http2/pom.xml
deleted file mode 100644
index d14a47a..0000000
--- a/wicket-experimental/wicket-http2/pom.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.apache.wicket.experimental.wicket9</groupId>
- <artifactId>wicket-experimental</artifactId>
- <version>10.0.0-M1-SNAPSHOT</version>
- <relativePath>../pom.xml</relativePath>
- </parent>
- <artifactId>wicket-http2</artifactId>
- <version>0.25-SNAPSHOT</version>
- <packaging>pom</packaging>
- <name>Wicket Http/2</name>
- <description>
- Wicket’s implementation to use the PushBuilder API
- to serve resource via http/2 with less requests
- </description>
- <modules>
- <module>wicket-http2-core</module>
- <module>wicket-http2-jetty</module>
- <module>wicket-http2-servlet4</module>
- <module>wicket-http2-tomcat</module>
- <module>wicket-http2-undertow</module>
- </modules>
-</project>
diff --git a/wicket-experimental/wicket-http2/wicket-http2-core/pom.xml b/wicket-experimental/wicket-http2/wicket-http2-core/pom.xml
deleted file mode 100644
index 9d1eb3a..0000000
--- a/wicket-experimental/wicket-http2/wicket-http2-core/pom.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.apache.wicket.experimental.wicket9</groupId>
- <artifactId>wicket-http2</artifactId>
- <version>0.25-SNAPSHOT</version>
- <relativePath>../pom.xml</relativePath>
- </parent>
- <artifactId>wicket-http2-core</artifactId>
- <packaging>bundle</packaging>
- <name>Wicket Http/2 Core</name>
- <description>
- Wicket’s implementation to use the PushBuilder API
- to serve resource via http/2 with less requests. This
- is the core implementation which provides the header item
- that uses the API.
- </description>
-
- <properties>
- <automatic-module-name>org.apache.wicket.http2.core</automatic-module-name>
- </properties>
-
- <dependencies>
- <dependency>
- <groupId>org.apache.wicket</groupId>
- <artifactId>wicket-core</artifactId>
- </dependency>
- </dependencies>
-</project>
diff --git a/wicket-experimental/wicket-http2/wicket-http2-core/src/main/java/org/apache/wicket/http2/Http2Settings.java b/wicket-experimental/wicket-http2/wicket-http2-core/src/main/java/org/apache/wicket/http2/Http2Settings.java
deleted file mode 100644
index dc4ff64..0000000
--- a/wicket-experimental/wicket-http2/wicket-http2-core/src/main/java/org/apache/wicket/http2/Http2Settings.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.wicket.http2;
-
-import org.apache.wicket.Application;
-import org.apache.wicket.MetaDataKey;
-import org.apache.wicket.http2.markup.head.NoopPushBuilder;
-import org.apache.wicket.http2.markup.head.PushBuilder;
-import org.apache.wicket.util.lang.Args;
-
-/**
- * The http2 settings used to get the vendor specific push builder API
- *
- * @author Martin Grigorov
- */
-public class Http2Settings
-{
- /**
- * The meta data key of the http2 settings
- */
- private static final MetaDataKey<Http2Settings> KEY = new MetaDataKey<>()
- {
- private static final long serialVersionUID = 1L;
- };
-
- /**
- * Holds this Http2Settings in the Application's meta data. This way wicket-core module doesn't
- * have reference to wicket-http2-core
- */
- public static final class Holder
- {
- /**
- * Gets the http2 settings from the given application
- *
- * @param application
- * the application to get the meta data from
- * @return the http2 settings
- */
- public static Http2Settings get(Application application)
- {
- Http2Settings settings = application.getMetaData(KEY);
- if (settings == null)
- {
- synchronized (application)
- {
- if (settings == null)
- {
- settings = new Http2Settings();
- set(application, settings);
- }
- }
- }
- return settings;
- }
-
- /**
- * Sets the given http2 settings to the given application
- *
- * @param application
- * the application to set the meta data key to
- * @param settings
- * the http2 settings to be set to the application
- */
- public static void set(Application application, Http2Settings settings)
- {
- application.setMetaData(KEY, settings);
- }
- }
-
- private PushBuilder pushBuilder = NoopPushBuilder.INSTANCE;
-
- /**
- * Sets the push builder that has been initialized
- *
- * @param pushBuilder
- * the push builder to be used after the initialization
- * @return the push builder
- */
- public Http2Settings setPushBuilder(PushBuilder pushBuilder)
- {
- this.pushBuilder = Args.notNull(pushBuilder, "pushBuilder");
- return this;
- }
-
- /**
- * Gets the push builder which has been initialized
- *
- * @return the push builder
- */
- public PushBuilder getPushBuilder()
- {
- return pushBuilder;
- }
-}
diff --git a/wicket-experimental/wicket-http2/wicket-http2-core/src/main/java/org/apache/wicket/http2/markup/head/NoopPushBuilder.java b/wicket-experimental/wicket-http2/wicket-http2-core/src/main/java/org/apache/wicket/http2/markup/head/NoopPushBuilder.java
deleted file mode 100644
index 52dffa9..0000000
--- a/wicket-experimental/wicket-http2/wicket-http2-core/src/main/java/org/apache/wicket/http2/markup/head/NoopPushBuilder.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.wicket.http2.markup.head;
-
-import jakarta.servlet.http.HttpServletRequest;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * The noop push builder is used to inform the dev to place in a vendor specific jar to support the
- * push builder API
- *
- * @author Martin Grigorov
- *
- */
-public class NoopPushBuilder implements PushBuilder
-{
- private static final Logger LOG = LoggerFactory.getLogger(NoopPushBuilder.class);
-
- /**
- * An instance of the push builder
- */
- public static final NoopPushBuilder INSTANCE = new NoopPushBuilder();
-
- /**
- * Creates the noop push builder
- */
- private NoopPushBuilder()
- {
- // NOOP
- }
-
- /**
- * Warns the dev to provide a vendor specific push builder API.
- * <p>
- * {@inheritDoc}
- * </p>
- */
- @Override
- public void push(HttpServletRequest httpServletRequest, PushItem... pushItems)
- {
- LOG.warn(
- "This PushBuilder does nothing. Please use one of the other implementations - Jetty9 or Tomcat8.5+");
- }
-}
diff --git a/wicket-experimental/wicket-http2/wicket-http2-core/src/test/java/org/apache/wicket/util/license/ApacheLicenceHeaderTest.java b/wicket-experimental/wicket-http2/wicket-http2-core/src/test/java/org/apache/wicket/util/license/ApacheLicenceHeaderTest.java
deleted file mode 100644
index 7efc3af..0000000
--- a/wicket-experimental/wicket-http2/wicket-http2-core/src/test/java/org/apache/wicket/util/license/ApacheLicenceHeaderTest.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.wicket.util.license;
-
-/**
- * Test that the license headers are in place in this project. The tests are run from
- * {@link ApacheLicenseHeaderTestCase}, but you can add project specific tests here if needed.
- *
- * @author Frank Bille Jensen (frankbille)
- */
-public class ApacheLicenceHeaderTest extends ApacheLicenseHeaderTestCase
-{
- /**
- * Construct.
- */
- public ApacheLicenceHeaderTest()
- {
- // addHeaders = true;
- }
-}
diff --git a/wicket-experimental/wicket-http2/wicket-http2-jetty/pom.xml b/wicket-experimental/wicket-http2/wicket-http2-jetty/pom.xml
deleted file mode 100644
index 0725ac3..0000000
--- a/wicket-experimental/wicket-http2/wicket-http2-jetty/pom.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.apache.wicket.experimental.wicket9</groupId>
- <artifactId>wicket-http2</artifactId>
- <version>0.25-SNAPSHOT</version>
- <relativePath>../pom.xml</relativePath>
- </parent>
- <artifactId>wicket-http2-jetty</artifactId>
- <packaging>bundle</packaging>
- <name>Wicket Http/2 Jetty 9.3+</name>
- <description>
- Wicket’s implementation to use the PushBuilder API
- to serve resource via http/2 with less requests. This
- is the jetty implementation to resolve the PushBuilder API and
- provide the IInitializer.
- </description>
-
- <properties>
- <automatic-module-name>org.apache.wicket.http2.jetty</automatic-module-name>
- </properties>
-
- <dependencies>
- <dependency>
- <groupId>org.eclipse.jetty</groupId>
- <artifactId>jetty-server</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.wicket.experimental.wicket9</groupId>
- <artifactId>wicket-http2-core</artifactId>
- </dependency>
- </dependencies>
-</project>
diff --git a/wicket-experimental/wicket-http2/wicket-http2-jetty/src/main/java/org/apache/wicket/http2/markup/head/jetty/Initializer.java b/wicket-experimental/wicket-http2/wicket-http2-jetty/src/main/java/org/apache/wicket/http2/markup/head/jetty/Initializer.java
deleted file mode 100644
index 265be8c..0000000
--- a/wicket-experimental/wicket-http2/wicket-http2-jetty/src/main/java/org/apache/wicket/http2/markup/head/jetty/Initializer.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.wicket.http2.markup.head.jetty;
-
-import org.apache.wicket.Application;
-import org.apache.wicket.IInitializer;
-import org.apache.wicket.http2.Http2Settings;
-
-/**
- * Initializes the jetty specific push builder API and makes it available through the HTTP2
- * settings
- */
-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
- }
-}
diff --git a/wicket-experimental/wicket-http2/wicket-http2-jetty/src/main/java/org/apache/wicket/http2/markup/head/jetty/Jetty9PushBuilder.java b/wicket-experimental/wicket-http2/wicket-http2-jetty/src/main/java/org/apache/wicket/http2/markup/head/jetty/Jetty9PushBuilder.java
deleted file mode 100644
index ebabba6..0000000
--- a/wicket-experimental/wicket-http2/wicket-http2-jetty/src/main/java/org/apache/wicket/http2/markup/head/jetty/Jetty9PushBuilder.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.wicket.http2.markup.head.jetty;
-
-import jakarta.servlet.http.HttpServletRequest;
-
-import org.apache.wicket.http2.markup.head.PushBuilder;
-import org.apache.wicket.http2.markup.head.PushItem;
-import org.apache.wicket.http2.markup.head.PushItemHeaderValue;
-import org.apache.wicket.http2.markup.head.PushItemHeaderValue.HeaderOperation;
-import org.apache.wicket.request.Request;
-import org.apache.wicket.request.cycle.RequestCycle;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Allows to push resources with the Jetty 9.3+ specific push builder API
- *
- * @author Tobias Soloschenko
- */
-public class Jetty9PushBuilder implements PushBuilder
-{
- private static final Logger LOG = LoggerFactory.getLogger(Jetty9PushBuilder.class);
-
- @Override
- public void push(HttpServletRequest httpServletRequest, PushItem... pushItems)
- {
- Request request = RequestCycle.get().getRequest();
- HttpServletRequest httpRequest = (HttpServletRequest) request.getContainerRequest();
- // FIXME Wicket 10
- final jakarta.servlet.http.PushBuilder pushBuilder = null;//org.eclipse.jetty.server.Request.getBaseRequest(httpRequest).getPushBuilder();
- if (pushBuilder != null)
- {
- for (PushItem pushItem : pushItems)
- {
- pushBuilder.path(pushItem.getUrl());
- pushItem.getHeaders().entrySet().stream().forEach(pushHeader -> {
- String key = pushHeader.getKey();
- PushItemHeaderValue value = pushHeader.getValue();
- if(value.getOperation() == HeaderOperation.ADD){
- pushBuilder.addHeader(key, value.getValue());
- }else{
- pushBuilder.setHeader(key, value.getValue());
- }
- });
- pushBuilder.push();
- }
- }
- else
- {
- LOG.warn("Attempted to use HTTP2 Push but it is not supported for the current request: {}!",
- httpRequest);
- }
- }
-}
diff --git a/wicket-experimental/wicket-http2/wicket-http2-jetty/src/main/resources/META-INF/services/org.apache.wicket.IInitializer b/wicket-experimental/wicket-http2/wicket-http2-jetty/src/main/resources/META-INF/services/org.apache.wicket.IInitializer
deleted file mode 100644
index 5fb7d70..0000000
--- a/wicket-experimental/wicket-http2/wicket-http2-jetty/src/main/resources/META-INF/services/org.apache.wicket.IInitializer
+++ /dev/null
@@ -1 +0,0 @@
-org.apache.wicket.http2.markup.head.jetty.Initializer
diff --git a/wicket-experimental/wicket-http2/wicket-http2-jetty/src/test/java/org/apache/wicket/util/license/ApacheLicenceHeaderTest.java b/wicket-experimental/wicket-http2/wicket-http2-jetty/src/test/java/org/apache/wicket/util/license/ApacheLicenceHeaderTest.java
deleted file mode 100644
index 7efc3af..0000000
--- a/wicket-experimental/wicket-http2/wicket-http2-jetty/src/test/java/org/apache/wicket/util/license/ApacheLicenceHeaderTest.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.wicket.util.license;
-
-/**
- * Test that the license headers are in place in this project. The tests are run from
- * {@link ApacheLicenseHeaderTestCase}, but you can add project specific tests here if needed.
- *
- * @author Frank Bille Jensen (frankbille)
- */
-public class ApacheLicenceHeaderTest extends ApacheLicenseHeaderTestCase
-{
- /**
- * Construct.
- */
- public ApacheLicenceHeaderTest()
- {
- // addHeaders = true;
- }
-}
diff --git a/wicket-experimental/wicket-http2/wicket-http2-servlet4/pom.xml b/wicket-experimental/wicket-http2/wicket-http2-servlet4/pom.xml
deleted file mode 100644
index 39cd579..0000000
--- a/wicket-experimental/wicket-http2/wicket-http2-servlet4/pom.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.apache.wicket.experimental.wicket9</groupId>
- <artifactId>wicket-http2</artifactId>
- <version>0.25-SNAPSHOT</version>
- <relativePath>../pom.xml</relativePath>
- </parent>
- <artifactId>wicket-http2-servlet4</artifactId>
- <packaging>bundle</packaging>
- <name>Wicket Http/2 Servlet 4</name>
- <description>
- Wicket’s implementation to use the PushBuilder API
- to serve resource via http/2 with less requests. This
- is the Servlet 4 implementation to resolve the PushBuilder API and
- provide the IInitializer.
- </description>
-
- <properties>
- <automatic-module-name>org.apache.wicket.http2.servlet4</automatic-module-name>
- </properties>
-
- <dependencies>
- <dependency>
- <groupId>jakarta.servlet</groupId>
- <artifactId>jakarta.servlet-api</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.wicket.experimental.wicket9</groupId>
- <artifactId>wicket-http2-core</artifactId>
- </dependency>
- </dependencies>
-</project>
diff --git a/wicket-experimental/wicket-http2/wicket-http2-servlet4/src/main/java/org/apache/wicket/http2/markup/head/servlet4/Initializer.java b/wicket-experimental/wicket-http2/wicket-http2-servlet4/src/main/java/org/apache/wicket/http2/markup/head/servlet4/Initializer.java
deleted file mode 100644
index 172e27b..0000000
--- a/wicket-experimental/wicket-http2/wicket-http2-servlet4/src/main/java/org/apache/wicket/http2/markup/head/servlet4/Initializer.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.wicket.http2.markup.head.servlet4;
-
-import org.apache.wicket.Application;
-import org.apache.wicket.IInitializer;
-import org.apache.wicket.http2.Http2Settings;
-
-/**
- * Initializes the servlet 4 specific push builder API and makes it available through the HTTP2
- * settings
- */
-public class Initializer implements IInitializer
-{
- /**
- * Initializes the push builder API of Servlet 4
- */
- @Override
- public void init(Application application)
- {
- Http2Settings http2Settings = Http2Settings.Holder.get(application);
- http2Settings.setPushBuilder(new Servlet4PushBuilder());
- }
-
- @Override
- public void destroy(Application application)
- {
- // NOOP
- }
-}
diff --git a/wicket-experimental/wicket-http2/wicket-http2-servlet4/src/main/resources/META-INF/services/org.apache.wicket.IInitializer b/wicket-experimental/wicket-http2/wicket-http2-servlet4/src/main/resources/META-INF/services/org.apache.wicket.IInitializer
deleted file mode 100644
index 644ee65..0000000
--- a/wicket-experimental/wicket-http2/wicket-http2-servlet4/src/main/resources/META-INF/services/org.apache.wicket.IInitializer
+++ /dev/null
@@ -1 +0,0 @@
-org.apache.wicket.http2.markup.head.servlet4.Initializer
diff --git a/wicket-experimental/wicket-http2/wicket-http2-servlet4/src/test/java/org/apache/wicket/util/license/ApacheLicenceHeaderTest.java b/wicket-experimental/wicket-http2/wicket-http2-servlet4/src/test/java/org/apache/wicket/util/license/ApacheLicenceHeaderTest.java
deleted file mode 100644
index 7efc3af..0000000
--- a/wicket-experimental/wicket-http2/wicket-http2-servlet4/src/test/java/org/apache/wicket/util/license/ApacheLicenceHeaderTest.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.wicket.util.license;
-
-/**
- * Test that the license headers are in place in this project. The tests are run from
- * {@link ApacheLicenseHeaderTestCase}, but you can add project specific tests here if needed.
- *
- * @author Frank Bille Jensen (frankbille)
- */
-public class ApacheLicenceHeaderTest extends ApacheLicenseHeaderTestCase
-{
- /**
- * Construct.
- */
- public ApacheLicenceHeaderTest()
- {
- // addHeaders = true;
- }
-}
diff --git a/wicket-experimental/wicket-http2/wicket-http2-tomcat/pom.xml b/wicket-experimental/wicket-http2/wicket-http2-tomcat/pom.xml
deleted file mode 100644
index 5ae51bd..0000000
--- a/wicket-experimental/wicket-http2/wicket-http2-tomcat/pom.xml
+++ /dev/null
@@ -1,61 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.apache.wicket.experimental.wicket9</groupId>
- <artifactId>wicket-http2</artifactId>
- <version>0.25-SNAPSHOT</version>
- <relativePath>../pom.xml</relativePath>
- </parent>
- <artifactId>wicket-http2-tomcat</artifactId>
- <packaging>bundle</packaging>
- <name>Wicket Http/2 Tomcat 8.5+</name>
- <description>
- Wicket’s implementation to use the PushBuilder API
- to serve resource via http/2 with less requests. This
- is the Apache Tomcat 8.5+ implementation to resolve the PushBuilder API and
- provide the IInitializer.
- </description>
-
- <properties>
- <automatic-module-name>org.apache.wicket.http2.tomcat</automatic-module-name>
- </properties>
-
- <dependencyManagement>
- <dependencies>
- <dependency>
- <groupId>org.apache.tomcat</groupId>
- <artifactId>tomcat-catalina</artifactId>
- <version>8.5.51</version>
- <scope>provided</scope>
- </dependency>
- </dependencies>
- </dependencyManagement>
-
- <dependencies>
- <dependency>
- <groupId>org.apache.tomcat</groupId>
- <artifactId>tomcat-catalina</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.wicket.experimental.wicket9</groupId>
- <artifactId>wicket-http2-core</artifactId>
- </dependency>
- </dependencies>
-</project>
diff --git a/wicket-experimental/wicket-http2/wicket-http2-tomcat/src/main/java/org/apache/wicket/http2/markup/head/tomcat/Initializer.java b/wicket-experimental/wicket-http2/wicket-http2-tomcat/src/main/java/org/apache/wicket/http2/markup/head/tomcat/Initializer.java
deleted file mode 100644
index 76373c9..0000000
--- a/wicket-experimental/wicket-http2/wicket-http2-tomcat/src/main/java/org/apache/wicket/http2/markup/head/tomcat/Initializer.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.wicket.http2.markup.head.tomcat;
-
-import org.apache.wicket.Application;
-import org.apache.wicket.IInitializer;
-import org.apache.wicket.http2.Http2Settings;
-
-/**
- * Initializes the tomcat specific push builder API and makes it available through the HTTP2
- * settings
- */
-public class Initializer implements IInitializer
-{
- /**
- * Initializes the push builder API of tomcat
- */
- @Override
- public void init(Application application)
- {
- Http2Settings http2Settings = Http2Settings.Holder.get(application);
- http2Settings.setPushBuilder(new Tomcat85PushBuilder());
- }
-
- @Override
- public void destroy(Application application)
- {
- // NOOP
- }
-}
diff --git a/wicket-experimental/wicket-http2/wicket-http2-tomcat/src/main/java/org/apache/wicket/http2/markup/head/tomcat/Tomcat85PushBuilder.java b/wicket-experimental/wicket-http2/wicket-http2-tomcat/src/main/java/org/apache/wicket/http2/markup/head/tomcat/Tomcat85PushBuilder.java
deleted file mode 100644
index b5e9a1e..0000000
--- a/wicket-experimental/wicket-http2/wicket-http2-tomcat/src/main/java/org/apache/wicket/http2/markup/head/tomcat/Tomcat85PushBuilder.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.wicket.http2.markup.head.tomcat;
-
-import jakarta.servlet.http.HttpServletRequest;
-
-import org.apache.catalina.core.ApplicationPushBuilder;
-import org.apache.wicket.http2.markup.head.PushBuilder;
-import org.apache.wicket.http2.markup.head.PushItem;
-import org.apache.wicket.http2.markup.head.PushItemHeaderValue;
-import org.apache.wicket.http2.markup.head.PushItemHeaderValue.HeaderOperation;
-import org.apache.wicket.request.Request;
-import org.apache.wicket.request.cycle.RequestCycle;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Allows to push resources with the Tomcat 8.5+ specific push builder API
- */
-public class Tomcat85PushBuilder implements PushBuilder
-{
- private static final Logger LOG = LoggerFactory.getLogger(Tomcat85PushBuilder.class);
-
- @Override
- public void push(HttpServletRequest httpServletRequest, PushItem... pushItems)
- {
- Request request = RequestCycle.get().getRequest();
- HttpServletRequest httpRequest = (HttpServletRequest) request.getContainerRequest();
- org.apache.catalina.connector.RequestFacade tomcatRequest = (org.apache.catalina.connector.RequestFacade) httpRequest;
- ApplicationPushBuilder pushBuilder = (ApplicationPushBuilder) tomcatRequest.newPushBuilder();
- if (pushBuilder != null)
- {
- for (PushItem pushItem : pushItems)
- {
- pushBuilder.path(pushItem.getUrl());
- pushItem.getHeaders().entrySet().stream().forEach(pushHeader -> {
- String key = pushHeader.getKey();
- PushItemHeaderValue value = pushHeader.getValue();
- if(value.getOperation() == HeaderOperation.ADD){
- pushBuilder.addHeader(key, value.getValue());
- }else{
- pushBuilder.setHeader(key, value.getValue());
- }
- });
- pushBuilder.push();
- }
- }
- else
- {
- LOG.warn("Attempted to use HTTP2 Push but it is not supported for the current request: {}!",
- httpRequest);
- }
- }
-}
diff --git a/wicket-experimental/wicket-http2/wicket-http2-tomcat/src/main/resources/META-INF/services/org.apache.wicket.IInitializer b/wicket-experimental/wicket-http2/wicket-http2-tomcat/src/main/resources/META-INF/services/org.apache.wicket.IInitializer
deleted file mode 100644
index 87b9d76..0000000
--- a/wicket-experimental/wicket-http2/wicket-http2-tomcat/src/main/resources/META-INF/services/org.apache.wicket.IInitializer
+++ /dev/null
@@ -1 +0,0 @@
-org.apache.wicket.http2.markup.head.tomcat.Initializer
diff --git a/wicket-experimental/wicket-http2/wicket-http2-tomcat/src/test/java/org/apache/wicket/util/license/ApacheLicenceHeaderTest.java b/wicket-experimental/wicket-http2/wicket-http2-tomcat/src/test/java/org/apache/wicket/util/license/ApacheLicenceHeaderTest.java
deleted file mode 100644
index 7efc3af..0000000
--- a/wicket-experimental/wicket-http2/wicket-http2-tomcat/src/test/java/org/apache/wicket/util/license/ApacheLicenceHeaderTest.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.wicket.util.license;
-
-/**
- * Test that the license headers are in place in this project. The tests are run from
- * {@link ApacheLicenseHeaderTestCase}, but you can add project specific tests here if needed.
- *
- * @author Frank Bille Jensen (frankbille)
- */
-public class ApacheLicenceHeaderTest extends ApacheLicenseHeaderTestCase
-{
- /**
- * Construct.
- */
- public ApacheLicenceHeaderTest()
- {
- // addHeaders = true;
- }
-}
diff --git a/wicket-experimental/wicket-http2/wicket-http2-undertow/pom.xml b/wicket-experimental/wicket-http2/wicket-http2-undertow/pom.xml
deleted file mode 100644
index 7826ddd..0000000
--- a/wicket-experimental/wicket-http2/wicket-http2-undertow/pom.xml
+++ /dev/null
@@ -1,61 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.apache.wicket.experimental.wicket9</groupId>
- <artifactId>wicket-http2</artifactId>
- <version>0.25-SNAPSHOT</version>
- <relativePath>../pom.xml</relativePath>
- </parent>
- <artifactId>wicket-http2-undertow</artifactId>
- <packaging>bundle</packaging>
- <name>Wicket Http/2 Undertow 2+</name>
- <description>
- Wicket’s implementation to use the PushBuilder API
- to serve resource via http/2 with less requests. This
- is the Undertow 2+ implementation to resolve the PushBuilder API and
- provide the IInitializer.
- </description>
-
- <properties>
- <automatic-module-name>org.apache.wicket.http2.undertow</automatic-module-name>
- </properties>
-
- <dependencyManagement>
- <dependencies>
- <dependency>
- <groupId>io.undertow</groupId>
- <artifactId>undertow-servlet</artifactId>
- <version>2.0.29.Final</version>
- <scope>provided</scope>
- </dependency>
- </dependencies>
- </dependencyManagement>
-
- <dependencies>
- <dependency>
- <groupId>io.undertow</groupId>
- <artifactId>undertow-servlet</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.wicket.experimental.wicket9</groupId>
- <artifactId>wicket-http2-core</artifactId>
- </dependency>
- </dependencies>
-</project>
diff --git a/wicket-experimental/wicket-http2/wicket-http2-undertow/src/main/java/org/apache/wicket/http2/markup/head/undertow/Initializer.java b/wicket-experimental/wicket-http2/wicket-http2-undertow/src/main/java/org/apache/wicket/http2/markup/head/undertow/Initializer.java
deleted file mode 100644
index 4d95930..0000000
--- a/wicket-experimental/wicket-http2/wicket-http2-undertow/src/main/java/org/apache/wicket/http2/markup/head/undertow/Initializer.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.wicket.http2.markup.head.undertow;
-
-import org.apache.wicket.Application;
-import org.apache.wicket.IInitializer;
-import org.apache.wicket.http2.Http2Settings;
-
-/**
- * Initializes the undertow specific push builder API and makes it available through the http2
- * settings
- *
- * @author Tobias Soloschenko
- */
-public class Initializer implements IInitializer
-{
- /**
- * Initializes the push builder API of undertow
- */
- @Override
- public void init(Application application)
- {
- Http2Settings http2Settings = Http2Settings.Holder.get(application);
- http2Settings.setPushBuilder(new UndertowPushBuilder());
- }
-
- @Override
- public void destroy(Application application)
- {
- // NOOP
- }
-}
diff --git a/wicket-experimental/wicket-http2/wicket-http2-undertow/src/main/java/org/apache/wicket/http2/markup/head/undertow/UndertowPushBuilder.java b/wicket-experimental/wicket-http2/wicket-http2-undertow/src/main/java/org/apache/wicket/http2/markup/head/undertow/UndertowPushBuilder.java
deleted file mode 100644
index abf6738..0000000
--- a/wicket-experimental/wicket-http2/wicket-http2-undertow/src/main/java/org/apache/wicket/http2/markup/head/undertow/UndertowPushBuilder.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.wicket.http2.markup.head.undertow;
-
-import jakarta.servlet.http.HttpServletRequest;
-
-import org.apache.wicket.http2.markup.head.PushBuilder;
-import org.apache.wicket.http2.markup.head.PushItem;
-import org.apache.wicket.http2.markup.head.PushItemHeaderValue;
-import org.apache.wicket.http2.markup.head.PushItemHeaderValue.HeaderOperation;
-import org.apache.wicket.request.Request;
-import org.apache.wicket.request.cycle.RequestCycle;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Allows to push resources with the Undertow 2+ specific push builder API
- *
- * @author Tobias Soloschenko
- */
-public class UndertowPushBuilder implements PushBuilder
-{
- private static final Logger LOG = LoggerFactory.getLogger(UndertowPushBuilder.class);
-
- @Override
- public void push(HttpServletRequest httpServletRequest, PushItem... pushItems)
- {
- Request request = RequestCycle.get().getRequest();
- HttpServletRequest httpRequest = (HttpServletRequest) request.getContainerRequest();
- // FIXME Wicket 10
- io.undertow.servlet.spec.HttpServletRequestImpl undertowRequest = null;// (io.undertow.servlet.spec.HttpServletRequestImpl) httpRequest;
- // Added explicit cast here to ensure this is the implementation of undertow
- io.undertow.servlet.spec.PushBuilderImpl pushBuilder = (io.undertow.servlet.spec.PushBuilderImpl)undertowRequest.newPushBuilder();
- if (pushBuilder != null)
- {
- for (PushItem pushItem : pushItems)
- {
- pushBuilder.path(pushItem.getUrl());
- pushItem.getHeaders().entrySet().stream().forEach(pushHeader -> {
- String key = pushHeader.getKey();
- PushItemHeaderValue value = pushHeader.getValue();
- if(value.getOperation() == HeaderOperation.ADD){
- pushBuilder.addHeader(key, value.getValue());
- }else{
- pushBuilder.setHeader(key, value.getValue());
- }
- });
- pushBuilder.push();
- }
- }
- else
- {
- LOG.warn("Attempted to use HTTP2 Push but it is not supported for the current request: {}!",
- httpRequest);
- }
- }
-}
diff --git a/wicket-experimental/wicket-http2/wicket-http2-undertow/src/main/resources/META-INF/services/org.apache.wicket.IInitializer b/wicket-experimental/wicket-http2/wicket-http2-undertow/src/main/resources/META-INF/services/org.apache.wicket.IInitializer
deleted file mode 100644
index 052174b..0000000
--- a/wicket-experimental/wicket-http2/wicket-http2-undertow/src/main/resources/META-INF/services/org.apache.wicket.IInitializer
+++ /dev/null
@@ -1 +0,0 @@
-org.apache.wicket.http2.markup.head.undertow.Initializer
diff --git a/wicket-experimental/wicket-http2/wicket-http2-undertow/src/test/java/org/apache/wicket/util/license/ApacheLicenceHeaderTest.java b/wicket-experimental/wicket-http2/wicket-http2-undertow/src/test/java/org/apache/wicket/util/license/ApacheLicenceHeaderTest.java
deleted file mode 100644
index 7efc3af..0000000
--- a/wicket-experimental/wicket-http2/wicket-http2-undertow/src/test/java/org/apache/wicket/util/license/ApacheLicenceHeaderTest.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.wicket.util.license;
-
-/**
- * Test that the license headers are in place in this project. The tests are run from
- * {@link ApacheLicenseHeaderTestCase}, but you can add project specific tests here if needed.
- *
- * @author Frank Bille Jensen (frankbille)
- */
-public class ApacheLicenceHeaderTest extends ApacheLicenseHeaderTestCase
-{
- /**
- * Construct.
- */
- public ApacheLicenceHeaderTest()
- {
- // addHeaders = true;
- }
-}