Skip to content

Conversation

@groldan
Copy link
Member

@groldan groldan commented Sep 3, 2025

Implements a complete annotation processor that converts Spring XML bean definitions
to Java @configuration classes. The transpiler handles all major Spring XML patterns
found across GeoServer configurations including abstract bean inheritance, factory
methods, constructor injection, property wiring, and AOP proxy beans.

Key features include preservation of original XML structure in generated javadocs,
proper handling of bean aliases and circular references, support for component-scan
elements, and comprehensive test coverage with XMLUnit-based assertions that ignore
formatting differences and comments.

The implementation uses a visitor pattern for extensible code generation and
leverages Spring's own XML parsing infrastructure to ensure robust handling of
all namespace features while capturing the original DOM elements for documentation.

@groldan groldan added enhancement New feature or request dependencies dependency management refactor A refactoring that does not affect functionality labels Oct 16, 2025
@groldan groldan force-pushed the feature/spring-config-transpiler branch from 320226c to 995725a Compare October 16, 2025 03:25
…ation

Implements a complete annotation processor that converts Spring XML bean definitions
to Java @configuration classes. The transpiler handles all major Spring XML patterns
found across GeoServer configurations including abstract bean inheritance, factory
methods, constructor injection, property wiring, and AOP proxy beans.

Key features include preservation of original XML structure in generated javadocs,
proper handling of bean aliases and circular references, support for component-scan
elements, and comprehensive test coverage with XMLUnit-based assertions that ignore
formatting differences and comments.

The implementation uses a visitor pattern for extensible code generation and
leverages Spring's own XML parsing infrastructure to ensure robust handling of
all namespace features while capturing the original DOM elements for documentation.
@groldan groldan force-pushed the feature/spring-config-transpiler branch from 995725a to e6172b0 Compare October 23, 2025 15:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies dependency management enhancement New feature or request refactor A refactoring that does not affect functionality

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant