1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.eclipse.jetty.client.http;
20
21 import java.io.IOException;
22 import java.util.Map;
23
24 import org.eclipse.jetty.client.AbstractHttpClientTransport;
25 import org.eclipse.jetty.client.HttpDestination;
26 import org.eclipse.jetty.client.Origin;
27 import org.eclipse.jetty.client.api.Connection;
28 import org.eclipse.jetty.io.EndPoint;
29 import org.eclipse.jetty.util.Promise;
30 import org.eclipse.jetty.util.annotation.ManagedObject;
31
32 @ManagedObject("The HTTP/1.1 client transport")
33 public class HttpClientTransportOverHTTP extends AbstractHttpClientTransport
34 {
35 public HttpClientTransportOverHTTP()
36 {
37 this(Math.max(1, Runtime.getRuntime().availableProcessors() / 2));
38 }
39
40 public HttpClientTransportOverHTTP(int selectors)
41 {
42 super(selectors);
43 }
44
45 @Override
46 public HttpDestination newHttpDestination(Origin origin)
47 {
48 return new HttpDestinationOverHTTP(getHttpClient(), origin);
49 }
50
51 @Override
52 public org.eclipse.jetty.io.Connection newConnection(EndPoint endPoint, Map<String, Object> context) throws IOException
53 {
54 HttpDestination destination = (HttpDestination)context.get(HTTP_DESTINATION_CONTEXT_KEY);
55 @SuppressWarnings("unchecked")
56 Promise<Connection> promise = (Promise<Connection>)context.get(HTTP_CONNECTION_PROMISE_CONTEXT_KEY);
57 HttpConnectionOverHTTP connection = newHttpConnection(endPoint, destination, promise);
58 if (LOG.isDebugEnabled())
59 LOG.debug("Created {}", connection);
60 return connection;
61 }
62
63 protected HttpConnectionOverHTTP newHttpConnection(EndPoint endPoint, HttpDestination destination, Promise<Connection> promise)
64 {
65 return new HttpConnectionOverHTTP(endPoint, destination, promise);
66 }
67 }