Skip to content
This repository

rpclib-2.4.4-beta commits #109

Merged
merged 16 commits into from over 2 years ago

2 participants

Burak Arslan Guillaume Gauvrit
This page is out of date. Refresh to see the latest.
7  CHANGELOG.rst
Source Rendered
@@ -2,6 +2,13 @@
2 2
 Changelog
3 3
 =========
4 4
 
  5
+rpclib-2.4.4-beta
  6
+-----------------
  7
+ * Time primitive was implemented.
  8
+ * Fix for multiple ports was integrated.
  9
+ * Added http cookie authentication example with suds.
  10
+ * Full change log: https://github.com/arskom/rpclib/pull/109
  11
+
5 12
 rpclib-2.4.3-beta
6 13
 -----------------
7 14
  * Many issues with 'soft' validation was fixed.
8  ROADMAP.rst
Source Rendered
@@ -17,7 +17,7 @@ touching most of the codebase: A proper lazily-evaluated pipeline for request
17 17
 processing.
18 18
 
19 19
 Currently, every artifact of the rpc processing pipeline remain in memory for the
20  
-entire life time of the context object. This also causes to have the whole message
  20
+entire life time of the context object. This also results in having the whole message
21 21
 in memory while processing. While this is not a problem for small messages, which is
22 22
 rpclib's main target, it limits rpclib capabilities.
23 23
 
@@ -52,10 +52,15 @@ Soap to JsonRpc.
52 52
 Miscellanous
53 53
 ------------
54 54
 
  55
+First and foremost:
  56
+
  57
+     Fix the tests that fail due to api changes!
  58
+
55 59
 The following would definitely be nice to have, but are just modules that should
56 60
 not cause a change in unrelated areas of rpclib. Those would increment the minor
57 61
 version number of the Rpclib version once implemented.
58 62
 
  63
+* Support for polymorphism in XML Schema.
59 64
 * Support for the JsonObject (à la XmlObject) and JsonRpc protocols.
60 65
 * Support for the JsonSchema interface document standard.
61 66
 * Support for the Thrift binary protocol.
@@ -72,4 +77,3 @@ version number of the Rpclib version once implemented.
72 77
 * Support addressing (routing) extensions to Soap
73 78
 * Add WSDL Parsing support to Soap client
74 79
 * Reflect transport and protocol pairs other than Soap/Http to the Wsdl.
75  
-* Fix the tests that fail due to api changes.
3  doc/source/comparison.rst
Source Rendered
@@ -22,11 +22,10 @@ Discussion thread: https://answers.launchpad.net/ladon/+question/171664
22 22
     The main motive for designing JSON-WSP was the need for a JSON-based RPC
23 23
     protocol with a service description specification with built-in service /
24 24
     method documentation.
25  
-* Supports Python 3.x.
  25
+* Supports both Python 2 and Python 3.
26 26
 * Auto-generates human-readable API documentation.
27 27
   (example: http://ladonize.org/python-demos/AlbumService) In Rpclib, you need
28 28
   to do with the ugliness of a raw wsdl document.
29  
-* Supports both Python 2 and Python 3.
30 29
 * Does not support ZeroMQ.
31 30
 * Uses standard python tools for xml parsing which is good for pure-python
32 31
   deployments. Rpclib uses lxml, due to its excellent namespace support and
16  doc/source/faq.rst
Source Rendered
@@ -8,19 +8,24 @@ Frequently asked questions about rpclib and related libraries.
8 8
 Does rpclib support the SOAP 1.2 standard?
9 9
 ==========================================
10 10
 
11  
-Sort answer: No. Long answer: Nope.
  11
+**Short answer:** No.
  12
+
  13
+**Long answer:** Nope.
12 14
 
13 15
 Patches are welcome.
14 16
 
15 17
 How do I implement a predefined WSDL?
16 18
 =====================================
17 19
 
18  
-This is not a strength of rpclib, which is more oriented toward implementing
19  
-services from scratch. It does not have any functionality to parse an existing
20  
-WSDL document to produce the necessary Python classes and method stubs.
  20
+**Short answer:** By hand.
  21
+
  22
+**Long answer:** This is not a strength of rpclib, which is more oriented toward
  23
+implementing services from scratch. It does not have any functionality to parse
  24
+an existing WSDL document to produce the necessary Python classes and method
  25
+stubs.
21 26
 
22 27
 Patches are welcome. You can start by adapting the WSDL parser from
23  
-`RSL <http://rsl.sf.net>`.
  28
+`RSL <http://rsl.sf.net>`_.
24 29
 
25 30
 Is it possible to use other decorators with @rpc/@srpc?
26 31
 =======================================================
@@ -76,4 +81,3 @@ How do I alter the behaviour of a user method without using decorators?
76 81
 ``ctx.descriptor.function`` contains the handle to the original function. You
77 82
 can set that attribute to arbitrary callables to prevent the original user
78 83
 method from running.
79  
-
0  examples/authenticate/client_suds.py → examples/authentication/client_suds.py
File renamed without changes
0  examples/cookie_authenticate/client_suds.py → examples/authentication/http_cookie/client_suds.py
File renamed without changes
0  examples/cookie_authenticate/server_soap.py → examples/authentication/http_cookie/server_soap.py
File renamed without changes
0  examples/authenticate/server_soap.py → examples/authentication/server_soap.py
File renamed without changes
39  src/rpclib/interface/wsdl/wsdl11.py
@@ -222,7 +222,8 @@ def build_interface_document(self, url):
222 222
 
223 223
         cb_binding = None
224 224
         for s in self.services:
225  
-            cb_binding = self.add_bindings_for_methods(s, root, service_name)
  225
+            cb_binding = self.add_bindings_for_methods(s, root, service_name,
  226
+                                                       cb_binding)
226 227
 
227 228
         if self.app.transport is None:
228 229
             raise Exception("You must set the 'transport' property of the "
@@ -396,20 +397,11 @@ def add_messages_for_methods(self, service, root, messages):
396 397
                                         fault.get_type_name())
397 398
 
398 399
     def add_bindings_for_methods(self, service, root, service_name,
399  
-                                     cb_binding=None):
  400
+                                     cb_binding):
400 401
 
401 402
         pref_tns = self.get_namespace_prefix(service.get_tns())
402 403
         
