Dolteng(どぅるてん) 0.0.3リリースです。

今回から、実質的に、Java5のみ対応するプラグインとなりました。(理由は後述)


eclipseを特定のVMで動かす際には、以下のリンクを参考にして下さい。


今回のリリースでは、Churaプロジェクトを新規作成する機能が追加されました。
パッケージエクスプローラコンテキストメニューから

New  > Project

と、選択すると「Chura」というグループが追加されています。
そのグループを開くと、「Chura Project」がありますので、
それを選択して「Next」ボタンを押下して下さい。
その後、プロジェクト名及び、当該プロジェクトのルートになるパッケージ名を入力して
「Finish」ボタンを押下すると、Chura対応プロジェクトが作成されます。


Chura対応プロジェクトとは……

  • Javaプロジェクトかつ、Tomcatプロジェクト、Doltengプロジェクト
  • 設定されたルートパッケージ配下に、規約に基づくパッケージを自動生成する。
    • CoolDeploy、HotDeploy時に、処理対象クラスを自動的に選択する為のパッケージが自動生成されます。
  • 以下のライブラリを含み、プロジェクトのビルドパスに設定済み
    • TeedaExtensionが動作する為に必要となるライブラリ全て
    • KuinaDaoが動作する為に必要となるライブラリ全て
      内部的にS2Tigerが含まれる為、
      Java5用アノテーションハンドラが動作します。
      結果的に、Chura対応プロジェクトは、Java5限定となります。
    • Hibernate3(JPA)が動作する為に必要となるライブラリ全て
  • TeedaExtensionが動作する為に必要となる設定ファイルを含む
    • 幾つかの.diconファイル及び、幾つかの.propertiesファイル、env.txtです。
  • サンプルのRDBとしてhsqldbを含む
    • 生成されるjdbc.diconには、hsqldbへの接続設定がなされています。
      将来のリリースにおいては、Churaプロジェクト新規作成時にサンプルDBを使うか、
      既に用意されているDBを使用するかを、選択可能になります。
  • KuinaDaoが動作する為に必要な設定ファイルは次回以降のリリースに含まれます。
    • Doltengによって生成されるEntity及びDaoは適切にコンパイルされますので、
      自動生成部分についてのみ、機能をお試し下さい。

以下のディレクトリをコンテキストルートとします。

src/main/webapp/

つまり、ユニットテスト用のリソース以外は、

src/main/webapp/WEB-INF/classes

に出力されます。尚、各種のjarファイルは、

src/main/webapp/WEB-INF/lib

に出力されています。

  • SysdeoTomcatPlugin用の設定ファイルを持つ
    • SysdeoTomcatPluginがインストールされ、Tomcatを起動出来る環境では、
      Churaプロジェクトをインストールした後、プロジェクトのコンテキストメニューから、
      Tomcat プロジェクト」 > 「Tomcat のコンテキストを更新」
      と、実行するだけで、TomcatPlugin用プロジェクトの設定が適切に行われている為、
      新規作成されたChura対応プロジェクトは、Tomcatにデプロイされます。
  • Maven2の規約に基づくディレクトリ構成を持つ
    • pom.xmlは、将来のリリースにおいて自動生成されます。

今回のリリースにも幾つかのバグフィックスが含まれています。

最大のfixは、JavaProjectClassLoaderがメモリリークしていたのを解消した事です。
こいつが、メモリリークしていて、実質的に問題なのは、
DoltengプロジェクトとなったJavaプロジェクトにビルドクラスパスとして設定されているJarファイルを、Doltengが全てロックしてしまう事です。
つまり、Doltengを起動した後は、それらのJarファイルの名前を変えたり、
削除したり、SVN Updateしたり出来なくなっていました。
考えたくは無いですが、長時間Doltengを使用しているとeclipseごと何やら挙動がおかしくなる可能性もありました。


もう一つは、Entityに追加出来るJPAアノテーションの出力結果がおかしな事になっていた事です。
OneToOne及びManyToOneのアノテーションは、fetch属性がデフォルトEAGERなのですが、LAZYとして動作していましたので、修正しました。