<?xml version="1.0" encoding="Shift_JIS"?>

<roadmap title="Roadmap/Todo for Cactus" translator="漆島 賢二">

  <s1 title="序文/Forewords">
    <p>
      As is stated on the Cactus <link href="goals.html">goals</link> page, the
      intention is to explore as much as possible in the realm of unit testing
      of server side java code ...
    </p>
    <p>
      Cactus の<link href="goals.html">目標</link>のページで位置付けたように、
      目的はサーバー側 java コードの単体テストの領域をできる限り広げることです。
    </p>
    <p>
      This brings a bad news and a good one ... The
      bad one is that the TODO list is likely to keep growing or at least
      have a respectable size ... The good one
      is that there will be work for everyone ... :-)
    </p>
    <p>
      これには、良いことも悪いこともあります。
      悪いことは、ToDoリストが大きくなりつづけようとしたり、
      少なくともかなりのサイズになることです。
      良いことは、皆さんのために仕事があることです。
    </p>
    <p>
      If you are interested in participating, send an email on the Cactus mailing
      list stating your interest and you'll be enrolled right away ... We're
      always looking for help ! Don't be put off if in the "Volunteer" column
      there is already a person listed. On the contrary, the more person that
      participate in a given task, the better (like in pair programming, several
      sets of eyes are always better than one!). However you'll need to sync.
      with these others persons but this is easily done by posting to the
      mailing-list.
    </p>
    <p>
      参加に興味がある方は、
      Cactus メーリングリストにメールください。
      興味のある分野を判断し、すぐに役割を与えられるでしょう。
      何時でも、私達は協力を必要としています。
      もし、表の"ボランティア" の列に既に名前があったとしても、
      思いとどまらないでください。
      それどころか、一つの与えられた作業に多くの人が参加するほど、
      ((XPの)ペアプログラミングにおいて、
      一人よりも二人の目の方が必ず良いように)
      良くなるのです。
      これら他の人たちと作業の同期を取る必要がありますが、
      メーリングリストに投稿することにより、これは簡単にできます。
    </p>
    <p>
      The game has just begun ... !
    </p>
    <p>
      ゲームは始ったばかりです。
    </p>
  </s1>

  <version title="バージョン 1.4/Version 1.4">

    <category title="ドキュメント/Documentation">
      <action assigned-to="Vincent Massol">
        Move all documentation to docbook and cocoon2 and generate PDF
        containing full Cactus documentation. Note: I still need to find out
        how to make Cocoon2 generate errors during generation of doc. so that
        the Ant build reports an error and stops upon finding one.
	/
	全てのドキュメントを docbook および cocoon2 に移行し、
	Cactus ドキュメント全体が含まれるような PDF を生成します。
	メモ : Cocoon2 がドキュメント生成時にエラーを発生させる方法を調べる必要があります。Ant のビルドがエラーを報告し、発見した場所で停止させるためです。
      </action>
      <action>
        Add a tutorial for building Cactus from the source distribution. 
        /
        ソースディストリビューションから Cactus をビルドするチュートリアルの追加
      </action>
      <action assigned-to="Jari Worsley">
        Write a tutorial that explains how to use Cactus to do unit testing of
        JSP, i.e. only test
        the JSP itself and not the controller part and the model (only test the
        View in an MVC model). This is done by using mock implementations of
        java beans used in the JSP to unit test, set these java beans in the
        testXXX() method of a cactus test and then assert the result of the
        JSP executing in the endXXX() method.
	/
        Cactus で JSP の単体テストを行う方法を説明するチュートリアルの記述。
        即ち、コントローラー部やモデルではなく、
	JSP 自身のみをテストするもの(MVCモデルのビューのみのテスト)。
        これらの java beans を Cactus テストの testXXX() メソッドの中に置き、
	endXXX() メソッドの中で JSP を実行した結果のアサーションを行うような
        JSP の単体テストで使われる java beans の
        mock 実装を用いて実現されます。
      </action>
      <action>
	(できれば FAQ に) Struts クラスの単体テスト法を解説したドキュメントの追加
        <link href="http://strutstestcase.sourceforge.net/">StrutsTestCase</link>
        プロジェクト参照)
      </action>
    </category>

    <category title="ビルド手続き/Build Process">
      <p>
        All tasks that are related to building Cactus in general.
      </p>
      <p>
        一般的に Cactus のビルドに関する全ての作業
      </p>
      <action assigned-to="Peter Wong, Jason Robertson, Vincent Massol">
        Configure all supported containers with authentication so that they
        pass the Cactus unit tests (done for Tomcat 3.x + Tomcat 4.x).
	/
	(Tomcat 3.x + Tomcat 4.x では終っているが)
	Cactus 単体テストに成功するように、
	サポートしている全てのコンテナが	
	認証を行えるような設定
      </action>
      <action assigned-to="Bob Tanner">
        Finalize support for Enhydra 3.1.1. There are some errors upon
        starting the enhydra server and the <code>testOut()</code> method
        is failing. Need help from Enhydra experts to go forward.
	/
	Enhydra 3.1.1 のサポートの終了。
	Enhydra サーバーの起動時に幾つかエラーがあり、
	<code>testOut()</code>メソッドが失敗します。
	進めるには Enhydra のエキスパートの助けが必要です。
      </action>
      <action>
        Add the Ant scripts for JBoss 2.x w/Tomcat provided by Jeffrey Madynski
        (jmadynski@food.com) on the jakarta-commons mailing list (Subject
        "[cactus] Using Cactus with JBoss-2.2.1 with Embedded Tomcat"). The
        scripts need to be reworked so that the deployed test war is deployed
        within the <code>target</code> output directory and not to where
        JBoss/Tomcat is installed.
	/
	jakarta-commons メーリングリストで
	Jeffrey Madynski(jmadynski@food.com)により提供された
	(件名 "[cactus] Using Cactus with JBoss-2.2.1 with Embedded Tomcat")、
	JBoss 2.x + Tomcat 用Ant ビルドファイルの追加。
	そのビルドファイルは、
	JBoss/Tomcat がインストールされた場所ではなく、
	配備されるテストの war ファイルが、
	<code>target</code> 出力ディレクトリに配備されるように、
	修正作業が必要です。
      </action>
    </category>

    <category title="設計/実装 / Design/Code">
      <action assigned-to="Peter Wong, Jason Robertson, Vincent Massol">
        Add support for Form-based authentication.
	/
	Form ベースの認証のサポート
      </action>
      <action>
        Refactor/redesign the Cactus client side so that it can accept several
        kinds of protocol injectors (it now only supports HTTP). The idea is to
        be able to add first JMS so that Message-Driven Beans or simply JMS
        listeners can be unit tested.
	/
	幾つかの種類のプロトコル生成器を扱えるように、
	Cactus クライアント側のリファクタリング/再設計。
	(現在では、HTTP のみをサポート)
	メッセージ起動の Bean や簡単な JMS リスナーが単体できとできるように、
	そのアイディアは、<suspect>最初に JMS に加えることが出来ることです。</suspect>
      </action>
      <action>
        Add methods that are called before and after each test, but on the
        client side (i.e. before the <code>beginXXX()</code> and
        <code>endXXX()</code> methods). They
        would act the same way as <code>setUp()</code> and
        <code>tearDown()</code> but on the client side. 
