spring-boot-data-geode icon indicating copy to clipboard operation
spring-boot-data-geode copied to clipboard

Remove all uses of internal Apache Geode APIs

Open jxblum opened this issue 5 years ago • 2 comments

Current use of internal Apace Geode API's is (use expression: import org\.apache\.geode.*internal*):

Screen Shot 2020-02-20 at 12 43 30 PM

jxblum avatar Jan 18 '20 01:01 jxblum

This has not been completely resolved yet!

jxblum avatar Feb 22 '20 04:02 jxblum

Unfortunately, it is not currently possible to achieve certain, desired features or functionality in SBDG without the use of Apache Geode internal APIs.

This is because the Apache Geode's APIs are incomplete or wrong in certain cases. Additionally, and internally, Apache Geode naively treats certain object instances as the internal implementation of the public interface and API.

For example, the Pool interface is something that applications, or particularly frameworks and tooling should be able to implement and provide to Apache Geode for use, especially with regard to the context in which Apache Geode is used. A different Pool implementation that is context-aware (or sensitive) might be crucial to the runtime stability of the application in that context. Yet, Apache Geode treats every instance of Pool as an org.apache.geode.cache.client.internal.PoolImpl.

The same argument could be made for PDX features and types.

As such, the best we can do at this point is contain the uses of Apache Geode's internal classes and APIs to the SBDG apache-geode-extensions module.

jxblum avatar Feb 24 '22 18:02 jxblum