IRequestCodingStrategy abstraction leaks;  reduce dependencies on 
WebRequestCodingStrategy
------------------------------------------------------------------------------------------

                 Key: WICKET-1924
                 URL: https://issues.apache.org/jira/browse/WICKET-1924
             Project: Wicket
          Issue Type: Improvement
          Components: wicket
    Affects Versions: 1.3.4
         Environment: OS X 10.5, Java 1.5
            Reporter: Willis Blackburn


I've been working on figuring out how to mount my CMS pages under a path, so 
that request to (say) /cms/path/to/some/file returns a representation of the 
CMS resource at /path/to/some/file.  In the process I've been reading/learning 
about how IRequestCodingStrategy and IRequestTargetUrlEncodingStrategy work.

While the IRequestCodingStrategy and IRequestTargetUrlEncodingStrategy 
apparently define the contract between the request cycle processor and the 
object responsible for decoding and encoding URLs, there are several places in 
which the code seems to assume that the IRequestCodingStrategy implementation 
is WebRequestCodingStrategy.  It would be nice if the WebRequestCodingStrategy 
was more encapsulated.

For example:

1.  WicketFilter assumes that any URL that starts with 
WebRequestCodingStrategy.RESOURCES_PATH_PREFIX is a Wicket URL.

2.  WicketFilter also implements special handling for the last-modified header 
if the URL starts with WebRequestCodingStrategy.RESOURCES_PATH_PREFIX.

3.  AbstractRequestTargetUrlCodingStrategy throws an exception if a caller 
tries to mount to /resources (in other words, 
WebRequestCodingStrategy.RESOURCES_PATH_PREFIX, although it actually uses a 
string literal).

4.  Although CryptedUrlWebRequestCodingStrategy delegates to any 
IRequestCodingStrategy implementation, the rebuildUrl and shortenUrl methods 
are optimzied for WebRequestCodingStrategy.  (Maybe there could be a interface 
that provides hints to CryptedUrlWebRequestCodingStrategy on how to 
shorten/expand the URL instead.)

5.  RequestParameters invokes a static method in WebRequestCodingStrategy.

6.  All (?) of the IRequestTargetUrlCodingStrategy implementations make use of 
static members in WebRequestCodingStrategy and seem to be aware of how 
WebRequestCodingStrategy constructs URLs.



-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to