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 ! Research on XML pull C++ API any applying that to Axis C++ if possible. 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 ---------- ! Discussion and documentation on client side of Axis C++. SCHEMA SUPPORT -------------- SOAP 1.1 SUPPORT ---------------- SOAP 1.2 SUPPORT ----------------- * Change the SOAP header coding * Change the SOAP fault coding X 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(..)) X 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. ! going through the Axis C++ code and minimize the usage of STL as much as possible (specially std::string) X Improving the code in XMLStreamHandler.cpp to avoid XMLString::transcode DOCUMENTATION ------------- * writing Integration-guide ! writing user-guide ! writing handler API X improving developer-guide with Transport Module writing API ! updating developer-guide to reflect new Transport Module writing API ! Writing a documentation (5000 letters) on Axis C++ to be published in any news letter. ! Developing the web site for Axis C++. ! Writing coding standard document for Axis C++ project. 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++ --------- ! Coding C++ generation part of WSDL2WS tool being written in Java. Deployment ---------- X 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 ! Improving the WCG to remove the web service writing C++ restrictions one by one ! Writing a webservice and the client for the Administration of Axis. Similar to the AdminClient in Axis Java. ! Improving WSDD module so that dynamic deployment/undeployment can be done. 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. X Refactor AxisEngine to make it suitable for Server side & Client side seperatly X so that we can derive AxisServer & AxisClient from that and no duplication result in. X 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. X 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 X 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 X Transport session support (Ex: HTTP) Transport --------- ! Pluggable transport API for server & client, seperate interfaces between Transport & other stuff. ! Support for "SOAP messages with attachments" * Development of following transport modules and testing them 1. Apache 1.3 for linux 2. IIS 3. Apache 2.0 for windows and Linux * Development of globus XIO transport modules and testing 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) ---------------------------------------- X 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 ------------------- X 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. CODE IMPROVEMENTS ----------------- ! Applying coding standards to the existing code base C/C++ to Web Service Tool ------------------------- ! Improving the WCG to remove the web service writing C++ restrictions one by one