On Wed, 13 Jun 2001, Salim Virani wrote:
> Well ... this is an internet draft at IETF
>
> Here is the URL
> http://search.ietf.org/internet-drafts/draft-elson-opes-icap-01.txt
>
> And yes, thanks for the help. Though I have implemented my own version of
> the ICAP server and servlet API, I think I would give a goog shot to
> extending Catalina.
>
> I had earlier subscribed to tomcat-dev but did not receive any response.
> Thinking that my question was probably out of context, I started
> implementing ICAP protocol myself with little help from Tomcat source code.
>
> Thanks once again.
>
> If it is possible, could you send me pointers to Tomcat/Catalina
> architecture ????
>
In the "catalina/docs/dev" directory there are some basic UML diagrams of
the most important class relationships -- I'm wanting to get those updated
as well as more complete. In addition, my JavaOne session
(#1287) included about 15 minutes overviewing the key architectural
components of Catalina. It's supposed to be available (full multimedia
format, so you can here what I said as well as see the slides) next week.
Beyond that, there's the source code (and this list) for help.
> --Salim
>
Craig
> -----Original Message-----
> From: Craig R. McClanahan [mailto:[EMAIL PROTECTED]]
> Sent: Wednesday, June 13, 2001 2:21 PM
> To: [EMAIL PROTECTED]
> Cc: Salim Virani
> Subject: Re: ICAP servlet classes (was: Tomcat Architecture)
>
>
>
>
> On Wed, 13 Jun 2001, Fabian Loschek wrote:
>
> > Hello,
> >
> > > I would like Tomcat to serve requests for a new Internet Draft Protocol
> > > named ICAP. The intension is to develop HTTP like ICAP servlet base
> classes
> > > to allow writing ICAP applications.
> > >
>
> Is there an RFC number or other URL reference for this?
>
> > > Can someone give me pointers/references of where can I start ??
> >
> > I'm looking for something similar for writing an ICAP Servlet for my
> > master thesis, have you gotten hold of any references or code snipplets?
> >
> > Thanks in advance,
> > Fabian.
> >
>
> Not being familiar with ICAP, I'm assuming that it's "similar to but
> different than" HTTP, so that you can't just use a normal HttpServlet to
> talk to it. If this isn't correct, just ignore the following ramblings
> :-). The general way to extend Catalina (the servlet container inside
> Tomcat 4.0) for this would include the following steps:
>
> * Create new IcapRequest and IcapResponse classes that extend
> org.apache.catalina.connector.RequestBase and
> org.apache.catalina.connector.ResponseBase respectively.
>
> * Create an IcapServlet that extends Servlet (or HttpServlet)
> based on your needs.
>
> * Write a new Connector implementation that implements the ICAP
> communications protocol as necessary. The basic idea is that
> you would instantiate an IcapRequest and an IcapResponse, populate
> the request appropriately, and then pass it on to the
> associated Engine in the same way that the HTTP connector does.
>
> * At the Engine level, you may need to implement a custom Mapper
> that would be used to select which Host object to use. You can
> have multiple Mappers per Container (one per protocol), so you
> can still be processing HTTP requests through the same Engine.
>
> * Likewise, at the Host level, you may need a custom Mapper to select
> the appropriate web application (if you want to support this
> concept).
>
> * Finally, at the Context level, you may need a custom Mapper to
> select the appropriate servlet to be executed.
>
> Depending upon how similar ICAP and HTTP are, you might be able to
> leverage a lot of the existing machinery (most of the internal APIs, for
> example, pass Request and Response rather than HttpRequest and
> HttpResponse). But the exact level of code reuse is really dependent on
> the nature of the protocol you're trying to support.
>
> Craig McClanahan
>
>
>
>
>