Hi all,

If other people feel like Gordon, we should consider spinning of the URI class
into a separate jakarta-commons subproject that exclusively deals with URIs.
Or into a "Jakarta Network Component", depending on how things discussed on
the Jakarta general mailing list evolve.

cheers,
  Roland


Gordon Mohr (JIRA) wrote:
>     [ 
> http://issues.apache.org/jira/browse/HTTPCLIENT-587?page=comments#action_12416592
>  ] 
> 
> Gordon Mohr commented on HTTPCLIENT-587:
> ----------------------------------------
> 
> 
>>What's wrong with the JDK URI class?
> 
> 
> (a) It still has bugs where it fails to implement the spec at well as 
> httpclient.URI. One recent example, still a problem in current JDK 1.6 betas:
> 
> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4708535
> 
> java.net.URI base = new java.net.URI("http://www.example.com/some/page";);
> java.net.URI rel = new java.net.URI("");
> java.net.URI derel = base.resolve(rel);
> derel.toString();
> (java.lang.String) http://www.example.com/some/   // INCORRECT
> 
> org.apache.commons.httpclient.URI base = new 
> org.apache.commons.httpclient.URI("http://www.example.com/some/page";);
> org.apache.commons.httpclient.URI rel = new 
> org.apache.commons.httpclient.URI("");
> org.apache.commons.httpclient.URI derel = new 
> org.apache.commons.httpclient.URI(base,rel);
> derel.toString();
> (java.lang.String) http://www.example.com/some/page  // CORRECT
> 
> (b) java.net.URI and its maintainers reject the idea that there should be any 
> facility in the URI class for tolerating the same sorts of formal spec 
> deviations often seen in real URIs and domain names. 
> 
> As one example, domain names with '_' are technically illegal but have often 
> been tolerated by DNS-related software and we have run across functioning 
> websites at subdomains with '_' in their name. Browsers browse these sites 
> fine, so we want to be able to crawl them. java.net.URI can't help us.
> 
> Now of course, it's legitimate and useful to provide a class which regirously 
> implements all written standards. Not everyone wants a class that also 
> tolerates de facto practices. But that leads us to the ultimate problem with 
> java.net.URI:
> 
> (c) java.net.URI licensing and language declarations make it resistant to 
> reuse and adaptation to other legitimate uses
> 
> It's not open source and major portions of its implementation are 'private' 
> or 'final'. So it's impossible to reuse 99% of it (such as its various RFC 
> syntax character-class definitions, fields, and working parsing code) while 
> also either  patching the bugs like in (a) above or overriding the strictness 
> which makes it unsuitable for some purposes like in (b) above. 
> 
> In comparison, the org.apache.commons.httpclient.URI class is friendly to 
> subclassing (which we've used to work around bugs and change the behavior to 
> better fit our problem domain) and if that didn't work ith respect to a bug, 
> we'd at least have the option of patching it ourselves and redistributing the 
> fix. 
> 
> So our project would very much miss the pretty-good (and at least serviceable 
> when broken) httpclient.URI class if it were dropped in favor of the JDK 
> java.net.URI class. 


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to