Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
Java-SCA-1.3
-
None
-
All
Description
WSDL generation is currently performed by the Axis2 binding provider constructors. It should be moved to the builder, except for code that needs information that is only available at runtime. (This is maybe 2% of the total code.) Moving the code to the builder has the following benefits:
1. The monitor is available in the builder, so errors and warnings can be reported without throwing fatal runtime exceptions, and runtime initialization can be prevented when the user input has errors.
2. At least 98% of this code is not provider-specific, so moving it to the builder allows it to be shared by different Web Service bindings if additional such bindings are added in the future.
There are some scenarios that require WSDL generation to be performed at runtime, so this code needs to be callable by the runtime in these cases. At present these cases are:
a. The binding-sca-axis2 providers create a Web Service binding model dynamically at runtime. This needs WSDL to be generated. Unlike WSDL generation for binding.ws, WSDL generation for binding.sca can't be done in the bulder because the model doesn't always know whether targets are local (not needing WSDL) or remote (needing WSDL). This could change in the future.
b. CallableReferenceImpl dynamically creates a component reference when deserializing a CallableReference. If this has a Web Service or SCA binding, it needs WSDL to be generated.