SessionBuilder.java

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 &gt; 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 &gt; 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
Location : sessionName
Killed by : none
removed call to fr/sii/ogham/core/builder/configuration/ConfigurationValueBuilderHelper::setValue → NO_COVERAGE

100

1.1
Location : sessionName
Killed by : none
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::sessionName → NO_COVERAGE

140

1.1
Location : sessionName
Killed by : oghamspringbootv1autoconfigure.it.OghamSpringBoot1JavaMailAutoConfigurationTests.oghamAloneShouldUseOghamProperties(oghamspringbootv1autoconfigure.it.OghamSpringBoot1JavaMailAutoConfigurationTests)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::sessionName → KILLED

2.2
Location : sessionName
Killed by : oghamall.it.html.translator.JsoupInlineCssTranslatorTest.notHtml(oghamall.it.html.translator.JsoupInlineCssTranslatorTest)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::sessionName → KILLED

3.3
Location : sessionName
Killed by : oghamsmsglobal.it.SmsglobalServiceProviderConfigurerSpec
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::sessionName → KILLED

4.4
Location : sessionName
Killed by : oghamspringbootv2autoconfigure.it.OghamSpringBoot2JavaMailAutoConfigurationTests.oghamPropertiesWithSpringPropsShouldUseOghamPropertiesPrecedence(oghamspringbootv2autoconfigure.it.OghamSpringBoot2JavaMailAutoConfigurationTests)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::sessionName → KILLED

5.5
Location : sessionName
Killed by : oghamcloudhopper.it.AutoRetryExtensionTest.smsNotRetriedDueToCloudhopperError(oghamcloudhopper.it.AutoRetryExtensionTest)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::sessionName → KILLED

179

1.1
Location : bindTimeout
Killed by : none
removed call to fr/sii/ogham/core/builder/configuration/ConfigurationValueBuilderHelper::setValue → NO_COVERAGE

180

1.1
Location : bindTimeout
Killed by : none
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::bindTimeout → NO_COVERAGE

221

1.1
Location : bindTimeout
Killed by : oghamall.it.html.translator.JsoupInlineCssTranslatorTest.notHtml(oghamall.it.html.translator.JsoupInlineCssTranslatorTest)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::bindTimeout → KILLED

2.2
Location : bindTimeout
Killed by : oghamsmsglobal.it.SmsglobalServiceProviderConfigurerSpec
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::bindTimeout → KILLED

3.3
Location : bindTimeout
Killed by : none
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::bindTimeout → TIMED_OUT

4.4
Location : bindTimeout
Killed by : oghamspringbootv1autoconfigure.it.OghamSpringBoot1JavaMailAutoConfigurationTests.oghamAloneShouldUseOghamProperties(oghamspringbootv1autoconfigure.it.OghamSpringBoot1JavaMailAutoConfigurationTests)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::bindTimeout → KILLED

5.5
Location : bindTimeout
Killed by : oghamcloudhopper.it.AutoRetryExtensionTest.smsNotRetriedDueToCloudhopperError(oghamcloudhopper.it.AutoRetryExtensionTest)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::bindTimeout → KILLED

260

1.1
Location : connectTimeout
Killed by : none
removed call to fr/sii/ogham/core/builder/configuration/ConfigurationValueBuilderHelper::setValue → NO_COVERAGE

261

1.1
Location : connectTimeout
Killed by : none
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::connectTimeout → NO_COVERAGE

302

1.1
Location : connectTimeout
Killed by : oghamspringbootv2autoconfigure.it.OghamSpringBoot2JavaMailAutoConfigurationTests.oghamPropertiesWithSpringPropsShouldUseOghamPropertiesPrecedence(oghamspringbootv2autoconfigure.it.OghamSpringBoot2JavaMailAutoConfigurationTests)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::connectTimeout → KILLED

2.2
Location : connectTimeout
Killed by : oghamcloudhopper.it.AutoRetryExtensionTest.smsNotRetriedDueToCloudhopperError(oghamcloudhopper.it.AutoRetryExtensionTest)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::connectTimeout → KILLED