They could be
        named <code>init()</code> and <code>destroy()</code>, or maybe we
        should rather rename the existing <code>setUp()</code> and
        <code>tearDown()</code> and have something consistent like :
        <code>setUpClient()</code>, <code>setUpServer()</code>,
        <code>tearDownClient()</code> and <code>tearDownServer()</code> ?
	/
	クライアント側ではなく、
	テスト実行の前後に呼ばれるメソッドの追加
	(即ち、<code>beginXXX()</code>の前、および
        <code>endXXX()</code> メソッドの後)
	それらは、
	クライアント側ではなく、
	<code>setUp()</code> や <code>tearDown()</code>	と同じ方法で振舞います。
	それらの名前は、
	<code>init()</code> および <code>destroy()</code>にするか、あるいは、
	既存の <code>setUp()</code> と <code>tearDown()</code> の
	名前を変更して、
        <code>setUpClient()</code>、<code>setUpServer()</code>、
        <code>tearDownClient()</code> 、<code>tearDownServer()</code>、
	と一貫性を持たせた方がいいかもしれません。
      </action>
      <action>
        Provide support for generating Session cookies and URL Sessions
        (URL rewriting). A description of the mechanism has been
        posted in thread "How does cactus simulate a session" on the
        Cactus user mailing list. Thanks to
        <link href="mailto:kyle.w.willkomm@accenture.com">Kyle W.
        Willkomm</link>.
	/
	セッションクッキー生成、および、
	URL セッション(URL 書き換え)生成のサポート。
	このメカニズムの解説は
	Cactus メーリングリストの
	"How does cactus simulate a session" のスレッドに投稿されました。
	<link href="mailto:kyle.w.willkomm@accenture.com">Kyle W.
	Willkomm</link>	に感謝します。
      </action>
      <action>
        Add EJB Redirectors so that unit testing of code that require an EJB
        is facilitated. For example, let's imagine you need to test that an
        object that has been put in the JNDI tree by a servlet can be retrieved
        by an EJB. These are not unit tests per see but rather integration
        tests, which is Cactus favorite domain. 
