You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cxf.apache.org by Jim Ma <ma...@gmail.com> on 2010/08/01 10:59:01 UTC

Re: Need for normalization? (Re: svn commit: r980880 - in /cxf/trunk/tools/common/src)

When we input the following arguments to wsdl2java :

wsdl2java -b /home/jimma/code/jaxws/ee/w2j/document/literal/headertest/customfile.xml"
 file:/home/jimma/code/tmp/all/../../tests/jaxws/ee/w2j/document/literal/headertest/HeaderTestService.wsdl"

and customfile.xml contains :

<?xml version="1.0" encoding="UTF-8"?>
<bindings wsdlLocation="HeaderTestService.wsdl"
xmlns="http://java.sun.com/xml/ns/jaxws">
<bindings node="wsdl:definitions" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<package name="org.apache.cxf.package"/>
</bindings>
</bindings>

The CutomizationParser in tools module will parse the cutomfile.xml's
target wsdl's location to
file:/home/jimma/code/tests/jaxws/ee/w2j/document/literal/headertest/HeaderTestService.wsdl.
And it does not compute the input wsdl location
"file:/home/jimma/code/tmp/all/../../tests/jaxws/ee/w2j/document/literal/headertest/HeaderTestService.wsdl"
is the same file as target wsdl location from customfile.xml .  So It
fails to do the customization.

The line I add " URI.normalize()" is  just removing the ".." and "."
segments and isn't doing other complicate work .  It should be
platform independent.

 On Sat, Jul 31, 2010 at 9:50 AM, Glen Mazza <gl...@gmail.com> wrote:
> May I ask why this normalization is helpful (instead of just using the
> intended file path to being with)?
> Does this affect just internal CXF use or external usage by users of CXF?
>  If the latter, the potential problem I see is that not all URI's are file
> paths and, even if they were, I'm not sure that you can safely normalize in
> a platform-independent manner.
>
> Glen
>
> ema@apache.org wrote:
>>
>> Author: ema
>> Date: Fri Jul 30 16:07:40 2010
>> New Revision: 980880
>>
>> URL: http://svn.apache.org/viewvc?rev=980880&view=rev
>> Log:
>> [CXF-2918]:normalize the url like file:/home/cxf/org/apache/../../cxf in
>> URIParserUtil.getAbsoluteURL()
>>
>> Modified:
>>
>>  cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/util/URIParserUtil.java
>>
>>  cxf/trunk/tools/common/src/test/java/org/apache/cxf/tools/util/URIParserUtilTest.java
>>
>> Modified:
>> cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/util/URIParserUtil.java
>> URL:
>> http://svn.apache.org/viewvc/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/util/URIParserUtil.java?rev=980880&r1=980879&r2=980880&view=diff
>>
>> ==============================================================================
>> ---
>> cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/util/URIParserUtil.java
>> (original)
>> +++
>> cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/util/URIParserUtil.java
>> Fri Jul 30 16:07:40 2010
>> @@ -248,18 +248,15 @@ public final class URIParserUtil {
>>     }
>>     public static String normalize(final String uri) {
>>         URL url = null;
>> +        String result = null;
>>         try {
>>             url = new URL(uri);
>> -            return escapeChars(url.toString().replace("\\", "/"));
>> +            result =
>> escapeChars(url.toURI().normalize().toString().replace("\\", "/"));
>>
>
>
>