You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by jd...@apache.org on 2006/08/27 02:18:32 UTC

svn commit: r437256 [17/23] - in /geronimo/specs/trunk: ./ geronimo-activation_1.0.2_spec/ geronimo-activation_1.0.2_spec/src/main/java/javax/activation/ geronimo-activation_1.0.2_spec/src/test/java/javax/activation/ geronimo-commonj_1.1_spec/ geronimo...

Modified: geronimo/specs/trunk/geronimo-servlet_2.5_spec/src/main/java/javax/servlet/ServletRequestWrapper.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-servlet_2.5_spec/src/main/java/javax/servlet/ServletRequestWrapper.java?rev=437256&r1=437255&r2=437256&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-servlet_2.5_spec/src/main/java/javax/servlet/ServletRequestWrapper.java (original)
+++ geronimo/specs/trunk/geronimo-servlet_2.5_spec/src/main/java/javax/servlet/ServletRequestWrapper.java Sat Aug 26 17:17:49 2006
@@ -1,400 +1,400 @@
-/*
-* Copyright 2004 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 javax.servlet;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.util.Enumeration;
-import java.util.Locale;
-import java.util.Map;
-
-
-
-/**
- * 
- * Provides a convenient implementation of the ServletRequest interface that
- * can be subclassed by developers wishing to adapt the request to a Servlet.
- * This class implements the Wrapper or Decorator pattern. Methods default to
- * calling through to the wrapped request object.
-  * @since	v 2.3
- * 
- * 
- *
- * @see 	javax.servlet.ServletRequest
- *
- */
-
-public class ServletRequestWrapper implements ServletRequest {
-    private ServletRequest request;
-
-	/**
-	* Creates a ServletRequest adaptor wrapping the given request object. 
-	* @throws java.lang.IllegalArgumentException if the request is null
-	*/
-
-    public ServletRequestWrapper(ServletRequest request) {
-	if (request == null) {
-	    throw new IllegalArgumentException("Request cannot be null");   
-	}
-	this.request = request;
-    }
-
-	/**
-	* Return the wrapped request object.
-	*/
-	public ServletRequest getRequest() {
-		return this.request;
-	}
-	
-	/**
-	* Sets the request object being wrapped. 
-	* @throws java.lang.IllegalArgumentException if the request is null.
-	*/
-	
-	public void setRequest(ServletRequest request) {
-	    if (request == null) {
-		throw new IllegalArgumentException("Request cannot be null");
-	    }
-	    this.request = request;
-	}
-
-    /**
-     *
-     * The default behavior of this method is to call getAttribute(String name)
-     * on the wrapped request object.
-     */
-
-    public Object getAttribute(String name) {
-	return this.request.getAttribute(name);
-	}
-    
-    
-
-    /**
-     * The default behavior of this method is to return getAttributeNames()
-     * on the wrapped request object.
-     */
-
-    public Enumeration getAttributeNames() {
-	return this.request.getAttributeNames();
-	}    
-    
-    
-    
-    /**
-      * The default behavior of this method is to return getCharacterEncoding()
-     * on the wrapped request object.
-     */
-
-    public String getCharacterEncoding() {
-	return this.request.getCharacterEncoding();
-	}
-	
-    /**
-      * The default behavior of this method is to set the character encoding
-     * on the wrapped request object.
-     */
-
-    public void setCharacterEncoding(String enc) throws java.io.UnsupportedEncodingException {
-	this.request.setCharacterEncoding(enc);
-	}
-    
-    
-    /**
-      * The default behavior of this method is to return getContentLength()
-     * on the wrapped request object.
-     */
-
-    public int getContentLength() {
-	return this.request.getContentLength();
-    }
-    
-    
-    
-
-       /**
-      * The default behavior of this method is to return getContentType()
-     * on the wrapped request object.
-     */
-    public String getContentType() {
-	return this.request.getContentType();
-    }
-    
-    
-    
-
-     /**
-      * The default behavior of this method is to return getInputStream()
-     * on the wrapped request object.
-     */
-
-    public ServletInputStream getInputStream() throws IOException {
-	return this.request.getInputStream();
-	}
-     
-    
-    
-
-    /**
-      * The default behavior of this method is to return getParameter(String name)
-     * on the wrapped request object.
-     */
-
-    public String getParameter(String name) {
-	return this.request.getParameter(name);
-    }
-    
-    /**
-      * The default behavior of this method is to return getParameterMap()
-     * on the wrapped request object.
-     */
-    public Map getParameterMap() {
-	return this.request.getParameterMap();
-    }
-    
-    
-    
-
-    /**
-      * The default behavior of this method is to return getParameterNames()
-     * on the wrapped request object.
-     */
-     
-    public Enumeration getParameterNames() {
-	return this.request.getParameterNames();
-    }
-    
-    
-    
-
-       /**
-      * The default behavior of this method is to return getParameterValues(String name)
-     * on the wrapped request object.
-     */
-    public String[] getParameterValues(String name) {
-	return this.request.getParameterValues(name);
-	}
-    
-    
-    
-
-     /**
-      * The default behavior of this method is to return getProtocol()
-     * on the wrapped request object.
-     */
-    
-    public String getProtocol() {
-	return this.request.getProtocol();
-	}
-    
-    
-    
-
-    /**
-      * The default behavior of this method is to return getScheme()
-     * on the wrapped request object.
-     */
-    
-
-    public String getScheme() {
-	return this.request.getScheme();
-	}
-    
-    
-    
-
-    /**
-      * The default behavior of this method is to return getServerName()
-     * on the wrapped request object.
-     */
-    public String getServerName() {
-	return this.request.getServerName();
-	}
-    
-    
-    
-
-   /**
-      * The default behavior of this method is to return getServerPort()
-     * on the wrapped request object.
-     */
-
-    public int getServerPort() {
-	return this.request.getServerPort();
-	}
-    
-    
-    
-  /**
-      * The default behavior of this method is to return getReader()
-     * on the wrapped request object.
-     */
-
-    public BufferedReader getReader() throws IOException {
-	return this.request.getReader();
-	}
-    
-    
-    
-
-    /**
-      * The default behavior of this method is to return getRemoteAddr()
-     * on the wrapped request object.
-     */
-    
-    public String getRemoteAddr() {
-	return this.request.getRemoteAddr();
-    }
-    
-    
-    
-
-      /**
-      * The default behavior of this method is to return getRemoteHost()
-     * on the wrapped request object.
-     */
-
-    public String getRemoteHost() {
-	return this.request.getRemoteHost();
-    }
-    
-    
-    
-
-    /**
-      * The default behavior of this method is to return setAttribute(String name, Object o)
-     * on the wrapped request object.
-     */
-
-    public void setAttribute(String name, Object o) {
-	this.request.setAttribute(name, o);
-    }
-    
-    
-    
-
-    /**
-      * The default behavior of this method is to call removeAttribute(String name)
-     * on the wrapped request object.
-     */
-    public void removeAttribute(String name) {
-	this.request.removeAttribute(name);
-    }
-    
-    
-    
-
-   /**
-      * The default behavior of this method is to return getLocale()
-     * on the wrapped request object.
-     */
-
-    public Locale getLocale() {
-	return this.request.getLocale();
-    }
-    
-    
-    
-
-     /**
-      * The default behavior of this method is to return getLocales()
-     * on the wrapped request object.
-     */
-
-    public Enumeration getLocales() {
-	return this.request.getLocales();
-    }
-    
-    
-    
-
-    /**
-      * The default behavior of this method is to return isSecure()
-     * on the wrapped request object.
-     */
-
-    public boolean isSecure() {
-	return this.request.isSecure();
-    }
-    
-    
-    
-
-    /**
-      * The default behavior of this method is to return getRequestDispatcher(String path)
-     * on the wrapped request object.
-     */
-
-    public RequestDispatcher getRequestDispatcher(String path) {
-	return this.request.getRequestDispatcher(path);
-    }
-    
-    
-    
-
-    /**
-      * The default behavior of this method is to return getRealPath(String path)
-     * on the wrapped request object.
-     */
-
-    public String getRealPath(String path) {
-	return this.request.getRealPath(path);
-    }
-    
-    /**
-     * The default behavior of this method is to return
-     * getRemotePort() on the wrapped request object.
-     *
-     * @since 2.4
-     */    
-    public int getRemotePort(){
-        return this.request.getRemotePort();
-    }
-
-
-    /**
-     * The default behavior of this method is to return
-     * getLocalName() on the wrapped request object.
-     *
-     * @since 2.4
-     */
-    public String getLocalName(){
-        return this.request.getLocalName();
-    }
-
-    /**
-     * The default behavior of this method is to return
-     * getLocalAddr() on the wrapped request object.
-     *
-     * @since 2.4
-     */       
-    public String getLocalAddr(){
-        return this.request.getLocalAddr();
-    }
-
-
-    /**
-     * The default behavior of this method is to return
-     * getLocalPort() on the wrapped request object.
-     *
-     * @since 2.4
-     */
-    public int getLocalPort(){
-        return this.request.getLocalPort();
-    }
-    
-}
-
+/*
+* Copyright 2004 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 javax.servlet;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.util.Enumeration;
+import java.util.Locale;
+import java.util.Map;
+
+
+
+/**
+ * 
+ * Provides a convenient implementation of the ServletRequest interface that
+ * can be subclassed by developers wishing to adapt the request to a Servlet.
+ * This class implements the Wrapper or Decorator pattern. Methods default to
+ * calling through to the wrapped request object.
+  * @since	v 2.3
+ * 
+ * 
+ *
+ * @see 	javax.servlet.ServletRequest
+ *
+ */
+
+public class ServletRequestWrapper implements ServletRequest {
+    private ServletRequest request;
+
+	/**
+	* Creates a ServletRequest adaptor wrapping the given request object. 
+	* @throws java.lang.IllegalArgumentException if the request is null
+	*/
+
+    public ServletRequestWrapper(ServletRequest request) {
+	if (request == null) {
+	    throw new IllegalArgumentException("Request cannot be null");   
+	}
+	this.request = request;
+    }
+
+	/**
+	* Return the wrapped request object.
+	*/
+	public ServletRequest getRequest() {
+		return this.request;
+	}
+	
+	/**
+	* Sets the request object being wrapped. 
+	* @throws java.lang.IllegalArgumentException if the request is null.
+	*/
+	
+	public void setRequest(ServletRequest request) {
+	    if (request == null) {
+		throw new IllegalArgumentException("Request cannot be null");
+	    }
+	    this.request = request;
+	}
+
+    /**
+     *
+     * The default behavior of this method is to call getAttribute(String name)
+     * on the wrapped request object.
+     */
+
+    public Object getAttribute(String name) {
+	return this.request.getAttribute(name);
+	}
+    
+    
+
+    /**
+     * The default behavior of this method is to return getAttributeNames()
+     * on the wrapped request object.
+     */
+
+    public Enumeration getAttributeNames() {
+	return this.request.getAttributeNames();
+	}    
+    
+    
+    
+    /**
+      * The default behavior of this method is to return getCharacterEncoding()
+     * on the wrapped request object.
+     */
+
+    public String getCharacterEncoding() {
+	return this.request.getCharacterEncoding();
+	}
+	
+    /**
+      * The default behavior of this method is to set the character encoding
+     * on the wrapped request object.
+     */
+
+    public void setCharacterEncoding(String enc) throws java.io.UnsupportedEncodingException {
+	this.request.setCharacterEncoding(enc);
+	}
+    
+    
+    /**
+      * The default behavior of this method is to return getContentLength()
+     * on the wrapped request object.
+     */
+
+    public int getContentLength() {
+	return this.request.getContentLength();
+    }
+    
+    
+    
+
+       /**
+      * The default behavior of this method is to return getContentType()
+     * on the wrapped request object.
+     */
+    public String getContentType() {
+	return this.request.getContentType();
+    }
+    
+    
+    
+
+     /**
+      * The default behavior of this method is to return getInputStream()
+     * on the wrapped request object.
+     */
+
+    public ServletInputStream getInputStream() throws IOException {
+	return this.request.getInputStream();
+	}
+     
+    
+    
+
+    /**
+      * The default behavior of this method is to return getParameter(String name)
+     * on the wrapped request object.
+     */
+
+    public String getParameter(String name) {
+	return this.request.getParameter(name);
+    }
+    
+    /**
+      * The default behavior of this method is to return getParameterMap()
+     * on the wrapped request object.
+     */
+    public Map getParameterMap() {
+	return this.request.getParameterMap();
+    }
+    
+    
+    
+
+    /**
+      * The default behavior of this method is to return getParameterNames()
+     * on the wrapped request object.
+     */
+     
+    public Enumeration getParameterNames() {
+	return this.request.getParameterNames();
+    }
+    
+    
+    
+
+       /**
+      * The default behavior of this method is to return getParameterValues(String name)
+     * on the wrapped request object.
+     */
+    public String[] getParameterValues(String name) {
+	return this.request.getParameterValues(name);
+	}
+    
+    
+    
+
+     /**
+      * The default behavior of this method is to return getProtocol()
+     * on the wrapped request object.
+     */
+    
+    public String getProtocol() {
+	return this.request.getProtocol();
+	}
+    
+    
+    
+
+    /**
+      * The default behavior of this method is to return getScheme()
+     * on the wrapped request object.
+     */
+    
+
+    public String getScheme() {
+	return this.request.getScheme();
+	}
+    
+    
+    
+
+    /**
+      * The default behavior of this method is to return getServerName()
+     * on the wrapped request object.
+     */
+    public String getServerName() {
+	return this.request.getServerName();
+	}
+    
+    
+    
+
+   /**
+      * The default behavior of this method is to return getServerPort()
+     * on the wrapped request object.
+     */
+
+    public int getServerPort() {
+	return this.request.getServerPort();
+	}
+    
+    
+    
+  /**
+      * The default behavior of this method is to return getReader()
+     * on the wrapped request object.
+     */
+
+    public BufferedReader getReader() throws IOException {
+	return this.request.getReader();
+	}
+    
+    
+    
+
+    /**
+      * The default behavior of this method is to return getRemoteAddr()
+     * on the wrapped request object.
+     */
+    
+    public String getRemoteAddr() {
+	return this.request.getRemoteAddr();
+    }
+    
+    
+    
+
+      /**
+      * The default behavior of this method is to return getRemoteHost()
+     * on the wrapped request object.
+     */
+
+    public String getRemoteHost() {
+	return this.request.getRemoteHost();
+    }
+    
+    
+    
+
+    /**
+      * The default behavior of this method is to return setAttribute(String name, Object o)
+     * on the wrapped request object.
+     */
+
+    public void setAttribute(String name, Object o) {
+	this.request.setAttribute(name, o);
+    }
+    
+    
+    
+
+    /**
+      * The default behavior of this method is to call removeAttribute(String name)
+     * on the wrapped request object.
+     */
+    public void removeAttribute(String name) {
+	this.request.removeAttribute(name);
+    }
+    
+    
+    
+
+   /**
+      * The default behavior of this method is to return getLocale()
+     * on the wrapped request object.
+     */
+
+    public Locale getLocale() {
+	return this.request.getLocale();
+    }
+    
+    
+    
+
+     /**
+      * The default behavior of this method is to return getLocales()
+     * on the wrapped request object.
+     */
+
+    public Enumeration getLocales() {
+	return this.request.getLocales();
+    }
+    
+    
+    
+
+    /**
+      * The default behavior of this method is to return isSecure()
+     * on the wrapped request object.
+     */
+
+    public boolean isSecure() {
+	return this.request.isSecure();
+    }
+    
+    
+    
+
+    /**
+      * The default behavior of this method is to return getRequestDispatcher(String path)
+     * on the wrapped request object.
+     */
+
+    public RequestDispatcher getRequestDispatcher(String path) {
+	return this.request.getRequestDispatcher(path);
+    }
+    
+    
+    
+
+    /**
+      * The default behavior of this method is to return getRealPath(String path)
+     * on the wrapped request object.
+     */
+
+    public String getRealPath(String path) {
+	return this.request.getRealPath(path);
+    }
+    
+    /**
+     * The default behavior of this method is to return
+     * getRemotePort() on the wrapped request object.
+     *
+     * @since 2.4
+     */    
+    public int getRemotePort(){
+        return this.request.getRemotePort();
+    }
+
+
+    /**
+     * The default behavior of this method is to return
+     * getLocalName() on the wrapped request object.
+     *
+     * @since 2.4
+     */
+    public String getLocalName(){
+        return this.request.getLocalName();
+    }
+
+    /**
+     * The default behavior of this method is to return
+     * getLocalAddr() on the wrapped request object.
+     *
+     * @since 2.4
+     */       
+    public String getLocalAddr(){
+        return this.request.getLocalAddr();
+    }
+
+
+    /**
+     * The default behavior of this method is to return
+     * getLocalPort() on the wrapped request object.
+     *
+     * @since 2.4
+     */
+    public int getLocalPort(){
+        return this.request.getLocalPort();
+    }
+    
+}
+

