2016-03-13 16:17:48 -04:00
|
|
|
[[breaking_50_plugins]]
|
|
|
|
=== Plugin changes
|
|
|
|
|
|
|
|
The command `bin/plugin` has been renamed to `bin/elasticsearch-plugin`. The
|
|
|
|
structure of the plugin ZIP archive has changed. All the plugin files must be
|
|
|
|
contained in a top-level directory called `elasticsearch`. If you use the
|
|
|
|
gradle build, this structure is automatically generated.
|
|
|
|
|
2016-03-23 05:47:37 -04:00
|
|
|
==== Plugins isolation
|
|
|
|
|
|
|
|
`isolated` option has been removed. Each plugin will have its own classloader.
|
|
|
|
|
2016-03-13 16:17:48 -04:00
|
|
|
==== Site plugins removed
|
|
|
|
|
|
|
|
Site plugins have been removed. Site plugins should be reimplemented as Kibana
|
|
|
|
plugins.
|
|
|
|
|
|
|
|
==== Multicast plugin removed
|
|
|
|
|
|
|
|
Multicast has been removed. Use unicast discovery, or one of the cloud
|
|
|
|
discovery plugins.
|
|
|
|
|
|
|
|
==== Plugins with custom query implementations
|
|
|
|
|
|
|
|
Plugins implementing custom queries need to implement the `fromXContent(QueryParseContext)` method in their
|
|
|
|
`QueryParser` subclass rather than `parse`. This method will take care of parsing the query from `XContent` format
|
|
|
|
into an intermediate query representation that can be streamed between the nodes in binary format, effectively the
|
|
|
|
query object used in the java api. Also, the query parser needs to implement the `getBuilderPrototype` method that
|
|
|
|
returns a prototype of the `NamedWriteable` query, which allows to deserialize an incoming query by calling
|
|
|
|
`readFrom(StreamInput)` against it, which will create a new object, see usages of `Writeable`. The `QueryParser`
|
|
|
|
also needs to declare the generic type of the query that it supports and it's able to parse.
|
|
|
|
The query object can then transform itself into a lucene query through the new `toQuery(QueryShardContext)` method,
|
|
|
|
which returns a lucene query to be executed on the data node.
|
|
|
|
|
|
|
|
Similarly, plugins implementing custom score functions need to implement the `fromXContent(QueryParseContext)`
|
|
|
|
method in their `ScoreFunctionParser` subclass rather than `parse`. This method will take care of parsing
|
|
|
|
the function from `XContent` format into an intermediate function representation that can be streamed between
|
|
|
|
the nodes in binary format, effectively the function object used in the java api. Also, the query parser needs
|
|
|
|
to implement the `getBuilderPrototype` method that returns a prototype of the `NamedWriteable` function, which
|
|
|
|
allows to deserialize an incoming function by calling `readFrom(StreamInput)` against it, which will create a
|
|
|
|
new object, see usages of `Writeable`. The `ScoreFunctionParser` also needs to declare the generic type of the
|
|
|
|
function that it supports and it's able to parse. The function object can then transform itself into a lucene
|
|
|
|
function through the new `toFunction(QueryShardContext)` method, which returns a lucene function to be executed
|
|
|
|
on the data node.
|
|
|
|
|
|
|
|
==== Cloud AWS plugin changes
|
|
|
|
|
|
|
|
Cloud AWS plugin has been split in two plugins:
|
|
|
|
|
|
|
|
* {plugins}/discovery-ec2.html[Discovery EC2 plugin]
|
|
|
|
* {plugins}/repository-s3.html[Repository S3 plugin]
|
|
|
|
|
|
|
|
Proxy settings for both plugins have been renamed:
|
|
|
|
|
|
|
|
* from `cloud.aws.proxy_host` to `cloud.aws.proxy.host`
|
|
|
|
* from `cloud.aws.ec2.proxy_host` to `cloud.aws.ec2.proxy.host`
|
|
|
|
* from `cloud.aws.s3.proxy_host` to `cloud.aws.s3.proxy.host`
|
|
|
|
* from `cloud.aws.proxy_port` to `cloud.aws.proxy.port`
|
|
|
|
* from `cloud.aws.ec2.proxy_port` to `cloud.aws.ec2.proxy.port`
|
|
|
|
* from `cloud.aws.s3.proxy_port` to `cloud.aws.s3.proxy.port`
|
|
|
|
|
|
|
|
==== Cloud Azure plugin changes
|
|
|
|
|
|
|
|
Cloud Azure plugin has been split in three plugins:
|
|
|
|
|
2016-06-30 08:39:23 -04:00
|
|
|
* {plugins}/discovery-azure-classic.html[Discovery Azure plugin]
|
2016-03-13 16:17:48 -04:00
|
|
|
* {plugins}/repository-azure.html[Repository Azure plugin]
|
|
|
|
* {plugins}/store-smb.html[Store SMB plugin]
|
|
|
|
|
|
|
|
If you were using the `cloud-azure` plugin for snapshot and restore, you had in `elasticsearch.yml`:
|
|
|
|
|
|
|
|
[source,yaml]
|
|
|
|
-----
|
|
|
|
cloud:
|
|
|
|
azure:
|
|
|
|
storage:
|
|
|
|
account: your_azure_storage_account
|
|
|
|
key: your_azure_storage_key
|
|
|
|
-----
|
|
|
|
|
|
|
|
You need to give a unique id to the storage details now as you can define multiple storage accounts:
|
|
|
|
|
|
|
|
[source,yaml]
|
|
|
|
-----
|
|
|
|
cloud:
|
|
|
|
azure:
|
|
|
|
storage:
|
|
|
|
my_account:
|
|
|
|
account: your_azure_storage_account
|
|
|
|
key: your_azure_storage_key
|
|
|
|
-----
|
|
|
|
|
|
|
|
|
|
|
|
==== Cloud GCE plugin changes
|
|
|
|
|
|
|
|
Cloud GCE plugin has been renamed to {plugins}/discovery-gce.html[Discovery GCE plugin].
|
|
|
|
|
2016-05-23 07:39:36 -04:00
|
|
|
==== Delete-By-Query plugin removed
|
|
|
|
|
|
|
|
The Delete-By-Query plugin has been removed in favor of a new <<docs-delete-by-query,Delete By Query API>>
|
|
|
|
implementation in core. It now supports throttling, retries and cancellation but no longer supports timeouts.
|
|
|
|
Instead use the <<docs-delete-by-query-cancel-task-api,cancel API>> to cancel deletes that run too long.
|
2016-03-13 16:17:48 -04:00
|
|
|
|
|
|
|
==== Mapper Attachments plugin deprecated
|
|
|
|
|
|
|
|
Mapper attachments has been deprecated. Users should use now the {plugins}/ingest-attachment.html[`ingest-attachment`]
|
|
|
|
plugin.
|
|
|
|
|
2016-05-09 13:06:18 -04:00
|
|
|
==== Passing of Java System Properties
|
|
|
|
|
|
|
|
Previously, Java system properties could be passed to the plugin
|
|
|
|
command by passing `-D` style arguments directly to the plugin script.
|
|
|
|
This is no longer permitted and such system properties must be passed
|
|
|
|
via ES_JAVA_OPTS.
|
2016-05-26 09:37:51 -04:00
|
|
|
|
|
|
|
==== Custom plugins path
|
|
|
|
|
|
|
|
The ability to specify a custom plugins path via `path.plugins` has
|
|
|
|
been removed.
|
2016-06-22 12:03:11 -04:00
|
|
|
|
|
|
|
==== ScriptPlugin
|
|
|
|
|
|
|
|
Plugins that register custom scripts should implement `ScriptPlugin` and remove
|
|
|
|
their `onModule(ScriptModule)` implementation.
|
2016-06-24 16:37:23 -04:00
|
|
|
|
|
|
|
==== AnalysisPlugin
|
|
|
|
|
|
|
|
Plugins that register custom analysis components should implement
|
|
|
|
`AnalysisPlugin` and remove their `onModule(AnalysisModule)` implementation.
|
2016-06-27 14:22:07 -04:00
|
|
|
|
|
|
|
==== MapperPlugin
|
|
|
|
|
|
|
|
Plugins that register custom mappers should implement
|
|
|
|
`MapperPlugin` and remove their `onModule(IndicesModule)` implementation.
|
|
|
|
|
2016-06-27 17:33:01 -04:00
|
|
|
==== ActionPlugin
|
2016-06-27 14:22:07 -04:00
|
|
|
|
2016-06-27 17:33:01 -04:00
|
|
|
Plugins that register custom actions should implement `ActionPlugin` and
|
|
|
|
remove their `onModule(ActionModule)` implementation.
|
2016-06-29 14:55:31 -04:00
|
|
|
|
|
|
|
Plugins that register custom `RestHandler`s should implement `ActionPlugin` and
|
|
|
|
remove their `onModule(NetworkModule)` implemnetation.
|