Class JettyHttpContainer

  • All Implemented Interfaces:
    org.eclipse.jetty.server.Handler, org.eclipse.jetty.util.component.Container, org.eclipse.jetty.util.component.Destroyable, org.eclipse.jetty.util.component.Dumpable, org.eclipse.jetty.util.component.Dumpable.DumpableContainer, org.eclipse.jetty.util.component.LifeCycle, Container

    public final class JettyHttpContainer
    extends org.eclipse.jetty.server.handler.AbstractHandler
    implements Container
    Jersey Container implementation based on Jetty Handler.
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      private static class  JettyHttpContainer.JettyBinder
      An internal binder to enable Jetty HTTP container specific types injection.
      private static class  JettyHttpContainer.JettyRequestReferencingFactory
      Referencing factory for Jetty request.
      private static class  JettyHttpContainer.JettyResponseReferencingFactory
      Referencing factory for Jetty response.
      private static class  JettyHttpContainer.ResponseWriter  
      • Nested classes/interfaces inherited from class org.eclipse.jetty.server.handler.AbstractHandler

        org.eclipse.jetty.server.handler.AbstractHandler.ErrorDispatchHandler
      • Nested classes/interfaces inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle

        org.eclipse.jetty.util.component.AbstractLifeCycle.AbstractLifeCycleListener
      • Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Container

        org.eclipse.jetty.util.component.Container.InheritedListener, org.eclipse.jetty.util.component.Container.Listener
      • Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Dumpable

        org.eclipse.jetty.util.component.Dumpable.DumpableContainer
      • Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.LifeCycle

        org.eclipse.jetty.util.component.LifeCycle.Listener
    • Constructor Summary

      Constructors 
      Constructor Description
      JettyHttpContainer​(javax.ws.rs.core.Application application)
      Create a new Jetty HTTP container.
      JettyHttpContainer​(javax.ws.rs.core.Application application, java.lang.Object parentContext)
      Create a new Jetty HTTP container.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      private void cacheConfigSetStatusOverSendError()
      The method reads and caches value of configuration property ServerProperties.RESPONSE_SET_STATUS_OVER_SEND_ERROR for future purposes.
      protected void doStart()
      Inform this container that the server has been started.
      void doStop()
      Inform this container that the server is being stopped.
      ApplicationHandler getApplicationHandler()
      Get the Jersey server-side application handler associated with the container.
      private java.lang.String getBasePath​(org.eclipse.jetty.server.Request request)  
      private java.net.URI getBaseUri​(org.eclipse.jetty.server.Request request)  
      ResourceConfig getConfiguration()
      Return an immutable representation of the current configuration.
      private java.net.URI getRequestUri​(org.eclipse.jetty.server.Request request, java.net.URI baseUri)  
      private javax.ws.rs.core.SecurityContext getSecurityContext​(org.eclipse.jetty.server.Request request)  
      private java.lang.String getServerAddress​(java.net.URI baseUri)  
      void handle​(java.lang.String target, org.eclipse.jetty.server.Request request, javax.servlet.http.HttpServletRequest httpServletRequest, javax.servlet.http.HttpServletResponse httpServletResponse)  
      void reload()
      Reload the hosted Jersey application using the current configuration.
      void reload​(ResourceConfig configuration)
      Reload the hosted Jersey application using a new configuration.
      • Methods inherited from class org.eclipse.jetty.server.handler.AbstractHandler

        destroy, doError, getServer, setServer
      • Methods inherited from class org.eclipse.jetty.util.component.ContainerLifeCycle

        addBean, addBean, addEventListener, addManaged, contains, dump, dump, dump, dump, dump, dumpBeans, dumpObject, dumpObjects, dumpStdErr, dumpThis, getBean, getBeans, getBeans, getContainedBeans, getContainedBeans, isAuto, isManaged, isUnmanaged, manage, removeBean, removeBeans, removeEventListener, setBeans, setStopTimeout, start, stop, unmanage, updateBean, updateBean, updateBeans
      • Methods inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle

        addLifeCycleListener, getState, getState, getStopTimeout, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, removeLifeCycleListener, start, stop, toString
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface org.eclipse.jetty.util.component.Dumpable

        dumpSelf
      • Methods inherited from interface org.eclipse.jetty.util.component.Dumpable.DumpableContainer

        isDumpable
      • Methods inherited from interface org.eclipse.jetty.util.component.LifeCycle

        addLifeCycleListener, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, removeLifeCycleListener, start, stop
    • Field Detail

      • REQUEST_TYPE

        private static final java.lang.reflect.Type REQUEST_TYPE
      • RESPONSE_TYPE

        private static final java.lang.reflect.Type RESPONSE_TYPE
      • INTERNAL_SERVER_ERROR

        private static final int INTERNAL_SERVER_ERROR
      • configSetStatusOverSendError

        private boolean configSetStatusOverSendError
        Cached value of configuration property ServerProperties.RESPONSE_SET_STATUS_OVER_SEND_ERROR. If true method HttpServletResponse.setStatus(int) is used over HttpServletResponse.sendError(int, java.lang.String).
    • Constructor Detail

      • JettyHttpContainer

        JettyHttpContainer​(javax.ws.rs.core.Application application,
                           java.lang.Object parentContext)
        Create a new Jetty HTTP container.
        Parameters:
        application - JAX-RS / Jersey application to be deployed on Jetty HTTP container.
        parentContext - DI provider specific context with application's registered bindings.
      • JettyHttpContainer

        JettyHttpContainer​(javax.ws.rs.core.Application application)
        Create a new Jetty HTTP container.
        Parameters:
        application - JAX-RS / Jersey application to be deployed on Jetty HTTP container.
    • Method Detail

      • handle

        public void handle​(java.lang.String target,
                           org.eclipse.jetty.server.Request request,
                           javax.servlet.http.HttpServletRequest httpServletRequest,
                           javax.servlet.http.HttpServletResponse httpServletResponse)
                    throws java.io.IOException,
                           javax.servlet.ServletException
        Specified by:
        handle in interface org.eclipse.jetty.server.Handler
        Specified by:
        handle in class org.eclipse.jetty.server.handler.AbstractHandler
        Throws:
        java.io.IOException
        javax.servlet.ServletException
      • getRequestUri

        private java.net.URI getRequestUri​(org.eclipse.jetty.server.Request request,
                                           java.net.URI baseUri)
      • getServerAddress

        private java.lang.String getServerAddress​(java.net.URI baseUri)
      • getSecurityContext

        private javax.ws.rs.core.SecurityContext getSecurityContext​(org.eclipse.jetty.server.Request request)
      • getBaseUri

        private java.net.URI getBaseUri​(org.eclipse.jetty.server.Request request)
      • getBasePath

        private java.lang.String getBasePath​(org.eclipse.jetty.server.Request request)
      • reload

        public void reload()
        Description copied from interface: Container
        Reload the hosted Jersey application using the current configuration.
        Specified by:
        reload in interface Container
      • reload

        public void reload​(ResourceConfig configuration)
        Description copied from interface: Container
        Reload the hosted Jersey application using a new configuration.
        Specified by:
        reload in interface Container
        Parameters:
        configuration - new configuration used for the reload.
      • getApplicationHandler

        public ApplicationHandler getApplicationHandler()
        Description copied from interface: Container
        Get the Jersey server-side application handler associated with the container.
        Specified by:
        getApplicationHandler in interface Container
        Returns:
        Jersey server-side application handler associated with the container.
      • doStart

        protected void doStart()
                        throws java.lang.Exception
        Inform this container that the server has been started. This method must be implicitly called after the server containing this container is started.
        Overrides:
        doStart in class org.eclipse.jetty.server.handler.AbstractHandler
        Throws:
        java.lang.Exception - if a problem occurred during server startup.
      • doStop

        public void doStop()
                    throws java.lang.Exception
        Inform this container that the server is being stopped. This method must be implicitly called before the server containing this container is stopped.
        Overrides:
        doStop in class org.eclipse.jetty.server.handler.AbstractHandler
        Throws:
        java.lang.Exception - if a problem occurred during server shutdown.