Propchange: geronimo/specs/trunk/geronimo-servlet_2.5_spec/src/main/java/javax/servlet/ServletRequestWrapper.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/specs/trunk/geronimo-servlet_2.5_spec/src/main/java/javax/servlet/ServletRequestWrapper.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: geronimo/specs/trunk/geronimo-servlet_2.5_spec/src/main/java/javax/servlet/ServletRequestWrapper.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: geronimo/specs/trunk/geronimo-servlet_2.5_spec/src/main/java/javax/servlet/ServletResponse.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-servlet_2.5_spec/src/main/java/javax/servlet/ServletResponse.java?rev=437256&r1=437255&r2=437256&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-servlet_2.5_spec/src/main/java/javax/servlet/ServletResponse.java (original)
+++ geronimo/specs/trunk/geronimo-servlet_2.5_spec/src/main/java/javax/servlet/ServletResponse.java Sat Aug 26 17:17:49 2006
@@ -1,452 +1,452 @@
-/*
-* Copyright 2004 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 javax.servlet;
-
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.util.Locale;
-
-
-/**
- * Defines an object to assist a servlet in sending a response to the client.
- * The servlet container creates a <code>ServletResponse</code> object and
- * passes it as an argument to the servlet's <code>service</code> method.
- *
- * <p>To send binary data in a MIME body response, use
- * the {@link ServletOutputStream} returned by {@link #getOutputStream}.
- * To send character data, use the <code>PrintWriter</code> object 
- * returned by {@link #getWriter}. To mix binary and text data,
- * for example, to create a multipart response, use a
- * <code>ServletOutputStream</code> and manage the character sections
- * manually.
- *
- * <p>The charset for the MIME body response can be specified
- * explicitly using the {@link #setCharacterEncoding} and
- * {@link #setContentType} methods, or implicitly
- * using the {@link #setLocale} method.
- * Explicit specifications take precedence over
- * implicit specifications. If no charset is specified, ISO-8859-1 will be
- * used. The <code>setCharacterEncoding</code>,
- * <code>setContentType</code>, or <code>setLocale</code> method must
- * be called before <code>getWriter</code> and before committing
- * the response for the character encoding to be used.
- * 
- * <p>See the Internet RFCs such as 
- * <a href="http://www.ietf.org/rfc/rfc2045.txt">
- * RFC 2045</a> for more information on MIME. Protocols such as SMTP
- * and HTTP define profiles of MIME, and those standards
- * are still evolving.
- *
- * @author 	Various
- * @version 	$Version$
- *
- * @see		ServletOutputStream
- *
- */
- 
-public interface ServletResponse {
-
-
-    
-    /**
-     * Returns the name of the character encoding (MIME charset)
-     * used for the body sent in this response.
-     * The character encoding may have been specified explicitly
-     * using the {@link #setCharacterEncoding} or
-     * {@link #setContentType} methods, or implicitly using the
-     * {@link #setLocale} method. Explicit specifications take
-     * precedence over implicit specifications. Calls made
-     * to these methods after <code>getWriter</code> has been
-     * called or after the response has been committed have no
-     * effect on the character encoding. If no character encoding
-     * has been specified, <code>ISO-8859-1</code> is returned.
-     * <p>See RFC 2047 (http://www.ietf.org/rfc/rfc2047.txt)
-     * for more information about character encoding and MIME.
-     *
-     * @return		a <code>String</code> specifying the
-     *			name of the character encoding, for
-     *			example, <code>UTF-8</code>
-     *
-     */
-  
-    public String getCharacterEncoding();
-    
-    
-
-    /**
-     * Returns the content type used for the MIME body
-     * sent in this response. The content type proper must
-     * have been specified using {@link #setContentType}
-     * before the response is committed. If no content type
-     * has been specified, this method returns null.
-     * If a content type has been specified and a
-     * character encoding has been explicitly or implicitly
-     * specified as described in {@link #getCharacterEncoding},
-     * the charset parameter is included in the string returned.
-     * If no character encoding has been specified, the
-     * charset parameter is omitted.
-     *
-     * @return		a <code>String</code> specifying the
-     *			content type, for example,
-     *			<code>text/html; charset=UTF-8</code>,
-     *			or null
-     *
-     * @since 2.4
-     */
-  
-    public String getContentType();
-    
-    
-
-    /**
-     * Returns a {@link ServletOutputStream} suitable for writing binary 
-     * data in the response. The servlet container does not encode the
-     * binary data.  
-     
-     * <p> Calling flush() on the ServletOutputStream commits the response.
-     
-     * Either this method or {@link #getWriter} may 
-     * be called to write the body, not both.
-     *
-     * @return				a {@link ServletOutputStream} for writing binary data	
-     *
-     * @exception IllegalStateException if the <code>getWriter</code> method
-     * 					has been called on this response
-     *
-     * @exception IOException 		if an input or output exception occurred
-     *
-     * @see 				#getWriter
-     *
-     */
-
-    public ServletOutputStream getOutputStream() throws IOException;
-    
-    
-
-    /**
-     * Returns a <code>PrintWriter</code> object that
-     * can send character text to the client.
-     * The <code>PrintWriter</code> uses the character
-     * encoding returned by {@link #getCharacterEncoding}.
-     * If the response's character encoding has not been
-     * specified as described in <code>getCharacterEncoding</code>
-     * (i.e., the method just returns the default value 
-     * <code>ISO-8859-1</code>), <code>getWriter</code>
-     * updates it to <code>ISO-8859-1</code>.
-     * <p>Calling flush() on the <code>PrintWriter</code>
-     * commits the response.
-     * <p>Either this method or {@link #getOutputStream} may be called
-     * to write the body, not both.
-     *
-     * 
-     * @return 		a <code>PrintWriter</code> object that 
-     *			can return character data to the client 
-     *
-     * @exception UnsupportedEncodingException
-     *			if the character encoding returned
-     *			by <code>getCharacterEncoding</code> cannot be used
-     *
-     * @exception IllegalStateException
-     *			if the <code>getOutputStream</code>
-     * 			method has already been called for this 
-     *			response object
-     *
-     * @exception IOException
-     *			if an input or output exception occurred
-     *
-     * @see 		#getOutputStream
-     * @see 		#setCharacterEncoding
-     *
-     */
-
-    public PrintWriter getWriter() throws IOException;
-    
-    
-    
-    
-    /**
-     * Sets the character encoding (MIME charset) of the response
-     * being sent to the client, for example, to UTF-8.
-     * If the character encoding has already been set by
-     * {@link #setContentType} or {@link #setLocale},
-     * this method overrides it.
-     * Calling {@link #setContentType} with the <code>String</code>
-     * of <code>text/html</code> and calling
-     * this method with the <code>String</code> of <code>UTF-8</code>
-     * is equivalent with calling
-     * <code>setContentType</code> with the <code>String</code> of
-     * <code>text/html; charset=UTF-8</code>.
-     * <p>This method can be called repeatedly to change the character
-     * encoding.
-     * This method has no effect if it is called after
-     * <code>getWriter</code> has been
-     * called or after the response has been committed.
-     * <p>Containers must communicate the character encoding used for
-     * the servlet response's writer to the client if the protocol
-     * provides a way for doing so. In the case of HTTP, the character
-     * encoding is communicated as part of the <code>Content-Type</code>
-     * header for text media types. Note that the character encoding
-     * cannot be communicated via HTTP headers if the servlet does not
-     * specify a content type; however, it is still used to encode text
-     * written via the servlet response's writer.
-     *
-     * @param charset 	a String specifying only the character set
-     * 			defined by IANA Character Sets
-     *			(http://www.iana.org/assignments/character-sets)
-     *
-     * @see		#setContentType
-     * 			#setLocale
-     *
-     * @since 2.4
-     *
-     */
-
-    public void setCharacterEncoding(String charset);
-    
-    
-
-
-    /**
-     * Sets the length of the content body in the response
-     * In HTTP servlets, this method sets the HTTP Content-Length header.
-     *
-     *
-     * @param len 	an integer specifying the length of the 
-     * 			content being returned to the client; sets
-     *			the Content-Length header
-     *
-     */
-
-    public void setContentLength(int len);
-    
-    
-
-    /**
-     * Sets the content type of the response being sent to
-     * the client, if the response has not been committed yet.
-     * The given content type may include a character encoding
-     * specification, for example, <code>text/html;charset=UTF-8</code>.
-     * The response's character encoding is only set from the given
-     * content type if this method is called before <code>getWriter</code>
-     * is called.
-     * <p>This method may be called repeatedly to change content type and
-     * character encoding.
-     * This method has no effect if called after the response
-     * has been committed. It does not set the response's character
-     * encoding if it is called after <code>getWriter</code>
-     * has been called or after the response has been committed.
-     * <p>Containers must communicate the content type and the character
-     * encoding used for the servlet response's writer to the client if
-     * the protocol provides a way for doing so. In the case of HTTP,
-     * the <code>Content-Type</code> header is used.
-     *
-     * @param type 	a <code>String</code> specifying the MIME 
-     *			type of the content
-     *
-     * @see 		#setLocale
-     * @see 		#setCharacterEncoding
-     * @see 		#getOutputStream
-     * @see 		#getWriter
-     *
-     */
-
-    public void setContentType(String type);
-    
-
-    /**
-     * Sets the preferred buffer size for the body of the response.  
-     * The servlet container will use a buffer at least as large as 
-     * the size requested.  The actual buffer size used can be found
-     * using <code>getBufferSize</code>.
-     *
-     * <p>A larger buffer allows more content to be written before anything is
-     * actually sent, thus providing the servlet with more time to set
-     * appropriate status codes and headers.  A smaller buffer decreases 
-     * server memory load and allows the client to start receiving data more
-     * quickly.
-     *
-     * <p>This method must be called before any response body content is
-     * written; if content has been written or the response object has
-     * been committed, this method throws an 
-     * <code>IllegalStateException</code>.
-     *
-     * @param size 	the preferred buffer size
-     *
-     * @exception  IllegalStateException  	if this method is called after
-     *						content has been written
-     *
-     * @see 		#getBufferSize
-     * @see 		#flushBuffer
-     * @see 		#isCommitted
-     * @see 		#reset
-     *
-     */
-
-    public void setBufferSize(int size);
-    
-    
-
-    /**
-     * Returns the actual buffer size used for the response.  If no buffering
-     * is used, this method returns 0.
-     *
-     * @return	 	the actual buffer size used
-     *
-     * @see 		#setBufferSize
-     * @see 		#flushBuffer
-     * @see 		#isCommitted
-     * @see 		#reset
-     *
-     */
-
-    public int getBufferSize();
-    
-    
-
-    /**
-     * Forces any content in the buffer to be written to the client.  A call
-     * to this method automatically commits the response, meaning the status 
-     * code and headers will be written.
-     *
-     * @see 		#setBufferSize
-     * @see 		#getBufferSize
-     * @see 		#isCommitted
-     * @see 		#reset
-     *
-     */
-
-    public void flushBuffer() throws IOException;
-    
-    
-    
-    /**
-     * Clears the content of the underlying buffer in the response without
-     * clearing headers or status code. If the 
-     * response has been committed, this method throws an 
-     * <code>IllegalStateException</code>.
-     *
-     * @see 		#setBufferSize
-     * @see 		#getBufferSize
-     * @see 		#isCommitted
-     * @see 		#reset
-     *
-     * @since 2.3
-     */
-
-    public void resetBuffer();
-    
-
-    /**
-     * Returns a boolean indicating if the response has been
-     * committed.  A committed response has already had its status 
-     * code and headers written.
-     *
-     * @return		a boolean indicating if the response has been
-     *  		committed
-     *
-     * @see 		#setBufferSize
-     * @see 		#getBufferSize
-     * @see 		#flushBuffer
-     * @see 		#reset
-     *
-     */
-
-    public boolean isCommitted();
-    
-    
-
-    /**
-     * Clears any data that exists in the buffer as well as the status code and
-     * headers.  If the response has been committed, this method throws an 
-     * <code>IllegalStateException</code>.
-     *
-     * @exception IllegalStateException  if the response has already been
-     *                                   committed
-     *
-     * @see 		#setBufferSize
-     * @see 		#getBufferSize
-     * @see 		#flushBuffer
-     * @see 		#isCommitted
-     *
-     */
-
-    public void reset();
-    
-    
-
-    /**
-     * Sets the locale of the response, if the response has not been
-     * committed yet. It also sets the response's character encoding
-     * appropriately for the locale, if the character encoding has not
-     * been explicitly set using {@link #setContentType} or
-     * {@link #setCharacterEncoding}, <code>getWriter</code> hasn't
-     * been called yet, and the response hasn't been committed yet.
-     * If the deployment descriptor contains a 
-     * <code>locale-encoding-mapping-list</code> element, and that
-     * element provides a mapping for the given locale, that mapping
-     * is used. Otherwise, the mapping from locale to character
-     * encoding is container dependent.
-     * <p>This method may be called repeatedly to change locale and
-     * character encoding. The method has no effect if called after the
-     * response has been committed. It does not set the response's
-     * character encoding if it is called after {@link #setContentType}
-     * has been called with a charset specification, after
-     * {@link #setCharacterEncoding} has been called, after
-     * <code>getWriter</code> has been called, or after the response
-     * has been committed.
-     * <p>Containers must communicate the locale and the character encoding
-     * used for the servlet response's writer to the client if the protocol
-     * provides a way for doing so. In the case of HTTP, the locale is
-     * communicated via the <code>Content-Language</code> header,
-     * the character encoding as part of the <code>Content-Type</code>
-     * header for text media types. Note that the character encoding
-     * cannot be communicated via HTTP headers if the servlet does not
-     * specify a content type; however, it is still used to encode text
-     * written via the servlet response's writer.
-     * 
-     * @param loc  the locale of the response
-     *
-     * @see 		#getLocale
-     * @see 		#setContentType
-     * @see 		#setCharacterEncoding
-     *
-     */
-
-    public void setLocale(Locale loc);
-    
-    
-
-    /**
-     * Returns the locale specified for this response
-     * using the {@link #setLocale} method. Calls made to
-     * <code>setLocale</code> after the response is committed
-     * have no effect. If no locale has been specified,
-     * the container's default locale is returned.
-     * 
-     * @see 		#setLocale
-     *
-     */
-
-    public Locale getLocale();
-
-
-
-}
-
-
-
-
-
+/*
+* Copyright 2004 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 javax.servlet;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.Locale;
+
+
+/**
+ * Defines an object to assist a servlet in sending a response to the client.
+ * The servlet container creates a <code>ServletResponse</code> object and
+ * passes it as an argument to the servlet's <code>service</code> method.
+ *
+ * <p>To send binary data in a MIME body response, use
+ * the {@link ServletOutputStream} returned by {@link #getOutputStream}.
+ * To send character data, use the <code>PrintWriter</code> object 
+ * returned by {@link #getWriter}. To mix binary and text data,
+ * for example, to create a multipart response, use a
+ * <code>ServletOutputStream</code> and manage the character sections
+ * manually.
+ *
+ * <p>The charset for the MIME body response can be specified
+ * explicitly using the {@link #setCharacterEncoding} and
+ * {@link #setContentType} methods, or implicitly
+ * using the {@link #setLocale} method.
+ * Explicit specifications take precedence over
+ * implicit specifications. If no charset is specified, ISO-8859-1 will be
+ * used. The <code>setCharacterEncoding</code>,
+ * <code>setContentType</code>, or <code>setLocale</code> method must
+ * be called before <code>getWriter</code> and before committing
+ * the response for the character encoding to be used.
+ * 
+ * <p>See the Internet RFCs such as 
+ * <a href="http://www.ietf.org/rfc/rfc2045.txt">
+ * RFC 2045</a> for more information on MIME. Protocols such as SMTP
+ * and HTTP define profiles of MIME, and those standards
+ * are still evolving.
+ *
+ * @author 	Various
+ * @version 	$Version$
+ *
+ * @see		ServletOutputStream
+ *
+ */
+ 
+public interface ServletResponse {
+
+
+    
+    /**
+     * Returns the name of the character encoding (MIME charset)
+     * used for the body sent in this response.
+     * The character encoding may have been specified explicitly
+     * using the {@link #setCharacterEncoding} or
+     * {@link #setContentType} methods, or implicitly using the
+     * {@link #setLocale} method. Explicit specifications take
+     * precedence over implicit specifications. Calls made
+     * to these methods after <code>getWriter</code> has been
+     * called or after the response has been committed have no
+     * effect on the character encoding. If no character encoding
+     * has been specified, <code>ISO-8859-1</code> is returned.
+     * <p>See RFC 2047 (http://www.ietf.org/rfc/rfc2047.txt)
+     * for more information about character encoding and MIME.
+     *
+     * @return		a <code>String</code> specifying the
+     *			name of the character encoding, for
+     *			example, <code>UTF-8</code>
+     *
+     */
+  
+    public String getCharacterEncoding();
+    
+    
+
+    /**
+     * Returns the content type used for the MIME body
+     * sent in this response. The content type proper must
+     * have been specified using {@link #setContentType}
+     * before the response is committed. If no content type
+     * has been specified, this method returns null.
+     * If a content type has been specified and a
+     * character encoding has been explicitly or implicitly
+     * specified as described in {@link #getCharacterEncoding},
+     * the charset parameter is included in the string returned.
+     * If no character encoding has been specified, the
+     * charset parameter is omitted.
+     *
+     * @return		a <code>String</code> specifying the
+     *			content type, for example,
+     *			<code>text/html; charset=UTF-8</code>,
+     *			or null
+     *
+     * @since 2.4
+     */
+  
+    public String getContentType();
+    
+    
+
+    /**
+     * Returns a {@link ServletOutputStream} suitable for writing binary 
+     * data in the response. The servlet container does not encode the
+     * binary data.  
+     
+     * <p> Calling flush() on the ServletOutputStream commits the response.
+     
+     * Either this method or {@link #getWriter} may 
+     * be called to write the body, not both.
+     *
+     * @return				a {@link ServletOutputStream} for writing binary data	
+     *
+     * @exception IllegalStateException if the <code>getWriter</code> method
+     * 					has been called on this response
+     *
+     * @exception IOException 		if an input or output exception occurred
+     *
+     * @see 				#getWriter
+     *
+     */
+
+    public ServletOutputStream getOutputStream() throws IOException;
+    
+    
+
+    /**
+     * Returns a <code>PrintWriter</code> object that
+     * can send character text to the client.
+     * The <code>PrintWriter</code> uses the character
+     * encoding returned by {@link #getCharacterEncoding}.
+     * If the response's character encoding has not been
+     * specified as described in <code>getCharacterEncoding</code>
+     * (i.e., the method just returns the default value 
+     * <code>ISO-8859-1</code>), <code>getWriter</code>
+     * updates it to <code>ISO-8859-1</code>.
+     * <p>Calling flush() on the <code>PrintWriter</code>
+     * commits the response.
+     * <p>Either this method or {@link #getOutputStream} may be called
+     * to write the body, not both.
+     *
+     * 
+     * @return 		a <code>PrintWriter</code> object that 
+     *			can return character data to the client 
+     *
+     * @exception UnsupportedEncodingException
+     *			if the character encoding returned
+     *			by <code>getCharacterEncoding</code> cannot be used
+     *
+     * @exception IllegalStateException
+     *			if the <code>getOutputStream</code>
+     * 			method has already been called for this 
+     *			response object
+     *
+     * @exception IOException
+     *			if an input or output exception occurred
+     *
+     * @see 		#getOutputStream
+     * @see 		#setCharacterEncoding
+     *
+     */
+
+    public PrintWriter getWriter() throws IOException;
+    
+    
+    
+    
+    /**
+     * Sets the character encoding (MIME charset) of the response
+     * being sent to the client, for example, to UTF-8.
+     * If the character encoding has already been set by
+     * {@link #setContentType} or {@link #setLocale},
+     * this method overrides it.
+     * Calling {@link #setContentType} with the <code>String</code>
+     * of <code>text/html</code> and calling
+     * this method with the <code>String</code> of <code>UTF-8</code>
+     * is equivalent with calling
+     * <code>setContentType</code> with the <code>String</code> of
+     * <code>text/html; charset=UTF-8</code>.
+     * <p>This method can be called repeatedly to change the character
+     * encoding.
+     * This method has no effect if it is called after
+     * <code>getWriter</code> has been
+     * called or after the response has been committed.
+     * <p>Containers must communicate the character encoding used for
+     * the servlet response's writer to the client if the protocol
+     * provides a way for doing so. In the case of HTTP, the character
+     * encoding is communicated as part of the <code>Content-Type</code>
+     * header for text media types. Note that the character encoding
+     * cannot be communicated via HTTP headers if the servlet does not
+     * specify a content type; however, it is still used to encode text
+     * written via the servlet response's writer.
+     *
+     * @param charset 	a String specifying only the character set
+     * 			defined by IANA Character Sets
+     *			(http://www.iana.org/assignments/character-sets)
+     *
+     * @see		#setContentType
+     * 			#setLocale
+     *
+     * @since 2.4
+     *
+     */
+
+    public void setCharacterEncoding(String charset);
+    
+    
+
+
+    /**
+     * Sets the length of the content body in the response
+     * In HTTP servlets, this method sets the HTTP Content-Length header.
+     *
+     *
+     * @param len 	an integer specifying the length of the 
+     * 			content being returned to the client; sets
+     *			the Content-Length header
+     *
+     */
+
+    public void setContentLength(int len);
+    
+    
+
+    /**
+     * Sets the content type of the response being sent to
+     * the client, if the response has not been committed yet.
+     * The given content type may include a character encoding
+     * specification, for example, <code>text/html;charset=UTF-8</code>.
+     * The response's character encoding is only set from the given
+     * content type if this method is called before <code>getWriter</code>
+     * is called.
+     * <p>This method may be called repeatedly to change content type and
+     * character encoding.
+     * This method has no effect if called after the response
+     * has been committed. It does not set the response's character
+     * encoding if it is called after <code>getWriter</code>
+     * has been called or after the response has been committed.
+     * <p>Containers must communicate the content type and the character
+     * encoding used for the servlet response's writer to the client if
+     * the protocol provides a way for doing so. In the case of HTTP,
+     * the <code>Content-Type</code> header is used.
+     *
+     * @param type 	a <code>String</code> specifying the MIME 
+     *			type of the content
+     *
+     * @see 		#setLocale
+     * @see 		#setCharacterEncoding
+     * @see 		#getOutputStream
+     * @see 		#getWriter
+     *
+     */
+
+    public void setContentType(String type);
+    
+
+    /**
+     * Sets the preferred buffer size for the body of the response.  
+     * The servlet container will use a buffer at least as large as 
+     * the size requested.  The actual buffer size used can be found
+     * using <code>getBufferSize</code>.
+     *
+     * <p>A larger buffer allows more content to be written before anything is
+     * actually sent, thus providing the servlet with more time to set
+     * appropriate status codes and headers.  A smaller buffer decreases 
+     * server memory load and allows the client to start receiving data more
+     * quickly.
+     *
+     * <p>This method must be called before any response body content is
+     * written; if content has been written or the response object has
+     * been committed, this method throws an 
+     * <code>IllegalStateException</code>.
+     *
+     * @param size 	the preferred buffer size
+     *
+     * @exception  IllegalStateException  	if this method is called after
+     *						content has been written
+     *
+     * @see 		#getBufferSize
+     * @see 		#flushBuffer
+     * @see 		#isCommitted
+     * @see 		#reset
+     *
+     */
+
+    public void setBufferSize(int size);
+    
+    
+
+    /**
+     * Returns the actual buffer size used for the response.  If no buffering
+     * is used, this method returns 0.
+     *
+     * @return	 	the actual buffer size used
+     *
+     * @see 		#setBufferSize
+     * @see 		#flushBuffer
+     * @see 		#isCommitted
+     * @see 		#reset
+     *
+     */
+
+    public int getBufferSize();
+    
+    
+
+    /**
+     * Forces any content in the buffer to be written to the client.  A call
+     * to this method automatically commits the response, meaning the status 
+     * code and headers will be written.
+     *
+     * @see 		#setBufferSize
+     * @see 		#getBufferSize
+     * @see 		#isCommitted
+     * @see 		#reset
+     *
+     */
+
+    public void flushBuffer() throws IOException;
+    
+    
+    
+    /**
+     * Clears the content of the underlying buffer in the response without
+     * clearing headers or status code. If the 
+     * response has been committed, this method throws an 
+     * <code>IllegalStateException</code>.
+     *
+     * @see 		#setBufferSize
+     * @see 		#getBufferSize
+     * @see 		#isCommitted
+     * @see 		#reset
+     *
+     * @since 2.3
+     */
+
+    public void resetBuffer();
+    
+
+    /**
+     * Returns a boolean indicating if the response has been
+     * committed.  A committed response has already had its status 
+     * code and headers written.
+     *
+     * @return		a boolean indicating if the response has been
+     *  		committed
+     *
+     * @see 		#setBufferSize
+     * @see 		#getBufferSize
+     * @see 		#flushBuffer
+     * @see 		#reset
+     *
+     */
+
+    public boolean isCommitted();
+    
+    
+
+    /**
+     * Clears any data that exists in the buffer as well as the status code and
+     * headers.  If the response has been committed, this method throws an 
+     * <code>IllegalStateException</code>.
+     *
+     * @exception IllegalStateException  if the response has already been
+     *                                   committed
+     *
+     * @see 		#setBufferSize
+     * @see 		#getBufferSize
+     * @see 		#flushBuffer
+     * @see 		#isCommitted
+     *
+     */
+
+    public void reset();
+    
+    
+
+    /**
+     * Sets the locale of the response, if the response has not been
+     * committed yet. It also sets the response's character encoding
+     * appropriately for the locale, if the character encoding has not
+     * been explicitly set using {@link #setContentType} or
+     * {@link #setCharacterEncoding}, <code>getWriter</code> hasn't
+     * been called yet, and the response hasn't been committed yet.
+     * If the deployment descriptor contains a 
+     * <code>locale-encoding-mapping-list</code> element, and that
+     * element provides a mapping for the given locale, that mapping
+     * is used. Otherwise, the mapping from locale to character
+     * encoding is container dependent.
+     * <p>This method may be called repeatedly to change locale and
+     * character encoding. The method has no effect if called after the
+     * response has been committed. It does not set the response's
+     * character encoding if it is called after {@link #setContentType}
+     * has been called with a charset specification, after
+     * {@link #setCharacterEncoding} has been called, after
+     * <code>getWriter</code> has been called, or after the response
+     * has been committed.
+     * <p>Containers must communicate the locale and the character encoding
+     * used for the servlet response's writer to the client if the protocol
+     * provides a way for doing so. In the case of HTTP, the locale is
+     * communicated via the <code>Content-Language</code> header,
+     * the character encoding as part of the <code>Content-Type</code>
+     * header for text media types. Note that the character encoding
+     * cannot be communicated via HTTP headers if the servlet does not
+     * specify a content type; however, it is still used to encode text
+     * written via the servlet response's writer.
+     * 
+     * @param loc  the locale of the response
+     *
+     * @see 		#getLocale
+     * @see 		#setContentType
+     * @see 		#setCharacterEncoding
+     *
+     */
+
+    public void setLocale(Locale loc);
+    
+    
+
+    /**
+     * Returns the locale specified for this response
+     * using the {@link #setLocale} method. Calls made to
+     * <code>setLocale</code> after the response is committed
+     * have no effect. If no locale has been specified,
+     * the container's default locale is returned.
+     * 
+     * @see 		#setLocale
+     *
+     */
+
+    public Locale getLocale();
+
+
+
+}
+
+
+
+
+

