Package org.glassfish.tyrus.server
Class TyrusServerContainer
- java.lang.Object
-
- org.glassfish.tyrus.core.ExecutorServiceProvider
-
- org.glassfish.tyrus.core.BaseContainer
-
- org.glassfish.tyrus.server.TyrusServerContainer
-
- All Implemented Interfaces:
jakarta.websocket.server.ServerContainer,jakarta.websocket.WebSocketContainer,org.glassfish.tyrus.spi.ServerContainer
public abstract class TyrusServerContainer extends org.glassfish.tyrus.core.BaseContainer implements org.glassfish.tyrus.spi.ServerContainerServer Container Implementation.- Author:
- Martin Matula, Pavel Bucek, Stepan Kopriva
-
-
Constructor Summary
Constructors Constructor Description TyrusServerContainer(jakarta.websocket.server.ServerApplicationConfig serverApplicationConfig)Create newTyrusServerContainerusing already createdServerApplicationConfiginstance.TyrusServerContainer(java.util.Set<java.lang.Class<?>> classes)Create newTyrusServerContainer.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidaddEndpoint(jakarta.websocket.server.ServerEndpointConfig serverEndpointConfig)voidaddEndpoint(java.lang.Class<?> endpointClass)java.util.concurrent.Future<jakarta.websocket.Session>asyncConnectToServer(jakarta.websocket.Endpoint endpointInstance, jakarta.websocket.ClientEndpointConfig cec, java.net.URI path)Non-blocking version ofWebSocketContainer.connectToServer(jakarta.websocket.Endpoint, jakarta.websocket.ClientEndpointConfig, java.net.URI).java.util.concurrent.Future<jakarta.websocket.Session>asyncConnectToServer(java.lang.Class<?> annotatedEndpointClass, java.net.URI path)Non-blocking version ofWebSocketContainer.connectToServer(Class, java.net.URI).java.util.concurrent.Future<jakarta.websocket.Session>asyncConnectToServer(java.lang.Class<? extends jakarta.websocket.Endpoint> endpointClass, jakarta.websocket.ClientEndpointConfig cec, java.net.URI path)Non-blocking version ofWebSocketContainer.connectToServer(Class, jakarta.websocket.ClientEndpointConfig, java.net.URI).java.util.concurrent.Future<jakarta.websocket.Session>asyncConnectToServer(java.lang.Object obj, java.net.URI path)Non-blocking version ofWebSocketContainer.connectToServer(Object, java.net.URI).jakarta.websocket.SessionconnectToServer(jakarta.websocket.Endpoint endpointInstance, jakarta.websocket.ClientEndpointConfig cec, java.net.URI path)jakarta.websocket.SessionconnectToServer(java.lang.Class<? extends jakarta.websocket.Endpoint> endpointClass, jakarta.websocket.ClientEndpointConfig cec, java.net.URI path)jakarta.websocket.SessionconnectToServer(java.lang.Class annotatedEndpointClass, java.net.URI path)jakarta.websocket.SessionconnectToServer(java.lang.Object annotatedEndpointInstance, java.net.URI path)voiddoneDeployment()Container is no longer required to acceptaddEndpoint(jakarta.websocket.server.ServerEndpointConfig)andaddEndpoint(Class)calls.protected org.glassfish.tyrus.client.ClientManagergetClientManager()Can be overridden to provide ownClientManagerimplementation or instance.longgetDefaultAsyncSendTimeout()intgetDefaultMaxBinaryMessageBufferSize()longgetDefaultMaxSessionIdleTimeout()intgetDefaultMaxTextMessageBufferSize()java.util.Set<jakarta.websocket.Extension>getInstalledExtensions()intgetPort()Get port of the started container.abstract voidregister(jakarta.websocket.server.ServerEndpointConfig serverEndpointConfig)abstract voidregister(java.lang.Class<?> endpointClass)voidsetAsyncSendTimeout(long timeoutmillis)voidsetDefaultMaxBinaryMessageBufferSize(int max)voidsetDefaultMaxSessionIdleTimeout(long defaultMaxSessionIdleTimeout)voidsetDefaultMaxTextMessageBufferSize(int max)voidstart(java.lang.String rootPath, int port)Start the container.voidstop()Undeploy all endpoints and stop underlyingServerContainer.voidupgradeHttpToWebSocket(java.lang.Object httpServletRequest, java.lang.Object httpServletResponse, jakarta.websocket.server.ServerEndpointConfig sec, java.util.Map<java.lang.String,java.lang.String> pathParameters)-
Methods inherited from class org.glassfish.tyrus.core.BaseContainer
getExecutorService, getScheduledExecutorService, shutdown, shutdown
-
-
-
-
Constructor Detail
-
TyrusServerContainer
public TyrusServerContainer(java.util.Set<java.lang.Class<?>> classes)
Create newTyrusServerContainer.- Parameters:
classes- classes to be included in this application instance. Can contain any combination of annotated endpoints (seeServerEndpoint) orEndpointdescendants.
-
TyrusServerContainer
public TyrusServerContainer(jakarta.websocket.server.ServerApplicationConfig serverApplicationConfig)
Create newTyrusServerContainerusing already createdServerApplicationConfiginstance.- Parameters:
serverApplicationConfig- provided application config.
-
-
Method Detail
-
start
public void start(java.lang.String rootPath, int port) throws java.io.IOException, jakarta.websocket.DeploymentExceptionStart the container.- Specified by:
startin interfaceorg.glassfish.tyrus.spi.ServerContainer- Parameters:
rootPath- context path of the deployed websocket application.- Throws:
java.io.IOException- when any IO related issues emerge duringServerContainer.start(String, int).jakarta.websocket.DeploymentException- when any deployment related error is found; should contain list of all found issues.
-
stop
public void stop()
Undeploy all endpoints and stop underlyingServerContainer.Release all created threadpools / executor services.
- Specified by:
stopin interfaceorg.glassfish.tyrus.spi.ServerContainer
-
register
public abstract void register(java.lang.Class<?> endpointClass) throws jakarta.websocket.DeploymentException- Throws:
jakarta.websocket.DeploymentException
-
register
public abstract void register(jakarta.websocket.server.ServerEndpointConfig serverEndpointConfig) throws jakarta.websocket.DeploymentException- Throws:
jakarta.websocket.DeploymentException
-
addEndpoint
public void addEndpoint(java.lang.Class<?> endpointClass) throws jakarta.websocket.DeploymentException- Specified by:
addEndpointin interfacejakarta.websocket.server.ServerContainer- Throws:
jakarta.websocket.DeploymentException
-
addEndpoint
public void addEndpoint(jakarta.websocket.server.ServerEndpointConfig serverEndpointConfig) throws jakarta.websocket.DeploymentException- Specified by:
addEndpointin interfacejakarta.websocket.server.ServerContainer- Throws:
jakarta.websocket.DeploymentException
-
getPort
public int getPort()
Get port of the started container.- Returns:
- the port of the started container or
-1, when the container is not started or the container does not provide the port.
-
getClientManager
protected org.glassfish.tyrus.client.ClientManager getClientManager()
Can be overridden to provide ownClientManagerimplementation or instance.- Returns:
ClientManagerassociated with this server container.
-
connectToServer
public jakarta.websocket.Session connectToServer(java.lang.Class annotatedEndpointClass, java.net.URI path) throws jakarta.websocket.DeploymentException, java.io.IOException- Specified by:
connectToServerin interfacejakarta.websocket.WebSocketContainer- Throws:
jakarta.websocket.DeploymentExceptionjava.io.IOException
-
connectToServer
public jakarta.websocket.Session connectToServer(java.lang.Class<? extends jakarta.websocket.Endpoint> endpointClass, jakarta.websocket.ClientEndpointConfig cec, java.net.URI path) throws jakarta.websocket.DeploymentException, java.io.IOException- Specified by:
connectToServerin interfacejakarta.websocket.WebSocketContainer- Throws:
jakarta.websocket.DeploymentExceptionjava.io.IOException
-
connectToServer
public jakarta.websocket.Session connectToServer(java.lang.Object annotatedEndpointInstance, java.net.URI path) throws jakarta.websocket.DeploymentException, java.io.IOException- Specified by:
connectToServerin interfacejakarta.websocket.WebSocketContainer- Throws:
jakarta.websocket.DeploymentExceptionjava.io.IOException
-
connectToServer
public jakarta.websocket.Session connectToServer(jakarta.websocket.Endpoint endpointInstance, jakarta.websocket.ClientEndpointConfig cec, java.net.URI path) throws jakarta.websocket.DeploymentException, java.io.IOException- Specified by:
connectToServerin interfacejakarta.websocket.WebSocketContainer- Throws:
jakarta.websocket.DeploymentExceptionjava.io.IOException
-
asyncConnectToServer
public java.util.concurrent.Future<jakarta.websocket.Session> asyncConnectToServer(java.lang.Class<?> annotatedEndpointClass, java.net.URI path) throws jakarta.websocket.DeploymentExceptionNon-blocking version ofWebSocketContainer.connectToServer(Class, java.net.URI).Only simple checks are performed in the main thread; client container is created in different thread, same applies to connecting etc.
- Parameters:
annotatedEndpointClass- the annotated websocket client endpoint.path- the complete path to the server endpoint.- Returns:
- Future for the Session created if the connection is successful.
- Throws:
jakarta.websocket.DeploymentException- if the class is not a valid annotated endpoint class.
-
asyncConnectToServer
public java.util.concurrent.Future<jakarta.websocket.Session> asyncConnectToServer(java.lang.Class<? extends jakarta.websocket.Endpoint> endpointClass, jakarta.websocket.ClientEndpointConfig cec, java.net.URI path) throws jakarta.websocket.DeploymentExceptionNon-blocking version ofWebSocketContainer.connectToServer(Class, jakarta.websocket.ClientEndpointConfig, java.net.URI).Only simple checks are performed in the main thread; client container is created in different thread, same applies to connecting etc.
- Parameters:
endpointClass- the programmatic client endpoint classEndpoint.path- the complete path to the server endpoint.cec- the configuration used to configure the programmatic endpoint.- Returns:
- the Session created if the connection is successful.
- Throws:
jakarta.websocket.DeploymentException- if the configuration is not valid- See Also:
WebSocketContainer.connectToServer(Class, jakarta.websocket.ClientEndpointConfig, java.net.URI)
-
asyncConnectToServer
public java.util.concurrent.Future<jakarta.websocket.Session> asyncConnectToServer(jakarta.websocket.Endpoint endpointInstance, jakarta.websocket.ClientEndpointConfig cec, java.net.URI path) throws jakarta.websocket.DeploymentExceptionNon-blocking version ofWebSocketContainer.connectToServer(jakarta.websocket.Endpoint, jakarta.websocket.ClientEndpointConfig, java.net.URI).Only simple checks are performed in the main thread; client container is created in different thread, same applies to connecting etc.
- Parameters:
endpointInstance- the programmatic client endpoint instanceEndpoint.path- the complete path to the server endpoint.cec- the configuration used to configure the programmatic endpoint.- Returns:
- the Session created if the connection is successful.
- Throws:
jakarta.websocket.DeploymentException- if the configuration is not valid- See Also:
WebSocketContainer.connectToServer(jakarta.websocket.Endpoint, jakarta.websocket.ClientEndpointConfig, java.net.URI)
-
asyncConnectToServer
public java.util.concurrent.Future<jakarta.websocket.Session> asyncConnectToServer(java.lang.Object obj, java.net.URI path) throws jakarta.websocket.DeploymentExceptionNon-blocking version ofWebSocketContainer.connectToServer(Object, java.net.URI).Only simple checks are performed in the main thread; client container is created in different thread, same applies to connecting etc.
- Parameters:
obj- the annotated websocket client endpoint instance.path- the complete path to the server endpoint.- Returns:
- the Session created if the connection is successful.
- Throws:
jakarta.websocket.DeploymentException- if the annotated endpoint instance is not valid.- See Also:
WebSocketContainer.connectToServer(Object, java.net.URI)
-
getDefaultMaxBinaryMessageBufferSize
public int getDefaultMaxBinaryMessageBufferSize()
- Specified by:
getDefaultMaxBinaryMessageBufferSizein interfacejakarta.websocket.WebSocketContainer
-
setDefaultMaxBinaryMessageBufferSize
public void setDefaultMaxBinaryMessageBufferSize(int max)
- Specified by:
setDefaultMaxBinaryMessageBufferSizein interfacejakarta.websocket.WebSocketContainer
-
getDefaultMaxTextMessageBufferSize
public int getDefaultMaxTextMessageBufferSize()
- Specified by:
getDefaultMaxTextMessageBufferSizein interfacejakarta.websocket.WebSocketContainer
-
setDefaultMaxTextMessageBufferSize
public void setDefaultMaxTextMessageBufferSize(int max)
- Specified by:
setDefaultMaxTextMessageBufferSizein interfacejakarta.websocket.WebSocketContainer
-
getInstalledExtensions
public java.util.Set<jakarta.websocket.Extension> getInstalledExtensions()
- Specified by:
getInstalledExtensionsin interfacejakarta.websocket.WebSocketContainer
-
getDefaultAsyncSendTimeout
public long getDefaultAsyncSendTimeout()
- Specified by:
getDefaultAsyncSendTimeoutin interfacejakarta.websocket.WebSocketContainer
-
setAsyncSendTimeout
public void setAsyncSendTimeout(long timeoutmillis)
- Specified by:
setAsyncSendTimeoutin interfacejakarta.websocket.WebSocketContainer
-
getDefaultMaxSessionIdleTimeout
public long getDefaultMaxSessionIdleTimeout()
- Specified by:
getDefaultMaxSessionIdleTimeoutin interfacejakarta.websocket.WebSocketContainer
-
setDefaultMaxSessionIdleTimeout
public void setDefaultMaxSessionIdleTimeout(long defaultMaxSessionIdleTimeout)
- Specified by:
setDefaultMaxSessionIdleTimeoutin interfacejakarta.websocket.WebSocketContainer
-
doneDeployment
public void doneDeployment()
Container is no longer required to acceptaddEndpoint(jakarta.websocket.server.ServerEndpointConfig)andaddEndpoint(Class)calls.
-
upgradeHttpToWebSocket
public void upgradeHttpToWebSocket(java.lang.Object httpServletRequest, java.lang.Object httpServletResponse, jakarta.websocket.server.ServerEndpointConfig sec, java.util.Map<java.lang.String,java.lang.String> pathParameters) throws java.io.IOException, jakarta.websocket.DeploymentException- Throws:
java.io.IOExceptionjakarta.websocket.DeploymentException
-
-