java

-Ikushipe 0.4.0リリース

Ikushipe 0.4.0をリリースしました。 http://ikushipe.ashikunep.org/downloads.html お楽しみください。申し訳ないですが、ドキュメントは不備。荒ばしりバージョンということで。

-JMX

かなり出来上がってきたIkushipeですが、いずれJMXに対応させようかと考え中です。MBeanで現在のサーバの状態、すなわちロードされているApplicationAdaptor / PageAdaptor / ModelAdaptorのそれぞれの状態表示、バッキングコンポーネントのアクセス状況表示…

-Aptで取れないソース位置

備忘録。 メソッドの返値の宣言位置 タイプ引数の宣言位置 これらは、TypeMirrorがSourcePositionを提供していないから。

-リリースマジカ

Ashikunep.orgもホストいただいている法政大学さんのネットワーク工事がおわったようで見れるようになっています。ここ2日ばかりローカルにリポジトリを作って開発していたものをメインのリポジトリにマージしました。いまあがってるリポジトリの内容でほぼ…

-JavaVM & javac のOSS化

http://japan.cnet.com/news/ent/story/0,2000056022,20201947,00.htm http://journal.mycom.co.jp/news/2006/08/16/345.html javacがOSS化されちゃいますか。。。いよいよコンパイル時ソリューションが潮流になる条件が整ってきたように思います。2006年中…

-動作開始

やっとこさ初期サンプル4本が新コンパイラを通して動くようになりました。あとは細かなデバッグ&エラーメッセージなどの調整をして、ベータリリース。たぶんそんなに時間がかからないと思います。

-package-info.java

この前のVisitorパターンもそうでしたが、あることは知ってるけど使いどころが見つからなかったり、何かきっかけがなくて使ってなかったりという機能は多くあります。特にJava1.4やJava5.0あたりで増えた機能は私のJava習得期がJava1.1〜Java1.2のあたりなの…

-PRADO

http://www.pradosoft.com/ via HLS氏のブログから。Tapestryにインスパイアされて作られてたPHP5のフレームワークだそうな。HLSが言ってたけど、サイトのつくりがまさにベンダーですね。あくまでサイトを見ての私の想像ですが、最近のコミュニティベースなO…

-Visitorパターン

今まで、Visitorを利用するパターンは、なかなか使うこと無いな〜と思ってましたが、AptはVisitorパターンでやるように作られてますので自然に誘導されていたところ、なかなか良いもんだなと思いました。型チェック・キャストに関するコードが無くなるので、…

-タイプ引数

タイプ引数宣言で、以下はOK。 public class Foo<B extends Bar, P extends Paw<B>> { ... }でもこっちはNG。 public class Foo<P extends Paw<B extends Bar>> { ... }今のところ不自由はないようだけど、自分の直感的には後者なんだけどなぁ。</p></b>

-謎動作

AnnotationMirrorの属性値としてClass型のものを取得します。これはOK。そのTypeDeclarationからメソッド一覧を取ろうと、getMethods()を呼びます。すると、長さゼロのCollectionが返って来てしまいます。でも、属性値に設定したクラスは、直接たくさんメソ…

-テスト環境

Aptのプロセッサはテストが難しい。そこでいろいろ考えてみましたが、Eclipseプラグインとしてデバッグができる以上、Eclipseプラグインとしてテストする感じかな。Kijimunaのときにやってたのだけど、ランタイムワークベンチにプロジェクトをコードで作って…

-ナビゲーション

Ikushipeのナビゲーションまわりを仕様変更。

-備忘録

あとでIrenkaへの要望をまとめるためのAptのかゆく思ったところの備忘録 Messagerなどのツールを取るためには、AnnotationProcessorFactoryで引数に入ってくるEnvをずっともちまわらないといけない TypeMirrorからSourcePositionが取れない ParameterDeclara…

-AptでつくるEclipseプラグイン

今、EclipseのJavaビルダをいじったり、IJavaElementをツリーウォークするようなプラグインを書いている人が居たとしたら(いや、居るとは思うが)、一度は何ヶ月もどっぷり地獄めぐるのも一興ですけど、私はorg.eclipse.jdt.apt.coreを使ってAptペースで書…

