hakobera's blog

技術メモ。たまに雑談

JavaによるRESTfulシステム構築 読了

JavaによるRESTfulシステム構築作者: Bill Burke,arton,菅野良二出版社/メーカー: オライリージャパン発売日: 2010/08/23メディア: 大型本購入: 27人 クリック: 744回この商品を含むブログ (35件) を見る良書でした。JAX-RS の網羅的な解説がされているので…

Doma で DataSource を JNDI 経由で取得する方法

Seasar2 とかを使わずに JavaEE コンテナから JNDI 経由で DataSource を取得する方法のメモ。ソースをまったく書き換えることなく、UT、ローカル開発サーバ、本番環境に対応できるので便利。Glassfish v3.0.1 上の JAX-RS + CDI + Doma なアプリ環境で稼動…

SAStruts + Doma の開発環境を maven2 + WTP で構築する手順

ここ1年くらい、SAStruts + S2JDBC で新規システムの開発してきたんですが、今月から別のシステムのメンテナンス画面を作ることになりました。メンテナンス画面なので、データベースのスキーマはいじれないので、S2JDBC だと少しやりにくいな、と思っていた…

Java で Ruby の Benchmark みたいなことをやる

「大規模サービス技術入門」に影響されてアルゴリズムの勉強をはじめてから実行時間を計ることが多くなったのだけれど、なんか毎回、同じようなコードを書いているので、少し簡単に書けるように工夫してみた。参考にしたのは Ruby の Benchmark クラス。libr…

VBCode を Java で実装する

[Web開発者のための]大規模サービス技術入門 ―データ構造、メモリ、OS、DB、サーバ/インフラ (WEB+DB PRESS plusシリーズ)作者: 伊藤直也,田中慎司出版社/メーカー: 技術評論社発売日: 2010/07/07メディア: 単行本(ソフトカバー)購入: 74人 クリック: 1,77…

SAStruts + S2JDBC の開発環境を maven2 + WTP で構築する手順 その2

SAStruts + S2JDBC の開発環境を maven2 + WTP で構築する手順 - Scalaとlift のはずだった ・・・↑の後日談。 Dolteng 0.37.0 がリリースされて、前回のエントリーで書いた maven との相性問題も解消されていて、快適になってました。着実に進歩していくプ…

WicketでS2JDBCのAbstractServiceが動かないので回避方法を考えてみた

最近、仕事で Wicket を使っているのだが、S2JDBCと組み合わせたときに AbstractService がうまくインジェクションできない、という問題が発生したので、その現象と回避方法を書いておく。 ちなみに、Wicket 1.4RC-2 + S2JDBC 2.4.34 + wicket-seasar2 1.0 b…

OpenJPA でc3p0をコネクション・プーリングとして利用する方法

Java EEサーバーのコネクションプールが使えない、という場合に使えるかも。Apache commons-dbcp 用の設定はあったけどcommons-dbcp はログが何もでないので嫌だったので、c3p0を試してみたが、調べても設定がみつからなかったので試行錯誤してみた。結果、…

SAStruts + S2JDBC の開発環境を maven2 + WTP で構築する手順

実は Doltengの出力する pom.xml で、そのまま mvn eclipse:eclipse しても駄目なんです。 試したのは 現時点(2009/03/01)で最新の Dolteng 0.36.0Seasar2 も maven も大好きな自分としては悲しいです。 というわけで少し格闘してみたら、できたのでその手順…

sa-struts-tutorial の pom.xml を作った

sa-struts-tutorial には pom.xml が含まれていない。 最近は maven 使わないと開発できない体になってしまったので作ってみた。備忘録的に貼っておく。Dolteng が出力する pom.xml をそのまま使おうとしたら、上手くいかなかったので、少し改造。 何が問題…

Rails は本当に遅いのか?

Ruby on RailsがMetalに本腰を入れて取り掛かる遅い遅いと言われ続けてきたRailsがついに本格的に高速化に取りかかっているようだ。(記事を読む限りは高速レスポンスを実現できるMetalという名前のモジュールを追加した、という感じだろうか。)こうして自…

Scala Eclipse Plugin 2.7.2 RC5 をいれてみた

やっと Run As.. メニューに Scala Application ができた。 前はいちいち Run メニューから main クラスをしていたので、かなり快適になった。 というか、今までなかったのが逆に不思議。でもこれで、けっこう使えるようになってきたと思う。 しばらく使って…

Java で URI エンコード (RFC 3986)

