﻿<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.2//EN" "./dtd/document-v12.dtd">
<document>
  <header>
    <title>WebServices - Axis</title>
  </header>
  <body>

<a name="Requirements"/>
<section>
<title>Requirements</title>

<p>There is a <a href="#Non-requirementsWontBeSupported">non-requirements</a> section below.<br/>
<a href="#ReleasesAndTestCycles">Release cycles</a> are explained below.</p>

<table border="3" cellspacing="0" cellpadding="3" width="700">
<tbody>
<tr>
  <th>No.</th>
  <th>Description [Priority]</th>
  <th></th>
  <td><b>status</b> - worker(s)</td>
  <th>a1</th>
  <th>a2</th>
  <th>beta/<br/>3.0</th>
  <th>later</th>
</tr>
<tr>
  <th></th>
  <th colspan="7">XML Protocol compliance</th>
</tr>
<tr>
  <td>10</td>
  <td>We will diligently track the XP protocol as it evolves, and support it when it's ready.</td>
  <td></td>
  <td>n/a</td>
  <td></td>
  <td></td>
  <td>?</td>
  <td>?</td>
</tr>
<tr>
  <th></th>
  <th colspan="7">Error and fault handling</th>
</tr>
<tr>
  <td>20</td>
  <td>Specify an extensible Java Exception mapping into SOAP faults</td>
  <td></td>
  <td>?</td>
  <td></td>
  <td>X</td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>21</td>
  <td>Specify an extensible SOAP fault mapping into Java exceptions</td>
  <td></td>
  <td>?</td>
  <td></td>
  <td>X</td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <th></th>
  <th colspan="7">Service and Operation Identification</th>
</tr>
<tr>
  <td>30</td>
  <td>Dispatch by transport URL</td>
  <td></td>
  <td>done</td>
  <td></td>
  <td>X</td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>31</td>
  <td>Dispatch by SOAPAction</td>
  <td></td>
  <td>done</td>
  <td></td>
  <td>X</td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>32</td>
  <td>Dispatch by QName of the first body entry</td>
  <td></td>
  <td>done</td>
  <td></td>
  <td></td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>33</td>
  <td>Dispatch by a custom handler <i>(to use any information available)</i></td>
  <td></td>
  <td>done (can do it already)</td>
  <td></td>
  <td>X</td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <th></th>
  <th colspan="7">Message exchange patterns supported at the client API level</th>
</tr>
<tr>
  <td></td>
  <td colspan="7"><i>Motivation: we believe the following message exchange patterns are in common use and important to implement (e.g. WSDL uses them)</i></td>
