Jar スキャンフィルタコンポーネント

目次

はじめに

Jar スキャンフィルタ要素は、アプリケーションに返される前にJar スキャナーからの結果をフィルタリングするコンポーネントを表します。 通常、一部またはすべてのタイプの スキャンに関係しないとわかっている JAR のスキャンをスキップするために使用されます。

Jar スキャンフィルタ要素は、Jar スキャナーコンポーネント内にネストできます。

たとえば、プラグイン可能な機能をスキャンするときに、追加の jar ファイルを指定できます。

<Context>
  ...
  <JarScanner>
    <JarScanFilter
        pluggabilityScan="${tomcat.util.scan.StandardJarScanFilter.jarsToScan},
                       my_pluggable_feature.jar"/>
  </JarScanner>
  ...
</Context>

Jar スキャンフィルタ要素が含まれていない場合、デフォルトの Jar スキャンフィルタ設定が自動的に作成されます。これは、ほとんどの要件で十分です。

属性

共通属性

Jar スキャンフィルタのすべての実装は、次の属性をサポートしています。

属性説明
className

使用する実装の Java クラス名。 このクラスは、org.apache.tomcat.JarScanFilterインターフェースを実装する必要があります。 指定しない場合は、標準値(下記で定義)が使用されます。

標準実装

Jar スキャンフィルタの標準実装は、org.apache.tomcat.util.scan.StandardJarScanFilterです。 サポートする追加の属性(上記の共通属性に加えて)は、表にリストされています。

pluggabilitySkippluggabilityScantldSkiptldScan属性の値は、ファイル名パターンのリストです。 パターンはカンマ(',')で区切られます。 パターンの先頭と末尾の空白文字は無視されます。 パターンは、大文字と小文字を区別して照合されます。 次の2つの特殊文字がサポートされています。

  • '*' - ゼロ個以上の文字を表します。
  • '?' - 1つだけの文字を表します。

プラグイン可能性スキャンから JAR を除外すると、ServletContainerInitializer が Web アプリケーション JAR(つまり、/WEB-INF/libにある JAR)からロードされなくなりますが、ServletContainerInitializer がコンテナ(Tomcat)からロードされるのを防ぐことはできません。 コンテナによって提供される ServletContainerInitializer がロードされないようにするには、コンテキストcontainerSciFilterプロパティを使用します。

属性説明
pluggabilitySkip

Servlet 3.0 仕様で導入されたプラグイン可能な機能をスキャンするときにスキップする JAR ファイル名パターンのカンマ区切りリスト。 指定しない場合、デフォルトはtomcat.util.scan.StandardJarScanFilter.jarsToSkipシステムプロパティから取得されます。

pluggabilityScan

Servlet 3.0 仕様で導入されたプラグイン可能な機能をスキャンするときにスキャンする JAR ファイル名パターンのカンマ区切りリスト。 指定しない場合、デフォルトはtomcat.util.scan.StandardJarScanFilter.jarsToScanシステムプロパティから取得されます。

defaultPluggabilityScan

プラグイン可能な機能をスキャンするときに、JAR をデフォルトでスキャンするかスキップするかを制御します。 trueの場合、JAR 名がpluggabilitySkipパターンのいずれにも一致しないか、pluggabilityScanパターンのいずれかに一致する場合、JAR はスキャンされます。 falseの場合、JAR 名がpluggabilityScanパターンのいずれかに一致し、pluggabilitySkipパターンのいずれにも一致しない場合、JAR はスキャンされます。 指定しない場合、デフォルト値はtrueです。

tldSkip

タグライブラリ(TLD)をスキャンするときにスキップする JAR ファイル名パターンのカンマ区切りリスト。 指定しない場合、デフォルトはtomcat.util.scan.StandardJarScanFilter.jarsToSkipシステムプロパティから取得されます。

tldScan

タグライブラリ(TLD)をスキャンするときにスキャンする JAR ファイル名パターンのカンマ区切りリスト。 指定しない場合、デフォルトはtomcat.util.scan.StandardJarScanFilter.jarsToScanシステムプロパティから取得されます。

defaultTldScan

TLD をスキャンするときに、JAR をデフォルトでスキャンするかスキップするかを制御します。 trueの場合、JAR 名がtldSkipパターンのいずれにも一致しないか、tldScanパターンのいずれかに一致する場合、JAR はスキャンされます。 falseの場合、JAR 名がtldScanパターンのいずれかに一致し、tldSkipパターンのいずれにも一致しない場合、JAR はスキャンされます。 指定しない場合、デフォルト値はtrueです。

ネストされたコンポーネント

Jar スキャンフィルタ要素内にコンポーネントをネストすることはできません。

特別な機能

Jar スキャンフィルタ要素に関連付けられた特別な機能はありません。