7 Mavenを使用したOracle Service Busプロジェクトのビルド

Oracle Service BusのMaven原型を使用して、Oracle Service Busアプリケーションを作成、ビルドおよびデプロイすることができます。

MavenにおけるOracle Service Bus開発プラグインの使用の詳細は、Oracle Service Busでのサービスの開発Oracle Service Bus開発Mavenプラグインの使用に関する項を参照してください。

Mavenを使用したOracle Service Busプロジェクトのビルドの概要

Oracle Service Busでは、1つのMavenプラグインおよび3つの原型が提供されています。

表7-1に、Maven座標を示します。

表7-1 Oracle Service BusでのMaven座標

名前 GroupId ArtifactId バージョン

OSBプラグイン

com.oracle.servicebus.plugin

oracle-servicebus-plugin

14.1.2-0-0

OSBアプリケーション原型

com.oracle.servicebus.archetype

oracle-servicebus-application

14.1.2-0-0

OSBプロジェクト原型

com.oracle.servicebus.archetype

oracle-servicebus-project

14.1.2-0-0

OSBシステム・リソース原型

com.oracle.servicebus.archetype

oracle-servicebus-system

14.1.2-0-0

表7-2に、Oracle Service Busプラグインでサポートされている次のゴールを示します。

表7-2 Oracle Service Busプラグインのゴール

ゴール 用途

package

プロジェクトからService Busアーカイブ(SBAR)ファイルを作成します。

deploy

ランタイム環境へSBARファイルをデプロイします。Mavenでは、ランタイム環境へのデプロイメントは、通常、事前統合テスト・フェーズで行われるため、このゴールは、デプロイ・フェーズではなく、デフォルト・ライフ・サイクルの事前統合テスト・フェーズにマップされていることに注意してください。

カスタム・パッケージング・タイプsbarが定義されていて、Oracle Service Busアーカイブを示しています。

Maven原型からのOracle Service Busアプリケーションの作成

OSB Application Maven原型を使用して、新規Oracle Service Busアプリケーション(OSBプロジェクトおよびOSBシステム・リソース・プロジェクトを含む)を作成することができます。

そのためには、次のようなコマンドを実行します。

mvn archetype:generate
    -DarchetypeGroupId=com.oracle.servicebus.archetype
    -DarchetypeArtifactId=oracle-servicebus-application
    -DarchetypeVersion=14.1.2-0-0
    -DgroupId=org.mycompany
    -DartifactId=my-servicebus-application
    -Dversion=1.0-SNAPSHOT
    -DprojectName=my-project
    -DconfigJar=myjar.jar  

このコマンドにより、原型から新規プロジェクトを作成できるようにする、Mavenの原型プラグインの生成ゴールが実行されます。表7-5に、パラメータを示します。

表7-3 Oracle Service Busプロジェクトのパラメータ

パラメータ 用途

archetypeGroupId

新規プロジェクトの作成に使用する原型のgroup ID。これは、前の例に示したように、com.oracle.servicebus.archetypeである必要があります。

archetypeArtifactId

新規プロジェクトの作成に使用する原型のartifact ID。これは、前の例に示したように、oracle-servicebus-application,である必要があります。

archetypeVersion

新規プロジェクトの作成に使用する原型のバージョン。これは、前の例に示したように、14.1.2-0-0である必要があります。

groupId

新規プロジェクトのgroup ID。通常、これは組織のドメイン名を逆にした形式で始まります。

artifactId

新規プロジェクトのartifact ID。通常、これはプロジェクトの識別子です。

version

新規プロジェクト用のversion。新規プロジェクトの場合、これは通常1.0-SNAPSHOTです。

projectName

アプリケーション内に作成するOSBプロジェクトの名前。これはアプリケーションの名前(つまり、artifactId)と異なる必要があり、システム・リソース用に予約されているため、Systemにすることもできません。

-DconfigJar

プリコンパイル済のsbconfig.jarまたは.sbarファイルを指定するために使用されます。この設定によって、事前のフレッシュ・ビルドなしで個々のjarファイルをデプロイできます。これは絶対パスである可能性があります。

この設定では、-DprojectNameも設定されていることが必要です。

また、次の例に示すように、引数なしでコマンドを実行することもできます。この場合、Mavenでは、使用可能な原型のリストが表示され、必要な情報の入力を求められます。

mvn archetype:generate

アプリケーションの作成後、アプリケーションには次のファイルが含まれます。

表7-4ではプロジェクトに含まれるファイルについて説明します。

表7-4 Oracle Service Busプロジェクト用に作成されたファイル

ファイル 用途

pom.xml

新規アプリケーションについて記述するMavenプロジェクト・オブジェクト・モデル(POM)ファイル。アプリケーションに指定したMaven座標が含まれます。このPOMは、このアプリケーションの一部を形成するすべてのOSBプロジェクトをグループ化するために使用されます。

my-project/pom.xml

新規プロジェクトについて記述するMaven POMファイル。プロジェクトに指定したMaven座標が含まれ、Oracle Service Bus Mavenプラグインを使用してプロジェクトをSBARファイルにビルドするための適切なプラグイン定義も含まれます。

