From f102fb937022a70697658f32846b45b428b4053f Mon Sep 17 00:00:00 2001 From: MW Date: Sun, 21 Jul 2024 21:08:31 +0900 Subject: [PATCH] =?UTF-8?q?=E3=83=A9=E3=82=A4=E3=83=96=E3=83=A9=E3=83=AA?= =?UTF-8?q?=E3=83=9E=E3=83=8D=E3=83=BC=E3=82=B8=E3=83=A3=E3=81=AE=E3=83=89?= =?UTF-8?q?=E3=82=AD=E3=83=A5=E3=83=A1=E3=83=B3=E3=83=88=E3=82=92=E8=BF=BD?= =?UTF-8?q?=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/docs/settings/index.md | 38 +++++ src/docs/settings/library_manager.md | 225 +++++++++++++++++++++++++++ 2 files changed, 263 insertions(+) create mode 100644 src/docs/settings/library_manager.md diff --git a/src/docs/settings/index.md b/src/docs/settings/index.md index aae36a8..08d22c9 100644 --- a/src/docs/settings/index.md +++ b/src/docs/settings/index.md @@ -43,6 +43,44 @@ WEB-INF/ ``` +```xml {data-filename=org.seasar.mayaa.provider.ServiceProvider} + + + + + + + + + + + + + + + + + + + +``` + +`~`は`org.seasar.mayaa`を表します。 +| エレメント名 | 要求されるインタフェース | | +|------------|-------------------------------------------|--------------------| +| engine | org.seasar.mayaa.engine.Engine
[org.seasar.mayaa.impl.engine.EngineImpl](#engine) || +| parentSpecificationResolver | org.seasar.mayaa.engine.specification.ParentSpecificationResolver
[org.seasar.mayaa.impl.engine.specification.ParentSpecificationResolverImpl](#parentSpecificationResolver) || +| scriptEnvironment | org.seasar.mayaa.cycle.script.rhino.ScriptEnvironment
[org.seasar.mayaa.impl.cycle.script.rhino.ScriptEnvironmentImpl](#scriptEnvironment) | +| templateAttributeReader | org.seasar.mayaa.builder.library.TemplateAttributeReader
[org.seasar.mayaa.impl.builder.library.TemplateAttributeReaderImpl](#templateAttributeReader) | +| specificationBuilder | org.seasar.mayaa.builder.SpecificationBuilder
[org.seasar.mayaa.impl.builder.SpecificationBuilderImpl](#specificationBuilder) | +| templateBuilder | org.seasar.mayaa.builder.TemplateBuilder
[org.seasar.mayaa.impl.builder.TemplateBuilderImpl](#templateBuilder) | +| pathAdjuster | org.seasar.mayaa.builder.PathAdjuster
[org.seasar.mayaa.impl.builder.PathAdjusterImpl](/docs/settings/path_adjust_settings/) | +| libraryManager | org.seasar.mayaa.builder.library.LibraryManager
[org.seasar.mayaa.impl.builder.library.LibraryManagerImpl](/docs/settings/library_manager/) | +| templateAttributeReader | org.seasar.mayaa.builder.library.TemplateAttributeReader
[org.seasar.mayaa.impl.builder.library.TemplateAttributeReaderImpl](#templateAttributeReader) | + + #### ■Engine のパラメータ {#engine} Mayaa 標準の Engine に対するパラメータをいくつか説明します。デフォルト設定は下記の通りです。 diff --git a/src/docs/settings/library_manager.md b/src/docs/settings/library_manager.md new file mode 100644 index 0000000..d3fb72f --- /dev/null +++ b/src/docs/settings/library_manager.md @@ -0,0 +1,225 @@ +--- +layout: base +title: タグライブラリ(JSP, Mayaa) +eleventyNavigation: + key: タグライブラリ(JSP, Mayaa) + subtitle: LibraryManager + parent: エンジンの設定 + order: 9 +--- +## タグライブラリ(JSP, 独自Mayaaプロセッサ) + +`LibraryManager`クラスはJSPタグライブラリをMayaa内から使えるようにしたり、独自定義したMayaaプロセッサを利用できるように管理します。 +`LibraryManager`はスキャナークラスを用いて指定したディレクトリやファイルからタグライブラリのファイルを検索して登録します。 + +### スキャナー + +JSPタグライブラリは、*.tld、Mayaaプロセッサは *.mld の拡張子をもつファイルをLibraryManagerがロードされた時にスキャナークラスを用いて検索します。 + +下表のパッケージ名の`~`は`org.seasar.mayaa.`を表します。 +|スキャナクラス名|説明| +|-------------------------------------------|---------| +|[~impl.builder.library.scanner.WebInfSourceScanner](#webInfSourceScanner)| (1.3.0以降) WEB-INF内の *.tld,mld および WEB-INF/lib のJARファイル内のMETA-INF配下の *.tld,mldを検索する。このスキャナでFolderSourceScannerおよびMetaInfSourceScannerの両方を代替できる。 | +|[~impl.builder.library.scanner.FolderSourceScanner](#folderSourceScanner)| アプリケーションのコンテキストルート配下またはファイルシステム内に配置されたファイルを検索する。 | +|[~impl.builder.library.scanner.MetaInfSourceScanner](#metaInfSourceScanner)| JARファイル内のMETA-INFフォルダに配置されたファイルを検索する。 | +|[~impl.builder.library.scanner.ResourceScanner](#resourceScanner)| クラスパス内のリソースから条件に合致したファイルを検索する。 | +|[~impl.builder.library.scanner.DefaultSourceScanner](#defaultSourceScanner)| Mayaaのビルトインのプロセッサを定義している mayaa.mld を読み込む。 | +|[~impl.builder.library.scanner.WebXMLTaglibSourceScanner](#webXMLTaglibSourceScanner)| web.xml内のtaglibエレメントにて定義されたライブラリを読み込む。 | + + +#### WebInfSourceScanner {#webInfSourceScanner} + +Webアプリケーションのコンテキスト内のリソースを走査してライブラリファイルを検出するための`SourceScanner`実装です。 +走査対象は WEB-INF配下のリソースで、lib内のJARファイルも走査対象となります。 + +ServiceProviderの設定ファイルで以下のように設定することで、走査対象のライブラリファイルを指定することができます。 +設定は記述順で評価され、最初に合致したものが採用されます。 + +`include`と`exclude`は `/WEB-INF/`を基準としてライブラリファイル(tld,mld)を検出対象(include)または除外対象(exclude)するためのGlobパターンを指定します。 +記述順に評価され最初に合致したもので判定されます。 +どちらのパターンも指定されない場合は`include="**/*.{tld,mld}"`のみが指定されたものとみなします。 + +`includeJar`と`excludeJar`で走査対象JARファイルのWEB-INF/libを基準としたファイル名部分のGlobパターンを指定します。 +どちらのパターンも指定されない場合は `includeJar="*.jar"` のみが指定されたものとみなします。 + + +`includeInJarMetaInf`と`excludeInJarMetaInf`で読み込み対象とするライブラリファイルパスのJARファイル内のMETA-INFを基準としたGlobパターンを指定します。 +どちらのパターンも指定されない場合は `includeInJarMetaInf="*.{tld,mld}"` のみが指定されたものとみなします。 + +```xml {data-filename=org.seasar.mayaa.provider.ServiceProvider} + + + : + + + + + + +``` + +|パラメータ名{style="width:8rem"}|必須{style="width:4rem"}|規定値{style="width:8rem"}|値の例{style="width:8rem"}|説明| +|-------|-----|--|--------------------------|---------| +|include | - |**/*.\{tld,mld\}||読み込み対象とするライブラリファイルパスのWEB-INFを基準としたGlobパターン | +|exclude | - | - |\{classes,lib\}|読み込み対象外とするライブラリファイルパスのWEB-INFを基準としたGlobパターン | +|includeJar | - |*.jar|taglibs-*.jar|走査対象JARファイルのWEB-INF/libを基準としたファイル名部分のGlobパターン | +|excludeJar | - | - ||走査対象外のJARファイルのWEB-INF/libを基準としたファイル名部分のGlobパターン | +|includeInJarMetaInf | - |*.\{tld,mld\}||読み込み対象とするライブラリファイルパスのJARファイル内のMETA-INFを基準としたGlobパターン | +|excludeInJarMetaInf | - | - |\{x,sql,fn\}-*.jar|読み込み対象外とするライブラリファイルパスのJARファイル内のMETA-INFを基準としたGlobパターン | + +####  FolderSourceScanner {#folderSourceScanner} +アプリケーションのコンテキストルート配下またはファイルシステム内に配置されたファイルを検索する。 + +|パラメータ名{style="width:8rem"}|必須{style="width:4rem"}|規定値{style="width:5rem"}|値の例{style="width:8rem"}|説明| +|-------|-----|--|--------------------------|---------| +|folder| ○ | - | /WEB-INF | 検索対象のフォルダ名を指定する。検索されるファイルのsystemIDはfolderに指定したパスからの相対パスが設定される。 | +|extension| - | - | .tld | 検索するファイル名の拡張子を指定する。extensionパラメータを複数回記述することで対象の拡張子を複数指定可能。| +|absolute| - | false | false | `true`にするとOSのファイルシステムのルートからの絶対パスと解釈する。falseの場合はWebアプリケーションのコンテキストルートを起点としたパスと解釈される。| +|recursive| - |false| true | `true`にすると指定したフォルダは以下のサブフォルダ配下も再帰的に検索する。| + +```xml {data-filename=org.seasar.mayaa.provider.ServiceProvider} + + + : + + + + + + +``` + +#### MetaInfSourceScanner {#metaInfSourceScanner} +JARファイル内のMETA-INFフォルダに配置されたファイルを検索する。 + +|パラメータ名{style="width:8rem"}|必須{style="width:4rem"}|規定値{style="width:5rem"}|値の例{style="width:8rem"}|説明| +|-------|-----|--|--------------------------|---------| +|folder| ○ | - | /WEB-INF/lib | JARファイルの検索対象のフォルダ名を指定する。 | +|extension| - | | .jar | JARファイルの拡張子を指定する。| +|absolute| - | false | false | `true`にするとOSのファイルシステムのルートからの絶対パスと解釈する。falseの場合はWebアプリケーションのコンテキストルートを起点としたパスと解釈される。| +|recursive| - |false| true | `true`にすると指定したフォルダは以下のサブフォルダ配下も再帰的に検索する。| +|extension| - | - | .jar | 検索するファイル名の拡張子を指定する。extensionパラメータを複数回記述することで対象の拡張子を複数指定可能。| +|ignore| - | - | commons-beanutils- | (バグ動作しない)folderおよびexensionで指定した条件に合致するファイルのうち、検査対象から除外するファイル名のパターンを前方一致で指定する。| +|jar.folder| - | META-INF/ | META-INF/ | 検索対象のフォルダ名を指定する。検索されるファイルのsystemIDはfolderに指定したパスからの相対パスが設定される。 | +|jar.extension| - | .tld
.mld | .tld | 検索するファイル名の拡張子を指定する。extensionパラメータを複数回記述することで対象の拡張子を複数指定可能。| +|jar.ignore| - | META-INF/MANIFEST.MF | - | 検索の起点となるフォルダを指定する。検索されるファイルのsystemIDはrootに指定したパスからの相対パスが設定される。 | + +```xml {data-filename=org.seasar.mayaa.provider.ServiceProvider} + + + : + + + + + + + + + + + + + + + +``` + + +#### ResourceScanner {#resourceScanner} + +クラスパスに指定されたディレクトリやJARファイル内からライブラリファイルを検索します。 +Webアプリケーションサーバ内では通常はサーバ起動時のJVMへの指定クラスパスとなっているため多くの場合は +このスキャナは指定する必要はありません。 + +|パラメータ名{style="width:8rem"}|必須{style="width:4rem"}|規定値{style="width:5rem"}|値の例{style="width:14rem"}|説明| +|-------|-----|--|--------------------------|---------| +|root| - | - | META-INF/ | クラスパスがディレクトリだった時に走査するサブディレクトリを指定する。 | +|ignore| - | - | - | クラスパスがJarファイルのとき、Jar内でライブラリとして読み込まないエントリをルートから前方一致で指定。| +|extension| - | - | .tld | 検査対象となった(Jar)ファイル内でライブラリとして認識するエントリのファイル拡張子。複数可能。| +|includeJar| - | - | taglibs-standard-impl-*.jar | 走査対象とするJarファイル名Globパターン。| +|excludeJar| - | - | - | 走査除外とするJarファイル名のGlobパターン。| + +```xml {data-filename=org.seasar.mayaa.provider.ServiceProvider} + + + : + + + + + + +``` + +#### DefaultSourceScanner {#defaultSourceScanner} +Mayaaのビルトインのプロセッサを定義している mayaa.mld を読み込む。パラメータはありません。 + +```xml {data-filename=org.seasar.mayaa.provider.ServiceProvider} + + + : + +``` + +#### WebXMLTaglibSourceScanner {#webXMLTaglibSourceScanner} +web.xml内のtaglibエレメントにて定義されたライブラリを読み込みます。パラメータはありません。 + +```xml {data-filename=org.seasar.mayaa.provider.ServiceProvider} + + + : + +``` + +### ビルダー + +検出したTLDファイルやMLDファイルを読み込んで内部のタグ定義として格納するものです。 +通常は変更する必要はありません(変更しないでください)。 + +|ビルダクラス名| +|-------------------------------------------| +|~impl.builder.library.MLDDefinitionBuilder| +|~impl.builder.library.TLDDefinitionBuilder| + +### コンバーター + +MLDファイルでクラス変換を行う際に使用するカスタムコンバータを登録します。 +通常は変更する必要はありません(変更しないでください)。 + +|コンバータ名|コンバータクラス名| +|-----------------|-------------------------------------------| +|ProcessorProperty|~impl.builder.library.converter.ProcessorPropertyConverter| +|PrefixAwareName|~impl.builder.library.converter.PrefixAwareNameConverter| + + +### LibraryMangerの設定の全体感 +```xml {data-filename=org.seasar.mayaa.provider.ServiceProvider} +※レイアウトの都合で改行しています。 + + + + + + + + + + + + + + + + + + + + + + + +``` +