Skip to content

Commit

Permalink
Fixes #63 - Expose Resource as a Request attribute.
Browse files Browse the repository at this point in the history
Exposed the `Resource` under the `Resource.class.getName()` request attribute.

Signed-off-by: Simone Bordet <[email protected]>
  • Loading branch information
sbordet committed Feb 24, 2021
1 parent 62ff887 commit 3fcafdc
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -388,6 +388,7 @@ private void stopHttpClient(HttpClient client) {
protected Request newRequest(HttpClient client, Config config, Resource resource) {
Request request = client.newRequest(config.getHost(), config.getPort())
.scheme(config.getScheme())
.attribute(Resource.class.getName(), resource)
.method(resource.getMethod())
.path(resource.getPath());
request.getHeaders().addAll(resource.getRequestHeaders());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.eclipse.jetty.client.api.Request;
import org.eclipse.jetty.http.HttpStatus;
import org.eclipse.jetty.http2.server.HTTP2CServerConnectionFactory;
import org.eclipse.jetty.jmx.MBeanContainer;
import org.eclipse.jetty.server.ConnectionFactory;
Expand Down Expand Up @@ -526,6 +527,42 @@ public void testReadyEventWithoutWarmup() throws Exception {
Assert.assertTrue(readyLatch.await(5, TimeUnit.SECONDS));
}

@Test
public void testResourceFromRequestAttribute() throws Exception {
Resource resource = new Resource("/original");
String extraPath = "/" + Integer.toHexString(resource.hashCode());
startServer(new AbstractHandler() {
@Override
public void handle(String target, org.eclipse.jetty.server.Request jettyRequest, HttpServletRequest request, HttpServletResponse response) {
jettyRequest.setHandled(true);
response.setStatus(target.endsWith(extraPath) ? HttpStatus.OK_200 : HttpStatus.INTERNAL_SERVER_ERROR_500);
}
});

CountDownLatch latch = new CountDownLatch(1);
LoadGenerator loadGenerator = LoadGenerator.builder()
.port(connector.getLocalPort())
.httpClientTransportBuilder(clientTransportBuilder)
.resource(resource)
.requestListener(new Request.Listener() {
@Override
public void onBegin(Request request) {
Resource resource = (Resource)request.getAttributes().get(Resource.class.getName());
request.path(resource.getPath() + extraPath);
}
})
.resourceListener((Resource.NodeListener)info -> {
if (info.getStatus() == HttpStatus.OK_200) {
latch.countDown();
}
})
.build();

loadGenerator.begin().get();

Assert.assertTrue(latch.await(5, TimeUnit.SECONDS));
}

private enum TransportType {
H1C, H2C
}
Expand Down

0 comments on commit 3fcafdc

Please sign in to comment.