かとじゅんの技術日誌

技術の話をするところ

Seasar

現在リファクタリング中

永続化機能の作り込みをやっていて,それに併せてリファクタリングも継続的に実施中です.まだまだ,かかりそうです. 最近,コミュニティの方と,やりとりすることが多いのですが,S2Chronosが待ち遠しいとおっしゃってくれる方に遭遇する機会が多くなって…

PHPでもTeedaで楽しく

妄想とかかれているのですが,ぜひ実現したいですね.PHPでもページ駆動開発やHTMLテンプレートも使いたい. ページ駆動は古くからある技術ですが,これにPOJO(POPOかな?なんか響きが)とDIの仕組みを組み合わせて シンプルにページクラス(アクションに当た…

認証用Aspectについて

http://d.hatena.ne.jp/j5ik2o/20070223/1172204878の独自インターセプタを作るという部分で,Aspectアノテーションを使ってLoginInterceptorを割り当てていたのですが,これはHOT deploy時しか正常に動作しないことに気付きました...orz public class TopPa…

coreとextension,examplesにソースディレクトリを変更

s2chronos-core.jar, s2chronos-extension.jarに分けます. coreにスケジューラとしての基本機能と,extensionには永続化なのど拡張機能を含めることになるかと思います. examplesはjar化はなしでソースのみ提供ということで.ちなみに,今回気づいたのです…

Teedaでもページングするには

S2JSFからTeedaに移行してからは,大量データを表示する際はGridを使うとよいということは分かっているのですが,顧客からこれまでの方式の,”前の?件”,”次の?件”でページングしてほしいと要求されるときがあります.今回,Teedaでページングのやりかたに…

S2PagerでもSQLの指定が可能

検索エンジンなどで扱う大量な結果の表示には,ページングという手法がよく使われます.これを簡単にできるようにしたのがS2Pagerです.SMART deploy上でS2Pagerを使う場合は以下のようにすることで可能です. Dao, Entityは,SMART deployのパッケージルー…

SMART deploy上で複数データソース対応

簡単なFAQ書かせていただきました. http://www.seasar.org/wiki/index.php?FAQ%2FS2DAO#w7da6e0eもうひとつのデータソース用にCreatorを作って定義する方法でやっていたのですが,AspectCustomizer#addClassPatternが使えたんですね.id:koichikさん,アド…

DBFluteに挑戦

S2Daoの支援ツールであるDBFluteを導入してみようと思います. このあたりが参考になりそうです. http://d.hatena.ne.jp/cepoc/20070323/1174666918このツール使う前にDBMSにスキーマを登録して立ち上げておく必要あるのかな...

Teeda Extension

Teeda Extension featuring Goya 〜アーキテクチャ【Pegeの継承】Teedaを使う上で,これは最低限,頭に入れておこう.

SMART Deploy

今更ですが,SMART Deployはこの辺から. http://d.hatena.ne.jp/koichik/20061117 HOT Deployに対応させるにはこの辺から. http://d.hatena.ne.jp/koichik/20061118 S2Chronosの方もHOT Deploy対応にしました.

JRE1.5対応のSuperAgile(S2Dao)でpom.xmlが生成されるように

id:taichitaichiさん, 対応ありがとうございました.こちらこそお役に立てて光栄です. pom.xmlがキチンと生成されることを確認しました.これでだいぶ楽ができる(涙 いやー,どんどん便利になりますね.みんなで使ってフィードバックしてよいものにしたいで…

トリガーの仕様について

タスク(ジョブをタスクに改名しました)に以下のsetter/getterを配置することで,トリガーの機能を実現することにしました. getStartTaskでtrueを返すとスケジューラから当該タスクが起動され,逆にgetEndTaskでtrueを返すと終了します. getShutdownTaskの…

MethodInvoker

org.seasar.chronos.delegate.MethodInvokerは,.NETのデリゲートのような機能を提供します. 材料は,ExecutorServiceと,S2に登録されているコンポーネントです.使い方はこんな感じ.C#ではデリゲートをよく使っていたのですが,Javaでは使えません.しか…

ジョブ関連の実装がほぼ完了

テストは不十分なのですが,ジョブ関連の実装がほぼ完了.このあとは,トリガーとジョブの関係について再度設計を入れてからまた実装に入りたいと思います.ソースはこの辺から見れます. https://www.seasar.org/svn/sandbox/s2chronos/

同期ジョブの遷移先動的指定

非同期ジョブの場合、遷移先をあらかじめアノテーションで定義しなければならないのですが、同期ジョブの場合は戻り値で遷移先を指定できるようにしました。 // ジョブメソッドA @Group("groupA") @Join(JoinType.Wait) public String doJobA() throws Excep…

Cloneアノテーション&例外のハンドリング

ちょっと思いつきですが, @Cloneで当該ジョブの複製する数を指定するとJobExecutorServiceによって複製されます。これもジョブに割り当てたスレッドプールの上限によります。複製したジョブの待機ですが@Join(JoinType.Wait)とした場合、複製したすべてのジ…

Teeda Extension featuring Goya

Teeda Extension featuring Goya 〜アーキテクチャ【レイヤー構成】〜視覚的でとてもわかりやすいアーキテクチャのレイヤー構成についての記述があります。言語問わずこのようなレイヤーで実装すべきだと思います。 私の場合は小規模案件から使うことが多い…

Teeda 1.0.5のレイアウト機能を簡単に試してみました

レイアウト機能の確認 Teeda 1.0.5のサンプル teeda-html-exampleをTomcatにデプロイしてください。どうやら、標準ではレイアウトがきいていないようなので、/view/layout/layout2.html を /view/layout/layout.html に改名し再度ブラウザからアクセス。レイ…

S2Chronosのリーダとして承認されました

オブジェクトスケジューラのプロジェクトをSeasarファンデーションに申請し、本プロジェクトのリーダのコミッタとして本日承認をいただきました。とりあえず、SandBoxからスタートです。(もちろん、本業と両立は当然のこととして、ぼちぼち進めたいと思いま…

Triggerの仕様について

トリガーとは、ジョブを起動するための起動/停止の日時などの条件を指定するクラスのことです。 通常はGenericTriggerを継承し、@Triggerに対応するジョブクラス(複数指定可能です)、@InitMethodで初期化処理を指定します。CRONコマンド形式を利用したい場合…