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