Open dbwiddis opened 1 year ago
We don't have a create components method, and instead are directly implementing the required components. Some are associated with other extension points.
The following are part of createComponents
and are significant enough to be tracked separately as part of that extension point:
Extensions which interact with Job Scheduler will need JobSchedulerExtension
extension points. These are being implemented in the job-scheduler
repository.
The following plugins may not be relevant for extensions. They are documented here for completeness:
ClusterPlugin
DiscoveryPlugin
NetworkPlugin
@dbwiddis why are https://github.com/opensearch-project/opensearch-sdk-java/issues/315#issuecomment-1377742853 not relevant for extensions?
why are #315 (comment) not relevant for extensions?
@minalsha I used the qualifier "may not be relevant". I'd appreciate another set of eyes on this (@saratvemulapalli).
List of prioritized and ranked Extension Points, we want to go after are as follows:
AnalysisPlugin
Plugin
ActionPlugin
ReloadablePlugin
RepositoryPlugin
MapperPlugin
IngestPlugin
ExtensiblePlugin
ScriptPlugin
SystemIndexPlugin
Extensions which interact with Job Scheduler will need JobSchedulerExtension extension points. These are being implemented in the job-scheduler repository.
This issue is created to track Extension Point implementation.
Not all extension points will need to be implemented for Extensions, and will be removed from the list when that determination is made.
The general approach to implementation is:
FooExtension
interface corresponding to theFooPlugin
interface, with the same default implementations.Node
class that runs on OpenSearch bootstrap, where a module iterates over plugins implementing a particular interface and and "registers" the implemented extensions points, adding them to maps/lists, etc.Extension Points applicable to all plugins are defined in the
Plugin
interface:The following interfaces also implement custom functionality:
ActionPlugin
AnalysisPlugin
CircuitBreakerPlugin
EnginePlugin
ExtensiblePlugin
IndexStorePlugin
IngestPlugin
MapperPlugin
PersistentTaskPlugin
RepositoryPlugin
ReloadablePlugin
ScriptPlugin
SearchPlugin
SystemIndexPlugin