403  
-        def inner(binding,transport):
404  
-            if service._has_callbacks():
405  
-                if cb_binding is None:
406  
-                    cb_binding = etree.SubElement(root, '{%s}binding' % _ns_wsdl)
407  
-                    cb_binding.set('name', '%sCallback' % service_name)
408  
-                    cb_binding.set('type', 'typens:%sCallback' % service_name)
409  
-
410  
-                soap_binding = etree.SubElement(cb_binding, '{%s}binding' % _ns_soap)
411  
-                soap_binding.set('transport', transport)
412  
-
  404
+        def inner(binding):
413 405
             for method in service.public_methods.values():
414 406
                 operation = etree.Element('{%s}operation' % _ns_wsdl)
415 407
                 operation.set('name', method.name)
@@ -524,20 +516,19 @@ def inner(binding,transport):
524 516
                 transport = etree.SubElement(binding, '{%s}binding' % _ns_soap)
525 517
                 transport.set('style', 'document')
526 518
                 
527  
-                inner(binding,transport)
  519
+                inner(binding)
528 520
 
529 521
         else:
530  
-            # there is only an unamed port, let's call it has it's service.
531  
-            #binding_name = self._get_binding_name(service_name)
532  
-            # create binding nodes
533  
-            binding = etree.SubElement(root, '{%s}binding' % _ns_wsdl)
534  
-            binding.set('name', service_name)
535  
-            binding.set('type', '%s:%s'% (pref_tns, service_name))
536  
-
537  
-            transport = etree.SubElement(binding, '{%s}binding' % _ns_soap)
538  
-            transport.set('style', 'document')
  522
+            # here is the default port.
  523
+            if cb_binding is None:
  524
+                cb_binding = etree.SubElement(root, '{%s}binding' % _ns_wsdl)
  525
+                cb_binding.set('name', service_name)
  526
+                cb_binding.set('type', '%s:%s'% (pref_tns, service_name))
  527
+
  528
+                transport = etree.SubElement(cb_binding, '{%s}binding' % _ns_soap)
  529
+                transport.set('style', 'document')
  530
+                transport.set('transport', self.app.transport)
539 531
             
540  
-            inner(binding,transport)
541  
-        
  532
+            inner(cb_binding)
542 533
 
543 534
         return cb_binding
15  src/rpclib/model/binary.py
@@ -57,23 +57,12 @@ def to_string_iterable(cls, value):
57 57
     @classmethod
58 58
     @nillable_string
59 59
     def to_base64(cls, value):
60  
-        ostream = StringIO()
61  
-        istream = StringIO(''.join(value))
62  
-        base64.encode(istream, ostream)
63  
-        ostream.seek(0)
64  
-
65  
-        return [ostream.read()]
  60
+        return [base64.b64encode(''.join(value))]
66 61
 
67 62
     @classmethod
68 63
     @nillable_string
69 64
     def from_base64(cls, value):
70  
-        istream = StringIO(''.join(value))
71  
-        ostream = StringIO()
72  
-
73  
-        base64.decode(istream, ostream)
74  
-        ostream.seek(0)
75  
-
76  
-        return [ostream.read()]
  65
+        return [base64.b64decode(''.join(value))]
77 66
 
78 67
 class Attachment(ModelBase):
79 68
     """**DEPRECATED!** Use ByteArray instead."""
106  src/rpclib/model/primitive.py
@@ -23,16 +23,13 @@
23 23
 import math
24 24
 import pytz
25 25
 import decimal
  26
+import datetime
26 27
 
27 28
 import rpclib.const.xml_ns
28 29
 import cPickle as pickle
29 30
 
30 31
 from collections import deque
31 32
 
32  
-from datetime import date
33  
-from datetime import datetime
34  
-from datetime import timedelta
35  
-
36 33
 from lxml import etree
37 34
 from pytz import FixedOffset
38 35
 
@@ -51,6 +48,7 @@
51 48
 _utc_re = re.compile(_datetime_pattern + 'Z')
52 49
 _offset_re = re.compile(_datetime_pattern + _offset_pattern)
53 50
 _date_re = re.compile(_date_pattern)
  51
