他社Frameworkとの連携
Universal Xのルール実行エンジンは他社Framework上でも動作することができます。
Universal X(USAX)の利用環境を設定する
他Framework USAXのAPIを使用するために必要な設定を行います。
CLASSPATHにUSAX-LIBRARYを設定
- usax-commons-x-x-x.jar
- usax-domain-x-x-x.jar
- usax-rules-x-x-x.jar
/common.propertiesの設定と配置
common.propertiesを設定し、CLASSPATHに設定された場所に配置します。
- common.propertiesを作成します。
- 下記の設定を編集。
- 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の詳細についてはこちらを参照ください。
- default.xml(※)を作成します。
- XSDファイルの参照先を相対パスで設定。
- 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)とのデータ移送については
勘弁に行うためのユーティリティを提供していますので
こちらを参照ください。
サンプルのダウンロード
本書の実装サンプルをこちらからダウンロード頂けます。
ダウンロード