3.3
Location : connectTimeout
Killed by : oghamall.it.html.translator.JsoupInlineCssTranslatorTest.notHtml(oghamall.it.html.translator.JsoupInlineCssTranslatorTest)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::connectTimeout → KILLED

4.4
Location : connectTimeout
Killed by : oghamsmsglobal.it.SmsglobalServiceProviderConfigurerSpec
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::connectTimeout → KILLED

5.5
Location : connectTimeout
Killed by : oghamspringbootv1autoconfigure.it.OghamSpringBoot1JavaMailAutoConfigurationTests.oghamAloneShouldUseOghamProperties(oghamspringbootv1autoconfigure.it.OghamSpringBoot1JavaMailAutoConfigurationTests)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::connectTimeout → KILLED

320

1.1
Location : connectRetry
Killed by : oghamspringbootv1autoconfigure.it.OghamSpringBoot1JavaMailAutoConfigurationTests.oghamAloneShouldUseOghamProperties(oghamspringbootv1autoconfigure.it.OghamSpringBoot1JavaMailAutoConfigurationTests)
negated conditional → KILLED

2.2
Location : connectRetry
Killed by : oghamspringbootv2autoconfigure.it.OghamSpringBoot2JavaMailAutoConfigurationTests.oghamPropertiesWithSpringPropsShouldUseOghamPropertiesPrecedence(oghamspringbootv2autoconfigure.it.OghamSpringBoot2JavaMailAutoConfigurationTests)
negated conditional → KILLED

3.3
Location : connectRetry
Killed by : oghamcloudhopper.it.SpecialCharactersTest.gsm8bit(oghamcloudhopper.it.SpecialCharactersTest)
negated conditional → KILLED

4.4
Location : connectRetry
Killed by : oghamall.it.html.translator.JsoupInlineCssTranslatorTest.notHtml(oghamall.it.html.translator.JsoupInlineCssTranslatorTest)
negated conditional → KILLED

5.5
Location : connectRetry
Killed by : oghamsmsglobal.it.SmsglobalServiceProviderConfigurerSpec
negated conditional → KILLED

323

1.1
Location : connectRetry
Killed by : oghamall.it.html.translator.JsoupInlineCssTranslatorTest.notHtml(oghamall.it.html.translator.JsoupInlineCssTranslatorTest)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::connectRetry → KILLED

2.2
Location : connectRetry
Killed by : oghamsmsglobal.it.SmsglobalServiceProviderConfigurerSpec
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::connectRetry → KILLED

3.3
Location : connectRetry
Killed by : oghamspringbootv2autoconfigure.it.OghamSpringBoot2JavaMailAutoConfigurationTests.oghamPropertiesWithSpringPropsShouldUseOghamPropertiesPrecedence(oghamspringbootv2autoconfigure.it.OghamSpringBoot2JavaMailAutoConfigurationTests)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::connectRetry → KILLED

4.4
Location : connectRetry
Killed by : oghamcloudhopper.it.SpecialCharactersTest.gsm8bit(oghamcloudhopper.it.SpecialCharactersTest)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::connectRetry → KILLED

5.5
Location : connectRetry
Killed by : oghamspringbootv1autoconfigure.it.OghamSpringBoot1JavaMailAutoConfigurationTests.oghamAloneShouldUseOghamProperties(oghamspringbootv1autoconfigure.it.OghamSpringBoot1JavaMailAutoConfigurationTests)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::connectRetry → KILLED

362

1.1
Location : requestExpiryTimeout
Killed by : none
removed call to fr/sii/ogham/core/builder/configuration/ConfigurationValueBuilderHelper::setValue → NO_COVERAGE

363

1.1
Location : requestExpiryTimeout
Killed by : none
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::requestExpiryTimeout → NO_COVERAGE

404

1.1
Location : requestExpiryTimeout
Killed by : oghamspringbootv1autoconfigure.it.OghamSpringBoot1JavaMailAutoConfigurationTests.oghamAloneShouldUseOghamProperties(oghamspringbootv1autoconfigure.it.OghamSpringBoot1JavaMailAutoConfigurationTests)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::requestExpiryTimeout → KILLED

2.2
Location : requestExpiryTimeout
Killed by : oghamcloudhopper.it.AutoRetryExtensionTest.smsNotRetriedDueToCloudhopperError(oghamcloudhopper.it.AutoRetryExtensionTest)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::requestExpiryTimeout → KILLED

3.3
Location : requestExpiryTimeout
Killed by : oghamspringbootv2autoconfigure.it.OghamSpringBoot2JavaMailAutoConfigurationTests.oghamPropertiesWithSpringPropsShouldUseOghamPropertiesPrecedence(oghamspringbootv2autoconfigure.it.OghamSpringBoot2JavaMailAutoConfigurationTests)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::requestExpiryTimeout → KILLED

4.4
Location : requestExpiryTimeout
Killed by : oghamsmsglobal.it.SmsglobalServiceProviderConfigurerSpec
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::requestExpiryTimeout → KILLED

5.5
Location : requestExpiryTimeout
Killed by : oghamall.it.html.translator.JsoupInlineCssTranslatorTest.notHtml(oghamall.it.html.translator.JsoupInlineCssTranslatorTest)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::requestExpiryTimeout → KILLED

446

1.1
Location : windowMonitorInterval
Killed by : none
removed call to fr/sii/ogham/core/builder/configuration/ConfigurationValueBuilderHelper::setValue → NO_COVERAGE

447

1.1
Location : windowMonitorInterval
Killed by : none
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::windowMonitorInterval → NO_COVERAGE

491

1.1
Location : windowMonitorInterval
Killed by : oghamsmsglobal.it.SmsglobalServiceProviderConfigurerSpec
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::windowMonitorInterval → KILLED

2.2
Location : windowMonitorInterval
Killed by : oghamall.it.html.translator.JsoupInlineCssTranslatorTest.notHtml(oghamall.it.html.translator.JsoupInlineCssTranslatorTest)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::windowMonitorInterval → KILLED

3.3
Location : windowMonitorInterval
Killed by : oghamspringbootv1autoconfigure.it.OghamSpringBoot1JavaMailAutoConfigurationTests.oghamAloneShouldUseOghamProperties(oghamspringbootv1autoconfigure.it.OghamSpringBoot1JavaMailAutoConfigurationTests)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::windowMonitorInterval → KILLED

4.4
Location : windowMonitorInterval
Killed by : oghamcloudhopper.it.AutoRetryExtensionTest.smsNotRetriedDueToCloudhopperError(oghamcloudhopper.it.AutoRetryExtensionTest)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::windowMonitorInterval → KILLED

5.5
Location : windowMonitorInterval
Killed by : oghamspringbootv2autoconfigure.it.OghamSpringBoot2JavaMailAutoConfigurationTests.oghamPropertiesWithSpringPropsShouldUseOghamPropertiesPrecedence(oghamspringbootv2autoconfigure.it.OghamSpringBoot2JavaMailAutoConfigurationTests)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::windowMonitorInterval → KILLED

530

1.1
Location : windowSize
Killed by : none
removed call to fr/sii/ogham/core/builder/configuration/ConfigurationValueBuilderHelper::setValue → NO_COVERAGE

531

1.1
Location : windowSize
Killed by : none
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::windowSize → NO_COVERAGE

572

1.1
Location : windowSize
Killed by : oghamspringbootv1autoconfigure.it.OghamSpringBoot1JavaMailAutoConfigurationTests.oghamAloneShouldUseOghamProperties(oghamspringbootv1autoconfigure.it.OghamSpringBoot1JavaMailAutoConfigurationTests)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::windowSize → KILLED

