View Javadoc
1   /*
2     (C) Copyright IBM Corp. 2006, 2013
3   
4     THIS FILE IS PROVIDED UNDER THE TERMS OF THE ECLIPSE PUBLIC LICENSE
5     ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE
6     CONSTITUTES RECIPIENTS ACCEPTANCE OF THE AGREEMENT.
7   
8     You can obtain a current copy of the Eclipse Public License from
9     http://www.opensource.org/licenses/eclipse-1.0.php
10  
11    @author : Alexander Wolf-Reber, a.wolf-reber@de.ibm.com
12   * 
13   * Flag       Date        Prog         Description
14   * -------------------------------------------------------------------------------
15   * 1565892    2006-11-08  lupusalex    Make SBLIM client JSR48 compliant
16   * 1688273    2007-04-19  lupusalex    Full support of HTTP trailers
17   * 1815707    2007-10-30  ebak         TLS support
18   * 1827728    2007-11-12  ebak         embeddedInstances: attribute EmbeddedObject not set
19   * 1848607    2007-12-11  ebak         Strict EmbeddedObject types
20   * 2003590    2008-06-30  blaschke-oss Change licensing from CPL to EPL
21   * 2372030    2008-12-01  blaschke-oss Add property to control synchronized SSL handshaking
22   * 2524131    2009-01-21  raman_arora  Upgrade client to JDK 1.5 (Phase 1)
23   * 2763216    2009-04-14  blaschke-oss Code cleanup: visible spelling/grammar errors
24   * 2846231    2009-09-23  rgummada     connection failure on CIMOM w/o user/pw
25   * 2930341    2010-01-12  blaschke-oss Sync up WBEMClientConstants with JSR48 1.0.0
26   * 2957387    2010-03-03  blaschke-oss EmbededObject XML attribute must not be all uppercases
27   * 2970881    2010-03-15  blaschke-oss Add property to control EmbeddedObject case
28   * 3046073    2010-09-07  blaschke-oss Performance hit due to socket conn. creation with timeout
29   * 3111718    2010-11-18  blaschke-oss org.sblim.cimclient SSL Code is using the wrong SSL Property
30   * 3185763    2011-02-25  blaschke-oss Reliable indication support - Phase 1
31   * 3195069    2011-02-28  blaschke-oss Need support to disable SSL Handshake
32   * 3197423    2011-03-02  blaschke-oss Server authentication with PegasusLocalAuthInfo failing
33   * 3277928    2011-04-06  blaschke-oss CIM-XML tracing cannot be enabled in the field
34   * 3206904    2011-05-03  blaschke-oss Indication listener deadlock causes JVM to run out sockets
35   * 3288721    2011-05-20  blaschke-oss Need the function of indication reordering
36   * 3459036    2011-12-13  blaschke-oss Linked list for RI queue not efficient for many LDs
37   * 3485074    2012-02-06  blaschke-oss An Indication trace request
38   * 3492246    2012-02-23  blaschke-oss Rename new indication trace property
39   * 3492214    2012-02-23  blaschke-oss Add a SenderIPAddress property indications
40   * 3492224    2012-02-23  blaschke-oss Need two different timeouts for Socket connections
41   * 3521157    2012-05-10  blaschke-oss JSR48 1.0.0: PROP_ENABLE_*_LOGGING is Level, not 0/1
42   * 3524050    2012-06-06  blaschke-oss Improve WWW-Authenticate in HTTPClient.java
43   * 3536399    2012-08-25  hellerda     Add client/listener peer authentication properties
44   * 3572993    2012-10-01  blaschke-oss parseDouble("2.2250738585072012e-308") DoS vulnerability
45   * 3598613    2013-01-11  blaschke-oss different data type in cim instance and cim object path
46   *    2618    2013-02-27  blaschke-oss Need to add property to disable weak cipher suites for the secure indication
47   *    2628    2013-03-26  blaschke-oss Limit size of LinkedList of CIMEvents to be dispatched
48   *    2635    2013-05-16  blaschke-oss Slowloris DoS attack for CIM indication listener port
49   *    2642    2013-05-21  blaschke-oss Seperate properties needed for cim client and listener to filter out ciphers
50   *    2647    2013-07-01  blaschke-oss Add two ssl protocol properties for http server and client
51   *    2654    2013-07-29  blaschke-oss Check jcc idle time with CIMOM keepalive timeout to avoid EOF
52   *    2151    2013-08-20  blaschke-oss gzip compression not supported
53   *    2711    2013-11-13  blaschke-oss LOCALNAMESPACEPATH allows 0 NAMESPACE children
54   */
55  package org.metricshub.wbem.sblim.cimclient;
56  
57  /*-
58   * ╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲
59   * WBEM Java Client
60   * ჻჻჻჻჻჻
61   * Copyright 2023 - 2025 MetricsHub
62   * ჻჻჻჻჻჻
63   * Licensed under the Apache License, Version 2.0 (the "License");
64   * you may not use this file except in compliance with the License.
65   * You may obtain a copy of the License at
66   *
67   *      http://www.apache.org/licenses/LICENSE-2.0
68   *
69   * Unless required by applicable law or agreed to in writing, software
70   * distributed under the License is distributed on an "AS IS" BASIS,
71   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
72   * See the License for the specific language governing permissions and
73   * limitations under the License.
74   * ╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱
75   */
76  
77  /**
78   * The interface WBEMConfigurationProperties contains the names of all
79   * configuration properties that are recognized by the CIM Client.
80   *
81   */
82  public interface WBEMConfigurationProperties {
83  	/**
84  	 * A URL string giving the location of the CIM client config file. <br />
85  	 * <br />
86  	 * By default the SBLIM CIM Client looks for
87  	 * <ul>
88  	 * <li>file:sblim-cim-client2.properties</li>
89  	 * <li>file:%USER_HOME%/sblim-cim-client2.properties</li>
90  	 * <li>file:/etc/java/sblim-cim-client2.properties</li>
91  	 * </ul>
92  	 * The first file found will be used. The default search list is not applied
93  	 * if this property is set, even if the given URL does not exist.<br />
94  	 */
95  	public static final String CONFIG_URL = "sblim.wbem.configURL";
96  
97  	/**
98  	 * Sets the minimum level for messages to be written to the log file.<br />
99  	 * <br />
100 	 * Type: <code>Discrete</code><br />
101 	 * Recognition: <code>Startup</code><br />
102 	 * Range: <code>OFF, SEVERE, WARNING, INFO, CONFIG, ALL</code><br />
103 	 * Default: <code>OFF</code>, which disables file logging completely.
104 	 */
105 	public static final String LOG_FILE_LEVEL = "sblim.wbem.logFileLevel";
106 
107 	/**
108 	 * A string specifying the location of the log file. The string may include
109 	 * the following special components that will be replaced at runtime:<br />
110 	 * <ul>
111 	 * <table border="1">
112 	 * <tr>
113 	 * <td>/</td>
114 	 * <td>the local pathname separator</td>
115 	 * </tr>
116 	 * <tr>
117 	 * <td>%t</td>
118 	 * <td>the system temporary directory</td>
119 	 * </tr>
120 	 * <tr>
121 	 * <td>%h</td>
122 	 * <td>the value of the "user.home" system property</td>
123 	 * </tr>
124 	 * <tr>
125 	 * <td>%g</td>
126 	 * <td>the generation number to distinguish rotated logs</td>
127 	 * </tr>
128 	 * <tr>
129 	 * <td>%u</td>
130 	 * <td>a unique number to resolve conflicts</td>
131 	 * </tr>
132 	 * <tr>
133 	 * <td>%%</td>
134 	 * <td>translates to a single percent sign "%"</td>
135 	 * </tr>
136 	 * </table>
137 	 * </ul>
138 	 * Thus for example a pattern of <code>%t/java%g.log</code> with a count of
139 	 * 2 would typically cause log files to be written on Unix to
140 	 * /var/tmp/java2.log<br />
141 	 * <br />
142 	 * Type: <code>String</code><br />
143 	 * Recognition: <code>Startup</code><br />
144 	 * Default: <code>%t/cimclient_log_%g.txt</code>.
145 	 */
146 	public static final String LOG_FILE_LOCATION = "sblim.wbem.logFileLocation";
147 
148 	/**
149 	 * Sets the maximum size in bytes of a single log file. When the limit is
150 	 * reached a new file is created. A limit of zero will create a new log file
151 	 * for every log record !<br />
152 	 * <br />
153 	 * Type: <code>Integer</code><br />
154 	 * Recognition: <code>Startup</code><br />
155 	 * Range: <code>0 .. Integer.MAX_VALUE</code><br />
156 	 * Default: <code>100.000</code><br />
157 	 */
158 	public static final String LOG_FILE_SIZE_LIMIT = "sblim.wbem.logFileSizeLimit";
159 
160 	/**
161 	 * Sets the number of log files to cycle through. When the number is
162 	 * exceeded the oldest file is dropped.<br />
163 	 * <br />
164 	 * Type: <code>Integer</code><br />
165 	 * Recognition: <code>Startup</code><br />
166 	 * Range: <code>1 .. Integer.MAX_VALUE</code><br />
167 	 * Default: <code>5</code><br />
168 	 */
169 	public static final String LOG_FILE_COUNT = "sblim.wbem.logFileCount";
170 
171 	/**
172 	 * Sets the minimum level for messages to be written to the console logger
173 	 * file.<br />
174 	 * <br />
175 	 * Type: <code>Discrete</code><br />
176 	 * Recognition: <code>Startup</code><br />
177 	 * Range: <code>OFF, SEVERE, WARNING, INFO, CONFIG, ALL</code><br />
178 	 * Default: <code>OFF</code>, which disables console logging completely.
179 	 */
180 	public static final String LOG_CONSOLE_LEVEL = "sblim.wbem.logConsoleLevel";
181 
182 	/**
183 	 * Sets the type of the console logger. Maybe either message log or trace
184 	 * log.<br />
185 	 * <br />
186 	 * Type: <code>Discrete</code><br />
187 	 * Recognition: <code>Startup</code><br />
188 	 * Range: <code>MESSAGE, TRACE</code><br />
189 	 * Default: <code>MESSAGE</code>.
190 	 */
191 	public static final String LOG_CONSOLE_TYPE = "sblim.wbem.logConsoleType";
192 
193 	/**
194 	 * Sets the minimum level for messages to be written to the trace file.<br />
195 	 * <br />
196 	 * Type: <code>Discrete</code><br />
197 	 * Recognition: <code>Startup</code><br />
198 	 * Range:
199 	 * <code>OFF, SEVERE, WARNING, INFO, CONFIG, FINE, FINER, FINEST, ALL</code><br />
200 	 * Default: <code>OFF</code>, which disables file tracing completely<br />
201 	 */
202 	public static final String TRACE_FILE_LEVEL = "sblim.wbem.traceFileLevel";
203 
204 	/**
205 	 * A string specifying the location of the trace file. The string may
206 	 * include the following special components that will be replaced at
207 	 * runtime:<br />
208 	 * <ul>
209 	 * <table border="1">
210 	 * <tr>
211 	 * <td>/</td>
212 	 * <td>the local pathname separator</td>
213 	 * </tr>
214 	 * <tr>
215 	 * <td>%t</td>
216 	 * <td>the system temporary directory</td>
217 	 * </tr>
218 	 * <tr>
219 	 * <td>%h</td>
220 	 * <td>the value of the "user.home" system property</td>
221 	 * </tr>
222 	 * <tr>
223 	 * <td>%g</td>
224 	 * <td>the generation number to distinguish rotated logs</td>
225 	 * </tr>
226 	 * <tr>
227 	 * <td>%u</td>
228 	 * <td>a unique number to resolve conflicts</td>
229 	 * </tr>
230 	 * <tr>
231 	 * <td>%%</td>
232 	 * <td>translates to a single percent sign "%"</td>
233 	 * </tr>
234 	 * </table>
235 	 * </ul>
236 	 * Thus for example a pattern of <code>%t/java%g.log</code> with a count of
237 	 * 2 would typically cause log files to be written on Unix to
238 	 * /var/tmp/java2.log<br />
239 	 * <br />
240 	 * Type: <code>String</code><br />
241 	 * Recognition: <code>Startup</code><br />
242 	 * Default: <code>%t/cimclient_trace_%g.txt</code><br />
243 	 */
244 	public static final String TRACE_FILE_LOCATION = "sblim.wbem.traceFileLocation";
245 
246 	/**
247 	 * Sets the maximum size in bytes of a single log file. When the limit is
248 	 * reached a new file is created. A limit of zero creates a new file for
249 	 * each trace record !<br />
250 	 * <br />
251 	 * Type: <code>Integer</code><br />
252 	 * Recognition: <code>Startup</code><br />
253 	 * Range: <code>0 .. Integer.MAX_VALUE</code><br />
254 	 * Default: <code>1.000.000</code><br />
255 	 */
256 	public static final String TRACE_FILE_SIZE_LIMIT = "sblim.wbem.traceFileSizeLimit";
257 
258 	/**
259 	 * Sets the number of log files to cycle through. When the number is
260 	 * exceeded the oldest file is dropped.<br />
261 	 * <br />
262 	 * Type: <code>Integer</code><br />
263 	 * Recognition: <code>Startup</code><br />
264 	 * Range: <code>1 .. Integer.MAX_VALUE</code><br />
265 	 * Default: <code>5</code><br />
266 	 */
267 	public static final String TRACE_FILE_COUNT = "sblim.wbem.traceFileCount";
268 
269 	/**
270 	 * The timeout for http requests. A timeout of zero is interpreted as
271 	 * infinite timeout.<br />
272 	 * <br />
273 	 * Type: <code>Integer</code><br />
274 	 * Unit: <code>Milliseconds</code><br />
275 	 * Recognition: <code>Anytime</code><br />
276 	 * Range: <code>0 .. Integer.MAX_VALUE</code><br />
277 	 * Default: <code>0</code><br />
278 	 */
279 	public static final String HTTP_TIMEOUT = "sblim.wbem.httpTimeout";
280 
281 	/**
282 	 * The size of the internal http connection pools. Each
283 	 * <code>WBEMClient</code> instance has it's own http connection pool. A
284 	 * positive value defines the number of connections, zero that no connection
285 	 * will be reused, and -1 all connections will be reused (when it's
286 	 * possible).<br />
287 	 * <br />
288 	 * Type: <code>Integer</code><br />
289 	 * Recognition: <code>Anytime</code><br />
290 	 * Range: <code>-1, 0, 1 .. Integer.MAX_VALUE</code><br />
291 	 * Default: <code>16</code><br />
292 	 */
293 	public static final String HTTP_POOL_SIZE = "sblim.wbem.httpPoolSize";
294 
295 	/**
296 	 * The Java class name of the authentication module to use for http
297 	 * authentication. <br />
298 	 * <br />
299 	 * Type: <code>String</code><br />
300 	 * Recognition: <code>On next authentication</code><br />
301 	 * Range:
302 	 *
303 	 * <code>org.sblim.cimclient.internal.http.WwwAuthInfo, org.sblim.cimclient.internal.http.PegasusLocalAuthInfo or any self-written subclass of org.sblim.cimclient.internal.http.AuthorizationInfo</code>
304 	 * <br />
305 	 * Default: <code>org.sblim.cimclient.internal.http.WwwAuthInfo</code><br />
306 	 */
307 	public static final String HTTP_AUTHENTICATION_MODULE = "sblim.wbem.httpAuthModule";
308 
309 	/**
310 	 * The WWW-Authenticate information to use when sending the first request to
311 	 * a server. <br />
312 	 * <br />
313 	 * Note: This string must exactly match what the server returns in the<br />
314 	 * WWW-Authenticate field of an HTTP 401 response when authentication<br />
315 	 * fails. The following two strings are examples:<br />
316 	 * <br />
317 	 *
318 	 *
319 	 * Basic realm=&quot;Secure Area&quot;
320 	 * Digest realm=&quot;testrealm@host.com&quot;,qop=&quot;auth,auth-int&quot;,nonce=&quot;dcd98b7102dd2f0e8b11d0f600bfb0c093&quot;,opaque=&quot;5ccc069c403ebaf9f0171e9517f40e41&quot;
321 	 *
322 	 *
323 	 * Type: <code>String</code><br />
324 	 * Recognition: <code>On next authentication</code><br />
325 	 * Range: <code>Basic, Digest</code><br />
326 	 * Default: <code>none</code><br />
327 	 */
328 	public static final String HTTP_WWW_AUTHENTICATE_INFO = "sblim.wbem.httpWwwAuthenticateInfo";
329 
330 	/**
331 	 * Specifies if MPOST is used for transmitting http messages. If false, POST
332 	 * is used.<br />
333 	 * <br />
334 	 * Type: <code>Boolean</code><br />
335 	 * Recognition: <code>Anytime</code><br />
336 	 * Range: <code>true, false</code><br />
337 	 * Default: <code>true</code><br />
338 	 */
339 	public static final String HTTP_USE_MPOST = "sblim.wbem.httpMPOST";
340 
341 	/**
342 	 * Specifies if chunking is used for transmitting http messages.<br />
343 	 * <br />
344 	 * Type: <code>Boolean</code><br />
345 	 * Recognition: <code>Anytime</code><br />
346 	 * Range: <code>true, false</code><br />
347 	 * Default: <code>true</code><br />
348 	 */
349 	public static final String HTTP_USE_CHUNKING = "sblim.wbem.httpChunking";
350 
351 	/**
352 	 * Specifies the http protocol version to use. This option is useful if the
353 	 * protocol negotiation fails.<br />
354 	 * <br />
355 	 * Type: <code>String</code><br />
356 	 * Recognition: <code>Anytime</code><br />
357 	 * Range: <code>1.0, 1.1</code><br />
358 	 * Default: <code>1.1</code><br />
359 	 */
360 	public static final String HTTP_VERSION = "sblim.wbem.httpVersion";
361 
362 	/**
363 	 * Specifies how often the client will retry to connect to a CIMOM which
364 	 * refused the connection in the first place.<br />
365 	 * <br />
366 	 * Type: <code>Integer</code><br />
367 	 * Recognition: <code>Anytime</code><br />
368 	 * Range: <code>0 .. Integer.MAX_VALUE</code><br />
369 	 * Default: <code>0</code><br />
370 	 */
371 	public static final String HTTP_CONNECTION_RETRIES = "sblim.wbem.httpConnectionRetries";
372 
373 	/**
374 	 * Specifies if the client will discard and request again http documents
375 	 * with less than a given number of bytes.<br />
376 	 * <br />
377 	 * Type: <code>Boolean</code><br />
378 	 * Recognition: <code>Anytime</code><br />
379 	 * Range: <code>true, false</code><br />
380 	 * Default: <code>false</code><br />
381 	 */
382 	public static final String HTTP_ENABLE_CONTENT_LENGTH_RETRY = "sblim.wbem.httpEnableContentLengthRetry";
383 
384 	/**
385 	 * Specifies the threshold above which a http document is regarded as valid
386 	 * by the content length retry algorithm.<br />
387 	 * <br />
388 	 * Type: <code>Integer</code><br />
389 	 * Recognition: <code>Anytime</code><br />
390 	 * Range: <code>0 .. Integer.MAX_VALUE</code><br />
391 	 * Default: <code>50</code><br />
392 	 */
393 	public static final String HTTP_CONTENT_LENGTH_THRESHOLD = "sblim.wbem.httpContentLengthThreshold";
394 
395 	/**
396 	 * The file path of the SSL keystore.<br />
397 	 * <br />
398 	 * Type: <code>String</code><br />
399 	 * Recognition: <code>On next SSL connection</code><br />
400 	 * Default: none<br />
401 	 */
402 	public static final String KEYSTORE_PATH = "javax.net.ssl.keyStore";
403 
404 	/**
405 	 * The type of the keystore.<br />
406 	 * <br />
407 	 * Type: <code>String</code><br />
408 	 * Recognition: <code>On next SSL connection</code><br />
409 	 * Range: <code>PKCS12, JKS, ...</code><br />
410 	 * Default: <code>JKS</code><br />
411 	 */
412 	public static final String KEYSTORE_TYPE = "javax.net.ssl.keyStoreType";
413 
414 	/**
415 	 * The password of the keystore.<br />
416 	 * <br />
417 	 * Type: <code>String</code><br />
418 	 * Recognition: <code>On next SSL connection</code><br />
419 	 * Default: none<br />
420 	 */
421 	public static final String KEYSTORE_PASSWORD = "javax.net.ssl.keyStorePassword";
422 
423 	/**
424 	 * The file path of the SSL truststore.<br />
425 	 * <br />
426 	 * Type: <code>String</code><br />
427 	 * Recognition: <code>On next SSL connection</code><br />
428 	 * Default: none<br />
429 	 */
430 	public static final String TRUSTSTORE_PATH = "javax.net.ssl.trustStore";
431 
432 	/**
433 	 * The type of the truststore.<br />
434 	 * <br />
435 	 * Type: <code>String</code><br />
436 	 * Recognition: <code>On next SSL connection</code><br />
437 	 * Range: <code>PKCS12, JKS, ...</code><br />
438 	 * Default: <code>JKS</code><br />
439 	 */
440 	public static final String TRUSTSTORE_TYPE = "javax.net.ssl.trustStoreType";
441 
442 	/**
443 	 * The password of the truststore.<br />
444 	 * <br />
445 	 * Type: <code>String</code><br />
446 	 * Recognition: <code>On next SSL connection</code><br />
447 	 * Default: none<br />
448 	 */
449 	public static final String TRUSTSTORE_PASSWORD = "javax.net.ssl.trustStorePassword";
450 
451 	/**
452 	 * The provider to use for creation of SSL client sockets.<br />
453 	 * <br />
454 	 * <em>Security property: JRE global access via <code>Security.setProperty()</code> and <code>Security.getProperty()</code> !</em>
455 	 * <br />
456 	 * <br />
457 	 * Type: <code>Java class name</code><br />
458 	 * Recognition: <code>On next SSL connection</code><br />
459 	 * Default: <code>Security.getProviders("SSLContext.SSL")</code><br />
460 	 */
461 	public static final String SSL_SOCKET_PROVIDER = "sblim.wbem.sslSocketProvider";
462 
463 	/**
464 	 * The provider to use for creation of SSL server sockets.<br />
465 	 * <br />
466 	 * <em>Security property: JRE global access via <code>Security.setProperty()</code> and <code>Security.getProperty()</code> !</em>
467 	 * <br />
468 	 * <br />
469 	 * Type: <code>Java class name</code><br />
470 	 * Recognition: <code>On next SSL connection</code><br />
471 	 * Default: <code>Security.getProviders("SSLContext.SSL")</code><br />
472 	 */
473 	public static final String SSL_SERVER_SOCKET_PROVIDER = "sblim.wbem.sslServerSocketProvider";
474 
475 	/**
476 	 * The protocol used for SSLContext.getInstance(String protocol). For
477 	 * IBMJSSE2 provider it can be "SSL_TLS".<br/>
478 	 * <br/>
479 	 * Security property: JRE global access via
480 	 * <code>Security.setProperty()</code> and
481 	 * <code>Security.getProperty()</code><br/>
482 	 * Recognition: <code>On next SSL connection</code><br/>
483 	 * Default: "SSL"
484 	 */
485 	public static final String SSL_PROTOCOL = "ssl.Protocol";
486 
487 	/**
488 	 * The protocol used for SSLContext.getInstance(String protocol) by a
489 	 * client. This property overrides any value set via the ssl.Protocol
490 	 * property.<br/>
491 	 * <br/>
492 	 * Recognition: <code>On next SSL connection</code><br/>
493 	 * Default: none
494 	 */
495 	public static final String SSL_CLIENT_PROTOCOL = "sblim.wbem.sslClientProtocol";
496 
497 	/**
498 	 * The protocol used for SSLContext.getInstance(String protocol) by a
499 	 * listener. This property overrides any value set via the ssl.Protocol
500 	 * property.<br/>
501 	 * <br/>
502 	 * Recognition: <code>On next SSL connection</code><br/>
503 	 * Default: none
504 	 */
505 	public static final String SSL_LISTENER_PROTOCOL = "sblim.wbem.sslListenerProtocol";
506 
507 	/**
508 	 * The key manager factory algorithm name.<br />
509 	 * <br />
510 	 * <em>Security property: JRE global access via <code>Security.setProperty()</code> and <code>Security.getProperty()</code> !</em>
511 	 * <br />
512 	 * <br />
513 	 * Type: <code>String</code><br />
514 	 * Recognition: <code>On next SSL connection</code><br />
515 	 * Range: <code>IbmX509, SunX509, ...</code><br />
516 	 * Default: <code>JRE specific</code><br />
517 	 */
518 	public static final String SSL_KEYMANAGER_ALGORITHM = "ssl.KeyManagerFactory.algorithm";
519 
520 	/**
521 	 * The trust manager factory algorithm name.<br />
522 	 * <br />
523 	 * <em>Security property: JRE global access via <code>Security.setProperty()</code> and <code>Security.getProperty()</code> !</em>
524 	 * <br />
525 	 * <br />
526 	 * Type: <code>String</code><br />
527 	 * Recognition: <code>On next SSL connection</code><br />
528 	 * Range: <code>IbmX509, SunX509, ...</code><br />
529 	 * Default: <code>JRE specific</code><br />
530 	 */
531 	public static final String SSL_TRUSTMANAGER_ALGORITHM = "ssl.TrustManagerFactory.algorithm";
532 
533 	/**
534 	 * Determines if a HTTPS client will attempt to authenticate the server
535 	 * (i.e. CIMOM) by verifying the server certificate.<br />
536 	 * <br />
537 	 * If false, do not attempt verification. If true, the client will attempt
538 	 * to verify the server certificate against the contents of the truststore;
539 	 * in this case a valid path must be defined in "javax.net.ssl.trustStore"
540 	 * or no connection will be permitted. <br />
541 	 * <br />
542 	 * Type: <code>Boolean</code><br />
543 	 * Recognition: On initialization of a new client<br />
544 	 * Default: <code>false</code><br />
545 	 */
546 	public static final String SSL_CLIENT_PEER_VERIFICATION = "sblim.wbem.sslClientPeerVerification";
547 
548 	/**
549 	 * Determines how a HTTPS listener will handle authentication of a client
550 	 * (i.e. indication sender):<br />
551 	 * <ul>
552 	 * <table border="1">
553 	 * <tr>
554 	 * <td>ignore</td>
555 	 * <td>do not examine the client certificate</td>
556 	 * </tr>
557 	 * <tr>
558 	 * <td>accept</td>
559 	 * <td>examine client certificate if presented; do not fail if not presented
560 	 * </td>
561 	 * </tr>
562 	 * <tr>
563 	 * <td>require</td>
564 	 * <td>examine client certificate; fail if not presented</td>
565 	 * </tr>
566 	 * </table>
567 	 * </ul>
568 	 * If set to "ignore", do not attempt verification. If set to "accept" or
569 	 * "require", the listener will attempt to verify the sender against the
570 	 * contents of the truststore; in this case a valid path must be defined in
571 	 * "javax.net.ssl.trustStore" or no connection will be permitted. <br />
572 	 * <br />
573 	 * Type: <code>String</code><br />
574 	 * Recognition: On next call to addListener()<br />
575 	 * Default: <code>ignore</code><br />
576 	 */
577 	public static final String SSL_LISTENER_PEER_VERIFICATION = "sblim.wbem.sslListenerPeerVerification";
578 
579 	/**
580 	 * The comma-separated list of cipher suites that are to be disabled by the
581 	 * client when connecting via an SSL socket. In general, this is the list of
582 	 * cipher suites considered "too weak" for use in a particular environment.<br />
583 	 * <br />
584 	 * Type: <code>String</code><br />
585 	 * Recognition: <code>On initialization of a new client</code><br />
586 	 * Default: <code>none</code><br />
587 	 */
588 	public static final String SSL_CLIENT_CIPHER_SUITES_TO_DISABLE = "sblim.wbem.sslClientCipherSuitesToDisable";
589 
590 	/**
591 	 * The comma-separated list of cipher suites that are to be disabled by the
592 	 * listener when connecting via an SSL socket. In general, this is the list
593 	 * of cipher suites considered "too weak" for use in a particular
594 	 * environment.<br />
595 	 * <br />
596 	 * Type: <code>String</code><br />
597 	 * Recognition: <code>On next call to addListener()</code><br />
598 	 * Default: <code>none</code><br />
599 	 */
600 	public static final String SSL_LISTENER_CIPHER_SUITES_TO_DISABLE = "sblim.wbem.sslListenerCipherSuitesToDisable";
601 
602 	/**
603 	 * Specifies the XML parser for parsing CIM-XML responses.<br />
604 	 * The SAX parser is the default choice since it is fast, resource saving
605 	 * and interoperable. The streaming algorithm of the PULL parser uses the
606 	 * fewest possible resources but at the prize to keep the CIMOMs response
607 	 * open for a long time. That works with many but not all CIMOMs. The DOM
608 	 * parser is slow and resource hungry but nice to debug.<br />
609 	 * <br />
610 	 * Type: <code>Discrete</code><br />
611 	 * Recognition: <code>Anytime</code><br />
612 	 * Range: <code>DOM, PULL, SAX</code><br />
613 	 * Default: <code>SAX</code><br />
614 	 */
615 	public static final String CIMXML_PARSER = "sblim.wbem.cimxmlParser";
616 
617 	/**
618 	 * Enables or disables tracing of CIM-XML communication. The trace is sent
619 	 * to an output stream the application has to set via the LogAndTraceManager
620 	 * class.<br />
621 	 * <br />
622 	 * Type: <code>Boolean</code><br />
623 	 * Recognition: <code>Anytime</code><br />
624 	 * Range: <code>true, false</code><br />
625 	 * Default: <code>false</code><br />
626 	 */
627 	public static final String CIMXML_TRACING = "sblim.wbem.cimxmlTracing";
628 
629 	/**
630 	 * Specifies the stream to use for tracing CIM-XML communication in the
631 	 * event the application does not set one via the LogAndTraceManager class.
632 	 * This stream can either be standard output (System.out), standard error
633 	 * output (System.err) or a filename to be opened by the client.
634 	 *
635 	 * Note: This property has no effect unless sblim.wbem.cimxmlTracing is set
636 	 * to true.
637 	 *
638 	 * Note: This property has no effect if the application already set the
639 	 * stream prior to client initialization. If the application sets the stream
640 	 * after client initialization, the stream specified by this property is
641 	 * overridden.
642 	 *
643 	 * Note: If a filename is specified, it is opened and all CIM-XML
644 	 * communication is written to it - no checks are made for an existing file
645 	 * or for filling up the disk. USE WITH CAUTION.
646 	 *
647 	 * Type: <code>String</code><br />
648 	 * Recognition: <code>Startup</code><br />
649 	 * Range: <code>System.out, System.err, filename</code><br />
650 	 * Default: <code>none</code><br />
651 	 */
652 	public static final String CIMXML_TRACE_STREAM = "sblim.wbem.cimxmlTraceStream";
653 
654 	/**
655 	 *
656 	 * Tells the XML builder how to sign embedded objects. This is necessary due to
657 	 * the non-consequent handling of embedded objects on different CIMOMs.
658 	 * &quot;AttribOnly&quot;       - only the EmbeddedObject=&quot;instance/object&quot; is used
659 	 *                      (should be good for Pegasus)
660 	 * &quot;EmbObjQuali&quot;      - on qualified CIM-XML elements the EmbeddedObject qualifier is used
661 	 *                      for embedded classes and instances
662 	 * &quot;EmbObjAndEmbInstQuali&quot; -
663 	 *                      on qualified CIM-XML elements the EmbeddedObject qualifier is used
664 	 *                      for embedded classes and the EmbeddedInstance=&quot;className&quot; qualifier
665 	 *                      is used for embedded instances
666 	 * Type: String
667 	 * Recognition: Anytime
668 	 * Range: AttribOnly, EmbObjQuali, EmbObjAndEmbInstQuali
669 	 * Default: AttribOnly
670 	 *
671 	 */
672 	public static final String CIMXML_EMBOBJBUILDER = "sblim.wbem.cimxmlEmbObjBuilder";
673 
674 	/**
675 	 *
676 	 * If set the type of valueless EmbeddedObjects are mapped to CLASS_T. It should work well
677 	 * with OpenPegasus-2.7.0.
678 	 * If unset no type mapping is done for valuless EmbeddedObjects.
679 	 *
680 	 * Type: Boolean
681 	 * Default: true
682 	 *
683 	 */
684 	public static final String CIMXML_PARSER_STRICT_EMBOBJ_TYPES = "sblim.wbem.cimxmlParser.strictEmbObjTypes";
685 
686 	/**
687 	 *
688 	 * If set to false, the embedded object entity in all requests is in mixed case
689 	 * (EmbeddedObject) per DSP0203.  If set to true, the embedded object entity is in
690 	 * upper case (EMBEDDEDOBJECT) - this works with some older CIMOMs, such as OpenPegasus
691 	 * 2.6.1 and 2.7.0.
692 	 *
693 	 * &lt;!ENTITY % EmbeddedObject &quot;EmbeddedObject (object|instance) #IMPLIED&quot;&gt;
694 	 *
695 	 * Type: Boolean
696 	 * Recognition: Startup
697 	 * Range: true, false
698 	 * Default: true
699 	 *
700 	 */
701 	public static final String CIMXML_BUILDER_UPPERCASE_EMBOBJ_ENTITIES =
702 		"sblim.wbem.cimxmlBuilder.upperCaseEmbObjEntities";
703 
704 	/**
705 	 *
706 	 * If set to true, SSL handshakes are performed after an SSL socket is created by the
707 	 * socket factory.  If set to false, handshakes are not performed, which is useful if
708 	 * if the handshake has already taken place.
709 	 *
710 	 * Type: Boolean
711 	 * Recognition: Anytime
712 	 * Default: true
713 	 *
714 	 */
715 	public static final String PERFORM_SSL_HANDSHAKE = "sblim.wbem.performSslHandshake";
716 
717 	/**
718 	 *
719 	 * If set to false, SSL handshakes are not synchronized.  If set to true, SSL handshakes
720 	 * are synchronized as a workaround for an IBMJSSE1 problem with thread-safe handshakes.
721 	 *
722 	 * Note: This property has no affect unless sblim.wbem.performSslHandshake is set to
723 	 * true.
724 	 *
725 	 * Type: Boolean
726 	 * Recognition: Anytime
727 	 * Default: false
728 	 *
729 	 */
730 	public static final String SYNCHRONIZED_SSL_HANDSHAKE = "sblim.wbem.synchronizedSslHandshake";
731 
732 	/**
733 	 *
734 	 * If set to true, socket connections are attempted with the timeout value defined by
735 	 * sblim.wbem.socketConnectTimeout.  If set to false, socket connections are attempted
736 	 * without a timeout.  Using a timeout for socket connections is the preferred method
737 	 * but may introduce intermittent, significant performance impacts during the connection
738 	 * process in Java 5+ (see Sun bug 5092063).
739 	 *
740 	 * Type: Boolean
741 	 * Recognition: Anytime
742 	 * Default: true
743 	 *
744 	 */
745 	public static final String SOCKET_CONNECT_WITH_TIMEOUT = "sblim.wbem.socketConnectWithTimeout";
746 
747 	/**
748 	 *
749 	 * The timeout for socket connect requests. A timeout of zero is interpreted
750 	 * as infinite timeout.
751 	 *
752 	 * Note: This property has no effect unless socket connection with timeout is
753 	 * enabled (see the sblim.wbem.socketConnectWithTimeout property).
754 	 *
755 	 * Type: Integer
756 	 * Unit: Milliseconds
757 	 * Recognition: Anytime
758 	 * Range: 0 .. Integer.MAX_VALUE
759 	 * Default: 0
760 	 *
761 	 */
762 	public static final String SOCKET_CONNECT_TIMEOUT = "sblim.wbem.socketConnectTimeout";
763 
764 	/**
765 	 * The idle timeout between socket requests after which the socket is
766 	 * automatically reset (closed, then reopened). A timeout of zero is
767 	 * interpreted as infinite timeout. <br />
768 	 * Type: <code>Integer</code><br />
769 	 * Unit: <code>Milliseconds</code><br />
770 	 * Recognition: <code>Anytime</code><br />
771 	 * Range: <code>0 .. Integer.MAX_VALUE</code><br />
772 	 * Default: <code>0</code><br />
773 	 */
774 	public static final String SOCKET_IDLE_TIMEOUT = "sblim.wbem.socketIdleTimeout";
775 
776 	/**
777 	 *
778 	 * Turn on/off usage of the default user/password, which can be used
779 	 * if the CIMOM requires a &quot;garbage&quot; credential.  If set to false,
780 	 * user-supplied credentials will be applied.  If set to true,
781 	 * default credentials will be applied when both the user-supplied
782 	 * principal and credential are null/empty.
783 	 *
784 	 * Type: Boolean
785 	 * Recognition: Startup
786 	 * Default: false
787 	 *
788 	 */
789 	public static final String KEY_CREDENTIALS_DEFAULT_ENABLED = "sblim.wbem.default.authorization.enabled";
790 
791 	/**
792 	 *
793 	 * The name of the user for the &quot;garbage&quot; credential.
794 	 *
795 	 * Note: This property has no effect unless default authorization is
796 	 * enabled (see the sblim.wbem.default.authorization.enabled property)
797 	 * AND both the user-supplied principal and credential are null/empty.
798 	 *
799 	 * Type: String
800 	 * Recognition: Startup
801 	 * Default: &quot;default&quot;
802 	 *
803 	 */
804 	public static final String KEY_DEFAULT_PRINCIPAL = "sblim.wbem.default.principal";
805 
806 	/**
807 	 *
808 	 * The credential of the user for the &quot;garbage&quot; credential.
809 	 *
810 	 * Note: This property has no effect unless default authorization is
811 	 * enabled (see the sblim.wbem.default.authorization.enabled property)
812 	 * AND both the user-supplied principal and credential are null/empty.
813 	 *
814 	 * Type: String
815 	 * Recognition: Startup
816 	 * Default: &quot;default&quot;
817 	 *
818 	 */
819 	public static final String KEY_DEFAULT_CREDENTIAL = "sblim.wbem.default.credential";
820 
821 	/**
822 	 * The timeout for http connections of an indication listener. A timeout of
823 	 * zero is interpreted as infinite timeout.<br />
824 	 * <br />
825 	 * Type: <code>Integer</code><br />
826 	 * Unit: <code>Milliseconds</code><br />
827 	 * Recognition: <code>On next creation of a WBEMListener</code><br />
828 	 * Range: <code>0 .. Integer.MAX_VALUE</code><br />
829 	 * Default: <code>10000</code><br />
830 	 */
831 	public static final String LISTENER_HTTP_TIMEOUT = "sblim.wbem.listenerHttpTimeout";
832 
833 	/**
834 	 * The header timeout for http connections of an indication listener. The
835 	 * header timeout is defined as the maximum amount of time allowed to read
836 	 * in the entire http header. A timeout of zero is interpreted as infinite
837 	 * timeout.<br />
838 	 * <br />
839 	 * Note: One form of DoS attack sends periodic http header lines in an
840 	 * attempt to keep the socket open indefinitely. This timeout can be used to
841 	 * thwart such an attempt.<br />
842 	 * <br />
843 	 * Type: <code>Integer</code><br/>
844 	 * Unit: <code>Milliseconds</code><br />
845 	 * Recognition: <code>On next creation of a WBEMListener<code><br/>
846 	 * Range: <code>0 .. Integer.MAX_VALUE</code><br />
847 	 * Default: <code>30000</code><br/>
848 	 */
849 	public static final String LISTENER_HTTP_HEADER_TIMEOUT = "sblim.wbem.listenerHttpHeaderTimeout";
850 
851 	/**
852 	 * The maximum allowable timeouts an http connection of an indication
853 	 * listener can have before the client ignores it. In other words, the
854 	 * number of times an IP exceeds sblim.wbem.listenerHttpTimeout and
855 	 * sblim.wbem.listenerHttpHeaderTimeout before it is blocked. A value of
856 	 * zero is interpreted as unlimited timeouts.<br />
857 	 * <br />
858 	 * Type: <code>Integer</code><br />
859 	 * Recognition: <code>On next creation of a WBEMListener</code><br />
860 	 * Range: <code>0 .. Integer.MAX_VALUE</code><br />
861 	 * Default: <code>0</code><br />
862 	 */
863 	public static final String LISTENER_HTTP_MAX_ALLOWED_TIMEOUTS = "sblim.wbem.listenerHttpMaxAllowedTimeouts";
864 
865 	/**
866 	 * The size of the thread pool for the connection handlers of the indication
867 	 * for http connections of an indication listener. This is the maximum
868 	 * number of handler threads the pool might create on heavy load.<br />
869 	 * A value of -1 is interpreted as infinity. <br />
870 	 * Type: <code>Integer</code><br />
871 	 * Unit: <code>Count</code><br />
872 	 * Recognition: <code>On next creation of a WBEMListener</code><br />
873 	 * Range: <code>-1 .. Integer.MAX_VALUE</code><br />
874 	 * Default: <code>8</code><br />
875 	 */
876 	public static final String LISTENER_MAX_POOL_SIZE = "sblim.wbem.listenerPoolMaxSize";
877 
878 	/**
879 	 * The minimal number of connection handlers of the indication listener that
880 	 * will be kept open by the thread pool regardless of the current load. <br />
881 	 * Type: <code>Integer</code><br />
882 	 * Unit: <code>Count</code><br />
883 	 * Recognition: <code>On next creation of a WBEMListener</code><br />
884 	 * Range: <code>0 .. Integer.MAX_VALUE</code><br />
885 	 * Default: <code>2</code><br />
886 	 */
887 	public static final String LISTENER_MIN_POOL_SIZE = "sblim.wbem.listenerPoolMinSize";
888 
889 	/**
890 	 * The maximum number of queued connections (the fixed capacity of the
891 	 * ArrayBlockingQueue of pending connections incoming to the listener).
892 	 * Whereas increasing this number will result in a correspondingly greater
893 	 * memory usage, making the number too small can result in HTTP 503
894 	 * "Service temporarily overloaded" returned to server if there is no room
895 	 * in queue for an incoming connection. <br />
896 	 * Type: <code>Integer</code><br />
897 	 * Unit: <code>Count</code><br />
898 	 * Recognition: <code>On next creation of a WBEMListener</code><br />
899 	 * Range: <code>1 .. Integer.MAX_VALUE</code><br />
900 	 * Default: <code>32</code><br />
901 	 */
902 	public static final String LISTENER_MAX_QUEUE_SIZE = "sblim.wbem.listenerQueueMaxSize";
903 
904 	/**
905 	 * The number of queued connections that is tolerated before the thread pool
906 	 * creates an additional handler thread. Increasing this value leads to a
907 	 * less &quot;nervous&quot; creation/destruction of handlers. However it
908 	 * makes the listener more vulnerable to frozen connections.<br />
909 	 * <br />
910 	 * Type: <code>Integer</code><br />
911 	 * Unit: <code>Count</code><br />
912 	 * Recognition: <code>On next creation of a WBEMListener</code><br />
913 	 * Range: <code>0 .. Integer.MAX_VALUE</code><br />
914 	 * Default: <code>2</code><br />
915 	 */
916 	public static final String LISTENER_BACKLOG = "sblim.wbem.listenerBacklog";
917 
918 	/**
919 	 * The idle time of a worker that is tolerated before the worker is
920 	 * destroyed by the thread pool. By setting the minimal pool size >0 you can
921 	 * protect a given number of worker from destruction.<br />
922 	 * <br />
923 	 * Type: <code>Long</code><br />
924 	 * Unit: <code>Milliseconds</code><br />
925 	 * Recognition: <code>On next creation of a WBEMListener</code><br />
926 	 * Range: <code>0 .. Long.MAX_VALUE</code><br />
927 	 * Default: <code>30000</code><br />
928 	 */
929 	public static final String LISTENER_HANDLER_MAX_IDLE = "sblim.wbem.listenerHandlerMaxIdle";
930 
931 	/**
932 	 * The maximum number of queued events (the fixed capacity of the LinkedList
933 	 * of indications awaiting delivery to the listener). When the maximum is
934 	 * reached, the oldest indications are discarded to make room for the newest
935 	 * ones. A value of 0 is interpreted as infinity. <br />
936 	 * Type: <code>Integer</code><br />
937 	 * Unit: <code>Count</code><br />
938 	 * Recognition: <code>On next creation of a WBEMListener</code><br />
939 	 * Range: <code>0 .. Integer.MAX_VALUE</code><br />
940 	 * Default: <code>0</code><br />
941 	 */
942 	public static final String LISTENER_MAX_QUEUED_EVENTS = "sblim.wbem.listenerMaxQueuedEvents";
943 
944 	/**
945 	 *
946 	 * If set to true, reliable indication support is enabled and indications
947 	 * are processed accordingly.  If set to false, reliable indication
948 	 * support is disabled and indications are passed directly to listener.
949 	 *
950 	 * If reliable indication support is enabled, incoming indications are
951 	 * handled as documented in DSP1054 which includes queuing unexpected
952 	 * indications, caching all indications for the duration of their sequence
953 	 * identifier lifetime, and logging missing, duplicate and out-of-order
954 	 * indications.
955 	 *
956 	 * The sequence identifier lifetime is defined as:
957 	 *   DeliveryRetryAttempts * DeliveryRetryInterval * 10
958 	 * These values can be set by the sblim.wbem.listenerDeliveryRetryAttempts
959 	 * and sblim.wbem.listenerDeliveryRetryInterval properties below.
960 	 *
961 	 * Unexpected indications are queued in either a linked list or a hash
962 	 * table based on the sblim.wbem.listenerReliableIndicationHashtableCapacity
963 	 * property below.  The linked list is better suited for a small number of
964 	 * listener destinations per WBEMListener while the hash table is better
965 	 * suited for a large number.
966 	 *
967 	 * Type: Boolean
968 	 * Recognition: On next creation of a WBEMListener
969 	 * Default: false
970 	 *
971 	 */
972 	public static final String LISTENER_ENABLE_RELIABLE_INDICATIONS = "sblim.wbem.listenerEnableReliableIndications";
973 
974 	/**
975 	 *
976 	 * The default value to use for the CIM_IndicationService DeliveryRetryAttempts
977 	 * property.  See DSP1054 for details on reliable indications.
978 	 *
979 	 * Note: This property has no effect unless reliable indication support is
980 	 * enabled.  See the sblim.wbem.listenerEnableReliableIndications property.
981 	 *
982 	 * Type: Long
983 	 * Unit: Count
984 	 * Recognition: On next creation of a WBEMListener
985 	 * Range: 1 .. 1000
986 	 * Default: 3
987 	 *
988 	 */
989 	public static final String LISTENER_DELIVERY_RETRY_ATTEMPTS = "sblim.wbem.listenerDeliveryRetryAttempts";
990 
991 	/**
992 	 *
993 	 * The default value to use for the CIM_IndicationService DeliveryRetryInterval
994 	 * property.  See DSP1054 for details on reliable indications.
995 	 *
996 	 * Note: This property has no effect unless reliable indication support is
997 	 * enabled.  See the sblim.wbem.listenerEnableReliableIndications property.
998 	 *
999 	 * Type: Long
1000 	 * Unit: Seconds
1001 	 * Recognition: On next creation of a WBEMListener
1002 	 * Range: 1 .. 86400
1003 	 * Default: 20
1004 	 *
1005 	 */
1006 	public static final String LISTENER_DELIVERY_RETRY_INTERVAL = "sblim.wbem.listenerDeliveryRetryInterval";
1007 
1008 	/**
1009 	 *
1010 	 * The default value to use for the reliable indication handler's initial
1011 	 * hash table capacity.  A value of 0 indicates use a linked list instead.
1012 	 * Linked lists are better suited for a small number of listener destinations
1013 	 * per WBEMListener while hash tables are better suited for a large number.
1014 	 *
1015 	 * Note: This property has no effect unless reliable indication support is
1016 	 * enabled.  See the sblim.wbem.listenerEnableReliableIndications property.
1017 	 *
1018 	 * Type: Integer
1019 	 * Unit: Count
1020 	 * Recognition: On next creation of a WBEMListener
1021 	 * Range: 0 .. 25000
1022 	 * Default: 0
1023 	 *
1024 	 */
1025 	public static final String LISTENER_RELIABLE_INDICATION_HASHTABLE_CAPACITY =
1026 		"sblim.wbem.listenerReliableIndicationHashtableCapacity";
1027 
1028 	/**
1029 	 *
1030 	 * The filter to use for tracing of incoming indications at the FINE level.
1031 	 *
1032 	 * If string is empty, no tracing of incoming indications will occur.  If
1033 	 * string is not empty, it identifies one or more properties to be included
1034 	 * in the trace of all incoming indications.  An optional class can be used
1035 	 * to filter the output to include only those indications that contain the
1036 	 * substring.  For example, to trace the SequenceContext and SequenceNumber
1037 	 * properties of all alerts, use the following:
1038 	 *
1039 	 *    alert:sequencecontext,sequencenumber
1040 	 *
1041 	 * To trace the IndicationTime of all indications, use the following:
1042 	 *
1043 	 *    indicationtime
1044 	 *
1045 	 * Note: This property has no effect unless tracing is enabled.  See the
1046 	 * sblim.wbem.traceFileLevel property.
1047 	 *
1048 	 * Type: String
1049 	 * Recognition: On next creation of WBEMListener
1050 	 * Format: [class:]property[,property]*
1051 	 *
1052 	 */
1053 	public static final String LISTENER_INDICATION_TRACE_FILTER = "sblim.wbem.listenerIndicationTraceFilter";
1054 
1055 	/**
1056 	 *
1057 	 * If set to true, a property will be added to all indications that identifies
1058 	 * the sender's IP address.  If set to false, the property will not be added.
1059 	 *
1060 	 * The property is a CIMProperty with:
1061 	 *   name = &quot;SBLIMJCC_SenderIPAddress&quot;
1062 	 *   data type = CIMDataType.STRING_T
1063 	 *   value = String returned by InetAddress.getHostAddress() (i.e. 1.2.3.4)
1064 	 *
1065 	 * Type: Boolean
1066 	 * Recognition: On next creation of a WBEMListener
1067 	 * Default: false
1068 	 *
1069 	 */
1070 	public static final String LISTENER_ADD_SENDER_IP_ADDRESS = "sblim.wbem.listenerAddSenderIPAddress";
1071 
1072 	/**
1073 	 *
1074 	 * If set to true, numeric string values passed to the java.lang.Double
1075 	 * constructor or its parseDouble method will be checked to make sure they
1076 	 * are not in the range that hangs Java 6- (see Sun bug 4421494).  If
1077 	 * set to false, the string values will not be checked.
1078 	 *
1079 	 * Note: This property should only be set to true if running on Java 5 or
1080 	 * Java 6 prior to update 24.
1081 	 *
1082 	 * Type: Boolean
1083 	 * Recognition: Startup
1084 	 * Default: true
1085 	 *
1086 	 */
1087 	public static final String VERIFY_JAVA_LANG_DOUBLE_STRINGS = "sblim.wbem.verifyJavaLangDoubleStrings";
1088 
1089 	/**
1090 	 *
1091 	 * If set to true, numeric key data types in a CIMInstance's CIMObjectPath
1092 	 * will be synchronized to match those of the corresponding keys within
1093 	 * the CIMInstance's CIMProperty[].  If set to false, the numeric key data
1094 	 * types will not be synchronized.
1095 	 *
1096 	 * Note: Only numeric key data types in CIMInstances from CIMOM responses
1097 	 * are synchronized, application calls to the CIMInstance constructor are
1098 	 * not affected.
1099 	 *
1100 	 * Type: Boolean
1101 	 * Recognition: Startup
1102 	 * Default: false
1103 	 *
1104 	 */
1105 	public static final String SYNCHRONIZE_NUMERIC_KEY_DATA_TYPES = "sblim.wbem.synchronizeNumericKeyDataTypes";
1106 
1107 	/**
1108 	 *
1109 	 * If set to true, gzip encoding is enabled.  If set to false, gzip encoding
1110 	 * is not enabled.  When enabled, outgoing requests include the HTTP header
1111 	 * &quot;Accept-Encoding: gzip&quot; to indicate to the CIMOM that the client handles
1112 	 * message bodies compressed with gzip.  If the incoming response includes
1113 	 * &quot;Content-Encoding: gzip&quot; the message body will be decompressed with gzip
1114 	 * before being processed.
1115 	 *
1116 	 * Note: This property does not affect indications or outgoing requests.
1117 	 *
1118 	 * Type: Boolean
1119 	 * Recognition: Anytime
1120 	 * Default: false
1121 	 *
1122 	 */
1123 	public static final String ENABLE_GZIP_ENCODING = "sblim.wbem.enableGzipEncoding";
1124 
1125 	/**
1126 	 *
1127 	 * If set to true, the CIM-XML parser will allow empty LOCALNAMESPACEPATH
1128 	 * elements in incoming responses.  If set to false, the parser will not
1129 	 * allow empty LOCALNAMESPACEPATH elements.
1130 	 *
1131 	 * Note: Some older CIMOMs sent empty LOCALNAMESPACEPATHs, relying on the
1132 	 * client to provide the local namespace path.  This is a violation of
1133 	 * DSP0201, which dictates that LOCALNAMESPACEPATH must contain at least
1134 	 * one NAMESPACE child.  By default, this property is set to false so the
1135 	 * client can adhere to the CIM-XML specifications.  Set this property to
1136 	 * true if &quot;LOCALNAMESPACEPATH requires NAMESPACE&quot; exceptions occur while
1137 	 * interacting with one of these older CIMOMs.
1138 	 *
1139 	 * Type: Boolean
1140 	 * Recognition: Anytime
1141 	 * Default: false
1142 	 *
1143 	 */
1144 	public static final String CIMXML_PARSER_ALLOW_EMPTY_LOCALNAMESPACEPATH =
1145 		"sblim.wbem.cimxmlParser.allowEmptyLocalNameSpacePath";
1146 
1147 	/**
1148 	 * AMMO-863
1149 	 * <p>
1150 	 * New configuration property to force the use of a strict mode for the
1151 	 * HTTP header Connection=Keep-alive (that may not be used for HTTP/1.1).
1152 	 */
1153 	public static final String HTTP_KEEP_ALIVE_STRICT_MODE = "sblim.wbem.httpKeepAliveStrictMode";
1154 }