                           TO DO LIST FOR AXIS
                           -------------------

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.  Example:

                 * <Glen> Write TO DO list

When you've completed a given item, please update the "changelog.html"
file if appropriate.


! <team> Update the TO DO list to be current!


1.1 MUST-DO
-----------

MESSAGE PARSING / ENCODING
--------------------------
! <> Support literalxml encodingStyle

CLIENT API
----------

SCHEMA SUPPORT
--------------
! <> Support qualified/unqualified flags for attributes
      (this also relates to WSDL2Java and type metadata)
! <> Support <xsd:choice>
! <> Support minOccurs/maxOccurs on <xsd:sequence> elements
! <> Support <xsd:list>
! <Chris> Support <xsd:PositiveInteger> <xsd:NegativeInteger> <xsd:NonPositiveInteger> <xsd:NonNegativeInteger>
! <> Support <xsd:language> <xsd:ID>: <xsd:IDREF> <xsd:IDREFS> <xsd:ENTITY> <xsd:ENTITIES> <xsd:NOTATION>
! <> Support <xsd:restriction> facets correctly (do validation!)

SOAP 1.2 SUPPORT
----------------
! <> Implement correct set of fault codes (4.4.5)
! <> Implement MustUnderstand-checks first (2.6)
! <> Implement NEXT and NONE actors (2.2)
! <> Implement new encoding model for arrays (Adjuncts 4.4.2)

PERFORMANCE
-----------
! <> Switch on streaming - only record SAX events where necessary

DOCUMENTATION
-------------
* <Glyn/Glen> Architecture doc
! <> Install doc. to mention placing Axis's javax... classes in Tomcat's classpath (e.g. in setclasspath.sh) as Tomcat won't load these classes from WEB-INF

SOAP SPEC COMPLIANCE
--------------------
! <> Implement MU-checks on client(response) side - for SOAP 1.1+
! <> Add support to allow an Axis node to be an intermediary - SOAP 1.1+

SAMPLES
-------
! <> Clean up addr sample, including writing a how-to guide

WSDL2Java
---------
! <Russell> When wrapped mode is used along with parameterOrder, WSDL2Java complains, wrongly, that the part listed in parameterOrder doesn't exist.  The problem is that, once we recognize wrapped mode, the parameters are now from the complexType, not from the message.
! <Russell> If the lowest level that a WSDL contains is the portType, no SEI is generated even though it should be.  This is because we go into the binding to generate the SEI.
* <> (ongoing) JAX-RPC compliance.  In particular:
! <> Object[] doesn't work.  If we have method(Object[] array) and we pass in an Object[], we get NullPointerExceptions.  If, however, we pass in a String[] or a Phone[] then it works.  Object[] becomes xsd:anyType[].  Since anyType doesn't work, I don't expect anyType[] to work.
! <> do we want xsd:anyType to work?
* <Russell> (ongoing) Need to pull everything writer-specific out of the framework(Emitter/SymbolTable/etc).  Signatures are still in there.  So are Wsdl2java options that only the writers care about.

* <Russell> Attachment support.

! <> Automatically creating a package name from a namespace is very limited at the moment.

! <Tom> Literal soap:body support.  There is a large list of issues and things to do:
  - Need a test case, preferably one against a .NET web service.
  - The message type files are still emitted and they should not be.
  - We do not even try to emit faults differently if they have literal use
  - The operation parameter generation needs to be moved out of
    populatePortTypes in the symbol table and moved to JavaWriter (RJB - I
    don't know whether I agree with this, but it's a problem where it is).
  - If we discover a portType has multiple bindings, we abort.
    Since interfaces are generated from portTypes, and the literal/encoded
    switch is in the binding, we must have the binding todecide what the
    interface will look like.
  - We do not emit SOAPElement arguments per JAX-RPC yet.

X <Rich> If a reference to a type is encountered before the definition, a RefdType is created and added to the symbol table.  Once the type is defined, this RefdType is replaced by a real type.  Other objects may have referred to the RefdType.  Their references also need to be replaced.  This doesn't affect any of our existing tests.  (We do have tests for this.)

* <Russell/Tom> Grow Filegen test.  We now generate code only if it's needed, but this feature isn't well tested yet.

* <Rich/Tom?> Need to handle collections of objects (max occurs > 1).  Rich did the work for encoding.  Does something still need to be done for literal?

X <Rich> Support for anonymous complexTypes and simpleTypes for elements and attributes.

Java2WSDL
---------
! <Russell> attachment support to mirror what went into WSDL2Java.
! <> When generating from a skeleton, ignore the skeleton meta-data methods.
! <Russell?/Rich?> Java2WSDL "void op(boolean b1, Boolean b2)" maps to
   <wsdl:message name="op1Request">
      <wsdl:part name="in0" type="xsd:boolean"/>
      <wsdl:part name="in1" type="xsd:boolean"/>
   </wsdl:message>
  It SHOULD map to
   <wsdl:message name="op1Request">
      <wsdl:part name="in0" type="xsd:boolean"/>
      <wsdl:part name="in1" type="SOAP-ENC:boolean"/>
   </wsdl:message>
  Note that this also affects the runtime (particularly serialization).

! <> Support generating schema for custom serializers

! <> Support generation of deploy.wsdd from Java2WSDL

! <> Support wildcards in stop object classes (i.e. "javax.*")

GENERAL / UNCATEGORIZED
-----------------------
! <> Reorganize resource.properties into packages [code is now there
     to support this, in org.apache.axis.i18n.*]
! <> Before each release, make sure there aren't any English-language 
     strings in the code.  Folks aren't very good about putting these
     strings into resource.properties!
! <Glen> Handle static methods without needing to create object instances
! <> Make Version accept org.apache.axis.utils.Options-style args
! <> If soapenc types are used in our WSDL, we must add an import statement
     for that type:
       <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
     We must also check for this import statement in WSDL2Java.
! <Rich> Serialize/Deserialize fault contents

FUTURE ENHANCEMENTS (not necessary for current release)
-------------------------------------------------------
! <> Some kind of support for deployment / metadata in source file (xdoclet?)
! <> Better support for SOAP Headers (ser/deser, wsdl2java, java2wsdl)

