You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cactus-dev@jakarta.apache.org by jr...@apache.org on 2003/03/27 18:53:45 UTC

cvs commit: jakarta-cactus/documentation/docs/xdocs/integration/eclipse eclipse.xml runner_plugin.xml

jruaux      2003/03/27 09:53:45

  Added:       documentation/docs/xdocs/integration/eclipse eclipse.xml
                        runner_plugin.xml
  Log:
  Added a page for both plug-ins
  
  Revision  Changes    Path
  1.1                  jakarta-cactus/documentation/docs/xdocs/integration/eclipse/eclipse.xml
  
  Index: eclipse.xml
  ===================================================================
  <?xml version="1.0"?>
  
  <document id="eclipse">
  
    <properties>
      <title>Cactus integration in Eclipse</title>
      <authors>
        <author name="Julien Ruaux" email="jruaux@octo.com" />
      </authors>
    </properties>
  
    <body>
      <section title="Overview">
        <p>
          The integration of Cactus in the 
          <link href="ext:eclipse">Eclipse</link> platform relies on 2 separate plug-ins :
        </p>
        <li>
          The <link href="site:runner_plugin">Cactus runner plug-in</link>
        </li>
        <li>
          The <link href="site:webapp_plugin">Webapp Eclipse plug-in</link>
        </li>
      </section>
  
      <anchor id="features" />
      <section title="Features at a glance">
        <ul>
          <li>
            Shortcut for launching Cactus tests
            <figure src="images/eclipse/runner/launchshortcut.png"
              alt="Cactus launch shortcut"/>
          </li>
        </ul>
        <ul>
          <li>
            Project property page for setting up the web application.
            <figure src="images/eclipse/webapp/propertypage.png"
              alt="Webapp property page"/>
          </li>
        </ul>    
      </section>
  
      <anchor id="installation"/>
      <section title="Installation">
        <section title="Requirements">
          <p>
            A version of the Eclipse platform later than 2.1 RC2 is needed.
          </p>
        </section>
        <section title="Installation">
          <p>
            Connect to the Cactus update site (available soon) from Eclipse
            to install both plug-ins at once as an <code>Eclipse feature</code>.
          </p>
        </section>
        <section title="Configuration">
          <p>
            The plug-ins are functional 'off the shelf'.
            Refer to the corresponding plug-in section for specific configuration.
          </p>
        </section>
      </section>
  
    </body>
  </document>
  
  
  1.1                  jakarta-cactus/documentation/docs/xdocs/integration/eclipse/runner_plugin.xml
  
  Index: runner_plugin.xml
  ===================================================================
  <?xml version="1.0"?>
  
  <document id="runner_plugin">
  
    <properties>
      <title>Eclipse plug-in for Cactus</title>
      <authors>
        <author name="Julien Ruaux" email="jruaux@octo.com" />
      </authors>
    </properties>
  
    <body>
      <section title="Overview">
        <p>
          The
          <link href="ext:eclipse">Eclipse</link>
          plug-in for Cactus is a runner for server-side unit tests. It is
          intended to hide the complexity of setting up an environment for
          running Cactus tests. It supports a variety of commercial and
          open-source application servers (better called containers).
        </p>
        <li>
          <jump anchor="features">Features</jump>
        </li>
        <li>
          <jump anchor="installation">Installation</jump>
        </li>
        <li>
          <jump anchor="using">Using</jump>
        </li>
        <li>
          <jump anchor="next">What's next</jump>
        </li>
        <li>
          <jump anchor="developer">Developer's corner</jump>
        </li>
      </section>
  
      <anchor id="features" />
      <section title="Features">
        <ul>
          <li>
            Adds a shortcut for Cactus tests launching.
            <figure src="images/eclipse/runner/launchshortcut.png"
              alt="Cactus launch shortcut"/>
          </li>
        </ul>
        <ul>
          <li>
            Uses the 
            <link href="site:webapp_plugin">Webapp Eclipse plug-in</link> to
            package a WAR file containing the web application.
          </li>
        </ul>
        <ul>
          <li>
            Relies on the Eclipse Ant integration to :
            <ul>
              <li>
                deploy the application
              </li>
              <li>
                start the container before running the tests
              </li>
              <li>
                stop the container when tests have ended
              </li>
            </ul>
          </li>
        </ul>
        <ul>
          <li>
            Integrated Jetty container support
          </li>
        </ul>      
        <ul>
          <li>
            Cactus preference page
            <figure src="images/eclipse/runner/preferences.png"
              alt="Cactus preference page" />
  	        <ul>
  		        <li>
  		          Port on which the container is started.
  		        </li>
  		        <li>
  		          Working directory where the Cactus plugin will create temporary
  		          files (packaged war, container configuration files, etc).
  		        </li>
  		        <li>
  		          Support for several containers
  			        <figure src="images/eclipse/runner/preferences_containers.png"
  			          alt="Preferences for containers" />
  		        </li>
  	        </ul>
          </li>
        </ul>
        <ul>
          <li>
            The user can provide its own web.xml file. If this is not the case
            the plug-in will use the one by default.
          </li>
        </ul>
        <ul>
          <li>
            Relies on the JUnit plug-in for test runs and result reports.
            <figure src="images/eclipse/runner/junit.png"
              alt="JUnit plug-in" />
          </li>
        </ul>
        <ul>
          <li>
            Cactify a Java project : adds client-side jars to a project's
            build path.
            <figure src="images/eclipse/runner/cactify.png"
              alt="Cactify popup menu" />
          </li>
        </ul>
      </section>
  
      <anchor id="installation"/>
      <section title="Installation">
        <section title="Requirements">
          <p>
            The Cactus plugin requires a version of the Eclipse platform later
            than 2.1 RC2.
          </p>
        </section>
        <section title="Installation">
          <p>
            Uncompress the zip file and copy the
            'org.apache.cactus.integration.eclipse_[version]' folder to your
            Eclipse 'plugins' folder and restart Eclipse.
          </p>
        </section>
        <section title="Configuration">
          <p>
            Go to Window -> Preferences -> Cactus and set your preferences.
          </p>
        </section>
  
      </section>
      
      <anchor id="using" />
      <section title="Using">
        <p>
          While the Cactify action is not implemented you have to do the
          following :
          <ul>
            <li>
              add Cactus client and common libraries to your Java project
            </li>
            <li>
              your Java project must have the following directory structure :
              [project's root]/web/WEB-INF/lib (create these as 'folders')
            </li>
          </ul>
          Select any Cactus test class file and select from the toolbar :
          Run As -> Cactus Test
          <figure src="images/eclipse/runner/launchshortcut.png"
            alt="Cactus launch shortcut" />
        </p>
      </section>
  
      <anchor id="next" />
      <section title="What's next">
        <p>
          In order to release a production-quality tool some features remain to
          be done.
        </p>
        <p>
          See the todo section on the Cactus framework page for a list of
          remaining features
        </p>
      </section>
  
      <anchor id="developer" />
      <section title="Developer's corner">
        <section title="Overview of the plug-in">
          <p>
            The Cactus framework extends JUnit. In the same way the Cactus
            plugin for Eclipse extends in a certain manner the existing JUnit
            plugin. For example
            <code>JUnitLaunchShortcut</code>
            is overloaded to be able to:
          </p>
          <ul>
            <li>
              prepare tests: set up the container (deployment) and start it
              up
            </li>
            <li>execute tests using the JUnit plugin</li>
            <li>
              tear down tests: stop the container and clean the deployment.
            </li>
          </ul>
          <p>
            The plugin uses Ant scripts from the Ant integration subproject for
            container management.
          </p>
  
        </section>
        <section title="How it works">
  
          <section title="Extension points">
            <ul>
              <li>
                <em>
                  org.eclipse.debug.core.launchConfigurationTypes
                </em>
                registers cactusLaunchConfiguration
              </li>
              <li>
                <em>
                  org.eclipse.debug.ui.launchShortcuts
                </em>
                registers a shortcut which appears in the run and debug
                cascade menus to launch the current workbench selection in the
                Java perspective
              </li>
              <li>
                <em>
                  org.eclipse.ui.preferencePages
                </em>
                adds the Cactus preference page to the preferences.
              </li>
            </ul>
          </section>
          <section title="GUI: preference page">
            <p>
              A preference page is contributed to the Eclipse preferences. It
              shows the following entries:
            </p>
            <ul>
              <li>Cactus properties (contextURL)</li>
              <li>
                directory of all the jars needed for Cactus tests (client
                side and server side)
              </li>
              <li>setting of the container homes</li>
            </ul>
          </section>
  
          <section title="IContainerProvider">
            <p>
              To enable different ways to setup, start, and stop containers the
              idea of container providers has been introduced in the plugin.
            </p>
            <p>
              A container provider is responsible for deploying a web application
              to the container, starting and stopping it, and undeploying the web
              app. This concept is concretized in the interface
              <code>IContainerProvider</code>
              . See its javadoc for more information.
            </p>
            <p>
              A container provider is implemented in the current version of the
              plugin, which uses Ant scripts to carry out these actions. It is
              called
              <code>GenericAntProvider</code>
              and may be used to execute tests on all the containers supported
              by the Ant integration subproject.
            </p>
          </section>
          <section title="What happens when a test is launched">
            <p>
              The
              <code>launch(IType theType, String theMode)</code>
              method of the
              <code>CactusLaunchShortcut</code>
              class is called, which sets up the container, launches the
              tests by delegating these to the JUnit plugin, and then tears down
              the container setup.
            </p>
            <ul>
              <li>
                Tests preparation
                <p>This includes:</p>
                <ul>
                  <li>
                    creating the war file for the cactus tests: this is
                    done in a call to the 
                    <link href="site:webapp_plugin">Webapp plug-in</link>
                    <code>WarBuilder</code> class.
                  </li>
                  <li>
                    setting up the container: prepares the configuration
                    for the selected container
                  </li>
                  <li>
                    starting the container.
                  </li>
                </ul>
                <p>
                  In the case of
                  <code>
                    GenericAntProvider
                  </code>
                  :
                </p>
                <ul>
                  <li>
                    setting up is done by an Ant script
                  </li>
                  <li>
                    starting the container is delegated to the
                    <code>
                      StartServerHelper
                    </code>
                    class, which initiates a thread starting the container
                    and then pings it constantly to see if it has effectively
                    been launched.
                  </li>
                </ul>
              </li>
              <li>
                Tests launch
                <p>
                  This behaviour is inherited from the JUnit plugin since
                  <code>
                    CactusLaunchShortcut
                  </code>
                  extends
                  <code>
                    JUnitLaunchShortcut
                  </code>
                  .
                </p>
              </li>
              <li>
                Tests end
                <p>
                  To know when tests have ended we register our TestListener to
                  the JUnit plugin. To this end the JUnit plugin needed a
                  modification which has been integrated in the 2.1 release of
                  the Eclipse platform.
                </p>
              </li>
  
              <li>
                Test environment cleaning
                <p>
                  After the tests have completed we stop the container, and
                  delete the configuration and war files created beforehand.
                </p>
              </li>
            </ul>
          </section>
        </section>
        <section title="Contributing">
          <p>
            Read the DEV-README.txt file for indications on how to set up your
            Eclipse environment.
          </p>
        </section>
      </section>
  
    </body>
  </document>
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: cactus-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: cactus-dev-help@jakarta.apache.org