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/02/20 10:07:17 UTC

[felix-dev] 04/19: 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 270fc290356f457d6c3539b61f77852769d06655
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();
+    }
+}