/** * Uses the {@link DefaultExceptionMapperLookup} to collect all controllers. * * @return an instance of {@link ControllerRegistry} with initialized controllers */ public ControllerRegistry build() { return build(new DefaultControllerLookup(resourceRegistry, typeParser, objectMapper, documentMapper)); }
public void dispatchAction(JsonPath jsonPath, String method, Map<String, Set<String>> parameters) { // preliminary implementation, more to come in the future ActionFilterChain chain = new ActionFilterChain(); DefaultFilterRequestContext context = new DefaultFilterRequestContext(jsonPath, null, null, null, method); chain.doFilter(context); }
/** * Uses the given {@link ControllerLookup} to get all controllers. * * @param lookup an instance of a lookup class to get the controllers * @return an instance of {@link ControllerRegistry} with initialized controllers */ private static ControllerRegistry build(ControllerLookup lookup) { List<BaseController> controllers = new LinkedList<>(); controllers.addAll(lookup.getControllers()); return new ControllerRegistry(controllers); }
JsonPath jsonPath = new PathBuilder(resourceRegistry).buildPath(getRequestPath(request)); katharsisResponse = requestDispatcher.dispatchRequest(jsonPath, method, parameters, parameterProvider, requestBody); } catch (KatharsisMappableException e) {
@Bean public RequestDispatcher requestDispatcher() throws Exception { TypeParser typeParser = moduleRegistry.getTypeParser(); ControllerRegistryBuilder controllerRegistryBuilder = new ControllerRegistryBuilder(resourceRegistry, typeParser, objectMapper, new EmptyPropertiesProvider()); ControllerRegistry controllerRegistry = controllerRegistryBuilder.build(); QueryAdapterBuilder queryAdapterBuilder; if (querySpecDeserializer != null) { queryAdapterBuilder = new QuerySpecAdapterBuilder(querySpecDeserializer, moduleRegistry); } else { queryAdapterBuilder = new QueryParamsAdapterBuilder(paramsBuilder, moduleRegistry); } return new RequestDispatcher(moduleRegistry, controllerRegistry, exceptionMapperRegistry, queryAdapterBuilder); } }
private RequestDispatcher createRequestDispatcher(ExceptionMapperRegistry exceptionMapperRegistry) { ControllerRegistryBuilder controllerRegistryBuilder = new ControllerRegistryBuilder(resourceRegistry, moduleRegistry.getTypeParser(), objectMapper, propertiesProvider); ControllerRegistry controllerRegistry = controllerRegistryBuilder.build(); this.documentMapper = controllerRegistryBuilder.getDocumentMapper(); QueryAdapterBuilder queryAdapterBuilder; if (queryParamsBuilder != null) { queryAdapterBuilder = new QueryParamsAdapterBuilder(queryParamsBuilder, moduleRegistry); } else { queryAdapterBuilder = new QuerySpecAdapterBuilder(querySpecDeserializer, moduleRegistry); } return new RequestDispatcher(moduleRegistry, controllerRegistry, exceptionMapperRegistry, queryAdapterBuilder); }
JsonPath jsonPath = new PathBuilder(resourceRegistry).build(path); Map<String, Set<String>> parameters = getParameters(uriInfo); String method = requestContext.getMethod(); requestDispatcher.dispatchAction(jsonPath, method, parameters); .dispatchRequest(jsonPath, method, parameters, parameterProvider, requestBody); }else{
BaseController controller = controllerRegistry.getController(jsonPath, method); ResourceInformation resourceInformation = getRequestedResource(jsonPath); QueryAdapter queryAdapter = queryAdapterBuilder.build(resourceInformation, parameters); DefaultFilterRequestContext context = new DefaultFilterRequestContext(jsonPath, queryAdapter, parameterProvider, requestBody, method); DefaultFilterChain chain = new DefaultFilterChain(controller); return chain.doFilter(context); } catch (Exception e) { Optional<JsonApiExceptionMapper> exceptionMapper = exceptionMapperRegistry.findMapperFor(e.getClass());
JsonPath jsonPath = new PathBuilder(resourceRegistry).buildPath(invokerContext.getRequestPath()); katharsisResponse = requestDispatcher.dispatchRequest(jsonPath, method, parameters, parameterProvider, requestBody); } catch (KatharsisMappableException e) {
protected RequestDispatcher createRequestDispatcher(ModuleRegistry moduleRegistry, ObjectMapper objectMapper, ExceptionMapperRegistry exceptionMapperRegistry) throws Exception { TypeParser typeParser = moduleRegistry.getTypeParser(); ControllerRegistryBuilder controllerRegistryBuilder = new ControllerRegistryBuilder(resourceRegistry, typeParser, objectMapper, propertiesProvider); ControllerRegistry controllerRegistry = controllerRegistryBuilder.build(); QueryAdapterBuilder queryAdapterBuilder; if (querySpecDeserializer != null) { queryAdapterBuilder = new QuerySpecAdapterBuilder(querySpecDeserializer, moduleRegistry); } else { if (queryParamsBuilder == null) { queryParamsBuilder = new QueryParamsBuilder(new DefaultQueryParamsParser()); } queryAdapterBuilder = new QueryParamsAdapterBuilder(queryParamsBuilder, moduleRegistry); } return new RequestDispatcher(moduleRegistry, controllerRegistry, exceptionMapperRegistry, queryAdapterBuilder); }
ResourceRegistry resourceRegistry = boot.getResourceRegistry(); RequestDispatcher requestDispatcher = boot.getRequestDispatcher(); JsonPath jsonPath = new PathBuilder(resourceRegistry).buildPath(invokerContext.getRequestPath()); katharsisResponse = requestDispatcher.dispatchRequest(jsonPath, method, parameters, parameterProvider, requestBody); } catch (KatharsisMappableException e) {