諸君、XDocletを知ろうじゃないか
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNGXDocletはソースのコメントにこちゃこちゃ書いてあんなものやこんなものを生成するツールだ。
Docletちゅうたら、JavaDocを想像するやつぁー、ちょっといい感じだ。
XDocletはJavaDocじゃなくて、ejb用のxmlとかweb用のxmlとかを自動生成してくれる。優れものじゃ。
恐らく、このスレは諸君の理解が行き届くまですぐには立ち上がらぬだろうが、、、わしは辛抱強く待つぞ。
http://xdoclet.sourceforge.net/
0084デフォルトの名無しさん
NGNG0085デフォルトの名無しさん
NGNG0086デフォルトの名無しさん
NGNGEclipse + JBoss + JBoss IDE or Lomboz
のおかげで以外と楽になったかも。
0087デフォルトの名無しさん
NGNG日付みて思った。
0088デフォルトの名無しさん
NGNGXDocletで、Servlet2.4のweb.xmlを生成するには、どうしたらいいですか?
0089デフォルトの名無しさん
NGNG0090デフォルトの名無しさん
NGNG0091デフォルトの名無しさん
NGNGttp://xdoclet.codehaus.org/に何もないし。
1.2系も4月以降リリースないし、不安だ・・・。
0092デフォルトの名無しさん
NGNG0093デフォルトの名無しさん
NGNGCVSからゲット。
:pserver:[email protected]:/scm/generama
:pserver:[email protected]:/scm/xdoclet
あと1.2系は最近1.2.2RC1でたよ。
>>92
SGenってライセンスなに?
SGenだけじゃなく、あの人の公開してるプロダクトって
全部ライセンスがわからないんだけど・・・
0094デフォルトの名無しさん
NGNGライセンスどころか、あの人自体がわからないね。
「おたく」って・・・
実際にはXDoclet2がちゃんと表に出てきたら話に登らなくなるでしょ。
0095デフォルトの名無しさん
NGNGXDoclet2が使えるレベルになるまでは相当かかるんじゃない?
1.2系のXJavadoc/XDTベースのモジュールが全く使えなくなるわけだし。
今あるモジュール全てをVelociry/Jellyベースのモジュールとして作成しなおすのは結構時間かかるかと。
0096デフォルトの名無しさん
NGNGWeb/Struts/Hibernate/EJBくらいが使えれば、とりあえず文句はない。
0097デフォルトの名無しさん
NGNGエラーが出ちゃってxdocletが使い物にならん・・・・
こまったにゃぁ〜
0098デフォルトの名無しさん
NGNGエラーが出る部分はXDocletの対象からはずす。
サーブレットやらStrutsのActionやらに、新文法が便利だと思えるような処理を書くなという親心だ。
009997
NGNGActionには書かなくても済みそうだけど
Hibernate使ってるんでそっちが大変そう
新文法楽チンで良いのになぁ今回はあきらめて1.4でやるか・・・
0100デフォルトの名無しさん
NGNGHibernateのマッピングコードにも処理書かなくていいでしょ。
0101デフォルトの名無しさん
NGNGこれでservlet2.4やらstruts1.2のdtd定義が使える
0102デフォルトの名無しさん
NGNGsourceforge、ミラーの順番が表示のたびにかわるから、どこまで試したかわからんし
0103デフォルトの名無しさん
NGNGなんで一週間近くも他はミラーされてないんだ?
0104デフォルトの名無しさん
NGNG既存のモジュールをいじったり、
カスタムテンプレートやモジュール作るときにもうXDTをいじりたくない・・・
0105デフォルトの名無しさん
NGNGftp://ftp.sourceforge.net/pub/sourceforge/x/xd/xdoclet-plugins/xdoclet-plugins-1.0-alpha-1-bin.zip
0106104
NGNGサンクス
本体の方はしってたけど、プラグインも開発すすんでいたのね。
CVSのソースとか覗いて勉強してみるよ。
一応CVSリポジトリも貼っとくね。
:pserver:[email protected]:/cvsroot/xdoclet-plugins
(ViewCVS) : ttp://cvs.sourceforge.net/viewcvs.py/xdoclet-plugins/
>>93で貼られているgenerama、xdoclet2のCVSとあわせれば
2.0系のソース&その他リソース類が一式手に入る。
pluginも含めて配布されているファイルに上記のものが全く入っていないため、
サンプルコードやJavadocを入手するにはCVSから入手するしかない。
あと、xdoclet2のベースフレームワークのgeneramaのjarファイルはこれ。
ttp://dist.codehaus.org/generama/jars/generama-1.0.jar
ttp://dist.codehaus.org/generama/jars/generama-1.1-SNAPSHOT.jar
トップからリンクをたどるとパーミッション設定がいかれてるのか
jarファイルまでたどり着けないので上記URLから直接jarファイルを入手。
一応、xdocletのproject.xmlみると1.0がベースみたいだけど、1.1の方でも動くみたい。
というかCVSみてもにタグがうってないので、何が違うのかわからない・・・・
0108デフォルトの名無しさん
NGNGあるサーブレットAから拡張したサーブレットBがあるとします。
A、B両サーブレットそれぞれ以下のように xdoclet タグを記述しています。
◆ サーブレットA ◆
@web.servlet name="ServletA"
@web.servlet-mapping url-pattern="/servletA"
◆サーブレットB ◆
@web.servlet name="ServletB"
@web.servlet-mapping url-pattern="/servletB"
このような状況で webdoclet を走らせると以下のような web.xml が生成されます。
◆ 生成された web.xml ('servlet-mapping'のみ抜粋) ◆
<servlet-mapping>
<servlet-name>ServletB</servlet-name>
<url-pattern>/servletB</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ServletB</servlet-name>
<url-pattern>/servletA</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ServletA</servlet-name>
<url-pattern>/servletA</url-pattern>
</servlet-mapping>
次レスへ・・・
0109デフォルトの名無しさん
NGNG御覧のように、こちらが期待していない、
<servlet-mapping>
<servlet-name>ServletB</servlet-name>
<url-pattern>/servletA</url-pattern>
</servlet-mapping>
のような 'なんだこりゃ?' 的なマッピングが生成されてしまいます・・・。
思うに、サーブレットA、B間の継承関係を考慮して xdoclet がこのような妙な出力を行ったのではないかと。
質問なんですが、これってバグなんでしょうか?
それともこういう仕様なんでしょうか?
回避の方法ご存じないでしょうか?
以上です。よろしくお願いします。
0110デフォルトの名無しさん
NGNG0111デフォルトの名無しさん
NGNG継承が云々ではなく、単にXDTテンプレートの記述に問題があるだけみたい。
xdoclet-web-module-1.2.2.jarの中にあるXDTテンプレートweb_xml.xdtで
サーブレットマッピングを出力している箇所は以下のようになってる。
<XDtClass:forAllClasses>
<XDtClass:forAllClassTags tagName="web:servlet-mapping">
<servlet-mapping>
<servlet-name><XDtClass:classTagValue tagName="web:servlet" paramName="name"/></servlet-name>
<url-pattern><XDtClass:classTagValue tagName="web:servlet-mapping" paramName="url-pattern"/></url-pattern>
</servlet-mapping>
</XDtClass:forAllClassTags>
</XDtClass:forAllClasses>
外側のforAllClassesが余計なので、
自分でXDTテンプレート修正して差し替えたらOK。
もし、jarファイルの中身を差し替えるのがナニというなら、
とりあえず一回jarファイルからXDTテンプレートファイルをとりだして修正し、
そのあとbuild.xmlでdeploymentdescriptorサブタスクを定義するときに
<deploymentdescriptor templatefile="修正したXDTテンプレートファイル"/>
みたいに指定すれば、jarファイルの中に格納されているやつではなく
templatefile属性で指定したテンプレートファイルで処理が実行されるので
これでも上記の問題は解決できる。
あとの解決方法は、
動的にサーブレットマッピング部分生成するのをやめて
マージファイル(servlet-mappings.xml)を用意するくらいかな。
0112デフォルトの名無しさん
NGNGあがっているようなので、是非そっちにも報告してください。
0113デフォルトの名無しさん
NGNGEclipseではJBoss-IDEを使うとコードアシスト機能が使えて便利だ。
web.xmlやstrutsやHibernateやCMP Emtit Bean関係のクラス自動生成のほかに
UMLにも使えるだってね。
これは面白い。
build.xmlにtaskdefを使うのがどうも奇妙な気がするが。
あとはMavenをうまく使えばXDocletの利用ももっと簡単になるのかな?
0114デフォルトの名無しさん
NGNGtaskdef書くのは別に変じゃないよ。Antの標準タスクに含まれない以上、
それをクラスパスに入れて、taskdef書くのは必須な作業だし。
Mavenで使うにもtaskdefは必要になる。
<preGoal name="java:compile">
<attainGoal name="xdoclet:doclet"/>
</preGoal>
<goal name="xdoclet:doclet">
<attainGoal name="xdoclet:ejbdoclet"/>
</goal>
<goal name="xdoclet:ejbdoclet">
<mkdir dir="${maven.xdoclet.ejbdoclet.destDir}"/>
<taskdef name="ejbdoclet"
classname="xdoclet.modules.ejb.EjbDocletTask"
classpathref="maven.dependency.classpath"/>
<ejbdoclet destDir="${maven.xdoclet.ejbdoclet.destDir}"
ejbSpec="${maven.xdoclet.ejbdoclet.ejbspec}" ...>
...
</ejbdoclet>
<path id="ejbdoclet.java.compile.src.set" location="${maven.xdoclet.ejbdoclet.destDir}"/>
<m:addPath id="maven.compile.src.set" refid="ejbdoclet.java.compile.src.set"/>
</goal>
こんな感じ。
0115デフォルトの名無しさん
NGNGgoalを自作しているのか
0116デフォルトの名無しさん
05/01/29 17:58:15@struts.action を記述しても struts-config.xml に
反映されないのは仕様でしようか?
0117デフォルトの名無しさん
05/01/29 18:00:290118デフォルトの名無しさん
05/01/29 20:02:50他のActionは吐かれてくるの?
ありがちな間違いだとタスクのfilesetに入れ忘れとか。
XDocletでstruts-config.xml作った事ないから知らんけど。
クラスの継承元でフィルタされるって事はなさそうかな。
0119デフォルトの名無しさん
05/01/29 21:36:41どうも♪
「org.apache.struts.action.Action」では正常に動作することを
確認しています。また、build.xmlの該当箇所を穴の開くほど何度
もにらみ続けたのでfilesetの入れ忘れはないです。
>>クラスの継承元で・・・
あぅ、勉強不足でわからないです、これ。
とりあえずは対応するマージファイル「struts-actions.xml」に
設定を直書きすることでことなきを得ております・・・が、これじゃ
せっかくXDocletを使ってても全然クールじゃないですねぇ。
仕様だったらしようがないですが。残念。
0120デフォルトの名無しさん
05/01/30 00:34:21ドキュメンテーションコメントになっていないとかがありがちなミスだな。
0121デフォルトの名無しさん
05/02/01 11:37:56DispatchAction, LookupDispatchAction, ...etc.
すばらしい!!
惚れ直したぜXDoclet!! ビバ!XDoclet!!
Soooo Coooooool!!
0122デフォルトの名無しさん
05/02/01 23:54:29アノテーションとか入ったら全然だめ。
0123デフォルトの名無しさん
05/02/02 00:49:31XDocletの機能もアノテーションで実装されるようになるだろ。
0124デフォルトの名無しさん
05/02/02 08:37:40バナーコンテストやってたくらいしか。
0125デフォルトの名無しさん
2005/04/18(月) 23:06:10「Latest bug fix release, plus enhancements to various modules.」
ってことだから、そろそろ2.x系が本格的になるのかな?
>>124
CVSは動いてるみたいなんだけどね。
0126デフォルトの名無しさん
2005/05/15(日) 01:29:460127デフォルトの名無しさん
2005/07/10(日) 09:26:20ant走らせるとエラー、そのままもう一度実行すると、
情報: Running <remoteinterface/>
とか出るのに生成はされず。もう一度実行するとコード生成される状況です。
0128127
2005/07/10(日) 17:29:400129デフォルトの名無しさん
2005/07/17(日) 01:46:400130デフォルトの名無しさん
2005/07/17(日) 02:33:29backport175・・・標準に近い。Genericsと組み合わせれない。引数アノテーションが使えない。コンパイル以外に処理が必要。J2SE1.4以前で使える。
XDoclet・・・非標準。実行時情報としては使えない。XDTは非常に書きづらい。時代遅れ。しかし先駆け。歴史的価値。J2SE1.4以前で使える。J2SE5の文法と同時に使えない。
0131デフォルトの名無しさん
2005/12/03(土) 17:56:37Eclipse3.1から追加された
antデバッグを使ってみるとええんじゃねえの?
0132デフォルトの名無しさん
2005/12/03(土) 17:57:25アノテーションに対応しているかどうかの
ほうが重要だと思うんだけど。
0133デフォルトの名無しさん
2006/02/11(土) 12:51:360134デフォルトの名無しさん
2006/08/01(火) 02:32:05とうわけで保守AGE
■ このスレッドは過去ログ倉庫に格納されています