Class ServerTubeAssemblerContext

java.lang.Object
com.sun.xml.ws.api.pipe.ServerTubeAssemblerContext
Direct Known Subclasses:
ServerPipeAssemblerContext

public class ServerTubeAssemblerContext extends Object
Factory for well-known server Tube implementations that the TubelineAssembler needs to use to satisfy JAX-WS requirements.
Author:
Jitendra Kotamraju
  • Constructor Details

    • ServerTubeAssemblerContext

      public ServerTubeAssemblerContext(@Nullable SEIModel seiModel, @Nullable WSDLPort wsdlModel, @NotNull WSEndpoint endpoint, @NotNull Tube terminal, boolean isSynchronous)
  • Method Details

    • getSEIModel

      @Nullable public SEIModel getSEIModel()
      The created pipeline will use seiModel to get java concepts for the endpoint
      Returns:
      Null if the service doesn't have SEI model e.g. Provider endpoints, and otherwise non-null.
    • getWsdlModel

      @Nullable public WSDLPort getWsdlModel()
      The created pipeline will be used to serve this port.
      Returns:
      Null if the service isn't associated with any port definition in WSDL, and otherwise non-null.
    • getEndpoint

      @NotNull public WSEndpoint<?> getEndpoint()
      The created pipeline is used to serve this WSEndpoint. Specifically, its WSBinding should be of interest to many Pipes.
      Returns:
      Always non-null.
    • getTerminalTube

      @NotNull public Tube getTerminalTube()
      The last Pipe in the pipeline. The assembler is expected to put additional Pipes in front of it.

      (Just to give you the idea how this is used, normally the terminal pipe is the one that invokes the user application or Provider.)

      Returns:
      always non-null terminal pipe
    • isSynchronous

      public boolean isSynchronous()
      If this server pipeline is known to be used for serving synchronous transport, then this method returns true. This can be potentially use as an optimization hint, since often synchronous versions are cheaper to execute than asycnhronous versions.
    • createServerMUTube

      @NotNull public Tube createServerMUTube(@NotNull Tube next)
      Creates a Tube that performs SOAP mustUnderstand processing. This pipe should be before HandlerPipes.
    • createHandlerTube

      @NotNull public Tube createHandlerTube(@NotNull Tube next)
      Creates a Tube that invokes protocol and logical handlers.
    • createMonitoringTube

      @NotNull public Tube createMonitoringTube(@NotNull Tube next)
      Creates a Tube that does the monitoring of the invocation for a container
    • createSecurityTube

      @NotNull public Tube createSecurityTube(@NotNull Tube next)
      Creates a Tube that adds container specific security
    • createDumpTube

      public Tube createDumpTube(String name, PrintStream out, Tube next)
      creates a Tube that dumps messages that pass through.
    • createValidationTube

      public Tube createValidationTube(Tube next)
      creates a Tube that validates messages against schema
    • createWsaTube

      public Tube createWsaTube(Tube next)
      Creates WS-Addressing pipe
    • getCodec

      @NotNull public Codec getCodec()
      Gets the Codec that is set by setCodec(com.sun.xml.ws.api.pipe.Codec) or the default codec based on the binding. The codec is a full codec that is responsible for encoding/decoding entire protocol message(for e.g: it is responsible to encode/decode entire MIME messages in SOAP binding)
      Returns:
      codec to be used for web service requests
      See Also:
    • setCodec

      public void setCodec(@NotNull Codec codec)
      Interception point to change Codec during Tubeline assembly. The new codec will be used by jax-ws server runtime for encoding/decoding web service request/response messages. WSEndpoint.createCodec() will return a copy of this new codec and will be used in the server runtime.

      The codec is a full codec that is responsible for encoding/decoding entire protocol message(for e.g: it is responsible to encode/decode entire MIME messages in SOAP binding)

      the codec should correctly implement Codec.copy() since it is used while serving requests concurrently.

      Parameters:
      codec - codec to be used for web service requests
      See Also: