CUBA Platform 6.5の新機能

CUBAおよびCUBA Studio プラットフォームの新しいマイナーリリースが公開されたことにお気づきかもしれません。 新しいバージョンでは、主に現在の機能に関連する改善が実装されていますが、いくつかの新しい便利な機能が追加されています。



カットの下:





ユーバージャー



プラットフォーム開発者のコ​​ミュニティで最も期待されている機能。 Uber JARのおかげで、CUBAアプリケーションの配布が大幅に簡素化されました。



Uber JARを作成するには、CUBA StudioまたはIDEで目的の構成を決定し、数回クリックするだけでJARファイルを収集するだけで十分です。



CUBA Studioの概要



アプリケーションを起動するには、次の2つのコマンドを実行するだけです。



java -jar app-core.jar





java -jar app.jar







Uber JARには、すべての依存コンポーネントと軽量HTTPサーバーがすでに含まれています。 詳細については、ドキュメントのこの章を参照してください



プロンプトでテキストを入力します



SuggestionPickerFieldは 、ビジュアルコンポーネントのセットに含まれています。 ユーザーがテキストを入力すると、バックグラウンドで検索し、適切な値のオプションを提供します。



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で検証を構成します。



Bean検証



エンティティリスナーでのGroovyサポート



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



Groovyエンティティリスナー



まとめ



この記事では、PlatformおよびStudioの最も重要な変更について説明します。 変更の完全なリストはここにあります:



platform-6.5-release

studio-6.5-release



また、リリース専用のウェビナーのビデオ録画 (英語) もご覧ください



All Articles