Patch for WebServiceLogicImpl.java (loadTypes method) that adds all generalizations and all specializations of a type to the webservices list of known types
Test model for the new inheritance feature. This model is from andromda 3.1.
I'm trying to apply the patch, however eclipse is saying the patch can not be applied (so I'd need to do it manually). Can you create the patch based on the V3_x_HEAD branch? Thanks!
F...., just noticed there's a bug in my patch. I'll try to fix it and then submit a new patch for the 3_x_HEAD.
Hey, and thanks for looking into it so fast :-)
Patch against 3_x_HEAD
After searching for 5 hours for a bug in my code I found out that there wasn't a bug in my code (at least none responsible for the problems I had), but that I had switched to Axis 1.2-RC3 and that doesn't handle arrays properly.
The wsdl2java tool of 1.2-RC3 generates stubs that refer to the "ArrayOfXX" types instead to the "XX[]" types.
So, I hope it works now, good luck Chad!
Hey Mark,
I'm looking at the patch again (applied fine this time, thanks!). Just ran the tests and of course they fail because I'm using your test model. However I don't see the attributes of super types being propagated to the subtypes. For example, with this "TestSubType" (I copied from the test output), I would expected would have the following attributes listed as well (since they should be inherited from the super types: attributeOfSuperType and attributeOfSubType).
<xsd:complexType name="TestSubType">
<xsd:annotation>
<xsd:documentation>
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="attributeOfSubType" nillable="false" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
"since they should be inherited from the super types: attributeOfSuperType and attributeOfSubType", sorry I meant: attributeOfSuperType and *attributeOfMainType*.
Sure, you're right! I should have added this patch for the wrapped-wsdl.vsl template.
Sorry,
Mark
P.S.: I believe that the logic that I added to the template (looping over the attributes of all super types) should go into some class like WebServiceLogicImpl ("getAllAttributes" or something) but I didn't know how to add a method to it, that's why it's in the template.
Ahh, should have know that it's that easy.
Here's the new patch, though I don't think that you really need it.
Cool,. so attributes are supported of inherited, how about associations?
You're right, I haven't implemented that. Forgot that attributes and associations are not the same in this context.
I guess there must be a method like getAllNavigableAssociationEnds or something that can be used for that, but I can't find it. Any ideas?
Yeah I don't think we have one, we should probably have one like getAttributes(true), called getNavigableAssociationEnds(true). What you can do is implement it in the ClassifierFacade of the UML metafacades and use that in the template (and attach that to the patch).
Okay, I'll do that later tonight or tomorrow (CET). Which version do you want me to patch?
Great. Can you patch the V3_x_HEAD version?
Metafacade Model of 3.1 (didn't find a V3_x_HEAD version), added
getNavigableAssociationEnds(boolean)::Collection
to ClassifierFacade
Implementation of getNavigableAssociationEnds(boolean)::Collection
Sorry, no patch, since I worked on 3.1 and couldn't find a 3_x_HEAD version of it.
Test model with associations on inherited types (also 3.1).
Patch on 3_x_HEAD for wrapped-wsdl.vsl
Changed to use new method type.getNavigableAssociationEnds(true)
That should have been all patches/changes. Hope that it's ok the way I did it.
I'd really like to look deeper into the code and API of AndroMDA but unfourtunatly don't have the time to at the moment.
But I always like to learn, so feel free to comment ;-)
Applied, thanks Mark!