Axis2
  1. Axis2
  2. AXIS2-3223

Plug JAX-WS / MDQ deployment into Axis2 deployment model

    Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.4
    • Fix Version/s: 1.4
    • Component/s: jaxws
    • Labels:
      None

      Description

      Currently the metadata processing for JAXWS (i.e. the creation of the metadata description hierachy based on annotations and WSDL) is not integrated into the Axis2 deployment model. The JAXWS unit tests are using a deprecated factory method which builds the desription hierarchy when an inbound request for a service is received. The deprecated method DescriptionFactory.createServiceDescriptionFromServiceImpl(implClass, axisSvc) is called from EndpointController.getEndpointDescription. This deprecated method causes obsolete code paths to be executed and does not go down code paths that are used for actual server integration.

      Actual server integration (for example in Geronimo) plugs the JAXWS metadata processing into the server's deployment logic. This is done by creating DescriptionBuilderComposite objects and using those DBCs to create the JAXWS/Metadata description hierarchy. The processes of creating the JAXWS descrition hierachy also creates the Axis2 description hierachy (e.g. AxisService and such) based on annotations (and/or WSDL).

      I think the following needs to be done:
      1. Add a plug point in the Axis2 deployment logic that allows plugging in to the deployment logic, or perhaps overridding it completely
      2. In the JAXWS integration-level tests (which require a running server), the plugpoint or override would create the JAXWS and associated Axis2 description hierachy during application deployment.
      3. The logic in EndpointController.getEndpointDescription should change to consider not finding the JAXWS description hierachy an error and reject the inbound request. The deprecated method DescriptionFactory.createServiceDescriptionFromServiceImpl(implClass, axisSvc) should be removed.
      4. Note that there is a convenience method DescriptionFactory.createServiceDescription(Class) that will take an implementation class and create the DBCs using relfection which may be helpful.

        Issue Links

          Activity

          Hide
          Davanum Srinivas added a comment -

          Closing this issue since we have added the JAXWS Deployer now..

          thanks,
          dims

          Show
          Davanum Srinivas added a comment - Closing this issue since we have added the JAXWS Deployer now.. thanks, dims
          Hide
          Brian DePradine added a comment -

          Item 3 from the list hasn't ben done yet, so I am reopening so that we don't forget it.

          Show
          Brian DePradine added a comment - Item 3 from the list hasn't ben done yet, so I am reopening so that we don't forget it.
          Hide
          Roy A. Wood Jr. added a comment -

          Thanks for pointing this out Brian. I'll take care of this.

          Show
          Roy A. Wood Jr. added a comment - Thanks for pointing this out Brian. I'll take care of this.
          Hide
          Roy A. Wood Jr. added a comment -

          Item 3 is now complete....re-closing

          Show
          Roy A. Wood Jr. added a comment - Item 3 is now complete....re-closing
          Hide
          Roy A. Wood Jr. added a comment -

          re-closing after completing item 3

          Show
          Roy A. Wood Jr. added a comment - re-closing after completing item 3

            People

            • Assignee:
              Roy A. Wood Jr.
              Reporter:
              Jeff Barrett
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development