Handle bean inheritance
-----------------------

         Key: XFIRE-355
         URL: http://jira.codehaus.org/browse/XFIRE-355
     Project: XFire
        Type: Improvement

  Components: Aegis Module  
    Versions: 1.1-beta-1    
    Reporter: Xavier Fournet
 Assigned to: Dan Diephouse 


Currently there is no way to use parameter or return bean value that are 
inherited from the type present in the interface.

Example:

* class {{A}} with javabean properties {{name}} and {{val}}
* class {{B extends A}}, with additionnal javabean property {{data}}
* WS method {{public A[] list();}} that returns in fact both {{A}} and {{B}} 
elements

In this case the reponse must be like that :
{code:xml}
<?xml version="
1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance";
xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
 <soap:Body>
   <listResponse xmlns="http://tempuri.org/";>
     <listResult>
       <A xsi:type="B">
         <name>2</name>
         <val>2</val>
         <data>data_2</data>
       </A>
       <A>
         <name>1</name>
         <val>1</val>
       </A>
     </listResult>
   </listResponse>
 </soap:Body>
</soap:Envelope>
{code}

Currently the {{B}} elements are handled as {{A}} elements and nor real type or 
extended properties are present in the response.

Obvioulsy this will require additional type registration after the service has 
been created from the interface in order to be able to generate a complete WSDL.


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to