</tr>
<tr>
  <td>40</td>
  <td>Synchronous request/response</td>
  <td></td>
  <td>done</td>
  <td>X</td>
  <td>X</td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>41</td>
  <td>One-way messaging</td>
  <td></td>
  <td><b>NYI</b> - ?</td>
  <td>X</td>
  <td>X</td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>42</td>
  <td>[??] Asynchronous request/response (non-blocking) <i>(the question marks mean we don't know whether to provide this)</i></td>
  <td></td>
  <td><b>NYI -</b> ?</td>
  <td></td>
  <td></td>
  <td></td>
  <td></td>
</tr>
<tr>
  <th></th>
  <th colspan="7">SOAP 1.1 compliance</th>
</tr>
<tr>
  <td>50</td>
  <td>All aspects of SOAP 1.1 supported by Apache SOAP 2.x</td>
  <td></td>
  <td>what is missing?<br/>(actor, full sec-5)</td>
  <td></td>
  <td></td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>51</td>
  <td>Support intermediaries</td>
  <td></td>
  <td><b>NYI</b> - RobJ</td>
  <td></td>
  <td></td>
  <td>?</td>
  <td>?</td>
</tr>
<tr>
  <td>52</td>
  <td>Transparency should be provided when we place intermediaries (hosts) between requestor and provider (creating a proxy server)</td>
  <td></td>
  <td><b>NYI</b> - RobJ</td>
  <td></td>
  <td></td>
  <td>?</td>
  <td>?</td>
</tr>
<tr>
  <td>53</td>
  <td>Support the SOAP concept of mustUnderstand headers</td>
  <td></td>
  <td>done</td>
  <td></td>
  <td>X</td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>54</td>
  <td>Support the SOAP actor header attributes</td>
  <td></td>
  <td><b>NYI - Glen</b></td>
  <td></td>
  <td>X</td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <th></th>
  <th colspan="7">Performance</th>
</tr>
<tr>
  <td>60</td>
  <td>The architecture must not require the whole message to be in memory at the same time</td>
  <td></td>
  <td>not for 1.0 - no incremental 1.0 parse; architecture still allows this, later</td>
  <td>X</td>
  <td>X</td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>61</td>
  <td>Scalable</td>
  <td></td>
  <td>? - Sam</td>
  <td></td>
  <td></td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>62</td>
  <td>Faster than Apache SOAP 2.x</td>
  <td></td>
  <td>done!</td>
  <td></td>
  <td></td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>63</td>
  <td>Must not be significantly slower than comparable alternative implementations</td>
  <td></td>
  <td>done?</td>
  <td></td>
  <td></td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <th></th>
  <th colspan="7">Administration and monitoring</th>
</tr>
<tr>
  <td>70</td>
  <td>Logging API</td>
  <td></td>
  <td><b>NYI (all)</b></td>
  <td>X</td>
  <td>X</td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>71</td>
  <td>Metrics API</td>
  <td></td>
  <td><b>NYI</b> - ?</td>
  <td></td>
  <td></td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>72</td>
  <td>Management (JMX) API</td>
  <td></td>
  <td><b>n/a?</b></td>
  <td></td>
  <td></td>
  <td>?</td>
  <td>?</td>
</tr>
<tr>
  <td>73</td>
  <td>Run-time (un)deployment API</td>
  <td></td>
  <td><b>NYI</b> - ?</td>
  <td></td>
  <td></td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <th></th>
  <th colspan="7">Deployment</th>
</tr>
<tr>
  <td>80</td>
  <td>Installation and deployment of both the engine, components, and services should be simple</td>
  <td></td>
  <td>done! (what more?)</td>
  <td></td>
  <td></td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>81</td>
  <td>Support a WebServiceArchive format which associates the executable and the description files</td>
  <td></td>
  <td>NYI (does JWS count?) - ?</td>
  <td></td>
  <td></td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>82</td>
  <td>Support .asmx-like drop-in service deployment</td>
  <td></td>
  <td>done - this is JWS</td>
  <td></td>
  <td></td>
  <td>?</td>
  <td>?</td>
</tr>
<tr>
  <td>83</td>
  <td>A single SUPER TINY .jar file must be enough for a client to communicate via SOAP</td>
  <td></td>
  <td><b>NYI</b> - what is best way to build it?</td>
  <td>X</td>
  <td>X</td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>84</td>
  <td>Defaults packaged with both client and server must be sane, secure and ready to go</td>
  <td></td>
  <td><b>NYI</b> but getting there!</td>
  <td></td>
  <td></td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>85</td>
  <td>Intermediaries (hosts) should be easy to configure</td>
  <td></td>
  <td><b>NYI</b> - RobJ</td>
  <td></td>
  <td></td>
  <td>?</td>
  <td>?</td>
</tr>
<tr>
  <td>86</td>
  <td>WSDD implementation</td>
  <td></td>
  <td><b>NYI</b> - Carl W / Glen</td>
  <td></td>
  <td></td>
  <td>?</td>
  <td></td>
</tr>
<tr>
  <th></th>
  <th colspan="7">Providers</th>
</tr>
<tr>
  <td>90</td>
  <td>Pluggable provider API</td>
  <td></td>
  <td><b>done? (handler API)</b></td>
  <td>X</td>
  <td>X</td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>91</td>
  <td>Java provider</td>
  <td></td>
  <td>done?</td>
  <td>X</td>
  <td>X</td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>92</td>
  <td>BSF provider</td>
  <td></td>
  <td><b>NYI -</b>?</td>
  <td></td>
  <td></td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>93</td>
  <td>EJB provider</td>
  <td></td>
  <td><b>NYI -</b> ?</td>
  <td></td>
  <td></td>
  <td>?</td>
  <td>?</td>
</tr>
<tr>
  <td>94</td>
  <td>COM provider</td>
  <td></td>
  <td><b>NYI</b> - ?</td>
  <td></td>
  <td></td>
  <td>?</td>
  <td>?</td>
</tr>
<tr>
  <td>95new</td>
  <td>App server provider / connectivity layer <b>[High]</b></td>
  <td></td>
  <td><b>NYI</b> - Glen?</td>
  <td></td>
  <td></td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <th></th>
  <th colspan="7">Pluggable XML protocol support</th>
</tr>
<tr>
  <td>100</td>
  <td>SOAP 1.1</td>
  <td></td>
  <td>done</td>
  <td>X</td>
  <td>X</td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>101</td>
  <td>SOAP 1.2</td>
  <td></td>
  <td><b>Partial -</b> doesn't yet do envelope versioning or namespaces</td>
  <td></td>
  <td></td>
  <td>?</td>
  <td>?</td>
</tr>
<tr>
  <td>102</td>
  <td>Must not name general classes as SOAPWhateverDoer</td>
  <td></td>
  <td>done</td>
  <td>X</td>
  <td>X</td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>103</td>
  <td>Simultaneous support for multiple message protocols</td>
  <td></td>
  <td>NYI</td>
  <td></td>
  <td></td>
  <td></td>
  <td>X</td>
</tr>
<tr>
  <th></th>
  <th colspan="7">Message processing</th>
</tr>
<tr>
  <td>110</td>
  <td>Support a flexible and extensible system allowing message handlers (extensions, applications) to build up orthogonal pieces of a message</td>
  <td></td>
  <td>done</td>
  <td>X</td>
  <td>X</td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>111</td>
  <td>Handler invocation order is always deterministic for a given server configuration and message</td>
  <td></td>
  <td>done</td>
  <td>X</td>
  <td>X</td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>112</td>
  <td>Some information should be shared between all the handlers in the "chain" on one host - MessageContext</td>
  <td></td>
  <td>done</td>
  <td>X</td>
  <td>X</td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>112a</td>
  <td>Have the ability to specify application-specific parameters (like username or other thing) in the context</td>
  <td></td>
  <td>done</td>
  <td>X</td>
  <td>X</td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>112b</td>
  <td>Some encapsulation of the idea of a session that's transport-independent (cookies in the HTTPRequest/HTTPResponse for http)</td>
  <td></td>
  <td>done</td>
  <td></td>
  <td></td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>112b.1</td>
  <td>An example/sample for a SOAP session header/handler/supplier</td>
  <td></td>
  <td><b>NYI</b> - RobJ</td>
  <td></td>
  <td></td>
  <td>?</td>
  <td>?</td>
</tr>
<tr>
  <td>112b.2</td>
  <td>Client code needs to support this as well - need to pass session back across if necessary...</td>
  <td></td>
  <td><b>NYI</b> - RobJ</td>
  <td></td>
  <td></td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>113</td>
  <td>Handlers need to be allowed to reach raw message data</td>
  <td></td>
  <td>done</td>
  <td>X</td>
  <td>X</td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <th></th>
  <th colspan="7">Transport</th>
</tr>
<tr>
  <td>120</td>
  <td>Pluggable transport API</td>
  <td></td>
  <td>done - needs doc!</td>
  <td>X</td>
  <td>X</td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>121</td>
  <td>HTTP listener and sender</td>
  <td></td>
  <td>done</td>
  <td>X</td>
  <td>X</td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>122</td>
  <td>HTTPS listener and sender</td>
  <td></td>
  <td><b>NYI</b> - ?</td>
  <td></td>
  <td></td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>123</td>
  <td>SMTP sender</td>
  <td></td>
  <td><b>NYI</b> - ?</td>
  <td></td>
  <td></td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>124</td>
  <td>POP3 poller</td>
  <td></td>
  <td><b>NYI</b> - ?</td>
  <td></td>
  <td></td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>125</td>
  <td>JMS listener and sender</td>
  <td></td>
  <td><b>NYI</b> - ?</td>
  <td></td>
  <td></td>
  <td>?</td>
  <td>?</td>
</tr>
<tr>
  <td>126</td>
  <td>Support for "SOAP messages with attachments"<b>[High]</b></td>
  <td></td>
  <td><b>NYI</b> - Glen / RobJ</td>
  <td></td>
  <td>X</td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>127</td>
  <td>The transport can insert arbitrary transport-specific stuff into the Context</td>
  <td></td>
  <td>done</td>
  <td>X</td>
  <td>X</td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>128</td>
  <td>The transport-specific stuff should be encapsulated, most of the engine should work on a canonical form of the message</td>
  <td></td>
  <td>done</td>
  <td>X</td>
  <td>X</td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <th></th>
  <th colspan="7">Security</th>
</tr>
<tr>
  <td>130</td>
  <td>Support transport-level security <b>[High]</b></td>
  <td></td>
  <td><b>NY</b><b>I</b> - per-transport issue?</td>
  <td></td>
  <td></td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>130b</td>
  <td>Support SOAP-level security <b>[High]</b></td>
  <td></td>
  <td>what, specifically? - Yuhichi?</td>
  <td></td>
  <td></td>
  <td></td>
  <td></td>
</tr>
<tr>
  <td>131</td>
  <td>HTTP Basic auth</td>
  <td></td>
  <td>done?</td>
  <td></td>
  <td></td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>132</td>
  <td>Support for existing security SOAP-level standards</td>
  <td></td>
  <td>what, specifically?</td>
  <td></td>
  <td></td>
  <td>?</td>
  <td>?</td>
</tr>
<tr>
  <td>133</td>
  <td>An example/sample for a SOAP Basic Authentication header/handler</td>
  <td></td>
  <td>done?</td>
  <td></td>
  <td></td>
  <td>?</td>
  <td>?</td>
</tr>
<tr>
  <th></th>
  <th colspan="7">Service Description and Discovery (for instance, WSDL, DISCO)</th>
</tr>
<tr>
  <td>140</td>
  <td>Support the ability to query a service's description at runtime (e.g. GET ...?wsdl)</td>
  <td></td>
  <td><b>NYI</b> - Jim's contribution? or is this something simpler?</td>
  <td></td>
  <td>X</td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>140a</td>
  <td>If deployment params have altered the service description, the updated version must be returned</td>
  <td></td>
  <td><b>NYI</b>?</td>
  <td></td>
  <td></td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>141</td>
  <td>Support a basic html page describing the service (via an HTTP GET)</td>
  <td></td>
  <td><b>NYI</b> - James? Doug?</td>
  <td></td>
  <td>X</td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>142</td>
  <td>Support a pretty html page describing the service (via an HTTP GET)</td>
  <td></td>
  <td><b>NYI -</b> James? Doug?</td>
  <td></td>
  <td></td>
  <td></td>
  <td>X</td>
</tr>
<tr>
  <td>143</td>
  <td>Services can be deployed and used without service descriptions</td>
  <td></td>
  <td>done</td>
  <td>X</td>
  <td>X</td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>144</td>
  <td>Should abstract the SD layer, at least by keeping the interfaces clean <b>[High]</b></td>
  <td></td>
  <td>?</td>
  <td></td>
  <td></td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>144a</td>
  <td>The abstract SD layer must support run-time determination of xsi:types of parts of the message</td>
  <td></td>
  <td><b>NYI?</b> - Sam?</td>
  <td></td>
  <td>X</td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>144b</td>
  <td>Include a WSDL implementation of the SD layer <b>[High]</b></td>
  <td></td>
  <td><b>NYI</b> - Lance &amp; HP contribution?</td>
  <td></td>
  <td>X</td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>144c</td>
  <td>Extend WSDL with information on where to get components for stuff</td>
  <td></td>
  <td><b>NYI</b> - James?</td>
  <td></td>
  <td></td>
  <td></td>
  <td>X</td>
</tr>
<tr>
  <td>144d</td>
  <td>Tools and/or run-time support for proxy generation from WSDL and/or WSDD</td>
  <td></td>
  <td><b>NYI</b> - Lance &amp; HP?</td>
  <td></td>
  <td></td>
  <td></td>
  <td>X</td>
</tr>
<tr>
  <td>145</td>
  <td>HTTP GET on the Axis node returns an appropriate DISCO document</td>
  <td></td>
  <td><b>NYI</b> - ?</td>
  <td></td>
  <td></td>
  <td></td>
  <td>X</td>
</tr>
<tr>
  <th></th>
  <th colspan="7">Platforms</th>
</tr>
<tr>
  <td>150</td>
  <td>Java implementation</td>
  <td></td>
  <td>underway :-)</td>
  <td>X</td>
  <td>X</td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>151</td>
  <td>C++ implementation</td>
  <td></td>
  <td>n/a for 1.0</td>
  <td></td>
  <td></td>
  <td></td>
  <td>X</td>
