public MockResponseHandler sendRequest(String uri, HttpRequest.Method method, ByteBuffer body) { responseHandler = new MockResponseHandler(); Request request = HttpRequest.newServerRequest(driver, URI.create(uri), method); request.context().put("contextVariable", 37); // TODO: Add a method for accepting a Request instead ContentChannel requestContent = request.connect(responseHandler); requestContent.write(body, null); requestContent.close(null); request.release(); return responseHandler; }
public MockResponseHandler sendRequest(String uri, HttpRequest.Method method, ByteBuffer body, String contentType) { responseHandler = new MockResponseHandler(); Request request = HttpRequest.newServerRequest(driver, URI.create(uri), method); request.context().put("contextVariable", 37); // TODO: Add a method for accepting a Request instead request.headers().put(com.yahoo.jdisc.http.HttpHeaders.Names.CONTENT_TYPE, contentType); ContentChannel requestContent = request.connect(responseHandler); requestContent.write(body, null); requestContent.close(null); request.release(); return responseHandler; }
/** * <p>Factory method to create a {@link Request} without an associated {@link Container}. The design of jDISC does * not allow this, so this method internally creates TestDriver, activates a Container, and creates a new Request * from that Container. Before returning, this method {@link Request#release() closes} the Request, and calls {@link * TestDriver#close()} on the TestDriver. This means that you MUST NOT attempt to access any Container features * through the created Request. This factory is only for directed feature tests that require a non-null * Request.</p> * * @param uri The URI string to assign to the Request. * @param guiceModules The guice modules to inject into the {@link Application}. * @return A non-working Request. */ public static Request newInstance(String uri, Module... guiceModules) { TestDriver driver = TestDriver.newSimpleApplicationInstanceWithoutOsgi(guiceModules); driver.activateContainer(driver.newContainerBuilder()); Request request = new Request(driver, URI.create(uri)); request.release(); driver.close(); return request; } }
@Override public void handleMessage(Message msg) { if (!running.get()) { dispatchErrorReply(msg, ErrorCode.SESSION_BUSY, "Session temporarily closed."); return; } if (msg.getTrace().shouldTrace(6)) { msg.getTrace().trace(6, "Message received by MbusServer."); } Request request = null; ContentChannel content = null; try { request = new MbusRequest(container, uri, msg); content = request.connect(new ServerResponseHandler(msg)); } catch (RuntimeException e) { dispatchErrorReply(msg, ErrorCode.APP_FATAL_ERROR, e.toString()); } finally { if (request != null) { request.release(); } } if (content != null) { content.close(IgnoredCompletionHandler.INSTANCE); } }