vmassol     2002/12/15 03:53:36

  Modified:    documentation/docs/xdocs book.xml
  Added:       documentation/docs/xdocs eclipse_plugin.xml
  Removed:     documentation/docs/xdocs eclipse-plugin.xml
  Log:
  renamed eclise plugin xml doc from eclipse-plugin.xml to eclipse_plugin.xml to 
follow existing convention
  
  Revision  Changes    Path
  1.20      +1 -1      jakarta-cactus/documentation/docs/xdocs/book.xml
  
  Index: book.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-cactus/documentation/docs/xdocs/book.xml,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- book.xml  14 Nov 2002 11:17:04 -0000      1.19
  +++ book.xml  15 Dec 2002 11:53:36 -0000      1.20
  @@ -33,7 +33,7 @@
       <menu-item type="hidden" source="javadoc_12.xml"/>
       <menu-item type="hidden" source="javadoc_13.xml"/>
       <menu-item label="FAQ" source="faq.xml"/>
  -    <menu-item label="Eclipse plugin" source="eclipse-plugin.xml"/>
  +    <menu-item label="Eclipse plugin" source="eclipse_plugin.xml"/>
     </menu>
   
     <menu label="Howto Guides">
  
  
  
  1.1                  jakarta-cactus/documentation/docs/xdocs/eclipse_plugin.xml
  
  Index: eclipse_plugin.xml
  ===================================================================
  <?xml version="1.0"?>
  <?xml-stylesheet type="text/xsl" 
href="./skins/jakarta.apache.org/stylesheets/document2html.xsl"?>
  
  <document>
      <header>
          <title>Architecture of the Eclipse Plugin for Cactus</title>
          <authors>
              <person name="Julien Ruaux" email="[EMAIL PROTECTED]" />
          </authors>
      </header>
  
      <body>
  
          <s1 title="Overview">
              <p>
                  Cactus uses and extends JUnit. It might then seem natural
                  that 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 : setup of the container (deployment)
                      and startup
                  </li>
                  <li>
                      execute tests using the JUnit plugin methods
                  </li>
                  <li>
                      tear down tests : stop the container and clean the
                      deployment.
                  </li>
              </ul>
              <p>
                  In its actual state the plugin uses Ant scripts for these
                  container setup and teardown.
              </p>
  
          </s1>
          <s1 title="How it works">
  
              <s2 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>
              </s2>
              <s2 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>
              </s2>
  
              <s2 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 Tomcat 4.0 and
                      Weblogic 7.0.
                  </p>
              </s2>
              <s2 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 by the
                                  <code>
                                      WarBuilder
                                  </code>
                                  class, and relies on an Ant script for
                                  that.
                              </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 been effectively 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.
                          </p>
  
                          <p>
                              For that the JUnit plugin had to be modified, a
                              patch is avaible at the root of the Cactus CVS.
                          </p>
  
                          <p>
                              The
                              <code>
                                  JUnitViewFinder
                              </code>
                              class is launched which looks for the
                              JUnitView, so that we can eventually register our
                              listener.
                          </p>
                      </li>
  
                      <li>
                          Tests environment cleaning
  
                          <p>
                              After the tests have completed, work has to be
                              done to stop the container and delete all
                              configuration files and the war file we created
                              before.
                          </p>
                      </li>
                  </ul>
              </s2>
          </s1>
          <s1 title="What has been done so far">
              <p>
                  In its actual state the plugin is a proof of concept. It is
                  able to run the distribution sample tests.
              </p>
          </s1>
          <s1 title="What is next">
              <p>
                  In order to have a production-quality tool the following
                  points must be done :
              </p>
              <ul>
                  <li>
                      integrate the plugin to the Cactus build process
                  </li>
                  <li>automate tests on the plugin</li>
                  <li>
                      ability to leave the container running between
                      redeployments
                  </li>
                  <li>
                      the user must be able to provide its own web.xml file.
                      Otherwise the plugin will use the one provided by default.
                  </li>
              </ul>
  
          </s1>
      </body>
  </document>
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to