</tr>
<tr>
  <td>151a</td>
  <td>C++ impl core should be cross platform with platform-specific extensions (like COM)</td>
  <td></td>
  <td>n/a for 1.0</td>
  <td></td>
  <td></td>
  <td></td>
  <td>X</td>
</tr>
<tr>
  <td>152</td>
  <td>All implementations should have as much in common as possible</td>
  <td></td>
  <td>n/a for 1.0</td>
  <td>X</td>
  <td>X</td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>153</td>
  <td>Use standard APIs wherever possible</td>
  <td></td>
  <td>done</td>
  <td>X</td>
  <td>X</td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <th></th>
  <th colspan="7">Data Encoding</th>
</tr>
<tr>
  <td>160</td>
  <td>Extensible support for encodings</td>
  <td></td>
  <td>NYI</td>
  <td></td>
  <td>X</td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>161</td>
  <td>Implement basic SOAP encoding (the level of current Apache SOAP 2.x)</td>
  <td></td>
  <td>done</td>
  <td>X</td>
  <td>X</td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>162</td>
  <td>Support for sparse and partially-transmitted arrays</td>
  <td></td>
  <td>NYI</td>
  <td></td>
  <td>X</td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>163</td>
  <td>Support for multidimensional arrays</td>
  <td></td>
  <td>NYI</td>
  <td></td>
  <td></td>
  <td></td>
  <td>X</td>
