SeasarWiki
Seasar2の互換性に関する情報†
この文書では、既存のSeasar2(s2-framework、s2-extension、s2-tiger)を
アップグレードする際の注意点を記します。
バージョンAからバージョンBにアップグレードする場合には、バージョン間に
記載されている注意点に従って作業を行なえば良いようになっています。
重要な変更点†
- 同梱する OGNL のバージョンを 2.6.9-patch-20070908 から 2.6.9-patch-20090427 へ更新しました.
- 必須ではありません.Seasar2.4.36 は従来バンドルしていた OGNL 2.6.9-patch-20070908 との組み合わせでも動作します.
- OGNL 2.6.9-patch-20090427 の変更内容はこちら
- HOT deploy を使用する場合の web.xml の設定について.
- HotdeployFilter は S2ContainerFilter より先に適用されなくてはなりません.web.xml の filter-mapping の並びは hotdeployFilter を s2containerFilter より先に記述してください.
<filter-mapping>
<filter-name>hotdeployfilter</filter-name>
<url-pattern>...</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>s2filter</filter-name>
<url-pattern>...</url-pattern>
</filter-mapping>
ブラウザから HOT deploy モードを切り替えられるようにするには,S2ContainerServlet またはそのサブクラスの servlet-mapping/url-pattern を次のようにしてください.
<servlet-mapping>
<servlet-name>s2container</servlet-name>
<url-pattern>/s2container/*</url-pattern>
</servlet-mapping>
HttpServletLister等,HOT deploy状態でない環境で HttpSession#getAttribute(String) を呼び出すと,期待したオブジェクトを取得できない場合があります (SerializedObjectHolder にラップされている).
これを回避するには,以下のようにしてください.
public void sessionDestroyed(HttpSessionEvent event) {
HttpSession session = event.getSession();
if (HotdeployUtil.isHotdeploy()) {
session = new HotdeployHttpSession(null, session);
}
...
Seasar2.4.36 からは以下のように出来ます.
public void sessionDestroyed(HttpSessionEvent event) {
HttpSession session = event.getSession();
if (HotdeployUtil.isHotdeploy()) {
session = new HotdeployHttpSession(session);
}
...
S2JDBC-Gen†
- 自動生成されたことを示すために、S2JDBC-Genによって作成されたクラスにはjavax.annotation.Generatedアノテーションを付与するようになりました。
Generatedクラスは、S2-Tigerの配布ファイルに同梱されているgeronimo-annotation_1.0_spec-1.0.jarに含まれます。
もしgeronimo-annotation_1.0_spec-1.0.jarをクラスパスに含めていないのであれば、含めてください。
S2JDBC-Gen†
- Gen-DdlタスクでOracleデータベース用のDDLを生成する場合ですが、これまでJavaのInteger型とShort型のプロパティに対応するカラムの精度はそれぞれ10と5の固定でした。しかし、今回からはその固定値を止め、@Columnのprecision要素に指定された値を利用するようになりました。
例えば、以前のバージョンで次のようにprecisionを明示していない場合、新しいバージョンではデフォルトの精度である19が使用されます。
@Column(nullable = true, unique = false)
public Integer aaa;
これまで通り10の精度としてDDLを生成したい場合は次のようにprecisionを明示してください。
@Column(nullable = true, unique = false, precision = 10)
public Integer aaa;
- Gen-Entityタスクで、日付型カラムに対応するプロパティの型をjava.sql.Date、java.sql.Time、java.sql.Timestampのいずれかとして出力するようになりました。以前のバージョンと同様@Temporalつきのjava.util.Date型として出力したい場合は、Gen-EntityタスクのuseTemporalType属性に"true"を指定してください。
<gen-entity
rootPackageName="examples"
useTemporalType="true"
classpathRef="classpath"
/>
2.4.32 からの重要な変更はありません.
2.4.31 からの重要な変更はありません.
- S2JDBC および S2BeanUtils のメソッドの引数型が一部 String から CharSequence に変更されました.S2JDBC または S2BeanUtils を使用している場合は再コンパイルしてください.
- S2AbstractService の select(),selectBySqlFile(),updateBySqlFile() メソッドの可視性を public から protected に変更しました.サブクラス以外から使用する場合は S2AbstractService を継承したクラス (AbstractService) でオーバーライドして public にしてください.
- S2JDBC のメソッドの引数型が一部 String から CharSequence に変更されました.S2JDBC を使用している場合は再コンパイルしてください.
- スキーマ情報テーブル(デフォルトではSCHEMA_INFO)のdrop/createのDDLを出力しないようにしました。既存のDDLファイルに含まれるスキーマ情報テーブルに関するdrop/create文とinsert文は削除してください。drop/createやinsertに相当する処理はプログラム内で自動で実行されるようになりました。
2.4.28 からの重要な変更はありません.
gen-entityタスクのversionColumnName属性の名前をversionColumnNamePatternに変更しました。ビルドファイルでversionColumnName属性を明示的に使用している場合は、修正してください。versionColumnNamePattern属性には正規表現を指定できます。
バージョン2.4.28†
2.4.27 からの重要な変更はありません.
バージョン2.4.27†
S2JDBC で,エンティティに @Enumerated が指定されていない Enum 型のプロパティを使った場合,2.4.26 以前は名前 (Enum#name() の戻り値) で扱われていましたが,2.4.27 からは JPA 仕様に合わせて序数 (Enum#ordinal() の戻り値) で扱うようになりました.
2.4.26 以前と同様,名前 (Enum#name() の戻り値) で扱うには,s2jdbc.dicon に次のように記述してください.
<component name="jdbcManager" class="org.seasar.extension.jdbc.manager.JdbcManagerImpl">
・・・
<initMethod>
@org.seasar.extension.jdbc.types.ValueTypes@setEnumDefaultValueType(
@org.seasar.extension.jdbc.types.EnumType@class)
</initMethod>
</component>
バージョン2.4.26†
2.4.25 からの重要な変更はありません.
バージョン2.4.25†
2.4.24 からの重要な変更はありません.
バージョン2.4.24†
2.4.23 からの重要な変更はありません.
バージョン2.4.23†
重要な変更点†
同梱する JUnit のバージョンを 4.3.1 から 4.4 へ更新しました。
S2-Tiger†
s2-tigerを使用している場合:
- S2JUnit4を利用している場合:
- junit-4.3.1.jar を junit-4.4.jar に置き換えてください。
バージョン2.4.22†
2.4.21 からの重要な変更はありません.
バージョン2.4.21†
2.4.20 からの重要な変更はありません.
バージョン2.4.20†
2.4.19 からの重要な変更はありません.
バージョン2.4.19†
2.4.18 からの重要な変更はありません.
バージョン2.4.18†
2.4.18-rc4 からの重要な変更はありません.
バージョン2.3.23†
2.3.23-rc1 からの重要な変更はありません.
バージョン2.4.18-rc4†
重要な変更点†
- S2JTA において,Synchronization#afterCompletion(int) メソッドは完全にトランザクションコンテキスト外で呼び出されるようになりました (JTA の仕様です).afterCompletion() 内で TransactionManager#getTransaction() を呼び出すと,従来は完了した Transaction を取得できましたが,rc4 からは null が返されます.
バージョン2.4.18-rc3†
重要な変更点†
- S2JDBC において,AutoSelect クラスの join(String)/join(String, boolean) メソッドの名前が leftOuterJoin(String)/leftOuterJoin(String, boolean) メソッドに変更されました.
バージョン2.4.18-rc2†
重要な変更点†
- S2Dxo において,従来は変換元と変換先が同じクラスの場合は,変換元のインスタンスをそのまま変換先として使用していましたが,新しいインスタンスを作成するようになりました.従来と同様の振る舞いが必要な場合は,dxo-builtin-converters.dicon を dxo-builtin-converters-shallow.dicon に差し替えて使用してください.(差し替えの方法).
バージョン2.4.18-rc1†
重要な変更点†
- 同梱する OGNL のバージョンを 2.6.9-patch-20070624 から 2.6.9-patch-20070908 へ更新しました.
- JTA の定義ファイル (jta.dicon) が変更になりました.jta.dicon をカスタマイズしている場合は下記のS2-Extensionの項を参照してください.
- S2Dxo の組み込みコンバータを dxo-builtin-converters.dicon および dxo-tiger-converters.dicon で登録するようにしました.dxo.dicon をカスタマイズしている場合は dxo-builtin-converters.dicon および dxo-tiger-converters.dicon (S2-Tiger を使用している場合) をインクルードしてください.
- Seasar2.4.18-rc1 は S2Dao 1.0.46 以前との組み合わせでは動作しません.Seasar2.4.18-rc1 は S2Dao 1.0.47-RC1 以降との組み合わせでご利用ください.
- Seasar2.4.18-rc1 は Kuina-Dao 1.0.0 以前,S2Hibernate-JPA 1.0.0a 以前,S2TopLink-JPA 1.0.0-RC3 以前では動作しません.Seasar2.4.18-rc1 は Kuina-Dao 1.0.0-rc1,S2Hibernate-JPA 1.0.1-rc1,S2TopLink-JPA 1.0.0-rc4 との組み合わせでご利用ください.
S2-Framework†
- ognl-2.6.9-patch-20070624.jar を ognl-2.6.9-patch-20070908.jar に置き換えてください.
S2-Extension†
- jta.dicon をカスタマイズしている場合:
- 以下のドキュメントに記載されている環境の場合は s2-extension-2.4.18.jar に含まれる dicon ファイルを使用してください.
- http://s2container.seasar.org/2.4/ja/transaction.html
- その他の環境で TransactionManager を利用可能な場合:
- org.seasar.extension.tx.control.TransactionManagerControl のコンポーネント定義を jta.dicon に追加してください.
- その他の環境で TransactionManager を利用できない場合:
- org.seasar.extension.tx.control.UserTransactionControl のコンポーネント定義を jta.dicon に追加してください.
バージョン2.3.23-rc1†
重要な変更点†
- Seasar2.3.23-rc1 は S2Dao 1.0.46 以前との組み合わせでは動作しません.Seasar2.3.23-rc1 は S2Dao 1.0.47-RC1 以降との組み合わせでご利用ください.
バージョン2.4.17†
重要な変更点†
- Seasar2.4.17 は S2Dao 1.0.45 以前との組み合わせでは動作しません.Seasar2.4.17 は S2Dao 1.0.46 以降との組み合わせでご利用ください.
バージョン2.3.22†
重要な変更はありません.
バージョン2.4.16†
重要な変更はありません.
バージョン2.4.15†
重要な変更はありません.
バージョン2.3.21†
重要な変更はありません.
バージョン2.4.14†
重要な変更点†
- J2SE1.4 で XInclude がサポートされなくなりました.XInclude は Java5 以降でかつ XInclude 対応の XML パーザとの組み合わせでのみ利用可能です.
- 同梱する OGNL のバージョンを 2.6.7 から 2.6.9-patch-20070624 へ更新しました.
- 同梱する POI のバージョンを 2.5.1 から 3.0 へ更新しました.
S2-Framework†
- ognl-2.6.7.jar を ognl-2.6.9-patch-20070624.jar に置き換えてください.
S2-Extension†
s2-extensionを使用している場合:
- XlsReader/XlsWriter機能を利用している場合:
- poi-2.5.1-final-20040804.jar を poi-3.0-FINAL.jar に置き換えてください.
バージョン2.3.20†
重要な変更点†
- 同梱する OGNL のバージョンを 2.6.7 から 2.6.9-patch-20070624 へ更新しました.
- 同梱する POI のバージョンを 2.5.1 から 3.0 へ更新しました.
S2-Framework†
- ognl-2.6.7.jar を ognl-2.6.9-patch-20070624.jar に置き換えてください.
S2-Extension†
s2-extensionを使用している場合:
- XlsReader/XlsWriter機能を利用している場合:
- poi-2.5.1-final-20040804.jar を poi-3.0-FINAL.jar に置き換えてください.
バージョン2.4.13†
重要な変更点†
- 2.4.13 rc1 で追加された org.seasar.extension.dbsession パッケージを org.seasar.extension.httpsession パッケージに変更しました.
S2-Extension†
s2-extensionを使用している場合:
- DBSession機能を利用している場合:
- dbsession.dicon を配布ファイルの seasar2/resources に含まれている最新のものに変更してください.
バージョン2.4.13 rc1†
重要な変更点†
- Seasar2.4.12 で,環境によっては EJB3/JPA の使用に関わらず必要となった JavaEE5 関連のJar ファイルについて,EJB3/JPA を使用しない場合はそれらの Jar ファイルが無くても動作するようになりました.
バージョン2.4.12†
重要な変更点†
- Seasar2.4.11 まで S2-Tiger の Jar ファイルに含まれていたJavaEE5 標準のクラスについて,S2-Tiger で持つのではなく,Geronimo の Jar ファイルを利用するように変更しています.このため,S2-Tiger を利用するには S2-Tiger の配布ファイルに含まれている Geronimo の Jar ファイルをクラスパスに追加する必要があります.(参考:[seasar-user:7142])
- 同梱する JUnit4 のバージョンを 4.1 から 4.3.1 へ更新しました.
S2-Tiger†
s2-tigerを使用している場合:(2.4.13 以降にバージョンアップする場合で,EJBやJPAを利用しない場合,項番 1〜3 は読み飛ばしてください)
- TomcatまたはJ2EE1.4対応のAPサーバを使っている場合:
- EJB3やJPAの利用の有無に関わらず
- geronimo-annotation_1.0_spec-1.0.jarを追加(以前のバージョンのものがあれば削除しておくこと)
- geronimo-ejb_3.0_spec-1.0.jarを追加(以前のバージョンのものがあれば削除しておくこと)
- geronimo-jpa_3.0_spec-1.0.jarを追加(以前のバージョンのものがあれば削除しておくこと)
- EJB3を使用する場合は,上記に加えて
- geronimo-interceptor_1.0_spec-1.0.jarを追加(以前のバージョンのものがあれば削除しておくこと)
- Tomcat6を使っている場合:
- EJB3やJPAの利用の有無に関わらず
- geronimo-ejb_3.0_spec-1.0.jarを追加(以前のバージョンのものがあれば削除しておくこと)
- geronimo-jpa_3.0_spec-1.0.jarを追加(以前のバージョンのものがあれば削除しておくこと)
- EJB3を使用する場合は,上記に加えて
- geronimo-interceptor_1.0_spec-1.0.jarを追加(以前のバージョンのものがあれば削除しておくこと)
- スタンドアロン環境の場合:
- EJB3やJPAの利用の有無に関わらず
- geronimo-annotation_1.0_spec-1.0.jarを追加(以前のバージョンのものがあれば削除しておくこと)
- geronimo-ejb_3.0_spec-1.0.jarを追加(以前のバージョンのものがあれば削除しておくこと)
- geronimo-jpa_3.0_spec-1.0.jarを追加(以前のバージョンのものがあれば削除しておくこと)
- EJB3を使用する場合は,上記に加えて
- geronimo-interceptor_1.0_spec-1.0.jarを追加(以前のバージョンのものがあれば削除しておくこと)
- S2Unit4を使用する場合:
- junit4.1.jarをjunit4.3.1.jarに置き換える
詳細は以下のドキュメントを参照してください.
バージョン2.4.11†
重要な変更点†
- 使用するJTA のバージョンを 1.0.1B から 1.1へ更新しました.
S2-Extension†
s2-extensionを使用している場合:
- TomcatまたはJ2EE1.4対応のAPサーバを利用している場合:
- geronimo-jta_1.1_spec-1.0.jarを追加(以前のバージョンのものがあれば削除しておくこと)
バージョン2.4.10†
重要な変更はありません.
バージョン2.4.9†
重要な変更はありません.
バージョン2.4.8†
重要な変更はありません.
バージョン2.4.7†
重要な変更点†
- 同梱する Javassist のバージョンを 3.3GA から 3.4GA に更新しました.
S2-Framework†
- javassist-3.3.ga.jar を javassist-3.4.ga.jar に置き換える
バージョン2.4.6†
重要な変更点†
- 同梱する JUnit4 のバージョンを 4.0 から 4.1 へ更新しました.
S2-Tiger†
- S2Unit4を使用する場合:
- junit4.0.jarをjunit4.1.jarに置き換える
バージョン2.4.5†
(これ以前の情報はまだありません)