System/pom.xml

SBARファイルにOSBシステム・リソースをビルドするMavenプロジェクト・オブジェクト・モデル(POM)ファイル。

Oracle JDeveloperでのOSBアプリケーションの編集

Oracle JDeveloperでアプリケーションを編集して、OSBリソースを定義することができます。

アプリケーションを編集するには、まずJDeveloperでアプリケーションを開きます。

  1. 「ファイル」メニューを開き、「インポート」を選択します。
  2. 「インポート」ダイアログ・ボックスで、「Mavenプロジェクト」オプションを選択し、「OK」をクリックします
    「Mavenプロジェクトのインポート」ダイアログが表示されます。
  3. 「ルート・ディレクトリ」フィールドに、JDeveloperにインポートするアプリケーションのパスを入力します。
  4. 「設定ファイル」フィールドにMavenのsettings.xmlファイルのパスを入力します。Maven設定ファイルの場所に標準でない場所を使用していないかぎり、ほとんどの場合デフォルト値が適切です。
  5. 「リフレッシュ」をクリックして、その場所で使用できるプロジェクトのリストをロードします。
  6. インポートするプロジェクトを選択します。「インポートしたPOMファイルと同期するために既存のJDeveloperプロジェクトを更新します。」も選択します。
  7. 「OK」をクリックして、インポートを完了します。

JDeveloperでアプリケーションが開かれました。

Oracle Service Busアプリケーション(またはプロジェクト)をJDeveloperにインポートする場合、新規アプリケーション(またはプロジェクト)ディレクトリを作成するか、または単に既存の場所にJDeveloperプロジェクト・ファイル(jwsファイルおよびjprファイル)を作成するかの選択肢があります。

  • 新規のディレクトリにアプリケーション(またはプロジェクト)の新規コピーを作成するには、「アプリケーションにソース・ファイルもインポートします。」オプションを選択して、インポート・ダイアログ・ボックスに新規のディレクトリを指定します。

  • 既存のディレクトリにJDeveloperファイルを作成するには、「アプリケーションにソース・ファイルもインポートします。」オプションを選択しないで、プロジェクトの場所を求められたときに既存のディレクトリを選択します。

Maven原型からのOracle Service Busプロジェクトの作成

OSBプロジェクトMaven原型を使用して、既存のOSBアプリケーション内部に新しいOracle Service Busプロジェクトを作成できます。

そのためには、OSBアプリケーションのルート・ディレクトリから、次のようなコマンドを実行します。

mvn archetype:generate
 -DarchetypeGroupId=com.oracle.servicebus.archetype
 -DarchetypeArtifactId=oracle-servicebus-project
 -DarchetypeVersion=14.1.2-0-0
 -DgroupId=org.mycompany
 -DartifactId=my-second-project
 -Dversion=1.0-SNAPSHOT

このコマンドにより、原型から新規プロジェクトを作成できるようにする、Mavenの原型プラグインの生成ゴールが実行されます。表7-5に、パラメータを示します。

表7-5 Maven原型からのOracle Service Busプロジェクトのパラメータ

パラメータ 用途

archetypeGroupId

新規プロジェクトの作成に使用する原型のgroup ID。これは、前の例に示したように、com.oracle.servicebus.archetypeである必要があります。

archetypeArtifactId

新規プロジェクトの作成に使用する原型のartifact ID。これは、前の例に示したように、oracle-servicebus-project,である必要があります。

archetypeVersion

新規プロジェクトの作成に使用する原型のバージョン。これは、前の例に示したように、14.1.2-0-0である必要があります。

groupId

新規プロジェクトのgroup ID。通常、これは組織のドメイン名を逆にした形式で始まります。

artifactId

新規プロジェクトのartifact ID。通常、これはプロジェクトの識別子です。システム・リソース用に予約しているSystemにすることはできません。

version

新規プロジェクト用のversion。新規プロジェクトの場合、これは通常1.0-SNAPSHOTです。

また、次の例に示すように、引数なしでコマンドを実行することもできます。この場合、Mavenでは、使用可能な原型のリストが表示され、必要な情報の入力を求められます。

mvn archetype:generate

OSBプロジェクトはOSBアプリケーション内に存在している必要があることに注意してください。

プロジェクトの作成後、プロジェクトには次のファイルが含まれます。



表7-6ではプロジェクトに含まれるファイルについて説明します。

表7-6 Oracle Service Busプロジェクト用に作成されたファイル

ファイル 用途

pom.xml

新規プロジェクトについて説明するMavenプロジェクト・オブジェクト・モデル(POM)ファイルであり、プロジェクトに指定したMaven座標が含まれ、OSB Mavenプラグインを使用してプロジェクトをSBARファイルにビルドするための適切なプラグイン定義も含まれています。

Mavenは、この新規プロジェクトを含めるためにOSBアプリケーションPOMファイルも更新します。「Maven原型からのOracle Service Busアプリケーションの作成」で作成したアプリケーションで前述のコマンドを実行した場合、OSBアプリケーションPOMに次のように表示されます。

