All Downloads are FREE. Search and download functionalities are using the official Maven repository.

atg.servlet.ServletTestUtils Maven / Gradle / Ivy

Go to download

ATG DUST is a framework for building JUnit tests for applications built on the ATG Dynamo platform. This framework allows one to quickly write test code that depends up Nucleus or ATG Repositories. By using this framework one can drastically cut down on development time. It takes only a few seconds to start up a test with a repository, but it may take multiple minutes to start up an application server. To get started with DUST, take a look at http://atgdust.sourceforge.net/first-test.html. This page will walk you through the process of running a basic test which starts Nucleus. After that, read the other getting started guides to describe how to create standalone Junit tests which can startup repositories and use the DynamoHttpServletResponse classes. For only ATG10 and tested.

The newest version!
/**
 * Copyright 2010 ATG DUST Project
 * 
 * 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 atg.servlet;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintStream;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.nio.ByteBuffer;
import java.security.Principal;
import java.util.ArrayList;
import java.util.Dictionary;
import java.util.Enumeration;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Properties;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletInputStream;
import javax.servlet.ServletOutputStream;
import javax.servlet.ServletRequest;
import javax.servlet.ServletRequestWrapper;
import javax.servlet.ServletResponse;
import javax.servlet.ServletResponseWrapper;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import atg.core.io.ByteBufferInputStream;
import atg.core.io.ByteBufferOutputStream;
import atg.core.util.StringUtils;
import atg.droplet.TagConverter;
import atg.naming.NameContext;
import atg.nucleus.Nucleus;
import atg.nucleus.RequestScopeManager;
import atg.nucleus.WindowScopeManager;
import atg.nucleus.logging.ApplicationLogging;
import atg.nucleus.naming.ComponentName;
import atg.nucleus.naming.ParameterName;
import atg.security.UserAuthenticator;
import atg.server.http.TestingHttpConnectionServletInputStream;
import atg.servlet.exittracking.ExitTrackingHandler;
import atg.servlet.jsp.WebPools;
import atg.servlet.minimal.WebApplicationInterface;
import atg.servlet.sessiontracking.GenericHttpSession;
import atg.service.dynamo.AppServerConfig;
import atg.core.net.URLUtils;
import java.util.HashMap;
import java.util.Collection;

/**
 * Utility methods for setting up Servlet based tests.
 * 
 * @author Adam Belmont
 *
 * @version $Id: //test/UnitTests/base/main/src/Java/atg/servlet/ServletTestUtils.java#6 $
 */
public class ServletTestUtils {

  //-------------------------------------
  /** Class version string */

  public static String CLASS_VERSION = "$Id: //test/UnitTests/base/main/src/Java/atg/servlet/ServletTestUtils.java#6 $$Change: 557341 $";


  //-------------------------------------
  /** Member variables. */


