who is using scalaxb?

Here's a list of users who are using scalaxb, or have at some point.

Banno

Non-blocking SOAP feature was also contributed by @hoff2 from Banno.

Klout

Scoozie: Creating Big Data Workflows at Klout

Additionally, we would like to provide a shout-out to a great open-source project, scalaxb, an sbt plugin that takes .xsd files and creates matching Scala case classes. Scoozie populates these case classes, which are then automatically converted to XML by scalaxb. This plugin saved a lot of headache in the actual process of conversion to XML.

Novus

Dispatch forms the foundation of an in-house SOAP client at Novus together with scalaxb. Thanks to these tools our standard response to “Can you do SOAP?” is “Bring it on!” instead of “Ew, what’s this on my shoe?!”

VMWare vCloud

Using Salat with scalaxb generated classes:

scalaxb generates Scala case classes from XSDs and generates supporting helpers for going back and forth from case class to XML. Salat provides an interface to MongoDB based on case classes.

There are a couple hurdles, but both project owners have taken our suggestions seriously, and have smoothed out quite a few bumps.

scalaxb 1.4.0

SOAP/REST 関連の変更点

  • DispatchHttpClientsrequestTimeoutconnectionTimeout を追加した。 #304 by @eed3si9n
  • --no-dispatch-client オプション (generateDispatchClient := false) を追加した。 #322 by @liff
  • Dispatch の Http(request > as.scalaxb[A]) をサポートするための --dispatch-as オプション (generateDispatchAs := true) を追加した。 #332 by @arkadius

その他の機能改善点

  • 不明な XML 要素や順番違いを無視するための --ignore-unknown オプション (ignoreUnknown := true) を追加した。 #310 by @jet-black
  • 可変長引数のかわりに Seq を使う --no-varargs オプションを追加した。 #292/#309 by @lbruand and @Erwan56
  • 列挙の値が重複している場合の処理を改善した。 #308 by @donderom
  • 設定値を case class の列にリファクタリングした。 #342 by @eed3si9n

バグフィックス

  • 名前空間の重複を修正した。 #310/#291/#298 by @jet-black
  • CompilerMatcher の Windows でのファイル名やパス処理を修正した。 #307 by @joescii

コンパイラの警告

scalaxb 1.4.0 によって生成されるコードから警告が出ないように修正が加えられた。

  • 生成されるコードに SIP-18 インポートを追加した。 #294 by @carl297r
  • 生成されるコード内の "adapting argument list" およびその他のコンパイラ警告を除去した。 #321 by @liff
  • scalaxb 本体のコードからコンパイラ警告を除去した。 #335 by @justjoheinz
  • 生成されるコード内の後置記法を除去した。
  • 統合テスト時に -Xfatal-warnings オプションを追加した。 #343 by @eed3si9n

コントリビューター

バグ報告や pull request によって scalaxb の改善にお手伝いしていただいた皆さんにお礼を言いたい。

git shortlog -sn --no-merges 1.3.0..release/1.4.0 によると今回のリリースでは 10人にコントリビュートしてもらった (敬称略):
Eugene Yokota (@eed3si9n), @jet-black, Olli Helenius (@liff), Lucas Bruand (@lbruand), Markus Klink (@justjoheinz), Carl Livermore (@carl297r), Arek Burdach (@arkadius), Joe Barnes (@joescii), @Erwan56, Roman Parykin (@donderom)

scalaxb 1.3.0

互換性の無い変更点

  • SOAP RPC/encoded のサポートの廃止。
  • SOAP の faultactorString に変更。 #268 by @rubbish
  • >22 case classes をデフォルトで生成するようにした。 #280
  • 全ての属性を取り扱う単一の attributes フィールドでデフォルトで生成するようにした。 #286

SOAP 関連の変更点

  • ヘッダの message parts の取り扱いを修正した。 #285 by @plaflamme
  • nillable な fault の取り扱いを修正した。 #284
  • http のインスタンスを lazy に変更した。 #279 by @rubbish
  • fault の toString を実装した。 #278