</tr>
<tr>
  <td>164</td>
  <td>Support literal XML encoding</td>
  <td></td>
  <td>NYI</td>
  <td></td>
  <td>X</td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>165</td>
  <td>It should be relatively easy to write a "Serializer"</td>
  <td></td>
  <td>done (depending on feedback from users)</td>
  <td></td>
  <td>X</td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>166</td>
  <td>Include some general (de)serializers (that handle multiple types), so that there needn't exist a (de)serializer for every type that could possibly travel over the wire (needs further discussion - isomorphism (roundtrip) issues)</td>
  <td></td>
  <td>Is this the beanserializer / basicDeserializer, or something else?</td>
  <td></td>
  <td></td>
  <td>?</td>
  <td>?</td>
</tr>
<tr>
  <td>167</td>
  <td>(De)serialization may occur at any time on demand</td>
  <td></td>
  <td>done</td>
  <td>X</td>
  <td>X</td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>168</td>
  <td>(De)serialization should be available to the application</td>
  <td></td>
  <td>done</td>
  <td></td>
  <td></td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <th></th>
  <th colspan="7">Release</th>
</tr>
<tr>
  <td></td>
  <td colspan="7"><i>Although these are a 1.0 requirements, significant progress must be made on these items during interim releases.</i></td>
</tr>
<tr>
  <td>170</td>
  <td>Product-level code</td>
  <td></td>
  <td>getting there....</td>
  <td></td>
  <td></td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>171</td>
  <td>Product-level docs <b>[High]</b></td>
  <td></td>
  <td><b>NYI</b> - ?</td>
  <td></td>
  <td></td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>172</td>
  <td>Product-level examples</td>
  <td></td>
  <td><b>NYI</b> but getting there - everyone</td>
  <td></td>
  <td></td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>173</td>
  <td>Product-level performance</td>
  <td></td>
  <td><b>NYI</b> - Sam?</td>
  <td></td>
  <td></td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>174</td>
  <td>Product-level testing</td>
  <td></td>
  <td>getting there, with functional &amp; unit tests</td>
  <td></td>
  <td></td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <th></th>
  <th colspan="7">Migration from Apache SOAP 2.x</th>
