Class OSGiMainHandler
java.lang.Object
org.glassfish.grizzly.http.server.HttpHandler
org.glassfish.grizzly.osgi.httpservice.OSGiMainHandler
- All Implemented Interfaces:
OSGiHandler
public class OSGiMainHandler
extends org.glassfish.grizzly.http.server.HttpHandler
implements OSGiHandler
OSGi Main HttpHandler.
Dispatching HttpHandler.
Grizzly integration.
Responsibilities:
- Manages registration data.
- Dispatching
HttpHandler.service(Request, Response)method call to registeredHttpHandlers.
- Author:
- Hubert Iwaniuk
-
Constructor Summary
ConstructorsConstructorDescriptionOSGiMainHandler(Logger logger, org.osgi.framework.Bundle bundle) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionProcessing lock.Removal lock.voidregisterFilter(javax.servlet.Filter filter, String urlPattern, Dictionary initparams, org.osgi.service.http.HttpContext context, org.osgi.service.http.HttpService httpService) voidregisterResourceHandler(String alias, org.osgi.service.http.HttpContext context, String internalPrefix, org.osgi.service.http.HttpService httpService) RegistersOSGiResourceHandlerin OSGi Http Service.voidregisterServletHandler(String alias, javax.servlet.Servlet servlet, Dictionary initparams, org.osgi.service.http.HttpContext context, org.osgi.service.http.HttpService httpService) RegistersOSGiServletHandlerin OSGi Http Service.voidservice(org.glassfish.grizzly.http.server.Request request, org.glassfish.grizzly.http.server.Response response) Service method dispatching to registered handlers.voidunregisterAlias(String alias) Unregisters previously registered alias.voidPart of Shutdown sequence.voidunregisterFilter(javax.servlet.Filter filter) voidUnregisters allaliases registered by owning bundle.Methods inherited from class org.glassfish.grizzly.http.server.HttpHandler
destroy, getErrorPageGenerator, getName, getRequestExecutorProvider, getRequestURIEncoding, getSessionCookieName, getSessionManager, isAllowCustomStatusMessage, isAllowEncodedSlash, sendAcknowledgment, setAllowCustomStatusMessage, setAllowEncodedSlash, setDecodeUrl, setDispatcherHelper, setRequestURIEncoding, setRequestURIEncoding, start, updatePaths
-
Constructor Details
-
OSGiMainHandler
Constructor.- Parameters:
logger- Logger utility.bundle- Bundle that we create if for, for local data reference.
-
-
Method Details
-
service
public void service(org.glassfish.grizzly.http.server.Request request, org.glassfish.grizzly.http.server.Response response) throws Exception Service method dispatching to registered handlers.- Specified by:
servicein classorg.glassfish.grizzly.http.server.HttpHandler- Throws:
Exception
-
registerServletHandler
public void registerServletHandler(String alias, javax.servlet.Servlet servlet, Dictionary initparams, org.osgi.service.http.HttpContext context, org.osgi.service.http.HttpService httpService) throws org.osgi.service.http.NamespaceException, javax.servlet.ServletException RegistersOSGiServletHandlerin OSGi Http Service. Keeps truck of all registrations, takes care of thread safety.- Parameters:
alias- Alias to register, if wrong value than throwsNamespaceException.servlet- Servlet to register under alias, if fails toServlet.init(javax.servlet.ServletConfig)throwsServletException.initparams- Initial parameters to populateServletContextwith.context- OSGiHttpContext, provides mime handling, security and bundle specific resource access.httpService- Used toHttpService.createDefaultHttpContext()if needed.- Throws:
org.osgi.service.http.NamespaceException- If alias was invalid or already registered.javax.servlet.ServletException- IfServlet.init(javax.servlet.ServletConfig)fails.
-
registerFilter
public void registerFilter(javax.servlet.Filter filter, String urlPattern, Dictionary initparams, org.osgi.service.http.HttpContext context, org.osgi.service.http.HttpService httpService) throws javax.servlet.ServletException - Parameters:
filter-urlPattern-initparams-context-httpService-- Throws:
org.osgi.service.http.NamespaceExceptionjavax.servlet.ServletException
-
registerResourceHandler
public void registerResourceHandler(String alias, org.osgi.service.http.HttpContext context, String internalPrefix, org.osgi.service.http.HttpService httpService) throws org.osgi.service.http.NamespaceException RegistersOSGiResourceHandlerin OSGi Http Service. Keeps truck of all registrations, takes care of thread safety.- Parameters:
alias- Alias to register, if wrong value than throwsNamespaceException.context- OSGiHttpContext, provides mime handling, security and bundle specific resource access.internalPrefix- Prefix to map request for this alias to.httpService- Used toHttpService.createDefaultHttpContext()if needed.- Throws:
org.osgi.service.http.NamespaceException- If alias was invalid or already registered.
-
unregisterAlias
Unregisters previously registered alias. Keeps truck of all registrations, takes care of thread safety.- Parameters:
alias- Alias to unregister, if not owning aliasIllegalArgumentExceptionis thrown.- Throws:
IllegalArgumentException- If alias was not registered by calling bundle.
-
unregisterFilter
public void unregisterFilter(javax.servlet.Filter filter) -
uregisterAllLocal
public void uregisterAllLocal()Unregisters allaliases registered by owning bundle. -
unregisterAll
public void unregisterAll()Part of Shutdown sequence. Unregister and clean up. -
getProcessingLock
Processing lock.ReentrantReadWriteLock.ReadLockcan be obtained by concurrent threads at the same time.- Specified by:
getProcessingLockin interfaceOSGiHandler- Returns:
- Processing lock.
-
getRemovalLock
Removal lock.ReentrantReadWriteLock.WriteLockcan be obtained only by one thread, blocksOSGiHandler.getProcessingLock().- Specified by:
getRemovalLockin interfaceOSGiHandler- Returns:
- Removal lock.
- See Also:
-