EGL により生成された Java™ プログラムでは、実行時に情報提供を行う一連のプロパティーを使用します。
これらのほとんどの Java ランタイム・プロパティーは、ビルド記述子オプションを使用して設定します。ビルド記述子オプションには、EGL ビルド・パーツ・エディターでビルド記述子パーツを編集することによって値を割り当てます。
注: EGL 生成の Java VGWebTransaction プログラムは、特殊なケースを表します。J2EE で実行されるか、J2EE 以外の環境で実行されるかの判別は、プログラム・プロパティー enableJ2EE の設定によって異なります。
(デフォルト値は NO です。) VGWebTransaction プログラムで作業しているためにこのトピックを読んでいる場合は、ビルド記述子オプション j2ee への参照を確認する場合は常に以下の作業を行って、プログラム・プロパティー enableJ2EE の値を代わりに検討してください。
生成時、ビルド記述子オプションの値は、対応する Java ランタイム・プロパティーに保存され、そのプロパティーは以下のいずれかのファイルにリストされます。
- 出力を J2EE 環境にデプロイしている場合、プロパティーは J2EE デプロイメント記述子に保存されます。
- 出力を非 J2EE 環境にデプロイしている場合、プロパティーはプログラム・プロパティー・ファイルに保存されます。
- j2ee ビルド記述子オプションを YES に設定していて、かつ genDirectory ビルド記述子オプションにディレクトリーを指定している場合、Java ランタイム・プロパティーは、J2EE 環境ファイルに保存されます。
また、J2EE 環境ファイルは、j2ee ビルド記述子オプションを YES に設定していて、かつ、genProject ビルド記述子オプションを非 J2EE プロジェクトに設定している場合にも作成されます。
その後に、J2EE デプロイメント記述子または Java プロパティー・ファイルで、ランタイム・プロパティーの値を編集することができるので、再びコードを生成する必要はありません。
EGL が、ビルド記述子オプションを使用してランタイム・プロパティーを作成するようにするには、genProperties ビルド記述子オプションを PROGRAM または GLOBAL に設定する必要があります。
ビルド記述子およびプログラム・プロパティー
Java ランタイム・プロパティーを生成している場合、
それらは以下のシナリオの 1 つに従って、作成および保存されます。
- Java ランタイム・プロパティーを J2EE デプロイメント記述子に生成するには、以下の手順に従います。
- j2ee ビルド記述子オプションを YES に設定します。
- genProperties ビルド記述子オプションを PROGRAM または GLOBAL に設定します。
- J2EE プロジェクトにコードを生成します。
- J2EE 環境ファイルにプロパティーを生成するには、以下のステップを実行します。
- j2ee ビルド記述子オプションを YES に設定します。
- genProperties ビルド記述子オプションを PROGRAM または GLOBAL に設定します。
- 以下のいずれか 1 つを行います。
- ディレクトリーの中に生成する。この場合、genProject ビルド記述子オプションではなく、genDirectory ビルド記述子オプションを使用します。
- 非 J2EE プロジェクトの中に生成する。
J2EE 環境ファイルに保存されたプロパティーは、生成時に自動的に更新されないので注意してください。
- 生成されるプログラムと同じ名前を持つプログラム・プロパティー・ファイルを生成するには、以下の手順に従います。
- j2ee ビルド記述子オプションを NO に設定します。
- genProperties ビルド記述子オプションを PROGRAM に設定します。
- 以下のいずれか 1 つを行います。
- ディレクトリーの中に生成する。この場合、genProject ビルド記述子オプションではなく、genDirectory ビルド記述子オプションを使用します。
- 非 J2EE プロジェクトの中に生成する。
- rununit.properties という名前のプログラム・プロパティー・ファイルを生成するには、以下の手順に従います。
- j2ee ビルド記述子オプションを NO に設定します。
- genProperties ビルド記述子オプションを GLOBAL に設定します。
- 以下のいずれか 1 つを行います。
- ディレクトリーの中に生成する。この場合、genProject ビルド記述子オプションではなく、genDirectory ビルド記述子オプションを使用します。
- 非 J2EE プロジェクトの中に生成する。
- プロパティーをまったく生成しない場合は、genProperties を NO に設定します。
J2EE 環境では
J2EE 環境で実行される Java プログラムを生成する場合は、以下のいずれかの方法で Java ランタイム・プロパティーを作成することができます。
- 前のセクションの最初のシナリオのステップに従って、Java ランタイム・プロパティーを直接 J2EE デプロイメント記述子に生成することができます。この場合、EGL は既に存在するプロパティーを上書きし、存在しないプロパティーを追加します。
生成された Java プログラムは実行時に J2EE デプロイメント記述子にアクセスします。
- あるいは、前のセクションの 2 番目のシナリオのステップに従って、ランタイム・プロパティーを J2EE 環境ファイルに生成することもできます。
このファイル内のプロパティーをカスタマイズした後、J2EE デプロイメント記述子にコピーできます。
- また、前のセクションの 5 番目のシナリオに従って、genProperties ビルド記述子オプションを NO に設定し、ランタイム・プロパティーを生成しないようにすることもできます。
この場合は、必要な Java ランタイム・プロパティーを手動で書き込む必要があります。
J2EE モジュールでは、すべてのプログラムが同じランタイム・プロパティーを持ちます。
これは、モジュール内のすべてのコードが同じ J2EE デプロイメント記述子を共用するためです。
J2EE サーバーの場合、次の例のように、プロパティーは env-entry タグとして web.xml ファイル内で指定され、そのファイルが Web プロジェクトへ関連付けられます。
<env-entry>
<env-entry-name>vgj.nls.code</env-entry-name>
<env-entry-value>ENU</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
<env-entry>
<env-entry-name>vgj.nls.number.decimal</env-entry-name>
<env-entry-value>.</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
非 J2EE 環境では
J2EE 環境外で実行される生成済みの Java プログラムを生成する場合、
genProperties ビルド記述子オプションを PROGRAM または GLOBAL に設定して、EGL がプログラム・プロパティー・ファイルにランタイム・プロパティーを生成するか、プログラム・プロパティー・ファイルを手動でコーディングできます。
プログラム・プロパティー・ファイルには、
デプロイメント記述子に使用可能なさまざまな情報が書き込まれていますが、プロパティーの
形式は異なります。
非 J2EE Java 環境では、
ランタイム・プロパティーをいくつかのプロパティー・ファイル内に指定でき、それらのファイルは次の順序で検索されます。
- user.properties
- 次のような名前のファイル。
programName.properties
programName は実行単位内にある最初のプログラムです。
- rununit.properties
あるユーザーに固有のプロパティーを指定するときは、user.properties を使用する方法が適しています。
EGL は、このファイルの内容を生成しません。
実行単位の最初のプログラムがファイルまたはデータベースにアクセスせず、
そうしたアクセスを実行するプログラムを呼び出す場合には、
rununit.properties を使用する方法が特に適しています。
例えば、次のようになります。
- 呼び出し側プログラムを生成する場合、生成されたプログラム用に名付けられた
プログラム・プロパティー・ファイルを生成することができます。
その内容には、データベース関連、またはファイル関連のプロパティーは含まれない場合が
あります。
- 呼び出し先プログラムを生成する場合、rununit.properties を生成することができます。
その内容は、両方のプログラムで使用可能です。
これらのプロパティー・ファイルは、いずれも必須のものではなく、
単純なプログラムでは、どのファイルも必要ではありません。
非 J2EE コードのデプロイに関する規則
Java プロジェクトへの出力を生成した場合、EGL は (user.properties 以外の) プロパティー・ファイルを適切なフォルダーに配置します。
EGL コード内でランタイム・プロパティーにアクセスする方法の詳細については、
「EGL 言語解説書」内のトピック『getProperty()』および『実行単位』を参照してください。