You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by cz...@apache.org on 2022/01/04 08:56:11 UTC
[felix-dev] 04/09: Add servlet 4.0 methods
This is an automated email from the ASF dual-hosted git repository.
cziegeler pushed a commit to branch http/jakarta
in repository https://gitbox.apache.org/repos/asf/felix-dev.git
commit a9bd6a8cf9530cbde7af6a5379ba896b16d80401
Author: Carsten Ziegeler <cz...@adobe.com>
AuthorDate: Mon Jan 3 07:13:22 2022 +0100
Add servlet 4.0 methods
---
.../jakartawrappers/HttpServletRequestWrapper.java | 27 +++++
.../jakartawrappers/PushBuilderWrapper.java | 116 +++++++++++++++++++++
.../javaxwrappers/HttpServletRequestWrapper.java | 26 +++++
.../internal/javaxwrappers/PushBuilderWrapper.java | 116 +++++++++++++++++++++
4 files changed, 285 insertions(+)
diff --git a/http/base/src/main/java/org/apache/felix/http/base/internal/jakartawrappers/HttpServletRequestWrapper.java b/http/base/src/main/java/org/apache/felix/http/base/internal/jakartawrappers/HttpServletRequestWrapper.java
index b9dd3cc..35cc59f 100644
--- a/http/base/src/main/java/org/apache/felix/http/base/internal/jakartawrappers/HttpServletRequestWrapper.java
+++ b/http/base/src/main/java/org/apache/felix/http/base/internal/jakartawrappers/HttpServletRequestWrapper.java
@@ -22,16 +22,19 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.Enumeration;
import java.util.List;
+import java.util.Map;
import org.jetbrains.annotations.NotNull;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.Cookie;
+import jakarta.servlet.http.HttpServletMapping;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpSession;
import jakarta.servlet.http.HttpUpgradeHandler;
import jakarta.servlet.http.Part;
+import jakarta.servlet.http.PushBuilder;
/**
* Http servlet request wrapper
@@ -238,4 +241,28 @@ public class HttpServletRequestWrapper extends ServletRequestWrapper
public <T extends HttpUpgradeHandler> T upgrade(final Class<T> handlerClass) throws IOException, ServletException {
throw new UnsupportedOperationException();
}
+
+ @Override
+ public HttpServletMapping getHttpServletMapping() {
+ return new HttpServletMappingWrapper(this.request.getHttpServletMapping());
+ }
+
+ @Override
+ public PushBuilder newPushBuilder() {
+ final javax.servlet.http.PushBuilder builder = this.request.newPushBuilder();
+ if ( builder != null ) {
+ return new PushBuilderWrapper(builder);
+ }
+ return null;
+ }
+
+ @Override
+ public Map<String, String> getTrailerFields() {
+ return this.request.getTrailerFields();
+ }
+
+ @Override
+ public boolean isTrailerFieldsReady() {
+ return this.request.isTrailerFieldsReady();
+ }
}
diff --git a/http/base/src/main/java/org/apache/felix/http/base/internal/jakartawrappers/PushBuilderWrapper.java b/http/base/src/main/java/org/apache/felix/http/base/internal/jakartawrappers/PushBuilderWrapper.java
new file mode 100644
index 0000000..97f2c89
--- /dev/null
+++ b/http/base/src/main/java/org/apache/felix/http/base/internal/jakartawrappers/PushBuilderWrapper.java
@@ -0,0 +1,116 @@
+/*
+ * 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.felix.http.base.internal.jakartawrappers;
+
+import java.util.Set;
+
+import org.jetbrains.annotations.NotNull;
+
+import jakarta.servlet.http.PushBuilder;
+
+/**
+ * Push builder wrapper
+ */
+public class PushBuilderWrapper implements PushBuilder {
+
+ private final javax.servlet.http.PushBuilder builder;
+
+ /**
+ * Create new wrapper
+ * @param c Wrapped builder
+ */
+ public PushBuilderWrapper(@NotNull final javax.servlet.http.PushBuilder c) {
+ this.builder = c;
+ }
+
+ @Override
+ public PushBuilder method(final String method) {
+ this.builder.method(method);
+ return this;
+ }
+
+ @Override
+ public PushBuilder queryString(final String queryString) {
+ this.builder.queryString(queryString);
+ return this;
+ }
+
+ @Override
+ public PushBuilder sessionId(final String sessionId) {
+ this.builder.sessionId(sessionId);
+ return this;
+ }
+
+ @Override
+ public PushBuilder setHeader(final String name, final String value) {
+ this.builder.setHeader(name, value);
+ return this;
+ }
+
+ @Override
+ public PushBuilder addHeader(final String name, final String value) {
+ this.builder.addHeader(name, value);
+ return this;
+ }
+
+ @Override
+ public PushBuilder removeHeader(final String name) {
+ this.builder.removeHeader(name);
+ return this;
+ }
+
+ @Override
+ public PushBuilder path(final String path) {
+ this.builder.path(path);
+ return this;
+ }
+
+ @Override
+ public void push() {
+ this.builder.push();
+ }
+
+ @Override
+ public String getMethod() {
+ return this.builder.getMethod();
+ }
+
+ @Override
+ public String getQueryString() {
+ return this.builder.getQueryString();
+ }
+
+ @Override
+ public String getSessionId() {
+ return this.builder.getSessionId();
+ }
+
+ @Override
+ public Set<String> getHeaderNames() {
+ return this.builder.getHeaderNames();
+ }
+
+ @Override
+ public String getHeader(final String name) {
+ return this.builder.getHeader(name);
+ }
+
+ @Override
+ public String getPath() {
+ return this.builder.getPath();
+ }
+}
diff --git a/http/base/src/main/java/org/apache/felix/http/base/internal/javaxwrappers/HttpServletRequestWrapper.java b/http/base/src/main/java/org/apache/felix/http/base/internal/javaxwrappers/HttpServletRequestWrapper.java
index 8d4e5ce..801f323 100644
--- a/http/base/src/main/java/org/apache/felix/http/base/internal/javaxwrappers/HttpServletRequestWrapper.java
+++ b/http/base/src/main/java/org/apache/felix/http/base/internal/javaxwrappers/HttpServletRequestWrapper.java
@@ -22,6 +22,7 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.Enumeration;
import java.util.List;
+import java.util.Map;
import org.jetbrains.annotations.NotNull;
@@ -29,6 +30,7 @@ import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpSession;
import jakarta.servlet.http.Part;
+import jakarta.servlet.http.PushBuilder;
/**
* Http servlet request wrapper
@@ -235,4 +237,28 @@ public class HttpServletRequestWrapper extends ServletRequestWrapper
public <T extends javax.servlet.http.HttpUpgradeHandler> T upgrade(final Class<T> handlerClass) throws IOException, javax.servlet.ServletException {
throw new UnsupportedOperationException();
}
+
+ @Override
+ public javax.servlet.http.HttpServletMapping getHttpServletMapping() {
+ return new HttpServletMappingWrapper(this.request.getHttpServletMapping());
+ }
+
+ @Override
+ public javax.servlet.http.PushBuilder newPushBuilder() {
+ final PushBuilder builder = this.request.newPushBuilder();
+ if ( builder != null ) {
+ return new PushBuilderWrapper(builder);
+ }
+ return null;
+ }
+
+ @Override
+ public Map<String, String> getTrailerFields() {
+ return this.request.getTrailerFields();
+ }
+
+ @Override
+ public boolean isTrailerFieldsReady() {
+ return this.request.isTrailerFieldsReady();
+ }
}
diff --git a/http/base/src/main/java/org/apache/felix/http/base/internal/javaxwrappers/PushBuilderWrapper.java b/http/base/src/main/java/org/apache/felix/http/base/internal/javaxwrappers/PushBuilderWrapper.java
new file mode 100644
index 0000000..88951fc
--- /dev/null
+++ b/http/base/src/main/java/org/apache/felix/http/base/internal/javaxwrappers/PushBuilderWrapper.java
@@ -0,0 +1,116 @@
+/*
+ * 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.felix.http.base.internal.javaxwrappers;
+
+import java.util.Set;
+
+import org.jetbrains.annotations.NotNull;
+
+import jakarta.servlet.http.PushBuilder;
+
+/**
+ * Push builder wrapper
+ */
+public class PushBuilderWrapper implements javax.servlet.http.PushBuilder {
+
+ private final PushBuilder builder;
+
+ /**
+ * Create new wrapper
+ * @param c Wrapped builder
+ */
+ public PushBuilderWrapper(@NotNull final PushBuilder c) {
+ this.builder = c;
+ }
+
+ @Override
+ public javax.servlet.http.PushBuilder method(final String method) {
+ this.builder.method(method);
+ return this;
+ }
+
+ @Override
+ public javax.servlet.http.PushBuilder queryString(final String queryString) {
+ this.builder.queryString(queryString);
+ return this;
+ }
+
+ @Override
+ public javax.servlet.http.PushBuilder sessionId(final String sessionId) {
+ this.builder.sessionId(sessionId);
+ return this;
+ }
+
+ @Override
+ public javax.servlet.http.PushBuilder setHeader(final String name, final String value) {
+ this.builder.setHeader(name, value);
+ return this;
+ }
+
+ @Override
+ public javax.servlet.http.PushBuilder addHeader(final String name, final String value) {
+ this.builder.addHeader(name, value);
+ return this;
+ }
+
+ @Override
+ public javax.servlet.http.PushBuilder removeHeader(final String name) {
+ this.builder.removeHeader(name);
+ return this;
+ }
+
+ @Override
+ public javax.servlet.http.PushBuilder path(final String path) {
+ this.builder.path(path);
+ return this;
+ }
+
+ @Override
+ public void push() {
+ this.builder.push();
+ }
+
+ @Override
+ public String getMethod() {
+ return this.builder.getMethod();
+ }
+
+ @Override
+ public String getQueryString() {
+ return this.builder.getQueryString();
+ }
+
+ @Override
+ public String getSessionId() {
+ return this.builder.getSessionId();
+ }
+
+ @Override
+ public Set<String> getHeaderNames() {
+ return this.builder.getHeaderNames();
+ }
+
+ @Override
+ public String getHeader(final String name) {
+ return this.builder.getHeader(name);
+ }
+
+ @Override
+ public String getPath() {
+ return this.builder.getPath();
+ }
+}