...
- If there is no existing JIRA case that provoked the API change request, create a JIRA case proposing the extension.
- If relevant, provide links to the superseding APIs in the Jira case.
- Assign the case to the governing architect.
- Send notification of the case to the team leads / architects involved with the affected project.
- Implementation of extension to interface XYZ
- Create a new child interface called ExtendedXYZ XYZExtended (if it does not already exist) that extends XYZ, add the new method(s) to that
2) Where the existing method is called, add an "instanceof" check. If true, cast and delegate. If not, retain the current behavior
3) @Deprecate the existing interface, with lots of detail in the javadoc (see the guidelines here).
4) Doc the new interface, usage, deprecation of the old, etc. in the appropriate spots (Embed guide, What's New?, SDK, etc.)
- 2)
- XYZExtended.
- Where the existing method is called, add an "instanceof" check. If true, cast and delegate. If not, retain the current behavior
- @Deprecate the existing interface, with lots of detail in the javadoc (see the guidelines here)
- Document the new interface, usage, deprecation of the old, etc. in the appropriate
- locations
- If there's agreement to proceed, make the change.
- The architect should then work with PM and other stakeholders to determine how long the deprecated features should be supported.
- Keep the case open and set the fix version for the next major release when there's agreement that the deprecated features can be removed
...