2005-02-01から1ヶ月間の記事一覧

-ImplicitPageアクセス

ImplicitPageを直接アクセスする際に、attributeの値をリクエストパラメータで渡すと、ImplicitPage単体で表示できます。この機能はImplicitPageのデバッグ用途です。この実装にて、12月に書いた仕様の機能はほぼ全部実現しました(つくりはまだまだ甘いです…

-寝る

今日は手仕舞い。夕食時にビール飲んだらくらくらしちゃって。。。

-replace修正

replaceの件、duranさんの指摘で、IterationTag利用パターンでうまくなかったので、かなり副作用あるんじゃないかなと心配ながらTemplateImplをいじって対応しました。 org.seasar.maya.impl.engine.TemplateImpl#render()の該当部分 if(current.isIteration…

-会社のサイト

今の会社のサイトは、4年ぐらい前にCocoon2で作っていらいほったらかしだったのですが、そのうちTapestryになります。これも1年以上前に途中まで作っていたものですが、このたび発掘してウチのかとちん氏がサービスできるように整えてくれました。動きは無駄…

-EDEN12

ゴージャスランチついでに本屋をのぞくと、遠藤浩輝「EDEN」12巻がでてたので買ってきました。ちょっと前の内容がわすれちゃってたので、1巻から読み直し。。。時間がもったいないんだが、まぁ、いいや。

-寝坊

起きたらこの時間でした。こんなに寝坊できるのも今日が最後。明日に妻子が姫路から帰ってくるのです。ほぼ一ヶ月ぶりです。娘がいると寝坊していると起こされるので。外行くのも面倒なので、備蓄非常食から何か食うべく賞味期限をしらべると。。。「大盛り…

-テキストの取り方

今、Mayaはテンプレートのボディテキスト部はSAXのContentHandlerのcharacterおよびignorableWhitespaceイベントをそのままレゾルバに渡しています。が、これだと改行の入った式ブロックが切れちゃうんだな。。。[character]、[whitespace]、[character]とパ…

-replace機能実装

replace機能を実装しました。 テンプレート <div class="box" id="message">さようなら</div> 設定XML <tag id="message" inject="c:out" replace="false"> <binding name="value" value="${ helloModel.greeting }"/> </tag> もしくは、 テンプレート <div class="box" m:inject="c:out" m:replace="false">さようなら</div> のように書くと、 <div class="box">こんにちは</div>

-進捗状況

この調子だと、「勇気があれば案件に使える」レベルのものが3月1日に予定されている0.9リリース(二度目のマイルストーンリリース)に出せそうです。問題はドキュメントです。明日中に書けない(書く気力がおきない)とアウトだな。使い方の章は機能追加がす…

-replace

duranさんから昨晩に要望ありましたが、テンプレでインジェクトされる(のっとられる)HTMLタグが消えちゃうのをコントロールしたいという。。。replace属性を定義というところで、なるほど。。。replaceがメジャーなJSPカスタムタグでアトリビュートに使わ…

-フォワード時の問題

なぜかフォワードがかかったのち、どうかすると、PageContextが内包するServletRequestとServletResponseがなくなってます。どっかで、PageContext#release()が呼ばれてるな。。。ただ、このメソッドは基本的にJspFactoryが呼ぶもので、Mayaはここの実装を捨…

-OGNLによるフォワード

/forward.html <html> <head> <meta http-equiv="content-type" content="text/html; charset=Shift_JIS"> </head> <body> <div> ${ pageContext.request.getRequestDispatcher( "/index.html").forward(pageContext.request, pageContext.response) } </div> </html> 上記は、式で改行はいってるけど、いまのところ式に改行いれたらNGです。がちゃんとフォワードします。re…

-新しい式エンジン

式エンジンAPIが新しくなりました。とりあえずJSR245がきちんとなれば、JSR245の式エンジンにも対応できるというように考察を重ね、しかーしOGNL。普通のは動きます。 今、デバッグ中なのは、以下のような式。 ${ model.method(namedObject) } メソッドの引…

-JavaWorld 4月号

「テンプレートエンジンを使おう!」という第1特集でした。今、一番考えているところなので楽しい。サプライズは、まずS2JSFを取り上げられているところ。うれしいですね。Seasar Projectも頻繁にJavaWorldにも出現するようになってきました。そして65ページ…

-Maya 0.4.0 リリース

変更点 0.3.0 -> 0.4.0 式言語エンジンを刷新しました。新しいAPIは、org.seasar.maya.el.* です。デフォルトの実装としてOGNL3.0によるものを提供しています。また、式エンジンAPIを見直すことにより、将来の式エンジンの置き換えカスタマイズにも配慮して…

-OGNL

OGNLに。。。というより、式言語のエンジンを差し替え可能という当初案(JSR245に夢を持って却下した案)に戻るべく実装始めましたが、例の(?)式のブロック評価のところ以外は完了。が、式ブロックの評価を自前でやらないといけないために、CVSにも入れら…

-式言語

いまさらながら、EL式の仕様ってなんてヘボいんでしょう。JSR245によるUnifiedELとかいって、これが今後のJ2EEでデファクトとなるときつい。OGNLはやはり数段上です。今日は以下の式でハマりました。 ${ THROWABLE.printStackTrace() } いつまでたってもコー…

-SAXのValid&error

ちょっとびっくりしたのは(私が知らなかっただけかな?)、SAXParserFactoryのsetValidating(true)によってValidするときに、DTD宣言がひとつもないとSAXParserException「no grammer」が発生しますが、ここに謎な要件があって、ハンドラがErrorHandler#err…

-Filter化

JasperのPageContextImpl内でServletConfigを取得しに行ってるところがあるのですが、Filterだと、FilterConfigで、ServletConfigじゃないんですね。ということで、FilterConfigのラッパーで、ServletConfigを作るということになるのか。。。ま、やれんこと…

-Maya 0.3.0 リリース

変更点 0.2.0 -> 0.3.0 APIの例外取り扱いを検討し、復旧不能な例外についてはRuntimeExceptionを継承した例外にて取り扱うようにしました。 例外処理機構がAPIに追加されました。 TagProcessorにおいて、TryCatchFinallyを実装したJSPカスタムタグに対応し…

-更新ソース自動再ビルド

テンプレートや設定XMLを更新した際に、エンジンを止めることなく自動的に再ビルドしてサービスする機能が長くバグってましたが、修正できました!リリースします。TryCatchFinallyタグの対応も実装してもらったし、APIの例外を復旧不能のヤツをRuntimeExcep…

-明日のTODO(備忘録)

リアルMayaに電話する 干しっぱなしの洗濯物を取り込む 床屋にいく APIのEngineのsetServlet(...)をsetServletContext(...)にしてもよいか検証 よければ、Filterにする(Welcomeファイル対策) suffixの区切り文字を設定項目とする。 シエナvsフィオレンティ…

-ユーザーリクエストsuffix

たとえば、/index_123.html とアクセスされるとします。 これは、ページ名=「/index」、ユーザーリクエストsuffix=「123」、拡張子=「html」とバラします。 ページ「/index」+Mayaファイルの拡張子、「maya」より、「/index.maya」を作り、ファイルを探し…

-Filter

MayaをFilterでサービスしてはという話があったのですが、ちょっと引っかかる点が判明。PageContextのinithializeにServletを用いること。ここ一点なんで、PageContextの仕様を確かめてみないと。 追記 仕様はともかく、Jasper2のコードをざっと眺めても、Pa…

-だらだら

今週は、夜更かし続きだったので寝がたりなかったため、目覚ましとめてずっと寝てました。そうはいっても11時前には起きたけど。で、近所の中国系資本な中華屋さんにいって、昼ごはんたべて、洗濯して、プール行って、実家に。 母親が誕生日だったので実家近…

-イベント発火

たぶん、ページを描画する直前とかに何かしたいと思うかなーということで。まずJavaのモデルオブジェクトです。リターンがvoidで、PageContext型の引数を一つ持つというのが仕様。 package org.seasar.maya.sample.hello; import java.util.Date; import jav…

-ImplicitPageのattribute

ImplicitPageのattributeを実装しましょうかね、ハイ。

-テスト

いやーユニットテストがとおらないや。激しいリファクタリングと直感指向開発を身上とする私なので(ダメじゃん!)、動いていたテストが動かなくなっている。。。

-日経ビジネス

今日の日経ビジネスで例の800億調達&一晩で上場企業の35%超の株式取得の怪について書いてありましたが、その文章だけの情報で感じたのは、橋としてヤバイんじゃないかなと。何がヤバイって、転換社債の転換価格を毎週みなおすってところ。こいつによってリ…

-マジックカスタムタグ

マジックカスタムタグは、m:inject属性値として、頭に「$」がついた名前を記述するということを仕様としています。そして、そのマジックカスタムタグは、テンプレートに記述するときは、m:inject="$magicName"で、設定XMLに記述すると、<magicName id="elementID"/>となります。また、マ</magicname>…