Linting Phases
11/25/25Less than 1 minute
The linter executes in five phases:
Phase 1: Project Setup
Input Validation:
- Validates that input is a JAR file
- Checks file existence or URL accessibility
JAR Extraction:
- Downloads remote JAR files if needed
- Extracts JAR contents to temporary directory
- Preserves directory structure
Classloader Setup:
- Creates project-specific classloader
- Loads plugin classes and dependencies
- Sets up context classloader for resource access
Phase 2: Resource Discovery
Plugin Discovery:
- Scans
META-INF/services/for plugin registrations - Loads plugin classes
- Detects API version (v1 or v2)
- Scans
BPMN Discovery:
- Scans
bpe/directory for BPMN files - Parses BPMN files to extract process definitions
- Maps BPMN files to plugins
- Scans
FHIR Discovery:
- Scans
fhir/directory for FHIR resources - Organizes resources by type
- Maps FHIR resources to plugins
- Scans
Reference Mapping:
- Extracts BPMN references to FHIR resources
- Maps FHIR resource references
- Identifies cross-references
Phase 3: Linting
Per-Plugin Linting:
- For each discovered plugin:
- Validates BPMN processes
- Validates FHIR resources
- Validates plugin configuration
- Collects lint items
- For each discovered plugin:
Project-Level Analysis:
- Performs leftover resource analysis
- Aggregates referenced resources across all plugins
- Identifies unreferenced resources
Result Aggregation:
- Combines results from all plugins
- Calculates totals (errors, warnings)
- Determines overall success status
Phase 4: Report Generation
HTML Report Generation:
- Generates summary page
- Generates detailed plugin pages
- Applies templates and styling
JSON Report Generation (if requested):
- Serializes all results to JSON
- Includes metadata and statistics
- Provides machine-readable format
Phase 5: Summary
Console Output:
- Displays execution summary
- Shows error and warning counts
- Reports execution time
Exit Code Determination:
- Sets exit code based on results
- Respects
--no-failflag - Returns appropriate status code