+_time_re = re.compile(_time_pattern)
54 52
 _duration_re = re.compile(
55 53
         r'(?P<sign>-?)'
56 54
         r'P'
@@ -106,14 +104,15 @@ def from_string(cls, string):
106 104
             raise ValidationError(string)
107 105
 
108 106
 class Unicode(SimpleModel):
109  
-    """The type to represent human-readable data. Its native format is unicode.
110  
-    Currently, it can read from only utf8-compatible encodings.
  107
+    """The type to represent human-readable data. Its native format is `unicode`.
  108
+    or `str` with given encoding.
111 109
     """
112 110
 
113 111
     __type_name__ = 'string'
114 112
 
115 113
     class Attributes(SimpleModel.Attributes):
116  
-        """The class that holds the constraints for the given type."""
  114
+        """Customizable attributes of the :class:`rpclib.model.primitive.Unicode`
  115
+        type."""
117 116
 
118 117
         min_len = 0
119 118
         """Minimum length of string. Can be set to any positive integer"""
@@ -139,10 +138,7 @@ def __new__(cls, *args, **kwargs):
139 138
     @classmethod
140 139
     @nillable_string
141 140
     def from_string(cls, value):
142  
-        try:
143  
-            return value.decode('utf8')
144  
-        except:
145  
-            return value
  141
+        return value
146 142
 
147 143
     @classmethod
148 144
     @nillable_string
@@ -166,20 +162,36 @@ def validate_string(cls, value):
166 162
                             re.match(cls.Attributes.pattern, value) is not None)
167 163
             )
168 164
 
169  
-class String(Unicode):
  165
+
  166
+# the undocumented string type, for those who want not-so-implicit encoding
  167
+# conversions.
  168
+class _String(Unicode):
  169
+    class Attributes(Unicode.Attributes):
  170
+        """Customizable attributes of the :class:`rpclib.model.primitive.String`
  171
+        type."""
  172
+
  173
+        encoding = 'utf8'
  174
+        """The encoding of the passed `str` object."""
  175
+
170 176
     @classmethod
171 177
     @nillable_string
172 178
     def from_string(cls, value):
173  
-        return str(value)
  179
+        retval = value
  180
+        if cls.Attributes.encoding is not None:
  181
+            retval = value.decode(cls.Attributes.encoding)
  182
+        return retval
174 183
 
175 184
     @classmethod
176 185
     @nillable_string
177 186
     def to_string(cls, value):
178  
-        return str(value)
  187
+        retval = value
  188
+        if cls.Attribute.encoding is not None:
  189
+            retval = value.encode(cls.Attributes.encoding)
  190
+        return retval
179 191
 
180 192
 String = Unicode # FIXME: the string/unicode separation needs to be tested
181 193
 
182  
-class AnyUri(String):
  194
+class AnyUri(Unicode):
183 195
     """This is an xml schema type with is a special kind of String."""
184 196
     __type_name__ = 'anyURI'
185 197
 
@@ -340,8 +352,40 @@ class UnsignedInteger8(Integer):
340 352
     __type_name__ = 'unsignedByte'
341 353
     __length__ = 8
342 354
 
  355
+class Time(SimpleModel):
  356
+    """Just that, Time. No time zone support.
  357
+
  358
+    Native type is :class:`datetime.time`.
  359
+    """
  360
+
  361
+    __type_name__ = 'time'
  362
+
  363
+    @classmethod
  364
+    @nillable_string
  365
+    def to_string(cls, value):
  366
+        """Returns ISO formatted dates."""
  367
+
  368
+        return value.isoformat()
  369
+
  370
+    @classmethod
  371
+    @nillable_string
  372
+    def from_string(cls, string):
  373
+        """Expects ISO formatted dates."""
  374
+
  375
+        match = _time_re.match(string)
  376
+        if match is None:
  377
+            raise ValidationError(string)
  378
+
  379
+        fields = match.groupdict(0)
  380
+
  381
+        return datetime.time(int(fields['hr']), int(fields['min']),
  382
+                    int(fields['sec']), int(fields.get("sec_frac", '.')[1:]))
  383
+
343 384
 class Date(SimpleModel):
344  
-    """Just that, Date. It also supports time zones."""
  385
+    """Just that, Date. It also supports time zones.
  386
+
  387
+    Native type is :class:`datetime.date`.
  388
+    """
345 389
 
346 390
     __type_name__ = 'date'
347 391
 
@@ -363,10 +407,12 @@ def from_string(cls, string):
363 407
 
364 408
         fields = match.groupdict(0)
365 409
 
366  
-        return date(fields['year'], fields['month'], fields['day'])
  410
+        return datetime.date(fields['year'], fields['month'], fields['day'])
367 411
 
368 412
 class DateTime(SimpleModel):
369 413
     """A compact way to represent dates and times together. Supports time zones.
  414
+
  415
+    Native type is :class:`datetime.datetime`.
370 416
     """
371 417
     __type_name__ = 'dateTime'
372 418
 
@@ -377,15 +423,21 @@ def to_string(cls, value):
377 423
 
378 424
     @staticmethod
379 425
     def parse(date_match, tz=None):
380  
-        fields = date_match.groupdict(0)
381  
-        year, month, day, hour, min, sec = [int(fields[x]) for x in
382  
-            ("year", "month", "day", "hr", "min", "sec")]
383  
-
384  
-        # use of decimal module here (rather than float) might be better
385  
-        # here, if willing to require python 2.4 or higher
386  
-        microsec = int(float(fields.get("sec_frac", 0)) * 10 ** 6)
  426
+        fields = date_match.groupdict()
  427
+
  428
+        year = int(fields.get('year'))
  429
+        month =  int(fields.get('month'))
  430
+        day = int(fields.get('day'))
  431
+        hour = int(fields.get('hr'))
  432
+        min = int(fields.get('min'))
  433
+        sec = int(fields.get('sec'))
  434
+        microsec = fields.get("sec_frac")
  435
+        if microsec is None:
  436
+            microsec = 0
  437
+        else:
  438
+            microsec = int(microsec[1:])
387 439
 
388  
-        return datetime(year,month,day, hour,min,sec, microsec, tz)
  440
+        return datetime.datetime(year,month,day, hour,min,sec, microsec, tz)
389 441
 
390 442
     @classmethod
391 443
     @nillable_string
@@ -409,7 +461,7 @@ def from_string(cls, string):
409 461
 
410 462
 # this object tries to follow ISO 8601 standard.
411 463
 class Duration(SimpleModel):
412  
-    """This is how the native datetime.timedelta objects are serialized."""
  464
+    """Native type is :class:`datetime.timedelta`."""
413 465
 
414 466
     __type_name__ = 'duration'
415 467
 
@@ -430,7 +482,7 @@ def from_string(cls, string):
430 482
         seconds = i
431 483
         microseconds = int(1e6 * f)
432 484
 
433  
-        delta = timedelta(days=days, hours=hours, minutes=minutes,
  485
+        delta = datetime.timedelta(days=days, hours=hours, minutes=minutes,
434 486
                                     seconds=seconds, microseconds=microseconds)
435 487
 
436 488
         if duration['sign'] == "-":
5  src/rpclib/model/table.py
@@ -48,6 +48,7 @@
48 48
 from rpclib.model import binary
49 49
 from rpclib.model import complex
50 50
 
  51
+
51 52
 _type_map = {
52 53
     sqlalchemy.Text: primitive.String,
53 54
     sqlalchemy.String: primitive.String,
@@ -63,7 +64,11 @@
63 64
     sqlalchemy.LargeBinary: binary.ByteArray,
64 65
     sqlalchemy.Boolean: primitive.Boolean,
65 66
     sqlalchemy.DateTime: primitive.DateTime,
  67
+    sqlalchemy.Date: primitive.Date,
  68
+    sqlalchemy.Time: primitive.Time,
  69
+
66 70
     sqlalchemy.orm.relation: complex.Array,
  71
+
67 72
     UUID: primitive.String
68 73
 }
69 74
 
204  src/rpclib/test/interop/wsi-report-rpclib.xml
... ...
@@ -1,6 +1,6 @@
1 1
 <?xml version="1.0" encoding="UTF-8"?>
2 2
 <?xml-stylesheet href="wsi-test-tools/common/xsl/report.xsl" type="text/xsl" ?>
3  
-<report name="WS-I Basic Profile Conformance Report."    timestamp="2011-09-19T15:13:36.767"
  3
+<report name="WS-I Basic Profile Conformance Report."    timestamp="2011-10-28T16:12:06.460"
4 4
     xmlns="http://www.ws-i.org/testing/2004/07/report/"
5 5
     xmlns:wsi-report="http://www.ws-i.org/testing/2004/07/report/"
6 6
     xmlns:wsi-log="http://www.ws-i.org/testing/2003/03/log/"
@@ -141,7 +141,7 @@
141 141
       <assertionResult id="SSBP2403" result="passed">
142 142
       </assertionResult>
143 143
     </entry>
144  
-    <entry type="message" referenceID="{rpclib.test.interop.server}send_out_complex_headerOutHeaderMsg">
  144
+    <entry type="message" referenceID="{rpclib.test.interop.server}OutHeader">
145 145
       <assertionResult id="BP2115" result="passed">
146 146
       </assertionResult>
147 147
       <assertionResult id="BP2116" result="passed">
@@ -153,25 +153,25 @@
153 153
       <assertionResult id="BP2116" result="passed">
154 154
       </assertionResult>
155 155
     </entry>
156  
-    <entry type="message" referenceID="{rpclib.test.interop.server}send_out_complex_headerInHeaderMsg">
  156
+    <entry type="message" referenceID="{rpclib.test.interop.server}echo_in_complex_headerInHeaderMsg">
157 157
       <assertionResult id="BP2115" result="passed">
158 158
       </assertionResult>
159 159
       <assertionResult id="BP2116" result="passed">
160 160
       </assertionResult>
161 161
     </entry>
162  
-    <entry type="message" referenceID="{rpclib.test.interop.server}echo_in_complex_headerOutHeaderMsg">
  162
+    <entry type="message" referenceID="{rpclib.test.interop.server}send_out_complex_headerInHeaderMsg">
163 163
       <assertionResult id="BP2115" result="passed">
164 164
       </assertionResult>
165 165
       <assertionResult id="BP2116" result="passed">
166 166
       </assertionResult>
167 167
     </entry>
168  
-    <entry type="message" referenceID="{rpclib.test.interop.server}echo_in_complex_headerInHeaderMsg">
  168
+    <entry type="message" referenceID="{rpclib.test.interop.server}send_out_complex_headerOutHeaderMsg">
169 169
       <assertionResult id="BP2115" result="passed">
170 170
       </assertionResult>
171 171
       <assertionResult id="BP2116" result="passed">
172 172
       </assertionResult>
173 173
     </entry>
174  
-    <entry type="message" referenceID="{rpclib.test.interop.server}OutHeader">
  174
+    <entry type="message" referenceID="{rpclib.test.interop.server}echo_in_complex_headerOutHeaderMsg">
175 175
       <assertionResult id="BP2115" result="passed">
176 176
       </assertionResult>
177 177
       <assertionResult id="BP2116" result="passed">
@@ -361,12 +361,6 @@
361 361
       <assertionResult id="BP2014" result="notApplicable">
362 362
       </assertionResult>
363 363
     </entry>
364  
-    <entry type="operation" referenceID="return_only">
365  
-      <assertionResult id="BP2208" result="passed">
366  
-      </assertionResult>
367  
-      <assertionResult id="BP2014" result="notApplicable">
368  
-      </assertionResult>
369  
-    </entry>
370 364
     <entry type="operation" referenceID="multi_param">
371 365
       <assertionResult id="BP2208" result="passed">
372 366
       </assertionResult>
@@ -451,139 +445,127 @@
451 445
       <assertionResult id="BP2014" result="notApplicable">
452 446
       </assertionResult>
453 447
     </entry>
454  
-    <entry type="message" referenceID="{rpclib.test.interop.server}echo_datetimeResponse">
455  
-      <assertionResult id="BP2115" result="passed">
456  
-      </assertionResult>
457  
-      <assertionResult id="BP2116" result="passed">
458  
-      </assertionResult>
459  
-    </entry>
460  
-    <entry type="message" referenceID="{rpclib.test.interop.server}send_out_complex_header">
461  
-      <assertionResult id="BP2115" result="passed">
462  
-      </assertionResult>
463  
-      <assertionResult id="BP2116" result="passed">
464  
-      </assertionResult>
465  
-    </entry>
466  
-    <entry type="message" referenceID="{rpclib.test.interop.server}echo_class_with_self_referenceResponse">
  448
+    <entry type="message" referenceID="{rpclib.test.interop.server}echo_date_time_arrayResponse">
467 449
       <assertionResult id="BP2115" result="passed">
468 450
       </assertionResult>
469 451
       <assertionResult id="BP2116" result="passed">
470 452
       </assertionResult>
471 453
     </entry>
472  
-    <entry type="message" referenceID="{rpclib.test.interop.server}echo_in_complex_headerResponse">
  454
+    <entry type="message" referenceID="{rpclib.test.interop.server}return_binary_dataResponse">
473 455
       <assertionResult id="BP2115" result="passed">
474 456
       </assertionResult>
475 457
       <assertionResult id="BP2116" result="passed">
476 458
       </assertionResult>
477 459
     </entry>
478  
-    <entry type="message" referenceID="{rpclib.test.interop.server}echo_boolean_arrayResponse">
  460
+    <entry type="message" referenceID="{rpclib.test.interop.server}soap_exceptionResponse">
479 461
       <assertionResult id="BP2115" result="passed">
480 462
       </assertionResult>
481 463
       <assertionResult id="BP2116" result="passed">
482 464
       </assertionResult>
483 465
     </entry>
484  
-    <entry type="message" referenceID="{rpclib.test.interop.server}echo_extension_class">
  466
+    <entry type="message" referenceID="{rpclib.test.interop.server}echo_double">
485 467
       <assertionResult id="BP2115" result="passed">
486 468
       </assertionResult>
487 469
       <assertionResult id="BP2116" result="passed">
488 470
       </assertionResult>
489 471
     </entry>
490  
-    <entry type="message" referenceID="{rpclib.test.interop.server}echo_in_complex_header">
  472
+    <entry type="message" referenceID="{rpclib.test.interop.server}echo_class_with_self_referenceResponse">
491 473
       <assertionResult id="BP2115" result="passed">
492 474
       </assertionResult>
493 475
       <assertionResult id="BP2116" result="passed">
494 476
       </assertionResult>
495 477
     </entry>
496  
-    <entry type="message" referenceID="{rpclib.test.interop.server}return_onlyResponse">
  478
+    <entry type="message" referenceID="{rpclib.test.interop.server}echo_simple_class_array">
497 479
       <assertionResult id="BP2115" result="passed">
498 480
       </assertionResult>
499 481
       <assertionResult id="BP2116" result="passed">
500 482
       </assertionResult>
501 483
     </entry>
502  
-    <entry type="message" referenceID="{rpclib.test.interop.server}echo_boolean">
  484
+    <entry type="message" referenceID="{rpclib.test.interop.server}soap_exception">
503 485
       <assertionResult id="BP2115" result="passed">
504 486
       </assertionResult>
505 487
       <assertionResult id="BP2116" result="passed">
506 488
       </assertionResult>
507 489
     </entry>
508  
-    <entry type="message" referenceID="{rpclib.test.interop.server}echo_double_arrayResponse">
  490
+    <entry type="message" referenceID="{rpclib.test.interop.server}return_invalid_dataResponse">
509 491
       <assertionResult id="BP2115" result="passed">
510 492
       </assertionResult>
511 493
       <assertionResult id="BP2116" result="passed">
512 494
       </assertionResult>
513 495
     </entry>
514  
-    <entry type="message" referenceID="{rpclib.test.interop.server}long_stringResponse">
  496
+    <entry type="message" referenceID="{rpclib.test.interop.server}echo_string_array">
515 497
       <assertionResult id="BP2115" result="passed">
516 498
       </assertionResult>
517 499
       <assertionResult id="BP2116" result="passed">
518 500
       </assertionResult>
519 501
     </entry>
520  
-    <entry type="message" referenceID="{rpclib.test.interop.server}echo_float">
  502
+    <entry type="message" referenceID="{rpclib.test.interop.server}echo_attachment_arrayResponse">
521 503
       <assertionResult id="BP2115" result="passed">
522 504
       </assertionResult>
523 505
       <assertionResult id="BP2116" result="passed">
524 506
       </assertionResult>
525 507
     </entry>
526  
-    <entry type="message" referenceID="{rpclib.test.interop.server}echo_integer_arrayResponse">
  508
+    <entry type="message" referenceID="{rpclib.test.interop.server}getCustomMessagesMsgOut">
527 509
       <assertionResult id="BP2115" result="passed">
528 510
       </assertionResult>
529 511
       <assertionResult id="BP2116" result="passed">
530 512
       </assertionResult>
531 513
     </entry>
532  
-    <entry type="message" referenceID="{rpclib.test.interop.server}multi_paramResponse">
  514
+    <entry type="message" referenceID="{rpclib.test.interop.server}echo_any_as_dict">
533 515
       <assertionResult id="BP2115" result="passed">
534 516
       </assertionResult>
535 517
       <assertionResult id="BP2116" result="passed">
536 518
       </assertionResult>
537 519
     </entry>
538  
-    <entry type="message" referenceID="{rpclib.test.interop.server}echo_simple_class_array">
  520
+    <entry type="message" referenceID="{rpclib.test.interop.server}echo_nested_class_arrayResponse">
539 521
       <assertionResult id="BP2115" result="passed">
540 522
       </assertionResult>
541 523
       <assertionResult id="BP2116" result="passed">
542 524
       </assertionResult>
543 525
     </entry>
544  
-    <entry type="message" referenceID="{rpclib.test.interop.server}echo_duration">
  526
+    <entry type="message" referenceID="{rpclib.test.interop.server}complex_returnResponse">
545 527
       <assertionResult id="BP2115" result="passed">
546 528
       </assertionResult>
547 529
       <assertionResult id="BP2116" result="passed">
548 530
       </assertionResult>
549 531
     </entry>
550  
-    <entry type="message" referenceID="{rpclib.test.interop.server}echo_nested_classResponse">
  532
+    <entry type="message" referenceID="{rpclib.test.interop.server}non_nillable">
551 533
       <assertionResult id="BP2115" result="passed">
552 534
       </assertionResult>
553 535
       <assertionResult id="BP2116" result="passed">
554 536
       </assertionResult>
555 537
     </entry>
556  
-    <entry type="message" referenceID="{rpclib.test.interop.server}echo_nested_class_arrayResponse">
  538
+    <entry type="message" referenceID="{rpclib.test.interop.server}echo_array_in_array">
557 539
       <assertionResult id="BP2115" result="passed">
558 540
       </assertionResult>
559 541
       <assertionResult id="BP2116" result="passed">
560 542
       </assertionResult>
561 543
     </entry>
562  
-    <entry type="message" referenceID="{rpclib.test.interop.server}return_invalid_dataResponse">
  544
+    <entry type="message" referenceID="{rpclib.test.interop.server}multi_paramResponse">
563 545
       <assertionResult id="BP2115" result="passed">
564 546
       </assertionResult>
565 547
       <assertionResult id="BP2116" result="passed">
566 548
       </assertionResult>
567 549
     </entry>
568  
-    <entry type="message" referenceID="{rpclib.test.interop.server}echo_simple_class">
  550
+    <entry type="message" referenceID="{rpclib.test.interop.server}return_other_class_arrayResponse">
569 551
       <assertionResult id="BP2115" result="passed">
570 552
       </assertionResult>
571 553
       <assertionResult id="BP2116" result="passed">
572 554
       </assertionResult>
573 555
     </entry>
574  
-    <entry type="message" referenceID="{rpclib.test.interop.server}echo_stringResponse">
  556
+    <entry type="message" referenceID="{rpclib.test.interop.server}long_string">
575 557
       <assertionResult id="BP2115" result="passed">
576 558
       </assertionResult>
577 559
       <assertionResult id="BP2116" result="passed">
578 560
       </assertionResult>
579 561
     </entry>
580  
-    <entry type="message" referenceID="{rpclib.test.interop.server}echo_boolean_array">
  562
+    <entry type="message" referenceID="{rpclib.test.interop.server}return_other_class_array">
581 563
       <assertionResult id="BP2115" result="passed">
582 564
       </assertionResult>
583 565
       <assertionResult id="BP2116" result="passed">
584 566
       </assertionResult>
585 567
     </entry>
586  
-    <entry type="message" referenceID="{rpclib.test.interop.server}echo_nested_class_array">
  568
+    <entry type="message" referenceID="{rpclib.test.interop.server}echo_double_arrayResponse">
587 569
       <assertionResult id="BP2115" result="passed">
588 570
       </assertionResult>
589 571
       <assertionResult id="BP2116" result="passed">
@@ -595,19 +577,19 @@
595 577
       <assertionResult id="BP2116" result="passed">
596 578
       </assertionResult>
597 579
     </entry>
598  
-    <entry type="message" referenceID="{rpclib.test.interop.server}echo_durationResponse">
  580
+    <entry type="message" referenceID="{rpclib.test.interop.server}echo_integer">
599 581
       <assertionResult id="BP2115" result="passed">
600 582
       </assertionResult>
601 583
       <assertionResult id="BP2116" result="passed">
602 584
       </assertionResult>
603 585
     </entry>
604  
-    <entry type="message" referenceID="{rpclib.test.interop.server}echo_nested_class">
  586
+    <entry type="message" referenceID="{rpclib.test.interop.server}return_binary_data">
605 587
       <assertionResult id="BP2115" result="passed">
606 588
       </assertionResult>
607 589
       <assertionResult id="BP2116" result="passed">
608 590
       </assertionResult>
609 591
     </entry>
610  
-    <entry type="message" referenceID="{rpclib.test.interop.server}echo_attachmentResponse">
  592
+    <entry type="message" referenceID="{rpclib.test.interop.server}echo_float">
611 593
       <assertionResult id="BP2115" result="passed">
612 594
       </assertionResult>
613 595
       <assertionResult id="BP2116" result="passed">
@@ -619,379 +601,379 @@
619 601
       <assertionResult id="BP2116" result="passed">
620 602
       </assertionResult>
621 603
     </entry>
622  
-    <entry type="message" referenceID="{rpclib.test.interop.server}return_other_class_arrayResponse">
  604
+    <entry type="message" referenceID="{rpclib.test.interop.server}multi_param">
623 605
       <assertionResult id="BP2115" result="passed">
624 606
       </assertionResult>
625 607
       <assertionResult id="BP2116" result="passed">
626 608
       </assertionResult>
627 609
     </entry>
628  
-    <entry type="message" referenceID="{rpclib.test.interop.server}echo_simple_boolean_arrayResponse">
  610
+    <entry type="message" referenceID="{rpclib.test.interop.server}echo_nested_classResponse">
629 611
       <assertionResult id="BP2115" result="passed">
630 612
       </assertionResult>
631 613
       <assertionResult id="BP2116" result="passed">
632 614
       </assertionResult>
633 615
     </entry>
634  
-    <entry type="message" referenceID="{rpclib.test.interop.server}send_out_headerResponse">
  616
+    <entry type="message" referenceID="{rpclib.test.interop.server}echo_extension_classResponse">
635 617
       <assertionResult id="BP2115" result="passed">
636 618
       </assertionResult>
637 619
       <assertionResult id="BP2116" result="passed">
638 620
       </assertionResult>
639 621
     </entry>
640  
-    <entry type="message" referenceID="{rpclib.test.interop.server}custom_messages">
  622
+    <entry type="message" referenceID="{rpclib.test.interop.server}echo_anyResponse">
641 623
       <assertionResult id="BP2115" result="passed">
642 624
       </assertionResult>
643 625
       <assertionResult id="BP2116" result="passed">
644 626
       </assertionResult>
645 627
     </entry>
646  
-    <entry type="message" referenceID="{rpclib.test.interop.server}complex_returnResponse">
  628
+    <entry type="message" referenceID="{rpclib.test.interop.server}huge_numberResponse">
647 629
       <assertionResult id="BP2115" result="passed">
648 630
       </assertionResult>
649 631
       <assertionResult id="BP2116" result="passed">
650 632
       </assertionResult>
651 633
     </entry>
652  
-    <entry type="message" referenceID="{rpclib.test.interop.server}non_nillable">
  634
+    <entry type="message" referenceID="{rpclib.test.interop.server}echo_boolean_arrayResponse">
653 635
       <assertionResult id="BP2115" result="passed">
654 636
       </assertionResult>
655 637
       <assertionResult id="BP2116" result="passed">
656 638
       </assertionResult>
657 639
     </entry>
658  
-    <entry type="message" referenceID="{rpclib.test.interop.server}echo_integerResponse">
  640
+    <entry type="message" referenceID="{rpclib.test.interop.server}echo_floatResponse">
659 641
       <assertionResult id="BP2115" result="passed">
660 642
       </assertionResult>
661 643
       <assertionResult id="BP2116" result="passed">
662 644
       </assertionResult>
663 645
     </entry>
664  
-    <entry type="message" referenceID="{rpclib.test.interop.server}non_nillableResponse">
  646
+    <entry type="message" referenceID="{rpclib.test.interop.server}echo_in_header">
665 647
       <assertionResult id="BP2115" result="passed">
666 648
       </assertionResult>
667 649
       <assertionResult id="BP2116" result="passed">
668 650
       </assertionResult>
669 651
     </entry>
670  
-    <entry type="message" referenceID="{rpclib.test.interop.server}return_binary_dataResponse">
  652
+    <entry type="message" referenceID="{rpclib.test.interop.server}send_out_complex_header">
671 653
       <assertionResult id="BP2115" result="passed">
672 654
       </assertionResult>
673 655
       <assertionResult id="BP2116" result="passed">
674 656
       </assertionResult>
675 657
     </entry>
676  
-    <entry type="message" referenceID="{rpclib.test.interop.server}echo_anyResponse">
  658
+    <entry type="message" referenceID="{rpclib.test.interop.server}echo_integerResponse">
677 659
       <assertionResult id="BP2115" result="passed">
678 660
       </assertionResult>
679 661
       <assertionResult id="BP2116" result="passed">
680 662
       </assertionResult>
681 663
     </entry>
682  
-    <entry type="message" referenceID="{rpclib.test.interop.server}echo_float_array">
  664
+    <entry type="message" referenceID="{rpclib.test.interop.server}Fault">
683 665
       <assertionResult id="BP2115" result="passed">
684 666
       </assertionResult>
685 667
       <assertionResult id="BP2116" result="passed">
686 668
       </assertionResult>
687 669
     </entry>
688  
-    <entry type="message" referenceID="{rpclib.test.interop.server}echo_simple_class_arrayResponse">
  670
+    <entry type="message" referenceID="{rpclib.test.interop.server}do_something_else">
689 671
       <assertionResult id="BP2115" result="passed">
690 672
       </assertionResult>
691 673
       <assertionResult id="BP2116" result="passed">
692 674
       </assertionResult>
693 675
     </entry>
694  
-    <entry type="message" referenceID="{rpclib.test.interop.server}documented_exceptionResponse">
  676
+    <entry type="message" referenceID="{rpclib.test.interop.server}echo_datetimeResponse">
695 677
       <assertionResult id="BP2115" result="passed">
696 678
       </assertionResult>
697 679
       <assertionResult id="BP2116" result="passed">
698 680
       </assertionResult>
699 681
     </entry>
700  
-    <entry type="message" referenceID="{rpclib.test.interop.server}echo_enum">
  682
+    <entry type="message" referenceID="{rpclib.test.interop.server}do_something_elseResponse">
701 683
       <assertionResult id="BP2115" result="passed">
702 684
       </assertionResult>
703 685
       <assertionResult id="BP2116" result="passed">
704 686
       </assertionResult>
705 687
     </entry>
706  
-    <entry type="message" referenceID="{rpclib.test.interop.server}echo_attachment">
  688
+    <entry type="message" referenceID="{rpclib.test.interop.server}test_emptyResponse">
707 689
       <assertionResult id="BP2115" result="passed">
708 690
       </assertionResult>
709 691
       <assertionResult id="BP2116" result="passed">
710 692
       </assertionResult>
711 693
     </entry>
712  
-    <entry type="message" referenceID="{rpclib.test.interop.server}soap_exceptionResponse">
  694
+    <entry type="message" referenceID="{rpclib.test.interop.server}echo_durationResponse">
713 695
       <assertionResult id="BP2115" result="passed">
714 696
       </assertionResult>
715 697
       <assertionResult id="BP2116" result="passed">
716 698
       </assertionResult>
717 699
     </entry>
718  
-    <entry type="message" referenceID="{rpclib.test.interop.server}echo_date_time_array">
  700
+    <entry type="message" referenceID="{rpclib.test.interop.server}echo_attachment">
719 701
       <assertionResult id="BP2115" result="passed">
720 702
       </assertionResult>
721 703
       <assertionResult id="BP2116" result="passed">
722 704
       </assertionResult>
723 705
     </entry>
724  
-    <entry type="message" referenceID="{rpclib.test.interop.server}echo_booleanResponse">
  706
+    <entry type="message" referenceID="{rpclib.test.interop.server}non_nillableResponse">
725 707
       <assertionResult id="BP2115" result="passed">
726 708
       </assertionResult>
727 709
       <assertionResult id="BP2116" result="passed">
728 710
       </assertionResult>
729 711
     </entry>
730  
-    <entry type="message" referenceID="{rpclib.test.interop.server}python_exceptionResponse">
  712
+    <entry type="message" referenceID="{rpclib.test.interop.server}echo_nested_class">
731 713
       <assertionResult id="BP2115" result="passed">
732 714
       </assertionResult>
733 715
       <assertionResult id="BP2116" result="passed">
734 716
       </assertionResult>
735 717
     </entry>
736  
-    <entry type="message" referenceID="{rpclib.test.interop.server}return_invalid_data">
  718
+    <entry type="message" referenceID="{rpclib.test.interop.server}echo_boolean">
737 719
       <assertionResult id="BP2115" result="passed">
738 720
       </assertionResult>
739 721
       <assertionResult id="BP2116" result="passed">
740 722
       </assertionResult>
741 723
     </entry>
742  
-    <entry type="message" referenceID="{rpclib.test.interop.server}send_out_header">
  724
+    <entry type="message" referenceID="{rpclib.test.interop.server}echo_float_array">
743 725
       <assertionResult id="BP2115" result="passed">
744 726
       </assertionResult>
745 727
       <assertionResult id="BP2116" result="passed">
746 728
       </assertionResult>
747 729
     </entry>
748  
-    <entry type="message" referenceID="{rpclib.test.interop.server}echo_integer">
  730
+    <entry type="message" referenceID="{rpclib.test.interop.server}echo_string_arrayResponse">
749 731
       <assertionResult id="BP2115" result="passed">
750 732
       </assertionResult>
751 733
       <assertionResult id="BP2116" result="passed">
752 734
       </assertionResult>
753 735
     </entry>
754  
-    <entry type="message" referenceID="{rpclib.test.interop.server}test_emptyResponse">
  736
+    <entry type="message" referenceID="{rpclib.test.interop.server}documented_exception">
755 737
       <assertionResult id="BP2115" result="passed">
756 738
       </assertionResult>
757 739
       <assertionResult id="BP2116" result="passed">
758 740
       </assertionResult>
759 741
     </entry>
760  
-    <entry type="message" referenceID="{rpclib.test.interop.server}echo_date_time_arrayResponse">
  742
+    <entry type="message" referenceID="{rpclib.test.interop.server}send_out_complex_headerResponse">
761 743
       <assertionResult id="BP2115" result="passed">
762 744
       </assertionResult>
763 745
       <assertionResult id="BP2116" result="passed">
764 746
       </assertionResult>
765 747
     </entry>
766  
-    <entry type="message" referenceID="{rpclib.test.interop.server}send_out_complex_headerResponse">
  748
+    <entry type="message" referenceID="{rpclib.test.interop.server}echo_datetime">
767 749
       <assertionResult id="BP2115" result="passed">
768 750
       </assertionResult>
769 751
       <assertionResult id="BP2116" result="passed">
770 752
       </assertionResult>
771 753
     </entry>
772  
-    <entry type="message" referenceID="{rpclib.test.interop.server}do_something_else">
  754
+    <entry type="message" referenceID="{rpclib.test.interop.server}echo_float_arrayResponse">
773 755
       <assertionResult id="BP2115" result="passed">
774 756
       </assertionResult>
775 757
       <assertionResult id="BP2116" result="passed">
776 758
       </assertionResult>
777 759
     </entry>
778  
-    <entry type="message" referenceID="{rpclib.test.interop.server}echo_double">
  760
+    <entry type="message" referenceID="{rpclib.test.interop.server}echo_any">
779 761
       <assertionResult id="BP2115" result="passed">
780 762
       </assertionResult>
781 763
       <assertionResult id="BP2116" result="passed">
782 764
       </assertionResult>
783 765
     </entry>
784  
-    <entry type="message" referenceID="{rpclib.test.interop.server}echo_attachment_array">
  766
+    <entry type="message" referenceID="{rpclib.test.interop.server}echo_in_complex_header">
785 767
       <assertionResult id="BP2115" result="passed">
786 768
       </assertionResult>
787 769
       <assertionResult id="BP2116" result="passed">
788 770
       </assertionResult>
789 771
     </entry>
790  
-    <entry type="message" referenceID="{rpclib.test.interop.server}documented_exception">
  772
+    <entry type="message" referenceID="{rpclib.test.interop.server}echo_enum">
791 773
       <assertionResult id="BP2115" result="passed">
792 774
       </assertionResult>
793 775
       <assertionResult id="BP2116" result="passed">
794 776
       </assertionResult>
795 777
     </entry>
796  
-    <entry type="message" referenceID="{rpclib.test.interop.server}echo_attachment_arrayResponse">
  778
+    <entry type="message" referenceID="{rpclib.test.interop.server}echo_string">
797 779
       <assertionResult id="BP2115" result="passed">
798 780
       </assertionResult>
799 781
       <assertionResult id="BP2116" result="passed">
800 782
       </assertionResult>
801 783
     </entry>
802  
-    <entry type="message" referenceID="{rpclib.test.interop.server}echo_any">
  784
+    <entry type="message" referenceID="{rpclib.test.interop.server}echo_simple_class">
803 785
       <assertionResult id="BP2115" result="passed">
804 786
       </assertionResult>
805 787
       <assertionResult id="BP2116" result="passed">
806 788
       </assertionResult>
807 789
     </entry>
808  
-    <entry type="message" referenceID="{rpclib.test.interop.server}echo_any_as_dictResponse">
  790
+    <entry type="message" referenceID="{rpclib.test.interop.server}echo_simple_classResponse">
809 791
       <assertionResult id="BP2115" result="passed">
810 792
       </assertionResult>
811 793
       <assertionResult id="BP2116" result="passed">
812 794
       </assertionResult>
813 795
     </entry>
814  
-    <entry type="message" referenceID="{rpclib.test.interop.server}return_binary_data">
  796
+    <entry type="message" referenceID="{rpclib.test.interop.server}echo_duration">
815 797
       <assertionResult id="BP2115" result="passed">
816 798
       </assertionResult>
817 799
       <assertionResult id="BP2116" result="passed">
818 800
       </assertionResult>
819 801
     </entry>
820  
-    <entry type="message" referenceID="{rpclib.test.interop.server}soap_exception">
  802
+    <entry type="message" referenceID="{rpclib.test.interop.server}echo_simple_boolean_arrayResponse">
821 803
       <assertionResult id="BP2115" result="passed">
822 804
       </assertionResult>
823 805
       <assertionResult id="BP2116" result="passed">
824 806
       </assertionResult>
825 807
     </entry>
826  
-    <entry type="message" referenceID="{rpclib.test.interop.server}return_only">
  808
+    <entry type="message" referenceID="{rpclib.test.interop.server}test_empty">
827 809
       <assertionResult id="BP2115" result="passed">
828 810
       </assertionResult>
829 811
       <assertionResult id="BP2116" result="passed">
830 812
       </assertionResult>
831 813
     </entry>
832  
-    <entry type="message" referenceID="{rpclib.test.interop.server}echo_double_array">
  814
+    <entry type="message" referenceID="{rpclib.test.interop.server}return_invalid_data">
833 815
       <assertionResult id="BP2115" result="passed">
834 816
       </assertionResult>
835 817
       <assertionResult id="BP2116" result="passed">
836 818
       </assertionResult>
837 819
     </entry>
838  
-    <entry type="message" referenceID="{rpclib.test.interop.server}echo_extension_classResponse">
  820
+    <entry type="message" referenceID="{rpclib.test.interop.server}echo_simple_class_arrayResponse">
839 821
       <assertionResult id="BP2115" result="passed">
840 822
       </assertionResult>
841 823
       <assertionResult id="BP2116" result="passed">
842 824
       </assertionResult>
843 825
     </entry>
844  
-    <entry type="message" referenceID="{rpclib.test.interop.server}do_something_elseResponse">
  826
+    <entry type="message" referenceID="{rpclib.test.interop.server}echo_attachment_array">
845 827
       <assertionResult id="BP2115" result="passed">
846 828
       </assertionResult>
847 829
       <assertionResult id="BP2116" result="passed">
848 830
       </assertionResult>
849 831
     </entry>
850  
-    <entry type="message" referenceID="{rpclib.test.interop.server}huge_number">
  832
+    <entry type="message" referenceID="{rpclib.test.interop.server}echo_in_complex_headerResponse">
851 833
       <assertionResult id="BP2115" result="passed">
852 834
       </assertionResult>
853 835
       <assertionResult id="BP2116" result="passed">
854 836
       </assertionResult>
855 837
     </entry>
856  
-    <entry type="message" referenceID="{rpclib.test.interop.server}echo_float_arrayResponse">
  838
+    <entry type="message" referenceID="{rpclib.test.interop.server}send_out_header">
857 839
       <assertionResult id="BP2115" result="passed">
858 840
       </assertionResult>
859 841
       <assertionResult id="BP2116" result="passed">
860 842
       </assertionResult>
861 843
     </entry>
862  
-    <entry type="message" referenceID="{rpclib.test.interop.server}test_empty">
  844
+    <entry type="message" referenceID="{rpclib.test.interop.server}echo_attachmentResponse">
863 845
       <assertionResult id="BP2115" result="passed">
864 846
       </assertionResult>
865 847
       <assertionResult id="BP2116" result="passed">
866 848
       </assertionResult>
867 849
     </entry>
868  
-    <entry type="message" referenceID="{rpclib.test.interop.server}getCustomMessagesMsgOut">
  850
+    <entry type="message" referenceID="{rpclib.test.interop.server}echo_in_headerResponse">
869 851
       <assertionResult id="BP2115" result="passed">
870 852
       </assertionResult>
871 853
       <assertionResult id="BP2116" result="passed">
872 854
       </assertionResult>
873 855
     </entry>
874  
-    <entry type="message" referenceID="{rpclib.test.interop.server}long_string">
  856
+    <entry type="message" referenceID="{rpclib.test.interop.server}custom_messages">
875 857
       <assertionResult id="BP2115" result="passed">
876 858
       </assertionResult>
877 859
       <assertionResult id="BP2116" result="passed">
878 860
       </assertionResult>
879 861
     </entry>
880  
-    <entry type="message" referenceID="{rpclib.test.interop.server}echo_in_header">
  862
+    <entry type="message" referenceID="{rpclib.test.interop.server}python_exception">
881 863
       <assertionResult id="BP2115" result="passed">
882 864
       </assertionResult>
883 865
       <assertionResult id="BP2116" result="passed">
884 866
       </assertionResult>
885 867
     </entry>
886  
-    <entry type="message" referenceID="{rpclib.test.interop.server}echo_any_as_dict">
  868
+    <entry type="message" referenceID="{rpclib.test.interop.server}echo_simple_boolean_array">
887 869
       <assertionResult id="BP2115" result="passed">
888 870
       </assertionResult>
889 871
       <assertionResult id="BP2116" result="passed">
890 872
       </assertionResult>
891 873
     </entry>
892  
-    <entry type="message" referenceID="{rpclib.test.interop.server}echo_in_headerResponse">
  874