1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.eclipse.jetty.alpn.client;
20
21 import java.io.IOException;
22 import java.util.Map;
23 import java.util.concurrent.Executor;
24
25 import javax.net.ssl.SSLEngine;
26
27 import org.eclipse.jetty.io.ClientConnectionFactory;
28 import org.eclipse.jetty.io.Connection;
29 import org.eclipse.jetty.io.EndPoint;
30 import org.eclipse.jetty.io.NegotiatingClientConnectionFactory;
31 import org.eclipse.jetty.io.ssl.SslClientConnectionFactory;
32
33 public class ALPNClientConnectionFactory extends NegotiatingClientConnectionFactory
34 {
35 private final Executor executor;
36 private final String protocol;
37
38 public ALPNClientConnectionFactory(Executor executor, ClientConnectionFactory connectionFactory, String protocol)
39 {
40 super(connectionFactory);
41 this.executor = executor;
42 this.protocol = protocol;
43 }
44
45 @Override
46 public Connection newConnection(EndPoint endPoint, Map<String, Object> context) throws IOException
47 {
48 return new ALPNClientConnection(endPoint, executor, getClientConnectionFactory(),
49 (SSLEngine)context.get(SslClientConnectionFactory.SSL_ENGINE_CONTEXT_KEY), context, protocol);
50 }
51 }