</tr>
<tr>
  <td>180</td>
  <td>Documentation</td>
  <td></td>
  <td><b>NYI -</b> ?</td>
  <td></td>
  <td>X</td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>181</td>
  <td>The legacy Call object</td>
  <td></td>
  <td><b>NYI</b> - ?</td>
  <td></td>
  <td></td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>182</td>
  <td>Serialization, custom serializers - maybe wrappers</td>
  <td></td>
  <td><b>NYI</b> - ?</td>
  <td></td>
  <td></td>
  <td>?</td>
  <td>?</td>
</tr>
<tr>
  <td>183</td>
  <td>Support for legacy messaging services</td>
  <td></td>
  <td><b>NYI</b> - which?<br/>
  </td>
  <td></td>
  <td></td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>184</td>
  <td>Support for legacy providers <b>[Medium]</b></td>
  <td></td>
  <td><b>NYI</b> - ?</td>
  <td></td>
  <td></td>
  <td></td>
  <td>X</td>
</tr>
<tr>
  <td>185new</td>
  <td>Support for legacy deployment</td>
  <td></td>
  <td><b>NYI</b> - James?</td>
  <td></td>
  <td></td>
  <td>X<br/>
  </td>
  <td></td>
</tr>
<tr>
  <th></th>
  <th colspan="7">Coding</th>
