GWT上でのGoogle Collections Library

現在は、正式に対応しているわけではありません。
結構難しくSVNとか詳しい人向きの作業が発生します。
1.1が出ると言う噂もありますし、それまで待つのも有りかと思います。

GoogleCollections抜きでコーディングしたく人はぜひ試してみてください。

GWTで動くようにする

普通にGWTのProjectを作ります。
GoogleCollection1.0のソースコードをコピーします。
いくつかエラーが出てると思います。

SVNよりコードをcheckout
以下にSVNのアドレスが載っています。そこからチェックアウトします。

チェックアウトしたGC最新版のコードでの動作試していません。私は1.0を使っています。

libにあるjsr305.jarのパスに追加します。
これでimport javax.annotation.Nullableのエラーが消えると思います。

Project上でコンパイル

GWTのsuperソースが、パッケージとして認識されてしまうので、別の場所へ移す必要があります。

Superにコードをコピー
新しくsuper というフォルダーを作ります。
これは、GWTのスーパーコードという仕組みで参照されます。
その中に、gwtの中身をコピーします

これで、 <inherits name='com.google.common.Collect'/> という風にすれば、
GoogleCollection動くようになると思います。

そして、ログにエラーが出るクラスを捨てます。
MapMaker関連を捨てます。


こういう感じの構成になります。
なみに、akjava.comは私のライブラリーなのでGCのGWTで動かすのには関係有りません。



この方法の問題点

どうもEclipseの場合、superフォルダーは他所プロジェクトからは認識されないようです。
今のところGoogleCollectionsを含むGWT Projectを他所から参照する場合は、参照元Projectごとに、superフォルダーをコピーしないといけないようです。

Jarファイルを作成するといいです。

Jar化する

普通にコンパイルして、.classと.javaを含む別のフォルダーにコピーします。
このコピー先に、superの中身をコピーします。
(最初から、Antでコンパイルなどスレば、チェックアウト後動かす必要はなかったですね。)

それをjar化すると動きます。


今後は、ここに動作結果やパフォーマンスなど追記していこうと思います。





Comments