Current Architecture
This page summarizes the current structure of the annotation processor in framework/deployment.
Active Compiler Path
The canonical processor path is:
PipelineDiscoveryPhaseModelExtractionPhasePipelineRuntimeMappingPhasePipelineSemanticAnalysisPhasePipelineTargetResolutionPhasePipelineBindingConstructionPhasePipelineGenerationPhasePipelineInfrastructurePhase
This chain is wired in PipelineStepProcessor.init(...) and executed by PipelineCompiler.
Active Components
Active in canonical path:
PipelineStepProcessorPipelineCompilerPipelineCompilationContext- the eight phases listed above
Phase Collaborators
Each phase with complex orchestration delegates to focused, stateless collaborators injected via constructor:
| Phase | Collaborators |
|---|---|
| PipelineDiscoveryPhase | DiscoveryPathResolver, DiscoveryConfigLoader, TransportPlatformResolver |
| ModelExtractionPhase | PipelineStepIRExtractor, ModelContextRoleEnricher |
| PipelineTargetResolutionPhase | ClientRoleTargetResolutionStrategy, ServerRoleTargetResolutionStrategy |
| PipelineBindingConstructionPhase | GrpcRequirementEvaluator, StepBindingConstructionService |
Retained Non-Canonical Phases
The canonical chain is the only active execution path. Some earlier phase-style classes are retained for compatibility/reference and are not part of PipelineStepProcessor.init(...):
ConfigurationLoadingPhaseTargetResolutionPhaseBindingResolutionPhase
Generation Dispatch Model
The generation subsystem contains:
- per-target generator abstractions (
TargetGenerator,GenerationRequest, concrete*TargetGeneratorclasses) - domain services (
StepArtifactGenerationService,SideEffectBeanService,ProtobufParserService,OrchestratorGenerationService) - the generation phase orchestrator (
PipelineGenerationPhase)
Package Map
processor/: processor facade and compiler orchestrationprocessor/ir/: semantic and binding model typesprocessor/phase/: phase implementations and generation services/policiesprocessor/extractor/: annotation -> IR extractionprocessor/config/: YAML and option loadersprocessor/renderer/: JavaPoet renderersprocessor/util/: path, metadata, naming, binding helpersprocessor/mapping/: runtime mapping resolver/modelprocessor/validator/: validation helpers
Guardrails
- Keep semantic IR transport-agnostic.
- Keep transport-specific realization in bindings/renderers/services.
- Keep policy decisions centralized (semantic analysis + generation policy).
- Keep phase responsibilities isolated and explicit.