Propchange: geronimo/specs/trunk/geronimo-servlet_2.5_spec/src/main/java/javax/servlet/ServletResponse.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/specs/trunk/geronimo-servlet_2.5_spec/src/main/java/javax/servlet/ServletResponse.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: geronimo/specs/trunk/geronimo-servlet_2.5_spec/src/main/java/javax/servlet/ServletResponse.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: geronimo/specs/trunk/geronimo-servlet_2.5_spec/src/main/java/javax/servlet/ServletResponseWrapper.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-servlet_2.5_spec/src/main/java/javax/servlet/ServletResponseWrapper.java?rev=437256&r1=437255&r2=437256&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-servlet_2.5_spec/src/main/java/javax/servlet/ServletResponseWrapper.java (original)
+++ geronimo/specs/trunk/geronimo-servlet_2.5_spec/src/main/java/javax/servlet/ServletResponseWrapper.java Sat Aug 26 17:17:49 2006
@@ -1,217 +1,217 @@
-/*
-* Copyright 2004 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 javax.servlet;
-
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.util.Locale;
-
-/**
- * 
- * Provides a convenient implementation of the ServletResponse interface that
- * can be subclassed by developers wishing to adapt the response from a Servlet.
- * This class implements the Wrapper or Decorator pattern. Methods default to
- * calling through to the wrapped response object.
- * 
- * @author 	Various
- * @version 	$Version$
- * @since	v 2.3
- *
- * @see 	javax.servlet.ServletResponse
- *
- */
-
- 
-public class ServletResponseWrapper implements ServletResponse {
-	private ServletResponse response;
-	/**
-	* Creates a ServletResponse adaptor wrapping the given response object.
-	* @throws java.lang.IllegalArgumentException if the response is null.
-	*/
-
-
-	public ServletResponseWrapper(ServletResponse response) {
-	    if (response == null) {
-		throw new IllegalArgumentException("Response cannot be null");
-	    }
-	    this.response = response;
-	}
-
-	/**
-	* Return the wrapped ServletResponse object.
-	*/
-
-	public ServletResponse getResponse() {
-		return this.response;
-	}	
-	
-	
-	/**
-	* Sets the response being wrapped. 
-	* @throws java.lang.IllegalArgumentException if the response is null.
-	*/
-	
-	public void setResponse(ServletResponse response) {
-	    if (response == null) {
-		throw new IllegalArgumentException("Response cannot be null");
-	    }
-	    this.response = response;
-	}
-
-    /**
-     * The default behavior of this method is to call setCharacterEncoding(String charset)
-     * on the wrapped response object.
-     *
-     * @since 2.4
-     */
-
-    public void setCharacterEncoding(String charset) {
-	this.response.setCharacterEncoding(charset);
-    }
-
-    /**
-     * The default behavior of this method is to return getCharacterEncoding()
-     * on the wrapped response object.
-     */
-
-    public String getCharacterEncoding() {
-	return this.response.getCharacterEncoding();
-	}
-    
-    
-	  /**
-     * The default behavior of this method is to return getOutputStream()
-     * on the wrapped response object.
-     */
-
-    public ServletOutputStream getOutputStream() throws IOException {
-	return this.response.getOutputStream();
-    }  
-      
-     /**
-     * The default behavior of this method is to return getWriter()
-     * on the wrapped response object.
-     */
-
-
-    public PrintWriter getWriter() throws IOException {
-	return this.response.getWriter();
-	}
-    
-    /**
-     * The default behavior of this method is to call setContentLength(int len)
-     * on the wrapped response object.
-     */
-
-    public void setContentLength(int len) {
-	this.response.setContentLength(len);
-    }
-    
-    /**
-     * The default behavior of this method is to call setContentType(String type)
-     * on the wrapped response object.
-     */
-
-    public void setContentType(String type) {
-	this.response.setContentType(type);
-    }
-
-    /**
-     * The default behavior of this method is to return getContentType()
-     * on the wrapped response object.
-     *
-     * @since 2.4
-     */
-
-    public String getContentType() {
-	return this.response.getContentType();
-    }
-    
-    /**
-     * The default behavior of this method is to call setBufferSize(int size)
-     * on the wrapped response object.
-     */
-    public void setBufferSize(int size) {
-	this.response.setBufferSize(size);
-    }
-    
-    /**
-     * The default behavior of this method is to return getBufferSize()
-     * on the wrapped response object.
-     */
-    public int getBufferSize() {
-	return this.response.getBufferSize();
-    }
-
-    /**
-     * The default behavior of this method is to call flushBuffer()
-     * on the wrapped response object.
-     */
-
-    public void flushBuffer() throws IOException {
-	this.response.flushBuffer();
-    }
-    
-    /**
-     * The default behavior of this method is to return isCommitted()
-     * on the wrapped response object.
-     */
-    public boolean isCommitted() {
-	return this.response.isCommitted();
-    }
-
-    /**
-     * The default behavior of this method is to call reset()
-     * on the wrapped response object.
-     */
-
-    public void reset() {
-	this.response.reset();
-    }
-    
-    /**
-     * The default behavior of this method is to call resetBuffer()
-     * on the wrapped response object.
-     */
-     
-    public void resetBuffer() {
-	this.response.resetBuffer();
-    }
-    
-    /**
-     * The default behavior of this method is to call setLocale(Locale loc)
-     * on the wrapped response object.
-     */
-
-    public void setLocale(Locale loc) {
-	this.response.setLocale(loc);
-    }
-    
-    /**
-     * The default behavior of this method is to return getLocale()
-     * on the wrapped response object.
-     */
-    public Locale getLocale() {
-	return this.response.getLocale();
-    }
-
-
-}
-
-
-
-
-
+/*
+* Copyright 2004 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 javax.servlet;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.Locale;
+
+/**
+ * 
+ * Provides a convenient implementation of the ServletResponse interface that
+ * can be subclassed by developers wishing to adapt the response from a Servlet.
+ * This class implements the Wrapper or Decorator pattern. Methods default to
+ * calling through to the wrapped response object.
+ * 
+ * @author 	Various
+ * @version 	$Version$
+ * @since	v 2.3
+ *
+ * @see 	javax.servlet.ServletResponse
+ *
+ */
+
+ 
+public class ServletResponseWrapper implements ServletResponse {
+	private ServletResponse response;
+	/**
+	* Creates a ServletResponse adaptor wrapping the given response object.
+	* @throws java.lang.IllegalArgumentException if the response is null.
+	*/
+
+
+	public ServletResponseWrapper(ServletResponse response) {
+	    if (response == null) {
+		throw new IllegalArgumentException("Response cannot be null");
+	    }
+	    this.response = response;
+	}
+
+	/**
+	* Return the wrapped ServletResponse object.
+	*/
+
+	public ServletResponse getResponse() {
+		return this.response;
+	}	
+	
+	
+	/**
+	* Sets the response being wrapped. 
+	* @throws java.lang.IllegalArgumentException if the response is null.
+	*/
+	
+	public void setResponse(ServletResponse response) {
+	    if (response == null) {
+		throw new IllegalArgumentException("Response cannot be null");
+	    }
+	    this.response = response;
+	}
+
+    /**
+     * The default behavior of this method is to call setCharacterEncoding(String charset)
+     * on the wrapped response object.
+     *
+     * @since 2.4
+     */
+
+    public void setCharacterEncoding(String charset) {
+	this.response.setCharacterEncoding(charset);
+    }
+
+    /**
+     * The default behavior of this method is to return getCharacterEncoding()
+     * on the wrapped response object.
+     */
+
+    public String getCharacterEncoding() {
+	return this.response.getCharacterEncoding();
+	}
+    
+    
+	  /**
+     * The default behavior of this method is to return getOutputStream()
+     * on the wrapped response object.
+     */
+
+    public ServletOutputStream getOutputStream() throws IOException {
+	return this.response.getOutputStream();
+    }  
+      
+     /**
+     * The default behavior of this method is to return getWriter()
+     * on the wrapped response object.
+     */
+
+
+    public PrintWriter getWriter() throws IOException {
+	return this.response.getWriter();
+	}
+    
+    /**
+     * The default behavior of this method is to call setContentLength(int len)
+     * on the wrapped response object.
+     */
+
+    public void setContentLength(int len) {
+	this.response.setContentLength(len);
+    }
+    
+    /**
+     * The default behavior of this method is to call setContentType(String type)
+     * on the wrapped response object.
+     */
+
+    public void setContentType(String type) {
+	this.response.setContentType(type);
+    }
+
+    /**
+     * The default behavior of this method is to return getContentType()
+     * on the wrapped response object.
+     *
+     * @since 2.4
+     */
+
+    public String getContentType() {
+	return this.response.getContentType();
+    }
+    
+    /**
+     * The default behavior of this method is to call setBufferSize(int size)
+     * on the wrapped response object.
+     */
+    public void setBufferSize(int size) {
+	this.response.setBufferSize(size);
+    }
+    
+    /**
+     * The default behavior of this method is to return getBufferSize()
+     * on the wrapped response object.
+     */
+    public int getBufferSize() {
+	return this.response.getBufferSize();
+    }
+
+    /**
+     * The default behavior of this method is to call flushBuffer()
+     * on the wrapped response object.
+     */
+
+    public void flushBuffer() throws IOException {
+	this.response.flushBuffer();
+    }
+    
+    /**
+     * The default behavior of this method is to return isCommitted()
+     * on the wrapped response object.
+     */
+    public boolean isCommitted() {
+	return this.response.isCommitted();
+    }
+
+    /**
+     * The default behavior of this method is to call reset()
+     * on the wrapped response object.
+     */
+
+    public void reset() {
+	this.response.reset();
+    }
+    
+    /**
+     * The default behavior of this method is to call resetBuffer()
+     * on the wrapped response object.
+     */
+     
+    public void resetBuffer() {
+	this.response.resetBuffer();
+    }
+    
+    /**
+     * The default behavior of this method is to call setLocale(Locale loc)
+     * on the wrapped response object.
+     */
+
+    public void setLocale(Locale loc) {
+	this.response.setLocale(loc);
+    }
+    
+    /**
+     * The default behavior of this method is to return getLocale()
+     * on the wrapped response object.
+     */
+    public Locale getLocale() {
+	return this.response.getLocale();
+    }
+
+
+}
+
+
+
+
+

