この記事では、Liferay DXP 7.0内でポータルのプロパティを構成するために環境変数を使用し、より柔軟でクラウドネイティブなアプローチを実現する方法を概説します。
DXP 7.0の設定に環境変数を使用することで、環境固有のポータルプロパティを設定する別のオプションが提供されます。 このオプションは、Dockerコンテナのようなコンテナベースの環境で作業する場合によく使われるものです。
目次
解像度
必要な条件
DXP 7.0を使用する場合、プラットフォームにDXP 7.0 Fix Pack 24がインストールされている必要があります。
環境変数
環境変数は、OS(Operating System)内で設定されます。 つまり、環境変数の命名規則もOSによって決められているのです。
環境変数名を正しく構築するための一般的なガイドラインは以下の通りです:
- 名前は、大文字、数字、アンダースコアを使って定義する必要があります。
- 名前の先頭を数字にすることはできません。
例えば、一般的によく使われるJavaの環境変数です: JAVA_HOME
Liferay Portalのプロパティ
環境変数を使用する場合、一般的な命名規則に従わなければなりません。 しかし、Liferayポータルのプロパティは、小文字、ピリオド、括弧など、一般的に許可されない文字で構成することができます。 Liferayポータルプロパティに環境変数を使用するために、以下の命名規則を使用し、上記の一般的な命名規則の要件も満たします。
Liferay ネーミングコンベンション(LNC)
- 名前の先頭には
LIFERAY_
を付けなければなりません。 - 名前は、デフォルトで小文字に変換されます。
- 一般に禁止されている文字を表現するために、DXP 7.0が提供する定数名やUnicodeのコードポイントを使用した特殊エンコーディングが使用できます。
LNC:DXP 7.0における定数名の使用について
特殊なエンコードに定数名を使うのは、一般的な選択肢でしょう。 定数名は、大文字、ピリオド、括弧など、一般的な文字を利用することができます。 使用可能な定数名のリストは、 CharPool.javaに記載されています。
Liferayで定数名を使用するためには、環境変数名についても以下のガイドラインに従う必要があります:
- 定数名は大文字で宣言する必要があります。
- 定数名に '
_
' の文字がある場合は、削除する必要があります。 - 定数名は、'
_
' のラップペアを使用して宣言する必要があります。
例1:シンプルなポータルサイトのプロパティ
- ポータルプロパティ:
setup.wizard.enabled=false
- 環境変数です:
LIFERAY_SETUP_PERIOD_WIZARD_PERIOD_ENABLED=true
How It Works:
- 一般的な命名規則」の項で述べたガイドラインを満たす名称であること。
- 名称は接頭辞で始まります:
LIFERAY_
- 定数名PERIODは、こう宣言されることで使用されます:
PERIOD_
例2:複雑なポータルサイトのプロパティ
- Portal Property:
setup.database.driverClassName[mysql]=com.mysql.jdbc.Driver
- 環境変数です:
LIFERAY_SETUP_PERIOD_DATABASE_PERIOD_DRIVER_UPPERCASEC_LASS_UPPERCASEN_AME_OPENBRACKET_MYSQL_CLOSEBRACKET_=com.mysql.jdbc.Driver
How It Works:
- 名前は、 General Naming Convention セクションに記載されているガイドラインを満たしています。
- 名称は接頭辞で始まります:
LIFERAY_
- 定数名PERIODは、こう宣言されることで使用されます:
PERIOD_
driverClassName
という部分には、大文字が含まれています:- 定数名
UPPER_CASE_C
と宣言されることで使用されます:UPPERCASEC_
-
定数名
UPPER_CASE_N
と宣言されることで使用されます:UPPERCASEN_
- 定数名
-
部分、
[mysql]
、ブラケットを含む:-
定数名
OPEN_BRACKET
と宣言されることで使用されます:OPENBRACKET_
。 -
定数名
CLOSE_BRACKET
は、_CLOSEBRACKET_
として、d 宣言されることで使用されます。
-
LNC:ユニコードコードポイントの使用
特殊エンコーディングにUnicodeコードポイント値を使用することはオプションですが、定数名のオプションを使用するよりも可読性が低くなります。 Unicodeのコードポイント値の参照表はこちらで確認できます: ユニコード表
Unicodeのコードポイント値を使用するためには、環境変数名についてもこのガイドラインに従う必要があります:
- コードポイントは、10進数で表現する必要があります。
- コードポイントは、'
_
' のラップペアを使用して宣言する必要があります。
例1:シンプルなポータルサイトのプロパティ
- ポータルプロパティ:
setup.wizard.enabled=false
- 環境変数です:
LIFERAY_SETUP_46_WIZARD_46_ENABLED=true
How It Works:
- 一般的な命名規則」の項で述べたガイドラインを満たす名称であること。
- 名称は接頭辞で始まります:
LIFERAY_
- .はUnicodeコードポイント'46'で表現され、宣言されています:
46_
.
例2:複雑なポータルサイトのプロパティ
- Portal Property:
setup.database.driverClassName[mysql]=com.mysql.jdbc.Driver
- 環境変数です:
LIFERAY_SETUP_46_DATABASE_46_DRIVER_67_LASS_78_AME_91_MYSQL_93_=com.mysql.jdbc.Driver
How It Works:
- 一般的な命名規則」の項で述べたガイドラインを満たす名称であること。
- 名称は接頭辞で始まります:
LIFERAY_
-
.はユニコードコードポイント'46'で表現され、宣言されています:
_46_
driverClassName
という部分には、大文字が含まれています:-
大文字の「C」は、Unicode コードポイント「67」で表現され、次のように宣言されています:
_67_
-
大文字の「N」は、Unicodeコードポイント「78」で表現され、次のように宣言されています:
_78_
-
-
部分、
[mysql]
、ブラケットを含む:-
'['はUnicodeコードポイント'91'で表現され、次のように宣言されています:
_91_
-
']' は Unicode コードポイント '93' で表現され、宣言されています:
_93_
-
オーバーライドの優先順位
OSの環境変数で設定されたプロパティは、portal-ext、setup-wizard、patched、developerのプロパティファイルで設定されたプロパティよりも優先されます。 ただし、 Configuration Control Panel メニューの System Settings セクションで確立した設定は、環境変数よりも優先されます。
追加情報
この機能は、ポータルのプロパティを設定する場合にのみ有効です。 .configファイル
にあるプロパティは、環境変数で変更することはできません。
Liferayポータルのプロパティを設定するこの追加オプションを使用すると、Liferayサポート担当者と通信する際に、関連する環境変数も含めるとよいでしょう。
関連リンク JavaとAntの環境変数のセットアップ