use of org.webpieces.router.impl.services.SvcProxyForHtml in project webpieces by deanhiller.
the class ScopedRouteBuilderImpl method addRoute.
@Override
public void addRoute(Port port, HttpMethod method, String path, String controllerMethod, RouteId routeId, boolean checkToken) {
if (!controllerMethod.contains("."))
throw new IllegalArgumentException("controllerMethod='" + controllerMethod + " does not contain a '.' which is required separating class name and method");
UrlPath p = new UrlPath(routerInfo, path);
boolean isPostOnly = method == HttpMethod.POST;
RouteModuleInfo moduleInfo = CurrentRoutes.get();
RouteInfo routeInfo = new RouteInfo(moduleInfo, controllerMethod);
// MUST DO loadControllerIntoMetat HERE so stack trace has customer's line in it so he knows EXACTLY what
// he did wrong when reading the exception!!
MethodMetaAndController metaAndController = holder.getFinder().loadHtmlController(resettingLogic.getInjector(), routeInfo, isPostOnly);
MatchInfo matchInfo = createMatchInfo(p, port, method, holder.getUrlEncoding());
LoadedController loadedController = metaAndController.getLoadedController();
FHtmlRouter router = new FHtmlRouter(holder.getRouteInvoker2(), loadedController, moduleInfo.getI18nBundleName(), matchInfo, checkToken);
SvcProxyForHtml svc = new SvcProxyForHtml(holder.getSvcProxyLogic(), futureUtil);
RouterAndInfo routerAndInfo = new RouterAndInfo(router, routeInfo, metaAndController, svc);
newDynamicRoutes.add(routerAndInfo);
resettingLogic.getReverseRoutes().addRoute(routeId, router);
log.info("scope:'" + routerInfo + "' added route=" + matchInfo + " method=" + routeInfo.getControllerMethodString());
}
Aggregations