Package org.pentaho.platform.web.servlet
Class PluginDispatchServlet
java.lang.Object
org.pentaho.platform.web.servlet.PluginDispatchServlet
- All Implemented Interfaces:
javax.servlet.Servlet
Dispatches requests to Servlets provided by BIServer plugins. To define a Servlet in a plugin, simply add a bean
element for the Servlet class in the plugin.spring.xml file in your plugin root directory.
- Author:
- Aaron Phillips
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidconfigurePluginWebsockets(Map.Entry<String, org.springframework.beans.factory.ListableBeanFactory> pluginBeanFactoryEntry) Configures a platform plugin websocket endpoints.voiddestroy()getDispatchKey(javax.servlet.http.HttpServletRequest request) Returns the dispatch key for this request.protected StringgetServerUrl(String contextPath) Gets the server URL up until the application context path.protected javax.websocket.server.ServerEndpointConfig.ConfiguratorgetServerWebsocketEndpointConfigurator(String servletContextPath, Predicate<String> isOriginAllowedPredicate) Get the Server Endpoint Config configurator used for registering websocket endpoints.javax.servlet.ServletConfigprotected javax.servlet.ServletgetTargetServlet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) getWebsocketEndpointConfigBeans(org.springframework.beans.factory.ListableBeanFactory pluginBeanFactory) Gets the beans that implement theIWebsocketEndpointConfiginterface from the factory received as parameter.voidinit(javax.servlet.ServletConfig config) voidservice(javax.servlet.ServletRequest req, javax.servlet.ServletResponse res)
-
Constructor Details
-
PluginDispatchServlet
public PluginDispatchServlet()
-
-
Method Details
-
destroy
public void destroy()- Specified by:
destroyin interfacejavax.servlet.Servlet
-
service
public void service(javax.servlet.ServletRequest req, javax.servlet.ServletResponse res) throws javax.servlet.ServletException, IOException - Specified by:
servicein interfacejavax.servlet.Servlet- Throws:
javax.servlet.ServletExceptionIOException
-
getTargetServlet
protected javax.servlet.Servlet getTargetServlet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException - Throws:
javax.servlet.ServletException
-
getDispatchKey
Returns the dispatch key for this request. This name is the part of the request path beyond the servlet base path. I.e. if the PluginDispatchServlet is mapped to the "/plugin" context in web.xml, then this method will return "myPlugin/myServlet" given a request to "http://localhost:8080/pentaho/plugin/myPlugin/myServlet".- Returns:
- the part of the request url used to dispatch the request
-
init
public void init(javax.servlet.ServletConfig config) throws javax.servlet.ServletException - Specified by:
initin interfacejavax.servlet.Servlet- Throws:
javax.servlet.ServletException
-
getServletConfig
public javax.servlet.ServletConfig getServletConfig()- Specified by:
getServletConfigin interfacejavax.servlet.Servlet
-
getServletInfo
- Specified by:
getServletInfoin interfacejavax.servlet.Servlet
-
getPluginBeanFactories
-
configurePluginWebsockets
protected void configurePluginWebsockets(Map.Entry<String, org.springframework.beans.factory.ListableBeanFactory> pluginBeanFactoryEntry) Configures a platform plugin websocket endpoints.- Parameters:
pluginBeanFactoryEntry- the plugin bean factory entry
-
getServerWebsocketEndpointConfigurator
protected javax.websocket.server.ServerEndpointConfig.Configurator getServerWebsocketEndpointConfigurator(String servletContextPath, Predicate<String> isOriginAllowedPredicate) Get the Server Endpoint Config configurator used for registering websocket endpoints.- Parameters:
servletContextPath- The servlet context path.isOriginAllowedPredicate- A predicate that validates if a origin is allowed on new connections. Can be null, and in that scenario it will be ignored.- Returns:
- The configurator instance.
-
getWebsocketEndpointConfigBeans
protected Map<String,org.pentaho.platform.api.websocket.IWebsocketEndpointConfig> getWebsocketEndpointConfigBeans(org.springframework.beans.factory.ListableBeanFactory pluginBeanFactory) Gets the beans that implement theIWebsocketEndpointConfiginterface from the factory received as parameter.- Parameters:
pluginBeanFactory- The factory where the beans will be looked on.- Returns:
- A map with the beans found.
-
getServerUrl
Gets the server URL up until the application context path.- Parameters:
contextPath- the application context path, used to know where to split the server URL- Returns:
- The server URL like http://localhost:8080/
-