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

-Maya0.9.9リリース

http://maya.sandbox.seasar.org/ 誰でも簡単にためせるように、置くだけのWARを作りました。 変更点 0.9.8 -> 0.9.9 ServiceProviderなどをStrutsなどの外部のフレームワークからも利用できるように、ThreadLocalを利用してServiceCycleを保持するようにし…

-JSP

http://blogs.opensymphony.com/plightbo/archives/000180.html どうかな、ちょっと性急な感が。。。Servlet-APIや(特に)JSP-APIがいけてないとは私も思うけど。。。でもTapestryやWicketやWebWorkではその位置を担うにはまだ力不足だと思うんですよね。

-Subclipse 0.9.33

Subclipseがバージョンアップしてたので、Update。。。おお、パフォーマンスが10倍以上(私の体感)速くなった。すばらしい。 追記 しばらく使ってみたけど、0.9.32までは何だったのかというぐらいパフォーマンスがいいです。これは、Subversionのほうがよく…

-夏休み

世の中的には夏休みが終わりですね。我が家も終わりです。8月ずっと帰省していた妻子が明日の夜もどってきます。ほぼ一ヶ月ぶり。次は10月末の秋祭りのころに一ヶ月帰る予定だそうな。

-ネストの影響

JSPの変数スコープはAT_BEGIN、AT_END、NESTEDとあり、ひとつの空間内での変数動作を制御しているものがあります。ループのカレントを保存するものやカウンターがNESTEDで行われていることが多いほかは、たいてい特別な操作はされていません。 ページスコー…

-スコープネスト完成

ServiceCycleのページスコープをスクリプトのコードのスコープと共有し、かつテンプレートのタグのネストにあわせてスタック処理を行う機能が完成しました。0.9.9予定機能はOKです。もう数日、質を上げるべくテスト等を行った後に、8月31日のSeasar理事会前…

-スコープ

まあ、たぶん何を言ってるか、わけわからん話題かと思いますが。。。 Mayaのスコープ概念がいまは、2系あります。JSPのスコープをそのままもってきた、application / session / request / pageと、JavaScriptのスコープ概念です。で、これを分けるとどうも良…

-for/if/write/exec

スクリプトなひとたち。 <html xmlns:m="http://maya.seasar.org"> <body m:inject="m:exec" m:rendered="true" m:src="/test.js" m:encoding="Shift_JIS"> <p m:inject="m:for" m:rendered="true" m:init="${i=0}" m:test="${i&lt;10}" m:after="${i++}"> <span m:inject="m:if" m:test="${i%2==0}"> </span></p></body></html>

-さらに備忘録

既知の問題として放置していたのが、/WEB-INFの下のファイルも丸見えになる問題。web.xmlも読めれば、/WEB-INF/libの下のJarもダウンロードできちゃう。そりゃまずいですよね。ということで、ページは以下の順で探すこととしました。 コンテキストルート相対…

-荒業

