lucene-solr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Chris Hostetter <hossman_luc...@fucit.org>
Subject Re: Update Plugins (was Re: Handling disparate data sources in Solr)
Date Sat, 20 Jan 2007 06:53:32 GMT

: > This would give people a relativly easy way to implement 'restful'
: > URLs if they need to.  (but they would have to edit web.xml)
:
: A handler could alternately get the rest of the path (absent params), right?

only if the RequestParser adds it to the SolrRequest as a SolrParam.

: > Unit tests should be handled by execute( handler, req, res )
:
: How does the unit test get the handler?

i think ryans point is that when testing a handler, you should know which
handler you are testing, so construct it and execute it directly.

: > I am proposing we have a single interface to do this:
: >   SolrRequest r = RequestParser.parse( HttpServletRequest  )
:
: That's currently what new SolrServletRequest(HttpServletRequest) does.
: We just need to figure out how to get InputStreams, Readers, etc.

we start by adding "Iterable<ContentStream> getStreams()" to the
SolrRequest interface, with a setter on all of the Impls that's not part
of the interface.  then i suspect what we'll see is two classes that look
like this..

  public class NoStreamRequestParser implements RequestParser {
    public SolrRequest parse(HttpServletRequest req) {
     return new SolrServletRequest(HttpServletRequest);
    }
  }
  public class RawPostStreamRequestParser extends NoStreamRequestParser {
    public SolrRequest parse(HttpServletRequest req) {
     ContentStream c = makeContentStream(req.getInputStream())
     SolrServletRequest s = super.parse(req);
     s.setStreams(new SinglItemCollection(c))
     return s;
    }
  }

: So, the hander needs to be able to get an InputStream, and HTTP headers.
: Other plugins (CSV) will ask for a Reader and expect the details to be
: ironed out for it.
:
: Method1: come up with ways to expose all this info through an
: interface... a "headers" object could be added to the SolrRequest
: context (see getContext())

this is why Ryan and i have been talking in terms of a "ContentStream"
interface instead of just "InputStream" .. at some point we talked about
the ContentStream having getters for mime type, and charset that might be
null if unknown.


-Hoss


Mime
View raw message