You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by di...@apache.org on 2006/05/02 08:03:08 UTC

svn commit: r398820 - in /webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http: AxisServlet.java TransportHeaders.java

Author: dims
Date: Mon May  1 23:03:00 2006
New Revision: 398820

URL: http://svn.apache.org/viewcvs?rev=398820&view=rev
Log:
delay enumerating the transport headers till someone needs it

Added:
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/TransportHeaders.java
Modified:
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/AxisServlet.java

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/AxisServlet.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/AxisServlet.java?rev=398820&r1=398819&r2=398820&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/AxisServlet.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/AxisServlet.java Mon May  1 23:03:00 2006
@@ -245,17 +245,7 @@
     }
 
     protected Map getTransportHeaders(HttpServletRequest req) {
-        HashMap headerMap = new HashMap();
-        Enumeration headerNames = req.getHeaderNames();
-
-        while (headerNames.hasMoreElements()) {
-            String key = (String) headerNames.nextElement();
-            String value = req.getHeader(key);
-
-            headerMap.put(key, value);
-        }
-
-        return headerMap;
+        return new TransportHeaders(req);
     }
 
     /**

Added: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/TransportHeaders.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/TransportHeaders.java?rev=398820&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/TransportHeaders.java (added)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/TransportHeaders.java Mon May  1 23:03:00 2006
@@ -0,0 +1,131 @@
+/*
+* Copyright 2004,2005 The Apache Software Foundation.
+*
+* Licensed 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.axis2.transport.http;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Collection;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * Pass-Thru / delayed get of the values from HttpServletRequest
+ */
+public class TransportHeaders implements Map {
+    HttpServletRequest req;
+    HashMap headerMap = null;
+
+    public TransportHeaders(HttpServletRequest req) {
+        this.req = req;
+    }
+
+    private void init() {
+        headerMap = new HashMap();
+        Enumeration headerNames = req.getHeaderNames();
+
+        while (headerNames.hasMoreElements()) {
+            String key = (String) headerNames.nextElement();
+            String value = req.getHeader(key);
+
+            headerMap.put(key, value);
+        }
+    }
+
+    public int size() {
+        if (headerMap == null) {
+            init();
+        }
+        return headerMap.size();
+    }
+
+    public void clear() {
+        if (headerMap != null) {
+            headerMap.clear();
+        }
+    }
+
+    public boolean isEmpty() {
+        if (headerMap == null) {
+            init();
+        }
+        return headerMap.isEmpty();
+    }
+
+    public boolean containsKey(Object key) {
+        if (headerMap == null) {
+            init();
+        }
+        return headerMap.containsKey(key);
+    }
+
+    public boolean containsValue(Object value) {
+        if (headerMap == null) {
+            init();
+        }
+        return headerMap.containsValue(value);
+    }
+
+    public Collection values() {
+        if (headerMap == null) {
+            init();
+        }
+        return headerMap.values();
+    }
+
+    public void putAll(Map t) {
+        if (headerMap == null) {
+            init();
+        }
+        headerMap.putAll(t);
+    }
+
+    public Set entrySet() {
+        if (headerMap == null) {
+            init();
+        }
+        return headerMap.entrySet();
+    }
+
+    public Set keySet() {
+        if (headerMap == null) {
+            init();
+        }
+        return headerMap.entrySet();
+    }
+
+    public Object get(Object key) {
+        if (headerMap == null) {
+            init();
+        }
+        return headerMap.get(key);
+    }
+
+    public Object remove(Object key) {
+        if (headerMap == null) {
+            init();
+        }
+        return headerMap.remove(key);
+    }
+
+    public Object put(Object key, Object value) {
+        if (headerMap == null) {
+            init();
+        }
+        return headerMap.put(key, value);
+    }
+}