public File getBaseDir(Class testClass) { String resourceName = testClass.getName().replace('.', '/') + ".class"; ClassLoader loader = testClass.getClassLoader(); URL url = loader.getResource(resourceName); File file = new File(url.toStrin…

-WebWork2.2

http://blogs.opensymphony.com/plightbo/archives/000179.html WebWork2.2がPortlet(JSR168)をサポートだそうです。どういう(どのレベルで)サポートをしているのかがピンと来ないのですが、時間作って調べたいところです。たぶん、ActiorRequest/Resonse…

-Portlet対応

やっとPortlet(JSR168)が様子がつかめてきました。目先の案件にMaya投入するための締め切りに追われてしまい、当面必要無いPortlet対応については後回しになってました。 MayaでのPortlet対応は一番軽いレベルだと、Portletからのディスパッチで描画のみ対…

-今日の備忘録

Skirnirさんとsugaさんとでディスカッション。で、備忘録。 ページを読み込む際に、KvasirではURLの取り扱いが問題となるかもしれないので、ページを読むPageSourceDescriptorを決め打ちで使ってるところをProviderFactoryのところで設定可能とする。 maya.c…

-備忘録

別件で二川さんが来てたので、ちょっとだけMayaの話。二川さんはMayaですでにアプリを作ってくれています。 TilesSourceDescriptor Welcomeファイルの対応 話で出てきたのはこの2件。いままでTilesの対応は特殊なHTMLパーサを書かないといけないと思ってまし…

-Native-JSTL

Native-JSTLの一式を、trunk/maya-jstlに別プロジェクトとして切り出しました。maya-jstlプロジェクトは他と同様にmayaプロジェクトに依存します。

-ScriptletProcessor

scriptlet.html <html> <head> <meta http-equiv="content-type" content="text/html; charset=Shift_JIS"> <title>Maya samples</title> </head> <body> <div id="script" class="box"> テンプレート上のダミー文字列 </div> </body> </html> scriptlet.maya

-ソースロード

スクリプトをこれまでのテンプレや.mayaファイルに書く方法のほか、別途スクリプトソースファイルを読み込んで実行する機能を作ってます。実はこれがここ一連の式言語廃止、スクリプトエンジン採用のゴール。基本的にJavaを書かないJavaテンプレートエンジン…

-RhinoのCollection対応方法

まったくMaya固有の内容ではないので、明日つかえるトリビアかな。。。まずはWrapFactoryのオーバーライド。型をみてラッパーを選択するだけの内容です。 public class MayaWrapFactory extends WrapFactory { public Scriptable wrapAsJavaObject(Context c…

-RhinoのCollection対応

さて、RhinoはOGNLにある機能で、JavaのListやMapといったCollectionに対する対応が入ってないようです。${ map.hoge } や &{ map['hoge'] } というスクリプトでMapのエントリを取得したり、${ list[3] } というようにListをインデックスでダイレクトにアク…

-帰宅

チェルシーvsアーセナルに間に合わせて帰宅。今日も首都高はすいてた。

-仕上げ

仕上げ開発(?)をひとつづつやってます。先のJar読み込みなどのソースローダー周り、J2EEのエンティティ解決と続いて、MLDプロパティ周辺、Writer出力周り、テンプレや.mayaのロードイベント周り、ScriptletProcessor。このへんで水曜日のMaya-Kvasirコー…

-免許更新

今日は映画を見に行こうかと思ってたのですが、免許の更新が実家の近くでできることと、日曜日もやってることに気がつき、運転免許証の更新に行ってきました。私は駐車禁止違反を2度ほどしていて、そのため近所の警察署ではなく、運転免許センターでないと更…

-最近

先週はひどくモチベーションが低下していた一週間だったのですが、金曜日(12日)にお休みして連休、今週は毎年恒例のカジュアルウィーク(世間がお盆休みの期間、ドレスコードを解禁してます)で、いくらかゆったりとコードを書くだけの後、やっと浮上。 こ…

-首都高

サッカー見てから、夜の首都高をドライブして、実家に来ました。今日は工事も無く、渋谷から浦安まで20分かからないぐらい。途中、レインボーブリッジで風が強くちょっと怖かった。。。

-エンティティ解決

今日の昼間、ずっと懸念のまま放置していたJ2EEのエンティティ解決を仕上げました。web.xmlやTLDを一時バリデーションなしでパースしていましたが、ローカルでエンティティをしっかり解決できるように作りこんだので、ネットワークにつながってない状態でも…

-ClassLoaderで修行

さて、地道に修行してみました。下記のコードは読み出しターゲットとするためだけに、XercesのJARをクラスパスに入れています。 public void testMetaInfLoading() throws IOException { ClassLoader loader = Thread.currentThread().getContextClassLoader…

-修行?

ということで、暗黒面についてひとくさししました。さて一方、フォースの修行とはなんでしょう?私もわかりません。しかし、修行っぽいことはわかります。仕事・コミュニティに関わらず、アウトプットをきちんと出し続けることじゃないかな。アウトプットの…

-暗黒面

http://d.hatena.ne.jp/habuakihiro/20050817#1124241493 ダークサイドについて書かれています。現在進行形の事情については知らんし、興味ないのですが、ここだけに激しく反応。StarWarsが起源ですが、まさにこの「フォースの暗黒面」というのは技術者にも…

-プロジェクト分割

これまで、本体・サンプル・テストとひとつのプロジェクトだったところ、maya、maya-sample、maya-test に分割しました。これは以下の理由があります。 ディストロに、サンプル・テストが混在してて、クラスパス、ソース共にすっきりしてなかった。分割して…

-パッケージ名の制約

さて、ClassLoaderでJarのMETA-INFフォルダの下を読めないと思いこんでいた理由を書いてなかったので追記です。それはJavaのパッケージ名の制約からです。META-INFという名前はパッケージ名としてNGなんですよね。ハイフンがパッケージ名には使えないのです…