Author: markt
Date: Wed Oct 14 21:38:29 2015
New Revision: 1708698
URL: http://svn.apache.org/viewvc?rev=1708698&view=rev
Log:
Servlet 4.0
Add the header reading methods to PushBuilder and implement them
Note the headers are currently unused.
Modified:
tomcat/trunk/java/javax/servlet/http/PushBuilder.java
tomcat/trunk/java/org/apache/catalina/core/ApplicationPushBuilder.java
Modified: tomcat/trunk/java/javax/servlet/http/PushBuilder.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/javax/servlet/http/PushBuilder.java?rev=1708698&r1=1708697&r2=1708698&view=diff
==============================================================================
--- tomcat/trunk/java/javax/servlet/http/PushBuilder.java (original)
+++ tomcat/trunk/java/javax/servlet/http/PushBuilder.java Wed Oct 14 21:38:29
2015
@@ -16,6 +16,8 @@
*/
package javax.servlet.http;
+import java.util.Set;
+
/**
* Builds a push request based on the {@link HttpServletRequest} from which
this
* builder was obtained. The push request will be constructed on the following
@@ -89,4 +91,22 @@ public interface PushBuilder {
* @return This builder instance
*/
PushBuilder removeHeader(String name);
+
+ /**
+ * @return The current set of names of HTTP headers to be used the next
time
+ * {@code push()} is called.
+ */
+ Set<String> getHeaderNames();
+
+ /**
+ * Obtain a value for the given HTTP header.
+ * TODO Servlet 4.0
+ * Clarify the behaviour of this method
+ *
+ * @param name The name of the header whose value is to be returned
+ *
+ * @return The value of the given header. If multiple values are defined
+ * then any may be returned
+ */
+ String getHeader(String name);
}
Modified: tomcat/trunk/java/org/apache/catalina/core/ApplicationPushBuilder.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/ApplicationPushBuilder.java?rev=1708698&r1=1708697&r2=1708698&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/core/ApplicationPushBuilder.java
(original)
+++ tomcat/trunk/java/org/apache/catalina/core/ApplicationPushBuilder.java Wed
Oct 14 21:38:29 2015
@@ -17,10 +17,12 @@
package org.apache.catalina.core;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import javax.servlet.ServletRequest;
import javax.servlet.ServletRequestWrapper;
@@ -125,6 +127,23 @@ public class ApplicationPushBuilder impl
@Override
+ public Set<String> getHeaderNames() {
+ return Collections.unmodifiableSet(headers.keySet());
+ }
+
+
+ @Override
+ public String getHeader(String name) {
+ List<String> values = headers.get(name);
+ if (values == null) {
+ return null;
+ } else {
+ return values.get(0);
+ }
+ }
+
+
+ @Override
public void push() {
if (path == null) {
throw new
IllegalStateException(sm.getString("pushBuilder.noPath"));
@@ -141,6 +160,8 @@ public class ApplicationPushBuilder impl
pushTarget.requestURI().setString(path);
pushTarget.decodedURI().setString(path);
+ // TODO Copy headers
+ // TODO Implement other required attributes
// TODO Copy across / set other required attributes
coyoteRequest.action(ActionCode.PUSH_REQUEST, pushTarget);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]