You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ode.apache.org by Tammo van Lessen <tv...@gmail.com> on 2007/07/31 18:18:45 UTC

ODE-150

Hi again,

I was working on ODE-150 (problem with transition condition xpaths)
and have fixed it in my last commit.

Thanks to our regression tests, my fix (of course) broke some tests. I
might be wrong but I think that these test cases were incorrect as
they were assuming to have a wrapper element messages for parts
defined by type="".

The (hopefully) corrected test cases are in commit 561372.

Could you please have a look at it, I don't want to break other stuff.
Thanks in advance.

Cheers,
  Tammo

Re: ODE-150

Posted by Matthieu Riou <ma...@gmail.com>.
Oh yes, I see now - and agree.

Thanks for the fix!
Matthieu

On 7/31/07, Tammo van Lessen <tv...@gmail.com> wrote:
>
> Hi,
>
> > So if I understand correctly it was for parts declared as a type as
> opposed
> > to an element. The thing is that those are supposed to have some sort of
> > wrapper because you could very well define a part as being a complexType
> > including a sequence. In which case you need some sort of concrete
> element
> > that deals with those.
> Exactly, sorry for being so unclear in my mail - I was in a hurry.
>
> > So when we have something like:
> >
> >    <wsdl:part name="TestPart" type="tns:myComplexType"/>
> >
> > What we do is we effectively wrap the content of the part so that we get
> > something like:
> >
> > <message>
> >   <TestPart>
> >     <firstElmtInSequence/>
> >     <secondElmtInSequence/>
> >   </TestPart>
> > </message>
>
> Yeah, the <TestPart> element is perfectly fine. The problem was that
> Ode expected to receive a message like:
>
> <message>
>   <TestPart>
>     <myComplexType>
>       <firstElmtInSequence/>
>       <secondElmtInSequence/>
>     </myComplexType>
>   </TestPart>
> </message>
>
> For example lets take a look at the TestActivityFlow1 test. There is
> message defined by:
>
>   <xsd:complexType name="testMessage">
>       <xsd:sequence>
>           <xsd:element name="requestID" type="xsd:string"/>
>           <xsd:element name="requestText" type="xsd:string"/>
>           ...
>       </xsd:sequence>
>   </xsd:complexType>
>
>   <wsdl:message name="requestMessage">
>       <wsdl:part name="requestMessageData" type="typens:testMessage"/>
>   </wsdl:message>
>
> In my opinion a recieved SOAP message should then look like:
>   <message>  <!-- message wrapper -->
>       <requestMessageData>  <!-- part wrapper -->
>           <requestID>foo</requestID>
>           <requestName>bar</requestName>
>           ...
>       </requestMessageData>
>   <message>
>
> instead of
>
>   <message>  <!-- message wrapper -->
>       <requestMessageData>  <!-- part wrapper -->
>           <testMessage> <!-- mysterious wrapper -->
>               <requestID>foo</requestID>
>               <requestName>bar</requestName>
>               ...
>           </testMessage>
>       </requestMessageData>
>   <message>
>
> What do you think?
>
> Cheers,
>   Tammo
>

Re: ODE-150

Posted by Tammo van Lessen <tv...@gmail.com>.
Hi,

> So if I understand correctly it was for parts declared as a type as opposed
> to an element. The thing is that those are supposed to have some sort of
> wrapper because you could very well define a part as being a complexType
> including a sequence. In which case you need some sort of concrete element
> that deals with those.
Exactly, sorry for being so unclear in my mail - I was in a hurry.

> So when we have something like:
>
>    <wsdl:part name="TestPart" type="tns:myComplexType"/>
>
> What we do is we effectively wrap the content of the part so that we get
> something like:
>
> <message>
>   <TestPart>
>     <firstElmtInSequence/>
>     <secondElmtInSequence/>
>   </TestPart>
> </message>

Yeah, the <TestPart> element is perfectly fine. The problem was that
Ode expected to receive a message like:

<message>
  <TestPart>
    <myComplexType>
      <firstElmtInSequence/>
      <secondElmtInSequence/>
    </myComplexType>
  </TestPart>
</message>

For example lets take a look at the TestActivityFlow1 test. There is
message defined by:

  <xsd:complexType name="testMessage">
      <xsd:sequence>
          <xsd:element name="requestID" type="xsd:string"/>
          <xsd:element name="requestText" type="xsd:string"/>
          ...
      </xsd:sequence>
  </xsd:complexType>

  <wsdl:message name="requestMessage">
      <wsdl:part name="requestMessageData" type="typens:testMessage"/>
  </wsdl:message>

In my opinion a recieved SOAP message should then look like:
  <message>  <!-- message wrapper -->
      <requestMessageData>  <!-- part wrapper -->
          <requestID>foo</requestID>
          <requestName>bar</requestName>
          ...
      </requestMessageData>
  <message>

instead of

  <message>  <!-- message wrapper -->
      <requestMessageData>  <!-- part wrapper -->
          <testMessage> <!-- mysterious wrapper -->
              <requestID>foo</requestID>
              <requestName>bar</requestName>
              ...
          </testMessage>
      </requestMessageData>
  <message>

What do you think?

Cheers,
  Tammo

Re: ODE-150

Posted by Matthieu Riou <ma...@gmail.com>.
On 7/31/07, Tammo van Lessen <tv...@gmail.com> wrote:
>
> Hi again,
>
> I was working on ODE-150 (problem with transition condition xpaths)
> and have fixed it in my last commit.
>
> Thanks to our regression tests, my fix (of course) broke some tests. I
> might be wrong but I think that these test cases were incorrect as
> they were assuming to have a wrapper element messages for parts
> defined by type="".


So if I understand correctly it was for parts declared as a type as opposed
to an element. The thing is that those are supposed to have some sort of
wrapper because you could very well define a part as being a complexType
including a sequence. In which case you need some sort of concrete element
that deals with those.

So when we have something like:

   <wsdl:part name="TestPart" type="tns:myComplexType"/>

What we do is we effectively wrap the content of the part so that we get
something like:

<message>
  <TestPart>
    <firstElmtInSequence/>
    <secondElmtInSequence/>
  </TestPart>
</message>

So in that case the wrapper is necessary but doesn't really matter as it's
usually eliminated when the message is actually sent.

But I could have misunderstood your problem...

The (hopefully) corrected test cases are in commit 561372.
>
> Could you please have a look at it, I don't want to break other stuff.
> Thanks in advance.
>
> Cheers,
>   Tammo
>