Propchange: geronimo/specs/trunk/geronimo-servlet_2.5_spec/src/main/java/javax/servlet/ServletResponseWrapper.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/specs/trunk/geronimo-servlet_2.5_spec/src/main/java/javax/servlet/ServletResponseWrapper.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: geronimo/specs/trunk/geronimo-servlet_2.5_spec/src/main/java/javax/servlet/ServletResponseWrapper.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: geronimo/specs/trunk/geronimo-servlet_2.5_spec/src/main/java/javax/servlet/SingleThreadModel.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-servlet_2.5_spec/src/main/java/javax/servlet/SingleThreadModel.java?rev=437256&r1=437255&r2=437256&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-servlet_2.5_spec/src/main/java/javax/servlet/SingleThreadModel.java (original)
+++ geronimo/specs/trunk/geronimo-servlet_2.5_spec/src/main/java/javax/servlet/SingleThreadModel.java Sat Aug 26 17:17:49 2006
@@ -1,48 +1,48 @@
-/*
-* Copyright 2004 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 javax.servlet;
-
-/**
- * Ensures that servlets handle
- * only one request at a time. This interface has no methods.
- *
- * <p>If a servlet implements this interface, you are <i>guaranteed</i>
- * that no two threads will execute concurrently in the
- * servlet's <code>service</code> method. The servlet container
- * can make this guarantee by synchronizing access to a single
- * instance of the servlet, or by maintaining a pool of servlet
- * instances and dispatching each new request to a free servlet.
- *
- * <p>Note that SingleThreadModel does not solve all thread safety
- * issues.  For example, session attributes and static variables can
- * still be accessed by multiple requests on multiple threads
- * at the same time, even when SingleThreadModel servlets are used.
- * It is recommended that a developer take other means to resolve
- * those issues instead of implementing this interface, such as
- * avoiding the usage of an instance variable or synchronizing
- * the block of the code accessing those resources.
- * This interface is deprecated in Servlet API version 2.4.
- *
- *
- * @author	Various
- * @version	$Version$
- *
- * @deprecated	As of Java Servlet API 2.4, with no direct
- *	replacement.
- */
-
-public interface SingleThreadModel {
-}
+/*
+* Copyright 2004 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 javax.servlet;
+
+/**
+ * Ensures that servlets handle
+ * only one request at a time. This interface has no methods.
+ *
+ * <p>If a servlet implements this interface, you are <i>guaranteed</i>
+ * that no two threads will execute concurrently in the
+ * servlet's <code>service</code> method. The servlet container
+ * can make this guarantee by synchronizing access to a single
+ * instance of the servlet, or by maintaining a pool of servlet
+ * instances and dispatching each new request to a free servlet.
+ *
+ * <p>Note that SingleThreadModel does not solve all thread safety
+ * issues.  For example, session attributes and static variables can
+ * still be accessed by multiple requests on multiple threads
+ * at the same time, even when SingleThreadModel servlets are used.
+ * It is recommended that a developer take other means to resolve
+ * those issues instead of implementing this interface, such as
+ * avoiding the usage of an instance variable or synchronizing
+ * the block of the code accessing those resources.
+ * This interface is deprecated in Servlet API version 2.4.
+ *
+ *
+ * @author	Various
+ * @version	$Version$
+ *
+ * @deprecated	As of Java Servlet API 2.4, with no direct
+ *	replacement.
+ */
+
+public interface SingleThreadModel {
+}

