diff --git a/CLAUDE.md b/CLAUDE.md index 125b9731..2fc00558 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,94 +1,28 @@ # nabledge-dev -## Language Rules +Development repository for nabledge skills - AI assistants for Nablarch framework development. -**All content in this repository must be in English**, including: -- Code comments -- Documentation (README, design docs, work logs) -- Commit messages -- Test scenarios and results -- Skill definitions and workflows +## Language -**Exception**: nabledge-x skills' user-facing messages should be in Japanese, as they are designed for Nablarch users in Japan. +**Repository content**: English (code, docs, commits, tests) ---- +**Console conversations**: Japanese (AI ↔ User) -## Overview - -This repository contains **nabledge skills** for AI agents to assist with Nablarch development. - -- **nabledge-6**: Skill for Nablarch 6 (Jakarta EE 10, Java 17+) -- **nabledge-5**: Skill for Nablarch 5 (Java EE 7/8, Java 8+) - -These skills enable AI (Claude Code / GitHub Copilot) to autonomously perform Nablarch development tasks. - ---- - -## Directory Structure - -``` -nabledge-dev/ -├── .claude/ -│ └── skills/ -│ ├── nabledge-6/ # Nablarch 6 skill (in development) -│ └── nabledge-5/ # Nablarch 5 skill (planned) -│ -├── .lw/ -│ ├── research/ # Research & design documents -│ └── nab-official/ # Nablarch official documentation (cloned) -│ ├── v6/ # Version 6 documentation (main branch) -│ └── v5/ # Version 5 documentation (v5-main branch) -│ -├── work/ # Work logs (daily) -│ -└── CLAUDE.md # This file -``` - ---- - -## Nablarch Official Documentation - -The `.lw/nab-official/` directory contains cloned Nablarch official repositories for reference when creating knowledge files. +**Exception**: nabledge-x skills' user-facing messages are in Japanese for Nablarch users in Japan. -### Repository Versions - -| Repository | v6 | v5 | Notes | -|------------|----|----|-------| -| **nablarch-document** | ✓ (main) | ✓ (v5-main) | Official framework documentation | -| **nablarch-single-module-archetype** | ✓ (main) | ✓ (v5-main) | Maven archetype for single-module projects | -| **nablarch-system-development-guide** | ✓ (main) | - | System development guide (latest/v6 only) | - -### Note for nabledge-5 Development - -When creating knowledge files for **nabledge-5**, use the following sources: -- **Framework docs**: Use `.lw/nab-official/v5/nablarch-document/` (v5-specific) -- **Archetype**: Use `.lw/nab-official/v5/nablarch-single-module-archetype/` (v5-specific) -- **Development guide**: Reference `.lw/nab-official/v6/nablarch-system-development-guide/` (no v5 version exists; v6 guide applies) - ---- - -## Scope - -### In Scope - -| Item | Description | -|------|-------------| -| **Nablarch Batch (On-demand)** | FILE to DB, DB to DB, DB to FILE patterns | -| **RESTful Web Services** | JAX-RS support, REST API implementation | - -### Out of Scope +## Overview -| Item | Reason | -|------|--------| -| Jakarta Batch | Explicitly excluded in specification | -| Resident Batch (Table Queue) | Explicitly excluded in specification | -| Web Applications (JSP/UI) | Focus on batch & REST only | -| Messaging (MOM) | Out of scope | +This repository develops **nabledge skills** for AI agents: +- **nabledge-6**: Nablarch 6 (Jakarta EE 10, Java 17+) +- **nabledge-5**: Nablarch 5 (Java EE 7/8, Java 8+) - planned ---- +## Key Resources -## Design Documentation +- **Design**: `doc/nabledge-design.md` - Architecture, scope, and skill design +- **Mapping**: `doc/mapping/` - Documentation to knowledge file mappings (302 files for v6) +- **Official Docs**: `.lw/nab-official/` - Cloned Nablarch repositories (v6 and v5) +- **Project Rules**: `.claude/rules/` - Workflow conventions (auto-loaded) -Refer to the detailed architecture design: +## Important Notes -- [Nabledge Design Document](doc/nabledge-design.md) +**Mapping Files** enable category-based filtering for incremental knowledge file creation. See `doc/mapping/mapping-file-design.md` for details. diff --git a/README.md b/README.md index 6ab509ab..1a99917d 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,8 @@ Nablarch knowledge development - [Development Status](doc/development-status.md) - Current progress and roadmap - [Design Document](doc/nabledge-design.md) - Architecture and design details - [ToBe Image](doc/nabledge-tobe-image.md) - Activity mapping and role division with Nabledge +- [Mapping File Design](doc/mapping/mapping-file-design.md) - Documentation mapping specification +- [Mapping Files v6](doc/mapping/mapping-v6.md) - Documentation to knowledge file mapping ([Excel](doc/mapping/mapping-v6.xlsx)) ## Prerequisites diff --git a/doc/mapping/mapping-file-design.md b/doc/mapping/mapping-file-design.md new file mode 100644 index 00000000..6a38046f --- /dev/null +++ b/doc/mapping/mapping-file-design.md @@ -0,0 +1,372 @@ +# Mapping File Design + +This document describes the design of mapping files that connect Nablarch official documentation to nabledge knowledge files. + +## Overview + +Mapping files provide structured information to enable: +- Automatic knowledge file generation from official documentation +- Category-based filtering for targeted processing +- Traceability from knowledge files back to official sources +- Automated asset collection through reference directives + +## File Structure + +### Categories File + +**Files**: `categories-v6.json`, `categories-v5.json` + +Each category entry: + +```json +{ + "id": "nablarch-batch", + "name": "Nablarch Batch Application", + "description": "Nablarch on-demand batch processing framework", + "type": "processing-pattern" +} +``` + +**Fields**: +- `id`: Category identifier (used in mapping files for filtering) +- `name`: Display name (from official Nablarch English documentation) +- `description`: What this category includes +- `type`: Category group (processing-pattern, component, setup, guide, check, about) + +### Mapping File + +**Files**: `mapping-v6.md`, `mapping-v5.md` + +Markdown table format with one row per source-to-target mapping: + +| Source Path | Title | Title (ja) | Official URL | Type | Category ID | Processing Pattern | Target Path | +|-------------|-------|------------|--------------|------|-------------|-------------------|-------------| +| application_framework/application_framework/handlers/common/global_error_handler.rst | Global Error Handler | グローバルエラーハンドラ | [🔗](https://nablarch.github.io/docs/LATEST/doc/ja/application_framework/application_framework/handlers/common/global_error_handler.html) | component | handlers | | component/handlers/common/global-error-handler.md | +| application_framework/application_framework/handlers/batch/loop_handler.rst | Loop Handler | ループハンドラ | [🔗](https://nablarch.github.io/docs/LATEST/doc/ja/application_framework/application_framework/handlers/batch/loop_handler.html) | component | handlers | nablarch-batch | component/handlers/batch/loop-handler.md | +| application_framework/application_framework/batch/nablarch_batch/architecture.rst | Architecture | アーキテクチャ | [🔗](https://nablarch.github.io/docs/LATEST/doc/ja/application_framework/application_framework/batch/nablarch_batch/architecture.html) | processing-pattern | nablarch-batch | nablarch-batch | processing-pattern/nablarch-batch/architecture.md | +| development_tools/testing_framework/guide/development_guide/06_TestFWGuide/RequestUnitTest_rest.rst | Request Unit Test (REST) | リクエスト単体テスト (REST) | [🔗](https://nablarch.github.io/docs/LATEST/doc/ja/development_tools/testing_framework/guide/development_guide/06_TestFWGuide/RequestUnitTest_rest.html) | development-tools | testing-framework | restful-web-service | development-tools/testing-framework/RequestUnitTest-rest.md | + +**Columns**: +- `Source Path`: Path to official doc file (relative to `.lw/nab-official/v6/nablarch-document/en/` or `.lw/nab-official/v6/nablarch-system-development-guide/`). Plain text format for easy processing. +- `Title`: File title in English (extracted from `.lw/nab-official/v6/nablarch-document/en/{path}.rst` header) +- `Title (ja)`: File title in Japanese (extracted from `.lw/nab-official/v6/nablarch-document/ja/{path}.rst` header) +- `Official URL`: Official Japanese documentation URL (for user reference and traceability). Format: `[🔗](full-url)` as Markdown link +- `Type`: Category type from taxonomy (processing-pattern, component, development-tools, setup, guide, check, about) +- `Category ID`: Category identifier (must exist in categories file) +- `Processing Pattern`: Processing pattern identifier for pattern-specific files (one of: nablarch-batch, jakarta-batch, restful-web-service, http-messaging, web-application, mom-messaging, db-messaging). Empty for generic/shared files. +- `Target Path`: Target knowledge file path following naming conventions + +**Key Design Decisions**: +- One row per source-to-target mapping (source files mapping to multiple categories have multiple rows) +- Flat table structure enables easy filtering, sorting, and review +- Human-readable format suitable for both manual editing and programmatic processing +- **Processing Pattern column** enables incremental knowledge file creation by processing pattern, as users typically need documentation for specific patterns (e.g., only nablarch-batch) + +## Classification Taxonomy + +Category IDs and names follow official Nablarch English documentation terminology. + +| Type | Category ID | +|------|-------------| +| processing-pattern | nablarch-batch | +| processing-pattern | jakarta-batch | +| processing-pattern | restful-web-service | +| processing-pattern | http-messaging | +| processing-pattern | web-application | +| processing-pattern | mom-messaging | +| processing-pattern | db-messaging | +| component | handlers | +| component | libraries | +| component | adapters | +| development-tools | testing-framework | +| development-tools | toolbox | +| development-tools | java-static-analysis | +| setup | blank-project | +| setup | configuration | +| setup | setting-guide | +| setup | cloud-native | +| guide | nablarch-patterns | +| guide | business-samples | +| check | security-check | +| about | about-nablarch | +| about | migration | +| about | release-notes | + +### Processing Pattern Assignment Rules + +The `Processing Pattern` column identifies which processing pattern(s) a file is specific to. This enables incremental knowledge file creation by pattern. + +**Rules**: + +1. **Processing Pattern categories** (Type = `processing-pattern`): + - Always set `Processing Pattern` = `Category ID` + - Example: Category ID = `nablarch-batch` → Processing Pattern = `nablarch-batch` + +2. **Component categories** (handlers, libraries, adapters): + - Check source path for pattern-specific subdirectories: + - `handlers/batch/*` → `nablarch-batch` + - `handlers/web/*` → `web-application` + - `handlers/rest/*` or `handlers/jaxrs/*` → `restful-web-service` + - `handlers/messaging/*` → `mom-messaging` or `db-messaging` + - `handlers/common/*` → Empty (generic/shared) + - Check file content/title for pattern-specific features + - Leave empty if the component is generic/shared across patterns + +3. **Development Tools categories** (testing-framework, toolbox): + - Check filename/path for pattern indicators: + - `*_batch*`, `*Batch*` → `nablarch-batch` or `jakarta-batch` + - `*_rest*`, `*_jaxrs*`, `*REST*` → `restful-web-service` + - `*_web*`, `*Web*` → `web-application` + - Leave empty if the tool is generic/shared + +4. **Setup categories** (blank-project, configuration, setting-guide): + - Check filename/path for pattern setup guides: + - `setup_NablarchBatch*`, `*batch*` → `nablarch-batch` + - `setup_Jbatch*` → `jakarta-batch` + - `setup_WebService*`, `*rest*` → `restful-web-service` + - `setup_Web*` (not WebService) → `web-application` + - Leave empty for generic configuration files + +5. **Guide categories** (nablarch-patterns, business-samples): + - Usually empty unless the guide is pattern-specific + - Check content to determine if specific to a pattern + +6. **Other categories** (check, about): + - Typically empty (generic documentation) + +**Empty value**: Indicates generic/shared files used across multiple patterns or general documentation not tied to a specific pattern. + +### Target Path Rules + +Target paths follow the pattern: `{type}/{category-id}/{subdirectories}/{filename}.md` + +**Naming conventions**: +- **Type directories**: Use Type value from taxonomy (e.g., `processing-pattern/`, `component/`, `development-tools/`, `setup/`, `guide/`, `check/`, `about/`) +- **Category ID directories**: Use Category ID value from taxonomy (e.g., `nablarch-batch/`, `testing-framework/`, `handlers/`) +- **Subdirectories**: Preserve source directory structure between category directory and filename + - **component categories** (handlers, libraries, adapters): Preserve subdirectory structure from source + - Example: `handlers/common/file.rst` → `component/handlers/common/file.md` + - Example: `libraries/data_io/data_format/file.rst` → `component/libraries/data_io/data_format/file.md` + - **Other types**: Flat structure (no subdirectories unless needed for organization) + - Exclude `images/` directories (asset files, not documentation) +- **Filenames**: Based on source filename with `.md` extension + - Convert underscores to hyphens (e.g., `nablarch_batch` → `nablarch-batch`) + - Use descriptive names based on content when source filename is generic (e.g., `index.rst` → `overview.md`) + - May split large source files into multiple target files by subtopic + - May consolidate related source files into single target file + +**Examples**: +- `processing-pattern/nablarch-batch/architecture.md` (flat structure) +- `development-tools/testing-framework/request-unit-test.md` (flat structure) +- `component/handlers/common/global-error-handler.md` (preserves `common/` subdirectory) +- `component/handlers/web/session-store-handler.md` (preserves `web/` subdirectory) +- `component/libraries/authorization/permission-check.md` (preserves `authorization/` subdirectory) +- `component/libraries/data_io/data_format/format-definition.md` (preserves `data_io/data_format/` nested subdirectories) +- `setup/configuration/db-connection.md` (flat structure) +- `guide/nablarch-patterns/api-design.md` (flat structure) + +## Source File Scope + +### nablarch-document (v6 and v5) + +**Base directory**: `.lw/nab-official/v6/nablarch-document/en/` + +**Include**: All `.rst` and `.md` files +- Source Path in table: Relative to base directory (e.g., `about_nablarch/concept.rst`) +- Prioritize `en/` directory files when available +- Fallback to `ja/` directory if English version does not exist + +**Exclude**: +- `README.md` (root level) - Build and setup instructions +- `.textlint/install.md` - Textlint installation instructions +- `.textlint/test/test.rst` - Textlint test file +- All non-documentation files (`.py`, `.css`, `.js`, `.html`, `.png`, `.jpg`, `.gif`, `.svg`, `.patch`, `.json`, `Makefile`, etc.) + +### nablarch-system-development-guide (v6 and v5) + +**Base directory**: `.lw/nab-official/v6/nablarch-system-development-guide/` + +**Include**: +- v6: `en/Nablarch-system-development-guide/docs/nablarch-patterns/*.md` (exclude README.md) +- v6: `Sample_Project/設計書/Nablarch機能のセキュリティ対応表.xlsx` +- v5: Copy v6 paths as starting point (no v5-specific version exists) +- Source Path in table: Relative to base directory (e.g., `en/Nablarch-system-development-guide/docs/nablarch-patterns/Nablarch_batch_processing_pattern.md`) + +**Note**: v5 mapping uses v6 official documentation paths as source. Content verification and updates for v5-specific features happen during knowledge file creation (see "Considerations for Knowledge File Creation Skill" section). + +### nablarch-single-module-archetype + +**Exclude**: All files (removed from scope) + +## Title Extraction + +Titles are extracted from local rst/md file headers in both English and Japanese versions. + +### nablarch-document + +- **Title (English)**: Extract from `.lw/nab-official/v6/nablarch-document/en/{source_path}` header +- **Title (ja) (Japanese)**: Extract from `.lw/nab-official/v6/nablarch-document/ja/{source_path}` header + - Replace `en/` with `ja/` in source path +- Headers are typically in the first few lines of rst files (using `===` or `---` underline format) + +### nablarch-system-development-guide + +- **Title (English)**: Extract from `.lw/nab-official/v6/nablarch-system-development-guide/{source_path}` header (first `#` heading) +- **Title (ja) (Japanese)**: Extract from `.lw/nab-official/v6/nablarch-system-development-guide/{source_path_ja}` header (first `#` heading) + - Replace `en/Nablarch-system-development-guide/` with `Nablarchシステム開発ガイド/` in source path + +## Official URL Generation Rules + +Official URLs point to **Japanese documentation** for user reference and traceability. + +### nablarch-document + +- Source Path: `{path}.rst` (from table, relative to `en/` directory) +- Official URL: `https://nablarch.github.io/docs/{version}/doc/{path}.html` + - **v6**: `{version}` = `6u3` (current minor version for nabledge-6) + - **v5**: `{version}` = `5u26` (current minor version for nabledge-5) +- Conversion: Change `.rst` → `.html`, prepend base URL with version + +Example (v6): +- Source Path: `application_framework/application_framework/handlers/common/global_error_handler.rst` +- Official URL: `https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/common/global_error_handler.html` + +Example (v5): +- Source Path: `application_framework/application_framework/handlers/common/global_error_handler.rst` +- Official URL: `https://nablarch.github.io/docs/5u26/doc/application_framework/application_framework/handlers/common/global_error_handler.html` + +### nablarch-system-development-guide + +- Source Path: `en/Nablarch-system-development-guide/docs/nablarch-patterns/{file}.md` (from table, English version) +- Official URL: `https://github.com/Fintan-contents/nablarch-system-development-guide/blob/main/Nablarchシステム開発ガイド/docs/nablarch-patterns/{ja_file}.md` +- Conversion: Replace `en/Nablarch-system-development-guide/` with `Nablarchシステム開発ガイド/`, translate filename to Japanese + +**Filename mapping**: +- `Asynchronous_operation_in_Nablarch.md` → `Nablarchでの非同期処理.md` +- `Nablarch_anti-pattern.md` → `Nablarchアンチパターン.md` +- `Nablarch_batch_processing_pattern.md` → `Nablarchバッチ処理パターン.md` + +Example: +- Source Path: `en/Nablarch-system-development-guide/docs/nablarch-patterns/Asynchronous_operation_in_Nablarch.md` +- Official URL: `https://github.com/Fintan-contents/nablarch-system-development-guide/blob/main/Nablarchシステム開発ガイド/docs/nablarch-patterns/Nablarchでの非同期処理.md` + +**URL Format**: Use Markdown link format `[🔗](full-url)` to keep table readable while maintaining programmatic access to URLs. + +## Asset Files + +Asset files (images, Excel templates, etc.) are **not included in mapping files**. They will be automatically collected during knowledge file creation by parsing asset reference directives in rst/md files. + +### Asset Reference Directives + +**reStructuredText (.rst)**: +- `.. image:: path/to/image.png` - Image reference +- `.. figure:: path/to/image.png` - Figure (image with caption) reference +- `:download:`text `` - Downloadable file reference + +**Markdown (.md)**: +- `![alt](path/to/image.png)` - Image reference + +## Excel Export + +### Required for Human Review + +Excel format is **required** for non-technical stakeholders to review and verify mappings efficiently. The Markdown table is the primary format for AI agents and programmatic processing, while Excel provides a better interface for human reviewers. + +**Generation**: +- Use Python (pandas + openpyxl) to convert Markdown table to Excel +- Script: `scripts/mapping/export-mapping-excel.py` +- Automatically run after mapping file updates + +**Features**: +- Preserve column structure and order +- Convert Official URL column to Excel hyperlinks (clickable 🔗) +- Apply filters to all columns for easy navigation +- Auto-adjust column widths for readability +- Freeze header row +- Sort by Source Path + +**Output**: `doc/mapping/mapping-v6.xlsx` + +**Benefits for stakeholders**: +- Easy filtering and sorting without command-line tools +- Clickable links to official documentation +- Familiar spreadsheet interface +- Offline review capability +- Export to other formats (CSV, PDF) if needed + +## Considerations for Knowledge File Creation Skill + +When creating a skill to generate knowledge files from this mapping: + +1. **Asset Collection**: Automatically parse asset reference directives in rst/md files and copy referenced assets (images, Excel files, etc.) to `assets/` subdirectory within the same directory as the target knowledge file + - Target location: `assets/` subdirectory in the same directory as the knowledge file + - Example: If target file is `.claude/skills/nabledge-6/knowledge/processing-pattern/nablarch-batch/handlers.md`, assets go to `.claude/skills/nabledge-6/knowledge/processing-pattern/nablarch-batch/assets/image.png` + - Assets are stored alongside knowledge files within the skill's knowledge directory structure for easy reference + +2. **Processing Pattern Filtering**: Enable incremental knowledge file creation by processing pattern + - **Primary use case**: Filter by `Processing Pattern` column to create documentation for specific patterns + - Example: "Create knowledge files for nablarch-batch" → Filter rows where `Processing Pattern` = "nablarch-batch" + - This includes: + - All files in `processing-pattern/nablarch-batch/` (Type = processing-pattern) + - Pattern-specific handlers (e.g., batch handlers) + - Pattern-specific testing documentation + - Pattern-specific setup guides + - Rows with empty `Processing Pattern` are generic/shared files that may be processed separately or included in all patterns + +3. **Category Filtering**: Allow filtering by specific category IDs for alternative workflows + - Example: "Process all handlers documentation" → Filter rows where `Category ID` = "handlers" + - Agents filter table rows where `Category ID` column matches desired IDs + +4. **Official URL**: Include the Official URL in generated knowledge files for traceability + - Extract URL from Markdown link format `[🔗](url)` using regex: `\[.*?\]\((https://.*?)\)` + - Users can navigate from knowledge files back to official documentation + +5. **Multiple Mappings**: One source file may appear in multiple table rows when mapped to different categories + - Process each table row independently + - Each row produces one target knowledge file + +6. **Focus on Conversion**: The skill should focus on content conversion and search hint extraction + - Asset collection should be automated (not manual) + - Agents parse directives to find referenced assets + +7. **v5 Support**: v5 mapping and knowledge files will be addressed separately + - v5 mapping file (mapping-v5.md) will be created in a future iteration + - Initial approach: Copy v6 mapping as starting point, then adjust for v5-specific differences + - During content conversion, verify and update references to v5-specific APIs, features, and terminology + - Example differences: Java EE vs Jakarta EE, javax.* vs jakarta.* packages, Java 8 vs Java 17 features + - See Issue #10 for v6 scope; v5 will be tracked in a separate issue + +## Validation + +### Validation Script + +Create `validate-mapping.sh` to verify: + +1. **Category Verification**: Check that all Category IDs in table exist in categories file +2. **Path Verification**: Verify that all Source Path entries exist in both `en/` and `ja/` directories +3. **Title Extraction Verification**: + - Extract titles from both English and Japanese rst/md file headers + - Verify both files exist and have valid headers + - Report files with missing or unparseable headers +4. **URL Verification**: Verify that Official URLs follow conversion rules (optional: check accessibility with HTTP 200 response) +5. **Processing Pattern Verification**: Check that Processing Pattern values are valid (must be one of the processing pattern category IDs or empty) +6. **Target Path Verification**: Verify Target Paths follow naming conventions (subdirectory rules for components, flat structure for others) +7. **Statistics Generation**: Generate category statistics (files per category, mappings per pattern) + +### Output + +- List of undefined category IDs (if any) +- List of missing source files (if any) +- List of files with missing or unparseable headers (if any) +- List of invalid URLs (if any) +- List of invalid Processing Pattern values (if any) +- List of Target Path naming violations (if any) +- Category and processing pattern statistics table + +## Implementation Notes + +- Focus on v6 first since nabledge-6 is the primary target (v5 will be addressed separately) +- Use Japanese documentation URLs (Nablarch users are Japanese) +- Markdown table format enables both human review and programmatic processing by AI agents +- Excel export is required for non-technical stakeholder review +- When knowledge file creation skill is ready, it will read these mapping tables directly diff --git a/doc/mapping/mapping-v6.md b/doc/mapping/mapping-v6.md new file mode 100644 index 00000000..eddcd1da --- /dev/null +++ b/doc/mapping/mapping-v6.md @@ -0,0 +1,311 @@ +# Nablarch v6 Documentation Mapping + +**Generated**: 2026-02-19 +**Total Files**: 302 + +This table maps Nablarch v6 documentation files to nabledge-6 knowledge files. + +| Source Path | Title | Title (ja) | Official URL | Type | Category ID | Processing Pattern | Target Path | +|-------------|-------|------------|--------------|------|-------------|-------------------|-------------| +| about_nablarch/concept.rst | Nablarch Concept | Nablarchのコンセプト | [🔗](https://nablarch.github.io/docs/6u3/doc/about_nablarch/concept.html) | about | about-nablarch | | about/about-nablarch/concept.md | +| about_nablarch/license.rst | Information on Nablarch License | Nablarchのライセンスについて | [🔗](https://nablarch.github.io/docs/6u3/doc/about_nablarch/license.html) | about | about-nablarch | | about/about-nablarch/license.md | +| about_nablarch/mvn_module.rst | Module List of Nablarch | Nablarch のモジュール一覧 | [🔗](https://nablarch.github.io/docs/6u3/doc/about_nablarch/mvn_module.html) | about | about-nablarch | | about/about-nablarch/mvn-module.md | +| about_nablarch/versionup_policy.rst | Nablarch upgrade policy | Nablarch のバージョンアップ方針 | [🔗](https://nablarch.github.io/docs/6u3/doc/about_nablarch/versionup_policy.html) | about | about-nablarch | | about/about-nablarch/versionup-policy.md | +| application_framework/adaptors/doma_adaptor.rst | Doma Adapter | Domaアダプタ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/adaptors/doma_adaptor.html) | component | adapters | | component/adapters/doma-adaptor.md | +| application_framework/adaptors/jaxrs_adaptor.rst | Jakarta RESTful Web Services Adapter | Jakarta RESTful Web Servicesアダプタ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/adaptors/jaxrs_adaptor.html) | component | adapters | | component/adapters/jaxrs-adaptor.md | +| application_framework/adaptors/jsr310_adaptor.rst | JSR310(Date and Time API)Adapter | JSR310(Date and Time API)アダプタ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/adaptors/jsr310_adaptor.html) | component | adapters | | component/adapters/jsr310-adaptor.md | +| application_framework/adaptors/lettuce_adaptor.rst | Lettuce Adapter | Lettuceアダプタ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/adaptors/lettuce_adaptor.html) | component | adapters | | component/adapters/lettuce-adaptor.md | +| application_framework/adaptors/lettuce_adaptor/redishealthchecker_lettuce_adaptor.rst | Redis Health Checker (Lettus) adapter | Redisヘルスチェッカ(Lettuce)アダプタ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/adaptors/lettuce_adaptor/redishealthchecker_lettuce_adaptor.html) | component | adapters | | component/adapters/lettuce_adaptor/redishealthchecker-lettuce-adaptor.md | +| application_framework/adaptors/lettuce_adaptor/redisstore_lettuce_adaptor.rst | Redis Store (Lettus) Adapter | Redisストア(Lettuce)アダプタ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/adaptors/lettuce_adaptor/redisstore_lettuce_adaptor.html) | component | adapters | | component/adapters/lettuce_adaptor/redisstore-lettuce-adaptor.md | +| application_framework/adaptors/log_adaptor.rst | log Adapter | logアダプタ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/adaptors/log_adaptor.html) | component | adapters | | component/adapters/log-adaptor.md | +| application_framework/adaptors/mail_sender_freemarker_adaptor.rst | E-mail FreeMarker Adapter | E-mail FreeMarkerアダプタ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/adaptors/mail_sender_freemarker_adaptor.html) | component | adapters | | component/adapters/mail-sender-freemarker-adaptor.md | +| application_framework/adaptors/mail_sender_thymeleaf_adaptor.rst | E-mail Thymeleaf Adapter | E-mail Thymeleafアダプタ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/adaptors/mail_sender_thymeleaf_adaptor.html) | component | adapters | | component/adapters/mail-sender-thymeleaf-adaptor.md | +| application_framework/adaptors/mail_sender_velocity_adaptor.rst | E-mail Velocity Adapter | E-mail Velocityアダプタ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/adaptors/mail_sender_velocity_adaptor.html) | component | adapters | | component/adapters/mail-sender-velocity-adaptor.md | +| application_framework/adaptors/micrometer_adaptor.rst | Micrometer Adapter | Micrometerアダプタ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/adaptors/micrometer_adaptor.html) | component | adapters | | component/adapters/micrometer-adaptor.md | +| application_framework/adaptors/router_adaptor.rst | Routing Adapter | ルーティングアダプタ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/adaptors/router_adaptor.html) | component | adapters | | component/adapters/router-adaptor.md | +| application_framework/adaptors/slf4j_adaptor.rst | SLF4J Adapter | SLF4Jアダプタ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/adaptors/slf4j_adaptor.html) | component | adapters | | component/adapters/slf4j-adaptor.md | +| application_framework/adaptors/web_thymeleaf_adaptor.rst | Web Application Thymeleaf Adapter | ウェブアプリケーション Thymeleafアダプタ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/adaptors/web_thymeleaf_adaptor.html) | component | adapters | | component/adapters/web-thymeleaf-adaptor.md | +| application_framework/adaptors/webspheremq_adaptor.rst | IBM MQ Adapter | IBM MQアダプタ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/adaptors/webspheremq_adaptor.html) | component | adapters | | component/adapters/webspheremq-adaptor.md | +| application_framework/application_framework/batch/functional_comparison.rst | Function Comparison Between Jakarta Batch-compliant Batch Application and Nablarch Batch Application | Jakarta Batchに準拠したバッチアプリケーションとNablarchバッチアプリケーションとの機能比較 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/batch/functional_comparison.html) | processing-pattern | nablarch-batch | nablarch-batch | processing-pattern/nablarch-batch/functional-comparison.md | +| application_framework/application_framework/batch/index.rst | Batch Application | バッチアプリケーション編 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/batch/index.html) | processing-pattern | nablarch-batch | nablarch-batch | processing-pattern/nablarch-batch/batch.md | +| application_framework/application_framework/batch/jsr352/application_design.rst | Responsibility Assignment of Application | アプリケーションの責務配置 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/batch/jsr352/application_design.html) | processing-pattern | jakarta-batch | jakarta-batch | processing-pattern/jakarta-batch/application-design.md | +| application_framework/application_framework/batch/jsr352/architecture.rst | Architecture Overview | アーキテクチャ概要 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/batch/jsr352/architecture.html) | processing-pattern | jakarta-batch | jakarta-batch | processing-pattern/jakarta-batch/architecture.md | +| application_framework/application_framework/batch/jsr352/feature_details.rst | Details of Function | 機能詳細 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/batch/jsr352/feature_details.html) | processing-pattern | jakarta-batch | jakarta-batch | processing-pattern/jakarta-batch/feature-details.md | +| application_framework/application_framework/batch/jsr352/feature_details/database_reader.rst | Chunk Step with Database as Input | データベースを入力とするChunkステップ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/batch/jsr352/feature_details/database_reader.html) | processing-pattern | jakarta-batch | jakarta-batch | processing-pattern/jakarta-batch/database-reader.md | +| application_framework/application_framework/batch/jsr352/feature_details/operation_policy.rst | Operation Policy | 運用方針 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/batch/jsr352/feature_details/operation_policy.html) | processing-pattern | jakarta-batch | jakarta-batch | processing-pattern/jakarta-batch/operation-policy.md | +| application_framework/application_framework/batch/jsr352/feature_details/operator_notice_log.rst | Output of Logs for Operator | 運用担当者向けのログ出力 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/batch/jsr352/feature_details/operator_notice_log.html) | processing-pattern | jakarta-batch | jakarta-batch | processing-pattern/jakarta-batch/operator-notice-log.md | +| application_framework/application_framework/batch/jsr352/feature_details/pessimistic_lock.rst | Pessimistic Lock for Jakarta Batch-compliant Batch Applications | Jakarta Batchに準拠したバッチアプリケーションの悲観的ロック | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/batch/jsr352/feature_details/pessimistic_lock.html) | processing-pattern | jakarta-batch | jakarta-batch | processing-pattern/jakarta-batch/pessimistic-lock.md | +| application_framework/application_framework/batch/jsr352/feature_details/progress_log.rst | Log Output of Progress Status | 進捗状況のログ出力 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/batch/jsr352/feature_details/progress_log.html) | processing-pattern | jakarta-batch | jakarta-batch | processing-pattern/jakarta-batch/progress-log.md | +| application_framework/application_framework/batch/jsr352/feature_details/run_batch_application.rst | Launching the Jakarta Batch Application | Jakarta Batchアプリケーションの起動 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/batch/jsr352/feature_details/run_batch_application.html) | processing-pattern | jakarta-batch | jakarta-batch | processing-pattern/jakarta-batch/run-batch-application.md | +| application_framework/application_framework/batch/jsr352/getting_started/batchlet/index.rst | Creating a Batch to Delete the data in the target table(Batchlet Step) | 対象テーブルのデータを削除するバッチの作成(Batchletステップ) | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/batch/jsr352/getting_started/batchlet/index.html) | processing-pattern | jakarta-batch | jakarta-batch | processing-pattern/jakarta-batch/getting-started-batchlet.md | +| application_framework/application_framework/batch/jsr352/getting_started/chunk/index.rst | Create Batch to Derive Data (Chunk Step) | データを導出するバッチの作成(Chunkステップ) | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/batch/jsr352/getting_started/chunk/index.html) | processing-pattern | jakarta-batch | jakarta-batch | processing-pattern/jakarta-batch/getting-started-chunk.md | +| application_framework/application_framework/batch/jsr352/getting_started/getting_started.rst | Getting Started | Getting Started | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/batch/jsr352/getting_started/getting_started.html) | processing-pattern | jakarta-batch | jakarta-batch | processing-pattern/jakarta-batch/getting-started.md | +| application_framework/application_framework/batch/jsr352/index.rst | Jakarta Batch-compliant Batch Application | Jakarta Batchに準拠したバッチアプリケーション | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/batch/jsr352/index.html) | processing-pattern | jakarta-batch | jakarta-batch | processing-pattern/jakarta-batch/jsr352.md | +| application_framework/application_framework/batch/nablarch_batch/application_design.rst | Responsibility Assignment of Application | アプリケーションの責務配置 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/batch/nablarch_batch/application_design.html) | processing-pattern | nablarch-batch | nablarch-batch | processing-pattern/nablarch-batch/application-design.md | +| application_framework/application_framework/batch/nablarch_batch/architecture.rst | Architecture Overview | アーキテクチャ概要 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/batch/nablarch_batch/architecture.html) | processing-pattern | nablarch-batch | nablarch-batch | processing-pattern/nablarch-batch/architecture.md | +| application_framework/application_framework/batch/nablarch_batch/feature_details.rst | Details of Function | 機能詳細 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/batch/nablarch_batch/feature_details.html) | processing-pattern | nablarch-batch | nablarch-batch | processing-pattern/nablarch-batch/feature-details.md | +| application_framework/application_framework/batch/nablarch_batch/feature_details/nablarch_batch_error_process.rst | Error Handling of Nablarch Batch Applications | Nablarchバッチアプリケーションのエラー処理 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/batch/nablarch_batch/feature_details/nablarch_batch_error_process.html) | processing-pattern | nablarch-batch | nablarch-batch | processing-pattern/nablarch-batch/nablarch-batch-error-process.md | +| application_framework/application_framework/batch/nablarch_batch/feature_details/nablarch_batch_multiple_process.rst | Multi-processing of Resident Batch Applications | 常駐バッチアプリケーションのマルチプロセス化 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/batch/nablarch_batch/feature_details/nablarch_batch_multiple_process.html) | processing-pattern | nablarch-batch | nablarch-batch | processing-pattern/nablarch-batch/nablarch-batch-multiple-process.md | +| application_framework/application_framework/batch/nablarch_batch/feature_details/nablarch_batch_pessimistic_lock.rst | Pessimistic Lock of Nablarch Batch Application | Nablarchバッチアプリケーションの悲観的ロック | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/batch/nablarch_batch/feature_details/nablarch_batch_pessimistic_lock.html) | processing-pattern | nablarch-batch | nablarch-batch | processing-pattern/nablarch-batch/nablarch-batch-pessimistic-lock.md | +| application_framework/application_framework/batch/nablarch_batch/feature_details/nablarch_batch_retention_state.rst | Retain the Execution Status in Batch Application | バッチアプリケーションで実行中の状態を保持する | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/batch/nablarch_batch/feature_details/nablarch_batch_retention_state.html) | processing-pattern | nablarch-batch | nablarch-batch | processing-pattern/nablarch-batch/nablarch-batch-retention-state.md | +| application_framework/application_framework/batch/nablarch_batch/getting_started/getting_started.rst | Getting Started | Getting Started | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/batch/nablarch_batch/getting_started/getting_started.html) | processing-pattern | nablarch-batch | nablarch-batch | processing-pattern/nablarch-batch/getting-started.md | +| application_framework/application_framework/batch/nablarch_batch/getting_started/nablarch_batch/index.rst | Creating a Batch to Register Files to the DB | ファイルをDBに登録するバッチの作成 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/batch/nablarch_batch/getting_started/nablarch_batch/index.html) | processing-pattern | nablarch-batch | nablarch-batch | processing-pattern/nablarch-batch/getting-started-nablarch_batch.md | +| application_framework/application_framework/blank_project/CustomizeDB.rst | Procedure for Changing the RDBMS used | 使用するRDBMSの変更手順 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/blank_project/CustomizeDB.html) | setup | blank-project | | setup/blank-project/CustomizeDB.md | +| application_framework/application_framework/blank_project/FirstStep.rst | Initial Setup Procedure | 初期セットアップ手順 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/blank_project/FirstStep.html) | setup | blank-project | | setup/blank-project/FirstStep.md | +| application_framework/application_framework/blank_project/FirstStepContainer.rst | Initial Setup Procedure(container) | 初期セットアップ手順(コンテナ) | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/blank_project/FirstStepContainer.html) | setup | blank-project | | setup/blank-project/FirstStepContainer.md | +| application_framework/application_framework/blank_project/MavenModuleStructures/index.rst | Maven Archetype Configuration | Mavenアーキタイプの構成 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/blank_project/MavenModuleStructures/index.html) | setup | blank-project | | setup/blank-project/MavenModuleStructures.md | +| application_framework/application_framework/blank_project/ModifySettings.rst | Configuration Changes Required After Initial Setup | 初期セットアップ後に必要となる設定変更 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/blank_project/ModifySettings.html) | setup | blank-project | | setup/blank-project/ModifySettings.md | +| application_framework/application_framework/blank_project/addin_gsp.rst | Initial Configuration Method of gsp-dba-maven-plugin (DBA Work Support Tool) | gsp-dba-maven-plugin(DBA作業支援ツール)の初期設定方法 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/blank_project/addin_gsp.html) | setup | blank-project | | setup/blank-project/addin-gsp.md | +| application_framework/application_framework/blank_project/beforeFirstStep.rst | Before Initial Setup | 初期セットアップの前に | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/blank_project/beforeFirstStep.html) | setup | blank-project | | setup/blank-project/beforeFirstStep.md | +| application_framework/application_framework/blank_project/firstStep_appendix/ResiBatchReboot.rst | To Restart Messaging Using Tables as Queues | テーブルをキューとして使ったメッセージングを再び起動したい場合にすること | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/blank_project/firstStep_appendix/ResiBatchReboot.html) | setup | blank-project | | setup/blank-project/ResiBatchReboot.md | +| application_framework/application_framework/blank_project/firstStep_appendix/firststep_complement.rst | Initial Setup Procedure Supplementary Information | 初期セットアップ手順 補足事項 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/blank_project/firstStep_appendix/firststep_complement.html) | setup | blank-project | | setup/blank-project/firststep-complement.md | +| application_framework/application_framework/blank_project/maven.rst | Information on Apache Maven | Apache Mavenについて | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/blank_project/maven.html) | setup | blank-project | | setup/blank-project/maven.md | +| application_framework/application_framework/blank_project/setup_blankProject/setup_Java21.rst | How to Setup When Using With Java21 | Java21で使用する場合のセットアップ方法 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/blank_project/setup_blankProject/setup_Java21.html) | setup | blank-project | | setup/blank-project/setup-Java21.md | +| application_framework/application_framework/blank_project/setup_blankProject/setup_Jbatch.rst | Initial Setup of Jakarta Batch-compliant Batch Project | Jakarta Batchに準拠したバッチプロジェクトの初期セットアップ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/blank_project/setup_blankProject/setup_Jbatch.html) | setup | blank-project | jakarta-batch | setup/blank-project/setup-Jbatch.md | +| application_framework/application_framework/blank_project/setup_blankProject/setup_NablarchBatch.rst | Initial Setup of the Nablarch Batch Project | Nablarchバッチプロジェクトの初期セットアップ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/blank_project/setup_blankProject/setup_NablarchBatch.html) | setup | blank-project | nablarch-batch | setup/blank-project/setup-NablarchBatch.md | +| application_framework/application_framework/blank_project/setup_blankProject/setup_NablarchBatch_Dbless.rst | Initial Setup of the Nablarch Batch Project without DB connection | Nablarchバッチ(DB接続無し)プロジェクトの初期セットアップ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/blank_project/setup_blankProject/setup_NablarchBatch_Dbless.html) | setup | blank-project | nablarch-batch | setup/blank-project/setup-NablarchBatch-Dbless.md | +| application_framework/application_framework/blank_project/setup_blankProject/setup_Web.rst | Initial Setup of Web Project | ウェブプロジェクトの初期セットアップ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/blank_project/setup_blankProject/setup_Web.html) | setup | blank-project | web-application | setup/blank-project/setup-Web.md | +| application_framework/application_framework/blank_project/setup_blankProject/setup_WebService.rst | Initial Setup of RESTful Web Service Project | RESTfulウェブサービスプロジェクトの初期セットアップ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/blank_project/setup_blankProject/setup_WebService.html) | setup | blank-project | restful-web-service | setup/blank-project/setup-WebService.md | +| application_framework/application_framework/blank_project/setup_containerBlankProject/setup_ContainerBatch.rst | Initial Setup of Nablarch batch Project for Container | コンテナ用Nablarchバッチプロジェクトの初期セットアップ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/blank_project/setup_containerBlankProject/setup_ContainerBatch.html) | setup | blank-project | nablarch-batch | setup/blank-project/setup-ContainerBatch.md | +| application_framework/application_framework/blank_project/setup_containerBlankProject/setup_ContainerBatch_Dbless.rst | Initial Setup of Nablarch batch Project for Container without DB connection | コンテナ用Nablarchバッチ(DB接続無し)プロジェクトの初期セットアップ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/blank_project/setup_containerBlankProject/setup_ContainerBatch_Dbless.html) | setup | blank-project | nablarch-batch | setup/blank-project/setup-ContainerBatch-Dbless.md | +| application_framework/application_framework/blank_project/setup_containerBlankProject/setup_ContainerWeb.rst | Initial Setup of Web Project for Container | コンテナ用ウェブプロジェクトの初期セットアップ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/blank_project/setup_containerBlankProject/setup_ContainerWeb.html) | setup | blank-project | web-application | setup/blank-project/setup-ContainerWeb.md | +| application_framework/application_framework/blank_project/setup_containerBlankProject/setup_ContainerWebService.rst | Initial Setup of RESTful Web Service Project for Container | コンテナ用RESTfulウェブサービスプロジェクトの初期セットアップ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/blank_project/setup_containerBlankProject/setup_ContainerWebService.html) | setup | blank-project | restful-web-service | setup/blank-project/setup-ContainerWebService.md | +| application_framework/application_framework/cloud_native/containerize/index.rst | Docker Containerization | Dockerコンテナ化 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/cloud_native/containerize/index.html) | setup | cloud-native | | setup/cloud-native/containerize.md | +| application_framework/application_framework/cloud_native/distributed_tracing/aws_distributed_tracing.rst | Distributed Tracing in AWS | AWSにおける分散トレーシング | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/cloud_native/distributed_tracing/aws_distributed_tracing.html) | setup | cloud-native | | setup/cloud-native/aws-distributed-tracing.md | +| application_framework/application_framework/cloud_native/distributed_tracing/azure_distributed_tracing.rst | Distributed Tracing in Azure | Azureにおける分散トレーシング | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/cloud_native/distributed_tracing/azure_distributed_tracing.html) | setup | cloud-native | | setup/cloud-native/azure-distributed-tracing.md | +| application_framework/application_framework/cloud_native/distributed_tracing/index.rst | Distributed Tracing | 分散トレーシング | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/cloud_native/distributed_tracing/index.html) | setup | cloud-native | | setup/cloud-native/distributed-tracing.md | +| application_framework/application_framework/configuration/index.rst | Default Configuration List | デフォルト設定一覧 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/configuration/index.html) | setup | configuration | | setup/configuration/configuration.md | +| application_framework/application_framework/handlers/batch/dbless_loop_handler.rst | Loop Control Handler | ループ制御ハンドラ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/batch/dbless_loop_handler.html) | processing-pattern | nablarch-batch | nablarch-batch | processing-pattern/nablarch-batch/dbless-loop-handler.md | +| application_framework/application_framework/handlers/batch/loop_handler.rst | Transaction Loop Control Handler | トランザクションループ制御ハンドラ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/batch/loop_handler.html) | processing-pattern | nablarch-batch | nablarch-batch | processing-pattern/nablarch-batch/loop-handler.md | +| application_framework/application_framework/handlers/batch/process_resident_handler.rst | Process Resident Handler | プロセス常駐化ハンドラ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/batch/process_resident_handler.html) | processing-pattern | nablarch-batch | nablarch-batch | processing-pattern/nablarch-batch/process-resident-handler.md | +| application_framework/application_framework/handlers/common/ServiceAvailabilityCheckHandler.rst | Service Availability Check Handler | サービス提供可否チェックハンドラ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/common/ServiceAvailabilityCheckHandler.html) | component | handlers | | component/handlers/common/ServiceAvailabilityCheckHandler.md | +| application_framework/application_framework/handlers/common/database_connection_management_handler.rst | Database Connection Management Handler | データベース接続管理ハンドラ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/common/database_connection_management_handler.html) | component | handlers | | component/handlers/common/database-connection-management-handler.md | +| application_framework/application_framework/handlers/common/file_record_writer_dispose_handler.rst | Output File Release Handler | 出力ファイル開放ハンドラ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/common/file_record_writer_dispose_handler.html) | component | handlers | | component/handlers/common/file-record-writer-dispose-handler.md | +| application_framework/application_framework/handlers/common/global_error_handler.rst | Global Error Handler | グローバルエラーハンドラ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/common/global_error_handler.html) | component | handlers | | component/handlers/common/global-error-handler.md | +| application_framework/application_framework/handlers/common/permission_check_handler.rst | Permission Check Handler | 認可チェックハンドラ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/common/permission_check_handler.html) | component | handlers | | component/handlers/common/permission-check-handler.md | +| application_framework/application_framework/handlers/common/request_handler_entry.rst | Request Handler Entry | リクエストハンドラエントリ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/common/request_handler_entry.html) | component | handlers | | component/handlers/common/request-handler-entry.md | +| application_framework/application_framework/handlers/common/request_path_java_package_mapping.rst | Request Dispatch Handler | リクエストディスパッチハンドラ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/common/request_path_java_package_mapping.html) | component | handlers | | component/handlers/common/request-path-java-package-mapping.md | +| application_framework/application_framework/handlers/common/thread_context_clear_handler.rst | Thread Context Variable Delete Handler | スレッドコンテキスト変数削除ハンドラ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/common/thread_context_clear_handler.html) | component | handlers | | component/handlers/common/thread-context-clear-handler.md | +| application_framework/application_framework/handlers/common/thread_context_handler.rst | Thread Context Variable Management Handler | スレッドコンテキスト変数管理ハンドラ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/common/thread_context_handler.html) | component | handlers | | component/handlers/common/thread-context-handler.md | +| application_framework/application_framework/handlers/common/transaction_management_handler.rst | Transaction Control Handler | トランザクション制御ハンドラ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/common/transaction_management_handler.html) | component | handlers | | component/handlers/common/transaction-management-handler.md | +| application_framework/application_framework/handlers/http_messaging/http_messaging_error_handler.rst | HTTP Messaging Error Control Handler | HTTPメッセージングエラー制御ハンドラ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/http_messaging/http_messaging_error_handler.html) | component | handlers | http-messaging | component/handlers/http_messaging/http-messaging-error-handler.md | +| application_framework/application_framework/handlers/http_messaging/http_messaging_request_parsing_handler.rst | HTTP Messaging Request Conversion Handler | HTTPメッセージングリクエスト変換ハンドラ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/http_messaging/http_messaging_request_parsing_handler.html) | component | handlers | http-messaging | component/handlers/http_messaging/http-messaging-request-parsing-handler.md | +| application_framework/application_framework/handlers/http_messaging/http_messaging_response_building_handler.rst | HTTP Messaging Response Conversion Handler | HTTPメッセージングレスポンス変換ハンドラ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/http_messaging/http_messaging_response_building_handler.html) | component | handlers | http-messaging | component/handlers/http_messaging/http-messaging-response-building-handler.md | +| application_framework/application_framework/handlers/mom_messaging/message_reply_handler.rst | Message Response Control Handler | 電文応答制御ハンドラ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/mom_messaging/message_reply_handler.html) | component | handlers | mom-messaging | component/handlers/mom_messaging/message-reply-handler.md | +| application_framework/application_framework/handlers/mom_messaging/message_resend_handler.rst | Resent Message Control Handler | 再送電文制御ハンドラ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/mom_messaging/message_resend_handler.html) | component | handlers | mom-messaging | component/handlers/mom_messaging/message-resend-handler.md | +| application_framework/application_framework/handlers/mom_messaging/messaging_context_handler.rst | Messaging Context Management Handler | メッセージングコンテキスト管理ハンドラ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/mom_messaging/messaging_context_handler.html) | component | handlers | mom-messaging | component/handlers/mom_messaging/messaging-context-handler.md | +| application_framework/application_framework/handlers/rest/body_convert_handler.rst | Request Body Conversion Handler | リクエストボディ変換ハンドラ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/rest/body_convert_handler.html) | component | handlers | restful-web-service | component/handlers/rest/body-convert-handler.md | +| application_framework/application_framework/handlers/rest/cors_preflight_request_handler.rst | CORS Preflight Request Handler | CORSプリフライトリクエストハンドラ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/rest/cors_preflight_request_handler.html) | component | handlers | restful-web-service | component/handlers/rest/cors-preflight-request-handler.md | +| application_framework/application_framework/handlers/rest/jaxrs_access_log_handler.rst | HTTP Access Log (for RESTful Web Service) Handler | HTTPアクセスログ(RESTfulウェブサービス用)ハンドラ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/rest/jaxrs_access_log_handler.html) | component | handlers | restful-web-service | component/handlers/rest/jaxrs-access-log-handler.md | +| application_framework/application_framework/handlers/rest/jaxrs_bean_validation_handler.rst | Jakarta RESTful Web Servcies Bean Validation Handler | Jakarta RESTful Web Servcies Bean Validationハンドラ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/rest/jaxrs_bean_validation_handler.html) | component | handlers | restful-web-service | component/handlers/rest/jaxrs-bean-validation-handler.md | +| application_framework/application_framework/handlers/rest/jaxrs_response_handler.rst | Jakarta RESTful Web Services Response Handler | Jakarta RESTful Web Servicesレスポンスハンドラ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/rest/jaxrs_response_handler.html) | component | handlers | restful-web-service | component/handlers/rest/jaxrs-response-handler.md | +| application_framework/application_framework/handlers/standalone/data_read_handler.rst | Data Read Handler | データリードハンドラ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/standalone/data_read_handler.html) | component | handlers | nablarch-batch | component/handlers/standalone/data-read-handler.md | +| application_framework/application_framework/handlers/standalone/duplicate_process_check_handler.rst | Process Multiple Launch Prevention Handler | プロセス多重起動防止ハンドラ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/standalone/duplicate_process_check_handler.html) | component | handlers | nablarch-batch | component/handlers/standalone/duplicate-process-check-handler.md | +| application_framework/application_framework/handlers/standalone/main.rst | Common Launcher | 共通起動ランチャ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/standalone/main.html) | component | handlers | nablarch-batch | component/handlers/standalone/main.md | +| application_framework/application_framework/handlers/standalone/multi_thread_execution_handler.rst | Multi-thread Execution Control Handler | マルチスレッド実行制御ハンドラ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/standalone/multi_thread_execution_handler.html) | component | handlers | nablarch-batch | component/handlers/standalone/multi-thread-execution-handler.md | +| application_framework/application_framework/handlers/standalone/process_stop_handler.rst | Process Stop Control Handler | プロセス停止制御ハンドラ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/standalone/process_stop_handler.html) | component | handlers | nablarch-batch | component/handlers/standalone/process-stop-handler.md | +| application_framework/application_framework/handlers/standalone/request_thread_loop_handler.rst | Loop Control Handler in Request Thread | リクエストスレッド内ループ制御ハンドラ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/standalone/request_thread_loop_handler.html) | component | handlers | nablarch-batch | component/handlers/standalone/request-thread-loop-handler.md | +| application_framework/application_framework/handlers/standalone/retry_handler.rst | Retry Handler | リトライハンドラ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/standalone/retry_handler.html) | component | handlers | nablarch-batch | component/handlers/standalone/retry-handler.md | +| application_framework/application_framework/handlers/standalone/status_code_convert_handler.rst | Status Code → Process End Code Conversion Handler | ステータスコード→プロセス終了コード変換ハンドラ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/standalone/status_code_convert_handler.html) | component | handlers | nablarch-batch | component/handlers/standalone/status-code-convert-handler.md | +| application_framework/application_framework/handlers/web/HttpErrorHandler.rst | HTTP Error Control Handler | HTTPエラー制御ハンドラ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/web/HttpErrorHandler.html) | component | handlers | web-application | component/handlers/web/HttpErrorHandler.md | +| application_framework/application_framework/handlers/web/SessionStoreHandler.rst | Session Variable Store Handler | セッション変数保存ハンドラ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/web/SessionStoreHandler.html) | component | handlers | web-application | component/handlers/web/SessionStoreHandler.md | +| application_framework/application_framework/handlers/web/csrf_token_verification_handler.rst | CSRF Token Verification Handler | CSRFトークン検証ハンドラ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/web/csrf_token_verification_handler.html) | component | handlers | web-application | component/handlers/web/csrf-token-verification-handler.md | +| application_framework/application_framework/handlers/web/forwarding_handler.rst | Internal Forward Handler | 内部フォーワードハンドラ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/web/forwarding_handler.html) | component | handlers | web-application | component/handlers/web/forwarding-handler.md | +| application_framework/application_framework/handlers/web/health_check_endpoint_handler.rst | Health Check Endpoint Handler | ヘルスチェックエンドポイントハンドラ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/web/health_check_endpoint_handler.html) | component | handlers | web-application | component/handlers/web/health-check-endpoint-handler.md | +| application_framework/application_framework/handlers/web/hot_deploy_handler.rst | Hot Deploy Handler | ホットデプロイハンドラ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/web/hot_deploy_handler.html) | component | handlers | web-application | component/handlers/web/hot-deploy-handler.md | +| application_framework/application_framework/handlers/web/http_access_log_handler.rst | HTTP Access Log Handler | HTTPアクセスログハンドラ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/web/http_access_log_handler.html) | component | handlers | web-application | component/handlers/web/http-access-log-handler.md | +| application_framework/application_framework/handlers/web/http_character_encoding_handler.rst | HTTP Character Encoding Control Handler | HTTP文字エンコード制御ハンドラ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/web/http_character_encoding_handler.html) | component | handlers | web-application | component/handlers/web/http-character-encoding-handler.md | +| application_framework/application_framework/handlers/web/http_request_java_package_mapping.rst | HTTP Request Dispatch Handler | HTTPリクエストディスパッチハンドラ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/web/http_request_java_package_mapping.html) | component | handlers | web-application | component/handlers/web/http-request-java-package-mapping.md | +| application_framework/application_framework/handlers/web/http_response_handler.rst | HTTP Response Handler | HTTPレスポンスハンドラ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/web/http_response_handler.html) | component | handlers | web-application | component/handlers/web/http-response-handler.md | +| application_framework/application_framework/handlers/web/http_rewrite_handler.rst | HTTP Rewrite Handler | HTTPリライトハンドラ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/web/http_rewrite_handler.html) | component | handlers | web-application | component/handlers/web/http-rewrite-handler.md | +| application_framework/application_framework/handlers/web/keitai_access_handler.rst | Mobile Terminal Access Handler | 携帯端末アクセスハンドラ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/web/keitai_access_handler.html) | component | handlers | web-application | component/handlers/web/keitai-access-handler.md | +| application_framework/application_framework/handlers/web/multipart_handler.rst | Multipart Request Handler | マルチパートリクエストハンドラ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/web/multipart_handler.html) | component | handlers | web-application | component/handlers/web/multipart-handler.md | +| application_framework/application_framework/handlers/web/nablarch_tag_handler.rst | Nablarch Custom Tag Control Handler | Nablarchカスタムタグ制御ハンドラ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/web/nablarch_tag_handler.html) | component | handlers | web-application | component/handlers/web/nablarch-tag-handler.md | +| application_framework/application_framework/handlers/web/normalize_handler.rst | Normalize Handler | ノーマライズハンドラ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/web/normalize_handler.html) | component | handlers | web-application | component/handlers/web/normalize-handler.md | +| application_framework/application_framework/handlers/web/post_resubmit_prevent_handler.rst | POST Resubmit Prevention Handler | POST再送信防止ハンドラ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/web/post_resubmit_prevent_handler.html) | component | handlers | web-application | component/handlers/web/post-resubmit-prevent-handler.md | +| application_framework/application_framework/handlers/web/resource_mapping.rst | Resource Mapping Handler | リソースマッピングハンドラ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/web/resource_mapping.html) | component | handlers | web-application | component/handlers/web/resource-mapping.md | +| application_framework/application_framework/handlers/web/secure_handler.rst | Secure Handler | セキュアハンドラ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/web/secure_handler.html) | component | handlers | web-application | component/handlers/web/secure-handler.md | +| application_framework/application_framework/handlers/web/session_concurrent_access_handler.rst | Session Concurrent Access Handler | セッション並行アクセスハンドラ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/web/session_concurrent_access_handler.html) | component | handlers | web-application | component/handlers/web/session-concurrent-access-handler.md | +| application_framework/application_framework/handlers/web_interceptor/InjectForm.rst | InjectForm Interceptor | InjectForm インターセプタ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/web_interceptor/InjectForm.html) | component | handlers | web-application | component/handlers/web_interceptor/InjectForm.md | +| application_framework/application_framework/handlers/web_interceptor/on_double_submission.rst | OnDoubleSubmission Interceptor | OnDoubleSubmissionインターセプタ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/web_interceptor/on_double_submission.html) | component | handlers | web-application | component/handlers/web_interceptor/on-double-submission.md | +| application_framework/application_framework/handlers/web_interceptor/on_error.rst | OnError Interceptor | OnErrorインターセプタ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/web_interceptor/on_error.html) | component | handlers | web-application | component/handlers/web_interceptor/on-error.md | +| application_framework/application_framework/handlers/web_interceptor/on_errors.rst | OnErrors Interceptor | OnErrorsインターセプタ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/web_interceptor/on_errors.html) | component | handlers | web-application | component/handlers/web_interceptor/on-errors.md | +| application_framework/application_framework/handlers/web_interceptor/use_token.rst | UseToken Interceptor | UseTokenインターセプタ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/handlers/web_interceptor/use_token.html) | component | handlers | web-application | component/handlers/web_interceptor/use-token.md | +| application_framework/application_framework/libraries/authorization/permission_check.rst | Permission Check by handler | ハンドラによる認可チェック | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/libraries/authorization/permission_check.html) | component | libraries | | component/libraries/authorization/permission-check.md | +| application_framework/application_framework/libraries/authorization/role_check.rst | Permission Check by annotation | アノテーションによる認可チェック | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/libraries/authorization/role_check.html) | component | libraries | | component/libraries/authorization/role-check.md | +| application_framework/application_framework/libraries/bean_util.rst | BeanUtil | BeanUtil | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/libraries/bean_util.html) | component | libraries | | component/libraries/bean-util.md | +| application_framework/application_framework/libraries/code.rst | Code Management | コード管理 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/libraries/code.html) | component | libraries | | component/libraries/code.md | +| application_framework/application_framework/libraries/data_converter.rst | Access to Data in Various Formats | 様々なフォーマットのデータへのアクセス | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/libraries/data_converter.html) | component | libraries | | component/libraries/data-converter.md | +| application_framework/application_framework/libraries/data_io/data_bind.rst | Data Bind | データバインド | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/libraries/data_io/data_bind.html) | component | libraries | | component/libraries/data_io/data-bind.md | +| application_framework/application_framework/libraries/data_io/data_format.rst | General Data Format | 汎用データフォーマット | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/libraries/data_io/data_format.html) | component | libraries | | component/libraries/data_io/data-format.md | +| application_framework/application_framework/libraries/data_io/data_format/format_definition.rst | Description Rules for Format Definition File | フォーマット定義ファイルの記述ルール | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/libraries/data_io/data_format/format_definition.html) | component | libraries | | component/libraries/data_io/data_format/format-definition.md | +| application_framework/application_framework/libraries/data_io/data_format/multi_format_example.rst | Sample Collection of Fixed (Fixed-Length) Multi Format Definition | Fixed(固定長)のマルチフォーマット定義のサンプル集 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/libraries/data_io/data_format/multi_format_example.html) | component | libraries | | component/libraries/data_io/data_format/multi-format-example.md | +| application_framework/application_framework/libraries/data_io/functional_comparison.rst | Comparison Table of Data Bind and General Data Format | データバインドと汎用データフォーマットの比較表 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/libraries/data_io/functional_comparison.html) | component | libraries | | component/libraries/data_io/functional-comparison.md | +| application_framework/application_framework/libraries/database/database.rst | Database Access (JDBC Wrapper) | データベースアクセス(JDBCラッパー) | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/libraries/database/database.html) | component | libraries | | component/libraries/database/database.md | +| application_framework/application_framework/libraries/database/functional_comparison.rst | Functional Comparison Between Universal DAO and Jakarta Persistence | ユニバーサルDAOとJakarta Persistenceとの機能比較 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/libraries/database/functional_comparison.html) | component | libraries | | component/libraries/database/functional-comparison.md | +| application_framework/application_framework/libraries/database/generator.rst | Surrogate Key Numbering | サロゲートキーの採番 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/libraries/database/generator.html) | component | libraries | | component/libraries/database/generator.md | +| application_framework/application_framework/libraries/database/universal_dao.rst | Universal DAO | ユニバーサルDAO | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/libraries/database/universal_dao.html) | component | libraries | | component/libraries/database/universal-dao.md | +| application_framework/application_framework/libraries/database_management.rst | Database Access | データベースアクセス | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/libraries/database_management.html) | component | libraries | | component/libraries/database-management.md | +| application_framework/application_framework/libraries/date.rst | Date Management | 日付管理 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/libraries/date.html) | component | libraries | | component/libraries/date.md | +| application_framework/application_framework/libraries/db_double_submit.rst | Double submission prevention using the database | データベースを使用した二重サブミット防止 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/libraries/db_double_submit.html) | component | libraries | | component/libraries/db-double-submit.md | +| application_framework/application_framework/libraries/exclusive_control.rst | Exclusive Control | 排他制御 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/libraries/exclusive_control.html) | component | libraries | | component/libraries/exclusive-control.md | +| application_framework/application_framework/libraries/file_path_management.rst | File path management | ファイルパス管理 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/libraries/file_path_management.html) | component | libraries | | component/libraries/file-path-management.md | +| application_framework/application_framework/libraries/format.rst | Formatter | フォーマッタ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/libraries/format.html) | component | libraries | | component/libraries/format.md | +| application_framework/application_framework/libraries/log.rst | Log Output | ログ出力 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/libraries/log.html) | component | libraries | | component/libraries/log.md | +| application_framework/application_framework/libraries/log/failure_log.rst | Output of Failure Log | 障害ログの出力 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/libraries/log/failure_log.html) | component | libraries | | component/libraries/log/failure-log.md | +| application_framework/application_framework/libraries/log/http_access_log.rst | Output of HTTP Access Log | HTTPアクセスログの出力 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/libraries/log/http_access_log.html) | component | libraries | | component/libraries/log/http-access-log.md | +| application_framework/application_framework/libraries/log/jaxrs_access_log.rst | Output of HTTP Access Log (for RESTful Web Service) | HTTPアクセスログ(RESTfulウェブサービス用)の出力 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/libraries/log/jaxrs_access_log.html) | component | libraries | | component/libraries/log/jaxrs-access-log.md | +| application_framework/application_framework/libraries/log/messaging_log.rst | Output Messaging Log | メッセージングログの出力 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/libraries/log/messaging_log.html) | component | libraries | | component/libraries/log/messaging-log.md | +| application_framework/application_framework/libraries/log/performance_log.rst | Output of Performance Log | パフォーマンスログの出力 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/libraries/log/performance_log.html) | component | libraries | | component/libraries/log/performance-log.md | +| application_framework/application_framework/libraries/log/sql_log.rst | Output of SQL Log | SQLログの出力 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/libraries/log/sql_log.html) | component | libraries | | component/libraries/log/sql-log.md | +| application_framework/application_framework/libraries/mail.rst | Sending Emails | メール送信 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/libraries/mail.html) | component | libraries | | component/libraries/mail.md | +| application_framework/application_framework/libraries/message.rst | Message Management | メッセージ管理 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/libraries/message.html) | component | libraries | | component/libraries/message.md | +| application_framework/application_framework/libraries/permission_check.rst | Permission Check | 認可チェック | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/libraries/permission_check.html) | component | libraries | | component/libraries/permission-check.md | +| application_framework/application_framework/libraries/repository.rst | System Repository | システムリポジトリ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/libraries/repository.html) | component | libraries | | component/libraries/repository.md | +| application_framework/application_framework/libraries/service_availability.rst | Service Availability Check | サービス提供可否チェック | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/libraries/service_availability.html) | component | libraries | | component/libraries/service-availability.md | +| application_framework/application_framework/libraries/session_store.rst | Session Store | セッションストア | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/libraries/session_store.html) | component | libraries | | component/libraries/session-store.md | +| application_framework/application_framework/libraries/session_store/create_example.rst | Implementation Example with Registration Function | 登録機能での実装例 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/libraries/session_store/create_example.html) | component | libraries | | component/libraries/session_store/create-example.md | +| application_framework/application_framework/libraries/session_store/update_example.rst | Implementation Example with Update Function | 更新機能での実装例 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/libraries/session_store/update_example.html) | component | libraries | | component/libraries/session_store/update-example.md | +| application_framework/application_framework/libraries/stateless_web_app.rst | Making Web Applications Stateless | Webアプリケーションをステートレスにする | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/libraries/stateless_web_app.html) | component | libraries | | component/libraries/stateless-web-app.md | +| application_framework/application_framework/libraries/static_data_cache.rst | Static Data Cache | 静的データのキャッシュ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/libraries/static_data_cache.html) | component | libraries | | component/libraries/static-data-cache.md | +| application_framework/application_framework/libraries/system_messaging.rst | Intersystem Messaging | システム間メッセージング | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/libraries/system_messaging.html) | component | libraries | | component/libraries/system-messaging.md | +| application_framework/application_framework/libraries/system_messaging/http_system_messaging.rst | HTTP Messaging | HTTPメッセージング | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/libraries/system_messaging/http_system_messaging.html) | component | libraries | | component/libraries/system_messaging/http-system-messaging.md | +| application_framework/application_framework/libraries/system_messaging/mom_system_messaging.rst | MOM Messaging | MOMメッセージング | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/libraries/system_messaging/mom_system_messaging.html) | component | libraries | | component/libraries/system_messaging/mom-system-messaging.md | +| application_framework/application_framework/libraries/tag.rst | Jakarta Server Pages Custom Tags | Jakarta Server Pagesカスタムタグ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/libraries/tag.html) | component | libraries | | component/libraries/tag.md | +| application_framework/application_framework/libraries/tag/tag_reference.rst | Tag Reference | タグリファレンス | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/libraries/tag/tag_reference.html) | component | libraries | | component/libraries/tag/tag-reference.md | +| application_framework/application_framework/libraries/transaction.rst | Transaction Management | トランザクション管理 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/libraries/transaction.html) | component | libraries | | component/libraries/transaction.md | +| application_framework/application_framework/libraries/utility.rst | General-purpose Utility | 汎用ユーティリティ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/libraries/utility.html) | component | libraries | | component/libraries/utility.md | +| application_framework/application_framework/libraries/validation.rst | Input Value Check | 入力値のチェック | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/libraries/validation.html) | component | libraries | | component/libraries/validation.md | +| application_framework/application_framework/libraries/validation/bean_validation.rst | Bean Validation | Bean Validation | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/libraries/validation/bean_validation.html) | component | libraries | | component/libraries/validation/bean-validation.md | +| application_framework/application_framework/libraries/validation/functional_comparison.rst | Comparison of Function between Bean Validation and Nablarch Validation | Bean ValidationとNablarch Validationの機能比較 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/libraries/validation/functional_comparison.html) | component | libraries | | component/libraries/validation/functional-comparison.md | +| application_framework/application_framework/libraries/validation/nablarch_validation.rst | Nablarch Validation | Nablarch Validation | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/libraries/validation/nablarch_validation.html) | component | libraries | | component/libraries/validation/nablarch-validation.md | +| application_framework/application_framework/messaging/db/application_design.rst | Responsibility Assignment of the Application | アプリケーションの責務配置 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/messaging/db/application_design.html) | processing-pattern | db-messaging | db-messaging | processing-pattern/db-messaging/application-design.md | +| application_framework/application_framework/messaging/db/architecture.rst | Architecture Overview | アーキテクチャ概要 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/messaging/db/architecture.html) | processing-pattern | db-messaging | db-messaging | processing-pattern/db-messaging/architecture.md | +| application_framework/application_framework/messaging/db/feature_details.rst | Details of Function | 機能詳細 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/messaging/db/feature_details.html) | processing-pattern | db-messaging | db-messaging | processing-pattern/db-messaging/feature-details.md | +| application_framework/application_framework/messaging/db/feature_details/error_processing.rst | Error Handling for Messaging Which Uses Database as Queue | データベースをキューとしたメッセージングのエラー処理 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/messaging/db/feature_details/error_processing.html) | processing-pattern | db-messaging | db-messaging | processing-pattern/db-messaging/error-processing.md | +| application_framework/application_framework/messaging/db/feature_details/multiple_process.rst | Multi-process | マルチプロセス化 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/messaging/db/feature_details/multiple_process.html) | processing-pattern | db-messaging | db-messaging | processing-pattern/db-messaging/multiple-process.md | +| application_framework/application_framework/messaging/db/getting_started.rst | Getting Started | Getting Started | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/messaging/db/getting_started.html) | processing-pattern | db-messaging | db-messaging | processing-pattern/db-messaging/getting-started.md | +| application_framework/application_framework/messaging/db/getting_started/table_queue.rst | Create an Application That Monitors Table Queues and Imports Unprocessed Data | テーブルキューを監視し未処理データを取り込むアプリケーションの作成 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/messaging/db/getting_started/table_queue.html) | processing-pattern | db-messaging | db-messaging | processing-pattern/db-messaging/table-queue.md | +| application_framework/application_framework/messaging/mom/application_design.rst | Responsibility Assignment of the Application | アプリケーションの責務配置 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/messaging/mom/application_design.html) | processing-pattern | mom-messaging | mom-messaging | processing-pattern/mom-messaging/application-design.md | +| application_framework/application_framework/messaging/mom/architecture.rst | Architecture Overview | アーキテクチャ概要 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/messaging/mom/architecture.html) | processing-pattern | mom-messaging | mom-messaging | processing-pattern/mom-messaging/architecture.md | +| application_framework/application_framework/messaging/mom/feature_details.rst | Details of Function | 機能詳細 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/messaging/mom/feature_details.html) | processing-pattern | mom-messaging | mom-messaging | processing-pattern/mom-messaging/feature-details.md | +| application_framework/application_framework/messaging/mom/getting_started.rst | Getting Started | Getting Started | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/messaging/mom/getting_started.html) | processing-pattern | mom-messaging | mom-messaging | processing-pattern/mom-messaging/getting-started.md | +| application_framework/application_framework/nablarch/architecture.rst | Architecture | アーキテクチャ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/nablarch/architecture.html) | about | about-nablarch | | about/about-nablarch/architecture.md | +| application_framework/application_framework/nablarch/big_picture.rst | Big Picture | 全体像 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/nablarch/big_picture.html) | about | about-nablarch | | about/about-nablarch/big-picture.md | +| application_framework/application_framework/nablarch/platform.rst | Operating Environment | 稼動環境 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/nablarch/platform.html) | about | about-nablarch | | about/about-nablarch/platform.md | +| application_framework/application_framework/nablarch/policy.rst | Basic Policy | 基本方針 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/nablarch/policy.html) | about | about-nablarch | | about/about-nablarch/policy.md | +| application_framework/application_framework/setting_guide/CustomizingConfigurations/CustomizeAvailableCharacters.rst | Procedure to add available characters | 使用可能文字の追加手順 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/setting_guide/CustomizingConfigurations/CustomizeAvailableCharacters.html) | setup | setting-guide | | setup/setting-guide/CustomizeAvailableCharacters.md | +| application_framework/application_framework/setting_guide/CustomizingConfigurations/CustomizeMessageIDAndMessage.rst | Procedure for Changing the Message ID and Message Content | メッセージID及びメッセージ内容の変更手順 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/setting_guide/CustomizingConfigurations/CustomizeMessageIDAndMessage.html) | setup | setting-guide | | setup/setting-guide/CustomizeMessageIDAndMessage.md | +| application_framework/application_framework/setting_guide/CustomizingConfigurations/CustomizeSystemTableName.rst | Procedure to rename a table used by Nablarch framework | Nablarchフレームワークが使用するテーブル名の変更手順 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/setting_guide/CustomizingConfigurations/CustomizeSystemTableName.html) | setup | setting-guide | | setup/setting-guide/CustomizeSystemTableName.md | +| application_framework/application_framework/setting_guide/CustomizingConfigurations/config_key_naming.rst | Item Name Rule for Environment Configuration Values | 環境設定値の項目名ルール | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/setting_guide/CustomizingConfigurations/config_key_naming.html) | setup | setting-guide | | setup/setting-guide/config-key-naming.md | +| application_framework/application_framework/setting_guide/CustomizingConfigurations/index.rst | How to Change the Configuration from the Default Configuration | デフォルト設定値からの設定変更方法 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/setting_guide/CustomizingConfigurations/index.html) | setup | setting-guide | | setup/setting-guide/customizing-configurations.md | +| application_framework/application_framework/setting_guide/ManagingEnvironmentalConfiguration/index.rst | How to Manage the Configuration Depending on the Processing Architecture and Environment | 処理方式、環境に依存する設定の管理方法 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/setting_guide/ManagingEnvironmentalConfiguration/index.html) | setup | setting-guide | | setup/setting-guide/managing-environmental-configuration.md | +| application_framework/application_framework/web/application_design.rst | Responsibility Assignment of the Application | アプリケーションの責務配置 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/web/application_design.html) | processing-pattern | web-application | web-application | processing-pattern/web-application/application-design.md | +| application_framework/application_framework/web/architecture.rst | Architecture Overview | アーキテクチャ概要 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/web/architecture.html) | processing-pattern | web-application | web-application | processing-pattern/web-application/architecture.md | +| application_framework/application_framework/web/feature_details.rst | Details of Function | 機能詳細 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/web/feature_details.html) | processing-pattern | web-application | web-application | processing-pattern/web-application/feature-details.md | +| application_framework/application_framework/web/feature_details/error_message.rst | Display Validation Error Messages on the Screen | バリデーションエラーのメッセージを画面表示する | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/web/feature_details/error_message.html) | processing-pattern | web-application | web-application | processing-pattern/web-application/error-message.md | +| application_framework/application_framework/web/feature_details/forward_error_page.rst | How to Specify the Transition Destination When an Error Occurs | エラー時の遷移先の指定方法 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/web/feature_details/forward_error_page.html) | processing-pattern | web-application | web-application | processing-pattern/web-application/forward-error-page.md | +| application_framework/application_framework/web/feature_details/jsp_session.rst | How to Prevent JSP from Automatically Creating HTTP Sessions | JSPで自動的にHTTPセッションを作成しないようにする方法 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/web/feature_details/jsp_session.html) | processing-pattern | web-application | web-application | processing-pattern/web-application/jsp-session.md | +| application_framework/application_framework/web/feature_details/nablarch_servlet_context_listener.rst | Nablarch Servlet Context Initialization Listener | Nablarchサーブレットコンテキスト初期化リスナー | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/web/feature_details/nablarch_servlet_context_listener.html) | processing-pattern | web-application | web-application | processing-pattern/web-application/nablarch-servlet-context-listener.md | +| application_framework/application_framework/web/feature_details/view/other.rst | Screen Development Using Other Template Engines | その他のテンプレートエンジンを使用した画面開発 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/web/feature_details/view/other.html) | processing-pattern | web-application | web-application | processing-pattern/web-application/other.md | +| application_framework/application_framework/web/feature_details/web_front_controller.rst | Web Front Controller | Webフロントコントローラ | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/web/feature_details/web_front_controller.html) | processing-pattern | web-application | web-application | processing-pattern/web-application/web-front-controller.md | +| application_framework/application_framework/web/getting_started/client_create/client_create1.rst | Create Initial Display of Registration Screen | 登録画面初期表示の作成 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/web/getting_started/client_create/client_create1.html) | processing-pattern | web-application | web-application | processing-pattern/web-application/client-create1.md | +| application_framework/application_framework/web/getting_started/client_create/client_create2.rst | Confirmation of Registration Contents | 登録内容の確認 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/web/getting_started/client_create/client_create2.html) | processing-pattern | web-application | web-application | processing-pattern/web-application/client-create2.md | +| application_framework/application_framework/web/getting_started/client_create/client_create3.rst | Return to the Registration Screen From the Registration Confirmation Screen | 登録内容確認画面から登録画面へ戻る | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/web/getting_started/client_create/client_create3.html) | processing-pattern | web-application | web-application | processing-pattern/web-application/client-create3.md | +| application_framework/application_framework/web/getting_started/client_create/client_create4.rst | Register to the Database | データベースへの登録 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/web/getting_started/client_create/client_create4.html) | processing-pattern | web-application | web-application | processing-pattern/web-application/client-create4.md | +| application_framework/application_framework/web/getting_started/client_create/index.rst | Create a Registration Function (Hands-on Format) | 登録機能の作成(ハンズオン形式) | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/web/getting_started/client_create/index.html) | processing-pattern | web-application | web-application | processing-pattern/web-application/getting-started-client_create.md | +| application_framework/application_framework/web/getting_started/index.rst | Getting Started | Getting Started | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/web/getting_started/index.html) | processing-pattern | web-application | web-application | processing-pattern/web-application/getting-started.md | +| application_framework/application_framework/web/getting_started/popup/index.rst | Create a Pop-up Screen | ポップアップ画面の作成 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/web/getting_started/popup/index.html) | processing-pattern | web-application | web-application | processing-pattern/web-application/getting-started-popup.md | +| application_framework/application_framework/web/getting_started/project_bulk_update/index.rst | Create a batch update function | 一括更新機能の作成 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/web/getting_started/project_bulk_update/index.html) | processing-pattern | web-application | web-application | processing-pattern/web-application/getting-started-project_bulk_update.md | +| application_framework/application_framework/web/getting_started/project_delete/index.rst | Create a Delete Function | 削除機能の作成 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/web/getting_started/project_delete/index.html) | processing-pattern | web-application | web-application | processing-pattern/web-application/getting-started-project_delete.md | +| application_framework/application_framework/web/getting_started/project_download/index.rst | Create a File Download Function | ファイルダウンロード機能の作成 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/web/getting_started/project_download/index.html) | processing-pattern | web-application | web-application | processing-pattern/web-application/getting-started-project_download.md | +| application_framework/application_framework/web/getting_started/project_search/index.rst | Create a Search Function | 検索機能の作成 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/web/getting_started/project_search/index.html) | processing-pattern | web-application | web-application | processing-pattern/web-application/getting-started-project_search.md | +| application_framework/application_framework/web/getting_started/project_update/index.rst | Create Update Function | 更新機能の作成 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/web/getting_started/project_update/index.html) | processing-pattern | web-application | web-application | processing-pattern/web-application/getting-started-project_update.md | +| application_framework/application_framework/web/getting_started/project_upload/index.rst | Create a Batch registration Function Using Upload | アップロードを用いた一括登録機能の作成 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/web/getting_started/project_upload/index.html) | processing-pattern | web-application | web-application | processing-pattern/web-application/getting-started-project_upload.md | +| application_framework/application_framework/web_service/functional_comparison.rst | Function Comparison of Jakarta RESTful Web Services Support /Jakarta RESTful Web Services/HTTP Messaging | Jakarta RESTful Web Servicesサポート/Jakarta RESTful Web Services/HTTPメッセージングの機能比較 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/web_service/functional_comparison.html) | processing-pattern | restful-web-service | restful-web-service | processing-pattern/restful-web-service/functional-comparison.md | +| application_framework/application_framework/web_service/http_messaging/application_design.rst | Responsibility Assignment of the Application | アプリケーションの責務配置 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/web_service/http_messaging/application_design.html) | processing-pattern | http-messaging | http-messaging | processing-pattern/http-messaging/application-design.md | +| application_framework/application_framework/web_service/http_messaging/architecture.rst | Architecture Overview | アーキテクチャ概要 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/web_service/http_messaging/architecture.html) | processing-pattern | http-messaging | http-messaging | processing-pattern/http-messaging/architecture.md | +| application_framework/application_framework/web_service/http_messaging/feature_details.rst | Details of Function | 機能詳細 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/web_service/http_messaging/feature_details.html) | processing-pattern | http-messaging | http-messaging | processing-pattern/http-messaging/feature-details.md | +| application_framework/application_framework/web_service/http_messaging/getting_started/getting_started.rst | Getting Started | Getting Started | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/web_service/http_messaging/getting_started/getting_started.html) | processing-pattern | http-messaging | http-messaging | processing-pattern/http-messaging/getting-started.md | +| application_framework/application_framework/web_service/http_messaging/getting_started/save/index.rst | Creation of a Registration Function | 登録機能の作成 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/web_service/http_messaging/getting_started/save/index.html) | processing-pattern | http-messaging | http-messaging | processing-pattern/http-messaging/getting-started-save.md | +| application_framework/application_framework/web_service/index.rst | Web Service | ウェブサービス編 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/web_service/index.html) | processing-pattern | restful-web-service | restful-web-service | processing-pattern/restful-web-service/web-service.md | +| application_framework/application_framework/web_service/rest/application_design.rst | Responsibility Assignment of RESTful Web Service | RESTFulウェブサービスの責務配置 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/web_service/rest/application_design.html) | processing-pattern | restful-web-service | restful-web-service | processing-pattern/restful-web-service/application-design.md | +| application_framework/application_framework/web_service/rest/architecture.rst | Architecture Overview | アーキテクチャ概要 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/web_service/rest/architecture.html) | processing-pattern | restful-web-service | restful-web-service | processing-pattern/restful-web-service/architecture.md | +| application_framework/application_framework/web_service/rest/feature_details.rst | Details of Function | 機能詳細 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/web_service/rest/feature_details.html) | processing-pattern | restful-web-service | restful-web-service | processing-pattern/restful-web-service/feature-details.md | +| application_framework/application_framework/web_service/rest/feature_details/resource_signature.rst | Implementation of the Resource (Action) Class | リソース(アクション)クラスの実装に関して | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/web_service/rest/feature_details/resource_signature.html) | processing-pattern | restful-web-service | restful-web-service | processing-pattern/restful-web-service/resource-signature.md | +| application_framework/application_framework/web_service/rest/getting_started/create/index.rst | Creation of a Registration Function | 登録機能の作成 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/web_service/rest/getting_started/create/index.html) | processing-pattern | restful-web-service | restful-web-service | processing-pattern/restful-web-service/getting-started-create.md | +| application_framework/application_framework/web_service/rest/getting_started/index.rst | Getting Started | Getting Started | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/web_service/rest/getting_started/index.html) | processing-pattern | restful-web-service | restful-web-service | processing-pattern/restful-web-service/getting-started.md | +| application_framework/application_framework/web_service/rest/getting_started/search/index.rst | Create a Search Function | 検索機能の作成 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/web_service/rest/getting_started/search/index.html) | processing-pattern | restful-web-service | restful-web-service | processing-pattern/restful-web-service/getting-started-search.md | +| application_framework/application_framework/web_service/rest/getting_started/update/index.rst | Create Update Function | 更新機能の作成 | [🔗](https://nablarch.github.io/docs/6u3/doc/application_framework/application_framework/web_service/rest/getting_started/update/index.html) | processing-pattern | restful-web-service | restful-web-service | processing-pattern/restful-web-service/getting-started-update.md | +| biz_samples/01/0101_PBKDF2PasswordEncryptor.rst | Sample Password Encryption Function Using PBKDF2 | PBKDF2を用いたパスワード暗号化機能サンプル | [🔗](https://nablarch.github.io/docs/6u3/doc/biz_samples/01/0101_PBKDF2PasswordEncryptor.html) | guide | business-samples | | guide/business-samples/0101-PBKDF2PasswordEncryptor.md | +| biz_samples/01/index.rst | Sample Password Encryption Function Using Database | データベースを用いたパスワード認証機能サンプル | [🔗](https://nablarch.github.io/docs/6u3/doc/biz_samples/01/index.html) | guide | business-samples | | guide/business-samples/01.md | +| biz_samples/03/index.rst | Display a List of Search Results | 検索結果の一覧表示 | [🔗](https://nablarch.github.io/docs/6u3/doc/biz_samples/03/index.html) | guide | business-samples | | guide/business-samples/03.md | +| biz_samples/04/0401_ExtendedDataFormatter.rst | Data Formatter Expansion | データフォーマッタの拡張 | [🔗](https://nablarch.github.io/docs/6u3/doc/biz_samples/04/0401_ExtendedDataFormatter.html) | guide | business-samples | | guide/business-samples/0401-ExtendedDataFormatter.md | +| biz_samples/04/0402_ExtendedFieldType.rst | Field Type Expansion in the Data Formatter Function | データフォーマッタ機能におけるフィールドタイプの拡張 | [🔗](https://nablarch.github.io/docs/6u3/doc/biz_samples/04/0402_ExtendedFieldType.html) | guide | business-samples | | guide/business-samples/0402-ExtendedFieldType.md | +| biz_samples/05/index.rst | Sample File Management Function Using Database | データベースを用いたファイル管理機能サンプル | [🔗](https://nablarch.github.io/docs/6u3/doc/biz_samples/05/index.html) | guide | business-samples | | guide/business-samples/05.md | +| biz_samples/08/index.rst | Sample of HTML Email Send Function | HTMLメール送信機能サンプル | [🔗](https://nablarch.github.io/docs/6u3/doc/biz_samples/08/index.html) | guide | business-samples | | guide/business-samples/08.md | +| biz_samples/09/index.rst | How to Use a Sample to Send a Digitally Signed Email Using Bouncycastle | bouncycastleを使用した電子署名つきメールの送信サンプルの使用方法 | [🔗](https://nablarch.github.io/docs/6u3/doc/biz_samples/09/index.html) | guide | business-samples | | guide/business-samples/09.md | +| biz_samples/10/contents/OnlineAccessLogStatistics.rst | Online Access Log Aggregation Function | オンラインアクセスログ集計機能 | [🔗](https://nablarch.github.io/docs/6u3/doc/biz_samples/10/contents/OnlineAccessLogStatistics.html) | guide | business-samples | | guide/business-samples/OnlineAccessLogStatistics.md | +| biz_samples/10/index.rst | How to Use the Log Aggregation Sample | ログ集計サンプルの使用方法 | [🔗](https://nablarch.github.io/docs/6u3/doc/biz_samples/10/index.html) | guide | business-samples | | guide/business-samples/10.md | +| biz_samples/11/index.rst | Messaging Platform Test Simulator Sample | メッセージング基盤テストシミュレータサンプル | [🔗](https://nablarch.github.io/docs/6u3/doc/biz_samples/11/index.html) | guide | business-samples | | guide/business-samples/11.md | +| biz_samples/12/index.rst | Authentication sample using OIDC ID token | OIDCのIDトークンを用いた認証サンプル | [🔗](https://nablarch.github.io/docs/6u3/doc/biz_samples/12/index.html) | guide | business-samples | | guide/business-samples/12.md | +| biz_samples/13/index.rst | Sample Request/Response Log Output Using Logbook | Logbookを用いたリクエスト/レスポンスログ出力サンプル | [🔗](https://nablarch.github.io/docs/6u3/doc/biz_samples/13/index.html) | guide | business-samples | | guide/business-samples/13.md | +| development_tools/java_static_analysis/index.rst | Efficient Java Static Checks | 効率的なJava静的チェック | [🔗](https://nablarch.github.io/docs/6u3/doc/development_tools/java_static_analysis/index.html) | development-tools | java-static-analysis | | development-tools/java-static-analysis/java-static-analysis.md | +| development_tools/testing_framework/guide/development_guide/05_UnitTestGuide/01_ClassUnitTest/01_entityUnitTest/01_entityUnitTestWithBeanValidation.rst | Class Unit Testing of Form/Entity supporting Bean Validation | Bean Validationに対応したForm/Entityのクラス単体テスト | [🔗](https://nablarch.github.io/docs/6u3/doc/development_tools/testing_framework/guide/development_guide/05_UnitTestGuide/01_ClassUnitTest/01_entityUnitTest/01_entityUnitTestWithBeanValidation.html) | development-tools | testing-framework | | development-tools/testing-framework/01-entityUnitTestWithBeanValidation.md | +| development_tools/testing_framework/guide/development_guide/05_UnitTestGuide/01_ClassUnitTest/01_entityUnitTest/02_entityUnitTestWithNablarchValidation.rst | Class Unit Testing of Form/Entity supporting Nablarch Validation | Nablarch Validationに対応したForm/Entityのクラス単体テスト | [🔗](https://nablarch.github.io/docs/6u3/doc/development_tools/testing_framework/guide/development_guide/05_UnitTestGuide/01_ClassUnitTest/01_entityUnitTest/02_entityUnitTestWithNablarchValidation.html) | development-tools | testing-framework | | development-tools/testing-framework/02-entityUnitTestWithNablarchValidation.md | +| development_tools/testing_framework/guide/development_guide/05_UnitTestGuide/01_ClassUnitTest/02_componentUnitTest.rst | Class Unit Test of Action/Component | Action/Componentのクラス単体テスト | [🔗](https://nablarch.github.io/docs/6u3/doc/development_tools/testing_framework/guide/development_guide/05_UnitTestGuide/01_ClassUnitTest/02_componentUnitTest.html) | development-tools | testing-framework | | development-tools/testing-framework/02-componentUnitTest.md | +| development_tools/testing_framework/guide/development_guide/05_UnitTestGuide/02_RequestUnitTest/batch.rst | How to Execute a Request Unit Test (Batch) | リクエスト単体テストの実施方法(バッチ) | [🔗](https://nablarch.github.io/docs/6u3/doc/development_tools/testing_framework/guide/development_guide/05_UnitTestGuide/02_RequestUnitTest/batch.html) | development-tools | testing-framework | nablarch-batch | development-tools/testing-framework/request-unit-test-batch.md | +| development_tools/testing_framework/guide/development_guide/05_UnitTestGuide/02_RequestUnitTest/delayed_receive.rst | How to Conduct a Request Unit Test (Receiving Asynchronous Message Process) | リクエスト単体テストの実施方法(応答不要メッセージ受信処理) | [🔗](https://nablarch.github.io/docs/6u3/doc/development_tools/testing_framework/guide/development_guide/05_UnitTestGuide/02_RequestUnitTest/delayed_receive.html) | development-tools | testing-framework | | development-tools/testing-framework/request-unit-test-delayed-receive.md | +| development_tools/testing_framework/guide/development_guide/05_UnitTestGuide/02_RequestUnitTest/delayed_send.rst | How to Conduct a Request Unit Test (Sending Asynchronous Message Process) | リクエスト単体テストの実施方法(応答不要メッセージ送信処理) | [🔗](https://nablarch.github.io/docs/6u3/doc/development_tools/testing_framework/guide/development_guide/05_UnitTestGuide/02_RequestUnitTest/delayed_send.html) | development-tools | testing-framework | | development-tools/testing-framework/request-unit-test-delayed-send.md | +| development_tools/testing_framework/guide/development_guide/05_UnitTestGuide/02_RequestUnitTest/duplicate_form_submission.rst | How to Test Execution of Duplicate Form Submission Prevention Function | 二重サブミット防止機能のテスト実施方法 | [🔗](https://nablarch.github.io/docs/6u3/doc/development_tools/testing_framework/guide/development_guide/05_UnitTestGuide/02_RequestUnitTest/duplicate_form_submission.html) | development-tools | testing-framework | | development-tools/testing-framework/request-unit-test-duplicate-form-submission.md | +| development_tools/testing_framework/guide/development_guide/05_UnitTestGuide/02_RequestUnitTest/fileupload.rst | How to Perform a Request Unit Test (File Upload) | リクエスト単体テストの実施方法(ファイルアップロード) | [🔗](https://nablarch.github.io/docs/6u3/doc/development_tools/testing_framework/guide/development_guide/05_UnitTestGuide/02_RequestUnitTest/fileupload.html) | development-tools | testing-framework | | development-tools/testing-framework/request-unit-test-fileupload.md | +| development_tools/testing_framework/guide/development_guide/05_UnitTestGuide/02_RequestUnitTest/http_real.rst | How to Execute a Request Unit Test (HTTP Receiving Synchronous Message Process) | リクエスト単体テストの実施方法(HTTP同期応答メッセージ受信処理) | [🔗](https://nablarch.github.io/docs/6u3/doc/development_tools/testing_framework/guide/development_guide/05_UnitTestGuide/02_RequestUnitTest/http_real.html) | development-tools | testing-framework | | development-tools/testing-framework/request-unit-test-http-real.md | +| development_tools/testing_framework/guide/development_guide/05_UnitTestGuide/02_RequestUnitTest/http_send_sync.rst | How to Execute a Request Unit Test (Sending Synchronous Message) | リクエスト単体テストの実施方法(HTTP同期応答メッセージ送信処理) | [🔗](https://nablarch.github.io/docs/6u3/doc/development_tools/testing_framework/guide/development_guide/05_UnitTestGuide/02_RequestUnitTest/http_send_sync.html) | development-tools | testing-framework | | development-tools/testing-framework/request-unit-test-http-send-sync.md | +| development_tools/testing_framework/guide/development_guide/05_UnitTestGuide/02_RequestUnitTest/index.rst | How to Execute a Request Unit Test | リクエスト単体テストの実施方法 | [🔗](https://nablarch.github.io/docs/6u3/doc/development_tools/testing_framework/guide/development_guide/05_UnitTestGuide/02_RequestUnitTest/index.html) | development-tools | testing-framework | | development-tools/testing-framework/request-unit-test.md | +| development_tools/testing_framework/guide/development_guide/05_UnitTestGuide/02_RequestUnitTest/mail.rst | How to Execute a Request Unit Test (Email Send) | リクエスト単体テストの実施方法(メール送信) | [🔗](https://nablarch.github.io/docs/6u3/doc/development_tools/testing_framework/guide/development_guide/05_UnitTestGuide/02_RequestUnitTest/mail.html) | development-tools | testing-framework | | development-tools/testing-framework/request-unit-test-mail.md | +| development_tools/testing_framework/guide/development_guide/05_UnitTestGuide/02_RequestUnitTest/real.rst | How to Execute a Request Unit Test (Receiving Synchronous Message Process) | リクエスト単体テストの実施方法(同期応答メッセージ受信処理) | [🔗](https://nablarch.github.io/docs/6u3/doc/development_tools/testing_framework/guide/development_guide/05_UnitTestGuide/02_RequestUnitTest/real.html) | development-tools | testing-framework | | development-tools/testing-framework/request-unit-test-real.md | +| development_tools/testing_framework/guide/development_guide/05_UnitTestGuide/02_RequestUnitTest/rest.rst | How to execute a request unit test | リクエスト単体テストの実施方法 | [🔗](https://nablarch.github.io/docs/6u3/doc/development_tools/testing_framework/guide/development_guide/05_UnitTestGuide/02_RequestUnitTest/rest.html) | development-tools | testing-framework | restful-web-service | development-tools/testing-framework/request-unit-test-rest.md | +| development_tools/testing_framework/guide/development_guide/05_UnitTestGuide/02_RequestUnitTest/send_sync.rst | How to Execute a Request Unit Test (Sending Synchronous Message Process) | リクエスト単体テストの実施方法(同期応答メッセージ送信処理) | [🔗](https://nablarch.github.io/docs/6u3/doc/development_tools/testing_framework/guide/development_guide/05_UnitTestGuide/02_RequestUnitTest/send_sync.html) | development-tools | testing-framework | | development-tools/testing-framework/request-unit-test-send-sync.md | +| development_tools/testing_framework/guide/development_guide/05_UnitTestGuide/03_DealUnitTest/batch.rst | How to Perform a Subfunction Unit Test (Batch) | 取引単体テストの実施方法(バッチ) | [🔗](https://nablarch.github.io/docs/6u3/doc/development_tools/testing_framework/guide/development_guide/05_UnitTestGuide/03_DealUnitTest/batch.html) | development-tools | testing-framework | nablarch-batch | development-tools/testing-framework/deal-unit-test-batch.md | +| development_tools/testing_framework/guide/development_guide/05_UnitTestGuide/03_DealUnitTest/delayed_receive.rst | How to Conduct a Subfunction Unit Test (Receiving Asynchronous Message Process) | 取引単体テストの実施方法(応答不要メッセージ受信処理) | [🔗](https://nablarch.github.io/docs/6u3/doc/development_tools/testing_framework/guide/development_guide/05_UnitTestGuide/03_DealUnitTest/delayed_receive.html) | development-tools | testing-framework | | development-tools/testing-framework/deal-unit-test-delayed-receive.md | +| development_tools/testing_framework/guide/development_guide/05_UnitTestGuide/03_DealUnitTest/delayed_send.rst | How to Conduct a Subfunction Unit Test (Sending Asynchronous Message Process) | 取引単体テストの実施方法(応答不要メッセージ送信処理) | [🔗](https://nablarch.github.io/docs/6u3/doc/development_tools/testing_framework/guide/development_guide/05_UnitTestGuide/03_DealUnitTest/delayed_send.html) | development-tools | testing-framework | | development-tools/testing-framework/deal-unit-test-delayed-send.md | +| development_tools/testing_framework/guide/development_guide/05_UnitTestGuide/03_DealUnitTest/http_send_sync.rst | How to Perform a Subfunction Unit Test with HTTP Sending Synchronous Message Process | HTTP同期応答メッセージ送信処理を伴う取引単体テストの実施方法 | [🔗](https://nablarch.github.io/docs/6u3/doc/development_tools/testing_framework/guide/development_guide/05_UnitTestGuide/03_DealUnitTest/http_send_sync.html) | development-tools | testing-framework | | development-tools/testing-framework/deal-unit-test-http-send-sync.md | +| development_tools/testing_framework/guide/development_guide/05_UnitTestGuide/03_DealUnitTest/index.rst | How to Perform a Subfunction Unit Test | 取引単体テストの実施方法 | [🔗](https://nablarch.github.io/docs/6u3/doc/development_tools/testing_framework/guide/development_guide/05_UnitTestGuide/03_DealUnitTest/index.html) | development-tools | testing-framework | | development-tools/testing-framework/deal-unit-test.md | +| development_tools/testing_framework/guide/development_guide/05_UnitTestGuide/03_DealUnitTest/real.rst | How to Execute a Subfunction Unit (Receiving Synchronous Message) | 取引単体テストの実施方法(同期応答メッセージ受信処理) | [🔗](https://nablarch.github.io/docs/6u3/doc/development_tools/testing_framework/guide/development_guide/05_UnitTestGuide/03_DealUnitTest/real.html) | development-tools | testing-framework | | development-tools/testing-framework/deal-unit-test-real.md | +| development_tools/testing_framework/guide/development_guide/05_UnitTestGuide/03_DealUnitTest/rest.rst | How to Perform a Subfunction Unit Test | 取引単体テストの実施方法 | [🔗](https://nablarch.github.io/docs/6u3/doc/development_tools/testing_framework/guide/development_guide/05_UnitTestGuide/03_DealUnitTest/rest.html) | development-tools | testing-framework | restful-web-service | development-tools/testing-framework/deal-unit-test-rest.md | +| development_tools/testing_framework/guide/development_guide/05_UnitTestGuide/03_DealUnitTest/send_sync.rst | How to Perform a Subfunction Unit Test with Sending Synchronous Message Process | 同期応答メッセージ送信処理を伴う取引単体テストの実施方法 | [🔗](https://nablarch.github.io/docs/6u3/doc/development_tools/testing_framework/guide/development_guide/05_UnitTestGuide/03_DealUnitTest/send_sync.html) | development-tools | testing-framework | | development-tools/testing-framework/deal-unit-test-send-sync.md | +| development_tools/testing_framework/guide/development_guide/06_TestFWGuide/01_Abstract.rst | Automated Testing Framework | 自動テストフレームワーク | [🔗](https://nablarch.github.io/docs/6u3/doc/development_tools/testing_framework/guide/development_guide/06_TestFWGuide/01_Abstract.html) | development-tools | testing-framework | | development-tools/testing-framework/01-Abstract.md | +| development_tools/testing_framework/guide/development_guide/06_TestFWGuide/02_DbAccessTest.rst | Testing a Class that Uses the Database | データベースを使用するクラスのテスト | [🔗](https://nablarch.github.io/docs/6u3/doc/development_tools/testing_framework/guide/development_guide/06_TestFWGuide/02_DbAccessTest.html) | development-tools | testing-framework | | development-tools/testing-framework/02-DbAccessTest.md | +| development_tools/testing_framework/guide/development_guide/06_TestFWGuide/02_RequestUnitTest.rst | Request Unit Test (Web Applications) | リクエスト単体テスト(ウェブアプリケーション) | [🔗](https://nablarch.github.io/docs/6u3/doc/development_tools/testing_framework/guide/development_guide/06_TestFWGuide/02_RequestUnitTest.html) | development-tools | testing-framework | | development-tools/testing-framework/request-unit-test-02-RequestUnitTest.md | +| development_tools/testing_framework/guide/development_guide/06_TestFWGuide/03_Tips.rst | How to Use Purpose-specific APIs | 目的別API使用方法 | [🔗](https://nablarch.github.io/docs/6u3/doc/development_tools/testing_framework/guide/development_guide/06_TestFWGuide/03_Tips.html) | development-tools | testing-framework | | development-tools/testing-framework/03-Tips.md | +| development_tools/testing_framework/guide/development_guide/06_TestFWGuide/04_MasterDataRestore.rst | Master Data Recovery Function | マスタデータ復旧機能 | [🔗](https://nablarch.github.io/docs/6u3/doc/development_tools/testing_framework/guide/development_guide/06_TestFWGuide/04_MasterDataRestore.html) | development-tools | testing-framework | restful-web-service | development-tools/testing-framework/04-MasterDataRestore.md | +| development_tools/testing_framework/guide/development_guide/06_TestFWGuide/JUnit5_Extension.rst | Extensions for JUnit 5 | JUnit 5用拡張機能 | [🔗](https://nablarch.github.io/docs/6u3/doc/development_tools/testing_framework/guide/development_guide/06_TestFWGuide/JUnit5_Extension.html) | development-tools | testing-framework | | development-tools/testing-framework/JUnit5-Extension.md | +| development_tools/testing_framework/guide/development_guide/06_TestFWGuide/RequestUnitTest_batch.rst | Request Unit Test (Batch Process) | リクエスト単体テスト(バッチ処理) | [🔗](https://nablarch.github.io/docs/6u3/doc/development_tools/testing_framework/guide/development_guide/06_TestFWGuide/RequestUnitTest_batch.html) | development-tools | testing-framework | nablarch-batch | development-tools/testing-framework/RequestUnitTest-batch.md | +| development_tools/testing_framework/guide/development_guide/06_TestFWGuide/RequestUnitTest_http_send_sync.rst | Request Unit Test (HTTP Sending Synchronous Message Process) | リクエスト単体テスト(HTTP同期応答メッセージ送信処理) | [🔗](https://nablarch.github.io/docs/6u3/doc/development_tools/testing_framework/guide/development_guide/06_TestFWGuide/RequestUnitTest_http_send_sync.html) | development-tools | testing-framework | | development-tools/testing-framework/RequestUnitTest-http-send-sync.md | +| development_tools/testing_framework/guide/development_guide/06_TestFWGuide/RequestUnitTest_real.rst | Request Unit Test (Receive Messages Process) | リクエスト単体テスト(メッセージ受信処理) | [🔗](https://nablarch.github.io/docs/6u3/doc/development_tools/testing_framework/guide/development_guide/06_TestFWGuide/RequestUnitTest_real.html) | development-tools | testing-framework | | development-tools/testing-framework/RequestUnitTest-real.md | +| development_tools/testing_framework/guide/development_guide/06_TestFWGuide/RequestUnitTest_rest.rst | Request Unit Test (RESTful Web Service) | リクエスト単体テスト(RESTfulウェブサービス) | [🔗](https://nablarch.github.io/docs/6u3/doc/development_tools/testing_framework/guide/development_guide/06_TestFWGuide/RequestUnitTest_rest.html) | development-tools | testing-framework | restful-web-service | development-tools/testing-framework/RequestUnitTest-rest.md | +| development_tools/testing_framework/guide/development_guide/06_TestFWGuide/RequestUnitTest_send_sync.rst | Request Unit Test (Sending Synchronous Message Process) | リクエスト単体テスト(同期応答メッセージ送信処理) | [🔗](https://nablarch.github.io/docs/6u3/doc/development_tools/testing_framework/guide/development_guide/06_TestFWGuide/RequestUnitTest_send_sync.html) | development-tools | testing-framework | | development-tools/testing-framework/RequestUnitTest-send-sync.md | +| development_tools/testing_framework/guide/development_guide/08_TestTools/01_HttpDumpTool/01_HttpDumpTool.rst | Request Unit Data Creation Tool | リクエスト単体データ作成ツール | [🔗](https://nablarch.github.io/docs/6u3/doc/development_tools/testing_framework/guide/development_guide/08_TestTools/01_HttpDumpTool/01_HttpDumpTool.html) | development-tools | testing-framework | | development-tools/testing-framework/01-HttpDumpTool.md | +| development_tools/testing_framework/guide/development_guide/08_TestTools/01_HttpDumpTool/02_SetUpHttpDumpTool.rst | Request Unit Data Creation Tool Installation Guide | リクエスト単体データ作成ツール インストールガイド | [🔗](https://nablarch.github.io/docs/6u3/doc/development_tools/testing_framework/guide/development_guide/08_TestTools/01_HttpDumpTool/02_SetUpHttpDumpTool.html) | development-tools | testing-framework | | development-tools/testing-framework/02-SetUpHttpDumpTool.md | +| development_tools/testing_framework/guide/development_guide/08_TestTools/02_MasterDataSetup/01_MasterDataSetupTool.rst | Master Data Input Tool | マスタデータ投入ツール | [🔗](https://nablarch.github.io/docs/6u3/doc/development_tools/testing_framework/guide/development_guide/08_TestTools/02_MasterDataSetup/01_MasterDataSetupTool.html) | development-tools | testing-framework | | development-tools/testing-framework/master-data-setup-tool.md | +| development_tools/testing_framework/guide/development_guide/08_TestTools/02_MasterDataSetup/02_ConfigMasterDataSetupTool.rst | Master Data Input Tool Installation Guide | マスタデータ投入ツール インストールガイド | [🔗](https://nablarch.github.io/docs/6u3/doc/development_tools/testing_framework/guide/development_guide/08_TestTools/02_MasterDataSetup/02_ConfigMasterDataSetupTool.html) | development-tools | testing-framework | | development-tools/testing-framework/master-data-setup-config.md | +| development_tools/testing_framework/guide/development_guide/08_TestTools/02_MasterDataSetup/index.rst | Master Data Input Tool | マスタデータ投入ツール | [🔗](https://nablarch.github.io/docs/6u3/doc/development_tools/testing_framework/guide/development_guide/08_TestTools/02_MasterDataSetup/index.html) | development-tools | testing-framework | | development-tools/testing-framework/master-data-setup.md | +| development_tools/testing_framework/guide/development_guide/08_TestTools/03_HtmlCheckTool/index.rst | HTML Check Tool | HTMLチェックツール | [🔗](https://nablarch.github.io/docs/6u3/doc/development_tools/testing_framework/guide/development_guide/08_TestTools/03_HtmlCheckTool/index.html) | development-tools | testing-framework | | development-tools/testing-framework/html-check-tool.md | +| development_tools/testing_framework/index.rst | Testing framework | テスティングフレームワーク | [🔗](https://nablarch.github.io/docs/6u3/doc/development_tools/testing_framework/index.html) | development-tools | testing-framework | | development-tools/testing-framework/testing-framework.md | +| development_tools/toolbox/JspStaticAnalysis/01_JspStaticAnalysis.rst | Jakarta Server Pages Static Analysis Tool | Jakarta Server Pages静的解析ツール | [🔗](https://nablarch.github.io/docs/6u3/doc/development_tools/toolbox/JspStaticAnalysis/01_JspStaticAnalysis.html) | development-tools | toolbox | | development-tools/toolbox/01-JspStaticAnalysis.md | +| development_tools/toolbox/JspStaticAnalysis/02_JspStaticAnalysisInstall.rst | Jakarta Server Pages Static Analysis Tool Configuration Change Guide | Jakarta Server Pages静的解析ツール 設定変更ガイド | [🔗](https://nablarch.github.io/docs/6u3/doc/development_tools/toolbox/JspStaticAnalysis/02_JspStaticAnalysisInstall.html) | development-tools | toolbox | | development-tools/toolbox/02-JspStaticAnalysisInstall.md | +| development_tools/toolbox/JspStaticAnalysis/index.rst | Jakarta Server Pages Static Analysis Tool | Jakarta Server Pages静的解析ツール | [🔗](https://nablarch.github.io/docs/6u3/doc/development_tools/toolbox/JspStaticAnalysis/index.html) | development-tools | toolbox | | development-tools/toolbox/jsp-static-analysis.md | +| development_tools/toolbox/NablarchOpenApiGenerator/NablarchOpenApiGenerator.rst | Nablarch OpenAPI Generator | Nablarch OpenAPI Generator | [🔗](https://nablarch.github.io/docs/6u3/doc/development_tools/toolbox/NablarchOpenApiGenerator/NablarchOpenApiGenerator.html) | development-tools | toolbox | | development-tools/toolbox/NablarchOpenApiGenerator.md | +| development_tools/toolbox/SqlExecutor/SqlExecutor.rst | Nablarch SQL Executor | Nablarch SQL Executor | [🔗](https://nablarch.github.io/docs/6u3/doc/development_tools/toolbox/SqlExecutor/SqlExecutor.html) | development-tools | toolbox | | development-tools/toolbox/SqlExecutor.md | +| development_tools/toolbox/index.rst | Useful Tools When Developing Applications | アプリケーション開発時に使える便利なツール | [🔗](https://nablarch.github.io/docs/6u3/doc/development_tools/toolbox/index.html) | development-tools | toolbox | | development-tools/toolbox/toolbox.md | +| examples/index.rst | Example | Example | [🔗](https://nablarch.github.io/docs/6u3/doc/examples/index.html) | about | about-nablarch | | about/about-nablarch/examples.md | +| external_contents/index.rst | Useful content for development in Nablarch | Nablarchでの開発に役立つコンテンツ | [🔗](https://nablarch.github.io/docs/6u3/doc/external_contents/index.html) | about | about-nablarch | | about/about-nablarch/external-contents.md | +| index.rst | Nablarch | Nablarch | [🔗](https://nablarch.github.io/docs/6u3/doc/index.html) | about | about-nablarch | | about/about-nablarch/overview.md | +| jakarta_ee/index.rst | Regarding the specification name of Jakarta EE | Jakarta EEの仕様名に関して | [🔗](https://nablarch.github.io/docs/6u3/doc/jakarta_ee/index.html) | about | about-nablarch | | about/about-nablarch/jakarta-ee.md | +| migration/index.rst | Nablarch 5 to 6 Migration Guide | Nablarch 5から6への移行ガイド | [🔗](https://nablarch.github.io/docs/6u3/doc/migration/index.html) | about | migration | | about/migration/migration.md | +| nablarch_api/index.rst | Nablarch API | Nablarch API | [🔗](https://nablarch.github.io/docs/6u3/doc/nablarch_api/index.html) | about | about-nablarch | | about/about-nablarch/nablarch-api.md | +| terms_of_use/index.rst | Terms of Use | ご利用にあたって | [🔗](https://nablarch.github.io/docs/6u3/doc/terms_of_use/index.html) | about | about-nablarch | | about/about-nablarch/terms-of-use.md | +| en/Nablarch-system-development-guide/docs/nablarch-patterns/Asynchronous_operation_in_Nablarch.md | Asynchronous Operation in Nablarch | Nablarchでの非同期処理 | [🔗](https://github.com/Fintan-contents/nablarch-system-development-guide/blob/main/Nablarchシステム開発ガイド/docs/nablarch-patterns/Nablarchでの非同期処理.md) | guide | nablarch-patterns | | guide/nablarch-patterns/Asynchronous-operation-in-Nablarch.md | +| en/Nablarch-system-development-guide/docs/nablarch-patterns/Nablarch_anti-pattern.md | Nablarch Anti-pattern | Nablarchアンチパターン | [🔗](https://github.com/Fintan-contents/nablarch-system-development-guide/blob/main/Nablarchシステム開発ガイド/docs/nablarch-patterns/Nablarchアンチパターン.md) | guide | nablarch-patterns | | guide/nablarch-patterns/Nablarch-anti-pattern.md | +| en/Nablarch-system-development-guide/docs/nablarch-patterns/Nablarch_batch_processing_pattern.md | Nablarch Batch Processing Pattern | Nablarchバッチ処理パターン | [🔗](https://github.com/Fintan-contents/nablarch-system-development-guide/blob/main/Nablarchシステム開発ガイド/docs/nablarch-patterns/Nablarchバッチ処理パターン.md) | guide | nablarch-patterns | | guide/nablarch-patterns/Nablarch-batch-processing-pattern.md | +| Sample_Project/設計書/Nablarch機能のセキュリティ対応表.xlsx | Nablarch機能のセキュリティ対応表 | Nablarchセキュリティ対応表 | [🔗](https://github.com/Fintan-contents/nablarch-system-development-guide/blob/main/Sample_Project/設計書/Nablarch機能のセキュリティ対応表.xlsx) | check | security-check | | check/security-check/Nablarch機能のセキュリティ対応表.xlsx.md | diff --git a/doc/mapping/mapping-v6.xlsx b/doc/mapping/mapping-v6.xlsx new file mode 100644 index 00000000..f32237be Binary files /dev/null and b/doc/mapping/mapping-v6.xlsx differ diff --git a/scripts/mapping/export-mapping-excel.py b/scripts/mapping/export-mapping-excel.py new file mode 100755 index 00000000..0cf875d1 --- /dev/null +++ b/scripts/mapping/export-mapping-excel.py @@ -0,0 +1,183 @@ +#!/usr/bin/env python3 +""" +Export mapping-v6.md to Excel format for human review. + +This script: +1. Parses mapping-v6.md Markdown table +2. Extracts Official URLs from Markdown links +3. Creates Excel file with: + - Proper column widths + - Clickable hyperlinks for Official URL + - Filters on all columns + - Frozen header row +4. Outputs to doc/mapping/mapping-v6.xlsx + +Usage: + python scripts/export-mapping-excel.py +""" + +import re +import sys +from pathlib import Path +import pandas as pd +from openpyxl import load_workbook +from openpyxl.styles import Font, Alignment +from openpyxl.utils import get_column_letter + +# File paths +REPO_ROOT = Path(__file__).parent.parent.parent +MAPPING_MD = REPO_ROOT / "doc/mapping/mapping-v6.md" +OUTPUT_XLSX = REPO_ROOT / "doc/mapping/mapping-v6.xlsx" + +def parse_markdown_table(file_path: Path) -> pd.DataFrame: + """ + Parse mapping-v6.md Markdown table into pandas DataFrame. + """ + with open(file_path, 'r', encoding='utf-8') as f: + lines = f.readlines() + + # Find table start (after header line with columns) + table_start = None + for i, line in enumerate(lines): + if line.strip().startswith('| Source Path |'): + table_start = i + 2 # Skip header and separator line + break + + if table_start is None: + raise ValueError("Table header not found in mapping file") + + # Parse table rows + rows = [] + for line in lines[table_start:]: + line = line.strip() + if not line or not line.startswith('|'): + break + + # Split by | and strip whitespace + cells = [cell.strip() for cell in line.split('|')[1:-1]] + + if len(cells) == 8: + rows.append(cells) + + # Create DataFrame + columns = [ + 'Source Path', + 'Title', + 'Title (ja)', + 'Official URL', + 'Type', + 'Category ID', + 'Processing Pattern', + 'Target Path' + ] + + df = pd.DataFrame(rows, columns=columns) + + # Extract URL from Markdown link format [🔗](url) + df['Official URL'] = df['Official URL'].apply(extract_url_from_markdown) + + return df + +def extract_url_from_markdown(md_link: str) -> str: + """ + Extract URL from Markdown link format [🔗](url). + Returns the URL string for Excel hyperlink. + """ + match = re.search(r'\[.*?\]\((https://.*?)\)', md_link) + if match: + return match.group(1) + return md_link + +def create_excel(df: pd.DataFrame, output_path: Path): + """ + Create Excel file with proper formatting: + - Hyperlinks in Official URL column + - Column width auto-adjustment + - Filters on all columns + - Frozen header row + """ + # Replace empty strings with empty string (not NaN) for consistent comparison + df = df.fillna('') + + # Write DataFrame to Excel + df.to_excel(output_path, index=False, sheet_name='Mapping v6') + + # Load workbook for formatting + wb = load_workbook(output_path) + ws = wb.active + + # Freeze header row + ws.freeze_panes = 'A2' + + # Enable filters on all columns + ws.auto_filter.ref = ws.dimensions + + # Format header row + header_font = Font(bold=True) + header_alignment = Alignment(horizontal='left', vertical='top', wrap_text=True) + + for cell in ws[1]: + cell.font = header_font + cell.alignment = header_alignment + + # Convert Official URL column to hyperlinks + url_col = 4 # Column D (Official URL) + for row in range(2, ws.max_row + 1): + cell = ws.cell(row=row, column=url_col) + url = cell.value + if url and url.startswith('http'): + # Create hyperlink with 🔗 as display text + cell.hyperlink = url + cell.value = '🔗' + cell.font = Font(color='0563C1', underline='single') + cell.alignment = Alignment(horizontal='center') + + # Auto-adjust column widths + column_widths = { + 'A': 50, # Source Path + 'B': 40, # Title + 'C': 40, # Title (ja) + 'D': 8, # Official URL (just 🔗) + 'E': 20, # Type + 'F': 25, # Category ID + 'G': 22, # Processing Pattern + 'H': 50, # Target Path + } + + for col_letter, width in column_widths.items(): + ws.column_dimensions[col_letter].width = width + + # Align all cells to top-left with wrap text + for row in ws.iter_rows(min_row=2, max_row=ws.max_row, min_col=1, max_col=8): + for cell in row: + if cell.column != 4: # Skip Official URL column + cell.alignment = Alignment(horizontal='left', vertical='top', wrap_text=True) + + # Save workbook + wb.save(output_path) + +def main(): + """Main execution""" + print(f"📖 Reading {MAPPING_MD}") + + try: + df = parse_markdown_table(MAPPING_MD) + print(f"✅ Parsed {len(df)} rows") + + print(f"📝 Creating Excel file...") + create_excel(df, OUTPUT_XLSX) + + print(f"✅ Excel file created: {OUTPUT_XLSX}") + print(f" Total rows: {len(df)}") + print(f" Columns: {', '.join(df.columns)}") + + return 0 + + except Exception as e: + print(f"❌ Error: {e}", file=sys.stderr) + import traceback + traceback.print_exc() + return 1 + +if __name__ == '__main__': + sys.exit(main()) diff --git a/scripts/mapping/generate-mapping-v6.py b/scripts/mapping/generate-mapping-v6.py new file mode 100755 index 00000000..cb8bb389 --- /dev/null +++ b/scripts/mapping/generate-mapping-v6.py @@ -0,0 +1,575 @@ +#!/usr/bin/env python3 +""" +Generate mapping-v6.md from all-files-mapping-v6.md following updated design. + +This script: +1. Parses existing mapping table +2. Extracts titles from rst/md files (English and Japanese) +3. Generates Official URLs with Markdown link format +4. Assigns Processing Pattern based on rules +5. Fixes Target Path subdirectory structure +6. Outputs new mapping table + +Usage: + python scripts/generate-mapping-v6.py [--test] + + --test: Output to mapping-v6.md.test instead of mapping-v6.md +""" + +import re +import sys +from pathlib import Path +from typing import Optional, Tuple +import argparse + +# Base directories +REPO_ROOT = Path(__file__).parent.parent.parent +NABLARCH_DOC_EN = REPO_ROOT / ".lw/nab-official/v6/nablarch-document/en" +NABLARCH_DOC_JA = REPO_ROOT / ".lw/nab-official/v6/nablarch-document/ja" +NABLARCH_GUIDE_BASE = REPO_ROOT / ".lw/nab-official/v6/nablarch-system-development-guide" + +# Processing patterns +PROCESSING_PATTERNS = [ + "nablarch-batch", + "jakarta-batch", + "restful-web-service", + "http-messaging", + "web-application", + "mom-messaging", + "db-messaging", +] + +# Logging +warnings = [] +errors = [] + +def log_warning(msg: str): + """Log warning message""" + warnings.append(msg) + print(f"⚠️ {msg}", file=sys.stderr) + +def log_error(msg: str): + """Log error message""" + errors.append(msg) + print(f"❌ {msg}", file=sys.stderr) + +def extract_rst_title(file_path: Path) -> Optional[str]: + """ + Extract title from rst file header. + + Expected format: + ================================================== + Title Text + ================================================== + + or: + Title Text + ---------- + """ + try: + if not file_path.exists(): + return None + + with open(file_path, 'r', encoding='utf-8') as f: + lines = f.readlines() + + # Look for title in first 20 lines (skip rst directives) + for i in range(min(20, len(lines))): + line = lines[i].strip() + + # Skip rst directives (lines starting with ..) + if line.startswith('..'): + continue + + # Skip empty lines + if not line: + continue + + # Check if next line or previous line is === or --- + if i > 0: + prev = lines[i-1].strip() + if prev and all(c in '=-' for c in prev) and len(prev) >= len(line) * 0.8: + # Title is current line (underlined by previous line) + return line + + if i < len(lines) - 1: + next_line = lines[i+1].strip() + if next_line and all(c in '=-' for c in next_line) and len(next_line) >= len(line) * 0.8: + # Title is current line (underlined by next line) + return line + + return None + except Exception as e: + log_error(f"Failed to read {file_path}: {e}") + return None + +def extract_md_title(file_path: Path) -> Optional[str]: + """Extract title from markdown file (first # heading)""" + try: + if not file_path.exists(): + return None + + with open(file_path, 'r', encoding='utf-8') as f: + for line in f: + line = line.strip() + if line.startswith('# '): + return line[2:].strip() + + return None + except Exception as e: + log_error(f"Failed to read {file_path}: {e}") + return None + +def extract_title(source_path: str, lang: str = 'en') -> Tuple[Optional[str], str]: + """ + Extract title from source file. + + Args: + source_path: Relative path from base directory + lang: 'en' or 'ja' + + Returns: + (title, status) where status is 'ok', 'missing_file', or 'parse_failed' + """ + # Determine file type and base directory + if source_path.startswith('en/Nablarch-system-development-guide/'): + # nablarch-system-development-guide + if lang == 'ja': + # Replace en/ with Japanese path and map English filenames to Japanese + ja_path = source_path.replace( + 'en/Nablarch-system-development-guide/', + 'Nablarchシステム開発ガイド/' + ) + + # Map English filenames to Japanese filenames + filename_mapping = { + 'Asynchronous_operation_in_Nablarch.md': 'Nablarchでの非同期処理.md', + 'Nablarch_anti-pattern.md': 'Nablarchアンチパターン.md', + 'Nablarch_batch_processing_pattern.md': 'Nablarchバッチ処理パターン.md', + } + + for en_name, ja_name in filename_mapping.items(): + if ja_path.endswith(en_name): + ja_path = ja_path.replace(en_name, ja_name) + break + + file_path = NABLARCH_GUIDE_BASE / ja_path + else: + file_path = NABLARCH_GUIDE_BASE / source_path + + title = extract_md_title(file_path) + else: + # nablarch-document + if lang == 'ja': + # Map English filenames to Japanese filenames (for renamed files in v6) + ja_source_path = source_path + nablarch_doc_filename_mapping = { + 'duplicate_form_submission.rst': 'double_transmission.rst', + } + + for en_name, ja_name in nablarch_doc_filename_mapping.items(): + if source_path.endswith(en_name): + ja_source_path = source_path.replace(en_name, ja_name) + break + + # Check if ja version exists + ja_file = NABLARCH_DOC_JA / ja_source_path + if not ja_file.exists(): + return None, 'missing_file' + file_path = ja_file + else: + file_path = NABLARCH_DOC_EN / source_path + + if source_path.endswith('.md'): + title = extract_md_title(file_path) + else: + title = extract_rst_title(file_path) + + if title is None: + if not file_path.exists(): + return None, 'missing_file' + return None, 'parse_failed' + + return title, 'ok' + +def generate_official_url(source_path: str) -> str: + """Generate official URL with Markdown link format (Japanese version)""" + if source_path.startswith('en/Nablarch-system-development-guide/'): + # nablarch-system-development-guide + # Convert to Japanese directory and filename + ja_path = source_path.replace( + 'en/Nablarch-system-development-guide/', + 'Nablarchシステム開発ガイド/' + ) + + # Map English filenames to Japanese + filename_map = { + 'Asynchronous_operation_in_Nablarch.md': 'Nablarchでの非同期処理.md', + 'Nablarch_anti-pattern.md': 'Nablarchアンチパターン.md', + 'Nablarch_batch_processing_pattern.md': 'Nablarchバッチ処理パターン.md' + } + + for en_name, ja_name in filename_map.items(): + if en_name in ja_path: + ja_path = ja_path.replace(en_name, ja_name) + break + + url = f"https://github.com/Fintan-contents/nablarch-system-development-guide/blob/main/{ja_path}" + elif source_path.startswith('Sample_Project/'): + # Sample_Project is in nablarch-system-development-guide + url = f"https://github.com/Fintan-contents/nablarch-system-development-guide/blob/main/{source_path}" + else: + # nablarch-document + # Change .rst to .html, keep path + html_path = source_path.replace('.rst', '.html').replace('.md', '.html') + url = f"https://nablarch.github.io/docs/6u3/doc/{html_path}" + + return f"[🔗]({url})" + +def assign_processing_pattern(source_path: str, type_: str, category: str, title: str = '') -> str: + """ + Assign processing pattern based on rules. + + Returns processing pattern ID or empty string for generic files. + """ + # Rule 1: Type = processing-pattern → use category + if type_ == 'processing-pattern': + return category + + lower_path = source_path.lower() + lower_title = title.lower() + + # Rule 2: Component categories - check path + if category in ['handlers', 'libraries', 'adapters']: + # Check subdirectory patterns + if '/batch/' in source_path or source_path.endswith('batch.rst'): + return 'nablarch-batch' + if '/jsr352/' in source_path: + return 'jakarta-batch' + if '/standalone/' in source_path: + # Standalone handlers are used by nablarch-batch + # Based on nablarch-batch architecture.rst: data_read_handler, multi_thread_execution_handler, + # retry_handler, process_stop_handler, duplicate_process_check_handler, etc. + return 'nablarch-batch' + if '/web/' in source_path and '/web_interceptor/' not in source_path: + return 'web-application' + if '/web_interceptor/' in source_path: + # Web interceptors are used by web-application + # Based on web/getting_started usage: InjectForm, OnError, OnDoubleSubmission, UseToken + return 'web-application' + if '/rest/' in source_path or '/jaxrs/' in source_path: + return 'restful-web-service' + if '/http_messaging/' in source_path: + return 'http-messaging' + if '/mom_messaging/' in source_path: + return 'mom-messaging' + if '/messaging/' in source_path: + # Could be mom or db, need more context + if '/mom/' in source_path: + return 'mom-messaging' + if '/db/' in source_path: + return 'db-messaging' + # Ambiguous + log_warning(f"Ambiguous messaging pattern for: {source_path}") + return '' + if '/common/' in source_path: + return '' # Generic (shared across all patterns) + + # Rule 3: Development tools - check filename and title + if category in ['testing-framework', 'toolbox']: + # Check for batch patterns + if 'batch' in lower_path or 'batch' in lower_title: + if 'jsr352' in lower_path or 'jbatch' in lower_path or 'jakarta batch' in lower_title: + return 'jakarta-batch' + return 'nablarch-batch' + # Check for REST patterns + if 'rest' in lower_path or 'jaxrs' in lower_path or 'restful' in lower_title: + return 'restful-web-service' + # Check for Web patterns (but not webservice) + if ('web' in lower_path or 'web' in lower_title) and 'webservice' not in lower_path and 'service' not in lower_title: + return 'web-application' + + # Rule 4: Setup categories - check filename and title + if category in ['blank-project', 'configuration', 'setting-guide', 'cloud-native']: + # Nablarch Batch patterns + if any(pattern in lower_path for pattern in ['nablarchbatch', 'setup_nablarchbatch', 'containerbatch']) \ + or 'nablarch batch' in lower_title or 'nablarchバッチ' in title: + return 'nablarch-batch' + + # Jakarta Batch patterns + if 'jbatch' in lower_path or 'setup_jbatch' in lower_path or 'jakarta batch' in lower_title: + return 'jakarta-batch' + + # RESTful Web Service patterns + if 'webservice' in lower_path or 'setup_webservice' in lower_path or 'setup_containerwebservice' in lower_path \ + or 'restful' in lower_title or 'restfulウェブサービス' in title: + return 'restful-web-service' + + # Web Application patterns (but not webservice) + if ('web' in lower_path or 'containerweb' in lower_path) and 'webservice' not in lower_path and 'service' not in lower_title \ + or ('web project' in lower_title or 'ウェブプロジェクト' in title): + return 'web-application' + + # Default: empty (generic/shared) + return '' + +def fix_target_path(source_path: str, type_: str, category: str, old_target: str) -> str: + """ + Fix target path to follow subdirectory rules. + + Component categories: Preserve subdirectories + Other types: Flat structure (use old_target) + """ + if category not in ['handlers', 'libraries', 'adapters']: + # Non-component: use existing target path + return old_target + + # Component: Preserve subdirectories + # Extract source subdirectories + parts = source_path.split('/') + + # Find category in path + category_mapping = { + 'handlers': 'handlers', + 'libraries': 'libraries', + 'adapters': 'adaptors', # Note: source uses 'adaptors' + } + + source_category = category_mapping.get(category, category) + + try: + # Find index of category directory in path + category_idx = None + for i, part in enumerate(parts): + if source_category in part: + category_idx = i + break + + if category_idx is None: + log_warning(f"Category '{source_category}' not found in path: {source_path}") + return old_target + + # Extract subdirectories between category and filename + subdirs = parts[category_idx + 1:-1] # Exclude category and filename + + # Exclude 'images' directories + subdirs = [d for d in subdirs if d != 'images'] + + # Get filename from source + source_filename = parts[-1] + # Convert to target filename: .rst → .md, underscores → hyphens + target_filename = source_filename.replace('.rst', '.md').replace('.md', '.md') + target_filename = target_filename.replace('_', '-') + + # If filename is index, use more descriptive name + if target_filename == 'index.md': + # Use parent directory name or generic name + if subdirs: + target_filename = f"{subdirs[-1]}.md" + else: + target_filename = 'overview.md' + + # Construct target path + path_parts = [type_, category] + subdirs + [target_filename] + return '/'.join(path_parts) + + except Exception as e: + log_error(f"Failed to fix target path for {source_path}: {e}") + return old_target + +def parse_source_path_link(text: str) -> Optional[str]: + """Extract source path from Markdown link [path](url)""" + match = re.match(r'\[(.*?)\]\(.*?\)', text) + if match: + return match.group(1) + return text # If not a link, return as-is + +def parse_existing_mapping(input_file: Path) -> list: + """Parse existing all-files-mapping-v6.md""" + rows = [] + + with open(input_file, 'r', encoding='utf-8') as f: + lines = f.readlines() + + # Find table start + in_table = False + header_found = False + + for line in lines: + line = line.strip() + + if not line: + continue + + if line.startswith('| Source Path |'): + in_table = True + header_found = True + continue + + if in_table and line.startswith('|---'): + continue + + if in_table and line.startswith('|'): + # Parse table row + cells = [cell.strip() for cell in line.split('|')[1:-1]] # Remove empty first/last + + if len(cells) >= 5: + source_path_raw = cells[0] + type_ = cells[1] + category = cells[2] + # Skip source_path_pattern (cells[3]) + target_path = cells[4] + + # Extract source path from link + source_path = parse_source_path_link(source_path_raw) + + # Skip n/a rows + if category == 'n/a': + continue + + rows.append({ + 'source_path': source_path, + 'type': type_, + 'category': category, + 'target_path': target_path, + }) + + return rows + +def generate_mapping_table(input_file: Path, output_file: Path): + """Main function to generate new mapping table""" + print(f"📖 Reading {input_file}") + rows = parse_existing_mapping(input_file) + print(f"✅ Parsed {len(rows)} rows") + + print("\n🔄 Processing rows...") + output_rows = [] + + for i, row in enumerate(rows, 1): + source_path = row['source_path'] + type_ = row['type'] + category = row['category'] + old_target = row['target_path'] + + if i % 50 == 0: + print(f" Processed {i}/{len(rows)} rows...") + + # Extract titles + title_en, status_en = extract_title(source_path, 'en') + if status_en != 'ok': + log_warning(f"Title (en) {status_en} for: {source_path}") + # Generate title from filename + filename = source_path.split('/')[-1] + if filename.endswith('.xlsx'): + # For Excel files, use filename as-is (may contain Japanese) + title_en = filename.replace('.xlsx', '') + else: + title_en = filename.replace('.rst', '').replace('.md', '').replace('_', ' ').title() + + title_ja, status_ja = extract_title(source_path, 'ja') + if status_ja == 'missing_file': + # Special cases + if source_path.endswith('.xlsx'): + # For Excel files with Japanese names, extract from filename + filename = source_path.split('/')[-1] + if 'セキュリティ対応表' in filename: + title_ja = 'Nablarchセキュリティ対応表' + else: + title_ja = filename.replace('.xlsx', '') + elif 'duplicate_form_submission' in source_path: + # Known English-only file - leave empty + title_ja = '' + else: + log_warning(f"Title (ja) missing (no ja/ file) for: {source_path}") + title_ja = '' + elif status_ja == 'parse_failed': + log_warning(f"Title (ja) parse failed for: {source_path}") + title_ja = '' + + # Generate official URL + official_url = generate_official_url(source_path) + + # Assign processing pattern (use title for better detection) + title_for_pattern = title_ja if title_ja else title_en if title_en else '' + processing_pattern = assign_processing_pattern(source_path, type_, category, title_for_pattern) + + # Fix target path + target_path = fix_target_path(source_path, type_, category, old_target) + + output_rows.append({ + 'source_path': source_path, + 'title': title_en or '', + 'title_ja': title_ja or '', + 'official_url': official_url, + 'type': type_, + 'category': category, + 'processing_pattern': processing_pattern, + 'target_path': target_path, + }) + + print(f"✅ Processed all {len(output_rows)} rows") + + # Write output + print(f"\n📝 Writing to {output_file}") + write_output(output_rows, output_file) + print(f"✅ Wrote {output_file}") + + # Print summary + print(f"\n{'='*60}") + print("📊 SUMMARY") + print(f"{'='*60}") + print(f"Total rows: {len(output_rows)}") + print(f"Warnings: {len(warnings)}") + print(f"Errors: {len(errors)}") + + if warnings: + print(f"\n⚠️ {len(warnings)} warnings (see stderr for details)") + if errors: + print(f"\n❌ {len(errors)} errors (see stderr for details)") + + return len(errors) == 0 + +def write_output(rows: list, output_file: Path): + """Write new mapping table""" + with open(output_file, 'w', encoding='utf-8') as f: + # Write header + f.write("# Nablarch v6 Documentation Mapping\n\n") + f.write(f"**Generated**: 2026-02-19\n") + f.write(f"**Total Files**: {len(rows)}\n\n") + f.write("This table maps Nablarch v6 documentation files to nabledge-6 knowledge files.\n\n") + + # Write table header + f.write("| Source Path | Title | Title (ja) | Official URL | Type | Category ID | Processing Pattern | Target Path |\n") + f.write("|-------------|-------|------------|--------------|------|-------------|-------------------|-------------|\n") + + # Write rows + for row in rows: + f.write(f"| {row['source_path']} ") + f.write(f"| {row['title']} ") + f.write(f"| {row['title_ja']} ") + f.write(f"| {row['official_url']} ") + f.write(f"| {row['type']} ") + f.write(f"| {row['category']} ") + f.write(f"| {row['processing_pattern']} ") + f.write(f"| {row['target_path']} |\n") + +def main(): + parser = argparse.ArgumentParser(description='Generate mapping-v6.md from all-files-mapping-v6.md') + parser.add_argument('--test', action='store_true', help='Output to .test file instead of actual file') + args = parser.parse_args() + + input_file = REPO_ROOT / "doc/mapping/all-files-mapping-v6.md" + + if args.test: + output_file = REPO_ROOT / "doc/mapping/mapping-v6.md.test" + print("🧪 TEST MODE: Output to mapping-v6.md.test\n") + else: + output_file = REPO_ROOT / "doc/mapping/mapping-v6.md" + print("🚀 PRODUCTION MODE: Output to mapping-v6.md\n") + + success = generate_mapping_table(input_file, output_file) + + sys.exit(0 if success else 1) + +if __name__ == '__main__': + main() diff --git a/scripts/mapping/validate-mapping.py b/scripts/mapping/validate-mapping.py new file mode 100755 index 00000000..1a607814 --- /dev/null +++ b/scripts/mapping/validate-mapping.py @@ -0,0 +1,400 @@ +#!/usr/bin/env python3 +""" +Validate mapping-v6.md against design specifications. + +This script checks: +1. Column completeness +2. Title extraction success rate +3. Title (ja) extraction success rate +4. Processing Pattern validity +5. Target Path naming conventions +6. Category ID validation +7. Type consistency + +Usage: + python scripts/validate-mapping.py [mapping-file] + + Default: doc/mapping/mapping-v6.md.test +""" + +import sys +from pathlib import Path +from typing import List, Dict +import argparse + +# Valid values +VALID_TYPES = [ + 'processing-pattern', + 'component', + 'development-tools', + 'setup', + 'guide', + 'check', + 'about', +] + +VALID_CATEGORIES = { + 'processing-pattern': ['nablarch-batch', 'jakarta-batch', 'restful-web-service', 'http-messaging', 'web-application', 'mom-messaging', 'db-messaging'], + 'component': ['handlers', 'libraries', 'adapters'], + 'development-tools': ['testing-framework', 'toolbox', 'java-static-analysis'], + 'setup': ['blank-project', 'configuration', 'setting-guide', 'cloud-native'], + 'guide': ['nablarch-patterns', 'business-samples'], + 'check': ['security-check'], + 'about': ['about-nablarch', 'migration', 'release-notes'], +} + +VALID_PROCESSING_PATTERNS = [ + 'nablarch-batch', + 'jakarta-batch', + 'restful-web-service', + 'http-messaging', + 'web-application', + 'mom-messaging', + 'db-messaging', +] + +COMPONENT_CATEGORIES = ['handlers', 'libraries', 'adapters'] + +def parse_mapping_table(file_path: Path) -> List[Dict[str, str]]: + """Parse mapping table""" + rows = [] + + with open(file_path, 'r', encoding='utf-8') as f: + lines = f.readlines() + + in_table = False + + for line in lines: + line = line.strip() + + if not line: + continue + + if line.startswith('| Source Path |'): + in_table = True + continue + + if in_table and line.startswith('|---'): + continue + + if in_table and line.startswith('|'): + cells = [cell.strip() for cell in line.split('|')[1:-1]] + + if len(cells) >= 8: + rows.append({ + 'source_path': cells[0], + 'title': cells[1], + 'title_ja': cells[2], + 'official_url': cells[3], + 'type': cells[4], + 'category': cells[5], + 'processing_pattern': cells[6], + 'target_path': cells[7], + }) + + return rows + +def validate_columns(rows: List[Dict[str, str]]) -> Dict: + """Validate column completeness""" + results = { + 'total': len(rows), + 'missing_source_path': [], + 'missing_title': [], + 'missing_title_ja': [], + 'missing_official_url': [], + 'missing_type': [], + 'missing_category': [], + 'missing_target_path': [], + } + + for i, row in enumerate(rows, 1): + if not row['source_path']: + results['missing_source_path'].append(i) + if not row['title']: + results['missing_title'].append((i, row['source_path'])) + if not row['title_ja']: + results['missing_title_ja'].append((i, row['source_path'])) + if not row['official_url']: + results['missing_official_url'].append(i) + if not row['type']: + results['missing_type'].append(i) + if not row['category']: + results['missing_category'].append(i) + if not row['target_path']: + results['missing_target_path'].append(i) + # processing_pattern can be empty (generic files) + + return results + +def validate_processing_patterns(rows: List[Dict[str, str]]) -> Dict: + """Validate processing pattern assignments""" + results = { + 'total': len(rows), + 'assigned': [], + 'empty_generic': [], + 'invalid': [], + } + + for i, row in enumerate(rows, 1): + pp = row['processing_pattern'] + + if not pp: + results['empty_generic'].append((i, row['source_path'])) + elif pp in VALID_PROCESSING_PATTERNS: + results['assigned'].append((i, row['source_path'], pp)) + else: + results['invalid'].append((i, row['source_path'], pp)) + + return results + +def validate_target_paths(rows: List[Dict[str, str]]) -> Dict: + """Validate target path naming conventions""" + results = { + 'total': len(rows), + 'valid': [], + 'invalid': [], + 'component_missing_subdir': [], + } + + for i, row in enumerate(rows, 1): + target = row['target_path'] + type_ = row['type'] + category = row['category'] + + if not target: + continue + + # Check format: type/category/... + parts = target.split('/') + + if len(parts) < 2: + results['invalid'].append((i, row['source_path'], target, 'Too few path components')) + continue + + if parts[0] != type_: + results['invalid'].append((i, row['source_path'], target, f'Type mismatch: {parts[0]} != {type_}')) + continue + + if parts[1] != category: + results['invalid'].append((i, row['source_path'], target, f'Category mismatch: {parts[1]} != {category}')) + continue + + # Component categories should preserve subdirectories + if category in COMPONENT_CATEGORIES: + # Check if source has subdirectories + source = row['source_path'] + source_parts = source.split('/') + + # Find category in source path + category_idx = None + for idx, part in enumerate(source_parts): + if category in part or (category == 'adapters' and 'adaptors' in part): + category_idx = idx + break + + if category_idx is not None: + source_subdirs = source_parts[category_idx + 1:-1] # Between category and filename + source_subdirs = [d for d in source_subdirs if d != 'images'] + + target_subdirs = parts[2:-1] # Between category and filename + + if source_subdirs and not target_subdirs: + results['component_missing_subdir'].append(( + i, + row['source_path'], + target, + f'Missing subdirs: {"/".join(source_subdirs)}' + )) + continue + + results['valid'].append((i, row['source_path'], target)) + + return results + +def validate_categories(rows: List[Dict[str, str]]) -> Dict: + """Validate category IDs""" + results = { + 'total': len(rows), + 'valid': [], + 'invalid_type': [], + 'invalid_category': [], + } + + for i, row in enumerate(rows, 1): + type_ = row['type'] + category = row['category'] + + if type_ not in VALID_TYPES: + results['invalid_type'].append((i, row['source_path'], type_)) + continue + + if type_ not in VALID_CATEGORIES: + results['invalid_category'].append((i, row['source_path'], category, f'Unknown type: {type_}')) + continue + + if category not in VALID_CATEGORIES[type_]: + results['invalid_category'].append((i, row['source_path'], category, f'Invalid for type {type_}')) + continue + + results['valid'].append((i, row['source_path'], type_, category)) + + return results + +def print_report(rows: List[Dict[str, str]]): + """Print validation report""" + print("=" * 70) + print("VALIDATION REPORT") + print("=" * 70) + print() + + # Column completeness + print("📋 Column Completeness") + print("-" * 70) + col_results = validate_columns(rows) + print(f"Total Rows: {col_results['total']}") + print() + + for field in ['title', 'title_ja', 'official_url', 'type', 'category', 'target_path']: + missing = col_results[f'missing_{field}'] + count = len(missing) + rate = (col_results['total'] - count) / col_results['total'] * 100 if col_results['total'] > 0 else 0 + + if count == 0: + print(f" ✅ {field}: {rate:.1f}% ({col_results['total']}/{col_results['total']})") + else: + print(f" ⚠️ {field}: {rate:.1f}% ({col_results['total'] - count}/{col_results['total']})") + if field in ['title', 'title_ja']: + for item in missing[:5]: + if isinstance(item, tuple): + print(f" Row {item[0]}: {item[1]}") + else: + print(f" Row {item}") + if count > 5: + print(f" ... and {count - 5} more") + + print() + + # Processing patterns + print("🔄 Processing Pattern Assignment") + print("-" * 70) + pp_results = validate_processing_patterns(rows) + print(f"Total Rows: {pp_results['total']}") + print(f" ✅ Assigned: {len(pp_results['assigned'])} ({len(pp_results['assigned']) / pp_results['total'] * 100:.1f}%)") + print(f" ⚪ Empty (generic): {len(pp_results['empty_generic'])} ({len(pp_results['empty_generic']) / pp_results['total'] * 100:.1f}%)") + + if pp_results['invalid']: + print(f" ❌ Invalid: {len(pp_results['invalid'])}") + for item in pp_results['invalid'][:5]: + print(f" Row {item[0]}: {item[1]} → {item[2]}") + if len(pp_results['invalid']) > 5: + print(f" ... and {len(pp_results['invalid']) - 5} more") + else: + print(f" ✅ Invalid: 0") + + print() + + # Target paths + print("📁 Target Path Naming Conventions") + print("-" * 70) + path_results = validate_target_paths(rows) + print(f"Total Rows: {path_results['total']}") + print(f" ✅ Valid: {len(path_results['valid'])} ({len(path_results['valid']) / path_results['total'] * 100:.1f}%)") + + if path_results['invalid']: + print(f" ❌ Invalid: {len(path_results['invalid'])}") + for item in path_results['invalid'][:5]: + print(f" Row {item[0]}: {item[2]}") + print(f" Reason: {item[3]}") + if len(path_results['invalid']) > 5: + print(f" ... and {len(path_results['invalid']) - 5} more") + + if path_results['component_missing_subdir']: + print(f" ⚠️ Component missing subdirs: {len(path_results['component_missing_subdir'])}") + for item in path_results['component_missing_subdir'][:5]: + print(f" Row {item[0]}: {item[1]}") + print(f" Target: {item[2]}") + print(f" {item[3]}") + if len(path_results['component_missing_subdir']) > 5: + print(f" ... and {len(path_results['component_missing_subdir']) - 5} more") + + print() + + # Categories + print("🏷️ Category Validation") + print("-" * 70) + cat_results = validate_categories(rows) + print(f"Total Rows: {cat_results['total']}") + print(f" ✅ Valid: {len(cat_results['valid'])} ({len(cat_results['valid']) / cat_results['total'] * 100:.1f}%)") + + if cat_results['invalid_type']: + print(f" ❌ Invalid Type: {len(cat_results['invalid_type'])}") + for item in cat_results['invalid_type'][:5]: + print(f" Row {item[0]}: {item[2]}") + + if cat_results['invalid_category']: + print(f" ❌ Invalid Category: {len(cat_results['invalid_category'])}") + for item in cat_results['invalid_category'][:5]: + print(f" Row {item[0]}: {item[2]} (Reason: {item[3]})") + + print() + + # Overall summary + print("=" * 70) + print("SUMMARY") + print("=" * 70) + + total_issues = ( + len(col_results['missing_title']) + + len(col_results['missing_title_ja']) + + len(pp_results['invalid']) + + len(path_results['invalid']) + + len(path_results['component_missing_subdir']) + + len(cat_results['invalid_type']) + + len(cat_results['invalid_category']) + ) + + if total_issues == 0: + print("✅ All validations passed!") + else: + print(f"⚠️ Found {total_issues} issues requiring review:") + if len(col_results['missing_title']) > 0: + print(f" - {len(col_results['missing_title'])} missing titles") + if len(col_results['missing_title_ja']) > 0: + print(f" - {len(col_results['missing_title_ja'])} missing Japanese titles") + if len(pp_results['invalid']) > 0: + print(f" - {len(pp_results['invalid'])} invalid processing patterns") + if len(path_results['invalid']) > 0: + print(f" - {len(path_results['invalid'])} invalid target paths") + if len(path_results['component_missing_subdir']) > 0: + print(f" - {len(path_results['component_missing_subdir'])} component paths missing subdirectories") + if len(cat_results['invalid_type']) > 0: + print(f" - {len(cat_results['invalid_type'])} invalid types") + if len(cat_results['invalid_category']) > 0: + print(f" - {len(cat_results['invalid_category'])} invalid categories") + + print() + + automation_rate = ((col_results['total'] - total_issues) / col_results['total'] * 100) if col_results['total'] > 0 else 0 + print(f"Automation Success Rate: {automation_rate:.1f}%") + print(f"Items Needing Manual Review: {total_issues}") + print() + +def main(): + parser = argparse.ArgumentParser(description='Validate mapping-v6.md') + parser.add_argument('file', nargs='?', default='doc/mapping/mapping-v6.md.test', help='Mapping file to validate') + args = parser.parse_args() + + file_path = Path(args.file) + + if not file_path.exists(): + print(f"❌ File not found: {file_path}") + sys.exit(1) + + print(f"📖 Reading {file_path}") + rows = parse_mapping_table(file_path) + print(f"✅ Parsed {len(rows)} rows\n") + + print_report(rows) + +if __name__ == '__main__': + main() diff --git a/scripts/mapping/verify-excel-md-match.py b/scripts/mapping/verify-excel-md-match.py new file mode 100755 index 00000000..c80a127a --- /dev/null +++ b/scripts/mapping/verify-excel-md-match.py @@ -0,0 +1,213 @@ +#!/usr/bin/env python3 +""" +Verify that Excel and Markdown mapping files match completely. + +This script: +1. Reads mapping-v6.md and parses the table +2. Reads mapping-v6.xlsx and extracts data including hyperlinks +3. Compares all columns row by row +4. Reports any mismatches + +Usage: + python scripts/mapping/verify-excel-md-match.py +""" + +import re +import sys +from pathlib import Path +import pandas as pd +from openpyxl import load_workbook + +# File paths +REPO_ROOT = Path(__file__).parent.parent.parent +MAPPING_MD = REPO_ROOT / "doc/mapping/mapping-v6.md" +MAPPING_XLSX = REPO_ROOT / "doc/mapping/mapping-v6.xlsx" + +def parse_markdown_table(file_path: Path) -> pd.DataFrame: + """Parse mapping-v6.md Markdown table into DataFrame.""" + with open(file_path, 'r', encoding='utf-8') as f: + lines = f.readlines() + + # Find table start + table_start = None + for i, line in enumerate(lines): + if line.strip().startswith('| Source Path |'): + table_start = i + 2 # Skip header and separator + break + + if table_start is None: + raise ValueError("Table header not found") + + # Parse rows + rows = [] + for line in lines[table_start:]: + line = line.strip() + if not line or not line.startswith('|'): + break + + cells = [cell.strip() for cell in line.split('|')[1:-1]] + if len(cells) == 8: + rows.append(cells) + + columns = [ + 'Source Path', + 'Title', + 'Title (ja)', + 'Official URL', + 'Type', + 'Category ID', + 'Processing Pattern', + 'Target Path' + ] + + df = pd.DataFrame(rows, columns=columns) + + # Extract URL from Markdown link format [🔗](url) + df['Official URL MD'] = df['Official URL'].apply(extract_url_from_markdown) + + return df + +def extract_url_from_markdown(md_link: str) -> str: + """Extract URL from Markdown link format [🔗](url).""" + match = re.search(r'\[.*?\]\((https://.*?)\)', md_link) + if match: + return match.group(1) + return md_link + +def read_excel_with_hyperlinks(file_path: Path) -> pd.DataFrame: + """Read Excel file and extract hyperlinks from Official URL column.""" + # Read basic data (keep_default_na=False to preserve empty strings) + df = pd.read_excel(file_path, keep_default_na=False) + + # Load workbook to extract hyperlinks + wb = load_workbook(file_path) + ws = wb.active + + # Extract hyperlinks from column D (Official URL) + url_col = 4 # Column D + hyperlinks = [] + + for row in range(2, ws.max_row + 1): # Skip header + cell = ws.cell(row=row, column=url_col) + if cell.hyperlink: + hyperlinks.append(cell.hyperlink.target) + else: + hyperlinks.append(None) + + # Add hyperlinks to DataFrame + df['Official URL Excel'] = hyperlinks + + return df + +def compare_dataframes(md_df: pd.DataFrame, excel_df: pd.DataFrame) -> bool: + """Compare Markdown and Excel DataFrames.""" + print("=" * 70) + print("VERIFICATION REPORT: Markdown vs Excel") + print("=" * 70) + print() + + # Check row counts + md_rows = len(md_df) + excel_rows = len(excel_df) + + print(f"📊 Row Count Check") + print(f" Markdown: {md_rows} rows") + print(f" Excel: {excel_rows} rows") + + if md_rows != excel_rows: + print(f" ❌ Row count mismatch!") + return False + else: + print(f" ✅ Row counts match") + print() + + # Compare each column + columns_to_check = [ + 'Source Path', + 'Title', + 'Title (ja)', + 'Type', + 'Category ID', + 'Processing Pattern', + 'Target Path' + ] + + all_match = True + mismatches = [] + + for col in columns_to_check: + matches = (md_df[col] == excel_df[col]).all() + if matches: + print(f" ✅ {col}: All {md_rows} rows match") + else: + print(f" ❌ {col}: Mismatch found") + all_match = False + + # Find mismatched rows + for idx in range(len(md_df)): + if md_df[col].iloc[idx] != excel_df[col].iloc[idx]: + mismatches.append({ + 'row': idx + 1, + 'column': col, + 'md_value': md_df[col].iloc[idx], + 'excel_value': excel_df[col].iloc[idx] + }) + + # Compare URLs (Markdown link vs Excel hyperlink) + print() + print(f"🔗 Official URL Check") + url_matches = (md_df['Official URL MD'] == excel_df['Official URL Excel']).all() + + if url_matches: + print(f" ✅ All {md_rows} URLs match") + else: + print(f" ❌ URL mismatch found") + all_match = False + + # Find mismatched URLs + for idx in range(len(md_df)): + md_url = md_df['Official URL MD'].iloc[idx] + excel_url = excel_df['Official URL Excel'].iloc[idx] + if md_url != excel_url: + mismatches.append({ + 'row': idx + 1, + 'column': 'Official URL', + 'md_value': md_url, + 'excel_value': excel_url + }) + + print() + print("=" * 70) + + if all_match: + print("✅ VERIFICATION PASSED: Excel and Markdown are identical") + return True + else: + print("❌ VERIFICATION FAILED: Mismatches found") + print() + print("Mismatches:") + for i, mismatch in enumerate(mismatches[:10], 1): # Show first 10 + print(f"{i}. Row {mismatch['row']}, Column '{mismatch['column']}':") + print(f" MD: {mismatch['md_value']}") + print(f" Excel: {mismatch['excel_value']}") + + if len(mismatches) > 10: + print(f"... and {len(mismatches) - 10} more mismatches") + + return False + +def main(): + """Main execution""" + print(f"📖 Reading {MAPPING_MD}") + md_df = parse_markdown_table(MAPPING_MD) + + print(f"📖 Reading {MAPPING_XLSX}") + excel_df = read_excel_with_hyperlinks(MAPPING_XLSX) + + print() + success = compare_dataframes(md_df, excel_df) + + return 0 if success else 1 + +if __name__ == '__main__': + sys.exit(main()) diff --git a/scripts/mapping/verify-title-match.py b/scripts/mapping/verify-title-match.py new file mode 100755 index 00000000..c04d4ce1 --- /dev/null +++ b/scripts/mapping/verify-title-match.py @@ -0,0 +1,284 @@ +#!/usr/bin/env python3 +""" +Verify that Title (ja) in mapping file matches actual file titles at Official URLs. + +This script: +1. Reads mapping-v6.md +2. For each row, extracts title from the Japanese source file +3. Compares with Title (ja) column +4. Reports any mismatches + +Usage: + python scripts/mapping/verify-title-match.py +""" + +import re +import sys +from pathlib import Path +from typing import Optional, List, Dict + +# File paths +REPO_ROOT = Path(__file__).parent.parent.parent +MAPPING_MD = REPO_ROOT / "doc/mapping/mapping-v6.md" +NABLARCH_DOC_JA = REPO_ROOT / ".lw/nab-official/v6/nablarch-document/ja" +NABLARCH_GUIDE_BASE = REPO_ROOT / ".lw/nab-official/v6/nablarch-system-development-guide" + +def extract_rst_title(file_path: Path) -> Optional[str]: + """Extract title from rst file header.""" + try: + if not file_path.exists(): + return None + + with open(file_path, 'r', encoding='utf-8') as f: + lines = f.readlines() + + for i in range(min(20, len(lines))): + line = lines[i].strip() + + if line.startswith('..'): + continue + if not line: + continue + + if i > 0: + prev = lines[i-1].strip() + if prev and all(c in '=-' for c in prev) and len(prev) >= len(line) * 0.8: + return line + + if i < len(lines) - 1: + next_line = lines[i+1].strip() + if next_line and all(c in '=-' for c in next_line) and len(next_line) >= len(line) * 0.8: + return line + + return None + except Exception: + return None + +def extract_md_title(file_path: Path) -> Optional[str]: + """Extract title from markdown file (first # heading).""" + try: + if not file_path.exists(): + return None + + with open(file_path, 'r', encoding='utf-8') as f: + for line in f: + line = line.strip() + if line.startswith('# '): + return line[2:].strip() + + return None + except Exception: + return None + +def extract_url_from_markdown(md_link: str) -> Optional[str]: + """Extract URL from Markdown link format [🔗](url).""" + import re + match = re.search(r'\[.*?\]\((https://.*?)\)', md_link) + if match: + return match.group(1) + return None + +def get_file_path_from_url(official_url: str, source_path: str) -> Optional[Path]: + """Get file path from Official URL (for verification).""" + # Extract URL from markdown link + url = extract_url_from_markdown(official_url) + if url is None: + return None + + if 'nablarch-system-development-guide' in url: + # Extract path from GitHub URL + # Format: https://github.com/Fintan-contents/nablarch-system-development-guide/blob/main/{path} + if '/blob/main/' in url: + path_part = url.split('/blob/main/', 1)[1] + return NABLARCH_GUIDE_BASE / path_part + elif 'nablarch.github.io' in url: + # Extract path from docs URL + # Format: https://nablarch.github.io/docs/6u3/doc/{path}.html + if '/doc/' in url: + html_path = url.split('/doc/', 1)[1] + # Convert .html back to .rst (or .md) + if source_path.endswith('.md'): + rst_path = html_path.replace('.html', '.md') + else: + rst_path = html_path.replace('.html', '.rst') + + # Map to Japanese path + return get_ja_file_path_from_source(rst_path) + + return None + +def get_ja_file_path_from_source(source_path: str) -> Optional[Path]: + """Get Japanese file path from source path.""" + if source_path.startswith('en/Nablarch-system-development-guide/'): + # nablarch-system-development-guide + ja_path = source_path.replace( + 'en/Nablarch-system-development-guide/', + 'Nablarchシステム開発ガイド/' + ) + + # Map English filenames to Japanese + filename_mapping = { + 'Asynchronous_operation_in_Nablarch.md': 'Nablarchでの非同期処理.md', + 'Nablarch_anti-pattern.md': 'Nablarchアンチパターン.md', + 'Nablarch_batch_processing_pattern.md': 'Nablarchバッチ処理パターン.md', + } + + for en_name, ja_name in filename_mapping.items(): + if ja_path.endswith(en_name): + ja_path = ja_path.replace(en_name, ja_name) + break + + return NABLARCH_GUIDE_BASE / ja_path + elif source_path.startswith('Sample_Project/'): + # Sample_Project is in nablarch-system-development-guide + return NABLARCH_GUIDE_BASE / source_path + else: + # nablarch-document + ja_source_path = source_path + + # Handle filename mapping for renamed files + nablarch_doc_filename_mapping = { + 'duplicate_form_submission.rst': 'double_transmission.rst', + } + + for en_name, ja_name in nablarch_doc_filename_mapping.items(): + if source_path.endswith(en_name): + ja_source_path = source_path.replace(en_name, ja_name) + break + + return NABLARCH_DOC_JA / ja_source_path + +def extract_title_from_url(official_url: str, source_path: str) -> Optional[str]: + """Extract Japanese title from file pointed by Official URL.""" + file_path = get_file_path_from_url(official_url, source_path) + + if file_path is None or not file_path.exists(): + return None + + # Skip non-text files (Excel, images, etc.) + if source_path.endswith(('.xlsx', '.xls', '.png', '.jpg', '.gif', '.svg')): + return None + + if source_path.endswith('.md'): + return extract_md_title(file_path) + else: + return extract_rst_title(file_path) + +def parse_mapping_table(file_path: Path) -> List[Dict[str, str]]: + """Parse mapping table.""" + rows = [] + + with open(file_path, 'r', encoding='utf-8') as f: + lines = f.readlines() + + in_table = False + + for line in lines: + line = line.strip() + + if not line: + continue + + if line.startswith('| Source Path |'): + in_table = True + continue + + if in_table and line.startswith('|---'): + continue + + if in_table and line.startswith('|'): + cells = [cell.strip() for cell in line.split('|')[1:-1]] + + if len(cells) >= 8: + rows.append({ + 'source_path': cells[0], + 'title': cells[1], + 'title_ja': cells[2], + 'official_url': cells[3], + }) + + return rows + +def main(): + """Main execution""" + print(f"📖 Reading {MAPPING_MD}") + rows = parse_mapping_table(MAPPING_MD) + print(f"✅ Parsed {len(rows)} rows") + print() + + print("=" * 70) + print("TITLE VERIFICATION REPORT") + print("=" * 70) + print() + + mismatches = [] + missing_files = [] + checked = 0 + + for i, row in enumerate(rows, 1): + source_path = row['source_path'] + title_ja_in_table = row['title_ja'] + official_url = row['official_url'] + + # Extract title from actual file pointed by Official URL + actual_title = extract_title_from_url(official_url, source_path) + + if actual_title is None: + file_path = get_file_path_from_url(official_url, source_path) + if file_path and not file_path.exists(): + missing_files.append({ + 'row': i, + 'source_path': source_path, + 'file_path': str(file_path), + }) + continue + + checked += 1 + + # Compare + if actual_title != title_ja_in_table: + mismatches.append({ + 'row': i, + 'source_path': source_path, + 'table_title': title_ja_in_table, + 'actual_title': actual_title, + }) + + # Report + print(f"📊 Verification Results") + print(f" Total rows: {len(rows)}") + print(f" Checked: {checked}") + print(f" Missing files: {len(missing_files)}") + print(f" Mismatches: {len(mismatches)}") + print() + + if missing_files: + print("⚠️ Missing Files:") + for item in missing_files[:10]: + print(f" Row {item['row']}: {item['source_path']}") + print(f" Expected: {item['file_path']}") + if len(missing_files) > 10: + print(f" ... and {len(missing_files) - 10} more") + print() + + if mismatches: + print("❌ Title Mismatches:") + for item in mismatches[:10]: + print(f" Row {item['row']}: {item['source_path']}") + print(f" Table: {item['table_title']}") + print(f" Actual: {item['actual_title']}") + if len(mismatches) > 10: + print(f" ... and {len(mismatches) - 10} more") + print() + + print("=" * 70) + + if mismatches or missing_files: + print("❌ VERIFICATION FAILED") + return 1 + else: + print("✅ VERIFICATION PASSED: All titles match") + return 0 + +if __name__ == '__main__': + sys.exit(main())