Description
I propose changing the WSDLReader API so that the readWSDL methods that take a wsdl location uri argument use java.net.URI instead of String.
So the WSDLReader methods:
readWSDL(String wsdlURI)
readWSDL(String wsdlURI, ErrorHandler errorHandler)
become
readWSDL(URI wsdlURI)
readWSDL(URI wsdlURI, ErrorHandler errorHandler)
One of our design goals for the Woden API was to consistently use java.net.URI instead of java.lang.String to represent URIs, so as to achieve a measure of type safety at the API boundary. Elsewhere the Woden API uses java.net.URI - the two readWSDL methods that take a String as the wsdl uri are the only exceptions and these are a left over from my early prototyping that was based on WSDL4J. Changing these two methods to take a java.net.URI argument will make the Woden API consistent in this regard and will make it more robust by ensuring the WSDL uri passed to the reader is correctly formatted as a URI (because the Woden client must instantiate the java.net.URI object).
As discussed previously, we are delivering Milestone releases to get code out quickly to early adopters, but we have not yet declared the Woden API 'stable'. This will happen with a 1.0 release. However, to minimize disruption to existing Woden users, these two readWSDL methods could be changed via a deprecation strategy for M7 - that is, add the new method signatures to WSDLReader and deprecate the existing ones, then remove those deprecated methods for the release that follows M7.