Propchange: geronimo/specs/trunk/geronimo-servlet_2.5_spec/src/main/java/javax/servlet/SingleThreadModel.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/specs/trunk/geronimo-servlet_2.5_spec/src/main/java/javax/servlet/SingleThreadModel.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: geronimo/specs/trunk/geronimo-servlet_2.5_spec/src/main/java/javax/servlet/SingleThreadModel.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: geronimo/specs/trunk/geronimo-servlet_2.5_spec/src/main/java/javax/servlet/UnavailableException.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-servlet_2.5_spec/src/main/java/javax/servlet/UnavailableException.java?rev=437256&r1=437255&r2=437256&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-servlet_2.5_spec/src/main/java/javax/servlet/UnavailableException.java (original)
+++ geronimo/specs/trunk/geronimo-servlet_2.5_spec/src/main/java/javax/servlet/UnavailableException.java Sat Aug 26 17:17:49 2006
@@ -1,205 +1,205 @@
-/*
-* Copyright 2004 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 javax.servlet;
-
-
-/**
- * Defines an exception that a servlet or filter throws to indicate
- * that it is permanently or temporarily unavailable. 
- *
- * <p>When a servlet or filter is permanently unavailable, something is wrong
- * with it, and it cannot handle
- * requests until some action is taken. For example, a servlet
- * might be configured incorrectly, or a filter's state may be corrupted.
- * The component should log both the error and the corrective action
- * that is needed.
- *
- * <p>A servlet or filter is temporarily unavailable if it cannot handle
- * requests momentarily due to some system-wide problem. For example,
- * a third-tier server might not be accessible, or there may be 
- * insufficient memory or disk storage to handle requests. A system
- * administrator may need to take corrective action.
- *
- * <p>Servlet containers can safely treat both types of unavailable
- * exceptions in the same way. However, treating temporary unavailability
- * effectively makes the servlet container more robust. Specifically,
- * the servlet container might block requests to the servlet or filter for a period
- * of time suggested by the exception, rather than rejecting them until
- * the servlet container restarts.
- *
- *
- * @author 	Various
- * @version 	$Version$
- *
- */
-
-public class UnavailableException
-extends ServletException {
-
-    private Servlet     servlet;           // what's unavailable
-    private boolean     permanent;         // needs admin action?
-    private int         seconds;           // unavailability estimate
-
-    /**
-     * 
-     * @deprecated	As of Java Servlet API 2.2, use {@link
-     * 			#UnavailableException(String)} instead.
-     *
-     * @param servlet 	the <code>Servlet</code> instance that is
-     *                  unavailable
-     *
-     * @param msg 	a <code>String</code> specifying the
-     *                  descriptive message
-     *
-     */
-
-    public UnavailableException(Servlet servlet, String msg) {
-	super(msg);
-	this.servlet = servlet;
-	permanent = true;
-    }
- 
-    /**
-     * @deprecated	As of Java Servlet API 2.2, use {@link
-     *			#UnavailableException(String, int)} instead.
-     *
-     * @param seconds	an integer specifying the number of seconds
-     * 			the servlet expects to be unavailable; if
-     *			zero or negative, indicates that the servlet
-     *			can't make an estimate
-     *
-     * @param servlet	the <code>Servlet</code> that is unavailable
-     * 
-     * @param msg	a <code>String</code> specifying the descriptive 
-     *			message, which can be written to a log file or 
-     *			displayed for the user.
-     *
-     */
-    
-    public UnavailableException(int seconds, Servlet servlet, String msg) {
-	super(msg);
-	this.servlet = servlet;
-	if (seconds <= 0)
-	    this.seconds = -1;
-	else
-	    this.seconds = seconds;
-	permanent = false;
-    }
-
-    /**
-     * 
-     * Constructs a new exception with a descriptive
-     * message indicating that the servlet is permanently
-     * unavailable.
-     *
-     * @param msg 	a <code>String</code> specifying the
-     *                  descriptive message
-     *
-     */
-
-    public UnavailableException(String msg) {
-	super(msg);
-
-	permanent = true;
-    }
-
-    /**
-     * Constructs a new exception with a descriptive message
-     * indicating that the servlet is temporarily unavailable
-     * and giving an estimate of how long it will be unavailable.
-     * 
-     * <p>In some cases, the servlet cannot make an estimate. For
-     * example, the servlet might know that a server it needs is
-     * not running, but not be able to report how long it will take
-     * to be restored to functionality. This can be indicated with
-     * a negative or zero value for the <code>seconds</code> argument.
-     *
-     * @param msg	a <code>String</code> specifying the
-     *                  descriptive message, which can be written
-     *                  to a log file or displayed for the user.
-     *
-     * @param seconds	an integer specifying the number of seconds
-     * 			the servlet expects to be unavailable; if
-     *			zero or negative, indicates that the servlet
-     *			can't make an estimate
-     *
-     */
-    
-    public UnavailableException(String msg, int seconds) {
-	super(msg);
-
-	if (seconds <= 0)
-	    this.seconds = -1;
-	else
-	    this.seconds = seconds;
-
-	permanent = false;
-    }
-
-    /**
-     *
-     * Returns a <code>boolean</code> indicating
-     * whether the servlet is permanently unavailable.
-     * If so, something is wrong with the servlet, and the
-     * system administrator must take some corrective action.
-     *
-     * @return		<code>true</code> if the servlet is
-     *			permanently unavailable; <code>false</code>
-     *			if the servlet is available or temporarily
-     *			unavailable
-     *
-     */
-     
-    public boolean isPermanent() {
-	return permanent;
-    }
-  
-    /**
-     * @deprecated	As of Java Servlet API 2.2, with no replacement.
-     *
-     * Returns the servlet that is reporting its unavailability.
-     * 
-     * @return		the <code>Servlet</code> object that is 
-     *			throwing the <code>UnavailableException</code>
-     *
-     */
-     
-    public Servlet getServlet() {
-	return servlet;
-    }
-
-    /**
-     * Returns the number of seconds the servlet expects to 
-     * be temporarily unavailable.  
-     *
-     * <p>If this method returns a negative number, the servlet
-     * is permanently unavailable or cannot provide an estimate of
-     * how long it will be unavailable. No effort is
-     * made to correct for the time elapsed since the exception was
-     * first reported.
-     *
-     * @return		an integer specifying the number of seconds
-     *			the servlet will be temporarily unavailable,
-     *			or a negative number if the servlet is permanently
-     *			unavailable or cannot make an estimate
-     *
-     */
-     
-    public int getUnavailableSeconds() {
-	return permanent ? -1 : seconds;
-    }
-}
+/*
+* Copyright 2004 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 javax.servlet;
+
+
+/**
+ * Defines an exception that a servlet or filter throws to indicate
+ * that it is permanently or temporarily unavailable. 
+ *
+ * <p>When a servlet or filter is permanently unavailable, something is wrong
+ * with it, and it cannot handle
+ * requests until some action is taken. For example, a servlet
+ * might be configured incorrectly, or a filter's state may be corrupted.
+ * The component should log both the error and the corrective action
+ * that is needed.
+ *
+ * <p>A servlet or filter is temporarily unavailable if it cannot handle
+ * requests momentarily due to some system-wide problem. For example,
+ * a third-tier server might not be accessible, or there may be 
+ * insufficient memory or disk storage to handle requests. A system
+ * administrator may need to take corrective action.
+ *
+ * <p>Servlet containers can safely treat both types of unavailable
+ * exceptions in the same way. However, treating temporary unavailability
+ * effectively makes the servlet container more robust. Specifically,
+ * the servlet container might block requests to the servlet or filter for a period
+ * of time suggested by the exception, rather than rejecting them until
+ * the servlet container restarts.
+ *
+ *
+ * @author 	Various
+ * @version 	$Version$
+ *
+ */
+
+public class UnavailableException
+extends ServletException {
+
+    private Servlet     servlet;           // what's unavailable
+    private boolean     permanent;         // needs admin action?
+    private int         seconds;           // unavailability estimate
+
+    /**
+     * 
+     * @deprecated	As of Java Servlet API 2.2, use {@link
+     * 			#UnavailableException(String)} instead.
+     *
+     * @param servlet 	the <code>Servlet</code> instance that is
+     *                  unavailable
+     *
+     * @param msg 	a <code>String</code> specifying the
+     *                  descriptive message
+     *
+     */
+
+    public UnavailableException(Servlet servlet, String msg) {
+	super(msg);
+	this.servlet = servlet;
+	permanent = true;
+    }
+ 
+    /**
+     * @deprecated	As of Java Servlet API 2.2, use {@link
+     *			#UnavailableException(String, int)} instead.
+     *
+     * @param seconds	an integer specifying the number of seconds
+     * 			the servlet expects to be unavailable; if
+     *			zero or negative, indicates that the servlet
+     *			can't make an estimate
+     *
+     * @param servlet	the <code>Servlet</code> that is unavailable
+     * 
+     * @param msg	a <code>String</code> specifying the descriptive 
+     *			message, which can be written to a log file or 
+     *			displayed for the user.
+     *
+     */
+    
+    public UnavailableException(int seconds, Servlet servlet, String msg) {
+	super(msg);
+	this.servlet = servlet;
+	if (seconds <= 0)
+	    this.seconds = -1;
+	else
+	    this.seconds = seconds;
+	permanent = false;
+    }
+
+    /**
+     * 
+     * Constructs a new exception with a descriptive
+     * message indicating that the servlet is permanently
+     * unavailable.
+     *
+     * @param msg 	a <code>String</code> specifying the
+     *                  descriptive message
+     *
+     */
+
+    public UnavailableException(String msg) {
+	super(msg);
+
+	permanent = true;
+    }
+
+    /**
+     * Constructs a new exception with a descriptive message
+     * indicating that the servlet is temporarily unavailable
+     * and giving an estimate of how long it will be unavailable.
+     * 
+     * <p>In some cases, the servlet cannot make an estimate. For
+     * example, the servlet might know that a server it needs is
+     * not running, but not be able to report how long it will take
+     * to be restored to functionality. This can be indicated with
+     * a negative or zero value for the <code>seconds</code> argument.
+     *
+     * @param msg	a <code>String</code> specifying the
+     *                  descriptive message, which can be written
+     *                  to a log file or displayed for the user.
+     *
+     * @param seconds	an integer specifying the number of seconds
+     * 			the servlet expects to be unavailable; if
+     *			zero or negative, indicates that the servlet
+     *			can't make an estimate
+     *
+     */
+    
+    public UnavailableException(String msg, int seconds) {
+	super(msg);
+
+	if (seconds <= 0)
+	    this.seconds = -1;
+	else
+	    this.seconds = seconds;
+
+	permanent = false;
+    }
+
+    /**
+     *
+     * Returns a <code>boolean</code> indicating
+     * whether the servlet is permanently unavailable.
+     * If so, something is wrong with the servlet, and the
+     * system administrator must take some corrective action.
+     *
+     * @return		<code>true</code> if the servlet is
+     *			permanently unavailable; <code>false</code>
+     *			if the servlet is available or temporarily
+     *			unavailable
+     *
+     */
+     
+    public boolean isPermanent() {
+	return permanent;
+    }
+  
+    /**
+     * @deprecated	As of Java Servlet API 2.2, with no replacement.
+     *
+     * Returns the servlet that is reporting its unavailability.
+     * 
+     * @return		the <code>Servlet</code> object that is 
+     *			throwing the <code>UnavailableException</code>
+     *
+     */
+     
+    public Servlet getServlet() {
+	return servlet;
+    }
+
+    /**
+     * Returns the number of seconds the servlet expects to 
+     * be temporarily unavailable.  
+     *
+     * <p>If this method returns a negative number, the servlet
+     * is permanently unavailable or cannot provide an estimate of
+     * how long it will be unavailable. No effort is
+     * made to correct for the time elapsed since the exception was
+     * first reported.
+     *
+     * @return		an integer specifying the number of seconds
+     *			the servlet will be temporarily unavailable,
+     *			or a negative number if the servlet is permanently
+     *			unavailable or cannot make an estimate
+     *
+     */
+     
+    public int getUnavailableSeconds() {
+	return permanent ? -1 : seconds;
+    }
+}

Propchange: geronimo/specs/trunk/geronimo-servlet_2.5_spec/src/main/java/javax/servlet/UnavailableException.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/specs/trunk/geronimo-servlet_2.5_spec/src/main/java/javax/servlet/UnavailableException.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: geronimo/specs/trunk/geronimo-servlet_2.5_spec/src/main/java/javax/servlet/UnavailableException.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain