John Blum created GEODE-10007:
---------------------------------
Summary: o.a.geode.cache.internal.HttpService should be part of
the API
Key: GEODE-10007
URL: https://issues.apache.org/jira/browse/GEODE-10007
Project: Geode
Issue Type: Improvement
Reporter: John Blum
The {{HttpService}} interface is defined and used as a _Service Provider
Interface_ (SPI) and even loaded as such by via 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.
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 HTTP service hosting the Geode provided Web apps
(e.g. Pulse, Management/Admin REST API, Developer REST API). Of course, these
Web apps need to be updated as well (to use the new Jakarta EE 9 specs).
There are other examples of the SPI used on 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)