On Sat, 2006-06-17 at 19:21 +0200, Roland Weber wrote:
> 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.
> 

This has been tried before. The original author of URI code attempted to
have it spun off into a project of its own (commons-uri) shortly before
leaving HttpClient project for good [1]. Somehow the idea failed to
generate a lot of support. 

If people are interested in keeping URI code evolving and being a part
of HttpClient 4.0 new contributors must come forth and help us rewrite
and later maintain the code.

Oleg

[1]http://www.mail-archive.com/[email protected]/msg21478.html


> 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]
> 
> 


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

Reply via email to