[Httpunit-commit] CVS: httpunit/src/com/meterware/servletunit InvocationContext.java,NONE,1.1 Servle
Brought to you by:
russgold
|
From: Russell G. <rus...@us...> - 2001-06-06 13:25:08
|
Update of /cvsroot/httpunit/httpunit/src/com/meterware/servletunit
In directory usw-pr-cvs1:/tmp/cvs-serv1930/src/com/meterware/servletunit
Modified Files:
ServletRunner.java ServletUnitWebResponse.java
Added Files:
InvocationContext.java ServletUnitClient.java
Log Message:
Added servlet invocation context
***** Error reading new file[Errno 2] No such file or directory: 'InvocationContext.java'
***** Error reading new file[Errno 2] No such file or directory: 'ServletUnitClient.java'
Index: ServletRunner.java
===================================================================
RCS file: /cvsroot/httpunit/httpunit/src/com/meterware/servletunit/ServletRunner.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- ServletRunner.java 2000/12/26 16:30:53 1.3
+++ ServletRunner.java 2001/06/06 13:25:04 1.4
@@ -2,7 +2,7 @@
/********************************************************************************************************************
* $Id$
*
-* Copyright (c) 2000, Russell Gold
+* Copyright (c) 2000-2001, Russell Gold
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
* documentation files (the "Software"), to deal in the Software without restriction, including without limitation
@@ -34,6 +34,8 @@
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpSession;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
import com.meterware.httpunit.*;
@@ -71,7 +73,10 @@
}
- private Servlet getServlet( URL url ) {
+//-------------------------------- package methods -------------------------------------
+
+
+ Servlet getServlet( URL url ) {
String className = (String) _servlets.get( getServletName( url.getFile() ) );
if (className == null) throw new HttpNotFoundException( url.toExternalForm() );
@@ -91,98 +96,37 @@
}
- private String getServletName( String urlFile ) {
- if (urlFile.indexOf( '?' ) < 0) {
- return urlFile;
- } else {
- return urlFile.substring( 0, urlFile.indexOf( '?' ) );
- }
+ ServletUnitContext getContext() {
+ return _context;
}
-
- ServletUnitHttpResponse getServletResponse( WebRequest request, Cookie[] cookies ) throws MalformedURLException, IOException {
- ServletUnitHttpRequest servletRequest = new ServletUnitHttpRequest( request, _context );
- ServletUnitHttpResponse servletResponse = new ServletUnitHttpResponse();
- for (int i = 0; i < cookies.length; i++) servletRequest.addCookie( cookies[i] );
- try {
- HttpSession session = servletRequest.getSession( /* create */ false );
- if (session != null) ((ServletUnitHttpSession) session).access();
+//---------------------------- private members ------------------------------------
- Servlet servlet = getServlet( request.getURL() );
- servlet.init( new ServletUnitServletConfig( servlet ) );
- servlet.service( servletRequest, servletResponse );
- session = servletRequest.getSession( /* create */ false );
- if (session != null && session.isNew()) {
- servletResponse.addCookie( new Cookie( ServletUnitHttpSession.SESSION_COOKIE_NAME, session.getId() ) );
- }
- } catch (ServletException e) {
- throw new HttpInternalErrorException( request.getURL().toExternalForm() );
- }
- return servletResponse;
- }
-
-//-------------------------------------- private members --------------------------------------------
-
-
/** A mapping of resource names to servlet class names. **/
Hashtable _servlets = new Hashtable();
-
- private String asResourceName( String rawName ) {
- if (rawName.startsWith( "/" )) {
- return rawName;
- } else {
- return "/" + rawName;
- }
- }
-
-
ServletUnitClient _client = new ServletUnitClient( this );
ServletUnitContext _context = new ServletUnitContext();
-
-
-}
-
-
-class ServletUnitClient extends WebClient {
-
- ServletUnitClient( ServletRunner runner ) {
- _runner = runner;
- }
-
-
- /**
- * Creates a web response object which represents the response to the specified web request.
- **/
- protected WebResponse newResponse( WebRequest request ) throws MalformedURLException,IOException {
- return new ServletUnitWebResponse( request.getTarget(), request.getURL(), _runner.getServletResponse( request, getCookies() ) );
+ private String getServletName( String urlFile ) {
+ if (urlFile.indexOf( '?' ) < 0) {
+ return urlFile;
+ } else {
+ return urlFile.substring( 0, urlFile.indexOf( '?' ) );
+ }
}
- private Cookie[] getCookies() {
- String cookieHeader = (String) getHeaderFields().get( "Cookie" );
- if (cookieHeader == null) return NO_COOKIES;
- Vector cookies = new Vector();
-
- StringTokenizer st = new StringTokenizer( cookieHeader, "=;" );
- while (st.hasMoreTokens()) {
- String name = st.nextToken();
- if (st.hasMoreTokens()) {
- String value = st.nextToken();
- cookies.addElement( new Cookie( name, value ) );
- }
+ private String asResourceName( String rawName ) {
+ if (rawName.startsWith( "/" )) {
+ return rawName;
+ } else {
+ return "/" + rawName;
}
- Cookie[] results = new Cookie[ cookies.size() ];
- cookies.copyInto( results );
- return results;
}
- private ServletRunner _runner;
-
- final private static Cookie[] NO_COOKIES = new Cookie[0];
}
Index: ServletUnitWebResponse.java
===================================================================
RCS file: /cvsroot/httpunit/httpunit/src/com/meterware/servletunit/ServletUnitWebResponse.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ServletUnitWebResponse.java 2000/11/21 20:44:59 1.1
+++ ServletUnitWebResponse.java 2001/06/06 13:25:04 1.2
@@ -2,7 +2,7 @@
/********************************************************************************************************************
* $Id$
*
-* Copyright (c) 2000, Russell Gold
+* Copyright (c) 2000-2001, Russell Gold
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
* documentation files (the "Software"), to deal in the Software without restriction, including without limitation
@@ -46,12 +46,13 @@
/**
* Constructs a response object from a servlet response.
+ * @param target the target frame on which the response will be displayed
* @param url the url from which the response was received
- * @param inputStream the input stream from which the response can be read
+ * @param response the response populated by the servlet
**/
- ServletUnitWebResponse( String target, URL url, ServletUnitHttpResponse response ) {
+ ServletUnitWebResponse( String target, URL url, HttpServletResponse response ) {
super( target, url );
- _response = response;
+ _response = (ServletUnitHttpResponse) response;
}
|