jakartaee / jakartaee/expression-language
Enhancement: Move caching and other implementation details into Implementation / SPI
- Dominant language
- Java
- Stars
- 86
- Forks
- 52
- PR merge metrics
- No merged PRs in 30d
Description
Currently, BeanELResolver (and others?) have implementation details, such as caching, built into the API.
There are a number of issues with this approach, including inability to update these implementation details
without breaking existing API signatures.
This also makes it impossible to properly invalidate the cache, which is dependent on integration with frameworks and application servers.
I propose to create an SPI and move the implementation details out of the API and into EL implementation.
I also propose adding invalidation methods to the default caching implementation, such as `clearProperties(ClassLoader)`
that removes all beans that belong to a specific ClassLoader
Supersedes #218
Supersedes #214
Supersedes #215
Contributor guide
Research direction
Start with BeanELResolver and the caching implementation details described in the issue, then review superseded issues #218, #214, and #215 for prior context. Done means the project has agreed on an SPI boundary and defined cache invalidation methods such as clearProperties(ClassLoader).
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- backend-api-design
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100