cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Reinhard Poetz <reinh...@apache.org>
Subject Re: [jira] Created: (COCOON-2154) Servlet:/ protocol: Support absolute URIs
Date Thu, 27 Dec 2007 20:02:45 GMT
Grzegorz Kossakowski wrote:
> Reinhard Poetz pisze:
>>> Hi Reinhard, isn't it a duplicate of 
>>> https://issues.apache.org/jira/browse/COCOON-2044 ?
>> Not really. If I read that issue correctly, it talks about making cache 
>> keys unique. I refer to absolute servlet:/ URIs, e.g.
>> 
>> servlet:com.mycompany.project.servlet.service+:/test/foo/bar
> 
> In the discussion of COCOON-2044 it is mentioned that non-uniqueness of cache
> keys is caused by bad implementation of servlet service because it returns
> relative URIs instead of absolute ones when getURI() method is called. So in
> order to fix COCOON-2044 you just need essentially to implement support of
> absolute URI for servlet: protocol. That's why I see it as duplicate.

I've rewritten the ServletConnection and it always expects now globally absolute 
URIs. If a service-relative URI is being resolved, the ServletSource can 
translate it into an absolute one.

This should fix the cache key generation problem too.

>> Btw, after reading the URI spec and making some experiments with the URI 
>> class of Java, I figured out that the originally proposed "!" at the 
>> beginning of the sub schema is not allowed, however, appending a "+" is. 
>> This is required in order to distinguish between relative and absolute 
>> servlet:/ URIs.
> 
> Plus sign doesn't look naturally for me. Are there any other options?

Citing RFC 2396:

    Scheme names consist of a sequence of characters beginning with a
    lower case letter and followed by any combination of lower case
    letters, digits, plus ("+"), period ("."), or hyphen ("-").  For
    resiliency, programs interpreting URI should treat upper case letters
    as equivalent to lower case in scheme names (e.g., allow "HTTP" as
    well as "http").

       scheme        = alpha *( alpha | digit | "+" | "-" | "." )


But since I strongly discourage from using absolute URIs directly, I don't
consider it being a big issue.

-- 
Reinhard Pötz                            Managing Director, {Indoqa} GmbH
                           http://www.indoqa.com/en/people/reinhard.poetz/

Member of the Apache Software Foundation
Apache Cocoon Committer, PMC member, PMC Chair        reinhard@apache.org
_________________________________________________________________________


Mime
View raw message