CUBAおよびCUBA Studio
プラットフォームの新しいマイナーリリースが公開されたことにお気づきかもしれません。 新しいバージョンでは、主に現在の機能に関連する改善が実装されていますが、いくつかの新しい便利な機能が追加されています。
カットの下:
- ユーバージャー
- 予測検索UI
- REST APIバージョン管理
- クラスター負荷分散
- ZooKeeperアプリケーションコンポーネント
- Polymer UIの改善
- CUBA StudioでのBean検証サポート
- エンティティリスナーでのGroovyサポート
ユーバージャー
プラットフォーム開発者のコミュニティで最も期待されている機能。 Uber JARのおかげで、CUBAアプリケーションの配布が大幅に簡素化されました。
Uber JARを作成するには、CUBA StudioまたはIDEで目的の構成を決定し、数回クリックするだけでJARファイルを収集するだけで十分です。

アプリケーションを起動するには、次の2つのコマンドを実行するだけです。
java -jar app-core.jar
java -jar app.jar
Uber JARには、すべての依存コンポーネントと軽量HTTPサーバーがすでに含まれています。 詳細について
は、ドキュメントの
この章を参照してください 。
プロンプトでテキストを入力します
SuggestionPickerFieldは 、ビジュアルコンポーネントのセットに含まれています。 ユーザーがテキストを入力すると、バックグラウンドで検索し、適切な値のオプションを提供します。

詳細は
ドキュメントをご覧ください。
サンプラーのオンラインデモアプリケーションでライブコンポーネントを体感できます。
REST APIバージョン管理
アプリケーションが既に商用運用されている場合、エンティティまたは属性名の通常のリファクタリングにより、ユニバーサルREST APIは古いバージョンのクライアント(モバイルアプリケーションなど)または外部システムと互換性がなくなることがあります。
この問題を解決するために、CUBAの新しいバージョンでは、REST要求を変換するメカニズムが追加されました。 変換ルールは、プラットフォームが古い形式の要求を最新バージョンのAPIに変換するための単純なXML形式で指定できます。
たとえば、
OldOrderエンティティの名前を
deliveryDateの 日付属性と同様に
NewOrderに変更し、変換に以下のXMLを使用すると、古いAPIを使用するクライアントとの互換性が維持されます。
<?xml version="1.0"?> <transformations xmlns="http://schemas.haulmont.com/cuba/rest-json-transformations.xsd"> <transformation modelVersion="1.0" oldEntityName="sales$OldOrder" currentEntityName="sales$NewOrder"> <renameAttribute oldName="date" currentName="deliveryDate"/> <toVersion> <removeAttribute name="discount"/> </toVersion> </transformation> </transformations>
通常どおり、詳細は
ドキュメントに記載されてい
ます 。
クラスター負荷分散
バージョン6.5より前のプラットフォームでは、Web層と中間層の間の負荷分散はサポートされていませんでした。 したがって、最初からWebサーバーは
cuba.connectionUrlListリストから中間層サーバーを選択し、使用できなくなるまで変更しませんでした。
プラットフォームの最新バージョンでは、配布はユーザーセッションレベルで実行されます。 中間層サーバーは、最初のリモート接続中にランダムに選択されます。 確立されたセッションは
スティッキーであり、選択されたサーバーをその全期間にわたって保護します。 リクエストが匿名セッションからまたはセッションなしで送信された場合、固定は行われず、リクエストはクラスタ内のランダムに指定されたサーバーに送信されます。
別のケースで自分で配布ルールを設定する必要がある場合、デフォルトで
RandomServerSorterクラスを使用する
cuba_ServerSorter Beanをオーバーライドすることでこれを行うことができます。
ZooKeeperアプリケーションコンポーネント
このコンポーネントを追加することにより、クラスター構成管理が大幅に簡素化されます。 新しいコンポーネントは、アプリケーションと
Apache ZooKeeperを統合します
。ApacheZooKeeperは、構成情報を維持するための集中サービスです。
ここで、クラスタートポロジを管理するには、ZooKeeperのアドレスを指定するだけです。 その後、中間層サーバーはZooKeeperディレクトリを介してアドレスを公開し、新しいコンポーネントを検出するメカニズムは、ZooKeeperに使用可能なサーバーのアドレスを要求します。 中間層のサーバーが使用できなくなると、同時にまたはタイムアウト後にカタログから自動的に除外されます。
アプリケーションのドキュメントコンポーネントのソースコードは
GitHubで入手でき
ます 。 バイナリアーティファクトは、標準のCUBAリポジトリで公開されます。
Polymer UIの改善
サポートフォーラムでの活動から判断すると、ますます多くの開発者がGoogle Polymerに基づくCUBAアプリケーションに新しいWebクライアントを使用し始めています。 このリリースでは、開発を簡素化するために設計された多くの機能を追加しました。
まず、編集のためにリストからエンティティを開くと、ユーザーは別のURLにある編集フォームにリダイレクトされます。 つまり、ブラウザで履歴を追跡するための標準メカニズムを使用し、特定のエンティティのエディターへの直接リンクを使用できるようになりました。
2番目の改良点は、
キューバ検索コンポーネントです。 これにより、ドロップダウンリストからではなく、エンティティのリストを含むポップアップウィンドウから参照属性の値を選択できます。
最後に、ファイルをサーバーにアップロードするために、
コンポーネントがビジュアル
コンポーネントのライブラリに追加されました。 ダウンロードしたファイルはアクティブなリンクとして表示されます。
CUBA StudioでのBean検証サポート
CUBA Studioユーザーインターフェイスからデータ検証のカスタマイズがサポートされるようになりました。 入力した値が指定された制限に一致しない場合に表示されるメッセージだけでなく、属性の制限を定義できます。
たとえば、文字列に有効な電子メールアドレスが含まれていることを確認するには、次のようにCUBA Studioで検証を構成します。

エンティティリスナーでのGroovyサポート
CUBA Studioは、Groovyでエンティティリスナの足場をサポートするようになりました。 これを行うには、[プロジェクトプロパティ]> [詳細設定]タブでGroovyサポートを有効にします。

まとめ
この記事では、PlatformおよびStudioの最も重要な変更について説明します。 変更の完全なリストはここにあります:
platform-6.5-releasestudio-6.5-releaseまた、リリース専用
のウェビナーのビデオ録画 (英語)
もご覧ください 。