applied you patch. please attach this patch to jira granting licence to
Apache.

thanks,
Amila.

On Fri, Oct 3, 2008 at 7:06 PM, Dobri Kitipov
<[EMAIL PROTECTED]>wrote:

> Hi Amila,
> It seems that the fix into the trunk is ok. I did some tests and found out
> that the fix is not complete when you request xsd with "...?xsd".
> The problem was that if GENERATE_ABSOLUTE_LOCATION_URIS is set to true and
> you import an xsd that in turn imports another external xsd then the letter
> has relative path again.
>
> You can test this with the AAR attached to the mail. Rrequest 
> http://<YOUR_HOST>/axis2/services/MultiDimentionalArrayInteropTestService?xsd=xsd0.xsd
> and you will see the following:
>
> <xs:import namespace="http://jaxb.dev.java.net/array";
> schemaLocation="MultiDimentionalArrayInteropTestService?xsd=xsd1.xsd"/>
>
> instead of
>
> <xs:import namespace="http://jaxb.dev.java.net/array";
> schemaLocation="http://
> <YOUR_HOST>/axis2/services/MultiDimentionalArrayInteropTestService?xsd=xsd1.xsd"/>
>
> The problem was caused by the AxisService private void
> adjustSchemaLocation(...) method.
>
> I am applying a patch for this, but the patch removes and all not thrown
> AxisFault exceptions sience this caused me throubles. See the patch applied
> to the mail it is really simple.
>
> Thank you,
> Dobri
>
>
>
> On Thu, Oct 2, 2008 at 10:08 AM, Amila Suriarachchi <
> [EMAIL PROTECTED]> wrote:
>
>>
>>
>> On Wed, Oct 1, 2008 at 5:43 PM, Dobri Kitipov <
>> [EMAIL PROTECTED]> wrote:
>>
>>> Hi guys,
>>> we have a patch done for org.apache.axis2.description.AxisService related
>>> to the JIRA https://issues.apache.org/jira/browse/AXIS2-1790. With this
>>> patch Axis2 can be configured to set all location and schemaLocation paths
>>> to absolute URI paths if they are relative. As we know this URI may has
>>> relative or absolute path (
>>> http://www.w3.org/TR/2004/REC-xmlschema-1-20041028/structures.html#element-import),
>>> so the relative path is absolutely legal. Anyway, using absolute paths
>>> solves some interoperability issues. I realize that in fact there is no
>>> problem with Axis2 itself, but we can think of this patch as an enhancement.
>>> The question is if you think we can include this into the official Axis2?
>>>
>>
>> Did you have a time to have a look at with the trunk. I have fixed this
>> already.  you have to set the parameter
>> generateAbsoluteLocationURIs to make this work.
>>
>> Please have a look at this method.
>>
>> private String getServiceEPR() throws AxisFault {
>>         String serviceEPR = null;
>>         Parameter parameter =
>> this.getParameter(Constants.Configuration.GENERATE_ABSOLUTE_LOCATION_URIS);
>>         if ((parameter != null) &&
>> JavaUtils.isTrueExplicitly(parameter.getValue())) {
>>             String[] eprs = this.getEPRs();
>>             for (int i = 0; i < eprs.length; i++) {
>>                 if ((eprs[i] != null) && (eprs[i].startsWith("http:"))){
>>                     serviceEPR = eprs[i];
>>                     break;
>>                 }
>>             }
>>             if (serviceEPR == null){
>>                 serviceEPR = eprs[0];
>>             }
>>         } else {
>>             serviceEPR = this.name;
>>         }
>>         if (serviceEPR.endsWith("/")){
>>             serviceEPR = serviceEPR.substring(0,
>> serviceEPR.lastIndexOf("/"));
>>         }
>>         return serviceEPR;
>>     }
>>
>>
>>
>>>
>>> Additionally, I want to mention two things related to the code of
>>> org.apache.axis2.description.AxisService:
>>>
>>> 1) The first one is the vague role of the "wsdlImportLocationAdjusted"
>>> field. IMHO the use of this parameter is error-prone. If you have a look at
>>> the printDefinitionObject() method you can see that this field is set to
>>> "true" when WSDL is requested for the very first time. Before that
>>> changeImportAndIncludeLocations(definition) method is invoked. The problem
>>> here is that at every successive invocation this method is no more called
>>> and as a result WSDL returned may differ. Can you give some more information
>>> why this field is needed, since if  it is no needed then it is better to be
>>> removed?
>>>
>>
>> I think I removed those unwanted usages and now it only uses here.
>>
>> if (!wsdlImportLocationAdjusted) {
>>             changeImportAndIncludeLocations(definition);
>>             wsdlImportLocationAdjusted = true;
>>         }
>>
>> this keeps whether we have already change the import and include
>> locations.
>>
>>>
>>>
>>> 2) The second thing is with the method: public String[] getEPRs() throws
>>> AxisFault. It throws AxisFault which exception is a checked one that is
>>> never thrown. So the user is forced to catch this exception when he wants to
>>> use this public class.
>>>
>>
>> yes. I agree with you that  this exception is not  needed. But I wonder
>> whether we are in a possision to change
>> those APIs now.
>>
>> thanks,
>> Amila.
>>
>>>
>>>
>>>
>>> I am expecting your comments.
>>>
>>> Thank you in advance,
>>> Dobri
>>>
>>
>>
>>
>> --
>> Amila Suriarachchi
>> WSO2 Inc.
>> blog: http://amilachinthaka.blogspot.com/
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>



-- 
Amila Suriarachchi
WSO2 Inc.
blog: http://amilachinthaka.blogspot.com/

Reply via email to