[ https://issues.apache.org/jira/browse/GEODE-10007?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Udo Kohlmeyer updated GEODE-10007: ---------------------------------- Parent: GEODE-10003 Issue Type: Sub-task (was: Improvement) > Make o.a.geode.cache.internal.HttpService SPI part of the non-internal, > public API > ---------------------------------------------------------------------------------- > > Key: GEODE-10007 > URL: https://issues.apache.org/jira/browse/GEODE-10007 > Project: Geode > Issue Type: Sub-task > Reporter: John Blum > Priority: Minor > > The {{HttpService}} interface is defined and used as a _Service Provider > Interface_ (SPI) inside Apache Geode and even loaded as such using the _Java_ > {{ServerLoader}} > ([Javadoc|https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/ServiceLoader.html]) > class in order to locate and load provider implementations. > An SPI is not much good if "providers" are not allowed to "provide" an > implementation of the service interfaces used to extend or customize Apache > Geode. This allows any application, framework, tool or product a degree of > extensibility and flexibility, afforded to users without intervention, by > being able to "provide" a custom implementation or extension as needed by the > application, framework, tool or product. > 1 such example would be to be able to supply a Jakarta EE 9 (spec) compliant > implementation of an embedded HTTP server (e.g. Jetty, Tomcat or even > Undertow) used by Geode to bootstrap the embedded HTTP service hosting the > Geode provided Web apps (e.g. Pulse, Management/Admin REST API, Developer > REST API) when external hosting is not an option. Of course, these Web apps > need to be updated as well (to use the new Jakarta EE 9 specs). > There are other examples of SPIs used in Apache Geode, which are part of the > non-internal, public API. > For example, the > [ServerLaucherCacheProvider|https://geode.apache.org/releases/latest/javadoc/org/apache/geode/distributed/ServerLauncherCacheProvider.html] > interface, with 1 such > [implementation|https://docs.spring.io/spring-data/geode/docs/current/api/org/springframework/data/gemfire/support/SpringServerLauncherCacheProvider.html] > provided by _Spring Data for Apache Geode_ (SDG) even. -- This message was sent by Atlassian Jira (v8.20.1#820001)