1.1.x から 2.0.x への移行

バージョン 1.1.x から 2.0.x へ移行する際に注意すべき点を解説します。

互換性のない変更点

J2SE 1.4 から JavaEE 5 への移行

動作環境を J2SE 1.4 (Servlet 2.4 / JSP 2.0) から JavaEE 5 (Servlet 2.5 / JSP 2.1) へ変更しています。 サーブレットコンテナには上記バージョンを満たすもの (Tomcat であれば 6 以降、Jetty であれば 6 以降) を使用してください。

公開クラスとフレームワーク内部クラスの分離

アクションクラスを作成するために参照するクラスとフレームワーク内部で使用するクラスを明確にするためにパッケージを分離しています。 フレームワーク内部で使用するクラスは org.seasar.cubby.internal へ移動しています。

モジュール分割

このバージョンからは機能毎に jar ファイルを分割しています。 以前と同様の機能を実現するには以下の jar ファイルをクラスパスに含めてください。

  • cubby-2.0.x.jar
  • cubby-unit-2.0.x.jar
  • cubby-s2-2.0.x.jar
  • cubby-gson-2.0.x.jar
  • jcl-over-slf4j-x.x.x.jar

詳しくはセットアップの Seasar2 統合の項を参照してください。

JSP から public フィールドへのアクセス

以前のバージョンでは PropertyInterType によって JSP からアクションの public フィールドへアクセスしていましたが、 2.0 からはカスタム ELResolver によって public フィールドへアクセスできるようになっています。 customizer.dicon などから PropertyInterType の設定を除去してください。

app-cubby.dicon の変更

app-cubby.dicon が変更になっています。 詳しくはセットアップの Seasar2 統合の項を参照してください。

JSON シリアライザ、デシリアライザの変更

Json クラスで使用する JSON へのシリアライザを Seasar2 の JSONSerializer クラスから GSON へ変更しています。

以前と同様に org.seasar.framework.JSONSerializer を使用したい場合は、以下のようにしてください。

  1. JSONSerializer による JsonProvider を提供するプラグインを作成
    package com.example;
    
    import org.seasar.cubby.plugin.AbstractPlugin;
    import org.seasar.cubby.spi.JsonProvider;
    import org.seasar.cubby.spi.Provider;
    import org.seasar.framework.util.JSONSerializer;
    
    public class S2JSONSerializerPlugin extends AbstractPlugin {
    
            private JsonProvider jsonProvider = new JsonProvider() {
                    
                    public String toJson(Object o) {
                            return JSONSerializer.serialize(o);
                    }
    
            };
    
            public <S extends Provider> S getProvider(Class<S> service) {
                    if (JsonProvider.class.equals(service)) {
                            return service.cast(jsonProvider);
                    }
                    return null;
            }
    
    }
  2. META-INF/services に org.seasar.cubby.plugin.Plugin ファイルを作成して上記クラスを登録
    com.example.S2JSONSerializerPlugin