argius note

プログラミング関連

Java

Cayenne(3.0.2)でUnitTestするときにテスト用のデータソースを設定する

Apache CayenneでUnitテストを実行する際のガイドが下記ページにあります。 Apache Cayenne » Running Unit Tests ここで、UnitTestのときにデータソースを切り替える方法が書かれていて、"-DcayenneTestConnection"もしくは"-Dcayenne.test.connection"を使…

(Apache) Wicket+CayenneでWebアプリ

ApacheのWicketとCayenneの組み合わせでWebアプリを作ってみることにします。 導入した際のまとめです。 (2011-12-17)訂正および追記しました。(朱色の箇所。)

MacOSX版 Hudson CI → Jenkins CI 実施しました

2011-02-19の日記に書いていた、Jenkinsへのマイグレーションを行いました。 思ったよりは少しだけ時間がかかってしまいましたが、無事移行できました。

NIO2とWin7とシンボリックリンク

2011-09-18にJava SE 7 (4) - "NIO.2" ファイルシステム関連APIの増強のエントリ中、Files.createSymbolicLinkの箇所で、 WindowsXPではシンボリックリンクはUnsupportedOperationExceptionがthrowされます。(いい加減サポートされてくれないでしょうか。)…

ミニゲーム?「迷いの森」

今朝は早くに目が覚めたので、珍しくちょっと勉強なんかしたりして、ちょっとだけ早く家を出ました。 おとといの暑さとは打って変わって、秋らしい風の冷たさを感じつつ、気分が良いので鼻歌など鳴らしながら駅への道を歩いていると、ふと思いつきました。 …

Java SE 7 - 目次

Java SE 7 の記事の目次です。 Java SE 7 (1) - 文字列switchのからくり Java SE 7 (2) - リソース自動closeの仕組み Java SE 7 (3) - 異なる系統の例外をまとめてcatchのあらまし Java SE 7 (4) - "NIO.2" ファイルシステム関連APIの増強 Java SE 7 (5) - j…

Java SE 7 (6) - 総括と補足

ここまで、2011-07-28に正式リリースされたJava SE 7について、2ヶ月遅れになりましたが、まとめてきました。 最後に、Java Platform Standard Edition 7 Documentationの"What's New in Documentation"を元に整理しておきます。項目リストはそのまま使って…

Java SE 7 (5) - java.langとjava.utilへの追加

主要なパッケージである、java.langとjava.utilの新規クラス/インタフェースと既存クラスの追加メソッドについて簡単にまとめます。 全部ではありません。

Java SE 7 (4) - "NIO.2" ファイルシステム関連APIの増強

残りの言語仕様変更は「その他の雑多な変更」に含めるとして、次はAPIのほうを見ていきましょう。

Java SE 7 (3) - 異なる系統の例外をまとめてcatchのあらまし

バイトコードに影響する言語仕様の3つ目、"Catching Multiple Exception Types and Rethrowing Exceptions with Improved Type Checking"です。 これは、言語仕様変更としては不可分のものなのでしょう。 ですが、使う側としては別々に見ていった方が分かり…

Java SE 7 (2) - リソース自動closeの仕組み

文字列switchに続いて、バイトコードに影響する言語仕様の2つ目、"The try-with-resources Statement"です。 これまでは下のように書いていたものが、 InputStream is = new FileInputStream("a.txt"); try { // TODO } finally { is.close(); } こう書ける…

Java SE 7 (1) - 文字列switchのからくり

遅れ馳せ乍ら、Java7について自分なりにまとめてみます。最初は概論から入るのが定石でありましょうが、現状は何時投稿できるか分からない状況ですので、小出しにしていくことにします。

JOptionPane.showInputDialogでキャンセルしたのに

JOptionPane.showInputDialogは、キャンセルすると普通はnullが返されます。 ところが、リストをダブルクリックしてキャンセルすると、なぜか値が選択されたことになってしまいます。 正確には、入力をJList形式(Object[]で良い)でプルダウンでなくリスト状…

Hudson CI → Jenkins CI

java.netからHudsonを連れて出て行こうとしたら、「まて、おまえは出て行くことは許さん」と言われ、泣く泣くクローンの子をJenkinsとして育てていくことにしたのでした。 先日、その子がやっと生まれました。 で、移行が面倒なんですけど。提供されているマ…

GlassFish v3 と Tomcat 5.5 でディレクトリに関する共通のプロパティ

GlassFish v3 と Tomcat 5.5 でコンテナのルートディレクトリを調べたい場合には、"catalina.home"もしくは"catalina.base"で取得できます。

GlassFish v3 データソースの設定(PostgreSQLの例)

ごく簡単に説明。lang=enの環境で試しているので、日本語は間違っているかも。なお、JDBC接続のパラメータは URL=jdbc:postgresql://localhost:5432:defaultdb user=user password=passwordとします。 起動中のドメイン(%glassfish%/domains/domain1/)のli…

即興:ストップウォッチ改

2年ほど前のエントリで、Java1.5で作ったGUIストップウォッチ。 今、見直してみると、けっこう無駄が多いので、書き直してみました。 ただ書き直しではつまらないので"Stay On Top(常に手前に表示)"機能を追加。時間のパネルを右クリックするとチェックボッ…

JTreeって何でこんなに使いづらいのか

只の愚痴です。引数無しのコンストラクタから始まって、ノード追加とか、イベントリスナとか、何とも歯痒いですね。

RSS・Atomフィードのためのライブラリ"ROME"

RSSリーダを作るには、 フィードデータ(XML)をダウンロード フィードを解析(パース) 更新日時のチェック などの処理を書けばできそう。でも、RSSとAtomはバージョンが何種類もあるので、それらの仕様を全て調べるのはちょっと大変。 そこで、"ROME"を使いま…

-XdockパラメータでDockの表示を設定

MacOSXでJavaのGUIアプリケーションを起動すると、デフォルトでは Dockアプリケーション名がmainクラスのFQCN アイコンはデフォルト(Javaのドキュメント?) になります。 これを変えたい場合は、-Xdockパラメータを使います。 $ java -Xdock:name="Stew" -X…

MessageFormatで日時フォーマット

非常に今更で恐縮ですが、これは良い方法でしょうか? 少なくとも、SimpleDecimalFormatを直接書かなくて良いという点において。 String format = "{0,time,yyyy-MM-dd HH:mm:ss.SSS} ({1}) {2}"; System.out.println(MessageFormat.format(format, new Date…

NailGun - 「めちゃくちゃ起動がはやい」

日本語の記事が少なかったからでしょうか、高速起動を調べていたときにはすでにあったはずなのに、見つけられなかったなんて。やっぱり英語の記事もちゃんと読まないとダメですね。

NetBeans6.8でプロファイラを使ったので感想

プロファイラを使うために最新版の6.8JavaSE版をインストールしました。前回は正式版がリリースされたばかりの6.0をインストールしてちょっと使ったきりでした。 プロファイラの使い方は、メニューの「プロファイラ」から「手プロジェクトをプロファイル」ま…

配列のClass型をどう書けば良いか忘れました

リフレクションのコードで、Class.getDeclaredMethod()に渡すClassの配列で、メソッドの引数に配列が含まれている場合、その型を表すClassはどうやって指定すれば良いでしょうか。 良く考えてみると、これを実際に使ったことが全くと言う程なかったようです…

OracleJDBCのgetObjectでDATE型をjava.sql.Timestampとして取得

OracleのDATE型は時刻情報を保持しますが、ResultSet.getObject()で取得すると、(たぶん9i,10gでは)java.sql.Dateにマッピングされ、時刻が切り捨てられてしまいます。ResultSet.getTimestamp()なら日時を取得できますので、これを使えるのであればあっさ…

java.sql.Statement.setMaxRows(int)が存在した

あれ? Java1.4からありますね。見落としていました...

GlassFishセットアップ+JavaDB起動

プロプラな製品とTomcat、ちょっとだけJBoss、のアプリケーションサーバを使っていて、特に必要性を感じなかったので、インストールはされていたものの全く触っていなかったGlassFish。確かNetBeansをインストールしたときに一緒にインストールされたんだと…

参照可能なクラスのリストを取得したい

「Java1.4&ライブラリ非依存」という条件で。そうでなければ、「Java クラス 検索 OR 一覧」あたりで検索するといくつか見つかります。BeanShellを使うのは、試していませんが楽そうですね。 Java1.4で大きなライブラリを使いたくない場合は、こんなのは如…

自プロジェクト名の規則(大文字小文字)

何だか座りが悪いです。 製品名 プロジェクト名 jar名 規則 Stew Stew stew.jar (1)(2) Frui Frui frui.jar (1)(2) Calendar Calendar argius-calendar.jar (1)(2) armadillo Armadillo armadillo.jar (2) 製品名に準じる(1) 常に大文字で始める(2) 常に小文…

Java1.5のJDKが壊れた

以前は1.4が壊れたりしましたが、今度は1.5です。 どうやら"classes.rsa"と"rt.jar"がおかしくなったようです。サイズは変わっていませんでしたが、ハッシュ値(MD5)が違っていました。 これは何なのでしょう。