You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2015/10/10 00:42:52 UTC
svn commit: r1707827 - in /tomcat/trunk: java/javax/servlet/http/
java/org/apache/catalina/connector/ java/org/apache/catalina/core/
java/org/apache/catalina/filters/ test/org/apache/catalina/filters/
Author: markt
Date: Fri Oct 9 22:42:51 2015
New Revision: 1707827
URL: http://svn.apache.org/viewvc?rev=1707827&view=rev
Log:
Servlet 4.0
Add some PushBuilder plumbing. Doesn't do anything yet.
Added:
tomcat/trunk/java/javax/servlet/http/PushBuilder.java (with props)
Modified:
tomcat/trunk/java/javax/servlet/http/HttpServletRequest.java
tomcat/trunk/java/org/apache/catalina/connector/Request.java
tomcat/trunk/java/org/apache/catalina/connector/RequestFacade.java
tomcat/trunk/java/org/apache/catalina/core/ApplicationHttpRequest.java
tomcat/trunk/java/org/apache/catalina/filters/RemoteIpFilter.java
tomcat/trunk/test/org/apache/catalina/filters/TesterHttpServletRequest.java
Modified: tomcat/trunk/java/javax/servlet/http/HttpServletRequest.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/javax/servlet/http/HttpServletRequest.java?rev=1707827&r1=1707826&r2=1707827&view=diff
==============================================================================
--- tomcat/trunk/java/javax/servlet/http/HttpServletRequest.java (original)
+++ tomcat/trunk/java/javax/servlet/http/HttpServletRequest.java Fri Oct 9 22:42:51 2015
@@ -215,6 +215,21 @@ public interface HttpServletRequest exte
public String getPathTranslated();
/**
+ * Obtain a builder for generating push requests. {@link PushBuilder}
+ * documents how this request will be used as the basis for a push request.
+ * Each call to this method will return a new instance, independent of any
+ * previous instance obtained.
+ *
+ * @return A builder than can be used to generate push requests based on
+ * this request.
+ *
+ * @since Servlet 4.0
+ */
+ public default PushBuilder getPushBuilder() {
+ return null;
+ }
+
+ /**
* Returns the portion of the request URI that indicates the context of the
* request. The context path always comes first in a request URI. The path
* starts with a "/" character but does not end with a "/" character. For
Added: tomcat/trunk/java/javax/servlet/http/PushBuilder.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/javax/servlet/http/PushBuilder.java?rev=1707827&view=auto
==============================================================================
--- tomcat/trunk/java/javax/servlet/http/PushBuilder.java (added)
+++ tomcat/trunk/java/javax/servlet/http/PushBuilder.java Fri Oct 9 22:42:51 2015
@@ -0,0 +1,26 @@
+/*
+* 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 javax.servlet.http;
+
+/**
+ * Builds a push request based on the {@link HttpServletRequest} from which this
+ * builder was obtained.
+ *
+ * @since Servlet 4.0
+ */
+public interface PushBuilder {
+}
Propchange: tomcat/trunk/java/javax/servlet/http/PushBuilder.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: tomcat/trunk/java/org/apache/catalina/connector/Request.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/Request.java?rev=1707827&r1=1707826&r2=1707827&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/connector/Request.java (original)
+++ tomcat/trunk/java/org/apache/catalina/connector/Request.java Fri Oct 9 22:42:51 2015
@@ -16,7 +16,6 @@
*/
package org.apache.catalina.connector;
-
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
@@ -64,6 +63,7 @@ import javax.servlet.http.HttpServletRes
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpUpgradeHandler;
import javax.servlet.http.Part;
+import javax.servlet.http.PushBuilder;
import org.apache.catalina.Context;
import org.apache.catalina.Globals;
@@ -74,6 +74,7 @@ import org.apache.catalina.Session;
import org.apache.catalina.TomcatPrincipal;
import org.apache.catalina.Wrapper;
import org.apache.catalina.core.ApplicationPart;
+import org.apache.catalina.core.ApplicationPushBuilder;
import org.apache.catalina.core.ApplicationSessionCookieConfig;
import org.apache.catalina.core.AsyncContextImpl;
import org.apache.catalina.mapper.MappingData;
@@ -105,15 +106,13 @@ import org.apache.tomcat.util.res.String
import org.ietf.jgss.GSSCredential;
import org.ietf.jgss.GSSException;
-
/**
* Wrapper object for the Coyote request.
*
* @author Remy Maucherat
* @author Craig R. McClanahan
*/
-public class Request
- implements HttpServletRequest {
+public class Request implements HttpServletRequest {
private static final Log log = LogFactory.getLog(Request.class);
@@ -1837,6 +1836,16 @@ public class Request
/**
* {@inheritDoc}
+ *
+ * @since Servlet 4.0
+ */
+ @Override
+ public PushBuilder getPushBuilder() {
+ return new ApplicationPushBuilder(this);
+ }
+
+ /**
+ * {@inheritDoc}
*
* @since Servlet 3.1
*/
Modified: tomcat/trunk/java/org/apache/catalina/connector/RequestFacade.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/RequestFacade.java?rev=1707827&r1=1707826&r2=1707827&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/connector/RequestFacade.java (original)
+++ tomcat/trunk/java/org/apache/catalina/connector/RequestFacade.java Fri Oct 9 22:42:51 2015
@@ -39,6 +39,7 @@ import javax.servlet.http.HttpServletRes
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpUpgradeHandler;
import javax.servlet.http.Part;
+import javax.servlet.http.PushBuilder;
import org.apache.catalina.Globals;
import org.apache.catalina.security.SecurityUtil;
@@ -1112,4 +1113,15 @@ public class RequestFacade implements Ht
Class<T> httpUpgradeHandlerClass) throws java.io.IOException, ServletException {
return request.upgrade(httpUpgradeHandlerClass);
}
+
+
+ /**
+ * {@inheritDoc}
+ *
+ * @since Servlet 4.0
+ */
+ @Override
+ public PushBuilder getPushBuilder() {
+ return request.getPushBuilder();
+ }
}
Modified: tomcat/trunk/java/org/apache/catalina/core/ApplicationHttpRequest.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/ApplicationHttpRequest.java?rev=1707827&r1=1707826&r2=1707827&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/core/ApplicationHttpRequest.java (original)
+++ tomcat/trunk/java/org/apache/catalina/core/ApplicationHttpRequest.java Fri Oct 9 22:42:51 2015
@@ -34,6 +34,7 @@ import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
import javax.servlet.http.HttpSession;
+import javax.servlet.http.PushBuilder;
import org.apache.catalina.Context;
import org.apache.catalina.Globals;
@@ -609,9 +610,14 @@ class ApplicationHttpRequest extends Htt
}
- // -------------------------------------------------------- Package Methods
+ @Override
+ public PushBuilder getPushBuilder() {
+ return new ApplicationPushBuilder(this);
+ }
+ // -------------------------------------------------------- Package Methods
+
/**
* Recycle this request
*/
Modified: tomcat/trunk/java/org/apache/catalina/filters/RemoteIpFilter.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/filters/RemoteIpFilter.java?rev=1707827&r1=1707826&r2=1707827&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/filters/RemoteIpFilter.java (original)
+++ tomcat/trunk/java/org/apache/catalina/filters/RemoteIpFilter.java Fri Oct 9 22:42:51 2015
@@ -42,9 +42,11 @@ import javax.servlet.http.HttpServletReq
import javax.servlet.http.HttpServletRequestWrapper;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletResponseWrapper;
+import javax.servlet.http.PushBuilder;
import org.apache.catalina.AccessLog;
import org.apache.catalina.Globals;
+import org.apache.catalina.core.ApplicationPushBuilder;
import org.apache.juli.logging.Log;
import org.apache.juli.logging.LogFactory;
import org.apache.tomcat.util.res.StringManager;
@@ -621,6 +623,11 @@ public class RemoteIpFilter extends Gene
public void setServerPort(int serverPort) {
this.serverPort = serverPort;
}
+
+ @Override
+ public PushBuilder getPushBuilder() {
+ return new ApplicationPushBuilder(this);
+ }
}
public static class XForwardedResponse extends HttpServletResponseWrapper {
Modified: tomcat/trunk/test/org/apache/catalina/filters/TesterHttpServletRequest.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/filters/TesterHttpServletRequest.java?rev=1707827&r1=1707826&r2=1707827&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/filters/TesterHttpServletRequest.java (original)
+++ tomcat/trunk/test/org/apache/catalina/filters/TesterHttpServletRequest.java Fri Oct 9 22:42:51 2015
@@ -43,6 +43,7 @@ import javax.servlet.http.HttpServletRes
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpUpgradeHandler;
import javax.servlet.http.Part;
+import javax.servlet.http.PushBuilder;
public class TesterHttpServletRequest implements HttpServletRequest {
@@ -66,19 +67,16 @@ public class TesterHttpServletRequest im
@Override
public String getCharacterEncoding() {
-
throw new RuntimeException("Not implemented");
}
@Override
public void setCharacterEncoding(String env)
throws UnsupportedEncodingException {
-
}
@Override
public int getContentLength() {
-
throw new RuntimeException("Not implemented");
}
@@ -93,37 +91,31 @@ public class TesterHttpServletRequest im
@Override
public ServletInputStream getInputStream() throws IOException {
-
throw new RuntimeException("Not implemented");
}
@Override
public String getParameter(String name) {
-
throw new RuntimeException("Not implemented");
}
@Override
public Enumeration<String> getParameterNames() {
-
throw new RuntimeException("Not implemented");
}
@Override
public String[] getParameterValues(String name) {
-
throw new RuntimeException("Not implemented");
}
@Override
public Map<String,String[]> getParameterMap() {
-
throw new RuntimeException("Not implemented");
}
@Override
public String getProtocol() {
-
throw new RuntimeException("Not implemented");
}
@@ -157,19 +149,16 @@ public class TesterHttpServletRequest im
@Override
public BufferedReader getReader() throws IOException {
-
throw new RuntimeException("Not implemented");
}
@Override
public String getRemoteAddr() {
-
throw new RuntimeException("Not implemented");
}
@Override
public String getRemoteHost() {
-
throw new RuntimeException("Not implemented");
}
@@ -185,37 +174,31 @@ public class TesterHttpServletRequest im
@Override
public Locale getLocale() {
-
throw new RuntimeException("Not implemented");
}
@Override
public Enumeration<Locale> getLocales() {
-
throw new RuntimeException("Not implemented");
}
@Override
public boolean isSecure() {
-
throw new RuntimeException("Not implemented");
}
@Override
public RequestDispatcher getRequestDispatcher(String path) {
-
throw new RuntimeException("Not implemented");
}
@Override
public String getRealPath(String path) {
-
throw new RuntimeException("Not implemented");
}
@Override
public int getRemotePort() {
-
throw new RuntimeException("Not implemented");
}
@@ -226,31 +209,26 @@ public class TesterHttpServletRequest im
@Override
public String getLocalAddr() {
-
throw new RuntimeException("Not implemented");
}
@Override
public int getLocalPort() {
-
throw new RuntimeException("Not implemented");
}
@Override
public String getAuthType() {
-
throw new RuntimeException("Not implemented");
}
@Override
public Cookie[] getCookies() {
-
throw new RuntimeException("Not implemented");
}
@Override
public long getDateHeader(String name) {
-
throw new RuntimeException("Not implemented");
}
@@ -272,7 +250,6 @@ public class TesterHttpServletRequest im
@Override
public Enumeration<String> getHeaders(String name) {
-
throw new RuntimeException("Not implemented");
}
@@ -283,7 +260,6 @@ public class TesterHttpServletRequest im
@Override
public int getIntHeader(String name) {
-
throw new RuntimeException("Not implemented");
}
@@ -298,103 +274,86 @@ public class TesterHttpServletRequest im
@Override
public String getPathInfo() {
-
throw new RuntimeException("Not implemented");
}
@Override
public String getPathTranslated() {
-
throw new RuntimeException("Not implemented");
}
@Override
public String getContextPath() {
-
throw new RuntimeException("Not implemented");
}
@Override
public String getQueryString() {
-
throw new RuntimeException("Not implemented");
}
@Override
public String getRemoteUser() {
-
throw new RuntimeException("Not implemented");
}
@Override
public boolean isUserInRole(String role) {
-
throw new RuntimeException("Not implemented");
}
@Override
public Principal getUserPrincipal() {
-
throw new RuntimeException("Not implemented");
}
@Override
public String getRequestedSessionId() {
-
throw new RuntimeException("Not implemented");
}
@Override
public String getRequestURI() {
-
throw new RuntimeException("Not implemented");
}
@Override
public StringBuffer getRequestURL() {
-
throw new RuntimeException("Not implemented");
}
@Override
public String getServletPath() {
-
throw new RuntimeException("Not implemented");
}
@Override
public HttpSession getSession(boolean create) {
-
throw new RuntimeException("Not implemented");
}
@Override
public HttpSession getSession() {
-
throw new RuntimeException("Not implemented");
}
@Override
public boolean isRequestedSessionIdValid() {
-
throw new RuntimeException("Not implemented");
}
@Override
public boolean isRequestedSessionIdFromCookie() {
-
throw new RuntimeException("Not implemented");
}
@Override
public boolean isRequestedSessionIdFromURL() {
-
throw new RuntimeException("Not implemented");
}
@Override
public boolean isRequestedSessionIdFromUrl() {
-
throw new RuntimeException("Not implemented");
}
@@ -477,4 +436,8 @@ public class TesterHttpServletRequest im
throw new RuntimeException("Not implemented");
}
+ @Override
+ public PushBuilder getPushBuilder() {
+ throw new RuntimeException("Not implemented");
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org