R7.10で変更された仕様の説明ならびに、変更を元に戻す方法を説明します。

R7.10で、画面レイアウトにおいて、グループの表示方法が未指定の場合の扱いが変わりました。[詳細...]

R7.10以前 R7.10以後
最初のレイアウト名は、グループの表示方法の指定にかかわらず四角で囲む。 最初のレイアウト名も、グループの表示方法の指定が有効となる。

この変更により、自動生成される JSP ファイルが変わります。

旧動作に戻す

旧動作に戻す方法を説明します。

  1. wagbydesigner/webapps/wagbydesigner/WEB-INF/classes/gencompatibility.properties をテキストエディタで開きます。
  2. 次のエントリを見つけます。
    #jp.jasminesoft.jfc.gen.JspBodyGenerator_show.displayHiddenLayoutAsEmptyFrame=true
    
  3. この行の先頭の # を除きます。
    jp.jasminesoft.jfc.gen.JspBodyGenerator_show.displayHiddenLayoutAsEmptyFrame=true
    
  4. このファイルを保存します。
  5. フルビルドを行います。

R7.10より、変更履歴機能におけるファイル型項目は、実ファイル名のみが変更履歴ログに記録されるように仕様が変更されました。これを旧方式(upload_dirを起点とする相対パス表記)に戻す方法を説明します。

  1. ビルドした Wagby アプリケーションが動作していた場合、いったん停止させます。
  2. ビルドした wagbyapp フォルダ内にある webapps/wagby/WEB-INF/classes/jfcbase.properties ファイルをテキストエディタで開きます。
  3. 次の行をコメントアウトします。
    jp.jasminesoft.jfc.app.PresentationPHelper.diff.getFileNameWithoutDirectory=true
    具体的には、先頭にセミコロン (;) を付与します。
    ;jp.jasminesoft.jfc.app.PresentationPHelper.diff.getFileNameWithoutDirectory=true
  4. ファイルを保存して Wagby アプリケーションを起動します。変更履歴の動作を確認してください。

動作確認後、同じ変更を wagbydesigner フォルダ内の bin/webpage/WEB-INF/src/jfcbase.properties にも適用します。次回以降のビルド処理で反映されるようになります。

Wagby バージョンアップの都度、同じ変更処理を行なってください。

Wagbyではディメンジョンが二つの場合、一つ目のディメンジョン単位で小集計する機能があります。これまではXSLTのcountとsum関数を使った実装を行なっていましたが、この処理は集計対象データが増えるとパフォーマンスが劣化する問題がありました。

R7.10から、XSLTではなく内部で事前に計算を行うようにしました。これによってパフォーマンスが向上しています。

旧動作に戻す

旧動作に戻す方法を説明します。

  1. wagbydesigner/webapps/wagbydesigner/WEB-INF/classes/gencompatibility.properties をテキストエディタで開きます。
  2. 次のエントリを見つけます。
    jp.jasminesoft.jfc.gen.XslGenerator_showTotal2.useCache=true
    
  3. この行の先頭に # を付与します。
    #jp.jasminesoft.jfc.gen.XslGenerator_showTotal2.useCache=true
    
  4. このファイルを保存します。
  5. フルビルドを行います。

HSQLDBのアップデートによる影響

HSQLDB を 2.0.0 から 2.3.4 へアップデートしています。その影響で SELECT COUNT() の戻り値が、これまでは Integer でしたが、これが BigInteger へ変更されています。

いずれも java.lang.Number インタフェースの実装クラスですが、JavaScript での厳密等価演算子(===)利用時には注意が必要となります。

厳密等価演算子では同じ 0 という値を持っていても Integer と BigInteger は型が異なるため等価という判定とはなりません。 スクリプト内に記述した数値は Nashorn が自動的に java.lang.Double、java.lang.Long または java.lang.Integer オブジェクトとして解釈する仕様です。 https://docs.oracle.com/javase/jp/8/docs/technotes/guides/scripting/nashorn/api.html#sthref22

このため、スクリプトに次のように記載したコードは影響があります。

var recordCount = session.createSQLQuery(
   "SELECT COUNT(*) FROM \"model1\" WHERE \"pkey\" = " + pkey).uniqueResult();
if ( recordCount === 0 ) {
...

ここで「if ( recordCount === 0 ) { 」の「0」は Nashorn 側で Integer と解釈されたため、HSQLDB 2.0.0 では SELECT COUNT(*) の戻り値が同じ Integer となり、厳密等価演算子でうまく動作していましたが、HSQLDB 2.3.4 では Integer と BigInteger との比較となり等価と判定されなくなります。

対応方法

数字との比較では、厳密等価演算子を使わないことで回避できます。

if ( recordCount == 0 ) {

BaseActionの廃止

BaseActionクラスは R7.10 で廃止されました。このクラスは Struts に依存していたためです。カスタマイズコードで直接、BaseAction を利用していた場合は、次の手順に従って書き換えてください。

BaseAction.getCsvEncoding()

JfcConfigクラスが代替します。次のコードをご利用ください。

p.appctx.getBean(jp.jasminesoft.jfc.service.JfcConfig.class).getCsvEncoding()

BaseAction.getJspEncoding()

JfcConfigクラスが代替します。次のコードをご利用ください。

p.appctx.getBean(jp.jasminesoft.jfc.service.JfcConfig.class).getJspEncoding()

BaseAction.isDeniedNullForwardRequestName

BaseAction に用意されていた定数は BaseController クラスが管理します。

jp.jasminesoft.jfc.controller.BaseController.isDeniedNullForwardRequestName

ジョブ定義の変更

「バッチ処理 > 自作クラスをジョブスケジューラに登録する」を行っている場合、applicationContext に登録する bean 定義ファイルに変更が生じます。Spring Framework のバージョンが 3 から 4 へアップデートされたため、org.springframework.scheduling.quartz.JobDetailBean クラスが廃止されました。代わりにorg.springframework.scheduling.quartz.JobDetailFactoryBean クラスを指定するようにしてください。[詳細...]