/** * <p>Adds the given {@link SharedResource} to this ResourcePool. Note that this DOES NOT call {@link * SharedResource#refer()}, as opposed to {@link #retain(SharedResource)}. When this ResourcePool is * destroyed, it will release the main reference to the resource (by calling {@link SharedResource#release()}).</p> * * @param t The SharedResource to add. * @param <T> The class of parameter <code>t</code>. * @return The parameter <code>t</code>, to allow inlined calls to this function. */ public <T extends SharedResource> T add(T t) { try { resources.add(References.fromResource(t)); } catch (IllegalStateException e) { // Ignore. TODO(bakksjo): Don't rely on ISE to detect duplicates; handle that in this class instead. } return t; }
public boolean sendMessage(Message msg, ResponseHandler responseHandler) { final Request request = newClientRequest(msg); try (final ResourceReference ref = References.fromResource(request)) { return sendRequest(request, responseHandler); } }
/** * <p>This methods calls {@link #newRequest()} to create a new {@link Request}, and then calls {@link * Request#connect(ResponseHandler)} on that. This method uses a <code>finally</code> block to make sure that the * Request is always {@link Request#release() released}.</p> * * @return The ContentChannel to write the Request's content to. */ public final ContentChannel connect() { final Request request = newRequest(); try (final ResourceReference ref = References.fromResource(request)) { return request.connect(futureResponse); } }
public Request newClientRequest(Message msg) { msg.setRoute(Route.parse(server.connectionSpec())); if (msg.getTrace().getLevel() == 0) { msg.getTrace().setLevel(9); } final Request parent = newServerRequest(); try (final ResourceReference ref = References.fromResource(parent)) { return new MbusRequest(parent, URI.create("mbus://remotehost/"), msg); } }
@SuppressWarnings("try") private ServletRequestReader handleRequest() throws IOException { HttpRequest jdiscRequest = HttpRequestFactory.newJDiscRequest(jDiscContext.container, jettyRequest); ContentChannel requestContentChannel; try (ResourceReference ref = References.fromResource(jdiscRequest)) { HttpRequestFactory.copyHeaders(jettyRequest, jdiscRequest); requestContentChannel = requestHandler.handleRequest(jdiscRequest, servletResponseController.responseHandler); } ServletInputStream servletInputStream = jettyRequest.getInputStream(); ServletRequestReader servletRequestReader = new ServletRequestReader( servletInputStream, requestContentChannel, jDiscContext.janitor, metricReporter); servletInputStream.setReadListener(servletRequestReader); return servletRequestReader; }