<modules>
   <module>my-project</module>
   <module>my-servicebus-project</module>
   <module>my-second-project</module>
</modules>

Mavenを使用したOSBプロジェクトのビルド

プロジェクト・コードを記述した後に、Mavenを使用してOSBプロジェクトをビルドできます。

SBARファイルをビルドするには、次のコマンドを実行します。

mvn package -DoracleHome=/path/to/osbhome

前述のコマンドによってプロジェクトからSBARファイルが作成され、次の場所に配置されます。

project/.data/maven/sbconfig.sbar

パッケージ化には、表7-7のパラメータを指定できます。プロジェクトのPOMファイル内で指定するか、または前述の例に示すようにコマンド行で指定することもできます。

表7-7 Oracle Service Busプラグインのpackageゴールのパラメータ

パラメータ 用途

oracleHome

Oracle Fusion MiddlewareのOracleホームの場所。

Mavenを使用したOracle Service Busサーバーへのプロジェクトのデプロイ

OSBプロジェクトは、Mavenを使用してOracle Service Busサーバーにデプロイできます。

SBARファイルをデプロイするには、次のコマンドを実行します。

mvn pre-integration-test

デプロイメントのパラメータは、表7-8で指定できます。プロジェクトのPOMファイル内で指定するか、またはコマンドラインで指定することもできます。

表7-8 Oracle Service Busプラグインのdeployゴールのパラメータ

パラメータ 用途

oracleHome

OSBがインストールされているOracle Fusion MiddlewareのOracleホームの場所。

oracleServerUrl

OSBドメイン内のサーバーのURL。

customization

(オプション)使用するOSBカスタマイズ・ファイル(ある場合)の名前。

oracleUsername

デプロイメントに使用するユーザー名。

oraclePassword

デプロイメントに使用するパスワード。

configJar

デプロイする.sbarまたはsbconfig.jarファイルの名前。このパラメータを使用して、プリコンパイル済のsbconfig.jarまたは.sbarファイルを指定します。絶対パスを使用できます。この設定によって、ファイルをビルドせずに個々のjarファイルをデプロイできます。この設定を使用する場合は、projectNameパラメータも指定する必要があります。

projectName

プロジェクトの名前。このパラメータを使用して、configJarパラメータで設定されたsbconfig.jarがデプロイされるプロジェクトを指定します。このパラメータは、各プロジェクトのPOMファイルのartifactIdに一致します。この設定は、DconfigJarが存在しない場合には無視されます。

パラメータを指定するには:

  • コマンド行で、例に示すように-Dparameter=valueの形式を使用します(コマンド全体を1行で入力するように注意してください)。

    mvn pre-integration-test
         -DoracleServerUrl=http://test.server:7001
         -DoracleUsername=weblogic
         -DoraclePassword=<password>
         -DconfigJar=D:\ServicebusApp\SBProject\.data\maven\sbconfig.sbar 
         -DprojectName=SBProject
  • プロジェクトPOMファイルで、次の例に示すようにpluginセクションを追加します。

    <plugins>
    
       <plugin>
         <groupId>com.oracle.servicebus</groupId>
         <artifactId>oracle-servicebus-plugin</artifactId>
         <version>14.1.2-0-0</version>
         <extensions>true</extensions>
         <configuration>
           <oracleHome>/u01/osbhome</oracleHome>
           <oracleServerUrl>http://test.server:7001</oracleServerUrl>
           <oracleUsername>weblogic</oracleUsername>
           <oraclePassword><password></oraclePassword>
         </configuration>
       </plugin>
     </plugins>

Oracle Service Bus親POMについての考慮事項

OSB親POMはカスタマイズのために提供されています。たとえば、これを使用してテスト・サーバーのURL、ユーザー名およびパスワードなどの環境全体のデフォルトを設定してから、OSB親POMに指定することもできます。

このようなプロパティを設定したり、OSBプロジェクトで有効にする別のプロパティを定義したりすることもできます。OSBプロジェクトPOMのプロパティを参照するには、構文 $propertyNameを使用します。たとえば、次の例では$oracleServerNameosb_server1に置き換えられます。

OSB原型から作成されたプロジェクトは、上書きしないかぎりOSB親POMの値を自動的に使用します。

いくつかのプロパティを定義するOSB親POMの例を次に示します。

<properties>
  <!--
   These two properties are defined in
   com.oracle.maven:oracle-common, you can overwrite them here.
   Users who do not want to add plain text password in their
   properties or pom file, should use the userConfigFile and
   userKeyFile options for deployment.
   -->
  <!-- <oracleUsername>USERNAME</oracleUsername> -->
  <!-- <oraclePassword>PASSWORD</oraclePassword> -->

  <!--
   Change the default values according to your environment
   -->
  <oracleServerUrl>t3://localhost:7001</oracleServerUrl>
  <oracleServerName>osb_server1</oracleServerName>
  <oracleHome>/u01/osbhome</oracleHome>
</properties>