Also these redirectors could be
        used to directly unit tests EJB whithout requiring a servlet
        environment (at the current time, you need to call your EJB from a
        Servlet/JSP/Filter Redirector, which is fine for certain tests but not
        needed for others.
	/
	EJB を必要とするコードの単体テストが容易になるよう、
	EJB リダイレクタの追加。
	例えば、
	サーブレットにより JNDI ツリーに置かれたオブジェクトが、
	EJB によって取り出せるか、
	テストをしなければならないとしましょう。
	これらは一見、単体テストではなく、むしろ、
	Cactus の得意分野である結合テストです。
	また、これらのリダイレクタは、
	サーブレットを必要とせずに、
	直接 EJB を単体テストするのにも使われます。
	(現状では、自分の EJB を Servlet/JSP/Filter リダイレクタから呼び出す必要があります。これは、あるテストでは良いのですが、他では必要ないものです)
      </action>
      <action>
        Consider using Commons Logging Wrapper as it provides seamless support
        for No Log, Log4J, LogKit and JDK 1.4 logging.
	/
	ログが無い場合、Log4J、LogKit、および JDK 1.4 のログを
	区別無くサポートするために、Commons Logging Wrapper の利用を考慮します
      </action>
      <action assigned-to="Hudson Wong, Vincent Massol">
        Add an EJB sample application to demonstrate how to perform EJB
        unit testing (the tutorial that explains the process will be part
        of Cactus 1.2 but the inclusion of the sample will be delivered
        in a subsequent release as it involves some changes in the build
        process).
	/
	EJB 単体テストを行う方法をデモする
	EJB サンプルアプリケーションの追加.
	(この手順を説明したチュートリアルは Cactus 1.2 の一部ですが、
	<suspect>
	ビルド手順に変更があったので、
	サンプルに入っているものは後のリリースで配布されました。</suspect>)
      </action>
      <action>
        Consider moving from HttpURLConnection to Commons HttpClient. This
        will solve the problem of asserting code that returns an error
        response code. 
Note: this has been fixed in JDK 1.3.1 I believe for
        HttpURLConnection but as we're already using HttpClient for handling
        cookies (because the JDK does not seem to provide any API for that).

        Review JDK 1.4's HttpURLConnection to check if the JDK is making any
        progress in this area. In term of design, isolate the implementation
        with an interface so that different implementation can be plugged in
        without affecting any other business classes.
	/
	HttpURLConnection から Commons HttpClient への移行の検討。
	エラーコードを返すようなコードのアサーションで起きる問題を解決します。
	メモ: 恐らく、これは JDK 1.3.1 において、HttpURLConnection に関して修正されました。
	しかし、既に、クッキーを扱うために HttpClient を使っていたのです。
	(何故なら JDK は、それに関する API を何も提供していない様子だからです。)
	この分野において JDK に進捗があったか、
	JDK 1.4 の HttpURLConnection をレビューします。
	設計の観点から、
	他のどんなビジネスクラスにも影響が無いように、
	異なる実装がプラグインできるように、
	実装とインタフェースを独立させます。
      </action>
    </category>

  </version>

  <version title="バージョン未定/Undefined">

    <category title="アイディア/Ideas">
      <p>
        探求のアイディア/Ideas to explore ...
      </p>
      <action>
        Create a new package <code>org.apache.cactus.extensions</code> for
        putting extensions to Cactus Test Cases. The first extension
        would be an extension that runs a bunch of test at the same time,
        thus spawing several threads in the container in order to discover
        bugs [Note: We would have to correct the name under which Cactus test
        results are stored in the application context so that it is unique
        per test case]. We would need to create a
        <code>org.apache.cactus.extensions.ParallelServletTestCase</code>.
        The constructor would take some parameters, such as the number of
        parallel threads to spawn, ... Idea suggested by
        <link href="mailto:rimovm@centercomp.com">Michael Rimov</link>.
	/
	Cactus テストケースの拡張を置くための、
	新しいパッケージ <code>org.apache.cactus.extensions</code> の作成。
	最初の拡張は、同時に複数のテストを実行する拡張でしょう。
	それにより、バグを見つけるために、
	コンテナ上で幾つかのスレッドが生成されます。
	[メモ: 
	テストケース毎にそれらが重ならないように、
	Cactus のテスト結果がアプリケーションコンテキストに保存される正しい名前を付けなければなりません。
	]
	<code>org.apache.cactus.extensions.ParallelServletTestCase</code>
	を作成する必要があるでしょう。
	コンストラクタは、
	生成する並行スレッドの数といった引数を取るでしょう。
	アイディアは
	<link href="mailto:rimovm@centercomp.com">Michael Rimov</link>
	により提案されました。
      </action>
      <action>
        Use <link href="http://xdoclet.sourceforge.net/docs/">XDoclet</link>
        with Cactus to better provide continuous integration. It could be
        used to automatically generate <code>web.xml</code> files,
        automatically generating test cases from methods to test, ...
	/
	より良い継続的な統合を提供するための、
	Cactus での
	<link href="http://xdoclet.sourceforge.net/docs/">XDoclet</link> の利用。
	これは、
	<code>web.xml</code>ファイルの自動生成や、
	テストすべきメソッドよりテストケースの自動生成を行うために用いられます。
      </action>
      <action>
        Integration to Netbeans<code>org.apache.cactus.extensions</code> in general and especially integration with the
        Netbeans XTest module.
	/
	一般的な Netbeans<code>org.apache.cactus.extensions</code> との統合、
	および、特に Netbeans XTest モジュールとの統合
      </action>
      <action assigned-to="Vincent Massol">
        Evaluate the use of AspectJ for writing Cactus test cases.
	/
	Cactus テストケースの記述に
	AspectJ の利用を検討
      </action>
      <action>
        Help Cactus users test multipart/form-data. At least explain how to do
        it. Some idea: use cos.jar (from
        <link href="http://www.servlets.com/cos/index.html">http://www.servlets.com/cos/index.html</link>)
        to read multipart/form-data on the server side. Now we still need to
        provide a mechanism to easily send multipart/form-data on the Cactus
        client side. The best solution would be to use HttpClient but we need
        to check if it has this feature or if it can be added. Submitted by
        <link href="mailto:Gunnar.Skogen@ergo.no">Gunnar Ole Skogen</link>.
	/
	ユーザーの<suspect>複数部分からなるフォームデータ</suspect>
	のテストのサポート。
	少なくとも、やり方について説明します。
	幾つかのアイディア: 
	サーバ側で複数部分からなるフォームデータを読み込みために、
	cos.jar 
	(<link href="http://www.servlets.com/cos/index.html">http://www.servlets.com/cos/index.html</link>より)を使用。
	今でも、Cactus クライアント側で複数部分からなるフォームデータを簡単に送るメカニズムの提供を必要としています。
	最適解は、HttpClient を使うことですが、
	この機能を持っているか、追加可能かなど検証しなければなりません。
	これは、
	<link href="mailto:Gunnar.Skogen@ergo.no">Gunnar Ole Skogen</link>
	により提案されました。
      </action>
    </category>

  </version>

</roadmap>
