< prev index next >

src/java.xml.ws/share/classes/com/sun/xml/internal/ws/api/server/Container.java

Print this page




  33 import com.sun.istack.internal.NotNull;
  34 import com.sun.xml.internal.ws.api.Component;
  35 import com.sun.xml.internal.ws.api.ComponentEx;
  36 import com.sun.xml.internal.ws.api.ComponentRegistry;
  37 
  38 /**
  39  * Root of the SPI implemented by the container
  40  * (such as application server.)
  41  *
  42  * <p>
  43  * Often technologies that are built on top of JAX-WS
  44  * (such as Tango) needs to negotiate private contracts between
  45  * them and the container. This interface allows such technologies
  46  * to query the negotiated SPI by using the {@link #getSPI(Class)}.
  47  *
  48  * <p>
  49  * For example, if a security pipe needs to get some information
  50  * from a container, they can do the following:
  51  * <ol>
  52  *  <li>Negotiate an interface with the container and define it.
  53  *      (let's call it <tt>ContainerSecuritySPI</tt>.)
  54  *  <li>The container will implement <tt>ContainerSecuritySPI</tt>.
  55  *  <li>At the runtime, a security pipe gets
  56  *      {@link WSEndpoint} and then to {@link Container}.
  57  *  <li>It calls <tt>container.getSPI(ContainerSecuritySPI.class)</tt>
  58  *  <li>The container returns an instance of <tt>ContainerSecuritySPI</tt>.
  59  *  <li>The security pipe talks to the container through this SPI.
  60  * </ol>
  61  *
  62  * <p>
  63  * This protects JAX-WS from worrying about the details of such contracts,
  64  * while still providing the necessary service of hooking up those parties.
  65  *
  66  * <p>
  67  * Technologies that run inside JAX-WS server runtime can access this object through
  68  * {@link WSEndpoint#getContainer()}. In the client runtime, it can be accessed from
  69  * {@link ContainerResolver#getContainer()}
  70  *
  71  * @author Kohsuke Kawaguchi
  72  * @see WSEndpoint
  73  */
  74 public abstract class Container implements ComponentRegistry, ComponentEx {
  75         private final Set<Component> components = new CopyOnWriteArraySet<Component>();
  76 
  77     /**
  78      * For derived classes.




  33 import com.sun.istack.internal.NotNull;
  34 import com.sun.xml.internal.ws.api.Component;
  35 import com.sun.xml.internal.ws.api.ComponentEx;
  36 import com.sun.xml.internal.ws.api.ComponentRegistry;
  37 
  38 /**
  39  * Root of the SPI implemented by the container
  40  * (such as application server.)
  41  *
  42  * <p>
  43  * Often technologies that are built on top of JAX-WS
  44  * (such as Tango) needs to negotiate private contracts between
  45  * them and the container. This interface allows such technologies
  46  * to query the negotiated SPI by using the {@link #getSPI(Class)}.
  47  *
  48  * <p>
  49  * For example, if a security pipe needs to get some information
  50  * from a container, they can do the following:
  51  * <ol>
  52  *  <li>Negotiate an interface with the container and define it.
  53  *      (let's call it {@code ContainerSecuritySPI}.)
  54  *  <li>The container will implement {@code ContainerSecuritySPI}.
  55  *  <li>At the runtime, a security pipe gets
  56  *      {@link WSEndpoint} and then to {@link Container}.
  57  *  <li>It calls {@code container.getSPI(ContainerSecuritySPI.class)}
  58  *  <li>The container returns an instance of {@code ContainerSecuritySPI}.
  59  *  <li>The security pipe talks to the container through this SPI.
  60  * </ol>
  61  *
  62  * <p>
  63  * This protects JAX-WS from worrying about the details of such contracts,
  64  * while still providing the necessary service of hooking up those parties.
  65  *
  66  * <p>
  67  * Technologies that run inside JAX-WS server runtime can access this object through
  68  * {@link WSEndpoint#getContainer()}. In the client runtime, it can be accessed from
  69  * {@link ContainerResolver#getContainer()}
  70  *
  71  * @author Kohsuke Kawaguchi
  72  * @see WSEndpoint
  73  */
  74 public abstract class Container implements ComponentRegistry, ComponentEx {
  75         private final Set<Component> components = new CopyOnWriteArraySet<Component>();
  76 
  77     /**
  78      * For derived classes.


< prev index next >