Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove all uses of internal Apache Geode APIs #70

Open
jxblum opened this issue Jan 18, 2020 · 2 comments
Open

Remove all uses of internal Apache Geode APIs #70

jxblum opened this issue Jan 18, 2020 · 2 comments

Comments

@jxblum
Copy link
Contributor

jxblum commented Jan 18, 2020

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 jxblum self-assigned this Jan 18, 2020
jxblum added a commit to jxblum/spring-boot-data-geode that referenced this issue Jan 22, 2020
…log4j and org.apache.geode:geode-serialization.

Note, these dependency declarations are unfortunately necessary due to SBDG's use of Apache Geode internal APIs.  I have filed an Issue ticket (spring-projects#70) with SBDG to remove all uses of internal Apache Geode APIs.
@jxblum jxblum closed this as completed in 952b755 Jan 25, 2020
@jxblum jxblum reopened this Jan 25, 2020
jxblum added a commit to jxblum/spring-boot-data-geode that referenced this issue Feb 22, 2020
…urceConstants class to refer to Security constants and properties.

Resolves spring-projectsgh-70.
jxblum added a commit to jxblum/spring-boot-data-geode that referenced this issue Feb 22, 2020
…ass to assert the cache instance is not a client.

Resolves spring-projectsgh-70.
jxblum added a commit to jxblum/spring-boot-data-geode that referenced this issue Feb 22, 2020
…Config interface to refer to configuration property names.

Resolves spring-projectsgh-70.
jxblum added a commit to jxblum/spring-boot-data-geode that referenced this issue Feb 22, 2020
jxblum added a commit to jxblum/spring-boot-data-geode that referenced this issue Feb 22, 2020
…onfig class to refer to the 'gemfire.' property prefix.

Resolves spring-projectsgh-70.
jxblum added a commit to jxblum/spring-boot-data-geode that referenced this issue Feb 22, 2020
… containing assertions for different Apache Geode objects, such as a cache or Region.

GeodeAssertions will help in the effort to remove all uses of internal Apache Geode APIs and restrict all internal Apache Geode API usage to the apache-geode-extensions module.

Resolves spring-projectsgh-70.
jxblum added a commit to jxblum/spring-boot-data-geode that referenced this issue Feb 22, 2020
…s an instance of o.a.g.internal.cache.GemFireCacheImpl.

Remove assertion on the Region instance asserting whether the Region was an instance of o.a.g.internal.cache.AbstractRegion.

Resolves spring-projectsgh-70.
@jxblum jxblum closed this as completed in 49d5e65 Feb 22, 2020
@jxblum
Copy link
Contributor Author

jxblum commented Feb 22, 2020

This has not been completely resolved yet!

@jxblum jxblum reopened this Feb 22, 2020
@jxblum
Copy link
Contributor Author

jxblum commented Feb 24, 2022

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 jxblum removed their assignment Aug 5, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant