lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Grant Ingersoll (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (SOLR-5091) Clean up Servlets APIs, Kill SolrDispatchFilter, simplify API creation
Date Fri, 02 Aug 2013 19:43:48 GMT

     [ 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


Mime
View raw message