private void initHandlersChain() { if (requestHandlersChain == null) { requestHandlersChain = initRequestHandlersChain(); } if (responseHandlersChain == null) { responseHandlersChain = initResponseHandlersChain(); } if (errorHandlersChain == null) { errorHandlersChain = initErrorHandlersChain(); } isChainInitialized = true; }
public RequestProcessor(DeploymentConfiguration configuration) { this.configuration = configuration; registerDefaultApplication(); registerRootResources(); }
public ResponseHandlersChain getErrorHandlersChain() { if (!isChainInitialized) { initHandlersChain(); } return errorHandlersChain; }
protected DeploymentConfiguration getDeploymentConfiguration() throws ClassNotFoundException, InstantiationException, IllegalAccessException, IOException { DeploymentConfiguration deploymentConfiguration = createDeploymentConfiguration(); deploymentConfiguration.setServletConfig(getServletConfig()); deploymentConfiguration.setServletContext(getServletContext()); deploymentConfiguration.setProperties(getProperties()); deploymentConfiguration.init(); return deploymentConfiguration; }
@Override public void destroy() { getRequestProcessor().getConfiguration().getProvidersRegistry().removeAllProviders(); getRequestProcessor().getConfiguration().getResourceRegistry().removeAllResources(); for (ObjectFactory<?> of : getRequestProcessor().getConfiguration() .getApplicationObjectFactories()) { of.releaseAll(null); } /* * Be sure to call super.destroy() */ super.destroy(); } }
@Override public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { RequestProcessor requestProcessor = getRequestProcessor(); if (requestProcessor == null) { throw new ServletException(Messages .getMessage("adminServletRequestProcessorInitBeforeAdmin")); //$NON-NLS-1$ } ResourceRegistry registry = requestProcessor.getConfiguration().getResourceRegistry(); String[] parameterValues = request.getParameterValues(DOCUMENT_TYPE); if (parameterValues == null || parameterValues.length == 0) { buildAdminHome(response); return; } if (parameterValues[0].equals(DOCUMENT_TYPE_REGISTRY)) { buildRegistryDocument(request, response, registry); } else if (parameterValues[0].equals(DOCUMENT_TYPE_RESOURCE)) { buildResourcesDocument(request, response, registry); } else { buildAdminHome(response); return; } }
@Override protected DeploymentConfiguration getDeploymentConfiguration() throws ClassNotFoundException, InstantiationException, IllegalAccessException, IOException { DeploymentConfiguration deploymentConfiguration = super.getDeploymentConfiguration(); deploymentConfiguration.setFilterConfig(filterConfig); return deploymentConfiguration; } }
public void afterPropertiesSet() throws Exception { RequestProcessor requestProcessor = new RequestProcessor(getDeploymentConfiguration()); requestProcessor.storeRequestProcessorOnServletContext(servletContext, requestProcessorAttribute); }
@Override protected void initRegistries() { super.initRegistries(); InjectableFactory.setInstance(new TuscanyInjectableFactory()); }
/** * Registers resources and providers provided by the Application. The * methods adds new providers and resources and DOES NOT removes the already * registered. * * @param application - application to register * @param servletContext - current servlet context * @param requestProcessorAttribute - attribute on which the request * processor is stored. It's useful, when there are multiple rest * servlets in the system and each one has a request processor. */ public static void registerApplication(Application application, ServletContext servletContext, String requestProcessorAttribute) { RequestProcessor requestProcessor = RequestProcessor.getRequestProcessor(servletContext, requestProcessorAttribute); requestProcessor.getConfiguration().addApplication(application, false); }
protected void storeRequestProcessorOnServletContext(RequestProcessor requestProcessor) { requestProcessor.storeRequestProcessorOnServletContext(getServletContext(), requestProcessorAttribute); }
@Override protected void service(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException { getRequestProcessor().handleRequest(httpServletRequest, httpServletResponse); }
protected RequestProcessor getRequestProcessor() { return RequestProcessor.getRequestProcessor(getServletContext(), requestProcessorAttribute); }
public Properties getProperties() { return getDeploymentConfiguration().getProperties(); }
private MediaType getRealResponseMimeType(String responseMimeType) { return mediaTypeMapper.mapOutputMediaType(MediaType.valueOf(responseMimeType), getHttpHeaders()); } }
protected <T extends Handler> T createHandler(Class<T> cls) { try { T handler = cls.newInstance(); logger.trace("Calling {}.init(Properties)", cls); //$NON-NLS-1$ handler.init(getProperties()); return handler; } catch (InstantiationException e) { throw new WebApplicationException(e); } catch (IllegalAccessException e) { throw new WebApplicationException(e); } }
/** * Initializes the Response Handlers Chain (the chain that handles the * out-bound response). Usually the user won't need to override this method, * but <tt>initResponseUserHandlers</tt> instead. */ protected ResponseHandlersChain initResponseHandlersChain() { ResponseHandlersChain handlersChain = new ResponseHandlersChain(); handlersChain.addHandler(createHandler(Responses.class)); handlersChain.addHandler(createHandler(PopulateResponseStatusHandler.class)); handlersChain.addHandler(createHandler(PopulateResponseMediaTypeHandler.class)); if (responseUserHandlers != null) { for (ResponseHandler h : responseUserHandlers) { h.init(properties); handlersChain.addHandler(h); } } handlersChain.addHandler(createHandler(FlushResultHandler.class)); handlersChain.addHandler(createHandler(HeadMethodHandler.class)); logger.trace("Response handlers chain is: {}", handlersChain); //$NON-NLS-1$ return handlersChain; }
@Override protected void initRegistries() { super.initRegistries(); InjectableFactory.setInstance(new TuscanyInjectableFactory()); }
public RequestHandlersChain getRequestHandlersChain() { if (!isChainInitialized) { initHandlersChain(); } return requestHandlersChain; }
public ResponseHandlersChain getResponseHandlersChain() { if (!isChainInitialized) { initHandlersChain(); } return responseHandlersChain; }