o1c
o1c copied to clipboard
Create service provider descriptors API
In order for the various SPIs to actually be pluggable, some service descriptor classes need to be made to describe the various algorithms. These can be located by ServiceLoader and filtered based on their properties. In doing this, it might be necessary to break up the API/SPI module into its own so that a particular implementation can be chosen at runtime based on the classpath, modulepath, or some other configuration mechanism.
Note, however, that configuration mechanisms should be fairly minimal to avoid introducing insecure ways to use things.