  // -----------------------------
  /**
   * Creates a new DynamoHttpServletRequest object that can be used in a
   * unit test to resolve session-scoped objects. 
   *
   * 

* * Unlike createDynamoHttpServletRequest, a response is also * created and set on the request. * *

* The request is setup with * an InputStream, OutputStream and the given set of request parameters. * *

* * Note that for session resolution to work, you must have set * the AppServerConfig component to a non-das value like "tomcat". Also * you may need to invoke ServletUtil.setCurrentRequest() to the returned * request, in some cases, depending on the expectations of the code * you are invoking. If you use ServletUtil.setCurrentRequest() be * sure to null it out at the end of your test. * * @param pNucleus the nucleus to use. * * @param pSessionId the session ID to use. If null, defaults to * "NOSESSIONID". */ public TestingDynamoHttpServletRequest createDynamoHttpServletRequestForSession( Nucleus pNucleus, String pSessionId, String pWindowId) { Map mapParams = new HashMap(); if (pWindowId != null) { mapParams.put(DynamoHttpServletRequest.WINDOW_ID_PARAM_NAME, pWindowId); } return createDynamoHttpServletRequestForSession(pNucleus, mapParams, 1024, "GET", pSessionId); } // ----------------------------- /** * Creates a new DynamoHttpServletRequest object that can be used in a * unit test to resolve session-scoped objects. * *

* * Unlike createDynamoHttpServletRequest, a response is also * created and set on the request. * *

* The request is setup with * an InputStream, OutputStream and the given set of request parameters. * *

* * Note that for session resolution to work, you must have set * the AppServerConfig component to a non-das value like "tomcat". Also * you may need to invoke ServletUtil.setCurrentRequest() to the returned * request, in some cases, depending on the expectations of the code * you are invoking. If you use ServletUtil.setCurrentRequest() be * sure to null it out at the end of your test. * * @param pNucleus the nucleus to use. * @param pParameters * A set of request parameters that this request should * initially be populated with. Values can be simple Strings, or * can beString[] or List objects for multi-value * parameters. * @param pBufferSize * The size in bytes of the backing buffer holding stream data for * this request * @param pMethod * The HTTP method for this request. For example GET,POST,PUT */ public TestingDynamoHttpServletRequest createDynamoHttpServletRequestForSession( Nucleus pNucleus, Map pParameters, int pBufferSize, String pMethod, String pSessionId) { if (getAppServerConfigPath() != null) { // check AppServerConfig to make sure it is set properly for // session-scoped resolution to work. AppServerConfig config = (AppServerConfig) pNucleus.resolveName(getAppServerConfigPath()); if ("das".equals(config.getAppServer())) { throw new RuntimeException( getAppServerConfigPath() + ".appServer must be set to a non-das property (like \"Tomcat\"" + " in order for session name resolution to work." ); } } // make sure we are not a dynamo AppServer ServletUtil.setIsDynamoAppserver(false); TestingDynamoHttpServletRequest request = createDynamoHttpServletRequest(pParameters, pBufferSize, pMethod, pSessionId); request.setResponse(createDynamoHttpServletResponse()); setExternalComponentsOnRequest(pNucleus, request); return request; } /** Wrap the specified request, and configure minimally for name * resolution. This method does not create a * TestingDynamoHttpServletRequest, but is instead intended for * either wrapping native appserver requests, or other externally * created requests (such as cactus). * * @param pRequest the request to wrap. * @param pNucleus the Nucleus to use for name resolutions * on the request. * * @return the DynamoHttpServletRequest wrapping pRequest */ public DynamoHttpServletRequest wrapForNameResolution( HttpServletRequest pRequest, Nucleus pNucleus) { if (pRequest instanceof DynamoHttpServletRequest) { throw new IllegalArgumentException("Cannot wrap a DynamoHttpServletRequest with another."); } DynamoHttpServletRequest dynRequest = new DynamoHttpServletRequest(); dynRequest.setRequest(pRequest); setExternalComponentsOnRequest(pNucleus, dynRequest); return dynRequest; } /** Get the Nucleus path of the MimeTyper. If null is returned, then * the mime-typer will not be set by * createDynamoHttpServletRequest. */ protected String getMimeTyperPath() { return "/atg/dynamo/servlet/pipeline/MimeTyper"; } /** Return the path of the request scope manager. A null value * means the scope manager will not be created. */ protected String getRequestScopeManagerPath() { return "/atg/dynamo/servlet/pipeline/RequestScopeManager"; } /** Return the path of the request scope manager. A null value * means the scope manager will not be created. */ protected String getWindowScopeManagerPath() { return "/atg/dynamo/servlet/pipeline/WindowScopeManager"; } /** Get the Nucleus path of the AppServerConfig. If null is returned, then * the AppServerConfig will not be checked by * createDynamoHttpServletRequestForSession. */ protected String getAppServerConfigPath() { return "/atg/dynamo/service/AppServerConfig"; } // ----------------------------- /** * Creates a new DynamoHttpServletRequest object that can be used in a unit * test. The request is setup with an InputStream, OutputStream and the given * set of request parameters. * * @param pParameters * A set of request parameters that this request should * initially be populated with. Values can be simple Strings, or * can beString[] or List objects for multi-value * parameters. * @param pBufferSize * The size in bytes of the backing buffer holding stream data for * this request * @param pMethod * The HTTP method for this request. For example GET,POST,PUT */ public TestingDynamoHttpServletRequest createDynamoHttpServletRequest( Map pParameters, int pBufferSize, String pMethod) { return createDynamoHttpServletRequest( pParameters, pBufferSize, pMethod, null); } /** Set any external components needed by pRequest to * do name resolutions in the various scopes. * * @param pNucleus the nucleus to use for name resolutions. * @param pRequest the request whose properties should be set. */ public void setExternalComponentsOnRequest( Nucleus pNucleus, DynamoHttpServletRequest pRequest) { pRequest.setNucleus(pNucleus); String strMimeTyperPath = getMimeTyperPath(); if (getMimeTyperPath() != null) { pRequest.setMimeTyper( (MimeTyper) pNucleus.resolveName(getMimeTyperPath())); } if (getRequestScopeManagerPath() != null) { pRequest.setRequestScopeManager( (RequestScopeManager)pNucleus.resolveName( getRequestScopeManagerPath())); } if (getWindowScopeManagerPath() != null) { pRequest.setWindowScopeManager( (WindowScopeManager)pNucleus.resolveName( getWindowScopeManagerPath())); } } // ----------------------------- /** * Creates a new DynamoHtttpServletRequest object that can be used in a unit * test. The request is setup with an InputStream, OutputStream and the given * set of request parameters. * * @param pParameters * A set of request parameters that this request should * initially be populated with. Values can be simple Strings, or * can beString[] or List objects for multi-value * parameters. * @param pBufferSize * The size in bytes of the backing buffer holding stream data for * this request * @param pMethod * The HTTP method for this request. For example GET,POST,PUT * * @param pSessionId The session id on the request. Null means * use default. */ public TestingDynamoHttpServletRequest createDynamoHttpServletRequest( Map pParameters, int pBufferSize, String pMethod, String pSessionId) { GenericHttpServletRequest greq = createGenericHttpServletRequest(pSessionId); String strQuery = createQueryString(pParameters); // all the following with greq mostly to get parameters parsed greq.setMethod("GET"); // do that query params will get parsed if (strQuery == null) { greq.setRequestURI("/"); // just to avoid NPE } else { greq.setRequestURI("/" + strQuery); } greq.getParameter("foo"); // so parameters will be parsed and stick greq.setMethod(pMethod); // set real method DynamoHttpServletRequest request = new DynamoHttpServletRequest(); request.setRequest(greq); ByteBuffer buffer = ByteBuffer.allocate(pBufferSize); request.setMethod(pMethod); return new TestingDynamoHttpServletRequest(request, buffer); } /** Create a generic HTTP servlet request, or subclass. */ protected GenericHttpServletRequest createGenericHttpServletRequest(String pSessionId) { if (pSessionId != null) { return new SessionIdSettingGenericHttpServletRequest(pSessionId); } return new GenericHttpServletRequest(); } public String createQueryString(Map pParameters) { if (pParameters == null) { return null; } // have to use StringBuffer for URLUtils StringBuffer strbuf = new StringBuffer(); for (Map.Entry entryCur : pParameters.entrySet()) { String strKey = entryCur.getKey(); Object objValue = entryCur.getValue(); if (objValue instanceof String) { escapeAndAppendParamNameAndValue(strbuf, strKey, (String)objValue); } else if (objValue == null) { // just ignore, I reckon } else if (objValue.getClass() == new String[0].getClass()) { String[] rgstr = (String[])(objValue); for (int i = 0; i < rgstr.length; i++) { escapeAndAppendParamNameAndValue(strbuf, strKey, rgstr[i]); } } else if (objValue instanceof ParamStackQueryParams) { String[] rgstr = ((ParamStackQueryParams)objValue).getValues(); for (int i = 0; i < rgstr.length; i++) { escapeAndAppendParamNameAndValue(strbuf, strKey, rgstr[i]); } } else if (objValue instanceof Collection) { for (Object objCur : (Collection)objValue) { escapeAndAppendParamNameAndValue(strbuf, strKey, objCur.toString()); } } else { System.err.println("Unhandled type for value " + objValue + " of parameter entry " + entryCur.getKey() + ", encoding toString() value"); escapeAndAppendParamNameAndValue(strbuf, strKey, objValue.toString()); } } return strbuf.toString(); } /** Escape and append the specified parameter name and value. Uses * "&" for a separator, unless pBuffer is empty, in which case * "?" is used. * * @param pBuffer the buffer to append to * @param pName the name of the query param to append * @param pValue the value of the query param to append */ protected void escapeAndAppendParamNameAndValue( StringBuffer pBuffer, String pName, String pValue) { if (pBuffer.length() == 0) { pBuffer.append("?"); } else { pBuffer.append("&"); } URLUtils.escapeAndAppendUrlString(pBuffer, pName); pBuffer.append("="); URLUtils.escapeAndAppendUrlString(pBuffer, pValue); } /** * A sub-class of GenericHttpServletRequest that allows one to override * the default "notdefined" sessionid for the default session. */ static class SessionIdSettingGenericHttpServletRequest extends GenericHttpServletRequest { String mSessionId; SessionIdSettingGenericHttpServletRequest(String pSessionId) { mSessionId = pSessionId; } // This is only here for 10.0? @Override protected GenericHttpSession createDefaultGenericHttpSession() { return new GenericHttpSession(mSessionId); } @Override // 9.0 and older won't create a session. // If none exists, we make it here. public HttpSession getSession (boolean create) { HttpSession s = super.getSession(create); if (s == null) s = mSession = new GenericHttpSession(mSessionId); return s; } } // end inner-class SessionIdSettingGenericHttpServletRequest // ----------------------------- /** * Creates a new DynamoHtttpServletResponse object that can be used in a unit * test. * */ public TestingDynamoHttpServletResponse createDynamoHttpServletResponse() { DynamoHttpServletResponse response = new DynamoHttpServletResponse(); response.setResponse(new GenericHttpServletResponse()); ByteArrayServletOutputStream out = new ByteArrayServletOutputStream(); response.setOutputStream(out); return new TestingDynamoHttpServletResponse(response); } /** * Creates a request URI **/ public static String createRequestURI (String pContextPath, String pServletPath, String pPathInfo) { StringBuilder sb = new StringBuilder(); if(!StringUtils.isBlank(pContextPath)) { if(!pContextPath.startsWith("/")) sb.append("/"); sb.append(pContextPath); } if(!StringUtils.isBlank(pServletPath)) { if(!pServletPath.startsWith("/")) sb.append("/"); sb.append(pServletPath); } if(!StringUtils.isBlank(pPathInfo)) { if(!pPathInfo.startsWith("/")) sb.append("/"); sb.append(pPathInfo); } String ret = sb.toString(); return ret.replace("//", "/"); } /** * This creates an implementation of MimeTyper with a bunch of * default mime types typically found. This is based off of the * configuration for our MimeTyper component **/ public static MimeTyper createMimeTyper() { ExtensionMimeTyper mimeTyper = new ExtensionMimeTyper(); List mimeTypes = new ArrayList(); mimeTypes.add("bin"); mimeTypes.add("application/octet-stream"); mimeTypes.add("exe"); mimeTypes.add("application/octet-stream"); mimeTypes.add("class"); mimeTypes.add("application/octet-stream"); mimeTypes.add("pdf"); mimeTypes.add("application/pdf"); mimeTypes.add("rtf"); mimeTypes.add("application/rtf"); mimeTypes.add("doc"); mimeTypes.add("application/msword"); mimeTypes.add("xls"); mimeTypes.add("application/vnd.ms-excel"); mimeTypes.add("ppt"); mimeTypes.add("application/vnd.ms-powerpoint"); mimeTypes.add("css"); mimeTypes.add("text/css"); mimeTypes.add("zip"); mimeTypes.add("application/zip"); mimeTypes.add("gif"); mimeTypes.add("image/gif"); mimeTypes.add("jpeg"); mimeTypes.add("image/jpeg"); mimeTypes.add("jpg"); mimeTypes.add("image/jpeg"); mimeTypes.add("jpe"); mimeTypes.add("image/jpeg"); mimeTypes.add("htm"); mimeTypes.add("text/html"); mimeTypes.add("html"); mimeTypes.add("text/html"); mimeTypes.add("txt"); mimeTypes.add("text/plain"); mimeTypes.add("rtx"); mimeTypes.add("text/richtext"); mimeTypes.add("mpeg"); mimeTypes.add("video/mpeg"); mimeTypes.add("mpg"); mimeTypes.add("video/mpeg"); mimeTypes.add("dsp"); mimeTypes.add("dynamo-internal/html"); mimeTypes.add("jhtml"); mimeTypes.add("dynamo-internal/html"); mimeTypes.add("jhtm"); mimeTypes.add("dynamo-internal/html"); mimeTypes.add("jsp"); mimeTypes.add("dynamo-internal/html"); mimeTypes.add("xjsp"); mimeTypes.add("dynamo-internal/html"); mimeTypes.add("dyn"); mimeTypes.add("dynamo-internal/template"); mimeTypes.add("xml"); mimeTypes.add("application/xml"); mimeTypes.add("xsl"); mimeTypes.add("text/xml"); mimeTyper.setExtensionToMimeType(mimeTypes.toArray(new String[0])); mimeTyper.processMimeTypes(); return mimeTyper; } // ------------------------------ /** * A wrapper around DynamoHttpServletResponse to allow for adding test * specific methods */ public static class TestingDynamoHttpServletResponse extends DynamoHttpServletResponse { private DynamoHttpServletResponse mResponse = null; private boolean mDisallowOutputStream = false; private ByteArrayServletOutputStream mTestingOutputStream = null; private String mRedirectLocation; private boolean mBlockDispatches; private boolean mRecordDispatches; private List mDispatchRecords = new ArrayList(0); public TestingDynamoHttpServletResponse (DynamoHttpServletResponse pResponse) { mResponse = pResponse; } //------------------------------------- // property: blockDispatches /** Whether to block request dispatches obtained from the request. */ public void setBlockDispatches(boolean pBlockDispatches) { mBlockDispatches = pBlockDispatches; } /** Whether to block request dispatches obtained from the request. */ public boolean isBlockDispatches() { return mBlockDispatches; } //------------------------------------- // property: blockDispatches /** Whether to block request dispatches obtained from the request. */ public void setRecordDispatches(boolean pRecordDispatches) { mRecordDispatches = pRecordDispatches; } /** Whether to block request dispatches obtained from the request. */ public boolean isRecordDispatches() { return mRecordDispatches; } //------------------------------------------------------- /** Return the list of dispatch records. A record is created by a * RequestDispatcher obtained from a TestingDynamoHttpServletRequest * include() if recordDispaches is true). */ public TestingDispatchRecord[] getDispatchRecords() { return mDispatchRecords.toArray(new TestingDispatchRecord[0]); } /** Whether this request has included to the specified path. Ignores * ServletContext. * * @param pPath the path to check for an include to. * * @return true if this request forwarded to the specified path, * false otherwise. */ public boolean didIncludeToPath(String pPath) { for (TestingDispatchRecord recordCur : mDispatchRecords) { if (recordCur.isInclude() && recordCur.getPath().equals(pPath)) { return true; } } return false; } /** Whether this request has forwarded to the specified path. Ignores * ServletContext. * * @param pPath the path to check for an include to. * * @return true if this request forwarded to the specified path, * false otherwise. */ public boolean didForwardToPath(String pPath) { for (TestingDispatchRecord recordCur : mDispatchRecords) { if (!recordCur.isInclude() && recordCur.getPath().equals(pPath)) { return true; } } return false; } /** Record request dispatches. Only records if recordDispaches * is true. * * @param pServletContext the ServletContext of the include or forward * @param pPath the path of the include or forward. * @param pIsInclude true for an include, false for a forward */ public void recordDispatch(ServletContext pServletContext, String pPath, boolean pIsInclude) { if (isRecordDispatches()) { mDispatchRecords.add( new TestingDispatchRecord(pServletContext, pPath, pIsInclude)); } } /** Get the redirect location. May be the result of redirect or * sendLocalRedirect. */ public String getRedirectLocation() { return mRedirectLocation; } /** * Sets property disallowOutputStream * @param pDisallowOutputStream if true, calling getOutputStream * returns null **/ public void setDisallowOutputStream(boolean pDisallowOutputStream) { mDisallowOutputStream = pDisallowOutputStream; } /** * Returns property disallowOutputStream * @return if true, calling getOutputStream returns null **/ public boolean isDisallowOutputStream() { return mDisallowOutputStream; } /** * Sets the writer on this response to the given output stream. * Users can get access to this outputstream and examine the * output after the data has been written * @param pTestingOutputStream the output stream to use for testing **/ public void setTestingWriter (ByteArrayServletOutputStream pTestingOutputStream) { mTestingOutputStream = pTestingOutputStream; setWriter (new PrintWriter (new OutputStreamWriter (pTestingOutputStream))); } /** * Gets the testing output stream used for this response * @return the testing output stream used for this response **/ public ByteArrayServletOutputStream getTestingOutputStream() { return mTestingOutputStream; } // ------------------------------ // DynamoHttpServletResponse delegate methods beyond this point // /** * @param pCookie * @see atg.servlet.DynamoHttpServletResponse#addCookie(javax.servlet.http.Cookie) */ public void addCookie(Cookie pCookie) { mResponse.addCookie(pCookie); } /** * @param pCookie * @see atg.servlet.DynamoHttpServletResponse#addCookieToBuffer(javax.servlet.http.Cookie) */ public void addCookieToBuffer(Cookie pCookie) { mResponse.addCookieToBuffer(pCookie); } /** * @param pName * @param pValue * @see atg.servlet.DynamoHttpServletResponse#addDateHeader(java.lang.String, long) */ public void addDateHeader(String pName, long pValue) { mResponse.addDateHeader(pName, pValue); } /** * @param pName * @param pValue * @see atg.servlet.DynamoHttpServletResponse#addHeader(java.lang.String, java.lang.String) */ public void addHeader(String pName, String pValue) { mResponse.addHeader(pName, pValue); } /** * @param pName * @param pValue * @see atg.servlet.DynamoHttpServletResponse#addIntHeader(java.lang.String, int) */ public void addIntHeader(String pName, int pValue) { mResponse.addIntHeader(pName, pValue); } /** * @param pName * @return * @see atg.servlet.DynamoHttpServletResponse#containsHeader(java.lang.String) */ public boolean containsHeader(String pName) { return mResponse.containsHeader(pName); } /** * @param pUrl * @return * @deprecated * @see atg.servlet.DynamoHttpServletResponse#encodeRedirectUrl(java.lang.String) */ public String encodeRedirectUrl(String pUrl) { return mResponse.encodeRedirectUrl(pUrl); } /** * @param pUrl * @return * @see atg.servlet.DynamoHttpServletResponse#encodeRedirectURL(java.lang.String) */ public String encodeRedirectURL(String pUrl) { return mResponse.encodeRedirectURL(pUrl); } /** * @param pUrl * @return * @deprecated * @see atg.servlet.DynamoHttpServletResponse#encodeUrl(java.lang.String) */ public String encodeUrl(String pUrl) { return mResponse.encodeUrl(pUrl); } /** * @param pUrl * @return * @see atg.servlet.DynamoHttpServletResponse#encodeURL(java.lang.String) */ public String encodeURL(String pUrl) { return mResponse.encodeURL(pUrl); } /** * @param pObj * @return * @see java.lang.Object#equals(java.lang.Object) */ public boolean equals(Object pObj) { return mResponse.equals(pObj); } /** * @throws IOException * @see atg.servlet.DynamoHttpServletResponse#flushBuffer() */ public void flushBuffer() throws IOException { mResponse.flushBuffer(); } /** * @return * @see atg.servlet.DynamoHttpServletResponse#getBufferSize() */ public int getBufferSize() { return mResponse.getBufferSize(); } /** * @return * @see atg.servlet.DynamoHttpServletResponse#getCharacterEncoding() */ public String getCharacterEncoding() { return mResponse.getCharacterEncoding(); } /** * @return * @see atg.servlet.DynamoHttpServletResponse#getContentType() */ public String getContentType() { return mResponse.getContentType(); } /** * @return * @see atg.servlet.DynamoHttpServletResponse#getContentTypeSet() */ public boolean getContentTypeSet() { return mResponse.getContentTypeSet(); } /** * @return * @see atg.servlet.DynamoHttpServletResponse#getDoExitTracking() */ public boolean getDoExitTracking() { return mResponse.getDoExitTracking(); } /** * @return * @see atg.servlet.DynamoHttpServletResponse#getHeaders() */ public Dictionary getHeaders() { return mResponse.getHeaders(); } /** * @param pHeaderName * @return * @see atg.servlet.DynamoHttpServletResponse#getHeaders(java.lang.String) */ public Enumeration getHeaders(String pHeaderName) { return mResponse.getHeaders(pHeaderName); } /** * @return * @see atg.servlet.DynamoHttpServletResponse#getLocale() */ public Locale getLocale() { return mResponse.getLocale(); } /** * @return * @see atg.servlet.DynamoHttpServletResponse#getLocaleToCharsetMapper() */ public LocaleToCharsetMapper getLocaleToCharsetMapper() { return mResponse.getLocaleToCharsetMapper(); } /** * @return * @throws IOException * @see atg.servlet.DynamoHttpServletResponse#getOutputStream() */ public ServletOutputStream getOutputStream() throws IOException { if(mDisallowOutputStream) return null; return mResponse.getOutputStream(); } /** * @return * @see atg.servlet.DynamoHttpServletResponse#getResponse() */ public HttpServletResponse getResponse() { return mResponse.getResponse(); } /** * @return * @see atg.servlet.DynamoHttpServletResponse#getStatus() */ public int getStatus() { return mResponse.getStatus(); } /** * @return * @see atg.servlet.DynamoHttpServletResponse#getWrapper() */ public ServletResponseWrapper getWrapper() { return mResponse.getWrapper(); } /** * @return * @throws IOException * @see atg.servlet.DynamoHttpServletResponse#getWriter() */ public PrintWriter getWriter() throws IOException { return mResponse.getWriter(); } /** * @return * @see java.lang.Object#hashCode() */ public int hashCode() { return mResponse.hashCode(); } /** * @return * @see atg.servlet.DynamoHttpServletResponse#isCommitted() */ public boolean isCommitted() { return mResponse.isCommitted(); } /** * @return * @see atg.servlet.DynamoHttpServletResponse#isResponseComplete() */ public boolean isResponseComplete() { return mResponse.isResponseComplete(); } /** * @return * @see atg.servlet.DynamoHttpServletResponse#isWriterUsed() */ public boolean isWriterUsed() { return mResponse.isWriterUsed(); } /** * * @see atg.servlet.DynamoHttpServletResponse#reset() */ public void reset() { mResponse.reset(); } /** * * @see atg.servlet.DynamoHttpServletResponse#resetBuffer() */ public void resetBuffer() { mResponse.resetBuffer(); } /** * @param pCode * @param pMessage * @throws IOException * @see atg.servlet.DynamoHttpServletResponse#sendError(int, java.lang.String) */ public void sendError(int pCode, String pMessage) throws IOException { mResponse.sendError(pCode, pMessage); } /** * @param pCode * @throws IOException * @see atg.servlet.DynamoHttpServletResponse#sendError(int) */ public void sendError(int pCode) throws IOException { mResponse.sendError(pCode); } /** * @param pLocation * @param pRequest * @throws IOException * @see atg.servlet.DynamoHttpServletResponse#sendLocalRedirect(java.lang.String, atg.servlet.DynamoHttpServletRequest) */ public void sendLocalRedirect(String pLocation, DynamoHttpServletRequest pRequest) throws IOException { mRedirectLocation = pLocation; mResponse.sendLocalRedirect(pLocation, pRequest); } /** * @param pLocation * @throws IOException * @see atg.servlet.DynamoHttpServletResponse#sendRedirect(java.lang.String) */ public void sendRedirect(String pLocation) throws IOException { mRedirectLocation = pLocation; mResponse.sendRedirect(pLocation); } /** * @param pBufferSize * @see atg.servlet.DynamoHttpServletResponse#setBufferSize(int) */ public void setBufferSize(int pBufferSize) { mResponse.setBufferSize(pBufferSize); } /** * @param pCharset * @see atg.servlet.DynamoHttpServletResponse#setCharacterEncoding(java.lang.String) */ public void setCharacterEncoding(String pCharset) { mResponse.setCharacterEncoding(pCharset); } /** * @param pLength * @see atg.servlet.DynamoHttpServletResponse#setContentLength(int) */ public void setContentLength(int pLength) { mResponse.setContentLength(pLength); } /** * @param pContentType * @see atg.servlet.DynamoHttpServletResponse#setContentType(java.lang.String) */ public void setContentType(String pContentType) { mResponse.setContentType(pContentType); } /** * @param pContentTypeSet * @see atg.servlet.DynamoHttpServletResponse#setContentTypeSet(boolean) */ public void setContentTypeSet(boolean pContentTypeSet) { mResponse.setContentTypeSet(pContentTypeSet); } /** * @param pName * @param pValue * @see atg.servlet.DynamoHttpServletResponse#setDateHeader(java.lang.String, long) */ public void setDateHeader(String pName, long pValue) { mResponse.setDateHeader(pName, pValue); } /** * @param pDoExitTracking * @see atg.servlet.DynamoHttpServletResponse#setDoExitTracking(boolean) */ public void setDoExitTracking(boolean pDoExitTracking) { mResponse.setDoExitTracking(pDoExitTracking); } /** * @param pName * @param pValue * @see atg.servlet.DynamoHttpServletResponse#setHeader(java.lang.String, java.lang.String) */ public void setHeader(String pName, String pValue) { mResponse.setHeader(pName, pValue); } /** * @param pName * @param pValue * @see atg.servlet.DynamoHttpServletResponse#setIntHeader(java.lang.String, int) */ public void setIntHeader(String pName, int pValue) { mResponse.setIntHeader(pName, pValue); } /** * @param pLocale * @see atg.servlet.DynamoHttpServletResponse#setLocale(java.util.Locale) */ public void setLocale(Locale pLocale) { mResponse.setLocale(pLocale); } /** * @param pMapper * @see atg.servlet.DynamoHttpServletResponse#setLocaleToCharsetMapper(atg.servlet.LocaleToCharsetMapper) */ public void setLocaleToCharsetMapper(LocaleToCharsetMapper pMapper) { mResponse.setLocaleToCharsetMapper(pMapper); } /** * @param pOutputStream * @see atg.servlet.DynamoHttpServletResponse#setOutputStream(javax.servlet.ServletOutputStream) */ public void setOutputStream(ServletOutputStream pOutputStream) { if(pOutputStream instanceof ByteArrayServletOutputStream) mTestingOutputStream = (ByteArrayServletOutputStream)pOutputStream; mResponse.setOutputStream(pOutputStream); } /** * @param pRequest * @see atg.servlet.DynamoHttpServletResponse#setRequest(atg.servlet.DynamoHttpServletRequest) */ public void setRequest(DynamoHttpServletRequest pRequest) { mResponse.setRequest(pRequest); } /** * @param pResponse * @see atg.servlet.DynamoHttpServletResponse#setResponse(javax.servlet.http.HttpServletResponse) */ public void setResponse(HttpServletResponse pResponse) { mResponse.setResponse(pResponse); } /** * @param pCode * @param pMessage * @deprecated * @see atg.servlet.DynamoHttpServletResponse#setStatus(int, java.lang.String) */ public void setStatus(int pCode, String pMessage) { mResponse.setStatus(pCode, pMessage); } /** * @param pCode * @see atg.servlet.DynamoHttpServletResponse#setStatus(int) */ public void setStatus(int pCode) { mResponse.setStatus(pCode); } /** * @param pStrict * @return * @see atg.servlet.DynamoHttpServletResponse#setStrictOutputAccess(boolean) */ public boolean setStrictOutputAccess(boolean pStrict) { return mResponse.setStrictOutputAccess(pStrict); } /** * @param pWrapper * @see atg.servlet.DynamoHttpServletResponse#setWrapper(javax.servlet.ServletResponseWrapper) */ public void setWrapper(ServletResponseWrapper pWrapper) { mResponse.setWrapper(pWrapper); } /** * @param pWriter * @see atg.servlet.DynamoHttpServletResponse#setWriter(java.io.PrintWriter) */ public void setWriter(PrintWriter pWriter) { mResponse.setWriter(pWriter); } /** * @return * @see java.lang.Object#toString() */ public String toString() { return mResponse.toString(); } } // end inner-class TestingDynamoHttpServletResponse //------------------------------------------------------- /** An interface used by the TestingDynamoHttpServletRequest for * notifying an implementer when ServiceParameterCallback is invoked. */ public static interface ServiceParameterCallback { /** String the name of the parameter. * @param pRequest the Request used for the service. * @param pResponse the Response used for the service. * @param pCvt the tag converter to use (May be null) * @param pCvtArgs the arguments used (may be null) * @param pResult the result of the default implementation* * of ServiceParameter * @param pIsLocal whether this was a call to serviceLocalParameter * * * @return the result of invoking serviceParameter. Should return * pResult, unless the return code should be modified. */ public boolean didServiceParameter(String pParameterName, ServletRequest pRequest, ServletResponse pResponse, TagConverter pCvt, Properties pCvtArgs, boolean pResult, boolean pIsLocal); } // end interface ServiceParameterCallback // ------------------------------ /** * A wrapper around DynamoHttpServletRequest to allow for adding some test * specific methods. */ public static class TestingDynamoHttpServletRequest extends DynamoHttpServletRequest { private DynamoHttpServletRequest mRequest = null; private ByteBuffer mBuffer = null; ByteBufferOutputStream mClientOutputStream = null; ServletInputStream mInputStream = null; private ServiceParameterCallback mServiceParameterCallback; // ------------------------------ /** * Constructs a new TestingDynamoHttpServletRequest which wraps the given * request object. * * NOTE: The getLog() method of DynamoHttpServletRequest is final and cannot be overriden in this * test version. Therefore you cannot depend upon the functionality of this method call in the test class. * @param pRequest */ public TestingDynamoHttpServletRequest(DynamoHttpServletRequest pRequest, ByteBuffer pBuffer) { mRequest = pRequest; mBuffer = pBuffer; } //------------------------------------- // property: serviceParameterCallback /** Sets the the service parameter callback, which gets notified * when ServiceParameter or serviceLocalParameter are invoked. */ public ServiceParameterCallback setServiceParameterCallback(ServiceParameterCallback pServiceParameterCallback) { ServiceParameterCallback callbackOld = mServiceParameterCallback; mServiceParameterCallback = pServiceParameterCallback; return mServiceParameterCallback; } /** Returns the service parameter callback, which gets notified * when ServiceParameter or serviceLocalParameter are invoked. */ public ServiceParameterCallback getServiceParameterCallback() { return mServiceParameterCallback; } // ------------------------------ /** * Returns an output stream to which data can be written. This simulates the * stream to which an HTTP client would write to a server. IMPORTANT: Be * sure to call prepareForRead() after you are done writing * to this stream. This allows that data to be read from the input stream * objtained by calling getInputStream() on the underlying request. * * * @param pNew * if true, a new stream is always created. Otherwise the previous * stream is returned. */ public OutputStream getClientOutputStream(boolean pNew) { if (mClientOutputStream == null || pNew) mClientOutputStream = new ByteBufferOutputStream(mBuffer); return mClientOutputStream; } // ------------------------------ /** * Flips the underlying buffer to the client output stream so that it can be * read from. This method must be invoked after content has been written to * the output stream obtained by calling getClientOutputStream * */ public void prepareForRead() { if (mBuffer != null) mBuffer.flip(); mInputStream = new TestingHttpConnectionServletInputStream( new ByteBufferInputStream(mBuffer), mBuffer.limit()); mRequest.setInputStream(mInputStream); } // ------------------------------ // DynamoHttpServletRequest delegate methods beyond this point // /** * @param pKey * @param pValue * @see atg.servlet.DynamoHttpServletRequest#addPersistentQueryParameter(java.lang.String, java.lang.String) */ public void addPersistentQueryParameter(String pKey, String pValue) { mRequest.addPersistentQueryParameter(pKey, pValue); } /** * @param pKey * @param pValue * @see atg.servlet.DynamoHttpServletRequest#addQueryParameter(java.lang.String, java.lang.String) */ public void addQueryParameter(String pKey, String pValue) { mRequest.addQueryParameter(pKey, pValue); } /** * @param pKey * @param pValue * @see atg.servlet.DynamoHttpServletRequest#addURLParameter(java.lang.String, java.lang.String) */ public void addURLParameter(String pKey, String pValue) { mRequest.addURLParameter(pKey, pValue); } /** * @param pURL * @param pEncodeParameters * @param pClearParameters * @param pIsImageURL * @param pInterpretURIs * @param pDoExitTracking * @param pPrependMode * @return * @see atg.servlet.DynamoHttpServletRequest#encodeURL(java.lang.String, boolean, boolean, boolean, boolean, boolean, int) */ public String encodeURL(String pURL, boolean pEncodeParameters, boolean pClearParameters, boolean pIsImageURL, boolean pInterpretURIs, boolean pDoExitTracking, int pPrependMode) { return mRequest.encodeURL(pURL, pEncodeParameters, pClearParameters, pIsImageURL, pInterpretURIs, pDoExitTracking, pPrependMode); } /** * @param pURL * @param pEncodeParameters * @param pClearParameters * @param pIsImageURL * @param pInterpretURIs * @param pDoExitTracking * @return * @see atg.servlet.DynamoHttpServletRequest#encodeURL(java.lang.String, boolean, boolean, boolean, boolean, boolean) */ public String encodeURL(String pURL, boolean pEncodeParameters, boolean pClearParameters, boolean pIsImageURL, boolean pInterpretURIs, boolean pDoExitTracking) { return mRequest.encodeURL(pURL, pEncodeParameters, pClearParameters, pIsImageURL, pInterpretURIs, pDoExitTracking); } /** * @param pURL * @param pEncodeParameters * @param pClearParameters * @param pIsImageURL * @param pInterpretURIs * @return * @see atg.servlet.DynamoHttpServletRequest#encodeURL(java.lang.String, boolean, boolean, boolean, boolean) */ public String encodeURL(String pURL, boolean pEncodeParameters, boolean pClearParameters, boolean pIsImageURL, boolean pInterpretURIs) { return mRequest.encodeURL(pURL, pEncodeParameters, pClearParameters, pIsImageURL, pInterpretURIs); } /** * @param pURL * @param pEncodeParameters * @param pClearParameters * @param pIsImageURL * @return * @see atg.servlet.DynamoHttpServletRequest#encodeURL(java.lang.String, boolean, boolean, boolean) */ public String encodeURL(String pURL, boolean pEncodeParameters, boolean pClearParameters, boolean pIsImageURL) { return mRequest.encodeURL(pURL, pEncodeParameters, pClearParameters, pIsImageURL); } /** * @param pURL * @param pClearParameters * @return * @see atg.servlet.DynamoHttpServletRequest#encodeURL(java.lang.String, boolean) */ public String encodeURL(String pURL, boolean pClearParameters) { return mRequest.encodeURL(pURL, pClearParameters); } /** * @param pURL * @return * @see atg.servlet.DynamoHttpServletRequest#encodeURL(java.lang.String) */ public String encodeURL(String pURL) { return mRequest.encodeURL(pURL); } /** * * @see atg.servlet.DynamoHttpServletRequest#endRequest() */ public void endRequest() { mRequest.endRequest(); } /** * @param pObj * @return * @see java.lang.Object#equals(java.lang.Object) */ public boolean equals(Object pObj) { return mRequest.equals(pObj); } /** * @param pP0 * @param pCreate * @return * @see atg.servlet.MutableHttpServletRequest#getAttribute(java.lang.String, boolean) */ public Object getAttribute(String pP0, boolean pCreate) { return mRequest.getAttribute(pP0, pCreate); } /** * @param pP0 * @return * @see atg.servlet.MutableHttpServletRequest#getAttribute(java.lang.String) */ public Object getAttribute(String pP0) { return mRequest.getAttribute(pP0); } /** * @return * @see atg.servlet.MutableHttpServletRequest#getAttributeNames() */ public Enumeration getAttributeNames() { return mRequest.getAttributeNames(); } /** * @return * @see atg.servlet.MutableHttpServletRequest#getAuthType() */ public String getAuthType() { return mRequest.getAuthType(); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#getBaseDirectory() */ public String getBaseDirectory() { return mRequest.getBaseDirectory(); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#getBrowserTyper() */ public BrowserTyper getBrowserTyper() { return mRequest.getBrowserTyper(); } /** * @return * @see atg.servlet.MutableHttpServletRequest#getCharacterEncoding() */ public String getCharacterEncoding() { return mRequest.getCharacterEncoding(); } /** * @return * @see atg.servlet.MutableHttpServletRequest#getContentLength() */ public int getContentLength() { return mRequest.getContentLength(); } /** * @return * @see atg.servlet.MutableHttpServletRequest#getContentType() */ public String getContentType() { return mRequest.getContentType(); } /** * @return * @see atg.servlet.MutableHttpServletRequest#getContextPath() */ public String getContextPath() { return mRequest.getContextPath(); } /** * @param pKey * @param pIndex * @return * @see atg.servlet.DynamoHttpServletRequest#getCookieParameter(java.lang.String, int) */ public String getCookieParameter(String pKey, int pIndex) { return mRequest.getCookieParameter(pKey, pIndex); } /** * @param pKey * @return * @see atg.servlet.DynamoHttpServletRequest#getCookieParameter(java.lang.String) */ public String getCookieParameter(String pKey) { return mRequest.getCookieParameter(pKey); } /** * @param pKey * @return * @see atg.servlet.DynamoHttpServletRequest#getCookieParameterCount(java.lang.String) */ public int getCookieParameterCount(String pKey) { return mRequest.getCookieParameterCount(pKey); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#getCookieParameterNames() */ public Enumeration getCookieParameterNames() { return mRequest.getCookieParameterNames(); } /** * @param pKey * @return * @see atg.servlet.DynamoHttpServletRequest#getCookieParameterValues(java.lang.String) */ public String[] getCookieParameterValues(String pKey) { return mRequest.getCookieParameterValues(pKey); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#getCookies() */ public Cookie[] getCookies() { return mRequest.getCookies(); } /** * @param pP0 * @return * @see atg.servlet.MutableHttpServletRequest#getDateHeader(java.lang.String) */ public long getDateHeader(String pP0) { return mRequest.getDateHeader(pP0); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#getDisableExitTracking() */ public boolean getDisableExitTracking() { return mRequest.getDisableExitTracking(); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#getDocRootServicePrefix() */ public String getDocRootServicePrefix() { return mRequest.getDocRootServicePrefix(); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#getEncodeContextPathMode() */ public int getEncodeContextPathMode() { return mRequest.getEncodeContextPathMode(); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#getEncodeServletPath() */ public boolean getEncodeServletPath() { return mRequest.getEncodeServletPath(); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#getEncodeURL() */ public boolean getEncodeURL() { return mRequest.getEncodeURL(); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#getEventFlags() */ public int getEventFlags() { return mRequest.getEventFlags(); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#getExitTrackingHandler() */ public ExitTrackingHandler getExitTrackingHandler() { return mRequest.getExitTrackingHandler(); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#getExitTrackingParameterName() */ public String getExitTrackingParameterName() { return mRequest.getExitTrackingParameterName(); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#getFormEventsSent() */ public boolean getFormEventsSent() { return mRequest.getFormEventsSent(); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#getGenerateRequestLocales() */ public boolean getGenerateRequestLocales() { return mRequest.getGenerateRequestLocales(); } /** * @param pP0 * @return * @see atg.servlet.MutableHttpServletRequest#getHeader(java.lang.String) */ public String getHeader(String pP0) { return mRequest.getHeader(pP0); } /** * @return * @see atg.servlet.MutableHttpServletRequest#getHeaderNames() */ public Enumeration getHeaderNames() { return mRequest.getHeaderNames(); } /** * @param pName * @return * @see atg.servlet.MutableHttpServletRequest#getHeaders(java.lang.String) */ public Enumeration getHeaders(String pName) { return mRequest.getHeaders(pName); } /** * @return * @throws IOException * @see atg.servlet.MutableHttpServletRequest#getInputStream() */ public ServletInputStream getInputStream() throws IOException { if (mRequest.getInputStream() == null) throw new NullPointerException("Underlying input stream is null. Did you call prepareForRead() ?"); return mRequest.getInputStream(); } /** * @param pP0 * @return * @see atg.servlet.MutableHttpServletRequest#getIntHeader(java.lang.String) */ public int getIntHeader(String pP0) { return mRequest.getIntHeader(pP0); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#getLinkEncoding() */ public String getLinkEncoding() { return mRequest.getLinkEncoding(); } /** * @return * @see atg.servlet.MutableHttpServletRequest#getLocalAddr() */ public String getLocalAddr() { return mRequest.getLocalAddr(); } /** * @return * @see atg.servlet.MutableHttpServletRequest#getLocale() */ public Locale getLocale() { return mRequest.getLocale(); } /** * @return * @see atg.servlet.MutableHttpServletRequest#getLocales() */ public Enumeration getLocales() { return mRequest.getLocales(); } /** * @return * @see atg.servlet.MutableHttpServletRequest#getLocalName() */ public String getLocalName() { return mRequest.getLocalName(); } /** * @param pName * @return * @see atg.servlet.DynamoHttpServletRequest#getLocalParameter(atg.nucleus.naming.ParameterName) */ public Object getLocalParameter(ParameterName pName) { return mRequest.getLocalParameter(pName); } /** * @param pName * @return * @see atg.servlet.DynamoHttpServletRequest#getLocalParameter(java.lang.String) */ public Object getLocalParameter(String pName) { return mRequest.getLocalParameter(pName); } /** * @return * @see atg.servlet.MutableHttpServletRequest#getLocalPort() */ public int getLocalPort() { return mRequest.getLocalPort(); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#getMapForCurrentFrame() */ public Map getMapForCurrentFrame() { return mRequest.getMapForCurrentFrame(); } /** * @return * @see atg.servlet.MutableHttpServletRequest#getMethod() */ public String getMethod() { return mRequest.getMethod(); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#getMimeType() */ public String getMimeType() { return mRequest.getMimeType(); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#getMimeTyper() */ public MimeTyper getMimeTyper() { return mRequest.getMimeTyper(); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#getNucleus() */ public Nucleus getNucleus() { return mRequest.getNucleus(); } /** * @param pName * @return * @see atg.servlet.DynamoHttpServletRequest#getObjectParameter(atg.nucleus.naming.ParameterName) */ public Object getObjectParameter(ParameterName pName) { return mRequest.getObjectParameter(pName); } /** * @param pName * @return * @see atg.servlet.DynamoHttpServletRequest#getObjectParameter(java.lang.String) */ public Object getObjectParameter(String pName) { return mRequest.getObjectParameter(pName); } /** * @param pKey * @param pIndex * @return * @see atg.servlet.DynamoHttpServletRequest#getObjectURLParameter(java.lang.String, int) */ public Object getObjectURLParameter(String pKey, int pIndex) { return mRequest.getObjectURLParameter(pKey, pIndex); } /** * @param pName * @return * @see atg.servlet.DynamoHttpServletRequest#getParameter(atg.nucleus.naming.ParameterName) */ public String getParameter(ParameterName pName) { return mRequest.getParameter(pName); } /** * @param pName * @return * @see atg.servlet.DynamoHttpServletRequest#getParameter(java.lang.String) */ public String getParameter(String pName) { return mRequest.getParameter(pName); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#getParameterDelimiter() */ public String getParameterDelimiter() { return mRequest.getParameterDelimiter(); } /** * @return * @see atg.servlet.MutableHttpServletRequest#getParameterMap() */ public Map getParameterMap() { return mRequest.getParameterMap(); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#getParameterNames() */ public Enumeration getParameterNames() { return mRequest.getParameterNames(); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#getParameterNamesInStack() */ public Enumeration getParameterNamesInStack() { return mRequest.getParameterNamesInStack(); } /** * @param pName * @return * @see atg.servlet.DynamoHttpServletRequest#getParameterValues(java.lang.String) */ public String[] getParameterValues(String pName) { return mRequest.getParameterValues(pName); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#getParamMapForTopFrame() */ public Map getParamMapForTopFrame() { return mRequest.getParamMapForTopFrame(); } /** * @return * @see atg.servlet.MutableHttpServletRequest#getPathInfo() */ public String getPathInfo() { return mRequest.getPathInfo(); } /** * @return * @see atg.servlet.MutableHttpServletRequest#getPathTranslated() */ public String getPathTranslated() { return mRequest.getPathTranslated(); } /** * @param pKey * @return * @see atg.servlet.MutableHttpServletRequest#getPermanentAttribute(atg.servlet.AttributeFactory) */ public Object getPermanentAttribute(AttributeFactory pKey) { return mRequest.getPermanentAttribute(pKey); } /** * @param pKey * @param pIndex * @return * @see atg.servlet.DynamoHttpServletRequest#getPostParameter(java.lang.String, int) */ public String getPostParameter(String pKey, int pIndex) { return mRequest.getPostParameter(pKey, pIndex); } /** * @param pKey * @return * @see atg.servlet.DynamoHttpServletRequest#getPostParameter(java.lang.String) */ public String getPostParameter(String pKey) { return mRequest.getPostParameter(pKey); } /** * @param pKey * @return * @see atg.servlet.DynamoHttpServletRequest#getPostParameterCount(java.lang.String) */ public int getPostParameterCount(String pKey) { return mRequest.getPostParameterCount(pKey); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#getPostParameterNames() */ public Enumeration getPostParameterNames() { return mRequest.getPostParameterNames(); } /** * @param pKey * @return * @see atg.servlet.DynamoHttpServletRequest#getPostParameterValues(java.lang.String) */ public String[] getPostParameterValues(String pKey) { return mRequest.getPostParameterValues(pKey); } /** * @return * @see atg.servlet.MutableHttpServletRequest#getProtocol() */ public String getProtocol() { return mRequest.getProtocol(); } /** * @param pKey * @param pIndex * @return * @see atg.servlet.DynamoHttpServletRequest#getQueryParameter(java.lang.String, int) */ public String getQueryParameter(String pKey, int pIndex) { return mRequest.getQueryParameter(pKey, pIndex); } /** * @param pKey * @return * @see atg.servlet.DynamoHttpServletRequest#getQueryParameter(java.lang.String) */ public String getQueryParameter(String pKey) { return mRequest.getQueryParameter(pKey); } /** * @param pKey * @return * @see atg.servlet.DynamoHttpServletRequest#getQueryParameterCount(java.lang.String) */ public int getQueryParameterCount(String pKey) { return mRequest.getQueryParameterCount(pKey); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#getQueryParameterNames() */ public Enumeration getQueryParameterNames() { return mRequest.getQueryParameterNames(); } /** * @param pKey * @return * @see atg.servlet.DynamoHttpServletRequest#getQueryParameterValues(java.lang.String) */ public String[] getQueryParameterValues(String pKey) { return mRequest.getQueryParameterValues(pKey); } /** * @return * @see atg.servlet.MutableHttpServletRequest#getQueryString() */ public String getQueryString() { return mRequest.getQueryString(); } /** * @return * @throws IOException * @see atg.servlet.MutableHttpServletRequest#getReader() */ public BufferedReader getReader() throws IOException { return mRequest.getReader(); } /** * @param pPath * @return * @see atg.servlet.DynamoHttpServletRequest#getRealPath(java.lang.String) */ public String getRealPath(String pPath) { return mRequest.getRealPath(pPath); } /** * @return * @see atg.servlet.MutableHttpServletRequest#getRemoteAddr() */ public String getRemoteAddr() { return mRequest.getRemoteAddr(); } /** * @return * @see atg.servlet.MutableHttpServletRequest#getRemoteHost() */ public String getRemoteHost() { return mRequest.getRemoteHost(); } /** * @return * @see atg.servlet.MutableHttpServletRequest#getRemotePort() */ public int getRemotePort() { return mRequest.getRemotePort(); } /** * @return * @see atg.servlet.MutableHttpServletRequest#getRemoteUser() */ public String getRemoteUser() { return mRequest.getRemoteUser(); } /** * @return * @see atg.servlet.MutableHttpServletRequest#getRequest() */ public HttpServletRequest getRequest() { return mRequest.getRequest(); } public boolean isBlockDispatches() { if (getResponse() instanceof TestingDynamoHttpServletResponse) { return ((TestingDynamoHttpServletResponse)getResponse()) .isBlockDispatches(); } return false; } public boolean isRecordDispatches() { if (getResponse() instanceof TestingDynamoHttpServletResponse) { return ((TestingDynamoHttpServletResponse)getResponse()) .isRecordDispatches(); } return false; } /** * @param pContext * @param pPath * @return * @see atg.servlet.DynamoHttpServletRequest#getRequestDispatcher(javax.servlet.ServletContext, java.lang.String) */ public RequestDispatcher getRequestDispatcher(ServletContext pContext, String pPath) { RequestDispatcher rd = null; if (!isBlockDispatches()) { rd = mRequest.getRequestDispatcher(pContext, pPath); } if (isRecordDispatches() || isBlockDispatches()) { rd = new TestingRequestDispatcher(pContext, pPath, rd); } return rd; } /** * @param pPath * @return * @see atg.servlet.DynamoHttpServletRequest#getRequestDispatcher(java.lang.String) */ public RequestDispatcher getRequestDispatcher(String pPath) { RequestDispatcher rd = null; if (!isBlockDispatches()) { rd = mRequest.getRequestDispatcher(pPath); } if (isRecordDispatches() || isBlockDispatches()) { rd = new TestingRequestDispatcher(null, pPath, rd); } return rd; } /** * @return * @see atg.servlet.DynamoHttpServletRequest#getRequestedSessionId() */ public String getRequestedSessionId() { return mRequest.getRequestedSessionId(); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#getRequestForComparison() */ public DynamoHttpServletRequest getRequestForComparison() { return mRequest.getRequestForComparison(); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#getRequestLocale() */ public RequestLocale getRequestLocale() { return mRequest.getRequestLocale(); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#getRequestLocalePath() */ public ComponentName getRequestLocalePath() { return mRequest.getRequestLocalePath(); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#getRequestScope() */ public NameContext getRequestScope() { return mRequest.getRequestScope(); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#getRequestScopeManager() */ public RequestScopeManager getRequestScopeManager() { return mRequest.getRequestScopeManager(); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#getRequestURI() */ public String getRequestURI() { return mRequest.getRequestURI(); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#getRequestURIWithQueryString() */ public String getRequestURIWithQueryString() { return mRequest.getRequestURIWithQueryString(); } /** * @return * @see atg.servlet.MutableHttpServletRequest#getRequestURL() */ public StringBuffer getRequestURL() { return mRequest.getRequestURL(); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#getResponse() */ public DynamoHttpServletResponse getResponse() { return mRequest.getResponse(); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#getRestorableSessionIdFromURL() */ public String getRestorableSessionIdFromURL() { return mRequest.getRestorableSessionIdFromURL(); } /** * @return * @see atg.servlet.MutableHttpServletRequest#getScheme() */ public String getScheme() { return mRequest.getScheme(); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#getScrambleKey() */ public byte[] getScrambleKey() { return mRequest.getScrambleKey(); } /** * @return * @see atg.servlet.MutableHttpServletRequest#getServerName() */ public String getServerName() { return mRequest.getServerName(); } /** * @return * @see atg.servlet.MutableHttpServletRequest#getServerPort() */ public int getServerPort() { return mRequest.getServerPort(); } /** * @return * @see atg.servlet.MutableHttpServletRequest#getServletPath() */ public String getServletPath() { return mRequest.getServletPath(); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#getSession() */ public HttpSession getSession() { return mRequest.getSession(); } /** * @param pCreate * @return * @see atg.servlet.DynamoHttpServletRequest#getSession(boolean) */ public HttpSession getSession(boolean pCreate) { return mRequest.getSession(pCreate); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#getSessionConfirmationNumber() */ public long getSessionConfirmationNumber() { return mRequest.getSessionConfirmationNumber(); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#getSessionNameContext() */ public NameContext getSessionNameContext() { return mRequest.getSessionNameContext(); } /** * @return * @deprecated * @see atg.servlet.DynamoHttpServletRequest#getSessionRequest() */ public HttpSessionRequest getSessionRequest() { return mRequest.getSessionRequest(); } /** * @param pCreate * @return * @deprecated * @see atg.servlet.DynamoHttpServletRequest#getSessionRequest(boolean) */ public HttpSessionRequest getSessionRequest(boolean pCreate) { return mRequest.getSessionRequest(pCreate); } /** * @param pKey * @param pIndex * @return * @see atg.servlet.DynamoHttpServletRequest#getURLParameter(java.lang.String, int) */ public String getURLParameter(String pKey, int pIndex) { return mRequest.getURLParameter(pKey, pIndex); } /** * @param pKey * @return * @see atg.servlet.DynamoHttpServletRequest#getURLParameter(java.lang.String) */ public String getURLParameter(String pKey) { return mRequest.getURLParameter(pKey); } /** * @param pKey * @return * @see atg.servlet.DynamoHttpServletRequest#getURLParameterCount(java.lang.String) */ public int getURLParameterCount(String pKey) { return mRequest.getURLParameterCount(pKey); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#getURLParameterNames() */ public Enumeration getURLParameterNames() { return mRequest.getURLParameterNames(); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#getURLParameterString() */ public String getURLParameterString() { return mRequest.getURLParameterString(); } /** * @param pKey * @return * @see atg.servlet.DynamoHttpServletRequest#getURLParameterValues(java.lang.String) */ public String[] getURLParameterValues(String pKey) { return mRequest.getURLParameterValues(pKey); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#getURLSessionIdSpecifier() */ public String getURLSessionIdSpecifier() { return mRequest.getURLSessionIdSpecifier(); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#getUserAuthenticator() */ public UserAuthenticator getUserAuthenticator() { return mRequest.getUserAuthenticator(); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#getUserPrincipal() */ public Principal getUserPrincipal() { return mRequest.getUserPrincipal(); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#getWebApplication() */ public WebApplicationInterface getWebApplication() { return mRequest.getWebApplication(); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#getWebPools() */ public WebPools getWebPools() { return ((TestingDynamoHttpServletRequest) mRequest).getWebPools(); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#getWindowScope() */ public NameContext getWindowScope() { return mRequest.getWindowScope(); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#getWindowScopeManager() */ public WindowScopeManager getWindowScopeManager() { return mRequest.getWindowScopeManager(); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#getWorkingDirectory() */ public String getWorkingDirectory() { return mRequest.getWorkingDirectory(); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#getWrapper() */ public ServletRequestWrapper getWrapper() { return mRequest.getWrapper(); } /** * @return * @see java.lang.Object#hashCode() */ public int hashCode() { return mRequest.hashCode(); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#hasRequestScope() */ public boolean hasRequestScope() { return mRequest.hasRequestScope(); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#isAfterGetsClaimed() */ public boolean isAfterGetsClaimed() { return mRequest.isAfterGetsClaimed(); } /** * @param pFeature * @return * @see atg.servlet.DynamoHttpServletRequest#isBrowserType(java.lang.String) */ public boolean isBrowserType(String pFeature) { return mRequest.isBrowserType(pFeature); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#isDelayedRequest() */ public boolean isDelayedRequest() { return mRequest.isDelayedRequest(); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#isDynamoPipeline() */ public boolean isDynamoPipeline() { return mRequest.isDynamoPipeline(); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#isInitialized() */ public boolean isInitialized() { return mRequest.isInitialized(); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#isInTemplatePage() */ public boolean isInTemplatePage() { return mRequest.isInTemplatePage(); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#isLoggingDebug() */ public boolean isLoggingDebug() { return mRequest.isLoggingDebug(); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#isLoggingError() */ public boolean isLoggingError() { return mRequest.isLoggingError(); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#isLoggingInfo() */ public boolean isLoggingInfo() { return mRequest.isLoggingInfo(); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#isLoggingWarning() */ public boolean isLoggingWarning() { return mRequest.isLoggingWarning(); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#isRequestedSessionIdFromCookie() */ public boolean isRequestedSessionIdFromCookie() { return mRequest.isRequestedSessionIdFromCookie(); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#isRequestedSessionIdFromUrl() */ public boolean isRequestedSessionIdFromUrl() { return mRequest.isRequestedSessionIdFromUrl(); } /** * @return * @see atg.servlet.MutableHttpServletRequest#isRequestedSessionIdFromURL() */ public boolean isRequestedSessionIdFromURL() { return mRequest.isRequestedSessionIdFromURL(); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#isRequestedSessionIdValid() */ public boolean isRequestedSessionIdValid() { return mRequest.isRequestedSessionIdValid(); } /** * @return * @see atg.servlet.MutableHttpServletRequest#isSecure() */ public boolean isSecure() { return mRequest.isSecure(); } /** * @param pRole * @return * @see atg.servlet.DynamoHttpServletRequest#isUserInRole(java.lang.String) */ public boolean isUserInRole(String pRole) { return mRequest.isUserInRole(pRole); } /** * @param pMessage * @param pThrowable * @see atg.servlet.DynamoHttpServletRequest#logDebug(java.lang.String, java.lang.Throwable) */ public void logDebug(String pMessage, Throwable pThrowable) { mRequest.logDebug(pMessage, pThrowable); } /** * @param pMessage * @see atg.servlet.DynamoHttpServletRequest#logDebug(java.lang.String) */ public void logDebug(String pMessage) { mRequest.logDebug(pMessage); } /** * @param pThrowable * @see atg.servlet.DynamoHttpServletRequest#logDebug(java.lang.Throwable) */ public void logDebug(Throwable pThrowable) { mRequest.logDebug(pThrowable); } /** * @param pMessage * @param pThrowable * @see atg.servlet.DynamoHttpServletRequest#logError(java.lang.String, java.lang.Throwable) */ public void logError(String pMessage, Throwable pThrowable) { mRequest.logError(pMessage, pThrowable); } /** * @param pMessage * @see atg.servlet.DynamoHttpServletRequest#logError(java.lang.String) */ public void logError(String pMessage) { mRequest.logError(pMessage); } /** * @param pThrowable * @see atg.servlet.DynamoHttpServletRequest#logError(java.lang.Throwable) */ public void logError(Throwable pThrowable) { mRequest.logError(pThrowable); } /** * @param pMessage * @param pThrowable * @see atg.servlet.DynamoHttpServletRequest#logInfo(java.lang.String, java.lang.Throwable) */ public void logInfo(String pMessage, Throwable pThrowable) { mRequest.logInfo(pMessage, pThrowable); } /** * @param pMessage * @see atg.servlet.DynamoHttpServletRequest#logInfo(java.lang.String) */ public void logInfo(String pMessage) { mRequest.logInfo(pMessage); } /** * @param pThrowable * @see atg.servlet.DynamoHttpServletRequest#logInfo(java.lang.Throwable) */ public void logInfo(Throwable pThrowable) { mRequest.logInfo(pThrowable); } /** * @param pMessage * @param pThrowable * @see atg.servlet.DynamoHttpServletRequest#logWarning(java.lang.String, java.lang.Throwable) */ public void logWarning(String pMessage, Throwable pThrowable) { mRequest.logWarning(pMessage, pThrowable); } /** * @param pMessage * @see atg.servlet.DynamoHttpServletRequest#logWarning(java.lang.String) */ public void logWarning(String pMessage) { mRequest.logWarning(pMessage); } /** * @param pThrowable * @see atg.servlet.DynamoHttpServletRequest#logWarning(java.lang.Throwable) */ public void logWarning(Throwable pThrowable) { mRequest.logWarning(pThrowable); } /** * @param pURL * @return * @see atg.servlet.DynamoHttpServletRequest#performExitTracking(java.lang.String) */ public String performExitTracking(String pURL) { return mRequest.performExitTracking(pURL); } /** * * @see atg.servlet.DynamoHttpServletRequest#popDefaultParameters() */ public void popDefaultParameters() { mRequest.popDefaultParameters(); } /** * * @see atg.servlet.DynamoHttpServletRequest#popFrame() */ public void popFrame() { mRequest.popFrame(); } /** * * @see atg.servlet.DynamoHttpServletRequest#popParameters() */ public void popParameters() { mRequest.popParameters(); } /** * @param pOut * @see atg.servlet.DynamoHttpServletRequest#printRequest(java.io.PrintStream) */ public void printRequest(PrintStream pOut) { mRequest.printRequest(pOut); } /** * @param pDict * @see atg.servlet.DynamoHttpServletRequest#pushDefaultParameters(java.util.Dictionary) */ public void pushDefaultParameters(Dictionary pDict) { mRequest.pushDefaultParameters(pDict); } /** * * @see atg.servlet.DynamoHttpServletRequest#pushFrame() */ public void pushFrame() { mRequest.pushFrame(); } /** * @param pDict * @see atg.servlet.DynamoHttpServletRequest#pushParameters(java.util.Dictionary) */ public void pushParameters(Dictionary pDict) { mRequest.pushParameters(pDict); } /** * @param pName * @see atg.servlet.MutableHttpServletRequest#removeAttribute(java.lang.String) */ public void removeAttribute(String pName) { mRequest.removeAttribute(pName); } /** * @param pName * @return * @see atg.servlet.DynamoHttpServletRequest#removeParameter(java.lang.String) */ public Object removeParameter(String pName) { return mRequest.removeParameter(pName); } /** * @param pKey * @see atg.servlet.DynamoHttpServletRequest#removePersistentQueryParameter(java.lang.String) */ public void removePersistentQueryParameter(String pKey) { mRequest.removePersistentQueryParameter(pKey); } /** * @deprecated * @see atg.servlet.DynamoHttpServletRequest#removeSessionFromRequest() */ public void removeSessionFromRequest() { mRequest.removeSessionFromRequest(); } /** * @param pName * @return * @deprecated * @see atg.servlet.DynamoHttpServletRequest#resolveGlobalName(atg.nucleus.naming.ComponentName) */ public Object resolveGlobalName(ComponentName pName) { return mRequest.resolveGlobalName(pName); } /** * @param pName * @return * @deprecated * @see atg.servlet.DynamoHttpServletRequest#resolveGlobalName(java.lang.String) */ public Object resolveGlobalName(String pName) { return mRequest.resolveGlobalName(pName); } /** * @param pName * @param pCreate * @return * @see atg.servlet.DynamoHttpServletRequest#resolveName(atg.nucleus.naming.ComponentName, boolean) */ public Object resolveName(ComponentName pName, boolean pCreate) { return mRequest.resolveName(pName, pCreate); } /** * @param pName * @return * @see atg.servlet.DynamoHttpServletRequest#resolveName(atg.nucleus.naming.ComponentName) */ public Object resolveName(ComponentName pName) { return mRequest.resolveName(pName); } /** * @param pName * @param pCreate * @return * @see atg.servlet.DynamoHttpServletRequest#resolveName(java.lang.String, boolean) */ public Object resolveName(String pName, boolean pCreate) { return mRequest.resolveName(pName, pCreate); } /** * @param pName * @return * @see atg.servlet.DynamoHttpServletRequest#resolveName(java.lang.String) */ public Object resolveName(String pName) { return mRequest.resolveName(pName); } /** * @param pName * @return * @deprecated * @see atg.servlet.DynamoHttpServletRequest#resolveRequestName(atg.nucleus.naming.ComponentName) */ public Object resolveRequestName(ComponentName pName) { return mRequest.resolveRequestName(pName); } /** * @param pName * @return * @deprecated * @see atg.servlet.DynamoHttpServletRequest#resolveRequestName(java.lang.String) */ public Object resolveRequestName(String pName) { return mRequest.resolveRequestName(pName); } /** * @param pName * @return * @deprecated * @see atg.servlet.DynamoHttpServletRequest#resolveSessionName(atg.nucleus.naming.ComponentName) */ public Object resolveSessionName(ComponentName pName) { return mRequest.resolveSessionName(pName); } /** * @param pName * @return * @deprecated * @see atg.servlet.DynamoHttpServletRequest#resolveSessionName(java.lang.String) */ public Object resolveSessionName(String pName) { return mRequest.resolveSessionName(pName); } /** * @param pName * @param pReq * @param pRes * @return * @throws ServletException * @throws IOException * @see atg.servlet.DynamoHttpServletRequest#serviceLocalParameter(atg.nucleus.naming.ParameterName, javax.servlet.ServletRequest, javax.servlet.ServletResponse) */ public boolean serviceLocalParameter(ParameterName pName, ServletRequest pReq, ServletResponse pRes) throws ServletException, IOException { boolean bResult = mRequest.serviceLocalParameter(pName, pReq, pRes); if (mServiceParameterCallback != null) { bResult = mServiceParameterCallback.didServiceParameter( pName.getName(), pReq, pRes, null, null, bResult, true); } return bResult; } /** * @param pName * @param pReq * @param pRes * @return * @throws ServletException * @throws IOException * @see atg.servlet.DynamoHttpServletRequest#serviceLocalParameter(java.lang.String, javax.servlet.ServletRequest, javax.servlet.ServletResponse) */ public boolean serviceLocalParameter(String pName, ServletRequest pReq, ServletResponse pRes) throws ServletException, IOException { boolean bResult = mRequest.serviceLocalParameter(pName, pReq, pRes); if (mServiceParameterCallback != null) { bResult = mServiceParameterCallback.didServiceParameter( pName, pReq, pRes, null, null, bResult, true); } return bResult; } /** * @param pName * @param pReq * @param pRes * @param pCvt * @param pCvtArgs * @return * @throws ServletException * @throws IOException * @see atg.servlet.DynamoHttpServletRequest#serviceParameter(atg.nucleus.naming.ParameterName, javax.servlet.ServletRequest, javax.servlet.ServletResponse, atg.droplet.TagConverter, java.util.Properties) */ public boolean serviceParameter(ParameterName pName, ServletRequest pReq, ServletResponse pRes, TagConverter pCvt, Properties pCvtArgs) throws ServletException, IOException { boolean bResult = mRequest.serviceParameter(pName, pReq, pRes, pCvt, pCvtArgs); if (mServiceParameterCallback != null) { bResult = mServiceParameterCallback.didServiceParameter( pName.getName(), pReq, pRes, pCvt, pCvtArgs, bResult, false); } return bResult; } /** * @param pName * @param pReq * @param pRes * @return * @throws ServletException * @throws IOException * @see atg.servlet.DynamoHttpServletRequest#serviceParameter(atg.nucleus.naming.ParameterName, javax.servlet.ServletRequest, javax.servlet.ServletResponse) */ public boolean serviceParameter(ParameterName pName, ServletRequest pReq, ServletResponse pRes) throws ServletException, IOException { boolean bResult = mRequest.serviceParameter(pName, pReq, pRes); if (mServiceParameterCallback != null) { bResult = mServiceParameterCallback.didServiceParameter( pName.getName(), pReq, pRes, null, null, bResult, false); } return bResult; } /** * @param pName * @param pReq * @param pRes * @param pCvt * @param pCvtArgs * @return * @throws ServletException * @throws IOException * @see atg.servlet.DynamoHttpServletRequest#serviceParameter(java.lang.String, javax.servlet.ServletRequest, javax.servlet.ServletResponse, atg.droplet.TagConverter, java.util.Properties) */ public boolean serviceParameter(String pName, ServletRequest pReq, ServletResponse pRes, TagConverter pCvt, Properties pCvtArgs) throws ServletException, IOException { boolean bResult = mRequest.serviceParameter(pName, pReq, pRes, pCvt, pCvtArgs); if (mServiceParameterCallback != null) { bResult = mServiceParameterCallback.didServiceParameter( pName, pReq, pRes, pCvt, pCvtArgs, bResult, false); } return bResult; } /** * @param pName * @param pReq * @param pRes * @return * @throws ServletException * @throws IOException * @see atg.servlet.DynamoHttpServletRequest#serviceParameter(java.lang.String, javax.servlet.ServletRequest, javax.servlet.ServletResponse) */ public boolean serviceParameter(String pName, ServletRequest pReq, ServletResponse pRes) throws ServletException, IOException { boolean bResult = mRequest.serviceParameter(pName, pReq, pRes); if (mServiceParameterCallback != null) { bResult = mServiceParameterCallback.didServiceParameter( pName, pReq, pRes, null, null, bResult, false); } return bResult; } /** * @param pAfterGetsClaimed * @see atg.servlet.DynamoHttpServletRequest#setAfterGetsClaimed(boolean) */ public void setAfterGetsClaimed(boolean pAfterGetsClaimed) { mRequest.setAfterGetsClaimed(pAfterGetsClaimed); } /** * @param pName * @param pValue * @see atg.servlet.MutableHttpServletRequest#setAttribute(java.lang.String, java.lang.Object) */ public void setAttribute(String pName, Object pValue) { mRequest.setAttribute(pName, pValue); } /** * @param pName * @param pFactory * @see atg.servlet.MutableHttpServletRequest#setAttributeFactory(java.lang.String, atg.servlet.AttributeFactory) */ public void setAttributeFactory(String pName, AttributeFactory pFactory) { mRequest.setAttributeFactory(pName, pFactory); } /** * @param pAuthType * @see atg.servlet.MutableHttpServletRequest#setAuthType(java.lang.String) */ public void setAuthType(String pAuthType) { mRequest.setAuthType(pAuthType); } /** * @param pBaseDir * @see atg.servlet.DynamoHttpServletRequest#setBaseDirectory(java.lang.String) */ public void setBaseDirectory(String pBaseDir) { mRequest.setBaseDirectory(pBaseDir); } /** * @param pBrowserTyper * @see atg.servlet.DynamoHttpServletRequest#setBrowserTyper(atg.servlet.BrowserTyper) */ public void setBrowserTyper(BrowserTyper pBrowserTyper) { mRequest.setBrowserTyper(pBrowserTyper); } /** * @param pEncoding * @throws UnsupportedEncodingException * @see atg.servlet.MutableHttpServletRequest#setCharacterEncoding(java.lang.String) */ public void setCharacterEncoding(String pEncoding) throws UnsupportedEncodingException { mRequest.setCharacterEncoding(pEncoding); } /** * @param pContentLength * @see atg.servlet.MutableHttpServletRequest#setContentLength(int) */ public void setContentLength(int pContentLength) { mRequest.setContentLength(pContentLength); } /** * @param pContentType * @see atg.servlet.MutableHttpServletRequest#setContentType(java.lang.String) */ public void setContentType(String pContentType) { mRequest.setContentType(pContentType); } /** * @param pContextPath * @see atg.servlet.MutableHttpServletRequest#setContextPath(java.lang.String) */ public void setContextPath(String pContextPath) { mRequest.setContextPath(pContextPath); } /** * @param pDisableExitTracking * @see atg.servlet.DynamoHttpServletRequest#setDisableExitTracking(boolean) */ public void setDisableExitTracking(boolean pDisableExitTracking) { mRequest.setDisableExitTracking(pDisableExitTracking); } /** * @param pDocRootServicePrefix * @see atg.servlet.DynamoHttpServletRequest#setDocRootServicePrefix(java.lang.String) */ public void setDocRootServicePrefix(String pDocRootServicePrefix) { mRequest.setDocRootServicePrefix(pDocRootServicePrefix); } /** * @param pDynamoPipeline * @see atg.servlet.DynamoHttpServletRequest#setDynamoPipeline(boolean) */ public void setDynamoPipeline(boolean pDynamoPipeline) { mRequest.setDynamoPipeline(pDynamoPipeline); } /** * @param pEncodeMode * @see atg.servlet.DynamoHttpServletRequest#setEncodeContextPathMode(int) */ public void setEncodeContextPathMode(int pEncodeMode) { mRequest.setEncodeContextPathMode(pEncodeMode); } /** * @param pEncode * @see atg.servlet.DynamoHttpServletRequest#setEncodeServletPath(boolean) */ public void setEncodeServletPath(boolean pEncode) { mRequest.setEncodeServletPath(pEncode); } /** * @param pEncodeURL * @see atg.servlet.DynamoHttpServletRequest#setEncodeURL(boolean) */ public void setEncodeURL(boolean pEncodeURL) { mRequest.setEncodeURL(pEncodeURL); } /** * @param pEventFlags * @see atg.servlet.DynamoHttpServletRequest#setEventFlags(int) */ public void setEventFlags(int pEventFlags) { mRequest.setEventFlags(pEventFlags); } /** * @param pExitTrackingHandler * @see atg.servlet.DynamoHttpServletRequest#setExitTrackingHandler(atg.servlet.exittracking.ExitTrackingHandler) */ public void setExitTrackingHandler(ExitTrackingHandler pExitTrackingHandler) { mRequest.setExitTrackingHandler(pExitTrackingHandler); } /** * @param pFormEventsSent * @see atg.servlet.DynamoHttpServletRequest#setFormEventsSent(boolean) */ public void setFormEventsSent(boolean pFormEventsSent) { mRequest.setFormEventsSent(pFormEventsSent); } /** * @param pValue * @see atg.servlet.DynamoHttpServletRequest#setGenerateRequestLocales(boolean) */ public void setGenerateRequestLocales(boolean pValue) { mRequest.setGenerateRequestLocales(pValue); } /** * @param pInitialized * @see atg.servlet.DynamoHttpServletRequest#setInitialized(boolean) */ public void setInitialized(boolean pInitialized) { mRequest.setInitialized(pInitialized); } /** * @param pInputStream * @see atg.servlet.MutableHttpServletRequest#setInputStream(javax.servlet.ServletInputStream) */ public void setInputStream(ServletInputStream pInputStream) { mRequest.setInputStream(pInputStream); } /** * @param pInTemplatePage * @see atg.servlet.DynamoHttpServletRequest#setInTemplatePage(boolean) */ public void setInTemplatePage(boolean pInTemplatePage) { mRequest.setInTemplatePage(pInTemplatePage); } /** * @param pLinkEncoding * @see atg.servlet.DynamoHttpServletRequest#setLinkEncoding(java.lang.String) */ public void setLinkEncoding(String pLinkEncoding) { mRequest.setLinkEncoding(pLinkEncoding); } /** * @param pLog * @see atg.servlet.DynamoHttpServletRequest#setLog(atg.nucleus.logging.ApplicationLogging) */ public void setLog(ApplicationLogging pLog) { mRequest.setLog(pLog); } /** * @param pLogging * @see atg.servlet.DynamoHttpServletRequest#setLoggingDebug(boolean) */ public void setLoggingDebug(boolean pLogging) { mRequest.setLoggingDebug(pLogging); } /** * @param pLogging * @see atg.servlet.DynamoHttpServletRequest#setLoggingError(boolean) */ public void setLoggingError(boolean pLogging) { mRequest.setLoggingError(pLogging); } /** * @param pLogging * @see atg.servlet.DynamoHttpServletRequest#setLoggingInfo(boolean) */ public void setLoggingInfo(boolean pLogging) { mRequest.setLoggingInfo(pLogging); } /** * @param pLogging * @see atg.servlet.DynamoHttpServletRequest#setLoggingWarning(boolean) */ public void setLoggingWarning(boolean pLogging) { mRequest.setLoggingWarning(pLogging); } /** * @param pMethod * @see atg.servlet.MutableHttpServletRequest#setMethod(java.lang.String) */ public void setMethod(String pMethod) { mRequest.setMethod(pMethod); } /** * @param pMimeType * @see atg.servlet.DynamoHttpServletRequest#setMimeType(java.lang.String) */ public void setMimeType(String pMimeType) { mRequest.setMimeType(pMimeType); } /** * @param pMimeTyper * @see atg.servlet.DynamoHttpServletRequest#setMimeTyper(atg.servlet.MimeTyper) */ public void setMimeTyper(MimeTyper pMimeTyper) { mRequest.setMimeTyper(pMimeTyper); } /** * @param pNucleus * @see atg.servlet.DynamoHttpServletRequest#setNucleus(atg.nucleus.Nucleus) */ public void setNucleus(Nucleus pNucleus) { mRequest.setNucleus(pNucleus); } /** * @param pName * @param pValue * @param pCvt * @param pCvtArgs * @throws ServletException * @see atg.servlet.DynamoHttpServletRequest#setParameter(java.lang.String, java.lang.Object, atg.droplet.TagConverter, java.util.Properties) */ public void setParameter(String pName, Object pValue, TagConverter pCvt, Properties pCvtArgs) throws ServletException { mRequest.setParameter(pName, pValue, pCvt, pCvtArgs); } /** * @param pName * @param pValue * @see atg.servlet.DynamoHttpServletRequest#setParameter(java.lang.String, java.lang.Object) */ public void setParameter(String pName, Object pValue) { mRequest.setParameter(pName, pValue); } /** * @param pParameterDelimiter * @see atg.servlet.DynamoHttpServletRequest#setParameterDelimiter(java.lang.String) */ public void setParameterDelimiter(String pParameterDelimiter) { mRequest.setParameterDelimiter(pParameterDelimiter); } /** * @param pParameterHandler * @see atg.servlet.DynamoHttpServletRequest#setParameterHandler(atg.servlet.ParameterHandler) */ public void setParameterHandler(ParameterHandler pParameterHandler) { mRequest.setParameterHandler(pParameterHandler); } /** * @param pPathInfo * @see atg.servlet.MutableHttpServletRequest#setPathInfo(java.lang.String) */ public void setPathInfo(String pPathInfo) { mRequest.setPathInfo(pPathInfo); } /** * @param pPathTranslated * @see atg.servlet.MutableHttpServletRequest#setPathTranslated(java.lang.String) */ public void setPathTranslated(String pPathTranslated) { mRequest.setPathTranslated(pPathTranslated); } /** * @param pProtocol * @see atg.servlet.MutableHttpServletRequest#setProtocol(java.lang.String) */ public void setProtocol(String pProtocol) { mRequest.setProtocol(pProtocol); } /** * @param pQueryString * @see atg.servlet.MutableHttpServletRequest#setQueryString(java.lang.String) */ public void setQueryString(String pQueryString) { mRequest.setQueryString(pQueryString); } /** * @param pRemoteAddr * @see atg.servlet.MutableHttpServletRequest#setRemoteAddr(java.lang.String) */ public void setRemoteAddr(String pRemoteAddr) { mRequest.setRemoteAddr(pRemoteAddr); } /** * @param pRemoteHost * @see atg.servlet.MutableHttpServletRequest#setRemoteHost(java.lang.String) */ public void setRemoteHost(String pRemoteHost) { mRequest.setRemoteHost(pRemoteHost); } /** * @param pRemoteUser * @see atg.servlet.MutableHttpServletRequest#setRemoteUser(java.lang.String) */ public void setRemoteUser(String pRemoteUser) { mRequest.setRemoteUser(pRemoteUser); } /** * @param pRequest * @see atg.servlet.DynamoHttpServletRequest#setRequest(javax.servlet.http.HttpServletRequest) */ public void setRequest(HttpServletRequest pRequest) { mRequest.setRequest(pRequest); } /** * @param pLocale * @see atg.servlet.DynamoHttpServletRequest#setRequestLocale(atg.servlet.RequestLocale) */ public void setRequestLocale(RequestLocale pLocale) { mRequest.setRequestLocale(pLocale); } /** * @param pValue * @see atg.servlet.DynamoHttpServletRequest#setRequestLocalePath(atg.nucleus.naming.ComponentName) */ public void setRequestLocalePath(ComponentName pValue) { mRequest.setRequestLocalePath(pValue); } /** * @param pRequestScope * @see atg.servlet.DynamoHttpServletRequest#setRequestScope(atg.naming.NameContext) */ public void setRequestScope(NameContext pRequestScope) { mRequest.setRequestScope(pRequestScope); } /** * @param pRequestScopeManager * @see atg.servlet.DynamoHttpServletRequest#setRequestScopeManager(atg.nucleus.RequestScopeManager) */ public void setRequestScopeManager(RequestScopeManager pRequestScopeManager) { mRequest.setRequestScopeManager(pRequestScopeManager); } /** * @param pRequestURI * @see atg.servlet.MutableHttpServletRequest#setRequestURI(java.lang.String) */ public void setRequestURI(String pRequestURI) { mRequest.setRequestURI(pRequestURI); } /** * @param pRequestURIHasQueryString * @see atg.servlet.DynamoHttpServletRequest#setRequestURIHasQueryString(boolean) */ public void setRequestURIHasQueryString(boolean pRequestURIHasQueryString) { mRequest.setRequestURIHasQueryString(pRequestURIHasQueryString); } /** * @param pResponse * @see atg.servlet.DynamoHttpServletRequest#setResponse(atg.servlet.DynamoHttpServletResponse) */ public void setResponse(DynamoHttpServletResponse pResponse) { mRequest.setResponse(pResponse); } /** * @param pRestorableSessionIdFromURL * @see atg.servlet.DynamoHttpServletRequest#setRestorableSessionIdFromURL(java.lang.String) */ public void setRestorableSessionIdFromURL(String pRestorableSessionIdFromURL) { mRequest.setRestorableSessionIdFromURL(pRestorableSessionIdFromURL); } /** * @param pScheme * @see atg.servlet.MutableHttpServletRequest#setScheme(java.lang.String) */ public void setScheme(String pScheme) { mRequest.setScheme(pScheme); } /** * @param pScrambleKey * @see atg.servlet.DynamoHttpServletRequest#setScrambleKey(byte[]) */ public void setScrambleKey(byte[] pScrambleKey) { mRequest.setScrambleKey(pScrambleKey); } /** * @param pServerName * @see atg.servlet.MutableHttpServletRequest#setServerName(java.lang.String) */ public void setServerName(String pServerName) { mRequest.setServerName(pServerName); } /** * @param pServerPort * @see atg.servlet.MutableHttpServletRequest#setServerPort(int) */ public void setServerPort(int pServerPort) { mRequest.setServerPort(pServerPort); } /** * @param pServletPath * @see atg.servlet.MutableHttpServletRequest#setServletPath(java.lang.String) */ public void setServletPath(String pServletPath) { mRequest.setServletPath(pServletPath); } /** * @param pSessionRequest * @see atg.servlet.DynamoHttpServletRequest#setSessionRequest(atg.servlet.HttpSessionRequest) */ public void setSessionRequest(HttpSessionRequest pSessionRequest) { mRequest.setSessionRequest(pSessionRequest); } /** * * @see atg.servlet.DynamoHttpServletRequest#setupLoopbackTemplateEmailRequest() */ public void setupLoopbackTemplateEmailRequest() { mRequest.setupLoopbackTemplateEmailRequest(); } /** * @param pURLSessionIdSpecifier * @see atg.servlet.DynamoHttpServletRequest#setURLSessionIdSpecifier(java.lang.String) */ public void setURLSessionIdSpecifier(String pURLSessionIdSpecifier) { mRequest.setURLSessionIdSpecifier(pURLSessionIdSpecifier); } /** * @param pUserAuthenticator * @see atg.servlet.DynamoHttpServletRequest#setUserAuthenticator(atg.security.UserAuthenticator) */ public void setUserAuthenticator(UserAuthenticator pUserAuthenticator) { mRequest.setUserAuthenticator(pUserAuthenticator); } /** * @param pWebApplication * @see atg.servlet.DynamoHttpServletRequest#setWebApplication(atg.servlet.minimal.WebApplicationInterface) */ public void setWebApplication(WebApplicationInterface pWebApplication) { mRequest.setWebApplication(pWebApplication); } /** * @param pWebPools * @see atg.servlet.DynamoHttpServletRequest#setWebPools(atg.servlet.WebPools) */ public void setWebPools(WebPools pWebPools) { ((TestingDynamoHttpServletRequest) mRequest).setWebPools(pWebPools); } /** * @param pScopeManager * @see atg.servlet.DynamoHttpServletRequest#setWindowScopeManager(atg.nucleus.WindowScopeManager) */ public void setWindowScopeManager(WindowScopeManager pScopeManager) { mRequest.setWindowScopeManager(pScopeManager); } /** * @param pWrapper * @see atg.servlet.DynamoHttpServletRequest#setWrapper(javax.servlet.ServletRequestWrapper) */ public void setWrapper(ServletRequestWrapper pWrapper) { mRequest.setWrapper(pWrapper); } /** * @param pURL * @return * @see atg.servlet.DynamoHttpServletRequest#shouldExitTrack(java.lang.String) */ public boolean shouldExitTrack(String pURL) { return mRequest.shouldExitTrack(pURL); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#tamperedURLParameters() */ public boolean tamperedURLParameters() { return mRequest.tamperedURLParameters(); } /** * @return * @see atg.servlet.DynamoHttpServletRequest#toString() */ public String toString() { return mRequest.toString(); } } // end inner-class TestingDynamoHttpServletRequest //------------------------------------------------------- /** A RequestDispatcher that calls through to a testing response * to record (and possibly block) includes and forwards. */ static class TestingRequestDispatcher implements RequestDispatcher { ServletContext mServletContext; String mPath; RequestDispatcher mDispatcher; /** Create a testing request dispatcher. Wraps a RequestDispatcher. * * Expects the request passed into forward and include is * an instance of TestingDynamoHttpServletRequest, so that * recording and blocking can happen. * * @param pServletContext Servlet context of the request dispatcher. * @param pPath the path of the request dispatcher. * @param pDispatcher the dispatcher */ TestingRequestDispatcher( ServletContext pServletContext, String pPath, RequestDispatcher pDispatcher) { mServletContext = pServletContext; mPath = pPath; mDispatcher = pDispatcher; } public void forward(ServletRequest pRequest, ServletResponse pResponse) throws ServletException, IOException { TestingDynamoHttpServletResponse dynResponse = (TestingDynamoHttpServletResponse)pResponse; dynResponse.recordDispatch(mServletContext, mPath, false); if (!dynResponse.isBlockDispatches()) { mDispatcher.forward(pRequest, pResponse); } } public void include(ServletRequest pRequest, ServletResponse pResponse) throws ServletException, IOException { TestingDynamoHttpServletResponse dynResponse = (TestingDynamoHttpServletResponse)pResponse; dynResponse.recordDispatch(mServletContext, mPath, true); if (!dynResponse.isBlockDispatches()) { mDispatcher.include(pRequest, pResponse); } } } // ending inner-class TestingRequestDispatcher //------------------------------------------------------- /** A record of an include or forward via a RequestDispatcher. */ public static class TestingDispatchRecord { ServletContext mServletContext; String mPath; boolean mIsInclude; /** Create a TestingDispatchRecord. * * @param pServletContext the servlet context of * the forward or include * @param pPath the path of the forward or include. * @param pIsInclude whether this dispatch was a forward. */ TestingDispatchRecord(ServletContext pServletContext, String pPath, boolean pIsInclude) { mServletContext = pServletContext; mPath = pPath; mIsInclude = pIsInclude; } /** The path of the forward or include. */ public String getPath() { return mPath; } /** Whether the dispatch was a forward. */ public boolean isInclude() { return mIsInclude; } /** Whether the dispath was a forward. */ public boolean isForward() { return !mIsInclude; } } // end inner-class TestingDispatchRecord //------------------------------------------------------- }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy