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: * Write TO DO list BETA 3 MUST DO LIST ------------------- * Update all version messages to beta 3. Bugzillas for beta 3: must: must fix; nice: it would be nice to have; post: post beta 3; pend: pending more info, maybe beta 3. The left column is there to give us a quick picture: M is a must, _ is anything else, X means the bug is fixed. _ 7132 - nice - Glen _ 7407 - nice - Rich? _ 8419 - post X 8423 - pend - dims _ 8435 - post _ 8476 - must - Rich _ 8480 - pend - Glen _ 8481 - pend - Glen _ 8578 - post _ 8598 - nice - Rich M 8646 - must - ? _ 8680 - close, fixed? _ 9045 - pend - Glen X 9239 - must - dims _ 9393 - must - Rich M 9405 - must - Tom _ 9452 - post _ 9473 - post X 9642 - nice - Russell _ 9659 - pend - Glen _ 9665 - nice - Rich _ 9667 - dup of 9665 M 9717 - must - Tom X 9767 - must - Russell _ 9773 - post M 9780 - must - Rick _ 9815 - nice - ? _ 9818 - nice - Rich X 9826 - nice - Glen _ 9874 - nice - dims X 9875 - must - Rich _ 9881 - post _ 9882 - nice - Russell X 9952 - must - Glyn _ 9966 - nice - Tom (like 9717) _ 9967 - nice - Tom (like 9717 and 9966) X 9987 - must - Glyn X 9992 - must - dims _ 10003 - post MESSAGE PARSING / ENCODING -------------------------- ! <> Support literalxml encodingStyle CLIENT API ---------- SCHEMA SUPPORT -------------- X Support qualified/unqualified flags for elements (this also relates to WSDL2Java and type metadata) ! <> Support qualified/unqualified flags for attributes (this also relates to WSDL2Java and type metadata) JAX-RPC COMPATIBILITY --------------------- ! <> Implement Service.getCalls() method. (maybe) ! <> Implement generated Services' getCalls() method. ! <> Implement Service.getHandlerRegistry() method. ! <> Implement ServiceFactory.createService methods. ! <> Implement TypeMapping and TypeMappingRegistry ala JAX-RPC 0.8 ! <> Implement Handler code ala JAX-RPC 0.8 ! <> Once we get word that javax.xml.rpc.encoding.XMLType is a real class (it's in the JAX-RPC javadocs but not in the spec) then replace all the constants in org.apache.axis.encoding.XMLType with the JAX-RPC constants. ! <> Once we get word that javax.xml.rpc.namespace.NamespaceConstants is a real class (it's in the JAX-RPC javadocs but not in the spec) then use it. ! <> Implement javax.xml.rpc.server interfaces. ! <> Add some JAX-RPC compliance samples/tests. SAAJ COMPATIBILITY ------------------ ! <> Implement javax.xml.soap interfaces (in message subsystem). (Not forgetting: SOAPBody.addFault/getFault/hasFault) ! <> Obtain and pass a SAAJ TCK (Technology Compatibility Kit). 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 ------------- * 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 --------- * <> (ongoing) JAX-RPC compliance. In particular: ! <> Mapping of XML names. We do some, not all, of what JAX-RPC specifies. ! <> Faults - What do we handle now? What needs to be enhanced? JAX-RPC needs improving, first, we think. X Faults - Support v1.0 mapping X Derived type support. Including extending abstract complexTypes and extending simpleTypes. ! <> 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? X with the --all flag, ALL types should be registered in the Stub. * (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. ! <> Attachment support. X Name clash resolution has to grow up. ! <> Automatically creating a package name from a namespace is very limited at the moment. ! 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 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.) * Grow Filegen test. We now generate code only if it's needed, but this feature isn't well tested yet. ! <> Do we need a Wsdl2java Exception? * 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 Support for anonymous complexTypes and simpleTypes for elements and attributes. Java2WSDL --------- ! <> When generating from a skeleton, ignore the skeleton meta-data methods. ! Java2WSDL "void op(boolean b1, Boolean b2)" maps to It SHOULD map to 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.*") X Generate correct input/output elements for overloading. METHOD DISPATCH / SERVICE METADATA ---------------------------------- ! Use QName lookup when processing doc/lit style stuff with RPCProvider GENERAL / UNCATEGORIZED ----------------------- ! <> Reorganize axisNLS.properties into packages ! <> 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 axisNLS.properties! ! 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: We must also check for this import statement in WSDL2Java. ! Serialize/Deserialize fault contents FUTURE ENHANCEMENTS (not necessary for current release) ------------------------------------------------------- ! <> Some kind of support for deployment / metadata in source file (xdoclet?)