Open tomas-langer opened 1 year ago
An attempt will be done to have this backward compatible (by keeping the bind
methods available and deprecated).
The new approach is being designed as follows:
ServiceDescriptor
will be code generated - this type will depend only on API, and will use class model to be generateddefault
method on the interface)Most of the code is either re-used or copied from existing implementation, with focus on:
null
is never used in APIsfinal
fields as much as possible (with the exception of state related fields, such as status
, serviceInstance
etc.)Some conceptual changes are required to align with Helidon style and coding guidelines. The PR will contain appropriate readme, high level info:
codegen
to contain all tools related to code processing and generation, with implementations for annotation processing (APT) and classpath scanning (scan). Scan is expected to be used from maven plugin(s), and possibly from command line tools. We could also have a reflection based implementation of these if ever neededcodegen
instead of processor
in most cases (change in modules)codegen
codegen
tools
module is removedYou need to add a dependencies-test
making use of the enforcer plugin to ensure that there is no inject runtime in the cp. This is to avoid regressions in this area.
The current implementation requires runtime to be present at compilation time (through dependencies of the generated code).
This should be changed, so only API is required.
Planned changes against the
inject-update
branch in Helidon repository: