Java

James GoslingがOracle退社

http://nighthacks.com/roller/jag/entry/time_to_move_on これは・・・もう流れは止められないのかも

JavaEE6のCDIのProducer Methodで動的DI

以前からJSR-330(Dependency Injection for Java)を勉強しようと思っていて、何かサンプル的なものがないか探していたのですが・・・結局のところ、JSR-330をいちばん手っ取り早く覚えられるのはJSR-299(Contexts and Dependency Injection for the JavaT…

WebBeansとDependency Injection for Javaって両方JavaEE6に入るのか

全然情報追いかけてなかったから、てっきりこの二つって分裂したままだとばかり思っていたんですけど、いつの間にか協調路線になって、WebBeansがDI for Javaを利用する形で決着が着いていたんですね。で、両方JavaEE6に入るんだとか WebBeansにはいまいち興…

GlassFish V3 b67を使ってJava Persistence 2.0を試す

久々の日記です。 EclipseLinkのJPA2.0の実装具合を最近のGlassFish V3を動かしてチェックしていたのですが、b67になってようやく基本的な機能が実装されたようです。なので、簡単に動かしてみました。動作環境はGlassFishV3-b67、DBはMySQLです。 まずはテ…

Eclipse Galileo

Eclipse Galileoが出ていたのでVistaとMacに入れてみました。 取りあえず、最初に感じたのは、プラグインのインストールがちょっとめんどくさくなりました。以前のバージョンまでは、登録したアップデートサイト毎にカテゴリ分けして表示してくれていたので…

GlassFish V3 Previewで最新のEclipseLinkを触ってみたけど

そろそろJPA2.0の実装とかも進んでるかな?と思って動かしてみましたが・・・ Caused by: javax.persistence.PersistenceException: Not Yet Implemented at org.eclipse.persistence.internal.jpa.EntityManagerImpl.getQueryBuilder(EntityManagerImpl.jav…

Mac版NetBeans 6.5でSubversionを使ってみたが

Eclipse 3.4用のPDTが12月にならないと正式版が出ないので、PHP目当てでNetBeans 6.5を検討していました。 開発用途としては問題ないのですが、Subversionとのやりとりで詰まってしまいました。 まず、「変更を表示」機能を使おうとすると下のエラーが発生し…

DIコンテナ非依存のWebフレームワーク

EJB3.1を調べていて思ったのですが、DIコンテナ非依存を謳っているWebフレームワークは、DIコンテナ毎のFactory実装を作成するよりも、このEJB3.1の手法に対応しておく方がいい気がします。このJNDI経由のコンポーネント取得方法に各種DIコンテナが対応しさ…

EJB3.1のJNDI名

EJB3.1 Public Draftによれば、LocalのEJBに対してグローバルなJNDI名が取り決められました。その規約は java:global[/]// だそうです。 app-nameのデフォルトはearファイルの名前、module-nameのデフォルトは対象EJBが入っているejb-jarファイルの名前、そ…

JavaSEサポートの有償化

ちゃんと調べていなかったのですが、JavaSEの無償サポート期間が3年になったのですね。 http://www.atmarkit.co.jp/ad/sun/0810javaseforb/0810javaseforb.html http://d.hatena.ne.jp/shot6/20081024#1224810464 http://d.hatena.ne.jp/kensir0u/20081023/…

JAX-RS Final Release

JAX-RSのFinal Releaseが出たようです。 http://jcp.org/aboutJava/communityprocess/final/jsr311/index.html 同時に、RIであるJerseyも1.0が出たようですね https://jersey.dev.java.net/ JavaEE6系APIの最初のリリースですね。Jerseyは現時点でEJB3と連携…

Resteasy + Silverlight2 その2

前回はサーバサイドがJBoss5 + Resteasy、クライアントがSilverlight2で単純な一覧取得の例を作ってみました。今回は、加えて登録・更新・削除機能を試してみようと思います。 ・・・しかし、ここで問題発生。どうやらSilverlight2(RC0)のHttpWebRequestは…

Resteasy + Silverlight2

今までJavaのRESTful Webサービス(JAX-RS)の実装としてJerseyを色々調べてきたのですが、このJerseyにはSpringとの連携機能はあるものの、EJB3との連携機能が存在しません。同じJAX-RS実装であるJBossのResteasyを調べてみたところ、こちらはSpringに加え…

SpringSource Announces Enterprise Maintenance Policy

http://www.springsource.com/node/558 http://d.hatena.ne.jp/higayasuo/20080921/1221962998 ひがさんのエントリで知りましたが・・・これは非常に残念な状態ですね。 SpringSource Application Platformが、ユーザ登録しないとダウンロード出来なかったと…

JNDIを使いたい理由

アプリケーションサーバで動かさないこともあるわけだから、JNDIで取得するのはつらいと思うけどね。また、アプリケーションサーバ外で動くJNDIの実装を使うこともできるけど、どのJNDIに接続するのかをパラメータで設定(環境設定)する必要があり、堂々巡り…

Slim3

仕事で勉強会にはいけなかったのですが、資料を見てのちょっとした感想 Configurerの目的がいまひとつピンときませんでした。環境切り分け用であれば、SpringはJNDIを簡単に使えるのでそちらを利用したいところです。特に、本番環境用設定は設定ファイル上に…

HibernateのLAZYロード中にResultSetがcloseされているというエラー

こちらも、仕事で調べたことのメモ。 HibernateをWebSphereのJTA環境で利用していた際、一部のLAZYロード中に「ResultSetが閉じられています」というエラーを出すことがありました。Hibernate・WebSphere側のトレースを追っていった結果、どうやらHibernate…

CommonsLogging:commons-logging.propertiesファイルの優先づけ

仕事で調べたことのメモ。 APサーバ側がCommonsLoggingのcommons-logging.propertiesを使っている場合(WebSphere等)、アプリ側が意図したLogger実装が使えない場合があります。 そんなときは、アプリ側のcommons-logging.propertiesの中にpriorityというプ…

妄想JPA実装

WARM deploy/COOL deployに対応。WARM deploy時には、EntityManagerのメソッドが実行されたり、QueryにJPQLやNamedQueryが渡されたタイミングで初めて該当するEntityだけを定義する。ただし、特定FWには依存しない。 Seasar2のHOT deployに対応。 内部でEnt…

S2EclipseLink-JPA 1.0.0-rc1 リリース

Seasar2とEclipseLinkのJPA機能を連携させるS2EclipseLink-JPAをリリースしました。 V1実装機能の概要は S2.4のJPAサポート機能に対応 S2.4のSMART Deployルールに対応したEntityクラス、XMLファイルの自動登録機能 S2Assert(S2Unit4)対応 Kuina-Dao対応 …

S2TopLink-JPA 1.0.1 リリース

1.0.0からの変更点は次の通りです。 Bug [TOPLINK-1] - EntityReaderで、InheritanceType.JOINEDの継承戦略を使った子クラスの、子クラス側テーブルIDが取得できない [TOPLINK-2] - EntityReaderで、N対1関連のEntityの外部キーカラムの値が取得出来ない ダ…

JPA Hibernateの使いどころ

ブログのキーワード等で色々な人の考えを読んだ限りでは、Hibernateは複雑で使いにくいという人が多いし、JPAは微妙だと言う人が多いと感じています。それは間違いではないと思います。SQLを発行したいという目的に対しては、JPA・Hibernateは複雑すぎますし…

Spring2.5は生産性もかなり良い

http://d.hatena.ne.jp/higayasuo/20080613/1213326209 ひがさんもブログの中で書かれていますが、Spring2.5は生産性を上げる為の取り組みをかなり行っているので、以前のようにXMLヘルになることはありません。設定ファイルだけで見ればSeasar2よりも記述量…

OpenJPA内APIでDiscriminatorColumn情報を取得する方法

DiscriminatorColumnに定義するカラム名を取得するAPIを探しているんですけど、なかなか見つからず・・・ ClassMappingクラス内に如何にも情報持っていそうなフィールドが存在しているんですけど、アクセスしてもデータはありませんでした。 これが見つかれ…

jQuery treeView

http://bassistance.de/jquery-plugins/jquery-plugin-treeview 仕事で使う機会があったのでメモ書き。 jQueryのプラグインで、JavaScriptによる開閉可能なツリー表示を行うライブラリです。開閉時にAjaxで動的に子階層を取得することも可能です。 基本的に…

Hibernate EntityManagerはhbm.xmlを自動登録する

HibernateネイティヴのSQLQueryを使う目的で、SQLをhbm.xmlに書いてpersistence.xmlのmapping-file要素に追加したところ、「NamedQueryが二重に登録されている」というエラーが発生しました。そんなはずはないのに・・・とよく調べてみたところ、どうやらHib…

AspectJのcallとexecution

今までよく意味を知らないままexecutionだけ使ってましたが、アスペクト指向入門を読んでようやく理解出来るようになりました。callで定義すると「対象を呼ぶ側をweaving」し、executionで定義すると、「対象自体をweaving」するんですね。callならjavaの標…

AspectJのお勉強

前回のSpring+AspectJの実験でAspectJの威力を思い知って以来、今更ながら勉強を始めました。どちらにせよ今回の仕事でAOP定義の一部はAspectJを利用しなければならない状況です。だったらこのタイミングで基本的なところを学んでしまおうという魂胆です。 …

Spring+AspectJ+LoadTimeWeaving

前回、HibernateのLAZYロード問題をClassTransformerによるLoadTimeWeavingで解決することが出来ました。実行時にClassデータを拡張するLoadTimeWeavingに関しては、今まではあまり積極的に使おうとは思っていなかったのですが、Hibernateの件によって、Weav…

Hibernate Annotationsの@LazyToOne

現在Hibernateを仕事で使っているのですが、またまたレガシースキーマに対応しなければいけなくなってしまいました。複合主キーは今回@IdClassを使って定義しました(JPQLの記述を少しでもSQLに近づける為)。DBA担当にお願いしてバージョンカラムを定義して…