EMMA Coverage Report (generated Wed Jun 22 19:47:49 EDT 2011)
[all classes][org.jclouds]

COVERAGE SUMMARY FOR SOURCE FILE [PropertiesBuilder.java]

nameclass, %method, %block, %line, %
PropertiesBuilder.java100% (1/1)52%  (14/27)55%  (169/307)61%  (41/67)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class PropertiesBuilder100% (1/1)52%  (14/27)55%  (169/307)61%  (41/67)
limitConnectionsTo (int): PropertiesBuilder 0%   (0/1)0%   (0/9)0%   (0/2)
limitUserThreadsTo (int): PropertiesBuilder 0%   (0/1)0%   (0/9)0%   (0/2)
relaxSSLHostname (boolean): PropertiesBuilder 0%   (0/1)0%   (0/15)0%   (0/2)
sessionInterval (long): PropertiesBuilder 0%   (0/1)0%   (0/15)0%   (0/2)
trustAllCerts (boolean): PropertiesBuilder 0%   (0/1)0%   (0/15)0%   (0/2)
useSystemProxies (boolean): PropertiesBuilder 0%   (0/1)0%   (0/15)0%   (0/2)
withConnectionTimeout (long): PropertiesBuilder 0%   (0/1)0%   (0/9)0%   (0/2)
withMaxRedirects (int): PropertiesBuilder 0%   (0/1)0%   (0/9)0%   (0/2)
withProxyHost (String): PropertiesBuilder 0%   (0/1)0%   (0/8)0%   (0/2)
withProxyPassword (String): PropertiesBuilder 0%   (0/1)0%   (0/8)0%   (0/2)
withProxyPort (int): PropertiesBuilder 0%   (0/1)0%   (0/9)0%   (0/2)
withProxyUser (String): PropertiesBuilder 0%   (0/1)0%   (0/8)0%   (0/2)
withSOTimeout (long): PropertiesBuilder 0%   (0/1)0%   (0/9)0%   (0/2)
PropertiesBuilder (): void 100% (1/1)100% (7/7)100% (3/3)
PropertiesBuilder (Properties): void 100% (1/1)100% (7/7)100% (3/3)
apiVersion (String): PropertiesBuilder 100% (1/1)100% (8/8)100% (2/2)
build (): Properties 100% (1/1)100% (3/3)100% (1/1)
credentials (String, String): PropertiesBuilder 100% (1/1)100% (16/16)100% (4/4)
defaultProperties (): Properties 100% (1/1)100% (56/56)100% (12/12)
endpoint (String): PropertiesBuilder 100% (1/1)100% (8/8)100% (2/2)
iso3166Codes (Iterable): PropertiesBuilder 100% (1/1)100% (11/11)100% (2/2)
limitConnectionsPerHostTo (int): PropertiesBuilder 100% (1/1)100% (9/9)100% (2/2)
limitIoWorkerThreadsTo (int): PropertiesBuilder 100% (1/1)100% (9/9)100% (2/2)
provider (String): PropertiesBuilder 100% (1/1)100% (8/8)100% (2/2)
withMaxClientReuse (int): PropertiesBuilder 100% (1/1)100% (9/9)100% (2/2)
withMaxRetries (int): PropertiesBuilder 100% (1/1)100% (9/9)100% (2/2)
withMaxSessionFailures (int): PropertiesBuilder 100% (1/1)100% (9/9)100% (2/2)

