TO DO LIST FOR AXIS C++ ----------------------- Please help to maintain this file, as accuracy is critical. Major topic areas are headed by section headings, and individual items are prefixed with "!" (needs doing) "*" (in progress) or "X" (done), followed by the owner (if any) in "<>" brackets. Also the priority order is postfixed with a number where 0-least priority. Example: *2 Write TO DO list //2 is the priority ! Update the TO DO list to be current! MESSAGE PARSING / ENCODING -------------------------- ! Improving the SoapDeserializer to parse SOAP headers ! Changing SAX2 parser to use progressive parsing and then adopt XMLpull parsing X Improving Deserializer/Serializer and related area to support multi-dimensional arrays * Improving Deserializer/Serializer and related area to support partially transmitted arrays CLIENT API ---------- SCHEMA SUPPORT -------------- SOAP 1.1 SUPPORT ---------------- SOAP 1.2 SUPPORT ----------------- * Change the SOAP header coding * Change the SOAP fault coding * Change the SOAP body coding PERFORMANCE ----------- X Improving Serializer code so that it avoids string operations(+= operator etc) Directly calling Transport's function (eg: ap_rputs(..)) * With the current method of writing a web service wrapper class every web service DLL (or .so) will have its own copy of Serializer/Deserializer code (statically bound). Result is that the web service DLL is too large with unnecessarily linked code (more memory). So we have to make Serializer/Deserializer code to a DLL and then every web service and the Axis engine uses the same DLL. DOCUMENTATION ------------- * writing Integration-guide ! writing user-guide ! writing handler API X improving developer-guide with Transport Module writing API SAMPLES ------- ! WSDL documents for sample web services * Writing 2 web services for SOAPBuilders interop tests 1. Round 2 base and 2. Round 2 Group B WSDL2C++ --------- AXISDEPLOY ---------- * WrapperClassGenerator 1. writing a set of classes that can store information that parser obtains by parsing the user web service's include files. 2. writing c++ parser that reads and parses the web service's include files GENERAL / UNCATEGORIZED ----------------------- ! Support for internationalization require you to handle user data with unicodes so replace std::string with std::wstring & char * with wchar_t* where user data is handled. ! Refactor AxisEngine to make it suitable for Server side & Client side seperatly so that we can derive AxisServer & AxisClient from that and no duplication result in. ! Clean seperation would be required between XML writing & reading so that we can easily plug in different XML parsing mechanisms. ! Better if we can introduce namespaces to avoid collisions between names when the server/client side is link with user code. Hence, better to focus it now rather than later. ! Avoid using any global variables to make the server thread safe. ! Pluggable provider APIs to support RPC/Document styles. X In the WSDDDocument.cpp for each and every XMLString::transcode() you have to use a corrosponding XMLString::release() to relase the allocated memeory X In the WSDDDocument.cpp write the code to handle the end element for wsdd_resflow * Improve AxisEngine to send back the WSDL upon http GET request. Ex. http://url/service?wsdl ! Support SOAP messages with attachments: defines a binding for a SOAP message to be carried within a MIME multipart/related message. ! Servlet support for server side which helps to deploy server in a servlet containers or in J2EE servers & ISAPI extension for server to deploy it in IIS. Session ------- ! SOAP session support ! A sample for a SOAP session handler Transport --------- ! Pluggable transport API for server & client, seperate interfaces between Transport & other stuff. ! Support for "SOAP messages with attachments" Security -------- ! Support transport-level security ! Support SOAP-level security ! Support for existing security SOAP-level standards ! A sample for a SOAP Basic Authentication handler Service Description and Discovery (WSDL) ---------------------------------------- ! Support a basic html page describing the service (via an HTTP GET) * Tools and/or run-time support for stub generation from WSDL FUTURE ENHANCEMENTS ------------------- ! Currently the keywords which are namespace specific are hard coded. We have to put these keywords in to a list/map and pickup them when ever needed from it. eg: a) enc http://www.w3.org/2003/05/soap-encoding ! The current code supports only int, float, string out of simple types. This code has to be improved to support other simplet types as well. float, double, .... etc * Implementing C++ types for xml types (datetime, date, time, HexBinary, Base64Binary etc) and improve Param class to support them.