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 58fb230262e040aac12ae7629daf9d9e64b787b5 Author: Carsten Ziegeler <[email protected]> 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(); + } +}
