jakartaee / jakartaee/expression-language

Enhancement: Move caching and other implementation details into Implementation / SPI

Open
#248 6 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.