Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
EclipseLink/DesignDocs/219683
Design Specification: Interceptors
Document History
Date | Author | Version Description & Notes |
---|---|---|
2008-02-21 | Gordon Yorke | Working Draft |
Project overview
This feature will introduce Interceptor interfaces that can be implemented by users to intercept certain internal EclipseLink component interactions. This will include cache access, query execution, Call execution and others.
Goals:
- Provide extension points that intercept internal EcliseLink operations instead of the current options of responding to operations through events.
- Choose interception points that provide the best leverage.
Concepts
Interceptors
Within TopLink logical operations like cache access or database writes flow naturally through different components. If points of intercept were added at the logical points of delegation within the TopLink architecture these operations could be intercepted and augmented or redirected. Developing these interception points and Interceptor interfaces increases the extensibility of TopLink beyond the scope of our current extensibility. Our current extension points exist within the datasource access paradigm of TopLink limiting users to extensions within the confines of TopLink behaviours. Interceptors provide the opportunity to extend the behaviour of TopLink beyond datasource access into data management. Offering the potential for TopLink to access data, like in the case of Coherence, that is not datasource based.
Requirements
The following sections will expand the goals of this project into more concrete requirements.
Functionality
Session Interceptors
The session will have 2 sets of interceptors. A global set will be inherited by any acquired children. Users will also be able to set local interceptors which will not be inherited by child sessions.
Design Constraints
Maintainability
GUI
Config files
Documentation
Open Issues
This section lists the open issues that are still pending that must be decided prior to fully implementing this project's requirements.
Issue # | Owner | Description / Notes |
---|---|---|
Decisions
This section lists decisions made. These are intended to document the resolution of open issues or constraints added to the project that are important.
Issue # | Description / Notes | Decision |
---|---|---|
Future Considerations
During the research for this project the following items were identified as out of scope but are captured here as potential future enhancements. If agreed upon during the review process these should be logged in the bug system.