Summary of changes
Last 15 days web site changes
These are the changes that happened to the Cactus web site for the past 15 days since the last site update (excluding the todo and changes pages which are modified too often):
2003-07-14 participating/release_checklist Improved announcement template 2003-07-14 integration/integration_jetty - Add information about programatic configuration
- Remove tabs2003-07-14 integration/integration_jetty system properties are optional 2003-07-14 integration/integration_jetty fixed typo 2003-07-14 features, integration/integration_jetty Replaced the Initializer feature by the simple and standard JUnit TestSetup feature 2003-07-13 integration/integration_jetty - Rename the jasperr and jasperc properties to jasper-runtime and jasper-compiler, respectively
- Fix a bug where the name of the cactus JAR was missing the .jar extension in the generated build.properties file2003-07-13 howto_migration remove evil tabs (not sure there were any actually) 2003-07-13 howto_migration Replaced migration page by ANNOUNCEMENT.txt file 2003-07-13 participating/release_checklist Update to link to the ANNOUNCEMENT.txt file 2003-07-13 testedon Add Orion 1.6 and 2.0.1, with a note that they do not work under JDK1.4 2003-07-13 participating/release_checklist The src release is generated by "ant release". Thus no need for this extra step. 2003-07-13 participating/release_checklist Added bug resolving step 2003-07-13 participating/build_result Added nightly build result for the Jetty Sample (J2EE API 1.3) 2003-07-13 testedon works with JBoss 3.2.1/Tomcat 4.1.24 2003-07-13 testedon - more compact form
- works with Tomcat 3.3.1a2003-07-13 index Added link to manual configuration page 2003-07-13 index Added link to sample howto page 2003-07-13 testedon More tested containers 2003-07-13 participating/release_checklist Removed step for pre-packaging a special Cactus /Ant release 2003-07-13 license Updated license dates 2003-07-13 features Added warning about WebLogic 7.x support not being tested 2003-07-13 mailinglist minor improvements 2003-07-13 testedon More compact form and removed the submitted by column 2003-07-13 testedon More containers that I've run the tests on 2003-07-13 testedon First batch of additional containers I've run the tests on 2003-07-13 testedon Make the XML markup more compact/readable by putting more content on each line 2003-07-13 index Point to new browser integration page 2003-07-13 integration/index, integration/integration_browser Created a separate page for browser integration 2003-07-13 participating/release_checklist Added new check 2003-07-13 features No more support for WebLogic 6.x 2003-07-13 features Removed part about the Eclipse plugin as it is not yet a feature (it is still experimental). 2003-07-13 testedon Added Resin 2.1.10 2003-07-13 testedon Added Tomcat 5.0.3-alpha 2003-07-13 testedon Added JBoss/Jetty 3.2.1 2003-07-13 features Cactus supports Tomcat 5.x (for Servlet API 2.3 only ATM). 2003-07-13 goals Removed a goal I'm not sure anynmore we should follow... 2003-07-13 goals Fixed typo 2003-07-13 goals Fixed typo and replace short term goals by medium term goals as they are not so short... 2003-07-13 testedon Added Resin 1.2.6 and Tomcat 4.1.24 2003-07-13 testedon Placeholder to put the containers we have tested Cactus 1.5 with 2003-07-13 changes_archive Added a release changes archive as the changes file was getting big (75Ko). 2003-07-13 howto_migration Added placeholder for migration information for 1.4 --> 1.5 2003-07-13 participating/release_checklist Updated announcement template 2003-07-13 participating/release_checklist Updated to sync with new build system 2003-07-13 participating/release_checklist "Announce" is too long. "ANN" is enough. 2003-07-13 participating/release_checklist Updated web site upload step 2003-07-13 participating/release_checklist Removed the Clover step as it is automatically enforced by the "ant release" target. 2003-07-13 participating/release_checklist Updated to sync with new build system 2003-07-13 participating/coding_conventions Removed old stuff about logging. We are now using commons-logging. 2003-07-13 participating/build_result Fixed links for new webapp and runner Eclipse plugins. 2003-07-13 integration/eclipse/index Added warning about the Eclipse plugin not being included in Cactus 1.5 release. 2003-07-13 integration/eclipse/runner_plugin Link to the new "Eclipse development environment set up" page 2003-07-13 integration/ant/index Fixed typo 2003-07-13 integration/index Replace <junit> by the new <cactus> and <cactifywar> tasks 2003-07-12 participating/contributors Removed old stuff 2003-07-12 cactusname I no longer work for Octo Technology (I now work for Pivolis) 2003-07-12 resources/index, resources/resources_books, resources/resources_cactus, resources/resources_testing - Moved resources to a section on its own
- Added list of books covering Cactus
- Split resources page in 2: cactus links + testing links2003-07-12 participating/logos One more comment. Julien needs to tell me which one to use... 2003-07-12 participating/logos Added "motto" for latest logo proposition by Julien Gresse 2003-07-11 participating/logos Added very nice Cactus logo from Julien Gresse. Thanks Julien! 2003-06-30 integration/howto_tomcat, integration/index Replaced the junit-noframes.xsl with cactus-report.xsl
Release changes
Cactus 1.5 (released on 14 July 2003)
-
Support for WebLogic 7.x has not been tested with Cactus 1.5 and may not work. (VMA)
-
Support for WebLogic 6.x is still available in the Ant integration. However, it has not been tested as it is no longer possible to download WebLogic 6.x from the BEA web site. It is thus completely untested. (VMA)
-
Update of jars bundled in the Cactus distribution: Commons Logging 1.0.3, Log4j 1.2.8, HttpClient 2.0beta2, HttpUnit 1.5.3 and JUnit 3.8.1. In addition the requirements for the jars needed to build Cactus were also updated: Checkstyle 3.1 (and the dependent jars: BeanUtils 1.6.1, Collections 2.1, Regexp 1.2 and Antlr 2.7.2). (VMA)
-
Added a Cactus books section for books covering the Cactus framework. (VMA)
-
Refactoring of
XXXTestCase
class hierarchy. Whereas it was previously inheriting fromAbstractWebTestCase
andAbstractTestCase
it is now simply inheriting from JUnitTestCase
. Thus all non-public API are now not visible from user (as they should be). This has broken binary compatibility. If you had some framework compiled with Cactus 1.4.1 and using some methods fromAbstractWebTestCase
orAbstractTestCase
, you'll need to recompile it with Cactus 1.5. (VMA) -
Added a
HttpServletRequestWrapper.setRemoteUser()
method to simulate a remote user. Thus, there is now 2 methods to get a remote user: by simulating it as above or by using real BASIC or Form-based authentication. (CML) -
Refactored the authentication support by introducing the interface
Authentication
, which the classAbstractAuthentication
now implements. (CML) -
Added a quick tutorial for Cactus developers who want to set up their Eclipse environment to work on the Cactus plugins for Eclipse. (VMA)
-
The
WebResponse
class now has a method to directly retrieve the status code. (CML) -
When a simulation URL is used and null values are passed for the Server name, Context Path and Servlet Path parameters, calls to Cactus
HttpServletRequestWrapper.getServerName()
,HttpServletRequestWrapper.getServerPort()
,HttpServletRequestWrapper.getContextPath()
andHttpServletRequestWrapper.getServletPath()
now correctly return the values from the original Request object (and not the wrapped one), handled by the Servlet Redirector. (VMA) -
Added verification code in Cactus to verify that the parameters passed to the
WebRequest.setURL()
method have the correct format and throw an exception if not. (VMA) -
Added a RSS feed for Cactus news. (VMA)
-
The Cactus web site has a new style that is heavily based on CSS. It should provide better printing capabilities and a more consistent look. (CML)
-
Cactus was not correctly handling the
ComparisonFailure
exception introduced by JUnit 3.8.1 and these exceptions were reported as errors instead of failures. (VMA) Thanks to Misak Boulatian. Fixes bug 9544. -
Fixed bug in Cactus exception handling where an invalid test result could result in a
StringIndexOutOfBoundsException
, thus hiding the real problem. (VMA) Thanks to Melissa White. -
Added a new custom Ant task (WebXmlMerge) that merges the content of two web deployment descriptors into one. That includes the definitions of filters and servlets, as well as some security-related elements. (CML)
-
Allows creating Cactus TestCase without the need for a constructor that takes a String parameter (a default constructor is good enough). Obviously, this feature works only with JUnit 3.8.1 (but Cactus continues to support JUnit 3.7). (VMA)
-
Added ability to add any additional HTTP parameters to the request used by Cactus to the Form-based authentication security URL. (VMA)
-
Added support for running pure JUnit TestCase on the server side using Cactus. This is possible by using a new
ServletTestSuite
Test Suite. (VMA) -
Fixed bug where a simulation URL would be used even when none has been defined (Reminder: a simulation URL is defined by calling
WebRequest.setURL()
). (VMA) Thanks to Helen Rehn. -
Added a timeout for the
<runservertests>
Ant task so that the verification that the container is started is stopped if this timeout is reached (a build exception is raised). (VMA) -
Moved some Ant tasks that were previously in the Cactus Ant tasks; they are now in the Ant Integration project. They are the tasks used to start/stop the containers and the
runservertests
task. It is now recommended to use the Ant Integration. (VMA) -
Improved (and normalized) build system. This change should not affect nor be visible by Cactus end-users. However, Cactus power users building Cactus from sources will appreciate. (VMA)
-
Improved test classe names in the Servlet Sample application. (VMA)
-
The Servlet Sample build is now using the Cactus Ant Integration. (VMA)
-
New Cactus Ant Integration. It provides new custom Ant tasks such as
<cactifywar>
,<cactus>
which makes executing Cactus tests from an Ant build script extremely easy. (CML) -
Modified the build process to generate the Cactus web site by removing the use of Stylebook and replacing it with an XSL stylesheet. In addition, added several new features: support for subdirectories, support for dynamic menu items and sitemap generation. (VMA)
-
The Cactus
runservertests
custom Ant task has been improved and it is now propagating correctly Ant references to the targets you defined for starting the container, stopping it and runnning the Cactus tests. Previously, it was only propagating the Ant properties. (VMA) -
Added stack trace filtering to the ServletTestRunner. Stack frames in the JUnit framework classes as well as in the Cactus base test case classes are filtered out. (CML)
-
The Cactus web site now provides online documentation for both the CVS HEAD version and the last released version. (VMA)
-
Enable the
ServletTestRunner
to run in an environment where it is not allowed to set system properties. In such cases, thecactus.properties
configuration file needs to be on the server classpath. (CML) -
Implemented server-side XSLT transformations in the
ServletTestRunner
. The code is based on the TraX API but uses reflection to avoid a direct runtime dependancy. (CML) -
Added automated Ant scripts for JBoss/Jetty 3.x. (VMA)
-
Fixed bug where users using a Locale which does not format numbers with dots (".") had issues with the JUnitReport Ant XSL stylesheet. The Servlet Test Runner code now forces a US Locale. (CML)
-
Added new extension class to help unit test JSP Taglibs. See the
TestJspTagLifecycle
test class in the sample-servlet application for help on using it. (VMA) Thanks to Christopher Lenz. -
Improved error handling when dealing with invalid Cookies. (VMA)
-
Fixed a potential bug with classloaders. On the server side, Cactus looks for the TestCase class by searching first the WebApp Classloader and then the Context ClassLoader. However, the Context ClassLoader is only searched if an Exception (subclass of
Exception
) is raised. Thus, if aNoClassDefFoundError
had been raised, Cactus would not have searched in the Context ClassLoader. (VMA) Thanks to Roumen B. Antonov. -
Added support for internationalization (double byte characters) for sending back test results. This allows Cactus to be used with any character set. (VMA) Thanks to Atsushi Hasegawa.
-
Fixed bug where a redirector overriden by calling
WebRequest.setRedirectorName()
was not used to fetch the Cactus test result (the default redirector specified in the Cactus configuration was used instead). (VMA) Thanks to Pranab Dhar. -
Fixed bug where Cactus was using the deprecated HttpClient
PostMethod.setRequestBody(String)
which had some bug related to char to byte encoding. Now using thePostMethod.setRequestBody(InputStream)
signature. (VMA) Thanks to Stephan Merker. -
Added links to Japanese and Korean translations of Cactus. (VMA)
-
Ability to get a real HTTP Session cookie before the start of the test. This is achieved by calling the new
WebRequest.getSessionCookie()
method which returns aHttpSessionCookie
object that you then add to the HTTP request. Initially suggested by Kyle W. Willkomm. (VMA) -
New
WebResponse.getCookieIgnoreCase(cookieName)
to get the first cookie matchingcookieName
whatever the case (case-insensitive). (VMA) -
Added Form-based authentication support. (VMA) Thanks to Jason Robertson.
-
Added a tutorial that explains how to build Cactus from the sources. (VMA)
-
Added a Jetty Sample application to demonstrate how to use the new
JettyTestSetup
that automatically starts Jetty before a test suite. (VMA) -
Added a Jetty integration tutorial. (JRU)
-
Added a
org.apache.cactus.extension.jetty.JettyTestSetup
JUnit TestSetup to automatically start Jetty before a test suite is executed. This is really nice to quickly run tests inside any IDE or even from a simple<junit>
Ant taks without the need to package and deploy a WAR. In addition, it is real nice to debug tests this way. Moreover, Jetty starts in less than 1 second, making it completely seamless and transparent! We are now at the same order of magnitude as pure JUnit tests in term of speed ... :-). Of course, this is only for Servlet tests ... I am still waiting for an embeddable EJB container that starts in less than 1 second ... (VMA) -
Added support for client side
begin(...)
andend(...)
methods. They are called on the client side, before and after every test in the same way as the JUnitsetUp()
andtearDown()
are called before and after each test, but on the server side. (VMA)
Cactus 1.4.1 (released on 31 August 2002)
-
Added a sample (and thus a test for Cactus) for HttpUnit integration as part of the Cactus sample. (VMA) Thanks to Hirsch Richard.
-
Fixed bug in new HttpClient wrapper in Cactus with regards to the headers returned in the HTTP response (they were offset by one and the status line was not returned as a header). (VMA) Thanks to Hirsch Richard.
-
Fixed bug where
NullPointerException
would be thrown by CactusServletTestRunner
if an exception raised in a test case had not specified a message (i.e.getMessage()
returningnull
). (VMA) Thanks to Micah Williams. -
Some JDK implementation return "null" when Class.getClassLoader() is called to indicate that the given class has been loaded by the bootstrap class loader. This was leading to
NullPointerException
being thrown by Cactus in some cases. (VMA) Thanks to Gerhard Kreutzer. -
Fixed import bug in sample-servlet which prevented building Cactus from the sources on JDK 1.4. (VMA) Thanks to Ville Skyttä.
-
Fixed default properties for the sample application so that it points to the correct HttpClient jar which is packaged with Cactus (the one built on 06/06/2002). (VMA) Thanks to Hirsch Richard.
-
Fixed a bug that was preventing having several POST parameters added in the request in
beginXXX()
methods. (VMA) Thanks to Larry Tambascio. -
The encoding in the sample
junit-noframes
XSL stylesheet was set to be "US-ASCII". It is now set to "UTF-8". Apparently, XSLT processors are only required to support utf-8 and utf-16, the rest is processor specific. For example your processor might support US-ASCII-7 and others might support US-ASCII. Thanks to Robert Koberg for the explanation! (VMA) Thanks to Dave Hoover.
Cactus 1.4 (released on 25 August 2002)
-
Added a tutorial that explains how to test JSPs with Cactus. (VMA)
-
Fixed JDK 1.2 compatibility (broken in 1.4b1). (VMA) Thanks to David George.
-
According to the XML definitions (at least the definitions Mozilla 1.0 got implemented), the <?xml version...> tag should go before the <?xml-stylesheet...> tag. Using them in the wrong order produces an error when Mozilla tries to render it. (VMA) Thanks to Felipe Hoffa.
Cactus 1.4b1 (released on July 31 2002)
-
It is now possible to assert response codes in
endXXX()
. For example, you can verify that you servlet has returned a 500 response code. See the tests provided in the Sample Servlet application which is part of the Cactus distribution. This change was possible because we moved the underlying implementation fromHttpURLConnection
to Jakarta Commons HttpClient. Note: It is still not possible to test a 401 response code (this limitation has been raised to the HttpClient team). (VMA) -
Refactored internal code to be able to use different HTTP connection implementation. 2 are currently provided: one using the JDK
HttpURLConnection
and one using Jakarta Commons HttpClient (the default one). It can be modified by setting the following System property:cactus.connectionHelper.classname = org.apache.cactus.client.JdkConnectionHelper
(for the JDKHttpURLConnection
). Note that the Servlet Sample test that assert response code will fail with the JDKHttpURLConnection
implementation. (VMA) -
Cactus now requires the Commons Logging library (
commons-logging.jar
). It is needed as Commons HttpClient is now using Commons Logging for logging and Cactus depends on HttpClient. Cactus is also now using Commons HttpClient for all its internal logs. This lets us use any underlying logging implementation: Log4j, LogKit, JDK 1.4 Logging, No Logging or SimpleLog (provided with Commons Logging - logs to the console). Check the Config Howto for how to configure logging in Cactus. (VMA) -
Removed deprecated
org.apache.cactus.ServletTestRequest
class (was deprecated in Cactus 1.2). (VMA) -
Removed deprecated
org.apache.cactus.util.ClientCookie
class (was deprecated in Cactus 1.2). (VMA) -
Removed deprecated
org.apache.cactus.util.AssertUtils
class (was deprecated in Cactus 1.2). (VMA) -
Added automatic script support for Orion 1.6. (VMA)
-
Ant scripts for Resin, Orion, Tomcat 3.2.4, WebLogic 6.1 and WebLogic 7.0 now correctly configured for Cactus BASIC authentication tests. (VMA)
-
Added automatic script support for WebLogic 7.0. (VMA)
-
It seems that it is possible that the test result contain an end of line character and the Cactus
WebTestResultParser
was choking on this and seeing the returned result as invalid. This has been fixed. (VMA) Thanks to Daniel Dennison. Fixes bug 9544. -
Added Test Coverage Reports as part of the Web Site generation. (VMA)
-
Renamed all external jars used in Cactus by suffixing them with their versions. This is so that Cactus users will know exactly what jars Cactus is packaging. You are of course free to use your own jars and Cactus only packages these jars for your convenience. Cactus nows packages Log4j 1.2.3, AspectJ Runtime 1.0.4, JUnit 3.7, HttpClient 2.0alpha1 built on 6/6/2002, HttpUnit 1.4 and (new) the Servlet API 2.2 and 2.3 jars. The Cactus jars have also been renamed to include the version number in their names. (VMA)
-
Cactus Sample can be built using Ant 1.4 (support for Ant 1.4 was broken by a line introduced in Cactus 1.3 that would only work with Ant 1.5. However, this line can easily be commented out). (VMA)
-
(It also solves bug Bug #4167 reported by Eric Walker). Modified the
jspRedirector.jsp
so that it initializes an HTTP Session (session="true"
). There is no way I know to make this parameter dynamic so we set it to true as this is the most used case. If one of your test must not have a session created for it, then you can always use the Redirector overriding feature (WebRequest.setRedirectorName(String redirectorName)
). (VMA) Thanks to Marc Brette. Fixes bug 8640. -
Fixed bug where the Test Result object which is put in the Servlet Context was not serializable. This might cause some trouble with some containers. (VMA) Thanks to Patrick Lightbody.
-
Added simulation of Remote IP address and Remote Host Name, i.e. you can now control what
request.getRemoteAddr()
andrequest.getRemoteHost()
will return. That is useful if your code depends on these values. (VMA) Thanks to Marc Brette. -
It is now possible to specify the Cactus properties as System properties (the property names are the same as the ones in
cactus.properties
). Also if not specified, redirector names are set by default to "ServletRedirector", "JspRedirector" and "FilterRedirector". (VMA) -
New Quick start tutorial that explains how to run Cactus tests quickly in Tomcat. (VMA)
-
A cool new way to quickly execute your test cases: Cactus now has a JUnit Test Runner called ServletTestRunner (it is a servlet) that you start using your browser. See the TestRunner Howto tutorial. (VMA)
-
Test classes are now first looked for using the Current classloader (the webapp one for Servlets) and if not found using the context class loader. Previously the order was the revert, which was not logical and could lead to issues. (VMA)
-
Improved debugging of
runservertests
task. Simply run Ant in debug mode (ant -debug xxx
) and the task will print information. Very useful to know why therunservertests
task seems to hang after starting your server ... (VMA)