2.2
Location : windowSize
Killed by : oghamspringbootv2autoconfigure.it.OghamSpringBoot2JavaMailAutoConfigurationTests.oghamPropertiesWithSpringPropsShouldUseOghamPropertiesPrecedence(oghamspringbootv2autoconfigure.it.OghamSpringBoot2JavaMailAutoConfigurationTests)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::windowSize → KILLED

3.3
Location : windowSize
Killed by : oghamcloudhopper.it.AutoRetryExtensionTest.smsNotRetriedDueToCloudhopperError(oghamcloudhopper.it.AutoRetryExtensionTest)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::windowSize → KILLED

4.4
Location : windowSize
Killed by : oghamall.it.html.translator.JsoupInlineCssTranslatorTest.notHtml(oghamall.it.html.translator.JsoupInlineCssTranslatorTest)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::windowSize → KILLED

5.5
Location : windowSize
Killed by : oghamsmsglobal.it.SmsglobalServiceProviderConfigurerSpec
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::windowSize → KILLED

612

1.1
Location : windowWait
Killed by : none
removed call to fr/sii/ogham/core/builder/configuration/ConfigurationValueBuilderHelper::setValue → NO_COVERAGE

613

1.1
Location : windowWait
Killed by : none
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::windowWait → NO_COVERAGE

654

1.1
Location : windowWait
Killed by : oghamcloudhopper.it.AutoRetryExtensionTest.smsNotRetriedDueToCloudhopperError(oghamcloudhopper.it.AutoRetryExtensionTest)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::windowWait → KILLED

2.2
Location : windowWait
Killed by : oghamspringbootv2autoconfigure.it.OghamSpringBoot2JavaMailAutoConfigurationTests.oghamPropertiesWithSpringPropsShouldUseOghamPropertiesPrecedence(oghamspringbootv2autoconfigure.it.OghamSpringBoot2JavaMailAutoConfigurationTests)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::windowWait → KILLED

3.3
Location : windowWait
Killed by : oghamall.it.html.translator.JsoupInlineCssTranslatorTest.notHtml(oghamall.it.html.translator.JsoupInlineCssTranslatorTest)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::windowWait → KILLED

4.4
Location : windowWait
Killed by : oghamsmsglobal.it.SmsglobalServiceProviderConfigurerSpec
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::windowWait → KILLED

5.5
Location : windowWait
Killed by : oghamspringbootv1autoconfigure.it.OghamSpringBoot1JavaMailAutoConfigurationTests.oghamAloneShouldUseOghamProperties(oghamspringbootv1autoconfigure.it.OghamSpringBoot1JavaMailAutoConfigurationTests)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::windowWait → KILLED

694

1.1
Location : writeTimeout
Killed by : none
removed call to fr/sii/ogham/core/builder/configuration/ConfigurationValueBuilderHelper::setValue → NO_COVERAGE

695

1.1
Location : writeTimeout
Killed by : none
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::writeTimeout → NO_COVERAGE

737

1.1
Location : writeTimeout
Killed by : oghamspringbootv2autoconfigure.it.OghamSpringBoot2JavaMailAutoConfigurationTests.oghamPropertiesWithSpringPropsShouldUseOghamPropertiesPrecedence(oghamspringbootv2autoconfigure.it.OghamSpringBoot2JavaMailAutoConfigurationTests)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::writeTimeout → KILLED

2.2
Location : writeTimeout
Killed by : oghamspringbootv1autoconfigure.it.OghamSpringBoot1JavaMailAutoConfigurationTests.oghamAloneShouldUseOghamProperties(oghamspringbootv1autoconfigure.it.OghamSpringBoot1JavaMailAutoConfigurationTests)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::writeTimeout → KILLED

3.3
Location : writeTimeout
Killed by : oghamcloudhopper.it.AutoRetryExtensionTest.smsNotRetriedDueToCloudhopperError(oghamcloudhopper.it.AutoRetryExtensionTest)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::writeTimeout → KILLED

4.4
Location : writeTimeout
Killed by : oghamsmsglobal.it.SmsglobalServiceProviderConfigurerSpec
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::writeTimeout → KILLED

5.5
Location : writeTimeout
Killed by : oghamall.it.html.translator.JsoupInlineCssTranslatorTest.notHtml(oghamall.it.html.translator.JsoupInlineCssTranslatorTest)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::writeTimeout → KILLED

780

1.1
Location : responseTimeout
Killed by : none
removed call to fr/sii/ogham/core/builder/configuration/ConfigurationValueBuilderHelper::setValue → SURVIVED

2.2
Location : responseTimeout
Killed by : none
removed call to fr/sii/ogham/core/builder/configuration/ConfigurationValueBuilderHelper::setValue → NO_COVERAGE

781

1.1
Location : responseTimeout
Killed by : oghamcloudhopper.it.ReuseSessionStrategyTest.reuseSessionButSendFailsDueToSessionClosedByServer(oghamcloudhopper.it.ReuseSessionStrategyTest)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::responseTimeout → KILLED

2.2
Location : responseTimeout
Killed by : none
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::responseTimeout → NO_COVERAGE

826

1.1
Location : responseTimeout
Killed by : oghamsmsglobal.it.SmsglobalServiceProviderConfigurerSpec
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::responseTimeout → KILLED

2.2
Location : responseTimeout
Killed by : oghamall.it.html.translator.JsoupInlineCssTranslatorTest.notHtml(oghamall.it.html.translator.JsoupInlineCssTranslatorTest)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::responseTimeout → KILLED

3.3
Location : responseTimeout
Killed by : oghamspringbootv2autoconfigure.it.OghamSpringBoot2JavaMailAutoConfigurationTests.oghamPropertiesWithSpringPropsShouldUseOghamPropertiesPrecedence(oghamspringbootv2autoconfigure.it.OghamSpringBoot2JavaMailAutoConfigurationTests)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::responseTimeout → KILLED

4.4
Location : responseTimeout
Killed by : oghamspringbootv1autoconfigure.it.OghamSpringBoot1JavaMailAutoConfigurationTests.oghamAloneShouldUseOghamProperties(oghamspringbootv1autoconfigure.it.OghamSpringBoot1JavaMailAutoConfigurationTests)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::responseTimeout → KILLED

5.5
Location : responseTimeout
Killed by : oghamcloudhopper.it.AutoRetryExtensionTest.smsNotRetriedDueToCloudhopperError(oghamcloudhopper.it.AutoRetryExtensionTest)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::responseTimeout → KILLED

868

1.1
Location : unbindTimeout
Killed by : none
removed call to fr/sii/ogham/core/builder/configuration/ConfigurationValueBuilderHelper::setValue → NO_COVERAGE

869

1.1
Location : unbindTimeout
Killed by : none
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::unbindTimeout → NO_COVERAGE

913

1.1
Location : unbindTimeout
Killed by : oghamspringbootv2autoconfigure.it.OghamSpringBoot2JavaMailAutoConfigurationTests.oghamPropertiesWithSpringPropsShouldUseOghamPropertiesPrecedence(oghamspringbootv2autoconfigure.it.OghamSpringBoot2JavaMailAutoConfigurationTests)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::unbindTimeout → KILLED

2.2
Location : unbindTimeout
Killed by : oghamcloudhopper.it.AutoRetryExtensionTest.smsNotRetriedDueToCloudhopperError(oghamcloudhopper.it.AutoRetryExtensionTest)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::unbindTimeout → KILLED

3.3
Location : unbindTimeout
Killed by : oghamspringbootv1autoconfigure.it.OghamSpringBoot1JavaMailAutoConfigurationTests.oghamAloneShouldUseOghamProperties(oghamspringbootv1autoconfigure.it.OghamSpringBoot1JavaMailAutoConfigurationTests)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::unbindTimeout → KILLED

4.4
Location : unbindTimeout
Killed by : oghamall.it.html.translator.JsoupInlineCssTranslatorTest.notHtml(oghamall.it.html.translator.JsoupInlineCssTranslatorTest)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::unbindTimeout → KILLED

5.5
Location : unbindTimeout
Killed by : oghamsmsglobal.it.SmsglobalServiceProviderConfigurerSpec
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::unbindTimeout → KILLED

957

1.1
Location : reuseSession
Killed by : oghamspringbootv2autoconfigure.it.OghamSpringBoot2JavaMailAutoConfigurationTests.oghamPropertiesWithSpringPropsShouldUseOghamPropertiesPrecedence(oghamspringbootv2autoconfigure.it.OghamSpringBoot2JavaMailAutoConfigurationTests)
negated conditional → KILLED

2.2
Location : reuseSession
Killed by : oghamcloudhopper.it.ReuseSessionStrategyTest.reuseSessionButEnquireLinkTimeout(oghamcloudhopper.it.ReuseSessionStrategyTest)
negated conditional → KILLED

3.3
Location : reuseSession
Killed by : oghamsmsglobal.it.SmsglobalServiceProviderConfigurerSpec
negated conditional → KILLED

4.4
Location : reuseSession
Killed by : oghamall.it.html.translator.JsoupInlineCssTranslatorTest.notHtml(oghamall.it.html.translator.JsoupInlineCssTranslatorTest)
negated conditional → KILLED

5.5
Location : reuseSession
Killed by : oghamspringbootv1autoconfigure.it.OghamSpringBoot1JavaMailAutoConfigurationTests.oghamAloneShouldUseOghamProperties(oghamspringbootv1autoconfigure.it.OghamSpringBoot1JavaMailAutoConfigurationTests)
negated conditional → KILLED

960

1.1
Location : reuseSession
Killed by : oghamspringbootv2autoconfigure.it.OghamSpringBoot2JavaMailAutoConfigurationTests.oghamPropertiesWithSpringPropsShouldUseOghamPropertiesPrecedence(oghamspringbootv2autoconfigure.it.OghamSpringBoot2JavaMailAutoConfigurationTests)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::reuseSession → KILLED

2.2
Location : reuseSession
Killed by : oghamall.it.html.translator.JsoupInlineCssTranslatorTest.notHtml(oghamall.it.html.translator.JsoupInlineCssTranslatorTest)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::reuseSession → KILLED

3.3
Location : reuseSession
Killed by : oghamsmsglobal.it.SmsglobalServiceProviderConfigurerSpec
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::reuseSession → KILLED

4.4
Location : reuseSession
Killed by : oghamspringbootv1autoconfigure.it.OghamSpringBoot1JavaMailAutoConfigurationTests.oghamAloneShouldUseOghamProperties(oghamspringbootv1autoconfigure.it.OghamSpringBoot1JavaMailAutoConfigurationTests)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::reuseSession → KILLED

5.5
Location : reuseSession
Killed by : oghamcloudhopper.it.ReuseSessionStrategyTest.reuseSessionButEnquireLinkTimeout(oghamcloudhopper.it.ReuseSessionStrategyTest)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::reuseSession → KILLED

987

1.1
Location : keepAlive
Killed by : oghamcloudhopper.it.AutoRetryExtensionTest.smsNotRetriedDueToCloudhopperError(oghamcloudhopper.it.AutoRetryExtensionTest)
negated conditional → KILLED

2.2
Location : keepAlive
Killed by : oghamspringbootv1autoconfigure.it.OghamSpringBoot1JavaMailAutoConfigurationTests.oghamAloneShouldUseOghamProperties(oghamspringbootv1autoconfigure.it.OghamSpringBoot1JavaMailAutoConfigurationTests)
negated conditional → KILLED

3.3
Location : keepAlive
Killed by : oghamsmsglobal.it.SmsglobalServiceProviderConfigurerSpec
negated conditional → KILLED

4.4
Location : keepAlive
Killed by : oghamall.it.html.translator.JsoupInlineCssTranslatorTest.notHtml(oghamall.it.html.translator.JsoupInlineCssTranslatorTest)
negated conditional → KILLED

5.5
Location : keepAlive
Killed by : oghamspringbootv2autoconfigure.it.OghamSpringBoot2JavaMailAutoConfigurationTests.oghamPropertiesWithSpringPropsShouldUseOghamPropertiesPrecedence(oghamspringbootv2autoconfigure.it.OghamSpringBoot2JavaMailAutoConfigurationTests)
negated conditional → KILLED

990

1.1
Location : keepAlive
Killed by : oghamcloudhopper.it.AutoRetryExtensionTest.smsNotRetriedDueToCloudhopperError(oghamcloudhopper.it.AutoRetryExtensionTest)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::keepAlive → KILLED

2.2
Location : keepAlive
Killed by : oghamspringbootv1autoconfigure.it.OghamSpringBoot1JavaMailAutoConfigurationTests.oghamAloneShouldUseOghamProperties(oghamspringbootv1autoconfigure.it.OghamSpringBoot1JavaMailAutoConfigurationTests)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::keepAlive → KILLED

3.3
Location : keepAlive
Killed by : oghamspringbootv2autoconfigure.it.OghamSpringBoot2JavaMailAutoConfigurationTests.oghamPropertiesWithSpringPropsShouldUseOghamPropertiesPrecedence(oghamspringbootv2autoconfigure.it.OghamSpringBoot2JavaMailAutoConfigurationTests)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::keepAlive → KILLED

4.4
Location : keepAlive
Killed by : oghamall.it.html.translator.JsoupInlineCssTranslatorTest.notHtml(oghamall.it.html.translator.JsoupInlineCssTranslatorTest)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::keepAlive → KILLED

5.5
Location : keepAlive
Killed by : oghamsmsglobal.it.SmsglobalServiceProviderConfigurerSpec
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::keepAlive → KILLED

996

1.1
Location : build
Killed by : none
removed call to fr/sii/ogham/sms/builder/cloudhopper/CloudhopperSessionOptions::setBindTimeout → SURVIVED

2.2
Location : build
Killed by : oghamcloudhopper.it.SendTimeoutTest.connectionTimeoutPerExecutionRetry(oghamcloudhopper.it.SendTimeoutTest)
removed call to fr/sii/ogham/sms/builder/cloudhopper/CloudhopperSessionOptions::setBindTimeout → KILLED

997

1.1
Location : build
Killed by : none
removed call to fr/sii/ogham/sms/builder/cloudhopper/CloudhopperSessionOptions::setConnectTimeout → SURVIVED

998

1.1
Location : build
Killed by : none
removed call to fr/sii/ogham/sms/builder/cloudhopper/CloudhopperSessionOptions::setRequestExpiryTimeout → SURVIVED

999

1.1
Location : build
Killed by : none
removed call to fr/sii/ogham/sms/builder/cloudhopper/CloudhopperSessionOptions::setWindowMonitorInterval → SURVIVED

1000

1.1
Location : build
Killed by : none
removed call to fr/sii/ogham/sms/builder/cloudhopper/CloudhopperSessionOptions::setWindowSize → SURVIVED

1001

1.1
Location : build
Killed by : none
removed call to fr/sii/ogham/sms/builder/cloudhopper/CloudhopperSessionOptions::setWindowWaitTimeout → SURVIVED

1002

1.1
Location : build
Killed by : none
removed call to fr/sii/ogham/sms/builder/cloudhopper/CloudhopperSessionOptions::setWriteTimeout → SURVIVED

1003

1.1
Location : build
Killed by : none
removed call to fr/sii/ogham/sms/builder/cloudhopper/CloudhopperSessionOptions::setResponseTimeout → SURVIVED

2.2
Location : build
Killed by : oghamcloudhopper.it.SendTimeoutTest.sendResponseTimeout(oghamcloudhopper.it.SendTimeoutTest)
removed call to fr/sii/ogham/sms/builder/cloudhopper/CloudhopperSessionOptions::setResponseTimeout → KILLED

1004

1.1
Location : build
Killed by : none
removed call to fr/sii/ogham/sms/builder/cloudhopper/CloudhopperSessionOptions::setUnbindTimeout → SURVIVED

1005

1.1
Location : build
Killed by : oghamcloudhopper.it.ConnectionFailureTest.invalidSystemId(oghamcloudhopper.it.ConnectionFailureTest)
negated conditional → KILLED

2.2
Location : build
Killed by : none
negated conditional → SURVIVED

1006

1.1
Location : build
Killed by : oghamcloudhopper.it.ConnectionFailureTest.invalidSystemId(oghamcloudhopper.it.ConnectionFailureTest)
removed call to fr/sii/ogham/sms/builder/cloudhopper/CloudhopperSessionOptions::setConnectRetry → KILLED

2.2
Location : build
Killed by : none
removed call to fr/sii/ogham/sms/builder/cloudhopper/CloudhopperSessionOptions::setConnectRetry → SURVIVED

1008

1.1
Location : build
Killed by : none
negated conditional → SURVIVED

2.2
Location : build
Killed by : oghamcloudhopper.it.SpecialCharactersTest.gsm8bit(oghamcloudhopper.it.SpecialCharactersTest)
negated conditional → KILLED

3.3
Location : build
Killed by : none
removed call to fr/sii/ogham/sms/builder/cloudhopper/CloudhopperSessionOptions::setKeepAlive → SURVIVED

4.4
Location : build
Killed by : none
removed call to fr/sii/ogham/sms/builder/cloudhopper/CloudhopperSessionOptions::setKeepAlive → TIMED_OUT

1009

1.1
Location : build
Killed by : none
negated conditional → SURVIVED

2.2
Location : build
Killed by : oghamcloudhopper.it.SpecialCharactersTest.gsm8bit(oghamcloudhopper.it.SpecialCharactersTest)
negated conditional → KILLED

3.3
Location : build
Killed by : oghamcloudhopper.it.ReuseSessionStrategyTest.reuseSessionButEnquireLinkTimeout(oghamcloudhopper.it.ReuseSessionStrategyTest)
removed call to fr/sii/ogham/sms/builder/cloudhopper/CloudhopperSessionOptions::setReuseSession → KILLED

4.4
Location : build
Killed by : none
removed call to fr/sii/ogham/sms/builder/cloudhopper/CloudhopperSessionOptions::setReuseSession → SURVIVED

1010

1.1
Location : build
Killed by : oghamall.it.optional.ImplementationSelectionTests.javaMailAvailable(oghamall.it.optional.ImplementationSelectionTests)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::build → KILLED

2.2
Location : build
Killed by : oghamcloudhopper.it.SpecialCharactersTest.gsm8bit(oghamcloudhopper.it.SpecialCharactersTest)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::build → KILLED

3.3
Location : build
Killed by : oghamspringbootv2autoconfigure.it.OghamSpringBoot2JavaMailAutoConfigurationTests.oghamPropertiesWithSpringPropsShouldUseOghamPropertiesPrecedence(oghamspringbootv2autoconfigure.it.OghamSpringBoot2JavaMailAutoConfigurationTests)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::build → KILLED

4.4
Location : build
Killed by : oghamsmsglobal.it.SmsglobalServiceProviderConfigurerSpec
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::build → KILLED

5.5
Location : build
Killed by : oghamspringbootv1autoconfigure.it.OghamSpringBoot1JavaMailAutoConfigurationTests.oghamAloneShouldUseOghamProperties(oghamspringbootv1autoconfigure.it.OghamSpringBoot1JavaMailAutoConfigurationTests)
replaced return value with null for fr/sii/ogham/sms/builder/cloudhopper/SessionBuilder::build → KILLED

Active mutators

Tests examined


Report generated by PIT OGHAM