1 | package fr.sii.ogham.sms.builder.cloudhopper; | |
2 | ||
3 | import com.cloudhopper.smpp.pdu.EnquireLink; | |
4 | ||
5 | import fr.sii.ogham.core.builder.Builder; | |
6 | import fr.sii.ogham.core.builder.configuration.ConfigurationValueBuilder; | |
7 | import fr.sii.ogham.core.builder.configuration.ConfigurationValueBuilderHelper; | |
8 | import fr.sii.ogham.core.builder.configurer.Configurer; | |
9 | import fr.sii.ogham.core.builder.context.BuildContext; | |
10 | import fr.sii.ogham.core.builder.env.EnvironmentBuilder; | |
11 | import fr.sii.ogham.core.builder.retry.RetryBuilder; | |
12 | import fr.sii.ogham.core.fluent.AbstractParent; | |
13 | import fr.sii.ogham.core.retry.FixedDelayRetry; | |
14 | import fr.sii.ogham.sms.sender.impl.cloudhopper.KeepAliveOptions; | |
15 | import fr.sii.ogham.sms.sender.impl.cloudhopper.ReuseSessionOptions; | |
16 | ||
17 | /** | |
18 | * Configures Cloudhopper session management (timeouts, retry, session name...). | |
19 | * | |
20 | * @author Aurélien Baudet | |
21 | * | |
22 | */ | |
23 | public class SessionBuilder extends AbstractParent<CloudhopperBuilder> implements Builder<CloudhopperSessionOptions> { | |
24 | private final BuildContext buildContext; | |
25 | private final ConfigurationValueBuilderHelper<SessionBuilder, Long> bindValueBuilder; | |
26 | private final ConfigurationValueBuilderHelper<SessionBuilder, Long> connectValueBuilder; | |
27 | private final ConfigurationValueBuilderHelper<SessionBuilder, Long> requestExpiryValueBuilder; | |
28 | private final ConfigurationValueBuilderHelper<SessionBuilder, Long> windowMonitorInvervalValueBuilder; | |
29 | private final ConfigurationValueBuilderHelper<SessionBuilder, Long> windowWaitValueBuilder; | |
30 | private final ConfigurationValueBuilderHelper<SessionBuilder, Integer> windowSizeValueBuilder; | |
31 | private final ConfigurationValueBuilderHelper<SessionBuilder, Long> writeValueBuilder; | |
32 | private final ConfigurationValueBuilderHelper<SessionBuilder, Long> responseValueBuilder; | |
33 | private final ConfigurationValueBuilderHelper<SessionBuilder, Long> unbindValueBuilder; | |
34 | private final ConfigurationValueBuilderHelper<SessionBuilder, String> sessionNameValueBuilder; | |
35 | private RetryBuilder<SessionBuilder> connectRetryBuilder; | |
36 | private ReuseSessionBuilder reuseSessionBuilder; | |
37 | private KeepAliveBuilder keepAliveBuilder; | |
38 | ||
39 | /** | |
40 | * Initializes the builder with a parent builder. The parent builder is used | |
41 | * when calling {@link #and()} method. The {@link EnvironmentBuilder} is | |
42 | * used to evaluate properties when {@link #build()} method is called. | |
43 | * | |
44 | * @param parent | |
45 | * the parent builder | |
46 | * @param buildContext | |
47 | * for registering instances and property evaluation | |
48 | */ | |
49 | public SessionBuilder(CloudhopperBuilder parent, BuildContext buildContext) { | |
50 | super(parent); | |
51 | this.buildContext = buildContext; | |
52 | bindValueBuilder = buildContext.newConfigurationValueBuilder(this, Long.class); | |
53 | connectValueBuilder = buildContext.newConfigurationValueBuilder(this, Long.class); | |
54 | requestExpiryValueBuilder = buildContext.newConfigurationValueBuilder(this, Long.class); | |
55 | windowMonitorInvervalValueBuilder = buildContext.newConfigurationValueBuilder(this, Long.class); | |
56 | windowWaitValueBuilder = buildContext.newConfigurationValueBuilder(this, Long.class); | |
57 | windowSizeValueBuilder = buildContext.newConfigurationValueBuilder(this, Integer.class); | |
58 | writeValueBuilder = buildContext.newConfigurationValueBuilder(this, Long.class); | |
59 | responseValueBuilder = buildContext.newConfigurationValueBuilder(this, Long.class); | |
60 | unbindValueBuilder = buildContext.newConfigurationValueBuilder(this, Long.class); | |
61 | sessionNameValueBuilder = buildContext.newConfigurationValueBuilder(this, String.class); | |
62 | } | |
63 | ||
64 | /** | |
65 | * A name for the session (used to name threads). | |
66 | * | |
67 | * <p> | |
68 | * The value set using this method takes precedence over any property and | |
69 | * default value configured using {@link #sessionName()}. | |
70 | * | |
71 | * <pre> | |
72 | * .sessionName("my-name") | |
73 | * .sessionName() | |
74 | * .properties("${custom.property.high-priority}", "${custom.property.low-priority}") | |
75 | * .defaultValue("default-name") | |
76 | * </pre> | |
77 | * | |
78 | * <pre> | |
79 | * .sessionName("my-name") | |
80 | * .sessionName() | |
81 | * .properties("${custom.property.high-priority}", "${custom.property.low-priority}") | |
82 | * .defaultValue("default-name") | |
83 | * </pre> | |
84 | * | |
85 | * In both cases, {@code sessionName("my-name")} is used. | |
86 | * | |
87 | * <p> | |
88 | * If this method is called several times, only the last value is used. | |
89 | * | |
90 | * <p> | |
91 | * If {@code null} value is set, it is like not setting a value at all. The | |
92 | * property/default value configuration is applied. | |
93 | * | |
94 | * @param name | |
95 | * the name for the session | |
96 | * @return this instance for fluent chaining | |
97 | */ | |
98 | public SessionBuilder sessionName(String name) { | |
99 |
1
1. sessionName : removed call to fr/sii/ogham/core/builder/configuration/ConfigurationValueBuilderHelper::setValue → NO_COVERAGE |
sessionNameValueBuilder.setValue(name); |
100 |
1
1. sessionName : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::sessionName → NO_COVERAGE |
return this; |
101 | } | |
102 | ||
103 | /** | |
104 | * A name for the session (used to name threads). | |
105 | * | |
106 | * <p> | |
107 | * This method is mainly used by {@link Configurer}s to register some | |
108 | * property keys and/or a default value. The aim is to let developer be able | |
109 | * to externalize its configuration (using system properties, configuration | |
110 | * file or anything else). If the developer doesn't configure any value for | |
111 | * the registered properties, the default value is used (if set). | |
112 | * | |
113 | * <pre> | |
114 | * .sessionName() | |
115 | * .properties("${custom.property.high-priority}", "${custom.property.low-priority}") | |
116 | * .defaultValue("default-name") | |
117 | * </pre> | |
118 | * | |
119 | * <p> | |
120 | * Non-null value set using {@link #sessionName(String)} takes precedence | |
121 | * over property values and default value. | |
122 | * | |
123 | * <pre> | |
124 | * .sessionName("my-name") | |
125 | * .sessionName() | |
126 | * .properties("${custom.property.high-priority}", "${custom.property.low-priority}") | |
127 | * .defaultValue("default-name") | |
128 | * </pre> | |
129 | * | |
130 | * The value {@code "my-name"} is used regardless of the value of the | |
131 | * properties and default value. | |
132 | * | |
133 | * <p> | |
134 | * See {@link ConfigurationValueBuilder} for more information. | |
135 | * | |
136 | * | |
137 | * @return the builder to configure property keys/default value | |
138 | */ | |
139 | public ConfigurationValueBuilder<SessionBuilder, String> sessionName() { | |
140 |
5
1. sessionName : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::sessionName → KILLED 2. sessionName : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::sessionName → KILLED 3. sessionName : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::sessionName → KILLED 4. sessionName : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::sessionName → KILLED 5. sessionName : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::sessionName → KILLED |
return sessionNameValueBuilder; |
141 | } | |
142 | ||
143 | /** | |
144 | * Set the maximum amount of time (in milliseconds) to wait for the success | |
145 | * of a bind attempt to the SMSC. Defaults to 5000. | |
146 | * | |
147 | * <p> | |
148 | * The value set using this method takes precedence over any property and | |
149 | * default value configured using {@link #bindTimeout()}. | |
150 | * | |
151 | * <pre> | |
152 | * .bindTimeout(1000L) | |
153 | * .bindTimeout() | |
154 | * .properties("${custom.property.high-priority}", "${custom.property.low-priority}") | |
155 | * .defaultValue(5000L) | |
156 | * </pre> | |
157 | * | |
158 | * <pre> | |
159 | * .bindTimeout(1000L) | |
160 | * .bindTimeout() | |
161 | * .properties("${custom.property.high-priority}", "${custom.property.low-priority}") | |
162 | * .defaultValue(5000L) | |
163 | * </pre> | |
164 | * | |
165 | * In both cases, {@code bindTimeout(1000L)} is used. | |
166 | * | |
167 | * <p> | |
168 | * If this method is called several times, only the last value is used. | |
169 | * | |
170 | * <p> | |
171 | * If {@code null} value is set, it is like not setting a value at all. The | |
172 | * property/default value configuration is applied. | |
173 | * | |
174 | * @param timeout | |
175 | * the timeout value in milliseconds | |
176 | * @return this instance for fluent chaining | |
177 | */ | |
178 | public SessionBuilder bindTimeout(Long timeout) { | |
179 |
1
1. bindTimeout : removed call to fr/sii/ogham/core/builder/configuration/ConfigurationValueBuilderHelper::setValue → NO_COVERAGE |
bindValueBuilder.setValue(timeout); |
180 |
1
1. bindTimeout : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::bindTimeout → NO_COVERAGE |
return this; |
181 | } | |
182 | ||
183 | /** | |
184 | * Set the maximum amount of time (in milliseconds) to wait for the success | |
185 | * of a bind attempt to the SMSC. Defaults to 5000. | |
186 | * | |
187 | * <p> | |
188 | * This method is mainly used by {@link Configurer}s to register some | |
189 | * property keys and/or a default value. The aim is to let developer be able | |
190 | * to externalize its configuration (using system properties, configuration | |
191 | * file or anything else). If the developer doesn't configure any value for | |
192 | * the registered properties, the default value is used (if set). | |
193 | * | |
194 | * <pre> | |
195 | * .bindTimeout() | |
196 | * .properties("${custom.property.high-priority}", "${custom.property.low-priority}") | |
197 | * .defaultValue(5000L) | |
198 | * </pre> | |
199 | * | |
200 | * <p> | |
201 | * Non-null value set using {@link #bindTimeout(Long)} takes precedence over | |
202 | * property values and default value. | |
203 | * | |
204 | * <pre> | |
205 | * .bindTimeout(1000L) | |
206 | * .bindTimeout() | |
207 | * .properties("${custom.property.high-priority}", "${custom.property.low-priority}") | |
208 | * .defaultValue(5000L) | |
209 | * </pre> | |
210 | * | |
211 | * The value {@code 1000L} is used regardless of the value of the properties | |
212 | * and default value. | |
213 | * | |
214 | * <p> | |
215 | * See {@link ConfigurationValueBuilder} for more information. | |
216 | * | |
217 | * | |
218 | * @return the builder to configure property keys/default value | |
219 | */ | |
220 | public ConfigurationValueBuilder<SessionBuilder, Long> bindTimeout() { | |
221 |
5
1. bindTimeout : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::bindTimeout → TIMED_OUT 2. bindTimeout : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::bindTimeout → KILLED 3. bindTimeout : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::bindTimeout → KILLED 4. bindTimeout : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::bindTimeout → KILLED 5. bindTimeout : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::bindTimeout → KILLED |
return bindValueBuilder; |
222 | } | |
223 | ||
224 | /** | |
225 | * Set the maximum amount of time (in milliseconds) to wait for a | |
226 | * establishing the connection. Defaults to 10000. | |
227 | * | |
228 | * <p> | |
229 | * The value set using this method takes precedence over any property and | |
230 | * default value configured using {@link #connectTimeout()}. | |
231 | * | |
232 | * <pre> | |
233 | * .connectTimeout(1000L) | |
234 | * .connectTimeout() | |
235 | * .properties("${custom.property.high-priority}", "${custom.property.low-priority}") | |
236 | * .defaultValue(5000L) | |
237 | * </pre> | |
238 | * | |
239 | * <pre> | |
240 | * .connectTimeout(1000L) | |
241 | * .connectTimeout() | |
242 | * .properties("${custom.property.high-priority}", "${custom.property.low-priority}") | |
243 | * .defaultValue(5000L) | |
244 | * </pre> | |
245 | * | |
246 | * In both cases, {@code connectTimeout(1000L)} is used. | |
247 | * | |
248 | * <p> | |
249 | * If this method is called several times, only the last value is used. | |
250 | * | |
251 | * <p> | |
252 | * If {@code null} value is set, it is like not setting a value at all. The | |
253 | * property/default value configuration is applied. | |
254 | * | |
255 | * @param timeout | |
256 | * the timeout in milliseconds | |
257 | * @return this instance for fluent chaining | |
258 | */ | |
259 | public SessionBuilder connectTimeout(Long timeout) { | |
260 |
1
1. connectTimeout : removed call to fr/sii/ogham/core/builder/configuration/ConfigurationValueBuilderHelper::setValue → NO_COVERAGE |
connectValueBuilder.setValue(timeout); |
261 |
1
1. connectTimeout : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::connectTimeout → NO_COVERAGE |
return this; |
262 | } | |
263 | ||
264 | /** | |
265 | * Set the maximum amount of time (in milliseconds) to wait for a | |
266 | * establishing the connection. Defaults to 10000. | |
267 | * | |
268 | * <p> | |
269 | * This method is mainly used by {@link Configurer}s to register some | |
270 | * property keys and/or a default value. The aim is to let developer be able | |
271 | * to externalize its configuration (using system properties, configuration | |
272 | * file or anything else). If the developer doesn't configure any value for | |
273 | * the registered properties, the default value is used (if set). | |
274 | * | |
275 | * <pre> | |
276 | * .connectTimeout() | |
277 | * .properties("${custom.property.high-priority}", "${custom.property.low-priority}") | |
278 | * .defaultValue(5000L) | |
279 | * </pre> | |
280 | * | |
281 | * <p> | |
282 | * Non-null value set using {@link #connectTimeout(Long)} takes precedence | |
283 | * over property values and default value. | |
284 | * | |
285 | * <pre> | |
286 | * .connectTimeout(1000L) | |
287 | * .connectTimeout() | |
288 | * .properties("${custom.property.high-priority}", "${custom.property.low-priority}") | |
289 | * .defaultValue(5000L) | |
290 | * </pre> | |
291 | * | |
292 | * The value {@code 1000L} is used regardless of the value of the properties | |
293 | * and default value. | |
294 | * | |
295 | * <p> | |
296 | * See {@link ConfigurationValueBuilder} for more information. | |
297 | * | |
298 | * | |
299 | * @return the builder to configure property keys/default value | |
300 | */ | |
301 | public ConfigurationValueBuilder<SessionBuilder, Long> connectTimeout() { | |
302 |
5
1. connectTimeout : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::connectTimeout → KILLED 2. connectTimeout : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::connectTimeout → KILLED 3. connectTimeout : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::connectTimeout → KILLED 4. connectTimeout : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::connectTimeout → KILLED 5. connectTimeout : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::connectTimeout → KILLED |
return connectValueBuilder; |
303 | } | |
304 | ||
305 | /** | |
306 | * Configures how to handle a connection that fails. You can configure if | |
307 | * retry should be done when a connection to the server couldn't be | |
308 | * established. The builder lets you define the retry behavior. | |
309 | * | |
310 | * For now, only a {@link FixedDelayRetry} is handled. The | |
311 | * {@link FixedDelayRetry} needs a delay between two tries and a maximum | |
312 | * attempts. In the future, we could handle different strategies if needed | |
313 | * like retrying with an exponential delay for example. | |
314 | * | |
315 | * If you don't configure it, no retry is applied at all. | |
316 | * | |
317 | * @return the builder to configure the retry handling | |
318 | */ | |
319 | public RetryBuilder<SessionBuilder> connectRetry() { | |
320 |
5
1. connectRetry : negated conditional → KILLED 2. connectRetry : negated conditional → KILLED 3. connectRetry : negated conditional → KILLED 4. connectRetry : negated conditional → KILLED 5. connectRetry : negated conditional → KILLED |
if (connectRetryBuilder == null) { |
321 | connectRetryBuilder = new RetryBuilder<>(this, buildContext); | |
322 | } | |
323 |
5
1. connectRetry : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::connectRetry → KILLED 2. connectRetry : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::connectRetry → KILLED 3. connectRetry : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::connectRetry → KILLED 4. connectRetry : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::connectRetry → KILLED 5. connectRetry : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::connectRetry → KILLED |
return connectRetryBuilder; |
324 | } | |
325 | ||
326 | /** | |
327 | * Set the amount of time (milliseconds) to wait for an endpoint to respond | |
328 | * to a request before it expires. Defaults to disabled (-1). | |
329 | * | |
330 | * <p> | |
331 | * The value set using this method takes precedence over any property and | |
332 | * default value configured using {@link #requestExpiryTimeout()}. | |
333 | * | |
334 | * <pre> | |
335 | * .requestExpiryTimeout(1000L) | |
336 | * .requestExpiryTimeout() | |
337 | * .properties("${custom.property.high-priority}", "${custom.property.low-priority}") | |
338 | * .defaultValue(-1L) | |
339 | * </pre> | |
340 | * | |
341 | * <pre> | |
342 | * .requestExpiryTimeout(1000L) | |
343 | * .requestExpiryTimeout() | |
344 | * .properties("${custom.property.high-priority}", "${custom.property.low-priority}") | |
345 | * .defaultValue(-1L) | |
346 | * </pre> | |
347 | * | |
348 | * In both cases, {@code requestExpiryTimeout(1000L)} is used. | |
349 | * | |
350 | * <p> | |
351 | * If this method is called several times, only the last value is used. | |
352 | * | |
353 | * <p> | |
354 | * If {@code null} value is set, it is like not setting a value at all. The | |
355 | * property/default value configuration is applied. | |
356 | * | |
357 | * @param timeout | |
358 | * the timeout in milliseconds | |
359 | * @return this instance for fluent chaining | |
360 | */ | |
361 | public SessionBuilder requestExpiryTimeout(Long timeout) { | |
362 |
1
1. requestExpiryTimeout : removed call to fr/sii/ogham/core/builder/configuration/ConfigurationValueBuilderHelper::setValue → NO_COVERAGE |
requestExpiryValueBuilder.setValue(timeout); |
363 |
1
1. requestExpiryTimeout : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::requestExpiryTimeout → NO_COVERAGE |
return this; |
364 | } | |
365 | ||
366 | /** | |
367 | * Set the amount of time (milliseconds) to wait for an endpoint to respond | |
368 | * to a request before it expires. Defaults to disabled (-1). | |
369 | * | |
370 | * <p> | |
371 | * This method is mainly used by {@link Configurer}s to register some | |
372 | * property keys and/or a default value. The aim is to let developer be able | |
373 | * to externalize its configuration (using system properties, configuration | |
374 | * file or anything else). If the developer doesn't configure any value for | |
375 | * the registered properties, the default value is used (if set). | |
376 | * | |
377 | * <pre> | |
378 | * .requestExpiryTimeout() | |
379 | * .properties("${custom.property.high-priority}", "${custom.property.low-priority}") | |
380 | * .defaultValue(-1L) | |
381 | * </pre> | |
382 | * | |
383 | * <p> | |
384 | * Non-null value set using {@link #requestExpiryTimeout(Long)} takes | |
385 | * precedence over property values and default value. | |
386 | * | |
387 | * <pre> | |
388 | * .requestExpiryTimeout(1000L) | |
389 | * .requestExpiryTimeout() | |
390 | * .properties("${custom.property.high-priority}", "${custom.property.low-priority}") | |
391 | * .defaultValue(-1L) | |
392 | * </pre> | |
393 | * | |
394 | * The value {@code 1000L} is used regardless of the value of the properties | |
395 | * and default value. | |
396 | * | |
397 | * <p> | |
398 | * See {@link ConfigurationValueBuilder} for more information. | |
399 | * | |
400 | * | |
401 | * @return the builder to configure property keys/default value | |
402 | */ | |
403 | public ConfigurationValueBuilder<SessionBuilder, Long> requestExpiryTimeout() { | |
404 |
5
1. requestExpiryTimeout : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::requestExpiryTimeout → KILLED 2. requestExpiryTimeout : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::requestExpiryTimeout → KILLED 3. requestExpiryTimeout : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::requestExpiryTimeout → KILLED 4. requestExpiryTimeout : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::requestExpiryTimeout → KILLED 5. requestExpiryTimeout : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::requestExpiryTimeout → KILLED |
return requestExpiryValueBuilder; |
405 | } | |
406 | ||
407 | /** | |
408 | * Sets the amount of time (milliseconds) between executions of monitoring | |
409 | * the window for requests that expire. It's recommended that this generally | |
410 | * either matches or is half the value of requestExpiryTimeout. Therefore, | |
411 | * at worst a request would could take up 1.5X the requestExpiryTimeout to | |
412 | * clear out. Defaults to -1 (disabled). | |
413 | * | |
414 | * <p> | |
415 | * The value set using this method takes precedence over any property and | |
416 | * default value configured using {@link #windowMonitorInterval()}. | |
417 | * | |
418 | * <pre> | |
419 | * .windowMonitorInterval(1000L) | |
420 | * .windowMonitorInterval() | |
421 | * .properties("${custom.property.high-priority}", "${custom.property.low-priority}") | |
422 | * .defaultValue(-1L) | |
423 | * </pre> | |
424 | * | |
425 | * <pre> | |
426 | * .windowMonitorInterval(1000L) | |
427 | * .windowMonitorInterval() | |
428 | * .properties("${custom.property.high-priority}", "${custom.property.low-priority}") | |
429 | * .defaultValue(-1L) | |
430 | * </pre> | |
431 | * | |
432 | * In both cases, {@code windowMonitorInterval(1000L)} is used. | |
433 | * | |
434 | * <p> | |
435 | * If this method is called several times, only the last value is used. | |
436 | * | |
437 | * <p> | |
438 | * If {@code null} value is set, it is like not setting a value at all. The | |
439 | * property/default value configuration is applied. | |
440 | * | |
441 | * @param timeout | |
442 | * the tiemout in milliseconds | |
443 | * @return this instance for fluent chaining | |
444 | */ | |
445 | public SessionBuilder windowMonitorInterval(Long timeout) { | |
446 |
1
1. windowMonitorInterval : removed call to fr/sii/ogham/core/builder/configuration/ConfigurationValueBuilderHelper::setValue → NO_COVERAGE |
windowMonitorInvervalValueBuilder.setValue(timeout); |
447 |
1
1. windowMonitorInterval : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::windowMonitorInterval → NO_COVERAGE |
return this; |
448 | } | |
449 | ||
450 | /** | |
451 | * Sets the amount of time (milliseconds) between executions of monitoring | |
452 | * the window for requests that expire. It's recommended that this generally | |
453 | * either matches or is half the value of requestExpiryTimeout. Therefore, | |
454 | * at worst a request would could take up 1.5X the requestExpiryTimeout to | |
455 | * clear out. Defaults to -1 (disabled). | |
456 | * | |
457 | * <p> | |
458 | * This method is mainly used by {@link Configurer}s to register some | |
459 | * property keys and/or a default value. The aim is to let developer be able | |
460 | * to externalize its configuration (using system properties, configuration | |
461 | * file or anything else). If the developer doesn't configure any value for | |
462 | * the registered properties, the default value is used (if set). | |
463 | * | |
464 | * <pre> | |
465 | * .windowMonitorInterval() | |
466 | * .properties("${custom.property.high-priority}", "${custom.property.low-priority}") | |
467 | * .defaultValue(-1L) | |
468 | * </pre> | |
469 | * | |
470 | * <p> | |
471 | * Non-null value set using {@link #windowMonitorInterval(Long)} takes | |
472 | * precedence over property values and default value. | |
473 | * | |
474 | * <pre> | |
475 | * .windowMonitorInterval(1000L) | |
476 | * .windowMonitorInterval() | |
477 | * .properties("${custom.property.high-priority}", "${custom.property.low-priority}") | |
478 | * .defaultValue(-1L) | |
479 | * </pre> | |
480 | * | |
481 | * The value {@code 1000L} is used regardless of the value of the properties | |
482 | * and default value. | |
483 | * | |
484 | * <p> | |
485 | * See {@link ConfigurationValueBuilder} for more information. | |
486 | * | |
487 | * | |
488 | * @return the builder to configure property keys/default value | |
489 | */ | |
490 | public ConfigurationValueBuilder<SessionBuilder, Long> windowMonitorInterval() { | |
491 |
5
1. windowMonitorInterval : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::windowMonitorInterval → KILLED 2. windowMonitorInterval : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::windowMonitorInterval → KILLED 3. windowMonitorInterval : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::windowMonitorInterval → KILLED 4. windowMonitorInterval : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::windowMonitorInterval → KILLED 5. windowMonitorInterval : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::windowMonitorInterval → KILLED |
return windowMonitorInvervalValueBuilder; |
492 | } | |
493 | ||
494 | /** | |
495 | * Sets the maximum number of requests permitted to be outstanding | |
496 | * (unacknowledged) at a given time. Must be > 0. Defaults to 1. | |
497 | * | |
498 | * <p> | |
499 | * The value set using this method takes precedence over any property and | |
500 | * default value configured using {@link #windowSize()}. | |
501 | * | |
502 | * <pre> | |
503 | * .windowSize(5) | |
504 | * .windowSize() | |
505 | * .properties("${custom.property.high-priority}", "${custom.property.low-priority}") | |
506 | * .defaultValue(1) | |
507 | * </pre> | |
508 | * | |
509 | * <pre> | |
510 | * .windowSize(5) | |
511 | * .windowSize() | |
512 | * .properties("${custom.property.high-priority}", "${custom.property.low-priority}") | |
513 | * .defaultValue(1) | |
514 | * </pre> | |
515 | * | |
516 | * In both cases, {@code windowSize(5)} is used. | |
517 | * | |
518 | * <p> | |
519 | * If this method is called several times, only the last value is used. | |
520 | * | |
521 | * <p> | |
522 | * If {@code null} value is set, it is like not setting a value at all. The | |
523 | * property/default value configuration is applied. | |
524 | * | |
525 | * @param size | |
526 | * the window size | |
527 | * @return this instance for fluent chaining | |
528 | */ | |
529 | public SessionBuilder windowSize(Integer size) { | |
530 |
1
1. windowSize : removed call to fr/sii/ogham/core/builder/configuration/ConfigurationValueBuilderHelper::setValue → NO_COVERAGE |
windowSizeValueBuilder.setValue(size); |
531 |
1
1. windowSize : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::windowSize → NO_COVERAGE |
return this; |
532 | } | |
533 | ||
534 | /** | |
535 | * Sets the maximum number of requests permitted to be outstanding | |
536 | * (unacknowledged) at a given time. Must be > 0. Defaults to 1. | |
537 | * | |
538 | * <p> | |
539 | * This method is mainly used by {@link Configurer}s to register some | |
540 | * property keys and/or a default value. The aim is to let developer be able | |
541 | * to externalize its configuration (using system properties, configuration | |
542 | * file or anything else). If the developer doesn't configure any value for | |
543 | * the registered properties, the default value is used (if set). | |
544 | * | |
545 | * <pre> | |
546 | * .windowSize() | |
547 | * .properties("${custom.property.high-priority}", "${custom.property.low-priority}") | |
548 | * .defaultValue(1) | |
549 | * </pre> | |
550 | * | |
551 | * <p> | |
552 | * Non-null value set using {@link #windowSize(Integer)} takes precedence | |
553 | * over property values and default value. | |
554 | * | |
555 | * <pre> | |
556 | * .windowSize(5) | |
557 | * .windowSize() | |
558 | * .properties("${custom.property.high-priority}", "${custom.property.low-priority}") | |
559 | * .defaultValue(1) | |
560 | * </pre> | |
561 | * | |
562 | * The value {@code 5} is used regardless of the value of the properties and | |
563 | * default value. | |
564 | * | |
565 | * <p> | |
566 | * See {@link ConfigurationValueBuilder} for more information. | |
567 | * | |
568 | * | |
569 | * @return the builder to configure property keys/default value | |
570 | */ | |
571 | public ConfigurationValueBuilder<SessionBuilder, Integer> windowSize() { | |
572 |
5
1. windowSize : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::windowSize → KILLED 2. windowSize : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::windowSize → KILLED 3. windowSize : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::windowSize → KILLED 4. windowSize : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::windowSize → KILLED 5. windowSize : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::windowSize → KILLED |
return windowSizeValueBuilder; |
573 | } | |
574 | ||
575 | /** | |
576 | * Set the amount of time (milliseconds) to wait until a slot opens up in | |
577 | * the sendWindow. Defaults to 60000. | |
578 | * | |
579 | * <p> | |
580 | * The value set using this method takes precedence over any property and | |
581 | * default value configured using {@link #windowWait()}. | |
582 | * | |
583 | * <pre> | |
584 | * .windowWait(10000L) | |
585 | * .windowWait() | |
586 | * .properties("${custom.property.high-priority}", "${custom.property.low-priority}") | |
587 | * .defaultValue(60000L) | |
588 | * </pre> | |
589 | * | |
590 | * <pre> | |
591 | * .windowWait(10000L) | |
592 | * .windowWait() | |
593 | * .properties("${custom.property.high-priority}", "${custom.property.low-priority}") | |
594 | * .defaultValue(60000L) | |
595 | * </pre> | |
596 | * | |
597 | * In both cases, {@code windowWait(10000L)} is used. | |
598 | * | |
599 | * <p> | |
600 | * If this method is called several times, only the last value is used. | |
601 | * | |
602 | * <p> | |
603 | * If {@code null} value is set, it is like not setting a value at all. The | |
604 | * property/default value configuration is applied. | |
605 | * | |
606 | * @param duration | |
607 | * the amount of time in milliseconds to wait until a slot opens | |
608 | * up | |
609 | * @return this instance for fluent chaining | |
610 | */ | |
611 | public SessionBuilder windowWait(Long duration) { | |
612 |
1
1. windowWait : removed call to fr/sii/ogham/core/builder/configuration/ConfigurationValueBuilderHelper::setValue → NO_COVERAGE |
windowWaitValueBuilder.setValue(duration); |
613 |
1
1. windowWait : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::windowWait → NO_COVERAGE |
return this; |
614 | } | |
615 | ||
616 | /** | |
617 | * Set the amount of time (milliseconds) to wait until a slot opens up in | |
618 | * the sendWindow. Defaults to 60000. | |
619 | * | |
620 | * <p> | |
621 | * This method is mainly used by {@link Configurer}s to register some | |
622 | * property keys and/or a default value. The aim is to let developer be able | |
623 | * to externalize its configuration (using system properties, configuration | |
624 | * file or anything else). If the developer doesn't configure any value for | |
625 | * the registered properties, the default value is used (if set). | |
626 | * | |
627 | * <pre> | |
628 | * .windowWait() | |
629 | * .properties("${custom.property.high-priority}", "${custom.property.low-priority}") | |
630 | * .defaultValue(60000L) | |
631 | * </pre> | |
632 | * | |
633 | * <p> | |
634 | * Non-null value set using {@link #windowWait(Long)} takes precedence over | |
635 | * property values and default value. | |
636 | * | |
637 | * <pre> | |
638 | * .windowWait(10000L) | |
639 | * .windowWait() | |
640 | * .properties("${custom.property.high-priority}", "${custom.property.low-priority}") | |
641 | * .defaultValue(60000L) | |
642 | * </pre> | |
643 | * | |
644 | * The value {@code 10000L} is used regardless of the value of the | |
645 | * properties and default value. | |
646 | * | |
647 | * <p> | |
648 | * See {@link ConfigurationValueBuilder} for more information. | |
649 | * | |
650 | * | |
651 | * @return the builder to configure property keys/default value | |
652 | */ | |
653 | public ConfigurationValueBuilder<SessionBuilder, Long> windowWait() { | |
654 |
5
1. windowWait : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::windowWait → KILLED 2. windowWait : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::windowWait → KILLED 3. windowWait : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::windowWait → KILLED 4. windowWait : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::windowWait → KILLED 5. windowWait : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::windowWait → KILLED |
return windowWaitValueBuilder; |
655 | } | |
656 | ||
657 | /** | |
658 | * Set the maximum amount of time (in milliseconds) to wait for bytes to be | |
659 | * written when creating a new SMPP session. Defaults to 0 (no timeout, for | |
660 | * backwards compatibility). | |
661 | * | |
662 | * <p> | |
663 | * The value set using this method takes precedence over any property and | |
664 | * default value configured using {@link #writeTimeout()}. | |
665 | * | |
666 | * <pre> | |
667 | * .writeTimeout(10000L) | |
668 | * .writeTimeout() | |
669 | * .properties("${custom.property.high-priority}", "${custom.property.low-priority}") | |
670 | * .defaultValue(5000L) | |
671 | * </pre> | |
672 | * | |
673 | * <pre> | |
674 | * .writeTimeout(10000L) | |
675 | * .writeTimeout() | |
676 | * .properties("${custom.property.high-priority}", "${custom.property.low-priority}") | |
677 | * .defaultValue(5000L) | |
678 | * </pre> | |
679 | * | |
680 | * In both cases, {@code writeTimeout(10000L)} is used. | |
681 | * | |
682 | * <p> | |
683 | * If this method is called several times, only the last value is used. | |
684 | * | |
685 | * <p> | |
686 | * If {@code null} value is set, it is like not setting a value at all. The | |
687 | * property/default value configuration is applied. | |
688 | * | |
689 | * @param timeout | |
690 | * the timeout in milliseconds | |
691 | * @return this instance for fluent chaining | |
692 | */ | |
693 | public SessionBuilder writeTimeout(Long timeout) { | |
694 |
1
1. writeTimeout : removed call to fr/sii/ogham/core/builder/configuration/ConfigurationValueBuilderHelper::setValue → NO_COVERAGE |
writeValueBuilder.setValue(timeout); |
695 |
1
1. writeTimeout : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::writeTimeout → NO_COVERAGE |
return this; |
696 | } | |
697 | ||
698 | /** | |
699 | * Set the maximum amount of time (in milliseconds) to wait for bytes to be | |
700 | * written when creating a new SMPP session. Defaults to 0 (no timeout, for | |
701 | * backwards compatibility). | |
702 | * | |
703 | * <p> | |
704 | * This method is mainly used by {@link Configurer}s to register some | |
705 | * property keys and/or a default value. The aim is to let developer be able | |
706 | * to externalize its configuration (using system properties, configuration | |
707 | * file or anything else). If the developer doesn't configure any value for | |
708 | * the registered properties, the default value is used (if set). | |
709 | * | |
710 | * <pre> | |
711 | * .writeTimeout() | |
712 | * .properties("${custom.property.high-priority}", "${custom.property.low-priority}") | |
713 | * .defaultValue(5000L) | |
714 | * </pre> | |
715 | * | |
716 | * <p> | |
717 | * Non-null value set using {@link #writeTimeout(Long)} takes precedence | |
718 | * over property values and default value. | |
719 | * | |
720 | * <pre> | |
721 | * .writeTimeout(10000L) | |
722 | * .writeTimeout() | |
723 | * .properties("${custom.property.high-priority}", "${custom.property.low-priority}") | |
724 | * .defaultValue(5000L) | |
725 | * </pre> | |
726 | * | |
727 | * The value {@code 10000L} is used regardless of the value of the | |
728 | * properties and default value. | |
729 | * | |
730 | * <p> | |
731 | * See {@link ConfigurationValueBuilder} for more information. | |
732 | * | |
733 | * | |
734 | * @return the builder to configure property keys/default value | |
735 | */ | |
736 | public ConfigurationValueBuilder<SessionBuilder, Long> writeTimeout() { | |
737 |
5
1. writeTimeout : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::writeTimeout → KILLED 2. writeTimeout : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::writeTimeout → KILLED 3. writeTimeout : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::writeTimeout → KILLED 4. writeTimeout : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::writeTimeout → KILLED 5. writeTimeout : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::writeTimeout → KILLED |
return writeValueBuilder; |
738 | } | |
739 | ||
740 | /** | |
741 | * Set the maximum amount of time (in milliseconds) to wait until a valid | |
742 | * response is received when a "submit" request is synchronously sends to | |
743 | * the remote endpoint. The timeout value includes both waiting for a | |
744 | * "window" slot, the time it takes to transmit the actual bytes on the | |
745 | * socket, and for the remote endpoint to send a response back. Defaults to | |
746 | * 5000. | |
747 | * | |
748 | * <p> | |
749 | * The value set using this method takes precedence over any property and | |
750 | * default value configured using {@link #responseTimeout()}. | |
751 | * | |
752 | * <pre> | |
753 | * .responseTimeout(1000L) | |
754 | * .responseTimeout() | |
755 | * .properties("${custom.property.high-priority}", "${custom.property.low-priority}") | |
756 | * .defaultValue(5000L) | |
757 | * </pre> | |
758 | * | |
759 | * <pre> | |
760 | * .responseTimeout(1000L) | |
761 | * .responseTimeout() | |
762 | * .properties("${custom.property.high-priority}", "${custom.property.low-priority}") | |
763 | * .defaultValue(5000L) | |
764 | * </pre> | |
765 | * | |
766 | * In both cases, {@code responseTimeout(1000L)} is used. | |
767 | * | |
768 | * <p> | |
769 | * If this method is called several times, only the last value is used. | |
770 | * | |
771 | * <p> | |
772 | * If {@code null} value is set, it is like not setting a value at all. The | |
773 | * property/default value configuration is applied. | |
774 | * | |
775 | * @param timeout | |
776 | * the timeout in milliseconds | |
777 | * @return this instance for fluent chaining | |
778 | */ | |
779 | public SessionBuilder responseTimeout(Long timeout) { | |
780 |
2
1. responseTimeout : removed call to fr/sii/ogham/core/builder/configuration/ConfigurationValueBuilderHelper::setValue → SURVIVED 2. responseTimeout : removed call to fr/sii/ogham/core/builder/configuration/ConfigurationValueBuilderHelper::setValue → NO_COVERAGE |
responseValueBuilder.setValue(timeout); |
781 |
2
1. responseTimeout : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::responseTimeout → NO_COVERAGE 2. responseTimeout : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::responseTimeout → KILLED |
return this; |
782 | } | |
783 | ||
784 | /** | |
785 | * Set the maximum amount of time (in milliseconds) to wait until a valid | |
786 | * response is received when a "submit" request is synchronously sends to | |
787 | * the remote endpoint. The timeout value includes both waiting for a | |
788 | * "window" slot, the time it takes to transmit the actual bytes on the | |
789 | * socket, and for the remote endpoint to send a response back. Defaults to | |
790 | * 5000. | |
791 | * | |
792 | * <p> | |
793 | * This method is mainly used by {@link Configurer}s to register some | |
794 | * property keys and/or a default value. The aim is to let developer be able | |
795 | * to externalize its configuration (using system properties, configuration | |
796 | * file or anything else). If the developer doesn't configure any value for | |
797 | * the registered properties, the default value is used (if set). | |
798 | * | |
799 | * <pre> | |
800 | * .responseTimeout() | |
801 | * .properties("${custom.property.high-priority}", "${custom.property.low-priority}") | |
802 | * .defaultValue(5000L) | |
803 | * </pre> | |
804 | * | |
805 | * <p> | |
806 | * Non-null value set using {@link #responseTimeout(Long)} takes precedence | |
807 | * over property values and default value. | |
808 | * | |
809 | * <pre> | |
810 | * .responseTimeout(1000L) | |
811 | * .responseTimeout() | |
812 | * .properties("${custom.property.high-priority}", "${custom.property.low-priority}") | |
813 | * .defaultValue(5000L) | |
814 | * </pre> | |
815 | * | |
816 | * The value {@code 1000L} is used regardless of the value of the properties | |
817 | * and default value. | |
818 | * | |
819 | * <p> | |
820 | * See {@link ConfigurationValueBuilder} for more information. | |
821 | * | |
822 | * | |
823 | * @return the builder to configure property keys/default value | |
824 | */ | |
825 | public ConfigurationValueBuilder<SessionBuilder, Long> responseTimeout() { | |
826 |
5
1. responseTimeout : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::responseTimeout → KILLED 2. responseTimeout : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::responseTimeout → KILLED 3. responseTimeout : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::responseTimeout → KILLED 4. responseTimeout : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::responseTimeout → KILLED 5. responseTimeout : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::responseTimeout → KILLED |
return responseValueBuilder; |
827 | } | |
828 | ||
829 | /** | |
830 | * Set the maximum amount of time (in milliseconds) to wait until the | |
831 | * session is unbounded, waiting up to a specified period of milliseconds | |
832 | * for an unbind response from the remote endpoint. Regardless of whether a | |
833 | * proper unbind response was received, the socket/channel is closed. | |
834 | * Defaults to 5000. | |
835 | * | |
836 | * <p> | |
837 | * The value set using this method takes precedence over any property and | |
838 | * default value configured using {@link #unbindTimeout()}. | |
839 | * | |
840 | * <pre> | |
841 | * .unbindTimeout(10000L) | |
842 | * .unbindTimeout() | |
843 | * .properties("${custom.property.high-priority}", "${custom.property.low-priority}") | |
844 | * .defaultValue(5000L) | |
845 | * </pre> | |
846 | * | |
847 | * <pre> | |
848 | * .unbindTimeout(10000L) | |
849 | * .unbindTimeout() | |
850 | * .properties("${custom.property.high-priority}", "${custom.property.low-priority}") | |
851 | * .defaultValue(5000L) | |
852 | * </pre> | |
853 | * | |
854 | * In both cases, {@code unbindTimeout(10000L)} is used. | |
855 | * | |
856 | * <p> | |
857 | * If this method is called several times, only the last value is used. | |
858 | * | |
859 | * <p> | |
860 | * If {@code null} value is set, it is like not setting a value at all. The | |
861 | * property/default value configuration is applied. | |
862 | * | |
863 | * @param timeout | |
864 | * the timeout in milliseconds | |
865 | * @return this instance for fluent chaining | |
866 | */ | |
867 | public SessionBuilder unbindTimeout(Long timeout) { | |
868 |
1
1. unbindTimeout : removed call to fr/sii/ogham/core/builder/configuration/ConfigurationValueBuilderHelper::setValue → NO_COVERAGE |
unbindValueBuilder.setValue(timeout); |
869 |
1
1. unbindTimeout : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::unbindTimeout → NO_COVERAGE |
return this; |
870 | } | |
871 | ||
872 | /** | |
873 | * Set the maximum amount of time (in milliseconds) to wait until the | |
874 | * session is unbounded, waiting up to a specified period of milliseconds | |
875 | * for an unbind response from the remote endpoint. Regardless of whether a | |
876 | * proper unbind response was received, the socket/channel is closed. | |
877 | * Defaults to 5000. | |
878 | * | |
879 | * <p> | |
880 | * This method is mainly used by {@link Configurer}s to register some | |
881 | * property keys and/or a default value. The aim is to let developer be able | |
882 | * to externalize its configuration (using system properties, configuration | |
883 | * file or anything else). If the developer doesn't configure any value for | |
884 | * the registered properties, the default value is used (if set). | |
885 | * | |
886 | * <pre> | |
887 | * .unbindTimeout() | |
888 | * .properties("${custom.property.high-priority}", "${custom.property.low-priority}") | |
889 | * .defaultValue(5000L) | |
890 | * </pre> | |
891 | * | |
892 | * <p> | |
893 | * Non-null value set using {@link #unbindTimeout(Long)} takes precedence | |
894 | * over property values and default value. | |
895 | * | |
896 | * <pre> | |
897 | * .unbindTimeout(10000L) | |
898 | * .unbindTimeout() | |
899 | * .properties("${custom.property.high-priority}", "${custom.property.low-priority}") | |
900 | * .defaultValue(5000L) | |
901 | * </pre> | |
902 | * | |
903 | * The value {@code 10000L} is used regardless of the value of the | |
904 | * properties and default value. | |
905 | * | |
906 | * <p> | |
907 | * See {@link ConfigurationValueBuilder} for more information. | |
908 | * | |
909 | * | |
910 | * @return the builder to configure property keys/default value | |
911 | */ | |
912 | public ConfigurationValueBuilder<SessionBuilder, Long> unbindTimeout() { | |
913 |
5
1. unbindTimeout : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::unbindTimeout → KILLED 2. unbindTimeout : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::unbindTimeout → KILLED 3. unbindTimeout : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::unbindTimeout → KILLED 4. unbindTimeout : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::unbindTimeout → KILLED 5. unbindTimeout : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::unbindTimeout → KILLED |
return unbindValueBuilder; |
914 | } | |
915 | ||
916 | /** | |
917 | * Reuse the previous session instead of closing and reopening one if | |
918 | * possible. However, if the session has been closed by the remote server, a | |
919 | * new session will be created. | |
920 | * | |
921 | * <p> | |
922 | * When sending the first message, a new session is created. Later, when | |
923 | * sending the next message, if the session is still alive, this session is | |
924 | * reused. As the connection is not actively maintained, the session may be | |
925 | * killed by the server. Therefore to check if the session is still alive, | |
926 | * an {@link EnquireLink} request is sent. If a response is received from | |
927 | * the server, then the session is still alive and the message can be sent | |
928 | * using the same session. If a failure response or no response is received | |
929 | * after some time from the server, then a new session must be created. | |
930 | * | |
931 | * | |
932 | * <p> | |
933 | * To check if the session is still alive, the {@link EnquireLink} request | |
934 | * is sent just before sending the real message. In order to prevent sending | |
935 | * an {@link EnquireLink} request before <strong>every</strong> message, the | |
936 | * date of the last sent message or {@link EnquireLink} is kept. This date | |
937 | * is compared to a delay to ensure that no {@link EnquireLink} is sent | |
938 | * during this delay. | |
939 | * | |
940 | * <p> | |
941 | * This builder let you configure: | |
942 | * <ul> | |
943 | * <li>Enable/disable reuse session management</li> | |
944 | * <li>The maximum time to wait for a response from the server for | |
945 | * {@link EnquireLink} request</li> | |
946 | * <li>The time to wait before sending a new {@link EnquireLink} request | |
947 | * again</li> | |
948 | * </ul> | |
949 | * | |
950 | * <p> | |
951 | * <strong>NOTE:</strong> If {@link #keepAlive()} strategy is enabled, this | |
952 | * option has no effect. | |
953 | * | |
954 | * @return the builder to configure reuse session strategy | |
955 | */ | |
956 | public ReuseSessionBuilder reuseSession() { | |
957 |
5
1. reuseSession : negated conditional → KILLED 2. reuseSession : negated conditional → KILLED 3. reuseSession : negated conditional → KILLED 4. reuseSession : negated conditional → KILLED 5. reuseSession : negated conditional → KILLED |
if (reuseSessionBuilder == null) { |
958 | reuseSessionBuilder = new ReuseSessionBuilder(this, buildContext); | |
959 | } | |
960 |
5
1. reuseSession : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::reuseSession → KILLED 2. reuseSession : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::reuseSession → KILLED 3. reuseSession : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::reuseSession → KILLED 4. reuseSession : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::reuseSession → KILLED 5. reuseSession : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::reuseSession → KILLED |
return reuseSessionBuilder; |
961 | } | |
962 | ||
963 | /** | |
964 | * Configure keep alive management. Keep alive strategy actively maintains | |
965 | * the session opened by sending {@link EnquireLink} messages to the server. | |
966 | * | |
967 | * <p> | |
968 | * Even if client sends messages to keep session alive, the connection may | |
969 | * be broken or closed by the server. Therefore, automatic reconnection is | |
970 | * done. | |
971 | * | |
972 | * <p> | |
973 | * This builder let you configure: | |
974 | * <ul> | |
975 | * <li>Enable/disable active keep alive management</li> | |
976 | * <li>The time to wait between two {@link EnquireLink} messages</li> | |
977 | * <li>The maximum time to wait for a response from the server for | |
978 | * {@link EnquireLink} request</li> | |
979 | * </ul> | |
980 | * | |
981 | * <strong>NOTE:</strong> If this strategy is enabled, | |
982 | * {@link #reuseSession()} has no effect. | |
983 | * | |
984 | * @return the builder to configure keep alive management | |
985 | */ | |
986 | public KeepAliveBuilder keepAlive() { | |
987 |
5
1. keepAlive : negated conditional → KILLED 2. keepAlive : negated conditional → KILLED 3. keepAlive : negated conditional → KILLED 4. keepAlive : negated conditional → KILLED 5. keepAlive : negated conditional → KILLED |
if (keepAliveBuilder == null) { |
988 | keepAliveBuilder = new KeepAliveBuilder(this, buildContext); | |
989 | } | |
990 |
5
1. keepAlive : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::keepAlive → KILLED 2. keepAlive : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::keepAlive → KILLED 3. keepAlive : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::keepAlive → KILLED 4. keepAlive : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::keepAlive → KILLED 5. keepAlive : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::keepAlive → KILLED |
return keepAliveBuilder; |
991 | } | |
992 | ||
993 | @Override | |
994 | public CloudhopperSessionOptions build() { | |
995 | CloudhopperSessionOptions sessionOpts = buildContext.register(new CloudhopperSessionOptions()); | |
996 |
2
1. build : removed call to fr/sii/ogham/sms/builder/cloudhopper/CloudhopperSessionOptions::setBindTimeout → SURVIVED 2. build : removed call to fr/sii/ogham/sms/builder/cloudhopper/CloudhopperSessionOptions::setBindTimeout → KILLED |
sessionOpts.setBindTimeout(bindValueBuilder.getValue()); |
997 |
1
1. build : removed call to fr/sii/ogham/sms/builder/cloudhopper/CloudhopperSessionOptions::setConnectTimeout → SURVIVED |
sessionOpts.setConnectTimeout(connectValueBuilder.getValue()); |
998 |
1
1. build : removed call to fr/sii/ogham/sms/builder/cloudhopper/CloudhopperSessionOptions::setRequestExpiryTimeout → SURVIVED |
sessionOpts.setRequestExpiryTimeout(requestExpiryValueBuilder.getValue()); |
999 |
1
1. build : removed call to fr/sii/ogham/sms/builder/cloudhopper/CloudhopperSessionOptions::setWindowMonitorInterval → SURVIVED |
sessionOpts.setWindowMonitorInterval(windowMonitorInvervalValueBuilder.getValue()); |
1000 |
1
1. build : removed call to fr/sii/ogham/sms/builder/cloudhopper/CloudhopperSessionOptions::setWindowSize → SURVIVED |
sessionOpts.setWindowSize(windowSizeValueBuilder.getValue()); |
1001 |
1
1. build : removed call to fr/sii/ogham/sms/builder/cloudhopper/CloudhopperSessionOptions::setWindowWaitTimeout → SURVIVED |
sessionOpts.setWindowWaitTimeout(windowWaitValueBuilder.getValue()); |
1002 |
1
1. build : removed call to fr/sii/ogham/sms/builder/cloudhopper/CloudhopperSessionOptions::setWriteTimeout → SURVIVED |
sessionOpts.setWriteTimeout(writeValueBuilder.getValue()); |
1003 |
2
1. build : removed call to fr/sii/ogham/sms/builder/cloudhopper/CloudhopperSessionOptions::setResponseTimeout → SURVIVED 2. build : removed call to fr/sii/ogham/sms/builder/cloudhopper/CloudhopperSessionOptions::setResponseTimeout → KILLED |
sessionOpts.setResponseTimeout(responseValueBuilder.getValue()); |
1004 |
1
1. build : removed call to fr/sii/ogham/sms/builder/cloudhopper/CloudhopperSessionOptions::setUnbindTimeout → SURVIVED |
sessionOpts.setUnbindTimeout(unbindValueBuilder.getValue()); |
1005 |
2
1. build : negated conditional → SURVIVED 2. build : negated conditional → KILLED |
if (connectRetryBuilder != null) { |
1006 |
2
1. build : removed call to fr/sii/ogham/sms/builder/cloudhopper/CloudhopperSessionOptions::setConnectRetry → SURVIVED 2. build : removed call to fr/sii/ogham/sms/builder/cloudhopper/CloudhopperSessionOptions::setConnectRetry → KILLED |
sessionOpts.setConnectRetry(connectRetryBuilder.build()); |
1007 | } | |
1008 |
4
1. build : negated conditional → SURVIVED 2. build : removed call to fr/sii/ogham/sms/builder/cloudhopper/CloudhopperSessionOptions::setKeepAlive → SURVIVED 3. build : removed call to fr/sii/ogham/sms/builder/cloudhopper/CloudhopperSessionOptions::setKeepAlive → TIMED_OUT 4. build : negated conditional → KILLED |
sessionOpts.setKeepAlive(keepAliveBuilder != null ? keepAliveBuilder.build() : new KeepAliveOptions(false)); |
1009 |
4
1. build : negated conditional → SURVIVED 2. build : removed call to fr/sii/ogham/sms/builder/cloudhopper/CloudhopperSessionOptions::setReuseSession → SURVIVED 3. build : negated conditional → KILLED 4. build : removed call to fr/sii/ogham/sms/builder/cloudhopper/CloudhopperSessionOptions::setReuseSession → KILLED |
sessionOpts.setReuseSession(reuseSessionBuilder != null ? reuseSessionBuilder.build() : new ReuseSessionOptions(false)); |
1010 |
5
1. build : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::build → KILLED 2. build : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::build → KILLED 3. build : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::build → KILLED 4. build : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::build → KILLED 5. build : replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::build → KILLED |
return sessionOpts; |
1011 | } | |
1012 | ||
1013 | } | |
Mutations | ||
99 |
1.1 |
|
100 |
1.1 |
|
140 |
1.1 2.2 3.3 4.4 5.5 |
|
179 |
1.1 |
|
180 |
1.1 |
|
221 |
1.1 2.2 3.3 4.4 5.5 |
|
260 |
1.1 |
|
261 |
1.1 |
|
302 |
1.1 2.2 3.3 4.4 5.5 |
|
320 |
1.1 2.2 3.3 4.4 5.5 |
|
323 |
1.1 2.2 3.3 4.4 5.5 |
|
362 |
1.1 |
|
363 |
1.1 |
|
404 |
1.1 2.2 3.3 4.4 5.5 |
|
446 |
1.1 |
|
447 |
1.1 |
|
491 |
1.1 2.2 3.3 4.4 5.5 |
|
530 |
1.1 |
|
531 |
1.1 |
|
572 |
1.1 2.2 3.3 4.4 5.5 |
|
612 |
1.1 |
|
613 |
1.1 |
|
654 |
1.1 2.2 3.3 4.4 5.5 |
|
694 |
1.1 |
|
695 |
1.1 |
|
737 |
1.1 2.2 3.3 4.4 5.5 |
|
780 |
1.1 2.2 |
|
781 |
1.1 2.2 |
|
826 |
1.1 2.2 3.3 4.4 5.5 |
|
868 |
1.1 |
|
869 |
1.1 |
|
913 |
1.1 2.2 3.3 4.4 5.5 |
|
957 |
1.1 2.2 3.3 4.4 5.5 |
|
960 |
1.1 2.2 3.3 4.4 5.5 |
|
987 |
1.1 2.2 3.3 4.4 5.5 |
|
990 |
1.1 2.2 3.3 4.4 5.5 |
|
996 |
1.1 2.2 |
|
997 |
1.1 |
|
998 |
1.1 |
|
999 |
1.1 |
|
1000 |
1.1 |
|
1001 |
1.1 |
|
1002 |
1.1 |
|
1003 |
1.1 2.2 |
|
1004 |
1.1 |
|
1005 |
1.1 2.2 |
|
1006 |
1.1 2.2 |
|
1008 |
1.1 2.2 3.3 4.4 |
|
1009 |
1.1 2.2 3.3 4.4 |
|
1010 |
1.1 2.2 3.3 4.4 5.5 |