他社Frameworkとの連携

Universal Xのルール実行エンジンは他社Framework上でも動作することができます。

Universal X(USAX)の利用環境を設定する

他Framework USAXのAPIを使用するために必要な設定を行います。

CLASSPATHにUSAX-LIBRARYを設定

/common.propertiesの設定と配置

common.propertiesを設定し、CLASSPATHに設定された場所に配置します。
  1. common.propertiesを作成します。
  2. 下記の設定を編集。
  3. CLASSPATHが通っているディレクトリのルートに配置。

    # -----------------------------------------------------------------------------
    # 基本設定
    # -----------------------------------------------------------------------------
    # プロパティ管理クラス
    controller = jp.co.cam.usax.configuration.impl.Resource

    # 標準の言語・国名(未設定時はユーザー情報の言語設定を参照)
    locale.default.language =
    locale.default.country  =

    # 一時領域(Blobなどの大容量データの一時保管場所)
    # (注)定期的に消せなかった古いファイルの削除が必要です
    temporary.path = ./

    # -----------------------------------------------------------------------------
    # ログ出力
    # -----------------------------------------------------------------------------

    # デバッガー(jp.co.cam.usax.debug.DebuggerIFを実装したクラスを設定)
    # ※Log4Jなど使用したいログ出力クラスをラップしてDebuggerIFを実装してください
    logger.class = jp.co.cam.usax.debug.impl.Debugger

    # 例外の出力
    logger.flag.exception = true
    #logger.path.exception = /var/log/tomcat/error.log

    # 警告の出力
    logger.flag.warning = true
    #logger.path.warning = /var/log/tomcat/debug.log

    # 詳細ログの出力(開発時に利用)
    logger.flag.debug = true
    #logger.path.debug =  /var/log/tomcat/debug.log

    # 情報ログの出力(パフォーマンス・チューニング/初期本番稼働時に利用)
    logger.flag.info = true

    # 開発モード
    development.mode = true

    # -----------------------------------------------------------------------------
    # 構成
    # -----------------------------------------------------------------------------

    # 定義の物理的な配置先(未設定時はCLASSPATHを参照)
    settings.directory.repository =

    # ↓↓↓↓↓ 要変更 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

    # ユーザー情報管理クラス(jp.co.cam.usax.context.UserInfoを拡張)
    # ※UserInfoを継承してユーザー情報管理クラスを実装してください
    settings.userinfo.class = jp.co.hogehoge.context.ExampleUserInfo

    # グローバル・リソースの配置先
    settings.directory.resource = /jp/co/hogehoge/resource/

    # JNDI設定の配置先
    settings.directory.jndi = /jp/co/hogehoge/resource/jndi/

    # DB接続設定の配置先
    settings.directory.jdbc = /jp/co/hogehoge/resource/jdbc/

    # 外部SQLファイルの配置先
    settings.directory.sqls = /jp/co/hogehoge/resource/sqls/
  

JDBCの設定と配置


default.xml(※)の設定を行い、所定の場所に配置します。
JDBCの詳細についてはこちらを参照ください。
  1. default.xml(※)を作成します。
  2. XSDファイルの参照先を相対パスで設定。
  3. common.propertiesのsettings.directory.jdbcに設定したパスに配置。

    <jdbc controller="jp.co.cam.usax.appl.domain.database.impl.TransactionAPI"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:noNamespaceSchemaLocation="./jdbc.xsd">

        <database code="default" type="PGSQL"
         driver="org.postgresql.Driver">
            <connect name="jdbc:postgresql://127.0.0.1:5432/example"
              schema="public" user="postgres" password="postgres">
               <query>
                <![CDATA[
                 set search_path to "public"
                ]]>
               </query>
            </connect>
        </database>
    </jdbc>
  
※XMLのファイル名はRuledBeanの「@Transactionに定義された名前」.xmlとなります。
 カンマ区切りにて複数定義した場合は、その数分の設定ファイルを配置してください。
 JDBCの詳細についてはこちらを参照ください。

トランザクション管理とBMCの実行

任意の外部クラスにてトランザクション制御とBusiness model component(BMC)を実行します。 実装例

    public static void main(final String args[])
    {
        try(final DomainHandler trax = DomainHandler.getMyInstance("default")) {

            trax.begin(); // Transaction-begin

            // BMC:サンプル
            final BMCIF bmc = new SampleBMC();

            // データ移送
            bmc.setString("CODE", "12345");

            // 実行
            if (bmc.run()) {
                trax.commit(); // Transaction-commit
            } else {
                trax.cancel(); // Transaction-cancel
            }

        } catch(final Exception ex) {
            ex.printStackTrace();
        }
    }
  
USAXのDataBeanと他Frameworkで使用するBean(POJO)とのデータ移送については
勘弁に行うためのユーティリティを提供していますのでこちらを参照ください。

サンプルのダウンロード

本書の実装サンプルをこちらからダウンロード頂けます。
ダウンロード

©Camel engineering LLP