lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jan Høydahl (JIRA) <j...@apache.org>
Subject [jira] [Comment Edited] (SOLR-5103) Plugin Improvements
Date Wed, 19 Aug 2015 10:49:45 GMT

    [ https://issues.apache.org/jira/browse/SOLR-5103?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14702771#comment-14702771
] 

Jan Høydahl edited comment on SOLR-5103 at 8/19/15 10:49 AM:
-------------------------------------------------------------

After we got SOLR-7073, we can now add a single {{.jar}} to a collection by uploading it to
{{.system}} collection. Could we perhaps piggyback on this mechanism for full-blown plugins
as well?

I.e. we similarly upload a plugin, e.g. {{my-cool-responsewriter-plugin.zip}} to {{.system}}.
Solr will then automatically inspect the zip, add jars to classpath and register the new responsewriter
under its default name.

On node start, we would iterate over all registered plugins in {{.system}} and register them.
Perhaps a super generic way to support auto wiring is to allow scripts in the zip root, like
{{config-api-commands.json}} and {{schema-api-commands.json}}, which will be replayed on load.
Then a FieldType plugin can e.g. register itself with a {{fieldType}} and {{dynamicField}}
in schema.

The whole idea of such a zip format would be to encourage creation of 3rd party plugins that
can be installed from AdminUI or {{bin/solr installplugin my-plugin.zip}}, and perhaps also
more modularization of the Solr distro, i.e. our contribs would become plugins and not litter
solrconfig.xml with config that is only active if a system property is enabled.

How cool would it be if you could add e.g. SolrCell to a plain Solr download by typing {{bin/solr
installplugin solrcell}}, and it would look for http://www.us.apache.org/dist/lucene/solr/_version_/plugins/solrcell.zip.
Could also support github sources, i.e. {{bin/solr installplugin githubuser/plugin-name}}
where {{plugin-name}} is a repo with some simple layout rules.

To aid in user friendliness, {{solrconfig.xml}} could even have a new tag to to register expected
dependencies:
{code:xml}
<dependencies>
   <plugin name="solrcell" version="5.2.1" />
   <plugin name="cominvent/cool-responsewriter" version=">=5.0.0" />
</dependencies>
{code}
...and spit out clear instructions in the logs on how to install those.


was (Author: janhoy):
After we got SOLR-7073, we can now add a single {{.jar}} to a collection by uploading it to
{{.system}} collection. Could we perhaps piggyback on this mechanism for full-blown plugins
as well?

I.e. we similarly upload a plugin, e.g. {{my-cool-responsewriter-plugin.zip}} to {{.system}}.
Solr will then automatically inspect the zip, add jars to classpath and register the new responsewriter
under its default name.

On node start, we would iterate over all registered plugins in {{.system}} and register them.
Perhaps a super generic way to support auto wiring is to allow scripts in the zip root, like
{{config-api-commands.json}} and {{schema-api-commands.json}}, which will be replayed on load.
Then a FieldType plugin can e.g. register itself with a {{fieldType}} and {{dynamicField}}
in schema.

The whole idea of such a zip format would be to encourage creation of 3rd party plugins that
can be installed from AdminUI or {{bin/solr installplugin my-plugin.zip}}, and perhaps also
more modularization of the Solr distro, i.e. our contribs would become plugins and not litter
solrconfig.xml with config that is only active if a system property is enabled.

> Plugin Improvements
> -------------------
>
>                 Key: SOLR-5103
>                 URL: https://issues.apache.org/jira/browse/SOLR-5103
>             Project: Solr
>          Issue Type: Improvement
>            Reporter: Grant Ingersoll
>            Assignee: Grant Ingersoll
>             Fix For: Trunk
>
>
> I think for 5.0, we should make it easier to add plugins by defining a plugin package,
ala a Hadoop Job jar, which is a self--contained archive of a plugin that can be easily installed
(even from the UI!) and configured programmatically.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org


Mime
View raw message