ppkarwasz commented on issue #3875:
URL: 
https://github.com/apache/logging-log4j2/issues/3875#issuecomment-3178128228

   > What I plan to do on the implementation side is that this DI metadata will 
be used to generate the GraalVM reachability metadata, and in the future, this 
may also be useful for generating code for building plugins so we can avoid 
reflection entirely. And while I haven't verified this yet, it might be simpler 
to write code to transform one tree of classes into another tree of classes to 
dump to JSON than it is to write two separate annotation processors.
   
   What I’d suggest is tackling these problems incrementally:
   
   * **Generate GraalVM reachability metadata directly** in the 
`GraalVmProcessor`. There’s no strong need to introduce another layer of 
indirection for this. Since generating the proposed injection metadata will 
already require an annotation processor to process `@Inject` annotations, the 
additional intermediate step seems avoidable.
   
   * **Defer the broader enhancement** until we can evaluate it in the context 
of existing tooling:
   
     * Established, general-purpose dependency injection frameworks.
     * Call graph generators. Dependency injection is a common challenge when 
determining method reachability, not just for GraalVM. It may be best to wait 
until @openrefactorymunawar’s Java call graph generator is released, then align 
on a metadata format that could serve both GraalVM and the call graph generator.
   
   Also, note that **Log4j already has a custom metadata format** for 
documenting plugins ([Log4j 
Docgen](https://logging.apache.org/log4j/tools/log4j-docgen.html#descriptor-generator)).
 If needed, we could extend that format rather than inventing an entirely new 
one.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscr...@logging.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to