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)

Reply via email to