case class >22 および属性に関する変更

scalaxb 1.3.0 より、デフォルトで >22 な case class が生成されるようになる。さらに、全ての属性は attribute フィールドにまとめられる。

従来の振る舞いに戻したい場合は以下の設定を行う:

contentsSizeLimit in (Compile, scalaxb) := 20

namedAttributes in (Compile, scalaxb) := true

これに関連して、1.3.0 は属性のデフォルト値の取り扱いを修正した。 #288

scalaxb と Scala 2.11

scalaxb 1.2.0 より Scala 2.11.x をサポートするようになった。Scala 2.11 は XML とパーサコンビネータをモジュール化するため、追加で設定が必要になった。以下は sbt 0.13 のマルチプロジェクト構文を使った例だ:

import ScalaxbKeys._
 
lazy val scalaXml = "org.scala-lang.modules" %% "scala-xml" % "1.0.2"
lazy val scalaParser = "org.scala-lang.modules" %% "scala-parser-combinators" % "1.0.1"
lazy val dispatchV = "0.11.2" // change this to appropriate dispatch version
lazy val dispatch = "net.databinder.dispatch" %% "dispatch-core" % dispatchV
 
lazy val root = (project in file(".")).
  settings(scalaxbSettings: _*).
  settings(
    name := "hello",

scalaxb 1.2.1

これは SOAP コード生成に関連したバグ修正に的を絞ったリリースだ。詳細は SOAP を使うを参照。
.

SOAP 関連のバグフィクス

  • xs:AnyType の処理を修正した。 #265
  • asFaultのエラーを修正した。 #264 reported by @romainreuillon
  • マルチパート SOAP メッセージにより生成されるコードを修正した。 #267 reported by @tomhaigh
  • HttpClientsAsync にて concurrent.Future を使うように修正した。 #269 reported by @hedefalk
  • ブロッキング SOAP クライアントを生成する --blocking というコマンドラインオプションを追加した。

細かな機能改善点

  • コードの生成に内部で使っている scalaxb パッケージを別名にマスクした。

scalaxb 1.2.0

ノンブロッキング SOAP

scalaxb 1.2.0 よりデフォルトでノンブロッキングな SOAP コードを生成がされるようになった。これまでの Either[X, A] の代わりに SOAP 呼び出しは Future[A] を返し、もし Fault がある場合は Future の失敗として投げられる。

// default
def getQuote(symbol: Option[String]): Future[stockquote.GetQuoteResponse]
 
// async in (Compile, scalaxb) := false
def getQuote(symbol: Option[String]): Either[scalaxb.Fault[Any], stockquote.GetQuoteResponse]

この機能は @jlavallee@hoff2 によって #213/#259 としてコントリビュートされた。詳細は soap を使う を参照。

SOAP 関連のバグフィクス

  • SOAP内のパラメータに現れる予約語をエスケープするようにした。 #252/#256 contributed by @romainreuillon
  • SOAP内のオペレーション名に現れる予約語をエスケープするようにした。 #241 reported by @rcgoodfellow
  • SOAP内での nillable な要素の扱いを修正した。 #229 reported by @barnesjd
  • SOAP を POST したときのエンコーディング問題を修正した。 #231 reported by @hedefalk
  • Dispatch 0.11.1 に対応した。
  • literal RPC スタイルのときのレスポンスのパースを修正した。 #260 reported by @romainreuillon

その他のバグフィクスおよび細かな機能改善点

  • Scala 2.9.0 のサポートから除外して、廃止勧告の出ている呼び出しを修正した。
  • DatatypeFactoryThreadLocal にキャッシュするようにした。 #243 contributed by @malaporte
  • 長さがゼロのプレフィックスの処理を修正した。 #253/#255 contributed by @romainreuillon
  • 複合型の継承時に mix 属性が正しく継承されない問題を修正した。 #228 reported by @choffmeister
  • unbounded が入れ子になったときに、パーサが終了しない問題を修正した。 #230 reported by @FranklinChen
  • xs:elementdefault および minOccurs = 1 であるときの処理を修正した。 #245 reported by @alboko
  • xs:enumeration の値が非常に長い場合の処理を修正した。 #247 reported by @jcranky
  • xs:element の名前にシンボルが入っていて、かつ --class-prefix が渡されたときの処理を修正した。 #251 reported by @romangarcia
  • xs:group のパーサが複数回継承される問題を修正した。 #238 reported by @choeger

scalaxb 1.1.2

バグフィクスおよび細かな機能改善点

  • xs:enumeration の値が空白である場合に生成される case object を修正した。#220 reported by @FranklinChen and others.
  • 属性の名前が valuexs:simpleContext により生成される value という名前のフィールドと衝突するのを修正した。 #221 reported by @lyle-janrain

scalaxb 1.1.1

コマンドラインの互換性の無い変更点

scalaxb cli はデフォルトパッケージ名と名前空間特定のパッケージ名の両方を指定するのに -p--package を使っていた。scalaxb 1.1.1 はデフォルトパッケージ名には -p--default-package を、名前空間特定のパッケージ名には --package を使うようにした。

バグフィクスおよび細かな機能改善点

  • 大文字と小文字だけが違う型の名前を回避するようにした。#215 reported by @drdozer
  • minOccurs=0 かつ nillable である xs:all の処理の修正。#216 reported by @minettiandrea
  • xsi:nil="1" が nil としてパースされないことを修正した。#217 reported by @aoprisan
  • カメレオンスキーマの取り扱いを改善した。#102
  • デフォルトの dispatchVersion を 0.10.1 に設定した。
  • sbt 0.13 に向けて sbt-scalaxb を更新した。

scalaxb 1.1.0

1.0 と互換性の無い変更点

  • scalaxb は sys.error を生成するようになったため、Scala 2.8 ではコンパイルできなくなた。 #115 reported by @idot and others.

dispatchVersion

Dispatch 0.10.x 互換のコードを生成するための新しいキー dispatchVersion が追加された #210:

dispatchVersion in scalaxb in Compile := "0.10.0"

libraryDependencies <+=(dispatchVersion in scalaxb in Compile) { dv =>
  "net.databinder.dispatch" %% "dispatch-core" % dv
}

バグフィクスおよび細かな機能改善点

  • ParserFailure のメッセージに違反したデータを含めるようにした。 #206 requested by @caoilte
  • QName 型の列挙の処理を修正した。 #208
  • プラットホーム間のゆらぎを防ぐため sbt-scalaxb は *.xsd をソートするようにした。 #207 reported by @caoilte
  • xsd ファイルが変更されたときのみ sbt-scalaxb がコードを生成するように変更した。 #199 requested by @fommil

scalaxb 1.0.2

バグフィクス

  • 大きなグループの取り扱いを修正した。 #188 reported by @workingDog
  • 名前空間制約のある xs:any の取り扱いを修正した。 #189
  • 名前の重複解決の上限を取り除いた。 #190
  • シンボルの列挙値の取り扱いを修正した。 #191
  • xs:group 参照の命名が衝突するのを修正した。 #192
  • 外部パッケージからの型によって構成される xs:choice の取り扱いを修正した。 #193
  • 分割された xs:sequence が nillable かつ unbounded である場合の取り扱いを修正した。 #194
  • 代替グループを含む xs:choice の取り扱いを修正した。 #195
  • 外部パッケージからの xs:sequence を含む複合型の取り扱いを修正した。 #196
  • 代替グループを含む xs:group または混合複合型の取り扱いを修正した。 #197
  • xs:anySimpleType から直接または間接的に派生する複合型の取り扱いを修正した。 #200/#203 reported by @sagarcjoshi
  • 単純型を拡張する混合複合型の取り扱いを修正した。 #205
  • DispatchHttpClients 非-200 な結果を取り扱わないのを修正した。 reported and fixed by @dportabella in #204
Syndicate content