Class PaxWebServletHolder
- java.lang.Object
-
- org.eclipse.jetty.util.component.AbstractLifeCycle
-
- org.eclipse.jetty.servlet.BaseHolder<T>
-
- org.eclipse.jetty.servlet.Holder<javax.servlet.Servlet>
-
- org.eclipse.jetty.servlet.ServletHolder
-
- org.ops4j.pax.web.service.jetty.internal.PaxWebServletHolder
-
- All Implemented Interfaces:
Comparable<org.eclipse.jetty.servlet.ServletHolder>,org.eclipse.jetty.server.UserIdentity.Scope,org.eclipse.jetty.util.component.Dumpable,org.eclipse.jetty.util.component.LifeCycle
public class PaxWebServletHolder extends org.eclipse.jetty.servlet.ServletHolderJetty
ServletHolderthat can perform tasks described in Http Service and Whiteboard Service specifications:- Servlet instance creation using class name and proper class loader (or instantiation of given class)
- Servlet instance retrieval from OSGi registry (to ensure proper behavior if the service is
bundle scoped or prototype scoped
ServiceFactory)
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.eclipse.jetty.servlet.ServletHolder
org.eclipse.jetty.servlet.ServletHolder.Config, org.eclipse.jetty.servlet.ServletHolder.JspContainer, org.eclipse.jetty.servlet.ServletHolder.Registration, org.eclipse.jetty.servlet.ServletHolder.WrapFunction, org.eclipse.jetty.servlet.ServletHolder.Wrapper
-
Nested classes/interfaces inherited from class org.eclipse.jetty.servlet.Holder
org.eclipse.jetty.servlet.Holder.HolderConfig, org.eclipse.jetty.servlet.Holder.HolderRegistration
-
Nested classes/interfaces inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
org.eclipse.jetty.util.component.AbstractLifeCycle.AbstractLifeCycleListener
-
-
Constructor Summary
Constructors Constructor Description PaxWebServletHolder(org.ops4j.pax.web.service.spi.model.elements.ServletModel servletModel, org.ops4j.pax.web.service.spi.model.OsgiContextModel osgiContextModel, org.ops4j.pax.web.service.spi.servlet.OsgiServletContext osgiServletContext)InitializePaxWebServletHolderwithServletModeland this particularOsgiContextModelin which' context we're adding given servlet to Jetty.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voiddestroyInstance(Object o)voiddoStart()protected javax.servlet.ServletgetInstance()This method is called first byorg.eclipse.jetty.servlet.ServletHolder#initServlet()in expectance of existingServletinstance.org.eclipse.jetty.servlet.ServletMappinggetMapping()Gets aServletMappingthat was used during registration of thisServletHolderin singlePaxWebServletHandler.org.ops4j.pax.web.service.spi.model.OsgiContextModelgetOsgiContextModel()org.osgi.framework.BundlegetRegisteringBundle()javax.servlet.ServletContextgetServletContext()org.ops4j.pax.web.service.spi.model.elements.ServletModelgetServletModel()org.ops4j.pax.web.service.WebContainerContextgetWebContainerContext()booleanis404()protected javax.servlet.ServletnewInstance()If no existing instance ofServletis available, this method is supposed to create one using class/classNamevoidprepare(org.eclipse.jetty.server.Request baseRequest, javax.servlet.ServletRequest request, javax.servlet.ServletResponse response)An override only to make it public, so it can be called fromPaxWebServletHandler.voidsetMapping(org.eclipse.jetty.servlet.ServletMapping mapping)Allows keepingServletMappingthat was used together with thisServletHoldervoidsetWhiteboardTCCL(boolean whiteboardTCCL)-
Methods inherited from class org.eclipse.jetty.servlet.ServletHolder
appendPath, checkServletType, compareTo, doStop, dump, ensureInstance, equals, getClassNameForJsp, getContextHandler, getContextPath, getForcedPath, getInitOrder, getJspPackagePrefix, getNameOfJspClass, getPackageOfJspClass, getRegistration, getRoleRefMap, getRunAsRole, getServlet, getServletInstance, getUnavailableException, getUserRoleLink, handle, hashCode, initialize, initJspServlet, initMultiPart, isAvailable, isEnabled, isJspServlet, isJspServlet, setEnabled, setForcedPath, setInitOrder, setRunAsRole, setServlet, setUserRoleLink, toString
-
Methods inherited from class org.eclipse.jetty.servlet.Holder
dump, getDisplayName, getInitParameter, getInitParameterNames, getInitParameters, getName, isAsyncSupported, setAsyncSupported, setClassName, setDisplayName, setHeldClass, setInitParameter, setInitParameters, setInstance, setName
-
Methods inherited from class org.eclipse.jetty.servlet.BaseHolder
getClassName, getHeldClass, getServletHandler, getSource, illegalStateIfContextStarted, isInstance, setServletHandler, unwrap, wrap
-
Methods inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
addLifeCycleListener, getState, getState, getStopTimeout, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, removeLifeCycleListener, setStopTimeout, start, stop
-
-
-
-
Constructor Detail
-
PaxWebServletHolder
public PaxWebServletHolder(org.ops4j.pax.web.service.spi.model.elements.ServletModel servletModel, org.ops4j.pax.web.service.spi.model.OsgiContextModel osgiContextModel, org.ops4j.pax.web.service.spi.servlet.OsgiServletContext osgiServletContext)InitializePaxWebServletHolderwithServletModeland this particularOsgiContextModelin which' context we're adding given servlet to Jetty.- Parameters:
servletModel-osgiContextModel-osgiServletContext-ServletContextHelperspecificServletContext
-
-
Method Detail
-
getServletModel
public org.ops4j.pax.web.service.spi.model.elements.ServletModel getServletModel()
-
getRegisteringBundle
public org.osgi.framework.Bundle getRegisteringBundle()
-
getOsgiContextModel
public org.ops4j.pax.web.service.spi.model.OsgiContextModel getOsgiContextModel()
-
getServletContext
public javax.servlet.ServletContext getServletContext()
-
getWebContainerContext
public org.ops4j.pax.web.service.WebContainerContext getWebContainerContext()
-
is404
public boolean is404()
-
doStart
public void doStart() throws Exception- Overrides:
doStartin classorg.eclipse.jetty.servlet.ServletHolder- Throws:
Exception
-
getInstance
protected javax.servlet.Servlet getInstance()
This method is called first by
org.eclipse.jetty.servlet.ServletHolder#initServlet()in expectance of existingServletinstance.Http Service / Whiteboard Service specification describe scenario where server instance (and also other Whiteboard instances, including
ServletContextHelperitself) are obtained from OSGi Service Registry - knowing thatServletmay come fromServiceFactory. That's why we override this method for this special purpose.- Overrides:
getInstancein classorg.eclipse.jetty.servlet.BaseHolder<javax.servlet.Servlet>- Returns:
-
destroyInstance
public void destroyInstance(Object o)
- Overrides:
destroyInstancein classorg.eclipse.jetty.servlet.ServletHolder
-
newInstance
protected javax.servlet.Servlet newInstance() throws javax.servlet.ServletException, IllegalAccessException, InstantiationException, NoSuchMethodException, InvocationTargetExceptionIf no existing instance ofServletis available, this method is supposed to create one using class/className- Overrides:
newInstancein classorg.eclipse.jetty.servlet.ServletHolder- Returns:
- Throws:
javax.servlet.ServletExceptionIllegalAccessExceptionInstantiationExceptionNoSuchMethodExceptionInvocationTargetException
-
prepare
public void prepare(org.eclipse.jetty.server.Request baseRequest, javax.servlet.ServletRequest request, javax.servlet.ServletResponse response) throws javax.servlet.ServletException, javax.servlet.UnavailableExceptionAn override only to make it public, so it can be called fromPaxWebServletHandler.- Overrides:
preparein classorg.eclipse.jetty.servlet.ServletHolder- Parameters:
baseRequest-request-response-- Throws:
javax.servlet.ServletExceptionjavax.servlet.UnavailableException
-
setMapping
public void setMapping(org.eclipse.jetty.servlet.ServletMapping mapping)
Allows keepingServletMappingthat was used together with thisServletHolder- Parameters:
mapping-
-
getMapping
public org.eclipse.jetty.servlet.ServletMapping getMapping()
Gets aServletMappingthat was used during registration of thisServletHolderin singlePaxWebServletHandler.- Returns:
-
setWhiteboardTCCL
public void setWhiteboardTCCL(boolean whiteboardTCCL)
-
-