
Hi, There is a confusion between schema description and generated Java stubs. According to the WSAG specifications, multiple ServiceDescriptionTerms and Preferences can be defined/described as shown in appendix 2/3 examples. But, when we generate Java stubs (using WSDL2Java emmiter or castor), the generated stubs provide these fields as single element instead of array or vector. For examle TermCompositorType class: public class TermCompositorType implements java.io.Serializable { private org.ggf.wsag.TermCompositorType exactlyOne; private org.ggf.wsag.TermCompositorType oneOrMore; private org.ggf.wsag.TermCompositorType all; private org.ggf.wsag.ServiceDescriptionTermType serviceDescriptionTerm; //???? Should not it array like ServiceDescriptionTermType[]???? private org.ggf.wsag.ServiceReferenceType serviceReference; private org.ggf.wsag.ServicePropertiesType serviceProperties; private org.ggf.wsag.GuaranteeTermType guaranteeTerm; public TermCompositorType() { } ... } Here I expect ServiceDescriptionTermType[] instead of ServiceDescriptionTermType. probably, here we can use domain specific terms like JobDefinition from JSDL as JobDefinition_Type[] jdefs = new JobDefinition_Type[2]; jdefs[0] = new JobDefinition_Type(); jdefs[1] = new JobDefinition_Type(); sdterm.set_any(AnyHelper.toAnyArray(jdefs)); sdterm.setServiceName(new NCName("job1")); In this case the serialized XML document does not look like as expected! See the serialized form below: <agreement> .... <ns2:ServiceDescriptionTerm ns2:ServiceName="job1" xsi:type="ns2:ServiceDescriptionTermType"> <ns3:value xsi:type="ns4:JobDefinition_Type" xmlns:ns3="http://www.globus.org/namespaces/2004/06/core" xmlns:ns4="http://schemas.ggf.org/jsdl/2005/11/jsdl"> <ns4:JobDescription xsi:type="ns4:JobDescription_Type" xsi:nil="true"/> </ns3:value> <ns5:value xsi:type="ns6:JobDefinition_Type" xmlns:ns5="http://www.globus.org/namespaces/2004/06/core" xmlns:ns6="http://schemas.ggf.org/jsdl/2005/11/jsdl"> <ns6:JobDescription xsi:type="ns6:JobDescription_Type" xsi:nil="true"/> </ns5:value> </ns2:ServiceDescriptionTerm> .... </agreement> Similarly, in case of BusinessValueListType class public class BusinessValueListType implements java.io.Serializable { private java.lang.Integer importance; private org.ggf.wsag.CompensationType[] penalty; private org.ggf.wsag.CompensationType[] reward; private org.ggf.wsag.PreferenceType preference; <<<<<<???????? private java.lang.Object[] customBusinessValue; public BusinessValueListType() { } ... } again I expect PreferenceType field as array like PreferenceType[]. Probably my understanding is wrong or the Java stubs are incorrectly generated. Would be great if someone could explain it? How to specify multiple terms and preferences using generated Java stubs? Thanks mumtaz PS: Typo in wsag draft page 25? "A guarantee term can have one or more service scopes. A service scope describes to what service element specifically a service applies." May be the last 'service' is to be replaced with 'guarantee'?
participants (1)
-
Mumtaz Siddiqui