-Aptプラグイン

Eclipse3.2にはorg.eclipse.jdt.apt.coreなるプラグインがあるのですが。。。 Annotation ProcessorをPDEでデバッグできる Annotation ProcessorをPDEでユニットテストできる Mirror APIがダイナミックににょきにょき解決される これはスゴい。要はAptがEcli…

-動き始め

Ikushipeが動き始めました。いままではランタイムは完了しつつもジェネレータがなかったため、ジェネレータが出力するコードを考え、手書きしてサンプル作ってましたが、今日からはジェネレータでサンプルを作れます。幸せ〜。まずはマイルストーンにたどり…

-Aptの起動

Eclipse3.2よりAptが組み込まれましたが、ドキュメントどおりにしても起動しない。。。うーむ。Ecipse搭載のApt機能を動かせたことがある方はご一報ください。結局いまでもAntタスクでAptをたたいてます。。。 Eclipse内でプロセッサが動きました。問題は依…

-こんな感じ

テンプレートでひとつひとつ機能を作っていく。。。Velocityテンプレートで書くのが難しいロジックは、バッキングBeanで細工していく、そんなステップです。

-Velocity

結構Velocityが得意になってきました。が、Typoがつらいよ。チェックするのに目が痛い。。。Aptも新しく知らないことに出会う確率が少なくなってきた。が、テストがうまくできない。。。職人気質じゃないと書けない世界だなぁ。

-Enum

AptでアノテーションミラーのEnum型エレメント値を取るのに苦労中。 解決 EnumConstantDeclaration#getSimpleName() で文字列値ですか。。。

-FreeMarker

一昨日の太一さんコメントよりFreeMarkerを昨日の朝、ダウンロード。9時20分の飛行機だったのに9時に京急が蒲田を出たばかりのときにはダメぽかなと思ったのですが、ギリギリでも乗れるものだなあ>JAL。飛行機で約1時間、FreeMarkerを試す。Velocityと基本…

-ソースコード生成

とうとうAptに加えて、Velocityまで手をつけてしまった。。。ガンバレ>Irenka。

-AnnotationMirror

http://d.hatena.ne.jp/masataka_k/20060701/1151765462 実はAnnotationMirrorでやらにゃならんかったのですね。ちっ。以下、JavaDocより。 The annotation returned by this method could contain an element whose value is of type Class. This value can…

-ページング

東急本店のラブ&ベリーの前でプレゼンテーション層たるIkushipeにページング機能をいれるべきか、いれるならどうするべきかを考える。たぶん何かしら入れるだろう。プログラムジャンキーだからw。ラジオボタンの未チェック問題もコンポーネントではなく、中…

-マッチポンプ

「AnnotationMirror」のエントリを書いた後、風呂に入っていて気がついたけど、IkushipeではAnnotationMirrorが無いと出来ない機能が少なくとも2つありました。プロパティバリデーションとプロパティコンバートです。 @LengthValidator(min=0, max=16) String…

-AnnotationMirror

Aptのプロセッサを書いていて、果たしてAnnotationMirrorを用いたコードって見たことあるかな?と。Aptでは以下のようなコードが書けます。 public void visitTypeDeclaration(TypeDeclaration typeDecl) { Foo foo = typeDecl.getAnnotation(Foo.class); _e…

-ループ出来

ループ内にてフォームパラメータの入れだしを伴う"task"サンプルアプリケーションが動作しました。これで初弾のアーキテクチャはほぼ固まったかな。

-release()

デバッグでずっとはまっていましたが、やっと解決。JSPカスタムタグのrelease()メソッドをオーバーライドした中で、NullPointerExceptionが出ていました。これがJasperの中で例外が食われていたのと、シーケンスのちょっと予想していなかったタイミングで発…

-動作

Ikushipeが動くようになってきました。まだ付属サンプルの、かつ条件のいいもの(Helloアプリ&Calcアプリ)だけで、肝心のループを行うサンプル(Taskサンプル)は関与機能をデバッグ中。 しかし動く、というのは語弊があって、人間コードジェネレータ(つまり…