1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 package org.apache.http.conn.params;
28
29 import java.util.Map;
30 import java.util.concurrent.ConcurrentHashMap;
31
32 import org.apache.http.annotation.Contract;
33 import org.apache.http.annotation.ThreadingBehavior;
34 import org.apache.http.conn.routing.HttpRoute;
35 import org.apache.http.util.Args;
36
37
38
39
40
41
42
43
44
45
46
47 @Deprecated
48 @Contract(threading = ThreadingBehavior.SAFE)
49 public final class ConnPerRouteBean implements ConnPerRoute {
50
51
52 public static final int DEFAULT_MAX_CONNECTIONS_PER_ROUTE = 2;
53
54 private final ConcurrentHashMap<HttpRoute, Integer> maxPerHostMap;
55
56 private volatile int defaultMax;
57
58 public ConnPerRouteBean(final int defaultMax) {
59 super();
60 this.maxPerHostMap = new ConcurrentHashMap<HttpRoute, Integer>();
61 setDefaultMaxPerRoute(defaultMax);
62 }
63
64 public ConnPerRouteBean() {
65 this(DEFAULT_MAX_CONNECTIONS_PER_ROUTE);
66 }
67
68 public int getDefaultMax() {
69 return this.defaultMax;
70 }
71
72
73
74
75 public int getDefaultMaxPerRoute() {
76 return this.defaultMax;
77 }
78
79 public void setDefaultMaxPerRoute(final int max) {
80 Args.positive(max, "Default max per route");
81 this.defaultMax = max;
82 }
83
84 public void setMaxForRoute(final HttpRoute route, final int max) {
85 Args.notNull(route, "HTTP route");
86 Args.positive(max, "Max per route");
87 this.maxPerHostMap.put(route, Integer.valueOf(max));
88 }
89
90 @Override
91 public int getMaxForRoute(final HttpRoute route) {
92 Args.notNull(route, "HTTP route");
93 final Integer max = this.maxPerHostMap.get(route);
94 if (max != null) {
95 return max.intValue();
96 } else {
97 return this.defaultMax;
98 }
99 }
100
101 public void setMaxForRoutes(final Map<HttpRoute, Integer> map) {
102 if (map == null) {
103 return;
104 }
105 this.maxPerHostMap.clear();
106 this.maxPerHostMap.putAll(map);
107 }
108
109 @Override
110 public String toString() {
111 return this.maxPerHostMap.toString();
112 }
113
114 }