diff options
author | Christof Rabensteiner <christof.rabensteiner@iaik.tugraz.at> | 2019-07-16 14:33:26 +0200 |
---|---|---|
committer | Christof Rabensteiner <christof.rabensteiner@iaik.tugraz.at> | 2019-07-16 14:33:26 +0200 |
commit | 8f3b805a558c4ed454db2b691032cea800d7b6dd (patch) | |
tree | 524a2c90e76bc52a5c90de3e2a54ebb679328cb7 /src/main/resources/mzs/app2mzs.xsd | |
parent | d9e5864f48d261c06de1f1d34000ff6156155569 (diff) | |
download | moa-zs-8f3b805a558c4ed454db2b691032cea800d7b6dd.tar.gz moa-zs-8f3b805a558c4ed454db2b691032cea800d7b6dd.tar.bz2 moa-zs-8f3b805a558c4ed454db2b691032cea800d7b6dd.zip |
Implement ForwardResponseToService Sink And All Its Implications
MZS Schema Change:
- Add configuration for ForwardResponseToServiceSink
(add parameters in mzs:DeliveryRequest/Config)
- Add sink configuration in application.yaml, convert from Spring
Environment to ConfigType, and merge ConfigTypes.
- Validate sink configuration completeness.
Contract added:
- Add contract mzs2app.wsdl: This contract specifies how
mzs:DeliveryRequestStatus' and mzs:DeliveryNotifications are
forwarded to the sender application.
- Implement "ForwardResponseToService" Sink.
- Add and implement MsgResponse.sendToMzsClient() : This is a somewhat
unfortunate solution because, intuitively, sending should be done by
it's caller, the "ForwardResponseToService"-sink. However, this
solution prevents differences between msg:DeliveryRequestStatus and
msg:DeliveryNotification (and code that needs to handle differences,
i.e. sending) from sprawling outside of the respective MsgResponse
derivatives. We move the entire "send" process into MsgResponse to
prevent a hard-to-maintain "if type == notification then do x else
to y" construct in ForwardResponseToServiceSink. Otherwise,
introducing the MsgResponse wrapper was pointless.
Diffstat (limited to 'src/main/resources/mzs/app2mzs.xsd')
-rw-r--r-- | src/main/resources/mzs/app2mzs.xsd | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/main/resources/mzs/app2mzs.xsd b/src/main/resources/mzs/app2mzs.xsd index 5733a00..a2d1bde 100644 --- a/src/main/resources/mzs/app2mzs.xsd +++ b/src/main/resources/mzs/app2mzs.xsd @@ -134,6 +134,7 @@ <xs:sequence> <xs:element ref="SaveResponseToFile" minOccurs="0" /> <xs:element name="LogResponse" type="xs:boolean" minOccurs="0" /> + <xs:element ref="ForwardResponseToService" minOccurs="0" /> </xs:sequence> </xs:complexType> <xs:element name="SaveResponseToFile" type="SaveResponseToFileType" /> @@ -143,7 +144,15 @@ <xs:element name="Path" type="xs:string" minOccurs="0"/> </xs:sequence> </xs:complexType> + <xs:element name="ForwardResponseToService" type="ForwardResponseToServiceType" /> + <xs:complexType name="ForwardResponseToServiceType"> + <xs:sequence> + <xs:element name="Active" type="xs:boolean" minOccurs="0"/> + <xs:element name="MzsClient" type="ClientType" minOccurs="0"/> + </xs:sequence> + </xs:complexType> <xs:element name="DeliveryResponse" type="DeliveryResponseType"/> + <xs:element name="DeliveryRequestStatus" type="DeliveryResponseType"/> <xs:complexType name="DeliveryResponseType"> <xs:choice> <xs:element ref="PartialSuccess"/> @@ -162,6 +171,7 @@ <xs:element ref="Error"/> </xs:choice> </xs:complexType> + <xs:element name="DeliveryRequestStatusACK" type="DeliveryNotificationACKType" /> <xs:element name="DeliveryNotificationACK" type="DeliveryNotificationACKType"> <xs:annotation> <xs:documentation>Webservice Response of ZSDeliveryNotification</xs:documentation> |