</tr>
<tr>
  <td>190</td>
  <td>Follow the <a href="http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html">Java Coding Style</a> with <b>no</b> tab characters.</td>
  <td></td>
  <td>done</td>
  <td>X</td>
  <td>X</td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>191</td>
  <td>Use javadoc style to document all non-private methods in commits.</td>
  <td></td>
  <td>could be more...</td>
  <td>X</td>
  <td>X</td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>192</td>
  <td>Document packages.</td>
  <td></td>
  <td>could be MUCH more...</td>
  <td></td>
  <td></td>
  <td>X</td>
  <td></td>
</tr>
<tr>
  <td>193</td>
  <td>Committing a new package, at least place in a placeholder for the package doc that says "this is to be done".</td>
  <td></td>
  <td><b>NYI</b> - everyone!!!</td>
  <td>X</td>
  <td>X</td>
  <td>X</td>
  <td></td>
</tr>
</tbody>
</table>

</section>

<a name="Non-requirementsWontBeSupported"/>
<section>
<title>Non-requirements (won't be supported)</title>

<p><i>We find the SOAP spec. to be unclear on these issues so we decided not to support them.</i></p>
<ol>
  <li>RPC calls in SOAP headers</li>
  <li>Multiple RPC calls in a single SOAP message</li>
</ol>

</section>

<a name="ReleasesAndTestCycles"/>
<section>
<title>Releases and test cycles</title>

<p>We're planning on releasing alpha1 (a1), alpha2 (a2), beta, and 3.0.<br/>
alpha is a preview.<br/>
subsequent alphas are to show the growing set of features and docs and test cases and all that.<br/>
Beta is functionally complete.</p>

</section>

  </body>
</document>
