2009-07-01から1ヶ月間の記事一覧

昔ならすぐに書いたシェル

シェルスクリプトの中で、沢山CLASSPATH セットして実行するためには、こう書く。 #!/bin/bash cd /opt/hogehoge export CLASSPATH=$CLASSPATH:. for jarfile in `ls webapp/WEB-INF/lib/ | grep '\.jar$'` do CLASSPATH=$CLASSPATH:webapp/WEB-INF/lib/$jar…

わかりにくいSVN設定

EclipseでSVNを使用していて、わかりにくかったのが、ファイルバージョンを埋め込むキーワード設定を 個々のファイル選択でなく、全体で設定して適用させる方法。 「設定」→「チーム」→「SVN」→「プロパティ構成」 →「自動プロパティ」タブ選択→追加 ファイ…

エポック秒

Perlの仕事を離れて久しく、MySQLの使用で久々にエポック秒 (1970年1月1日0時0分0秒からの秒数)をこねくり回す機会がやってきた。 いや、MySQLだからでない、リプレース前のシステムが Perl だからだ。 MySQL なら、例えば、こんなかんじ、 select UNIX_TI…

テンプレートをInject

Google Guice2.0 を知ってから、今までラッピングして書いてたものを、分解し 組み直しの傾向がある。 Velocityテンプレートを生成インジェクトさせる @Provides を書いてみる。 この色の部分はリテラルで書いているが、 Guice の Module に実装させるものの…

foreach文

Velcocity の foreach 文、よく List<E> を渡して、展開させることをしていた。 じつは、Set を渡して動作をさせたことがなかった。 → 実行してみる。 「なんだ!使えるじゃないか!」さっそく仕事で使うことにする。 では、Map を渡すと、Key と Value のどち</e>…

new 抽象クラス名{}

インターセプタのバインド定義、com.google.inject.AbstractModule を実装時の configureメソッドで記述したインターセプトが使用するリフレクション対象クラスを 指定させる先日のFtpInterceptor は気持ちわるい。 そこで、インターセプタを抽象クラスにし…

インターセプタのバインド

用意したインターセプトのバインドは、難しくない。 先日のFtpInterceptorコンストラクタに対象Class変数を渡す方法はあまりよくないかも知れないが、 とりあえず、以下のとおり。 import com.google.inject.AbstractModule; import com.google.inject.match…

昨日のつづき

今日ここで書きとめておくのは、インターセプタそのもの。 呼び出し側から隠蔽するところ。 残りは、アノテーションの記述とインターセプタにバインド定義するもの。 import java.lang.annotation.Annotation; import java.lang.reflect.Field; import org.a…

ラップする方法を見直す

今まで、org.apache.commons.net.ftp.FTPClient を使用する処理をラップして提供するものを書いていた。 しかしそうすると、FTPClient の操作を呼び出し側では固定の認識になってしまい、与えられたFTP操作しかできない。 そこで、メソッド名、引数の配置…

サブネットマスクの計算

今のJavaプログラマのほとんどがビット演算のコードを書くことはしないだろう。 サブネットマスクより、IPアドレスの妥当性を検査するためのユーティリティクラスを書いてみた。 import java.math.BigInteger; public final class NetAddressUtil{ private…

MySQLを久々に

仕事でMySQLを使うなんて何年ぶりだろう。 不況の波なのか。。。 INSERTした時、オートインクリメント id のを受け取る方法は、 <insert id="insert" parameterClass="パラメータクラス"> INSERT のSQL文 <selectKey keyProperty="id" type="post" resultClass="java.lang.Long"> SELECT LAST_INSERT_ID() AS value </selectKey> </insert>

昔、苦労したFTPClient

かなり昔、苦労したことを思い出す。 まだ、このリンクページは見えている。 https://issues.apache.org/jira/browse/NET-188 FTP で listFiles()した時、閏日付のファイル更新日を持つファイルが存在すると落ちるやつ。 もう、2.0 1.5 でFIX となってる

文字列からEnum

文字列から特定のオブジェクトを取得するのに、Mapもよくある手段だが、 コンパイル段階から決まってる固定のものを取得するのに、enum が便利。 こういう視点を忘れないようにしたいものだ。 valueOf("enumを示す文字列") -> enum値 実際コードもたいしたも…