cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Reinhard Poetz <>
Subject Re: JNet integration
Date Tue, 15 Apr 2008 08:56:41 GMT
Reinhard Poetz wrote:
> At the ApacheCon Carsten, Grek and I had the chance to talk about the JNet
> integration and to find a solution that (hopefully) works.
> * First we all believe that it is not a good idea to consider the 
> blockcontext:/
>   URLs as expressions that are resolved to file: URLs. We want to make them
>   real URLs.
> * Taking care of URL handling is NOT the responsiblity the Servlet-Service
>   framework.
> * The installation of blocks (= extracting to the working directory of 
> the web
>   application) is NOT the responsibility of the Spring configurator.
> * The installation of blocks shouldn't be done by using Spring so that 
> the list
>   of all installed blocks is generally available.
> So what do we propose?
> ----------------------
> * Get rid of the SourceResolver usage in the SSF implementation code.
> * Do the installation of blocks in a ServletContextListener. The map of all
>   installed blocks can be stored as a servlet context attribute then and
>   being looked up from there easily.
> * Provide a Spring aspect that intercepts all service() method calls using
>   an around advice and installs a URLStreamHandlerFactory (-> that's the 
> piece
>   of code responsible for returning the correct StreamHandler for a 
> particular
>   protocol). The list of available StreamHanlders can be gathered by using
>   a BeanMap that collects all beans of a particular type.
>   Doing it this way ensures that the installation and uninstallation of
>   URLStreamHandlerFactories is done per thread and we are on the safe side
>   when there is more than one web application running the same JVM.
> As a first step we want to make these changes happen without creating any
> additional modules. 

It's done so far and working AFAICT.

> But when things become more stable 
> (implementation-wise) we
> will propose to create a separate module for the "BlockInstaller" and 
> find the final home for "JNet".

As a next step I will create separate modules for them. Then we can discuss the 
scope of each in more detail and find the final home of JNet.

Reinhard Pötz                            Managing Director, {Indoqa} GmbH

Member of the Apache Software Foundation
Apache Cocoon Committer, PMC member, PMC Chair

View raw message