You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "Ernest Burghardt (Jira)" <ji...@apache.org> on 2022/05/09 16:29:00 UTC

[jira] [Updated] (GEODE-10007) Make o.a.geode.cache.internal.HttpService SPI part of the non-internal, public API

     [ https://issues.apache.org/jira/browse/GEODE-10007?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ernest Burghardt updated GEODE-10007:
-------------------------------------
        Parent:     (was: GEODE-10003)
    Issue Type: Improvement  (was: Sub-task)

> 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: Improvement
>            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 with _Java's_ {{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.  A proper SPI affords any application, framework, tool or product a degree of extensibility and flexibility, applied by 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 (specification) 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 Apache Geode provided, internal 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) itself, is highly useful and valuable in certain configuration arrangements.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)