Uploaded image for project: 'Tuscany'
  1. Tuscany
  2. TUSCANY-2446

WSDL generation should be in the builder, not the provider

    XMLWordPrintableJSON

Details

    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.

      Attachments

        Activity

          People

            scnash Simon Nash
            scnash Simon Nash
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: