Skip to content

Move generic classes into codegen + codegen-roaster modules (phase 1) #349

Open

Description

@igel-devin-ai

Subtask of #233 — the history-preserving extraction itself.

  • New Maven artifacts: codegen (framework-agnostic processing/codegen layer, package root org.javahelpers.codegen) and codegen-roaster (Roaster backend implementing ClassCodeGenerator).
  • git mv of the decoupled generic classes (classgen/*, analysis/*, processing/logging/*, processing/CompilerOption, model types) into their final packages/modules — one move per commit where practical so Git rename detection and git log --follow keep months-old history.
  • BuilderException becomes CodeGenerationException at the boundary.
  • Missing builder-side DTOs/enums/wrappers are created on the builder side rather than introducing backwards dependencies.
  • POMs, imports, META-INF/services, tests, CI, release config, coverage and example dependencies updated.
  • Acceptance: simple-builders behavior and generated output byte-identical.

Activity

  1. igel-devin-ai commented on Oct 22, 2026

    @igel-devin-ai
    ContributorAuthor

    Package-layout candidate for the move: processor.processing.logging (ProcessingLogger, PerformanceTracker, ActivePerformanceTracker, NoOpPerformanceTracker, PhaseHierarchy) may belong at processor.logging instead — deferred from #299 review since it is an upstream package rename that is better collected here.

  2. changed the title [-]Move generic classes into simple-codegen + simple-codegen-roaster modules (phase 1)[/-] [+]Move generic classes into codegen + codegen-roaster modules (phase 1)[/+] on Oct 24, 2026
  3. igel-devin-ai commented on Oct 25, 2026

    @igel-devin-ai
    ContributorAuthor

    Scope note: before this move lands, #378 (PR #379) generalizes BuilderProcessor's machinery into a reusable annotation-processing driver inside the processor module (AbstractCodegenProcessor + AnnotationElementSpec/ProcessorOptionRegistry/CodegenTask/ProcessingTarget/SourceFormatterResolver, under org.javahelpers.codegen.processing).

    Once that merges, this move will carry three artifacts instead of two, split at the javax.lang.model boundary (verified: only 7 codegen files touch JSR-269):

    • io.github.java-helpers.codegen:codegen-core — javax-free: model, enums, ClassCodeGenerator/SourceFormatter SPI, GenerationPhases, GenerationIssueReporter, CodeGenerationException, ImportCollector
    • io.github.java-helpers.codegen:annotation-processing — everything JSR-269-bound: AnnotationProcessingContext/options/analysis + the new driver machinery
    • io.github.java-helpers.codegen:codegen-roaster — backend on codegen-core, as before

    Open boundary question tracked on #378: GenerationEnvironment wraps ProcessingEnvironment — (a) move the SPI pair into annotation-processing, or (b) neutral env contract in codegen-core + ProcessingEnvironment impl in annotation-processing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions