ふたつの川うるおう日記
2007-12-04 (Tue)
_ [Seasar][Admin] HDD破損
RAID-1になってた160GB HDDの1台が壊れたので交換しました。たくさん使える在庫HDDが最近世代交代して500GBなので、新品じゃなくて引退したサーバで使ってた160GB HDDを流用しました。
そのため、流用したHDDにRAID Unitの情報が残ってて、RAIDカード上でどっちが生かしたいHDDかちょっと悩みました。間違って選んだら全部消えちゃうので。。結局、片方ずつ接続と認識状態確認して無事復旧しました。
ついでにVLAN設定も綺麗に直そうかと思ったけど上流スイッチの設定が古いままなの忘れてて時間掛かりそうだったのでまた今度にしました。
_ [Linux][Admin] CentOS 5.1 + 3ware 9650SE-2LP
問題無く認識します。
ただ、個人的な問題はShuttleの最近のCubeマシンが3ware 9650SE-2LP BIOSを認識してくれないこと・・・。おかげで使えない(泣。
PCI ExpressとPCIスロットが1スロットずつあって、PCI Expressの方がビデオカードを想定してか、マザー内臓ビデオカードとぶつからないように起動時にディレイが入ってるようで、そのせいでRAIDカードのBIOSが認識されないっぽい。PCIスロットに3ware 9500Sなら認識するもののそれだとだいぶ速度が劣るから微妙なところ。
2007-12-08 (Sat)
_ [Java][Seasar] Mavenにハマる: mvn testとmvn deploy
日付超える前にコードは出来てたのになぜかMavenが言うこと聞かなかった。
- 症例1: 同じソースが違うマシンでmvn testが失敗する
- 例外: There are some test failure.っと普通にテストに失敗
- 解決方法: ローカルにキャッシュされてる$M2_REPO\org\apache\maven 以下をすべて削除
- 症例2: 同じソースが違うマシンでmvn deployが失敗する
- 例外: Connection timed out: connect
- [INFO] Repository 'maven.seasar.org' will be blacklisted
- 解決方法: ローカルリポジトリ全部削除しても未だ解決せず...
- 例外: Connection timed out: connect
症例1と症例2が2台のマシンで別々に問題だったため、どっちからもmvn deployが出来ないという罠にはまりました。結局症例1が解決したのでそっちのマシンでdeployしました。症例2はまだ未解決。
[12/10 16:16追記] ファイアウォールのせいだった。リモートデスクトップで作業してた時はポップアップが表示されないらしい。
_ [Java] Devloaderその後
DevLoader改変で作ったパッチをSysdeoのサポート宛に送ってたんだけど、中の人から返事が来て次のリリースに入れてくれるそうです。調子に乗って、devloaderはjar形式で、Sysdeo/SQLI Eclipse Tomcat Launcher pluginはupdate site形式でリリースして欲しいってお願いしてみました。こっちも取り入れてくれると嬉しいな。
2007-12-10 (Mon)
_ [Java][Seasar] S2Daoの開発リポジトリ
うわーー。
じゃなくて
こっちだったのか・・・。
ここ3日間で前者に併せてS2Directoryのソース直してしまった。。そして、いろいろ直したのは直す前の方が新しいかったっぽい。。
DaoMetaDataFactoryImplにHotDeploy用のinitializedが無くなってておかしいなと思いつつ、S2Container側でなんか対応したのが入ったのかなと思いS2Directory修正してたのがやっぱしHot deployでエラー吐くから気付いた。。
うーん、以前の状態に戻したいけど、その間にSSL/TLS対応とかいろいろ入れたからぐちゃぐちゃになっちゃいそうだ。1からまた直そう。
[16:12追記] 元に近い形に戻ってとりあえずHot deployで動くようになった。0.6-SNAPSHOTでMavenにSNAPSHOTをdeploy済み。
2007-12-29 (Sat)
_ [Java][Seasar] S2Directory 0.6, S2DirectoryTiger 0.6, S2DirectoryGenerator 0.2 リリース
なんだかんだで予定より3週間も遅れてしまいましたが無事リリースできました。
この日記を見られているか判りませんが、今回のリリースまでに多くのバグ・要望を出していただいた鈴木さん(MLより)、海野さん(MLより)ありがとうございました。 さらに、S2DirectoryTigerのベースとなったソースコードをご提供いただいたid:shot6さんありがとうございました。
- 今回のリリースに関して
S2Directory 0.5 以前はコネクションの解放に問題があるため、今回リリースした 0.6 を利用することをお奨めします。
今回のリリースによる大きな機能追加として、SSL/TLS接続とATTRIBUTE/COLUMNアノテーションが利用できるようになりました。また、実験的にコネクションプーリング機能を追加しました。
- 設定参考: http://s2directory.sandbox.seasar.org/ja/documentation/configuration.html
- directory.dicon に設定が必須ではない設定項目が追加されました。
- 新しい機能を利用しない場合、今までと同じ設定で問題ありません。
- directorydao.dicon に設定項目が増えました。
- 独自に directorydao.dicon をカスタマイズしている場合、修正が必要です。多くの場合、directorydao.dicon は独自に用意する必要はありません。
- directory.dicon に設定が必須ではない設定項目が追加されました。
また、S2DirectoryTigerを併用することで、Tigerアノテーションを利用できるようになりました。
- それぞれのダウンロードはこちらからどうぞ。
http://s2directory.sandbox.seasar.org/ja/downloads.html
- Maven2からのご利用はこちらを参照ください。
http://www.seasar.org/wiki/index.php?Maven2RepoRemote
- S2Directoryプロジェクトサイト
http://s2directory.sandbox.seasar.org/
バグや不具合などあれば、この日記かMLまでご連絡よろしくお願いします。
2007-12-31 (Mon)
_ [Java][Seasar] Cubby入門中
CubbyのRESTっぽいURIが個人的に激しく良いです。でも、Actionの単体テストがどうしたら良いかよくわからないです。org.seasar.cubby.examples.todo.action.LoginActionに対して次のようなテストを書くと。
public class LoginActionTest extends S2TigerTestCase {
private LoginAction loginAction;
protected void setUp() throws Exception {
include("app.dicon");
}
public void testLogin() {
loginAction.sessionScope = new HashMap<String, Object>();
loginAction.userId = "test";
loginAction.password = "test";
loginAction.process();
assertEquals(1, loginAction.sessionScope.size());
}
}
次のぬるぽが出ちゃってテスト出来ません。
java.lang.NullPointerException
at org.seasar.cubby.controller.impl.ActionContextImpl.getAction(ActionContextImpl.java:63)
at org.seasar.cubby.controller.impl.ActionContextImpl.getFormBean(ActionContextImpl.java:92)
at org.seasar.cubby.interceptor.InitializeInterceptor.setupForm(InitializeInterceptor.java:68)
at org.seasar.cubby.interceptor.InitializeInterceptor.invoke(InitializeInterceptor.java:43)
at org.seasar.framework.aop.impl.NestedMethodInvocation.proceed(NestedMethodInvocation.java:53)
at org.seasar.framework.container.customizer.AspectCustomizer$LookupAdaptorInterceptor.invoke
(AspectCustomizer.java:195)
at org.seasar.cubby.examples.todo.action.LoginAction$$EnhancedByS2AOP$$787d6a$$MethodInvocation$$process2.proceed
(MethodInvocationClassGenerator.java)
at org.seasar.extension.tx.RequiredInterceptor.invoke(RequiredInterceptor.java:48)
at org.seasar.cubby.examples.todo.action.LoginAction$$EnhancedByS2AOP$$787d6a$$MethodInvocation$$process2.proceed
(MethodInvocationClassGenerator.java)
at org.seasar.cubby.examples.todo.action.LoginAction$$EnhancedByS2AOP$$787d6a.process
(LoginAction$$EnhancedByS2AOP$$787d6a.java)
at org.seasar.cubby.examples.todo.action.LoginActionTest.testLogin(LoginActionTest.java:25)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at junit.framework.TestCase.runTest(TestCase.java:168)
at org.seasar.framework.unit.S2FrameworkTestCase.doRunTest(S2FrameworkTestCase.java:519)
at org.seasar.extension.unit.S2TestCase.doRunTest(S2TestCase.java:103)
at org.seasar.framework.unit.S2TigerTestCase.doRunTest(S2TigerTestCase.java:82)
at org.seasar.framework.unit.S2FrameworkTestCase.runBare(S2FrameworkTestCase.java:308)
at org.seasar.framework.unit.S2TigerTestCase.runBare(S2TigerTestCase.java:66)
at junit.framework.TestResult$1.protect(TestResult.java:110)
at junit.framework.TestResult.runProtected(TestResult.java:128)
at junit.framework.TestResult.run(TestResult.java:113)
at junit.framework.TestCase.run(TestCase.java:124)
at junit.framework.TestSuite.runTest(TestSuite.java:232)
at junit.framework.TestSuite.run(TestSuite.java:227)
at org.junit.internal.runners.OldTestClassRunner.run(OldTestClassRunner.java:76)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:38)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
とりあえずValidationだけをテストするか、Helper MethodもしくはServiceとして実装してそっちでテストかな?。SAStrutsだと返り値がパスを表したStringなので単体テストしやすいです。
と、RESTっぽいURIを持つCubbyとSAStruts の良いとこどりがあれば良いのかも?




_ jfut [テスト。]