Added: jakarta/site/docs/cactus/getting_started.html
URL:
http://svn.apache.org/viewvc/jakarta/site/docs/cactus/getting_started.html?rev=1696636&view=auto
==============================================================================
--- jakarta/site/docs/cactus/getting_started.html (added)
+++ jakarta/site/docs/cactus/getting_started.html Wed Aug 19 17:50:26 2015
@@ -0,0 +1,589 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+
+
+
+
+
+
+
+
+<html>
+ <head>
+
+
+ <title>Jakarta Cactus -
+ Getting Started</title>
+ <style type="text/css" media="all">
+ @import url("http://jakarta.apache.org/cactus/css/maven-base.css");
+ @import url("http://jakarta.apache.org/cactus/css/maven-theme.css");
+ @import url("http://jakarta.apache.org/cactus/css/site.css");
+ </style>
+ <link rel="stylesheet"
href="http://jakarta.apache.org/cactus/css/print.css" type="text/css"
media="print" />
+ <meta http-equiv="Content-Type" content="text/html;
charset=ISO-8859-1" />
+ </head>
+ <body class="composite">
+
+
+<div style="background: red"><h1>2011/08/05 - Jakarta Cactus has been retired.
</h1><h2>For more information, please explore the <a
href="http://attic.apache.org/">Attic</a>. </h2></div>
+ <div id="banner">
+ <a href="" id="bannerLeft">
+
+ <img src="images/logocactus.gif"
alt="" />
+
+ </a>
+ <a href="http://jakarta.apache.org/" id="bannerRight">
+
+ <img src="images/jakarta-logo.gif"
alt="" />
+
+ </a>
+ <div class="clear">
+ <hr/>
+ </div>
+ </div>
+ <div id="breadcrumbs">
+
+
+
+
+
+
+
+ <div class="xleft">
+ Last Published: 01/18/2009
+ |
+ <a href="http://www.apache.org/">Apache</a>
+ >
+
+ <a href="http://www.jakarta.apache.org/">Jakarta</a>
+ >
+
+ Cactus
+ </div>
+ <div class="xright">
+
+
+
+
+
+
+ </div>
+ <div class="clear">
+ <hr/>
+ </div>
+ </div>
+ <div id="leftColumn">
+ <div id="navcolumn">
+
+
+
+
+
+
+
+ <h5>About</h5>
+ <ul>
+
+ <li class="none">
+ <a href="index.html">Overview</a>
+ </li>
+
+ <li class="none">
+ <a href="goals.html">Goals</a>
+ </li>
+
+ <li class="none">
+ <a href="features.html">Features</a>
+ </li>
+
+ <li class="none">
+ <a href="news.html">News</a>
+ </li>
+
+ <li class="none">
+ <a href="downloads.html">Downloads</a>
+ </li>
+
+ <li class="none">
+ <a
href="http://issues.apache.org/jira/secure/BrowseProject.jspa?id=10471">Bug
Database</a>
+ </li>
+
+ <li class="none">
+ <a href="mail-lists.html">Mailing Lists</a>
+ </li>
+
+ <li class="none">
+ <a href="faq.html">FAQ</a>
+ </li>
+
+ <li class="none">
+ <a
href="http://wiki.apache.org/jakarta-cactus/FrontPage">Wiki</a>
+ </li>
+
+ <li class="none">
+ <a href="license.html">License</a>
+ </li>
+ </ul>
+ <h5>Project Documentation</h5>
+ <ul>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="project-info.html">Project Information</a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="project-reports.html">Project Reports</a>
+ </li>
+ </ul>
+ <h5>Documentation</h5>
+ <ul>
+
+ <li class="none">
+ <strong>Getting started</strong>
+ </li>
+
+ <li class="none">
+ <a href="how_it_works.html">How it works</a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="writing/howto_ejb.html">Writing tests</a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="integration/index.html">Running tests</a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="participating/index.html">Participating</a>
+ </li>
+ </ul>
+ <h5>Miscellaneous</h5>
+ <ul>
+
+ <li class="none">
+ <a href="cactusname.html">Why the name</a>
+ </li>
+
+ <li class="none">
+ <a href="mock_vs_cactus.html">Mock vs Container</a>
+ </li>
+
+ <li class="none">
+ <a href="http://wiki.apache.org/jakarta-cactus/TestedOn">Tested
On...</a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="resources/index.html">Resources</a>
+ </li>
+ </ul>
+ <h5>Translations</h5>
+ <ul>
+
+ <li class="none">
+ <a href="http://www.ressources-java.net/cactus">French</a>
+ </li>
+
+ <li class="none">
+ <a
href="http://jakarta.apache-korea.org/cactus/index.html">Korean</a>
+ </li>
+
+ <li class="none">
+ <a href="http://www.jajakarta.org/cactus/">Japanese</a>
+ </li>
+ </ul>
+ <h5>See also</h5>
+ <ul>
+
+ <li class="none">
+ <a href="http://www.apachebookstore.com/">Apache Bookstore</a>
+ </li>
+
+ <li class="none">
+ <a href="http://www.planetapache.org/">Planet Apache</a>
+ </li>
+
+ <li class="none">
+ <a href="http://apache.org/foundation/thanks.html">Apache
Sponsors</a>
+ </li>
+ </ul>
+
+
+
+ <a href="" title="Jakarta Cactus" id="poweredBy">
+ <img alt="Jakarta Cactus"
src="images/cactusbanner.gif" />
+ </a>
+
+
+
+
+
+
+
+ </div>
+ </div>
+ <div id="bodyColumn">
+ <div id="contentBox">
+
+
+
+
+
+
+ <a name="Forewords"></a><div class="section"><h2>Forewords</h2>
+ <p>
+ If you want to quickly get a feeling of Cactus, there is a
+ <a href="integration/howto_tomcat.html">20 minutes tutorial</a> that
take you
+ through running your first Cactus test using Tomcat. It doesn't explain
+ how Cactus works or any other details but let's you have something
+ running quickly.
+ </p>
+ <p>
+ We suggest you take this quicky tutorial and then come back here and
+ continue reading below. You would have had a first glimpse of Cactus
+ in action and will be ready to understand the concepts behind it and
+ its full power.
+ </p>
+ </div>
+
+ <a name="Installing Cactus"></a><div class="section"><h2>Installing
Cactus</h2>
+
+ <p>
+ There is not really an installation of Cactus per see, as Cactus is
+ not an application but a framework. However you do need to understand
+ how it integrates in your working environment. In order to simplify
+ this integration Cactus offers
+ <a href="integration/index.html">several integration modules</a>. Thus,
+ installing Cactus simply means picking an integration module and
+ learning how to configure and use it.
+ </p>
+
+ </div>
+
+ <a name="System Requirements"></a><div class="section"><h2>System
Requirements</h2>
+
+ <p>
+ In order to run Cactus tests you need to have the following
+ software already installed on your system:
+ </p>
+
+ <ul>
+ <li>
+ <strong>Java Virtual Machine</strong>
+ A Java 1.2 or greater compatible virtual machine must be present.
Note
+ that all servlet engines require a JVM to run so if you are already
+ using servlets you already have one installed.
+ </li>
+ <li>
+ <strong>Servlet/J2EE Engine</strong>
+ A Servlet 2.x/J2EE 1.x compliant servlet engine for running your
+ Cactus tests must be present.
+ </li>
+ </ul>
+
+
+ You also need to have installed the development tools that you are
+ integrating Cactus with. For example, if you plan to use the Ant
+ integration, you must have Ant installed. If you plan to execute
+ Cactus tests from an IDE, this IDE software has to be already
+ installed, etc.
+
+
+ </div>
+
+ <a name="The Cactus files"></a><div class="section"><h2>The Cactus
files</h2>
+
+
+ At this point, you should have
+ <a href="downloads.html">downloaded</a> a Cactus distribution
+ (for the J2EE API you intend to use) and unzipped it in a
+ <code>[cactus root]</code> directory.
+
+ <p>
+ You'll find the following directories under <code>[cactus root]</code>:
+ </p>
+ <ul>
+ <li>
+ <strong><code>doc/</code></strong>: contains Cactus web site and
+ API javadocs.
+ </li>
+ <li>
+ <strong><code>lib/</code></strong>: contains Cactus jars and related
+ external libraries.
+ </li>
+ <li>
+ <strong><code>samples/</code></strong>: contains
+ <a href="howto_sample.html">sample applications</a>
+ showing how to write Cactus tests and how to automate their
+ execution.
+ </li>
+ <li>
+ <strong><code>samples/ejb</code></strong>: contains a sample
+ application showing how to test EJBs with Cactus.
+ </li>
+ <li>
+ <strong><code>samples/jetty</code></strong>: contains a sample
+ application showing how to test Servlet with Cactus and Jetty
+ (using the <code>JettyTestSetup</code> extension).
+ </li>
+ <li>
+ <strong><code>samples/servlet</code></strong>: contains a sample
+ application showing how to test Servlet/JSPs/Taglibs with Cactus.
+ </li>
+ <li>
+ <strong><code>web/</code></strong>: contains the JSP redirector file
+ which is only required if you're using the
+ <a href="integration/manual/index.html">manual integration</a>.
+ </li>
+ </ul>
+
+
+ The jars making up Cactus are:
+
+ <ul>
+ <li>
+ <strong><code>cactus.jar</code></strong>: the main jar,
+ contains the framework classes. You can find this jar in
+ <code>[cactus root]/lib</code>.
+ </li>
+ <li>
+ <strong><code>cactus-ant.jar</code></strong>: a jar which
+ contains some custom Ant tasks to help integrate easily with Ant.
+ This is only needed if you wish to use Ant for automating the
+ execution of Cactus tests. For more information on how to integrate
+ Cactus with Ant, see the
+ <a href="integration/ant/index.html">Ant Howto</a> tutorial. You also
+ find this jar in <code>[cactus root]/lib</code>.
+ </li>
+ <li>
+ <strong><code>httpclient.jar</code></strong>: Cactus is relying
+ on the Jakarta Commons HttpClient framework for Cookie handling.
+ </li>
+ <li>
+ <strong><code>junit.jar</code></strong>: Cactus extends JUnit and
+ thus needs the JUnit jar.
+ </li>
+ <li>
+ <strong><code>aspectjrt.jar</code></strong>: Cactus uses
+ <a href="http://www.eclipse.org/aspectj/">AspectJ</a> for performing
+ several tasks (logging entries and exit of methods, checking
+ configuration, etc).
+ </li>
+ <li>
+ <strong><code>commons-logging.jar</code></strong>: Cactus uses
+ the Jakarta Commons Logging facade framework to provide seamless
+ Cactus logging using any existing Logging framework (Log4j,
+ LogKit, JDK 1.4 Logging, etc). It is also needed for Commons
+ HttpClient.
+ </li>
+ <li>
+ <strong><code>servletapi.jar</code></strong>: Required for compiling
+ the Servlet sample. Ideally we should be bundling the J2EE jar (which
+ is required for compiling the EJB sample). However the Sun license
+ does not allow us to redistribute it so you'll need to download it
+ by yourself (see the <a href="howto_sample.html">Sample howto</a>
+ page.
+ </li>
+ <li>
+ <strong><code>httpunit.jar</code></strong>: Cactus uses the
+ HttpUnit framework to perform <a
href="writing/howto_httpunit.html">complex
+ assertions of returned responses</a>. Cactus also bundles a default
+ web response object but the HttpUnit one should be preffered for
+ complex assertions.
+ </li>
+ <li>
+ <strong><code>nekohtml.jar</code></strong>: Required by HttpUnit.
+ </li>
+ </ul>
+
+ </div>
+
+ <a name="What's next?"></a><div class="section"><h2>What's next?</h2>
+
+
+ At this point you should understand what Cactus is and how it works.
+
+
+ Pick the <a href="integration/index.html">Cactus integration
module</a> that
+ you wish to use in your development environment. Read up on how it
works
+ and how to use it.
+
+
+ Then, you should read the <a
href="writing/howto_testcase.html">TestCase
+ Howto</a> to understand how to write Cactus Test Cases.
+
+
+ The last step is probably to put in practice what you've learned so far
+ by <a href="howto_sample.html">running the Cactus Samples</a>.
+
+
+ Enjoy !
+
+
+ </div>
+
+
+
+ </div>
+ </div>
+ <div class="clear">
+ <hr/>
+ </div>
+ <div id="footer">
+ <div class="xright">©
+ 2001-2009
+
+ Apache Software Foundation
+
+
+
+
+
+
+
+ </div>
+ <div class="clear">
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
Propchange: jakarta/site/docs/cactus/getting_started.html
------------------------------------------------------------------------------
svn:eol-style = native
Added: jakarta/site/docs/cactus/goals.html
URL:
http://svn.apache.org/viewvc/jakarta/site/docs/cactus/goals.html?rev=1696636&view=auto
==============================================================================
--- jakarta/site/docs/cactus/goals.html (added)
+++ jakarta/site/docs/cactus/goals.html Wed Aug 19 17:50:26 2015
@@ -0,0 +1,559 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+
+
+
+
+
+
+
+
+<html>
+ <head>
+
+
+ <title>Jakarta Cactus -
+ Cactus goals</title>
+ <style type="text/css" media="all">
+ @import url("http://jakarta.apache.org/cactus/css/maven-base.css");
+ @import url("http://jakarta.apache.org/cactus/css/maven-theme.css");
+ @import url("http://jakarta.apache.org/cactus/css/site.css");
+ </style>
+ <link rel="stylesheet"
href="http://jakarta.apache.org/cactus/css/print.css" type="text/css"
media="print" />
+ <meta http-equiv="Content-Type" content="text/html;
charset=ISO-8859-1" />
+ </head>
+ <body class="composite">
+
+
+<div style="background: red"><h1>2011/08/05 - Jakarta Cactus has been retired.
</h1><h2>For more information, please explore the <a
href="http://attic.apache.org/">Attic</a>. </h2></div>
+ <div id="banner">
+ <a href="" id="bannerLeft">
+
+ <img src="images/logocactus.gif"
alt="" />
+
+ </a>
+ <a href="http://jakarta.apache.org/" id="bannerRight">
+
+ <img src="images/jakarta-logo.gif"
alt="" />
+
+ </a>
+ <div class="clear">
+ <hr/>
+ </div>
+ </div>
+ <div id="breadcrumbs">
+
+
+
+
+
+
+
+ <div class="xleft">
+ Last Published: 01/18/2009
+ |
+ <a href="http://www.apache.org/">Apache</a>
+ >
+
+ <a href="http://www.jakarta.apache.org/">Jakarta</a>
+ >
+
+ Cactus
+ </div>
+ <div class="xright">
+
+
+
+
+
+
+ </div>
+ <div class="clear">
+ <hr/>
+ </div>
+ </div>
+ <div id="leftColumn">
+ <div id="navcolumn">
+
+
+
+
+
+
+
+ <h5>About</h5>
+ <ul>
+
+ <li class="none">
+ <a href="index.html">Overview</a>
+ </li>
+
+ <li class="none">
+ <strong>Goals</strong>
+ </li>
+
+ <li class="none">
+ <a href="features.html">Features</a>
+ </li>
+
+ <li class="none">
+ <a href="news.html">News</a>
+ </li>
+
+ <li class="none">
+ <a href="downloads.html">Downloads</a>
+ </li>
+
+ <li class="none">
+ <a
href="http://issues.apache.org/jira/secure/BrowseProject.jspa?id=10471">Bug
Database</a>
+ </li>
+
+ <li class="none">
+ <a href="mail-lists.html">Mailing Lists</a>
+ </li>
+
+ <li class="none">
+ <a href="faq.html">FAQ</a>
+ </li>
+
+ <li class="none">
+ <a
href="http://wiki.apache.org/jakarta-cactus/FrontPage">Wiki</a>
+ </li>
+
+ <li class="none">
+ <a href="license.html">License</a>
+ </li>
+ </ul>
+ <h5>Project Documentation</h5>
+ <ul>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="project-info.html">Project Information</a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="project-reports.html">Project Reports</a>
+ </li>
+ </ul>
+ <h5>Documentation</h5>
+ <ul>
+
+ <li class="none">
+ <a href="getting_started.html">Getting started</a>
+ </li>
+
+ <li class="none">
+ <a href="how_it_works.html">How it works</a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="writing/howto_ejb.html">Writing tests</a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="integration/index.html">Running tests</a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="participating/index.html">Participating</a>
+ </li>
+ </ul>
+ <h5>Miscellaneous</h5>
+ <ul>
+
+ <li class="none">
+ <a href="cactusname.html">Why the name</a>
+ </li>
+
+ <li class="none">
+ <a href="mock_vs_cactus.html">Mock vs Container</a>
+ </li>
+
+ <li class="none">
+ <a href="http://wiki.apache.org/jakarta-cactus/TestedOn">Tested
On...</a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="resources/index.html">Resources</a>
+ </li>
+ </ul>
+ <h5>Translations</h5>
+ <ul>
+
+ <li class="none">
+ <a href="http://www.ressources-java.net/cactus">French</a>
+ </li>
+
+ <li class="none">
+ <a
href="http://jakarta.apache-korea.org/cactus/index.html">Korean</a>
+ </li>
+
+ <li class="none">
+ <a href="http://www.jajakarta.org/cactus/">Japanese</a>
+ </li>
+ </ul>
+ <h5>See also</h5>
+ <ul>
+
+ <li class="none">
+ <a href="http://www.apachebookstore.com/">Apache Bookstore</a>
+ </li>
+
+ <li class="none">
+ <a href="http://www.planetapache.org/">Planet Apache</a>
+ </li>
+
+ <li class="none">
+ <a href="http://apache.org/foundation/thanks.html">Apache
Sponsors</a>
+ </li>
+ </ul>
+
+
+
+ <a href="" title="Jakarta Cactus" id="poweredBy">
+ <img alt="Jakarta Cactus"
src="images/cactusbanner.gif" />
+ </a>
+
+
+
+
+
+
+
+ </div>
+ </div>
+ <div id="bodyColumn">
+ <div id="contentBox">
+
+
+
+
+
+
+ <a name="General goals"></a><div class="section"><h2>General goals</h2>
+
+ <ul>
+ <li>
+ Provide a simple unit testing framework focused on server side java
+ code which tries to cover all J2EE component models and potentially
+ other type of components.
+ </li>
+ <li>
+ Allow fine-grained continuous testing of all files making up
+ an application: source code but also meta-data files (such as
+ deployment descriptors, etc) through an in-container approach.
+ Integration work is costly and Cactus tries to spread this load
+ by doing it during development in an automated way.
+ </li>
+ </ul>
+
+ </div>
+
+ <a name="Medium terms goals and ideas"></a><div class="section"><h2>Medium
terms goals and ideas</h2>
+
+
+ The short term goals for Cactus are to continue providing and improving
+ support for J2EE unit testing. More specifically the following areas
+ are being considered and researched:
+
+
+ <ul>
+ <li>
+ Integrate Cactus with JUnit4, which will allow
+ to write annotation-based test-cases,
+ </li>
+ <li>
+ Add support for testing Java Portlets and/or Web-services
+ </li>
+ <li>
+ Add support for Servlet API 2.5/JSP 2.2 (by using
+ Tomcat 5/Resin 3.x),
+ </li>
+ <li>
+ Provide a full servlet container test suite a la Watchdog using
Cactus.,
+ </li>
+ <li>
+ Performance unit testing: Add performance extensions to be able to
+ test each single method in performance.
+ </li>
+ <li>
+ More tutorial on AspectJ testing. Potentially add a Cactus Aspect
+ extension to allow writing test cases as Aspects (this may allow to
+ remove the need for Cactus redirectors).
+ </li>
+ <li>
+ Add EJB Redirectors to be able to unit test Session Beans, Entity
+ Beans and MessageDriven Beans
+ </li>
+ <li>
+ Decouple the Cactus framework into the core and its
"plugins". This
+ means to publish a public API and a public SPI. The SPI would allow
+ to support plugin for testing different type of components (Servlet,
+ Entity EJB, Struts Actions, etc).
+ </li>
+ </ul>
+
+ </div>
+
+ <a name="Long term vision"></a><div class="section"><h2>Long term
vision</h2>
+
+ <a name="The Future of Component Unit Testing"></a><div
class="section"><h2>The Future of Component Unit Testing</h2>
+
+
+ We believe unit testing server side components is going to get harder
+ and harder in the future, unless something is done about it!
+ Even now, depending on the specifications
+ for a given component model it is more or less easy. Sometimes it is
+ even not feasible to test all kind of code.
+
+
+ We believe that we will see more and more components in the future.
+ By components we mean pieces of code that execute in a container.
+ The container will provide more and more services for the components
+ (like transactions, security, life cycle, persistence, interfaces
+ - like web services -, logging, ...). The consequences will be:
+
+ <ul>
+ <li>
+ testing strategies that are not in-container, like Mock Objects
+ will still very useful but will provide less added value in
+ ensuring that the code behaves ok. Indeed, as the components will
+ rely more and more on the container's services, the confidence that
+ the tests will run well when deployed will decrease and the need
+ for a solution that ensures the code will run correctly in its
+ environment will increase,
+ </li>
+ <li>
+ it will become more and more difficult to offer an in-container
+ unit testing framework that lives outside the container.
+ </li>
+ </ul>
+
+ </div>
+
+ <a name="Long term goals for Cactus"></a><div class="section"><h2>Long
term goals for Cactus</h2>
+
+
+ Consequently to the above predictions, there are 2 long term goals
+ for Cactus:
+
+ <ul>
+ <li>
+ Continue with the in-container approach as much as possible. It is
+ a best try effort in order to provide tests in which you can have
+ a good confidence,
+ </li>
+ <li>
+ However, we believe the only satisfactory and long term solution
+ is to include (unit) testing APIs as <em>part</em> of the container
+ specifications. This could be done in the form of a SPI
+ (Service Provider Interface) against which a generic unit testing
+ framework could be plugged, thus leaving the implementation details
+ to an external framework and only providing maybe a generic
+ and simple implementation. Thus, one goal of Cactus is to help
+ specify needed container API/SPI for unit testing,
+ i.e. create
+ an additional service of the container: a "unit-testing
service"
+ (in addition to the existing Security, Transaction, Life Cycle, ...
+ Services). The ultimate
+ goal will be reached when this new API/SPI is accepted and become
+ a de jure standard. It would then be time to think about
+ integrating it into the Servlet Specifications
+ (or other components -like EJBs -
+ specifications). Agreed, this far-streched at the current time
+ but it is the Cactus vision!
+ </li>
+ </ul>
+
+ </div>
+
+ </div>
+
+ <a name="Feedback needed!"></a><div class="section"><h2>Feedback
needed!</h2>
+
+
+ Cactus is an open source project where everyone is free to participate
+ (and even encouraged). Thus, we'd really like to have your opinions on
+ the subject of Cactus future.
+
+
+ How do you view the future of Cactus?
+
+
+ Do you like the goals and vision defined above?
+
+
+ Please send all answers to the
+ <a href="mail-lists.html">Cactus mailing list</a>.
+
+
+ Thanks.
+
+
+ </div>
+
+
+
+ </div>
+ </div>
+ <div class="clear">
+ <hr/>
+ </div>
+ <div id="footer">
+ <div class="xright">©
+ 2001-2009
+
+ Apache Software Foundation
+
+
+
+
+
+
+
+ </div>
+ <div class="clear">
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
Propchange: jakarta/site/docs/cactus/goals.html
------------------------------------------------------------------------------
svn:eol-style = native
Added: jakarta/site/docs/cactus/how_it_works.html
URL:
http://svn.apache.org/viewvc/jakarta/site/docs/cactus/how_it_works.html?rev=1696636&view=auto
==============================================================================
--- jakarta/site/docs/cactus/how_it_works.html (added)
+++ jakarta/site/docs/cactus/how_it_works.html Wed Aug 19 17:50:26 2015
@@ -0,0 +1,608 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+
+
+
+
+
+
+
+
+<html>
+ <head>
+
+
+ <title>Jakarta Cactus -
+ Cactus Architecture</title>
+ <style type="text/css" media="all">
+ @import url("http://jakarta.apache.org/cactus/css/maven-base.css");
+ @import url("http://jakarta.apache.org/cactus/css/maven-theme.css");
+ @import url("http://jakarta.apache.org/cactus/css/site.css");
+ </style>
+ <link rel="stylesheet"
href="http://jakarta.apache.org/cactus/css/print.css" type="text/css"
media="print" />
+ <meta http-equiv="Content-Type" content="text/html;
charset=ISO-8859-1" />
+ </head>
+ <body class="composite">
+
+
+<div style="background: red"><h1>2011/08/05 - Jakarta Cactus has been retired.
</h1><h2>For more information, please explore the <a
href="http://attic.apache.org/">Attic</a>. </h2></div>
+ <div id="banner">
+ <a href="" id="bannerLeft">
+
+ <img src="images/logocactus.gif"
alt="" />
+
+ </a>
+ <a href="http://jakarta.apache.org/" id="bannerRight">
+
+ <img src="images/jakarta-logo.gif"
alt="" />
+
+ </a>
+ <div class="clear">
+ <hr/>
+ </div>
+ </div>
+ <div id="breadcrumbs">
+
+
+
+
+
+
+
+ <div class="xleft">
+ Last Published: 01/18/2009
+ |
+ <a href="http://www.apache.org/">Apache</a>
+ >
+
+ <a href="http://www.jakarta.apache.org/">Jakarta</a>
+ >
+
+ Cactus
+ </div>
+ <div class="xright">
+
+
+
+
+
+
+ </div>
+ <div class="clear">
+ <hr/>
+ </div>
+ </div>
+ <div id="leftColumn">
+ <div id="navcolumn">
+
+
+
+
+
+
+
+ <h5>About</h5>
+ <ul>
+
+ <li class="none">
+ <a href="index.html">Overview</a>
+ </li>
+
+ <li class="none">
+ <a href="goals.html">Goals</a>
+ </li>
+
+ <li class="none">
+ <a href="features.html">Features</a>
+ </li>
+
+ <li class="none">
+ <a href="news.html">News</a>
+ </li>
+
+ <li class="none">
+ <a href="downloads.html">Downloads</a>
+ </li>
+
+ <li class="none">
+ <a
href="http://issues.apache.org/jira/secure/BrowseProject.jspa?id=10471">Bug
Database</a>
+ </li>
+
+ <li class="none">
+ <a href="mail-lists.html">Mailing Lists</a>
+ </li>
+
+ <li class="none">
+ <a href="faq.html">FAQ</a>
+ </li>
+
+ <li class="none">
+ <a
href="http://wiki.apache.org/jakarta-cactus/FrontPage">Wiki</a>
+ </li>
+
+ <li class="none">
+ <a href="license.html">License</a>
+ </li>
+ </ul>
+ <h5>Project Documentation</h5>
+ <ul>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="project-info.html">Project Information</a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="project-reports.html">Project Reports</a>
+ </li>
+ </ul>
+ <h5>Documentation</h5>
+ <ul>
+
+ <li class="none">
+ <a href="getting_started.html">Getting started</a>
+ </li>
+
+ <li class="none">
+ <strong>How it works</strong>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="writing/howto_ejb.html">Writing tests</a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="integration/index.html">Running tests</a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="participating/index.html">Participating</a>
+ </li>
+ </ul>
+ <h5>Miscellaneous</h5>
+ <ul>
+
+ <li class="none">
+ <a href="cactusname.html">Why the name</a>
+ </li>
+
+ <li class="none">
+ <a href="mock_vs_cactus.html">Mock vs Container</a>
+ </li>
+
+ <li class="none">
+ <a href="http://wiki.apache.org/jakarta-cactus/TestedOn">Tested
On...</a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="resources/index.html">Resources</a>
+ </li>
+ </ul>
+ <h5>Translations</h5>
+ <ul>
+
+ <li class="none">
+ <a href="http://www.ressources-java.net/cactus">French</a>
+ </li>
+
+ <li class="none">
+ <a
href="http://jakarta.apache-korea.org/cactus/index.html">Korean</a>
+ </li>
+
+ <li class="none">
+ <a href="http://www.jajakarta.org/cactus/">Japanese</a>
+ </li>
+ </ul>
+ <h5>See also</h5>
+ <ul>
+
+ <li class="none">
+ <a href="http://www.apachebookstore.com/">Apache Bookstore</a>
+ </li>
+
+ <li class="none">
+ <a href="http://www.planetapache.org/">Planet Apache</a>
+ </li>
+
+ <li class="none">
+ <a href="http://apache.org/foundation/thanks.html">Apache
Sponsors</a>
+ </li>
+ </ul>
+
+
+
+ <a href="" title="Jakarta Cactus" id="poweredBy">
+ <img alt="Jakarta Cactus"
src="images/cactusbanner.gif" />
+ </a>
+
+
+
+
+
+
+
+ </div>
+ </div>
+ <div id="bodyColumn">
+ <div id="contentBox">
+
+
+
+
+
+
+ <a name="How it works"></a><div class="section"><h2>How it works</h2>
+
+ <p>
+ Click <a href="how_it_works_uml.html">here</a> for a UML
+ sequence diagram.
+ </p>
+ <p>
+ <img src="images/archi.jpg" alt="Cactus Architecture"></img>
+ </p>
+ <note>
+ Cactus provides several <code>TestCase</code> classes that extends the
+ JUnit <code>Testcase</code> and it also provides several kind of
+ redirectors (Servlet Redirector, JSP Redirector, ...). The diagram
+ above is a generic diagram which serves to explain the principles.
+ You'll find details for a specific redirector proxy in the next
+ section.
+ </note>
+ <note>
+ YYYTestCase = ( ServletTestCase | FilterTestCase | JspTestCase )
+ </note>
+ <note>
+ XXX is the name of the test case. Each YYYTestCase class contains
+ several test cases.
+ </note>
+
+ <p>
+ Let's go through the different steps to understand how it works. Here
+ is what happens for each <code>testXXX()</code> method in your
+ test case class (derived from <code>YYYTestCase</code>):
+ </p>
+ <ol type="1">
+ <li>
+ The JUnit Test Runner calls a <code>YYYTestCase.runTest()</code>
+ method. This method first looks for a <code>begin(WebRequest)</code>
+ method and executes it if found. Note that this method is called
+ before each test. The <code>WebRequest</code> parameter passed to
+ the <code>beginXXX()</code> method is used to set the HTTP headers,
+ the HTTP parameters, ... that will be sent in step 2 to the
Redirector
+ proxy. The <code>runTest()</code> method then looks for a
+ <code>beginXXX(WebRequest)</code> method and executes it if
+ found.
+ </li>
+ <li>
+ The <code>YYYTestCase.runTest()</code> method then opens an HTTP
+ connection to the Redirector proxy. All the parameters set up
+ in the <code>beginXXX()</code> method are sent in the HTTP request
+ (HTTP headers, HTTP parameters, ...)
+ </li>
+ <li>
+ The Redirector proxy acts as a proxy on the server side for your
+ test case class. It means that your test case class is instantiated
+ twice: once on the client side (by the JUnit Test Runner) and once
+ on the server side (by the Redirector proxy). The client side
+ instance is used for executing the
+ <code>begin()</code>, <code>beginXXX()</code>, <code>endXXX()</code>
+ and <code>end()</code> methods (see
+ steps 1 and 8) and the server side instance is used for executing
+ the <code>testXXX()</code> methods (see step 4). The Redirector
+ proxy does the following:
+ <ul>
+ <li>
+ creates an instance of your test class using reflection. It
+ then sets specific implicit objects (which are class
+ variables of <code>YYYTestCase</code>). These implicit objects
+ depend on the redirector proxy (see next section).
+ </li>
+ <li>
+ creates instances of Cactus wrappers for some server objects
+ (<code>HttpServletRequest</code>, <code>ServletConfig</code>,
+ <code>ServletContext</code>, ...). This is to be able to
+ to override some methods in order to return simulated values.
+ For example, the Cactus framework can simulate an URI (i.e.
+ act as if this URI was called instead of the Redirector proxy
+ URI). Thus, the <code>getServerName()</code>,
+ <code>getServerPort()</code>,
+ <code>getRequestURI()</code>, ... methods return values based
+ on the simulated URI (if there is any defined by the user).
+ </li>
+ <li>
+ creates an HTTP Session if the user has expressed the wish
+ (using the
+ <code>WebRequest.setAutomaticSession(boolean)</code>
+ code in the <code>beginXXX()</code> method. By default a session
+ is always created) and the redirector fills by reflection the
+ <code>session</code> implicit object.
+ </li>
+ </ul>
+ </li>
+ <li>
+ The <code>setUp()</code>, <code>testXXX()</code>
+ and <code>tearDown()</code> methods of your test class are executed
+ (in that order). They are called by the Redirector proxy using
+ reflection. Of course, <code>setUp()</code> and
+ <code>tearDown()</code> are optional (same as in JUnit).
+ </li>
+ <li>
+ Your <code>testXXX()</code> method calls your server
+ side code to test, executing the test and using the JUnit assert API
+ to assert the result (<code>assert()</code>,
+ <code>assertEquals()</code>, <code>fail()</code>, ...)
+ </li>
+ <li>
+ If the test fails, your <code>testXXX()</code> methods
+ throws exceptions which are caught by the Redirector proxy.
+ </li>
+ <li>
+ If an exception has been raised, the Redirector proxy returns the
+ information about the exception (its name, class, stack trace) back
+ to the client side. Information about the exception will then be
+ printed by JUnit in its Test Runner console.
+ </li>
+ <li>
+ If no exception occurred, the <code>YYYTestCase.runTest()</code>
+ method looks for an
<code>endXXX(org.apache.cactus.WebResponse)</code>
+ or <code>endXXX(com.meterware.httpunit.WebResponse)</code> method
(this
+ signature is used for <a href="writing/howto_httpunit.html">HttpUnit
+ integration</a>) and executes it if found. At this stage,
+ you have the opportunity to check returned HTTP headers, Cookies and
+ the servlet output stream in the <code>endXXX()</code> method, again
+ using JUnit asserts and helper utility classes provided by Cactus.
+ Then the <code>runTest()</code> methods looks for an
+ <code>end(org.apache.cactus.WebResponse)</code> or
+ <code>end(com.meterware.httpunit.WebResponse)</code> method and calls
+ it if found. This <code>end()</code> method is called after each
test.
+ </li>
+ </ol>
+
+ <a name="Redirector Proxies"></a><div class="section"><h2>Redirector
Proxies</h2>
+
+
+ Cactus provides 3 implementations of Redirector Proxies
+ (see the <a href="writing/howto_testcase.html">TestCase Howto</a>
+ tutorial for more details on how to use these redirectors):
+
+ <ul>
+ <li>
+ <em>A Servlet Redirector</em>. This redirector is a servlet that
+ should be used for unit testing servlet methods or any java class
+ that uses servlet objects (<code>HttpServletRequest</code>, ...)
+ </li>
+ <li>
+ <em>A JSP Redirector</em>. This redirector is a JSP page that
+ should be used for unit testing server code that need access to
+ JSP implicit objects (<code>PageContext</code>, ...). The JSP
+ Redirector should be used to unit test custom Tag libraries.
+ </li>
+ <li>
+ <em>A Filter Redirector</em>. This redirector is a Servlet Filter
+ that should be uses for unit testing Servlet Filters or any java
+ class that uses filter objects (<code>FilterConfig</code>, ...).
+ </li>
+ </ul>
+
+ <a name="Servlet Redirector Proxy"></a><div
class="section"><h3>Servlet Redirector Proxy</h3>
+ <center>
+
+ <img src="images/archi_servlet.jpg" alt="Servlet Redirector
Architecture"></img>
+
+ </center>
+
+ The client side opens 2 HTTP connections to the Servlet redirector.
+ Once to execute the tests and retrieve the servlet output stream
and
+ a second time to get the test result. This is to be able to get
+ the exception data (message, stack trace, ...) if the test failed.
+ The test results are stored in a variable which is put in the
+ <code>ServletContext</code> and then retrieved on the second HTTP
+ connection.
+
+
+ </div>
+
+ <a name="JSP Redirector Proxy"></a><div class="section"><h3>JSP
Redirector Proxy</h3>
+ <center>
+
+ <img src="images/archi_jsp.jpg" alt="JSP Redirector
Architecture"></img>
+
+ </center>
+
+ The client side opens 2 HTTP connections to the JSP redirector.
+ Once to execute the tests and retrieve the servlet output stream
and
+ a second time to get the test result. This is to be able to get
+ the exception data (message, stack trace, ...) if the test failed.
+ The test results are stored in a variable which is put in the
+ <code>ServletContext</code> and then retrieved on the second HTTP
+ connection.
+
+
+ </div>
+
+ <a name="Filter Redirector Proxy"></a><div class="section"><h3>Filter
Redirector Proxy</h3>
+ <center>
+
+ <img src="images/archi_filter.jpg" alt="Filter Redirector
Architecture"></img>
+
+ </center>
+
+ The client side opens 2 HTTP connections to the Filter redirector.
+ Once to execute the tests and retrieve the servlet output stream
and
+ a second time to get the test result. This is to be able to get
+ the exception data (message, stack trace, ...) if the test failed.
+ The test results are stored in a variable which is put in the
+ <code>ServletContext</code> and then retrieved on the second HTTP
+ connection.
+
+
+ </div>
+
+ </div>
+
+ </div>
+
+
+
+ </div>
+ </div>
+ <div class="clear">
+ <hr/>
+ </div>
+ <div id="footer">
+ <div class="xright">©
+ 2001-2009
+
+ Apache Software Foundation
+
+
+
+
+
+
+
+ </div>
+ <div class="clear">
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
Propchange: jakarta/site/docs/cactus/how_it_works.html
------------------------------------------------------------------------------
svn:eol-style = native
Added: jakarta/site/docs/cactus/howto_sample.html
URL:
http://svn.apache.org/viewvc/jakarta/site/docs/cactus/howto_sample.html?rev=1696636&view=auto
==============================================================================
--- jakarta/site/docs/cactus/howto_sample.html (added)
+++ jakarta/site/docs/cactus/howto_sample.html Wed Aug 19 17:50:26 2015
@@ -0,0 +1,497 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+
+
+
+
+
+
+
+
+<html>
+ <head>
+
+
+ <title>Jakarta Cactus -
+ Sample Howto</title>
+ <style type="text/css" media="all">
+ @import url("http://jakarta.apache.org/cactus/css/maven-base.css");
+ @import url("http://jakarta.apache.org/cactus/css/maven-theme.css");
+ @import url("http://jakarta.apache.org/cactus/css/site.css");
+ </style>
+ <link rel="stylesheet"
href="http://jakarta.apache.org/cactus/css/print.css" type="text/css"
media="print" />
+ <meta http-equiv="Content-Type" content="text/html;
charset=ISO-8859-1" />
+ </head>
+ <body class="composite">
+
+
+<div style="background: red"><h1>2011/08/05 - Jakarta Cactus has been retired.
</h1><h2>For more information, please explore the <a
href="http://attic.apache.org/">Attic</a>. </h2></div>
+ <div id="banner">
+ <a href="" id="bannerLeft">
+
+ <img src="images/logocactus.gif"
alt="" />
+
+ </a>
+ <a href="http://jakarta.apache.org/" id="bannerRight">
+
+ <img src="images/jakarta-logo.gif"
alt="" />
+
+ </a>
+ <div class="clear">
+ <hr/>
+ </div>
+ </div>
+ <div id="breadcrumbs">
+
+
+
+
+
+
+
+ <div class="xleft">
+ Last Published: 01/18/2009
+ |
+ <a href="http://www.apache.org/">Apache</a>
+ >
+
+ <a href="http://www.jakarta.apache.org/">Jakarta</a>
+ >
+
+ Cactus
+ </div>
+ <div class="xright">
+
+
+
+
+
+
+ </div>
+ <div class="clear">
+ <hr/>
+ </div>
+ </div>
+ <div id="leftColumn">
+ <div id="navcolumn">
+
+
+
+
+
+
+
+ <h5>About</h5>
+ <ul>
+
+ <li class="none">
+ <a href="index.html">Overview</a>
+ </li>
+
+ <li class="none">
+ <a href="goals.html">Goals</a>
+ </li>
+
+ <li class="none">
+ <a href="features.html">Features</a>
+ </li>
+
+ <li class="none">
+ <a href="news.html">News</a>
+ </li>
+
+ <li class="none">
+ <a href="downloads.html">Downloads</a>
+ </li>
+
+ <li class="none">
+ <a
href="http://issues.apache.org/jira/secure/BrowseProject.jspa?id=10471">Bug
Database</a>
+ </li>
+
+ <li class="none">
+ <a href="mail-lists.html">Mailing Lists</a>
+ </li>
+
+ <li class="none">
+ <a href="faq.html">FAQ</a>
+ </li>
+
+ <li class="none">
+ <a
href="http://wiki.apache.org/jakarta-cactus/FrontPage">Wiki</a>
+ </li>
+
+ <li class="none">
+ <a href="license.html">License</a>
+ </li>
+ </ul>
+ <h5>Project Documentation</h5>
+ <ul>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="project-info.html">Project Information</a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="project-reports.html">Project Reports</a>
+ </li>
+ </ul>
+ <h5>Documentation</h5>
+ <ul>
+
+ <li class="none">
+ <a href="getting_started.html">Getting started</a>
+ </li>
+
+ <li class="none">
+ <a href="how_it_works.html">How it works</a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="writing/howto_ejb.html">Writing tests</a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="integration/index.html">Running tests</a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="participating/index.html">Participating</a>
+ </li>
+ </ul>
+ <h5>Miscellaneous</h5>
+ <ul>
+
+ <li class="none">
+ <a href="cactusname.html">Why the name</a>
+ </li>
+
+ <li class="none">
+ <a href="mock_vs_cactus.html">Mock vs Container</a>
+ </li>
+
+ <li class="none">
+ <a href="http://wiki.apache.org/jakarta-cactus/TestedOn">Tested
On...</a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="resources/index.html">Resources</a>
+ </li>
+ </ul>
+ <h5>Translations</h5>
+ <ul>
+
+ <li class="none">
+ <a href="http://www.ressources-java.net/cactus">French</a>
+ </li>
+
+ <li class="none">
+ <a
href="http://jakarta.apache-korea.org/cactus/index.html">Korean</a>
+ </li>
+
+ <li class="none">
+ <a href="http://www.jajakarta.org/cactus/">Japanese</a>
+ </li>
+ </ul>
+ <h5>See also</h5>
+ <ul>
+
+ <li class="none">
+ <a href="http://www.apachebookstore.com/">Apache Bookstore</a>
+ </li>
+
+ <li class="none">
+ <a href="http://www.planetapache.org/">Planet Apache</a>
+ </li>
+
+ <li class="none">
+ <a href="http://apache.org/foundation/thanks.html">Apache
Sponsors</a>
+ </li>
+ </ul>
+
+
+
+ <a href="" title="Jakarta Cactus" id="poweredBy">
+ <img alt="Jakarta Cactus"
src="images/cactusbanner.gif" />
+ </a>
+
+
+
+
+
+
+
+ </div>
+ </div>
+ <div id="bodyColumn">
+ <div id="contentBox">
+
+
+
+
+
+
+ <a name="Introduction"></a><div class="section"><h2>Introduction</h2>
+
+ <p>
+ This tutorial explains where to get Cactus samples and how to use
+ them.
+ </p>
+ <p>
+ There are some samples available as part of the documentation. The
+ samples depend on the kind of test case you are writing (Servlet,
+ Taglibs, Filters, ...). For this reason you'll find some samples
+ in the <a href="writing/howto_testcase.html">TestCase Howto</a>
+ tutorial.
+ </p>
+ <p>
+ However, the majority of Cactus samples are in the form of source
+ samples. These samples are part of the Cactus distribution that
+ you have downloaded (in the <code>samples</code> directory).
+ </p>
+ <p>
+ The following section explains how to execute the Cactus Samples
+ using Ant or Maven2(the Maven2 execution only calls the Ant execution).
+ If you wish to integrate them in your own build system or in your
+ favorite IDE, you'll have to understand the principles first and
+ manually install them (read the
+ <a href="getting_started.html">Getting Started</a>
+ and the <a href="integration/manual/howto_config.html">Configuration
Howto</a>
+ tutorials). Some detailed explanations for IDE integration
+ are also available in the <a href="integration/howto_ide.html">IDE
Howto</a>
+ tutorial.
+ </p>
+
+ </div>
+
+ <a name="Running the Cactus Samples using Ant"></a><div
class="section"><h2>Running the Cactus Samples using Ant</h2>
+
+ <a name="Prerequisites"></a><div class="section"><h3>Prerequisites</h3>
+
+ <p>
+ You need to install the following items prior to building the Cactus
+ Sample application:
+ </p>
+ <ul>
+ <li>
+ A JVM (1.2 or above),
+ </li>
+ <li>
+ You don't need a servlet engine any more, since Cactus in
integrated with
+ Cargo and now Cargo tries to download a servlet container for you.
+ </li>
+ <li>
+ Ant (see the <a
href="integration/ant/howto_ant_install.html">"Installing
+ Ant"</a> tutorial).
+ </li>
+ <li>
+ <a href="http://ant.apache.org/ivy/">Ivy</a> for copying the
dependencies from the <code>m2</code> repository.
+ The installation of Ivy is pretty straight-forward: simply place
the two <code>Ivy</code>
+ jars(<code>ivy-[version].jar</code> and
<code>ivy-core[version].jar</code>) in the <code>ANT_HOME/lib</code> directory.
+ </li>
+ <li>
+ <a href="http://maven.apache.org/">Maven2</a> for getting the
dependencies.
+ </li>
+
+ </ul>
+
+ </div>
+
+ <a name="Installing the Cactus Sample"></a><div
class="section"><h3>Installing the Cactus Sample</h3>
+
+
+ Follow these steps:
+
+ <ul>
+ <li>
+ Download the <a href="downloads.html">Cactus Sample</a> and
+ unzip it in a directory. Let's call the
<code>[downloaded_directory]/samples</code> directory
+ <em><code>sampleroot</code></em>.
+ </li>
+ </ul>
+
+ </div>
+
+ <a name="Running the samples"></a><div class="section"><h3>Running the
samples</h3>
+
+
+ Open a shell, cd to the <em><code>sampleroot</code></em>
+ directory and select which samples you want to run. To run all of the
+ dependencies type in <code>sampleroot</code> the following:
<code>mvn install</code>.
+ If you want to run just one type of samples, cd to the corresponding
directory and
+ type agsain <code>mvn install</code>. What will happen is that Maven
will get all of the
+ dependencies(approximately 10-15 min.) and then will invoke Ant to
execute the tests.
+ Ant will call Cargo to get the container that is needed to execute
the tests in (approximately 5-10 min.)
+ and will execute the tests (approximately 2-3 mins.) As you can see
the majority of time
+ is spent on getting the dependencies and the containers. Hopefully
this is done only one time(dependencies)
+ or until you call <code>mvn clean</code>(containers).
+
+
+ </div>
+
+ </div>
+
+
+
+ </div>
+ </div>
+ <div class="clear">
+ <hr/>
+ </div>
+ <div id="footer">
+ <div class="xright">©
+ 2001-2009
+
+ Apache Software Foundation
+
+
+
+
+
+
+
+ </div>
+ <div class="clear">
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
Propchange: jakarta/site/docs/cactus/howto_sample.html
------------------------------------------------------------------------------
svn:eol-style = native
Added: jakarta/site/docs/cactus/images/cactusbanner.gif
URL:
http://svn.apache.org/viewvc/jakarta/site/docs/cactus/images/cactusbanner.gif?rev=1696636&view=auto
==============================================================================
Binary file - no diff available.
Propchange: jakarta/site/docs/cactus/images/cactusbanner.gif
------------------------------------------------------------------------------
svn:mime-type = image/gif
Added: jakarta/site/docs/cactus/images/ecosystem.jpg
URL:
http://svn.apache.org/viewvc/jakarta/site/docs/cactus/images/ecosystem.jpg?rev=1696636&view=auto
==============================================================================
Binary file - no diff available.
Propchange: jakarta/site/docs/cactus/images/ecosystem.jpg
------------------------------------------------------------------------------
svn:mime-type = image/jpeg
Added: jakarta/site/docs/cactus/images/jakarta-logo.gif
URL:
http://svn.apache.org/viewvc/jakarta/site/docs/cactus/images/jakarta-logo.gif?rev=1696636&view=auto
==============================================================================
Binary file - no diff available.
Propchange: jakarta/site/docs/cactus/images/jakarta-logo.gif
------------------------------------------------------------------------------
svn:mime-type = image/gif
Added: jakarta/site/docs/cactus/images/logocactus.gif
URL:
http://svn.apache.org/viewvc/jakarta/site/docs/cactus/images/logocactus.gif?rev=1696636&view=auto
==============================================================================
Binary file - no diff available.
Propchange: jakarta/site/docs/cactus/images/logocactus.gif
------------------------------------------------------------------------------
svn:mime-type = image/gif
Added: jakarta/site/docs/cactus/index.html
URL:
http://svn.apache.org/viewvc/jakarta/site/docs/cactus/index.html?rev=1696636&view=auto
==============================================================================
--- jakarta/site/docs/cactus/index.html (added)
+++ jakarta/site/docs/cactus/index.html Wed Aug 19 17:50:26 2015
@@ -0,0 +1,516 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+
+
+
+
+
+
+
+
+<html>
+ <head>
+
+
+ <title>Jakarta Cactus -
+ Jakarta Cactus</title>
+ <style type="text/css" media="all">
+ @import url("http://jakarta.apache.org/cactus/css/maven-base.css");
+ @import url("http://jakarta.apache.org/cactus/css/maven-theme.css");
+ @import url("http://jakarta.apache.org/cactus/css/site.css");
+ </style>
+ <link rel="stylesheet"
href="http://jakarta.apache.org/cactus/css/print.css" type="text/css"
media="print" />
+ <meta http-equiv="Content-Type" content="text/html;
charset=ISO-8859-1" />
+ </head>
+ <body class="composite">
+
+
+<div style="background: red"><h1>2011/08/05 - Jakarta Cactus has been retired.
</h1><h2>For more information, please explore the <a
href="http://attic.apache.org/">Attic</a>. </h2></div>
+ <div id="banner">
+ <a href="" id="bannerLeft">
+
+ <img src="images/logocactus.gif"
alt="" />
+
+ </a>
+ <a href="http://jakarta.apache.org/" id="bannerRight">
+
+ <img src="images/jakarta-logo.gif"
alt="" />
+
+ </a>
+ <div class="clear">
+ <hr/>
+ </div>
+ </div>
+ <div id="breadcrumbs">
+
+
+
+
+
+
+
+ <div class="xleft">
+ Last Published: 01/18/2009
+ |
+ <a href="http://www.apache.org/">Apache</a>
+ >
+
+ <a href="http://www.jakarta.apache.org/">Jakarta</a>
+ >
+
+ Cactus
+ </div>
+ <div class="xright">
+
+
+
+
+
+
+ </div>
+ <div class="clear">
+ <hr/>
+ </div>
+ </div>
+ <div id="leftColumn">
+ <div id="navcolumn">
+
+
+
+
+
+
+
+ <h5>About</h5>
+ <ul>
+
+ <li class="none">
+ <strong>Overview</strong>
+ </li>
+
+ <li class="none">
+ <a href="goals.html">Goals</a>
+ </li>
+
+ <li class="none">
+ <a href="features.html">Features</a>
+ </li>
+
+ <li class="none">
+ <a href="news.html">News</a>
+ </li>
+
+ <li class="none">
+ <a href="downloads.html">Downloads</a>
+ </li>
+
+ <li class="none">
+ <a
href="http://issues.apache.org/jira/secure/BrowseProject.jspa?id=10471">Bug
Database</a>
+ </li>
+
+ <li class="none">
+ <a href="mail-lists.html">Mailing Lists</a>
+ </li>
+
+ <li class="none">
+ <a href="faq.html">FAQ</a>
+ </li>
+
+ <li class="none">
+ <a
href="http://wiki.apache.org/jakarta-cactus/FrontPage">Wiki</a>
+ </li>
+
+ <li class="none">
+ <a href="license.html">License</a>
+ </li>
+ </ul>
+ <h5>Project Documentation</h5>
+ <ul>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="project-info.html">Project Information</a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="project-reports.html">Project Reports</a>
+ </li>
+ </ul>
+ <h5>Documentation</h5>
+ <ul>
+
+ <li class="none">
+ <a href="getting_started.html">Getting started</a>
+ </li>
+
+ <li class="none">
+ <a href="how_it_works.html">How it works</a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="writing/howto_ejb.html">Writing tests</a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="integration/index.html">Running tests</a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="participating/index.html">Participating</a>
+ </li>
+ </ul>
+ <h5>Miscellaneous</h5>
+ <ul>
+
+ <li class="none">
+ <a href="cactusname.html">Why the name</a>
+ </li>
+
+ <li class="none">
+ <a href="mock_vs_cactus.html">Mock vs Container</a>
+ </li>
+
+ <li class="none">
+ <a href="http://wiki.apache.org/jakarta-cactus/TestedOn">Tested
On...</a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="resources/index.html">Resources</a>
+ </li>
+ </ul>
+ <h5>Translations</h5>
+ <ul>
+
+ <li class="none">
+ <a href="http://www.ressources-java.net/cactus">French</a>
+ </li>
+
+ <li class="none">
+ <a
href="http://jakarta.apache-korea.org/cactus/index.html">Korean</a>
+ </li>
+
+ <li class="none">
+ <a href="http://www.jajakarta.org/cactus/">Japanese</a>
+ </li>
+ </ul>
+ <h5>See also</h5>
+ <ul>
+
+ <li class="none">
+ <a href="http://www.apachebookstore.com/">Apache Bookstore</a>
+ </li>
+
+ <li class="none">
+ <a href="http://www.planetapache.org/">Planet Apache</a>
+ </li>
+
+ <li class="none">
+ <a href="http://apache.org/foundation/thanks.html">Apache
Sponsors</a>
+ </li>
+ </ul>
+
+
+
+ <a href="" title="Jakarta Cactus" id="poweredBy">
+ <img alt="Jakarta Cactus"
src="images/cactusbanner.gif" />
+ </a>
+
+
+
+
+
+
+
+ </div>
+ </div>
+ <div id="bodyColumn">
+ <div id="contentBox">
+
+
+
+<head>
+ <LINK REL="SHORTCUT ICON" HREF="favicon.ico"></LINK>
+</head>
+
+
+ <a name="Project Description"></a><div class="section"><h2>Project
Description</h2>
+ <p>
+ Cactus is a simple test framework for unit testing server-side java
+ code (Servlets, EJBs, Tag Libs, Filters, ...).
+ </p>
+ <p>
+ The intent of Cactus is to lower the cost of writing tests for
+ server-side code. It uses <a href="http://junit.org/">JUnit</a> and
+ extends it.
+ </p>
+ <p>
+ Cactus implements an in-container strategy, meaning that tests are
+ executed inside the container.
+ </p>
+ <p>
+ <center>
+ <img src="images/ecosystem.jpg" alt="The Cactus Ecosystem"
usemap="#ecosystem" style="float: center; margin-right: 1em;">
+<map name="ecosystem">
+
+
+
+
+
+<area shape="poly"
coords="58,91,39,103,38,127,72,146,104,132,106,103,80,87,82,88,71,87" alt="EJB
Sample" href="howto_sample.html"></area>
+<area shape="poly"
coords="46,148,23,157,17,173,26,193,55,203,81,192,90,174,80,154,58,148"
alt="Servlet Sample" href="howto_sample.html"></area>
+<area shape="poly"
coords="47,211,35,229,40,250,61,257,88,259,104,242,107,222,88,206,69,204,50,208"
alt="Jetty Sample" href="howto_sample.html"></area>
+<area shape="poly"
coords="124,146,103,159,96,166,98,181,108,198,129,201,149,199,168,184,164,162,158,151,146,147,130,146,128,146"
alt="Ant Integration" href="integration/integration_ant.html"></area>
+<area shape="poly"
coords="153,205,142,214,132,225,137,244,146,256,171,259,189,252,203,242,206,222,192,208,181,204,165,203"
alt="Manual Configuration" href="integration/manual/howto_config.html"></area>
+<area shape="poly"
coords="227,208,216,223,218,239,237,256,259,257,285,244,289,224,281,209,267,205,252,201,240,203"
alt="Browser Integration" href="integration/integration_browser.html"></area>
+<area shape="poly"
coords="253,171,259,187,272,200,286,202,299,202,321,192,328,176,316,152,300,148,284,147,270,153,258,160,257,162,257,160"
alt="Jetty Integration" href="integration/integration_jetty.html"></area>
+<area shape="poly"
coords="225,99,217,110,217,126,227,140,240,146,250,147,260,145,282,136,287,123,288,109,280,100,266,90,248,91,234,92"
alt="Maven Plugin" href="integration/maven/index.html"></area>
+<area shape="poly"
coords="136,103,136,127,149,140,171,146,187,142,202,132,206,123,206,111,198,103,192,94,178,90,166,89,151,94"
alt="Eclipse Plugin" href="integration/eclipse/index.html"></area>
+<area shape="poly"
coords="203,139,187,146,177,153,169,163,169,178,174,195,186,203,205,207,221,207,244,197,253,181,253,163,244,152,235,145,221,139,210,141,198,141"
alt="Cactus Framework" href="index.html"></area>
+<area shape="poly"
coords="307,74,296,91,298,99,304,109,311,117,320,122,330,124,341,122,350,118,363,112,369,102,369,92,367,79,356,71,351,69,341,69,334,67,326,68,315,70"
alt="Jenerator" href="http://www.visioncodified.com/"></area>
+<area shape="poly"
coords="336,127,328,144,329,154,334,164,341,168,351,173,356,176,367,176,373,176,381,176,387,163,396,167,401,159,401,147,395,132,391,125,383,121,374,122,365,122,357,124,351,124,345,124"
alt="StrutsTestCase" href="http://strutstestcase.sourceforge.net/"></area>
+<area shape="poly"
coords="336,185,329,197,329,208,333,221,339,225,345,230,362,235,373,235,381,235,389,226,392,222,396,216,400,210,401,203,401,196,394,186,386,182,380,178,376,178,366,178,358,180,354,182,346,182,340,184,333,188"
alt="JUnitEE Runner" href="http://www.junitee.org/"></area>
+<area shape="poly"
coords="299,242,291,248,291,259,291,270,301,281,315,285,331,289,346,289,358,273,363,263,363,252,357,243,353,235,343,231,332,227,319,229,310,233,304,237,296,241"
alt="JSFUnit" href="http://labs.jboss.com/jsfunit/"></area>
+</map>
+ </img>
+ </center>
+ </p>
+ <p>
+ The Cactus Ecosystem is made of several components:
+ </p>
+ <ul>
+ <li>
+ The Cactus Framework: This is the heart of Cactus. It is the engine
+ that provides the API to write Cactus tests.
+ </li>
+ <li>
+ The Cactus Integration Modules: They are front ends and frameworks
+ that provide easy ways of using the Cactus Framework (Ant scripts,
+ Eclipse plugin, Maven plugin, ...).
+ </li>
+ <li>
+ The Cactus Samples: They are simple projects that demonstrate how
+ to write Cactus tests and how to use some of the Integration Modules.
+ </li>
+ </ul>
+ </div>
+
+ <anchor id="unittest_types"></anchor>
+ <a name="Different kinds of unit tests"></a><div
class="section"><h2>Different kinds of unit tests</h2>
+
+
+ There are several kinds of unit testing frameworks. We categorize them
+ in 3 types:
+
+ <ol type="1">
+ <li>
+ <strong>Type 1: code logic unit testing</strong>. Probably the
+ best strategy for these tests is to use a
+ <a href="http://www.mockobjects.com/">Mock Objects</a> type
+ framework.
+ </li>
+ <li>
+ <strong>Type 2: integration unit testing</strong>. Cactus is
+ typically in this category (we'll let you judge if it is the best or
+ not :)). These tests will exercise the interactions with the
+ container.
+ </li>
+ <li>
+ <strong>Type 3: functional unit testing</strong>. These unit tests
+ will let you test the returned values from your server code. This is
+ for example
+ <a href="http://httpunit.sourceforge.net/">HttpUnit</a> (Note that
HttpUnit also
+ performs standard functional testing - as opposed to functional unit
+ testing -, which let you test full use cases - a login use case for
+ example, which is comprised of several requests/responses).
+ </li>
+ </ol>
+
+ Ideally you would use 3 different frameworks just to unit test your
+ code ! Then you have to think about acceptance testing, system
+ integration testing, ...
+
+
+ Cactus was developed to fit Type 2 but also to be a very good
+ compromise for types 1 and 3, with the idea that it is much easier to
+ have to write tests for a single framework than for several ! Moreover,
+ you can never fully test your code. We believe Cactus provides a middle
+ ground that provides a high confidence that your code will run when
+ deployed. However, it is your choice and you can use Cactus only for
+ type 2 if you wish.
+
+
+ </div>
+
+ <a name="Getting Started"></a><div class="section"><h2>Getting Started</h2>
+
+
+ To get started, read the
+ <a href="getting_started.html">Getting Started</a> guide.
+
+
+ </div>
+
+
+
+ </div>
+ </div>
+ <div class="clear">
+ <hr/>
+ </div>
+ <div id="footer">
+ <div class="xright">©
+ 2001-2009
+
+ Apache Software Foundation
+
+
+
+
+
+
+
+ </div>
+ <div class="clear">
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
Propchange: jakarta/site/docs/cactus/index.html
------------------------------------------------------------------------------
svn:eol-style = native