You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Grant Ingersoll (JIRA)" <ji...@apache.org> on 2013/08/02 21:43:48 UTC

[jira] [Updated] (SOLR-5091) Clean up Servlets APIs, Kill SolrDispatchFilter, simplify API creation

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

Grant Ingersoll updated SOLR-5091:
----------------------------------

    Attachment: SOLR-5091.patch

This is _really_ early.  None of the tests pass, etc. but it does show the Guice integration and it shows what's involved in adding a new API (see PingAPI).

Moreover, I think it also will make it easier to embed Solr in whatever container we want going forward (since the top level things like CoreContainer are injected)

Once you apply the patch and build example and start it up, you should be able to see something like:
{code}
curl http://localhost:8983/solr/rest/ping
{"ping":"alive"}
{code}

Other notes, the endpoints, etc. are all just preliminary.

Also, see the top level package.html for some of my thoughts on restructuring the APIs for REST.

This will be a significant undertaking.  If others are interested in this overhaul, I'd suggest we start a branch against trunk.
                
> Clean up Servlets APIs, Kill SolrDispatchFilter, simplify API creation
> ----------------------------------------------------------------------
>
>                 Key: SOLR-5091
>                 URL: https://issues.apache.org/jira/browse/SOLR-5091
>             Project: Solr
>          Issue Type: Improvement
>            Reporter: Grant Ingersoll
>            Assignee: Grant Ingersoll
>             Fix For: 5.0
>
>         Attachments: SOLR-5091.patch
>
>
> This is an issue to track a series of sub issues related to deprecated and crufty Servlet/REST API code.  I'll create sub-tasks to manage them.
> # Clean up all the old UI stuff (old redirects)
> # Kill/Simplify SolrDispatchFilter -- for instance, why not make the user always have a core name in 5.0?  i.e. /collection1 is the default core
> ## I'd like to move to just using Guice's servlet extension to do this, which, I think will also make it easier to run Solr in other containers (i.e. non-servlet environments) due to the fact that you don't have to tie the request handling logic specifically to a Servlet.
> # Simplify the creation and testing of REST and other APIs via Guice + Restlet, which I've done on a number of occasions.
> ## It might be also possible to move all of the APIs onto Restlet and maintain back compat through a simple restlet proxy (still exploring this).  This would also have the benefit of abstracting the core request processing out of the Servlet context and make that an implementation detail.
> ## Moving to Guice, IMO, will make it easier to isolate and test individual components by being able to inject mocks easier.
> I am close to a working patch for some of this.  I will post incremental updates/issues as I move forward on this, but I think we should take 5.x as an opportunity to be more agnostic of container and I believe the approach I have in mind will do so.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

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