第3章 Java プロジェクトの移行


Business Central ワークベンチでは作成されていない Java プロジェクトの場合は、pom.xml ファイル内の依存関係を修正し、ビルドに関する問題を解決する必要があります。このプロセスは、Java で書かれたデシジョンサービスとクライアントアプリケーションで共通です。

前提条件/事前作業

Red Hat Decision Manager 7.0 用の Maven リポジトリーをダウンロードし、ローカル Maven システムが利用できる状態にする必要があります (ローカルまたはリモートリポジトリーとして)。

手順

  1. プロジェクトの pom.xml ファイルを開きます。
  2. 以下のグループに属するすべての依存関係から、<version> タグを削除します。

    • org.kie
    • org.drools
    • org.jbpm
    • org.optaplanner
  3. <dependencyManagement> セクション内の <dependencies> タグの下に、以下の依存関係を追加します。

    <dependency>
      <groupId>org.jboss.bom.rhdm</groupId>
      <artifactId>rhdm-platform-bom</artifactId>
      <version>${rhdm.version}</version>
      <scope>import</scope>
      <type>pom</type>
    </dependency>
    Copy to Clipboard Toggle word wrap

    ここで、${rhdm.version} は、Red Hat Decision Manager 7.0 用 Maven リポジトリーの org.jboss.bom.rhdm:rhdm-platform-bom アーティファクトのバージョンです。リポジトリーに入り、maven-repository/org/jboss/bom/rhdm/rhdm-platform-bom ディレクトリーに移動して、アーティファクトのバージョンを確認できます。このディレクトリーのサブディレクトリーの名前だけを、バージョンとして指定します (例: 7.0.0.GA-redhat-1)。

  4. コードに Drools CDI アノテーション (@KReleaseId@KContainer@KBase@KSession) が使用されている場合は、以下の依存関係も追加します。

    <dependency>
      <groupId>org.drools</groupId>
      <artifactId>drools-cdi</artifactId>
    </dependency>
    Copy to Clipboard Toggle word wrap

    アノテーションを処理する CDI 拡張子が別のモジュールを使用して定義されるようになったので、この依存関係が必要です。この依存関係がないと、アノテーションは機能しません。

  5. (必要に応じて) 古い org.guvnor 依存関係を、新しい org.uberfire 依存関係に置き換えます。

    古い org.guvnor 依存関係:

    <dependency>
      <groupId>org.guvnor</groupId>
      <artifactId>guvnor-rest-client</artifactId>
    </dependency>
    Copy to Clipboard Toggle word wrap

    新しい org.uberfire 依存関係:

    <dependency>
      <groupId>org.uberfire</groupId>
      <artifactId>uberfire-rest-client</artifactId>
    </dependency>
    Copy to Clipboard Toggle word wrap
  6. プロジェクトアーティファクトのバージョンを更新し、pom.xml ファイルを保存します。
  7. 通常の Maven ビルドを使用してプロジェクトをビルドし直します。
  8. ビルドエラー、またはその後に実行エラーが発生する場合は、「移行した Java プロジェクトで発生するビルドエラーおよび実行エラーのトラブルシューティング」で説明する情報を元に、それらの問題を解決します。

以下の情報を元に、Red Hat Decision Manager 7.0 用に移行したプロジェクトの再ビルド後に発生するビルドエラーまたは実行エラーを解決します。

3.1.1. Drools モジュールにおける API 変更

BRMS 6.4 から Red Hat Decision Manager 7.0 への移行により、以下の Drools モジュールに互換性のない変更が含まれます。

  • kie-api: KIE グループからの全プロジェクト用のメイン API。変更のほとんどは、以下のクラスに関するものです。

    • org.kie.api.task.*
    • org.kie.api.executor.*
    • org.kie.api.concurrent.*
    • org.kie.api.builder.*
    • org.kie.api.command.*
    • org.kie.api.runtime.*
  • drools-core: ルールエンジン。以下のクラスが変更されます。

    • org.drools.core.command.*
    • org.drools.core.common.*
  • kie-server-api: KIE Server (Decision Server) 用の標準 API (コマンド、モデル等を含む)。以下のクラスが変更されます。

    • org.kie.server.api.commands.*
    • org.kie.server.api.marshalling.*
    • org.kie.server.api.model.*
    • org.kie.server.api.rest.RestURI (定数がわずかに変更され、先頭の / が省略されます)
  • kie-server-controller-api: KIE Server Controller 用の API。以下のクラスが変更されます。

    • org.kie.server.controller.api.service.*
  • kie-server-controller-rest: KIE Server Controller 用の REST API。以下のクラスが変更されます。

    • org.kie.server.controller.rest.RestSpecManagementServiceImpl
    • org.kie.server.controller.rest.RestKieServerControllerImpl
  • kie-server-client: KIE Server Client。以下のクラスが変更されます。

    • org.kie.server.client.SolverServicesClient
    • org.kie.server.client.UIServicesClient
    • org.kie.server.client.admin.ProcessAdminServicesClient
    • org.kie.server.client.ProcessServicesClient
    • org.kie.server.client.QueryServicesClient
    • org.kie.server.client.JobServicesClient
    • org.kie.server.client.UserTaskServicesClient
    • org.kie.server.client.KieServicesClient
    • org.kie.server.client.KieServicesConfiguration

ここで挙げるクラスに関するビルドエラーが発生する場合は、「List of API changes between BRMS 6.4 and Decision Manager 7.0」に書かれた詳細なレポートを確認してください。レポートには API 変更の詳細が記載されています。この情報を元に、コードを変更に対応させることができます。

3.1.2. Drools モジュールにおけるロジック変更

Drools モジュールに以下のロジック変更が加えられました。

  • Red Hat BRMS 6.4 では、ルールが累積パターンの sum 関数を実行する場合、返される結果は入力のデータタイプにかかわらず必ず double 型でした。Red Hat Decision Manager 7.0 では、sum 関数を実行する入力のデータタイプが維持されます。この機能拡張により、sum 関数からより正確な結果が得られます。以下の例では、accumulate 関数で得られる結果のデータタイプは double 型ではなく Long 型になります。

    Long(...) from accumulate(..., sum($p.getLongWeight()))
    Copy to Clipboard Toggle word wrap

    Red Hat BRMS 6.4 プロジェクトのルールに累積パターンの sum 関数が含まれている場合は、この関数を探して確認してください。Red Hat BRMS 6.4 ではこの関数は double 型のデータタイプを返していましたが、Red Hat Decision Manager 7.0 では入力値のデータタイプを返す点に注意してください。

  • 累積パターンと一致するファクトがない場合、Red Hat Decision Manager 7.0 では min および max accumulate 関数は +/-Integer.MAX_VALUE ではなくnull を返します。したがって、BRMS 6.4 の場合とは異なり、ルールの累積は一致せずルールは実行されません。
  • Business processes that contain business rule tasks with an implementation=Java configuration will not be compiled in Red Hat Decision Manager 7.0 due to stricter validation requirements. To resolve compilation errors related to this restriction, set the implementation configuration to implementation=##unspecified or remove the implementation attribute.
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る