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 2 MUST DO LIST ------------------- * Clean up User's Guide X Clean up sample readme's X beta1-to-beta2 document X Grow the FAQ X <> Make sure the gump build works X Make sure the attachment sample works * Bugzilla 6872/7373 X 8395 (probably not but under investigation) MESSAGE PARSING / ENCODING -------------------------- ! <> Support literalxml encodingStyle CLIENT API ---------- SCHEMA SUPPORT -------------- ! <> Support qualified/unqualified flags for elements + 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. JAXM COMPATIBILITY ------------------ * Implement javax.xml.soap interfaces in message subsystem. (Not forgetting: SOAPBody.addFault/getFault/hasFault) 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 -------------------- 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. ! <> Derived type support. ! <> 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? ! <> 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. ! <> 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. ! 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. * 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? Java2WSDL --------- ! 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.*") 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. FUTURE ENHANCEMENTS (not necessary for current release) ------------------------------------------------------- ! <> Some kind of support for deployment / metadata in source file (xdoclet?)