Liberty: 共有ライブラリー
共有ライブラリーとは、複数のアプリケーションによって使用されるファイルです。 共有ライブラリーとグローバル・ライブラリーを使用して、システム上の重複するライブラリー・ファイルの数を削減できます。
ライブラリー・エレメント
Liberty のライブラリーには 3 つのエレメント (<folder>、<file>、および <fileset>) があります。以下に例を示します。
<library>
<folder dir="..." />
<file name="..." />
<fileset dir="..." includes="*.jar" scanInterval="5s" />
</library>
指定されるファイルは、リソース自体ではなく、リソースのコンテナー (例えば、JAR ファイル) でなければなりません。
リスト内のエレメントがファイルである場合は、JAR または圧縮 .zip ファイルの内容が検索されます。フォルダーが指定された場合は、そのディレクトリーからリソースがロードされます。
グローバル・ライブラリー
グローバル・ライブラリーは、すべてのアプリケーションで使用できます。JAR ファイルはグローバル・ライブラリー・ディレクトリーに配置され、その後、各アプリケーションのクラス・ローダー構成で指定されます。
グローバル・ライブラリーは、次の 2 つのロケーションに置くことができます。
- ${shared.config.dir}/lib/global
- ${server.config.dir}/lib/global
詳細については、『すべての Java EE アプリケーションのグローバル・ライブラリーの提供』を参照してください。
リソース・ファイル
Liberty ライブラリー内で、リソース・ファイルを library エレメントに定義できます。
以下に例を示します。
<library>
<folder dir="..." />
<file name="..." />
<fileset dir="..." includes="*.jar" scanInterval="5s" />
<folder dir="${server.config.dir}/mylibs" />
<file name="${server.config.dir}/otherlibs/my.jar" />
</library>
この例にあるフォルダー設定により、mylibs ディレクトリー内のすべてのファイルをクラスパスで使用可能にすることができます。このスタイルの項目を使用して、.xml と .properties を使用可能にすることができます。ライブラリー・エレメント
Liberty ライブラリーには、3 つの子エレメント <folder>、<file>、および <fileset> があります。
以下に例を示します。
<library>
<folder dir="..." />
<file name="..." />
<fileset dir="..." includes="*.jar" scanInterval="5s" />
</library>
- <folder>: 構成されている各フォルダー内のすべてのリソースがロード可能になります。
- <file>: 構成されている各ファイルがネイティブ・ライブラリーであるか、リソースのコンテナー (JAR や ZIP ファイルなど) でなければなりません。コンテナー内のすべてのリソースはロード可能になり、指定されている他のファイル・タイプはすべて無効になります。
- <fileset>: 構成されている各ファイル・セットは、事実上、ファイルの集合です。ファイル・セット内の各ファイルは、ネイティブ・ライブラリーであるか、リソースのコンテナー (JARや ZIP ファイルなど) でなければなりません。コンテナー内のすべてのリソースはロード可能になり、指定されている他のファイル・タイプはすべて無効になります。
以下に例を示します。
<library id="someLibrary">
<!-- Location of XML and .properties files in the file system for easy editing -->
<folder dir="${server.config.dir}/editableConfig" />
<!-- Location of some classes and resources in the file system -->
<folder dir="${server.config.dir}/extraStuff" />
<!-- A zip file containing some resources -->
<file name="${server.config.dir}/lib/someResources.zip" />
<!-- All the jar files in ther servers lib folder -->
<fileset dir="${server.config.dir}/lib" includes="*.jar" scanInterval="5s" />
</library>
<application location ="webStore.war">
<classloader commonLibraryRef="someLibrary" />
</application>
この例の構成スニペットにより、editableConfig ディレクトリー内のすべてのリソースを webStore アプリケーションによってロードできます。