1/**
2 *
3 * Copyright (C) 2011 Cloud Conscious, LLC. <info@cloudconscious.com>
4 *
5 * ====================================================================
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
9 *
10 * http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
17 * ====================================================================
18 */
19package org.jclouds;
20 
21import static org.jclouds.Constants.PROPERTY_API_VERSION;
22import static org.jclouds.Constants.PROPERTY_CONNECTION_TIMEOUT;
23import static org.jclouds.Constants.PROPERTY_CREDENTIAL;
24import static org.jclouds.Constants.PROPERTY_ENDPOINT;
25import static org.jclouds.Constants.PROPERTY_IDENTITY;
26import static org.jclouds.Constants.PROPERTY_IO_WORKER_THREADS;
27import static org.jclouds.Constants.PROPERTY_ISO3166_CODES;
28import static org.jclouds.Constants.PROPERTY_MAX_CONNECTIONS_PER_CONTEXT;
29import static org.jclouds.Constants.PROPERTY_MAX_CONNECTIONS_PER_HOST;
30import static org.jclouds.Constants.PROPERTY_MAX_CONNECTION_REUSE;
31import static org.jclouds.Constants.PROPERTY_MAX_REDIRECTS;
32import static org.jclouds.Constants.PROPERTY_MAX_RETRIES;
33import static org.jclouds.Constants.PROPERTY_MAX_SESSION_FAILURES;
34import static org.jclouds.Constants.PROPERTY_PROVIDER;
35import static org.jclouds.Constants.PROPERTY_PROXY_HOST;
36import static org.jclouds.Constants.PROPERTY_PROXY_PASSWORD;
37import static org.jclouds.Constants.PROPERTY_PROXY_PORT;
38import static org.jclouds.Constants.PROPERTY_PROXY_SYSTEM;
39import static org.jclouds.Constants.PROPERTY_PROXY_USER;
40import static org.jclouds.Constants.PROPERTY_RELAX_HOSTNAME;
41import static org.jclouds.Constants.PROPERTY_SESSION_INTERVAL;
42import static org.jclouds.Constants.PROPERTY_SO_TIMEOUT;
43import static org.jclouds.Constants.PROPERTY_TRUST_ALL_CERTS;
44import static org.jclouds.Constants.PROPERTY_USER_THREADS;
45 
46import java.util.Properties;
47 
48import javax.annotation.Nullable;
49 
50import com.google.common.annotations.VisibleForTesting;
51import com.google.common.base.Joiner;
52 
53/**
54 * Builds properties used in Http engines
55 * 
56 * @author Adrian Cole, Andrew Newdigate
57 */
58public class PropertiesBuilder {
59 
60   /**
61    * @see org.jclouds.Constants.PROPERTY_RELAX_HOSTNAME
62    */
63   public PropertiesBuilder relaxSSLHostname(boolean relax) {
64      properties.setProperty(PROPERTY_RELAX_HOSTNAME, relax + "");
65      return this;
66   }
67 
68   /**
69    * @see org.jclouds.Constants.PROPERTY_TRUST_ALL_CERTS
70    */
71   public PropertiesBuilder trustAllCerts(boolean trust) {
72      properties.setProperty(PROPERTY_TRUST_ALL_CERTS, trust + "");
73      return this;
74   }
75 
76   /**
77    * @see org.jclouds.Constants.PROPERTY_PROXY_SYSTEM
78    */
79   public PropertiesBuilder useSystemProxies(boolean useSystemProxies) {
80      properties.setProperty(PROPERTY_PROXY_SYSTEM, useSystemProxies + "");
81      return this;
82   }
83 
84   /**
85    * @see org.jclouds.Constants.PROPERTY_PROXY_HOST
86    */
87   public PropertiesBuilder withProxyHost(String proxyHost) {
88      properties.setProperty(PROPERTY_PROXY_HOST, proxyHost);
89      return this;
90   }
91 
92   /**
93    * @see org.jclouds.Constants.PROPERTY_PROXY_PORT
94    */
95   public PropertiesBuilder withProxyPort(int proxyPort) {
96      properties.setProperty(PROPERTY_PROXY_PORT, Integer.toString(proxyPort));
97      return this;
98   }
99 
100   /**
101    * @see org.jclouds.Constants.PROPERTY_PROXY_USER
102    */
103   public PropertiesBuilder withProxyUser(String proxyUser) {
104      properties.setProperty(PROPERTY_PROXY_USER, proxyUser);
105      return this;
106   }
107 
108   /**
109    * @see org.jclouds.Constants.PROPERTY_PROXY_PASSWORD
110    */
111   public PropertiesBuilder withProxyPassword(String proxyPassword) {
112      properties.setProperty(PROPERTY_PROXY_PASSWORD, proxyPassword);
113      return this;
114   }
115 
116   /**
117    * @see org.jclouds.Constants.PROPERTY_SO_TIMEOUT
118    */
119   public PropertiesBuilder withSOTimeout(long soTimeout) {
120      properties.setProperty(PROPERTY_SO_TIMEOUT, Long.toString(soTimeout));
121      return this;
122   }
123 
124   /**
125    * @see org.jclouds.Constants.PROPERTY_CONNECTION_TIMEOUT
126    */
127   public PropertiesBuilder withConnectionTimeout(long connectionTimeout) {
128      properties.setProperty(PROPERTY_CONNECTION_TIMEOUT, Long.toString(connectionTimeout));
129      return this;
130   }
131 
132   /**
133    * @see org.jclouds.Constants.PROPERTY_MAX_RETRIES
134    */
135   public PropertiesBuilder withMaxRetries(int httpMaxRetries) {
136      properties.setProperty(PROPERTY_MAX_RETRIES, Integer.toString(httpMaxRetries));
137      return this;
138   }
139 
140   /**
141    * @see org.jclouds.Constants.PROPERTY_MAX_REDIRECTS
142    */
143   public PropertiesBuilder withMaxRedirects(int httpMaxRedirects) {
144      properties.setProperty(PROPERTY_MAX_REDIRECTS, Integer.toString(httpMaxRedirects));
145      return this;
146   }
147 
148   /**
149    * @see org.jclouds.Constants.PROPERTY_MAX_CONNECTION_REUSE
150    */
151   public PropertiesBuilder withMaxClientReuse(int poolMaxClientReuse) {
152      properties.setProperty(PROPERTY_MAX_CONNECTION_REUSE, Integer.toString(poolMaxClientReuse));
153      return this;
154   }
155 
156   /**
157    * @see org.jclouds.Constants.PROPERTY_MAX_SESSION_FAILURES
158    */
159   public PropertiesBuilder withMaxSessionFailures(int poolMaxSessionFailures) {
160      properties.setProperty(PROPERTY_MAX_SESSION_FAILURES, Integer.toString(poolMaxSessionFailures));
161      return this;
162 
163   }
164 
165   /**
166    * @see org.jclouds.Constants.PROPERTY_IO_WORKER_THREADS
167    */
168   public PropertiesBuilder limitIoWorkerThreadsTo(int poolIoWorkerThreads) {
169      properties.setProperty(PROPERTY_IO_WORKER_THREADS, Integer.toString(poolIoWorkerThreads));
170      return this;
171   }
172 
173   /**
174    * @see org.jclouds.Constants.PROPERTY_IO_WORKER_THREADS
175    */
176   public PropertiesBuilder limitUserThreadsTo(int poolIoWorkerThreads) {
177      properties.setProperty(PROPERTY_USER_THREADS, Integer.toString(poolIoWorkerThreads));
178      return this;
179   }
180 
181   /**
182    * @see org.jclouds.Constants.PROPERTY_MAX_CONNECTIONS_PER_CONTEXT
183    */
184   public PropertiesBuilder limitConnectionsTo(int connectionLimit) {
185      properties.setProperty(PROPERTY_MAX_CONNECTIONS_PER_CONTEXT, Integer.toString(connectionLimit));
186      return this;
187   }
188 
189   /**
190    * @see org.jclouds.Constants.PROPERTY_MAX_CONNECTIONS_PER_HOST
191    */
192   public PropertiesBuilder limitConnectionsPerHostTo(int connectionLimit) {
193      properties.setProperty(PROPERTY_MAX_CONNECTIONS_PER_HOST, Integer.toString(connectionLimit));
194      return this;
195   }
196 
197   protected final Properties properties;
198 
199   public PropertiesBuilder() {
200      this.properties = defaultProperties();
201   }
202 
203   protected Properties defaultProperties() {
204      Properties props = new Properties();
205      props.setProperty(PROPERTY_ISO3166_CODES, "");
206      props.setProperty(PROPERTY_MAX_CONNECTIONS_PER_CONTEXT, 20 + "");
207      props.setProperty(PROPERTY_MAX_CONNECTIONS_PER_HOST, 0 + "");
208      props.setProperty(PROPERTY_SO_TIMEOUT, 60000 + "");
209      props.setProperty(PROPERTY_CONNECTION_TIMEOUT, 60000 + "");
210      props.setProperty(PROPERTY_IO_WORKER_THREADS, 20 + "");
211      props.setProperty(PROPERTY_USER_THREADS, 0 + "");
212      props.setProperty(PROPERTY_MAX_CONNECTION_REUSE, 75 + "");
213      props.setProperty(PROPERTY_MAX_SESSION_FAILURES, 2 + "");
214      props.setProperty(PROPERTY_SESSION_INTERVAL, 60 + "");
215      return props;
216   }
217 
218   public PropertiesBuilder(Properties properties) {
219      this();
220      this.properties.putAll(properties);
221   }
222 
223   public PropertiesBuilder provider(String providerName) {
224      properties.setProperty(PROPERTY_PROVIDER, providerName);
225      return this;
226   }
227 
228   public PropertiesBuilder endpoint(String endpoint) {
229      properties.setProperty(PROPERTY_ENDPOINT, endpoint);
230      return this;
231   }
232 
233   public PropertiesBuilder iso3166Codes(Iterable<String> codes) {
234      properties.setProperty(PROPERTY_ISO3166_CODES, Joiner.on(',').join(codes));
235      return this;
236   }
237 
238   public PropertiesBuilder apiVersion(String apiVersion) {
239      properties.setProperty(PROPERTY_API_VERSION, apiVersion);
240      return this;
241   }
242 
243   public PropertiesBuilder credentials(String identity, @Nullable String credential) {
244      properties.setProperty(PROPERTY_IDENTITY, identity);
245      if (credential != null)
246         properties.setProperty(PROPERTY_CREDENTIAL, credential);
247      return this;
248   }
249 
250   public PropertiesBuilder sessionInterval(long seconds) {
251      properties.setProperty(PROPERTY_SESSION_INTERVAL, seconds + "");
252      return this;
253   }
254 
255   @VisibleForTesting
256   public Properties build() {
257      return properties;
258   }
259}

[all classes][org.jclouds]
EMMA 2.0.5312 (C) Vladimir Roubtsov