@Override public void after(final Route.After handler) { rsp.after(handler); }
@Override default void handle(final Request req, final Response rsp, final Chain chain) throws Throwable { rsp.after(this); chain.next(req, rsp); }
@Override public Request push(final String path, final Map<String, Object> headers) { if (protocol().equalsIgnoreCase("HTTP/2.0")) { require(Response.class).after((req, rsp, value) -> { this.req.push("GET", contextPath + path, headers); return value; }); return this; } else { throw new UnsupportedOperationException("Push promise not available"); } }
@Override public Session create(final Request req, final Response rsp) { Session session = new SessionImpl.Builder(resolver, true, Session.COOKIE_SESSION, -1).build(); log.debug("session created: {}", session); rsp.after(saveCookie()); return session; }
@Override public void handle(final Request req, final Response rsp, final Route.Chain chain) throws Throwable { Optional<String> value = req.cookie(cname).toOptional(); Map<String, String> source = value.map(decoder::apply) .orElseGet(HashMap::new); FlashMap flashScope = new FlashMap(source); req.set(FlashScope.NAME, flashScope); // wrap & proceed rsp.after(finalizeFlash(source, flashScope)); chain.next(req, rsp); }
@Override public Session get(final Request req, final Response rsp) { return req.cookie(cookie.name().get()).toOptional().map(raw -> { SessionImpl.Builder session = new SessionImpl.Builder(resolver, false, Session.COOKIE_SESSION, -1); Map<String, String> attributes = attributes(raw); session.set(attributes); rsp.after(saveCookie()); return session.build(); }).orElse(null); }
@Override public void handle(final Request req, final Response rsp, final Route.Chain chain) throws Throwable { logger.debug("open handle"); Handle handle = jdbi.open(); Optional.ofNullable(trx.configurer).ifPresent(c -> c.accept(handle)); req.set(trx.handle(), handle); logger.debug("new transaction: {}", handle); handle.begin(); rsp.after(new CommitTransaction(handle)); rsp.complete(new RollbackTransaction(handle)); rsp.complete(new CloseHandle(handle)); chain.next(req, rsp); } }
@Override public void handle(final Request req, final Response rsp, final Chain chain) throws Throwable { RootUnitOfWork uow = (RootUnitOfWork) req.require(UnitOfWork.class); // start transaction uow.begin(); rsp.after(after(uow)); rsp.complete(complete(uow)); // move next chain.next(req, rsp); }
@Override public void after(final Route.After handler) { rsp.after(handler); }
@Override default void handle(final Request req, final Response rsp, final Chain chain) throws Throwable { rsp.after(this); chain.next(req, rsp); }
@Override public Request push(final String path, final Map<String, Object> headers) { if (protocol().equalsIgnoreCase("HTTP/2.0")) { require(Response.class).after((req, rsp, value) -> { this.req.push("GET", contextPath + path, headers); return value; }); return this; } else { throw new UnsupportedOperationException("Push promise not available"); } }
@Override public Session create(final Request req, final Response rsp) { Session session = new SessionImpl.Builder(resolver, true, Session.COOKIE_SESSION, -1).build(); log.debug("session created: {}", session); rsp.after(saveCookie()); return session; }
@Override public void handle(final Request req, final Response rsp, final Route.Chain chain) throws Throwable { Optional<String> value = req.cookie(cname).toOptional(); Map<String, String> source = value.map(decoder::apply) .orElseGet(HashMap::new); FlashMap flashScope = new FlashMap(source); req.set(FlashScope.NAME, flashScope); // wrap & proceed rsp.after(finalizeFlash(source, flashScope)); chain.next(req, rsp); }
@Override public Session get(final Request req, final Response rsp) { return req.cookie(cookie.name().get()).toOptional().map(raw -> { SessionImpl.Builder session = new SessionImpl.Builder(resolver, false, Session.COOKIE_SESSION, -1); Map<String, String> attributes = attributes(raw); session.set(attributes); rsp.after(saveCookie()); return session.build(); }).orElse(null); }
@Override public void handle(final Request req, final Response rsp, final Chain chain) throws Throwable { RootUnitOfWork uow = (RootUnitOfWork) req.require(UnitOfWork.class); // start transaction uow.begin(); rsp.after(after(uow)); rsp.complete(complete(uow)); // move next chain.next(req, rsp); }