自前エンコーディングはやらない方針で書いてみた。 とりあえず以下のコードでできた。 でも、絶対にもっといい方法がある気がする。 public static String encode(String uriTemplate) { StringBuffer buf = new StringBuffer(); for (int i=0; i

VMWare ESXi で仮想マシンのテンプレートを作る

VMWare ESXi でテンプレート機能がないのは、無償版だからだとずっと思っていたのだが、昨日、色々とメニューをいじっていて、Virtual Appliance > Export で実現できることが判明。よく考えればわかるんだけど、Virtual Appliance は使うだけで、作ろうとは…

Hotdeploy と WTPの相性について その2

maven2 との連携の観点から。 Eclipse 3.4 (WTP 2.0) では以下のような動きをするというメモ。 Tomcat 前回の記事のコメントでもらった以下の情報通りにやると動かない。(アプリは動くが Hotdeploy できない)http://d.hatena.ne.jp/uriyuri/20080328/12066…

Hotdeploy と Eclipse WTP サーバープラグインの相性があまりよくないかも

thick4 で Spring でも Hotdeploy ができるようになったのだが、実は Hotdeploy の仕組みと Eclipse WTP の 各種 Server プラグインの相性があまり良くないということがわかった。Hotdeploy は Eclipse の Javaクラス自動ビルド機能を利用して、ソースの変更…

Spring で Hotdeploy を実現する thick4 公開

とりあえずモノがないと、信じてくれない人もいると思う(自分がそうなので)ので、Spring で Hotdeploy を実現するライブラリーを公開します。http://code.google.com/p/thick4/Slim3 が正式に Spring から手を引いたみたいなので、トリビュートとして thic…

近日中に Amazon EC2 で Windows Server が使えるようになる

なんと、Amazon EC2 で Windows Serverが(公式に)使えるようになるとアナウンスされました。http://aws.amazon.com/windows/料金体系だけが気になりますね・・・ 従量制とは書いてありますが、具体的な値段が書いていません。リモートデスクトップも使える…

Spring で public プロパティーもどき

SpringでもDIのためだけにセッターを書く必要はない、という話です。 Spring 使っている人には当たり前の話なので、読み飛ばしてください。 public class Foo { @Autowired public Bar bar; } もしくは public class Foo { @Resource public Bar bar; } 早く…

VMWare ESXi に Windows XP をインストールする

先週、Quadコア + メモリ2GB で2万ちょい、というあまりの安さに DELL T105 を買った。 仕事では、32コアとかみたことあるが、自宅マシンとしては、初のQuadコア。そのサーバーが本日到着したので、早速 VMWare ESXi をインストールして遊んでみる。 32bit, …

Springのメンテナンス・ポリシー変更で、Slim3 は Spring 対応しない!?

Spring で Hotdeploy を書いているわけですが、2つほどショックなことが。1つ目は Spring のメンテナンス・ポリシーの変更。http://www.springsource.com/node/558というわけで、実質的に Spring (2.5.5 以降の) のマイナー・バージョン は有償化です。 こ…

Spring で Hotdeploy その6

再読み込み対象の XML ファイルの登録。 XmlBeanDefinitionReaderCBP の機能を再現します。 /** * Registers each XML bean resource with the SpringSingletonReconfigurer. */ public class XmlBeanDefinitionReaderCBP extends JavassistClassBytecodePro…

Spring で Hotdeploy その5

本命のキャッシュ無効化! org.zeroturnaround.javarebel.integration.spring.InjectionMetadataCacheCBP を移植?します。 public class InjectionMetadataCacheCBP extends JavassistClassBytecodeProcessor { public void process(ClassPool cp, ClassLoa…

Scala で FizzBuzz

頭の体操で、Scala で FizzBuzz 問題をワンライナーで。 こんなのに30分かかってしまった。文法忘れすぎでへこんだ。 package fizzbuzz object FizzBuzz { def main(args : Array[String]) : Unit = { println(List.range(1, 101).map(x => { if (x % 15 =…

Scala 電卓を作る

Spring Hotdeploy で重要なバグが解決できないので、記事が書けません・・・ということで、息抜きに久々に Scala ネタです。 といっても、リンクですが・・・DevelopersWorkにScala で電卓を作る記事がでていました。http://www.ibm.com/developerworks/libr…

SpringでHotdeploy その4

順番が前後してしまいましたが、Hotdeployに関連するクラス一覧をあげておきます。 SpringPlugin クラスをみてもらうとわかるのですが、JavaRabel は以下のクラスに対して Javassist で変更をかけています。 org.springframework.beans.factory.annotation.A…

SpringでHotdeploy その3

それでは、XmlWebApplicationContext を継承した、Hotdeploy対応の HotDeployXmlWebApplicationContext クラスを作っていきます。まずは、以下のXmlBeanDefinitionReaderCBP の移植方法です。 package org.zeroturnaround.javarebel.integration.spring; imp…

SpringでHotdeploy その2

Springは内部で色々とキャッシュを持っているので、Hotdeployするためにはそれを無効化する方法を考えなくてはいけません。と言っても、ゼロから調査するのは大変なので、先人の知恵を拝借。ひがさんのところでも紹介されていた以下のOSSを参考にしました。J…

SpringでHotdeploy その1

Slim3がなかなか出てこないけど、案件は迫ってきているので、仕方なく自分で実装することしました。 備忘録代わりに、何日かやってみた経過を記したいと思う。対象は Spring 2.5.2 以上です。SpringでHotdeployしようとする場合、Classオブジェクトやインス…

Springで単体テスト時にJNDIを利用する

Springで単体テスト時にJNDIを利用する方法をみつけた。bean-springでSpringFrameworkのbeanを JNDIで公開する http://d.hatena.ne.jp/beyondseeker/20080624/1214412177で、思ったのだが、この jndi.properties を単体テスト用リソースフォルダー(maven2だ…