You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avalon.apache.org by Stephen McConnell <mc...@apache.org> on 2004/02/06 18:14:40 UTC
[http] updates
Timothy:
Just a note to let you know that I've made some changes to the http
stuff. I've defined a new interface org.apache.avalon.http.Handler (in
the http/api package) and this basically declares the servlet style
service operation. I've updated the holder class to include a Servlet
adapter class which simply redirects HTTP service requests to the
component.
Next step is to resolve path to component mapping (currently hardwired
to the component partition name). I'll be looking at this point point
later this weekend - current thoughts are that we should:
(a) update the model listener to look for context components
(b) get the context component to locate handler components
(c) have path to component mapping declared under the context
component configuration
The current model listener should be revamped as a configurable http
context instance that handles the location of the component to handle an
incoming request. Anyway, I've just uploaded the a binary snapshot of
3.3 to http://dpml.net/merlin/distributions/3.3/snapshots/20040206/ if
you want to play with it this weekend.
To run the http test all you need to do is:
merlin block:avalon-http/test
Then look at the content via http://localhost:8080/test/primary
Cheers, Steve.
--
|------------------------------------------------|
| Magic by Merlin |
| Production by Avalon |
| |
| http://avalon.apache.org/merlin |
| http://dpml.net/merlin/distributions/latest |
|------------------------------------------------|
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org
Re: [http] updates
Posted by Timothy Bennett <ex...@comcast.net>.
Timothy Bennett wrote:
>
> Next step for facilities in my mind are things like JMS servers, FTP
> servers, and SMTP servers. All of these are high on my priority list,
> as I'm going to need all of these facilities to address requirements of
> current and future applications built on Avalon technology.
In fact, let me further state that in the same way the merlin assembler
distinguishes *servlet* components as specialized component, I would
further propose that this same facility be extended to recognize the
work that Aaron Farr has done in regard to Message Driven Services.
IOW, a *special* component recognized in the merlin facilities that
denotes that this component will *handle* a receipt of a JMS message via
queue or subscription in the same way (conceptually) that the servlet
component *handles* the receipt of an HTTP message.
Bottom-line is that we have these *transport* level facilities that need
to be supported, but equally we need a framework for easily attaching
handlers (components) to do something with the messages that arrive over
the various transports.
I also forgot to add web services to the facility list above.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org
Re: [http] updates
Posted by Timothy Bennett <ex...@comcast.net>.
Stephen McConnell wrote:
>
> Timothy:
>
> Just a note to let you know that I've made some changes to the http
> stuff. I've defined a new interface org.apache.avalon.http.Handler (in
> the http/api package) and this basically declares the servlet style
> service operation. I've updated the holder class to include a Servlet
> adapter class which simply redirects HTTP service requests to the
> component.
>
This is great news, Steve. I did mess around with the http updates you
did last weekend and earlier this week. Truly great stuff. It's on its
way to be something really exciting. Servlet-as-Avalon-component
promises to be really nice step in streamlining and stabilizing almost
all of the real server applications I use Avalon technology for.
> Next step is to resolve path to component mapping (currently hardwired
> to the component partition name). I'll be looking at this point point
> later this weekend - current thoughts are that we should:
>
> (a) update the model listener to look for context components
> (b) get the context component to locate handler components
> (c) have path to component mapping declared under the context
> component configuration
>
> The current model listener should be revamped as a configurable http
> context instance that handles the location of the component to handle an
> incoming request.
This is similar to a *responder management* block that I built for use
with the old Jetty-Phoenix block (re-factored and re-branded as
avalon-http in the merlin source). This is an important step in tying
the web server to the routing of inbound HTTP requests to a servlet
component for handling.
Some more things that I want to add on the plate to enhance the Jetty
web server facility are:
(1) Support for deployment of web applications
(2) Support for the loading of custom user-specific Jetty listeners
(such as the HTTPS listener I've built on top of a commercial SSL toolkit)
(3) Support for the dynamic starting/stopping of Jetty listeners (i.e.
so that I can make my web server stop responding to HTTP requests
without shutting down merlin)
(2) Exposure of more of Jetty's web server configuration, including but
not limited to:
(a) security realms and basic authentication
(b) Jetty's server monitoring instrumentation and reporting hooks
(c) various configurable params like socket/response timeout, etc.
This is just for starters :)
> Anyway, I've just uploaded the a binary snapshot of
> 3.3 to http://dpml.net/merlin/distributions/3.3/snapshots/20040206/ if
> you want to play with it this weekend.
>
> To run the http test all you need to do is:
>
> merlin block:avalon-http/test
>
> Then look at the content via http://localhost:8080/test/primary
>
Good work so far, I look forward to peeking at these changes, and
helping make the above action items a reality.
One further note about the notion of merlin kernel-side facilities, of
which this web server is an example of. I don't know if this particular
idea of mine makes sense to the larger merlin community, but I think
merlin facilities are a legitimate place to allow kernel plug-ins for
other server-esque functionality.
I've recently ported Paul Hammett's old Phoenix HSQL server component to
not only run under merlin AND use the latest HSQL 1.7.x version, but
I've built database connection pooling into the component itself, and
exported a getConnection() service out of the block. To me, this
represents the power of composite component blocks. Now, I've got some
clean-up to do on this code before I release it to the general world for
consumption, but the point is that IMO this is another candidate for a
facility in merlin. How often does one find themselves needing an
embedded database for their merlin-hosted applications? For me, almost
always (same with web server).
Next step for facilities in my mind are things like JMS servers, FTP
servers, and SMTP servers. All of these are high on my priority list,
as I'm going to need all of these facilities to address requirements of
current and future applications built on Avalon technology.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org