Class AbstractHTTPServerProtocol<T extends AbstractHTTPServerProtocol<T,U,V>,U extends AbstractHTTPServerAgent<U,T,V>,V extends org.openremote.model.asset.agent.AgentLink<?>>

java.lang.Object
org.openremote.agent.protocol.AbstractProtocol<U,V>
org.openremote.agent.protocol.http.AbstractHTTPServerProtocol<T,U,V>
All Implemented Interfaces:
org.openremote.model.asset.agent.Protocol<U>

public abstract class AbstractHTTPServerProtocol<T extends AbstractHTTPServerProtocol<T,U,V>,U extends AbstractHTTPServerAgent<U,T,V>,V extends org.openremote.model.asset.agent.AgentLink<?>> extends AbstractProtocol<U,V>
This is an abstract protocol for creating JAX-RS deployments; a concrete implementation should be created for each required JAX-RS deployment. Multiple instances of the same deployment can be created by creating multiple protocol instances for the desired concrete implementation.

The deployment is deployed by creating an instance of a concrete AbstractHTTPServerAgent implementation with the following Attributes:

The path used for the deployment is determined by getDeploymentPath(). The realm that the Agent belongs to will be used implicitly for all incoming requests to any deployments that this protocol creates and therefore only users of that realm will be able to make calls to the deployment when AbstractHTTPServerAgent.ROLE_BASED_SECURITY is true.
  • Field Details

    • DEFAULT_DEPLOYMENT_PATH_PREFIX

      public static final String DEFAULT_DEPLOYMENT_PATH_PREFIX
      This is the default path prefix for all deployments. Should not be overridden unless you know what you are doing and there is a good reason to override.
      See Also:
    • PATH_REGEX

      public static final Pattern PATH_REGEX
      The regex used to validate the deployment path.
    • DEFAULT_ALLOWED_METHODS

      public static final org.openremote.model.http.HTTPMethod[] DEFAULT_ALLOWED_METHODS
    • deployment

      protected org.openremote.container.web.WebService.DeploymentInstance deployment
    • container

      protected org.openremote.model.Container container
    • devMode

      protected boolean devMode
    • identityService

      protected org.openremote.container.security.IdentityService identityService
    • webService

      protected org.openremote.container.web.WebService webService
  • Constructor Details

    • AbstractHTTPServerProtocol

      public AbstractHTTPServerProtocol(U agent)
  • Method Details