JSONIC 1.2.0 ベータ2 リリース

微妙な変更点多いですが……

JSONIC 1.1からの差分だとこんな感じです。

  • JSON encoder/decoderにて処理中に限りメソッド情報をキャッシュするように変更しました。
  • JSON.encode(or format)およびJSON.decode(or parse)にてJSONHint(type=Serializable.class)を指定した場合にはObjectInputStream/ObjectOutputStreamを使いシリアライズによる変換を行うようにしました。
  • JSON.encode(or format)およびJSON.decode(or parse)にてjava.sql.RowIdの相互変換に対応しました。
  • JSON.encode(or format)にてjava.sql.Array, java.sql.StructJSON化に対応しました(逆方向には対応していません。相互変換が必要な場合はJSONHint(type=Serializable.class)を指定しシリアル化してください)。
  • [非互換] JSON WebServiceにて1.1までは送信されたContent-Typeに関わらずJSONとして処理されていましたが、1.2以降では送信時のContent-Typeが「application/json」の場合のみJSONとして処理されます。
  • [非互換] JSON WebServiceにて各種DI Container用Containerクラスのパッケージをnet.arnx.jsonic.webからnet.arnx.jsonic.web.extensionに変更しました。ご注意ください。
  • [非互換] JSON WebServiceにてWebServiceServletに存在したpreinvoke, invoke, postinvokeの各メソッドは機能をContainerクラスに移動しpreinvoke, findMethod, postinvokeとなりました(引数も変更されています)。
  • [非互換] JSON WebServiceで利用するデフォルトJSONクラスの名前をWebServiceServlet.WebServiceJSONに変更しました。
  • JSON WebServiceにて、HTTP Methodに対応して呼ばれるメソッドをルート単位で変更できるようにしました。
  • JSON WebServiceJSON以外のレスポンスを返せるようHttpServletResponseを自分で操作できるProduceアノテーションを追加しました。
  • JSON WebServiceにてContainerにリクエストの最初と最期にそれぞれ呼ばれるstartメソッドとendメソッドを追加しました。
  • JSON WebServiceにてContainerに一連の実行処理を束ねるexecuteメソッドを追加しました。WebServiceServlet以外からJSON WebSerivceの処理ロジックを呼びたい場合に利用できます。
  • JSON WebServiceにてFilterなどWebServiceServletが呼ばれる前にrequest.getParameter(String name)などが呼ばれると、処理に失敗する問題に対応しました。 なお、Winstoneに限り、request.getParameter(String name)など呼び出し後、request.getInputStream()の呼び出しに失敗する不具合があるため同状況では動作しません。
  • JSON WebServiceのRPCモードにてエラー返却時、nameパラメータにクラスの単純名を設定するように変更しました。
  • ドキュメントのRESTモードの説明にてJSON arrayが送られた場合のパラメータ設定順の記載が誤っていた点を修正しました。クエリ変数、パス変数と記載されていましたが、実際にはパス変数、クエリ変数の順に設定されます。
  • sampleに同梱のprototype.jsjquery.jsをそれぞれ1.6.1と1.3.2に更新しました。
  • AS3版JSONICにて、JSON.encode(or format)時にmine変数を無視するように変更しました。
シリアライズの機能などはわりと便利なのではないかと。