<trebuchet-configuration>
Purpose/Function
Extension of the ncsa.tools.common.types.Configuration
object specifically for Trebuchet usage. See below for a fuller explanation of this object. Within Trebuchet, the object is used to carry Trebuchet-specific settings, and (under the covers) user name and/or proxy, along with any optimization settings for the operation. When Trebuchet is used through Ogrescript, the configuration is present only to specify non-default option settings (see the list below).
Attributes
Usually not used in Ogrescript.
Elements
TAG | TYPE | COUNT | DESCRIPTION |
---|---|---|---|
|
| 0:N | a Trebuchet configuration option to set |
For the purposes of Trebuchet, the name, value and type attributes should be set (default type is string).
TREBUCHET CONFIGURATION OPTIONS
JAVA | OGRESCRIPT | TYPE | DEFAULT |
---|---|---|---|
ANY.OPERATION_ID | operation-id | String | null |
ANY.TREBUCHET_DIR | trebuchet.dir | String | null; this property must be set as a Java System property; the default will produce a directory |
ANY.IGNORE_SUCCESS_STATUS | ignore-success-status | boolean | false |
ANY.CLIENT_POOL_SIZE | client-pool-size | int | 3 |
ANY.THREAD_POOL_SIZE | thread-pool-size | int | 30 |
ANY.LIST_FAILONERROR | list-fail-on-error | boolean | false |
ANY.LIST_RECURSIVE | list-recursive | boolean | false |
ANY.LIST_EXCLUDE_HIDDEN | list-exclude-hidden | boolean | false |
ANY.LIST_INCLUDE_SELF | list-include-self | boolean | false |
ANY.LIST_PROCESS_SYMLINKS | list-process-symlinks | boolean | false |
ANY.LIST_TIMEOUT | list-timeout | long | 3000 |
ANY.LIST_STAGE_LATENCY | list-stage-latency | long | 60000 |
ANY.LIST_STAGE_POLLING | list-stage-polling | long | 5000 |
ANY.LIST_STAGE_MAX_TIME | list-stage-max-time | long | -1 (no max) |
ANY.TOUCH_FAILONERROR | touch-fail-on-error | boolean | false |
ANY.TOUCH_MAKE_PARENT | touch-make-parent | boolean | true |
ANY.TOUCH_CREATE | touch-create | boolean | false |
ANY.TOUCH_TIMESTAMP | touch-timestamp | Integer | null |
ANY.TOUCH_SOURCE | touch-source | boolean | false |
ANY.TOUCH_TMP | touch-tmp | boolean | false |
ANY.MKDIR_FAILONERROR | mkdir-fail-on-error | boolean | false* |
ANY.MKDIR_TMP | mkdir-tmp | boolean | false |
ANY.DELETE_FAILONERROR | delete-fail-on-error | boolean | false* |
ANY.DELETE_ALL_EMPTY_DIRS | delete-all-empty-dirs | boolean | false |
ANY.DELETE_ONLY_NON_DIRS | delete-only-non-dirs | boolean | false |
ANY.DELETE_ONLY_DIRS | delete-only-dirs | boolean | false** |
ANY.DELETE_TMP | delete-tmp | boolean | false |
ANY.COPY_SCAN_ALL_BEFORE | copy-scan-all-before | boolean | false |
ANY.COPY_SKIP_EMPTY_DIRS | copy-skip-empty-dirs | boolean | false |
ANY.COPY_FLATTEN | copy-flatten | boolean | false |
ANY.COPY_DELETE_SRC | copy-delete-src | boolean | false |
ANY.COPY_MAKE_PARENT | copy-make-parent | boolean | true*** |
ANY.COPY_OVERWRITE | copy-overwrite | boolean | true**** |
ANY.COPY_RANDOM_DUPLICATES | copy-random-duplicates | boolean | false |
ANY.COPY_SEQUENTIAL_DUPLICATES | copy-sequential-duplicates | boolean | false |
ANY.COPY_MARK_FAILED_DELETES | copy-mark-failed-deletes | boolean | false |
ANY.COPY_ONLY_MORE_RECENT | copy-only-more-recent | boolean | false |
ANY.COPY_RETRY | copy-retry | int | 0 |
ANY.COPY_VALIDATE_SIZES | copy-validate-sizes | boolean | false |
ANY.COPY_UPDATE_CHUNK_SIZE | copy-update-chunk-size | int | 1024*1024*10 |
ANY.COPY_FORCE_UPDATES | copy-force-updates | boolean | false |
FILE.LIST_UNIX_SCAN | list-unix-scan | boolean | true |
FILE.COPY_RELINK_SYMLINKS | copy-relink-symlinks | boolean | false |
FILE.COPY_LINK_TO_SOURCE | copy-link-to-source | boolean | false |
GRIDFTP.TRANSFER_TYPE | transferType | String | gridftp-image |
GRIDFTP.ASCII | gridftp-ascii | String |
|
GRIDFTP.IMAGE | gridftp-image | String |
|
GRIDFTP.EBCDIC | gridftp-ebcdic | String |
|
GRIDFTP.TRANSFER_MODE | transferMode | String | gridftp-eblock (if supported) |
GRIDFTP.STREAM | gridftp-stream | String |
|
GRIDFTP.BLOCK | gridftp-block | String |
|
GRIDFTP.EBLOCK | gridftp-eblock | String |
|
GRIDFTP.PROTECTION_LEVEL | protection | String | gridftp-clear |
GRIDFTP.CLEAR | gridftp-clear | String |
|
GRIDFTP.SAFE | gridftp-safe | String |
|
GRIDFTP.PRIVATE | gridftp-private | String |
|
GRIDFTP.CONFIDENTIAL | gridftp-confidential | String |
|
GRIDFTP.DATA_CHANNEL_AUTH | dataChannelAuthentication | String | gridftp-none |
GRIDFTP.NONE | gridftp-none | String |
|
GRIDFTP.SELF | gridftp-self | String |
|
GRIDFTP.TARGET_ACTIVE | target-active | boolean | false |
GRIDFTP.PARALLELISM | parallelism | int | 1 |
GRIDFTP.STRIPING | striping | boolean | false |
GRIDFTP.PROTECTION_BUFFER | protectionBufferSize | int | 1024*16 |
GRIDFTP.TCP_BUFFER | tcpBufferSize | int | 1024*64 (local) |
GRIDFTP.LOCAL_TCP_BUFFER | localTcpBufferSize | int | 1024*64 (local) |
GRIDFTP.REPLY_WAIT | replyWait | int | 30 * 1000 (ms) |
GRIDFTP.POLL_SERVER | pollServer | int | 200 (ms) |
GRIDFTP.VERIFY_VIA_LIST | verify-via-list | boolean | false |
SSH.COPY_LINK_TO_SOURCE | copy-link-to-source | boolean | false |
HTTP.CONNECTION_TIMEOUT_IN_SECS | HTTP-connection-timeout-in-secs | int | 0 |
HTTP.LINGER | HTTP-linger | int | 0 |
HTTP.SEND_BUFFER_SIZE | HTTP-send-buffer-size | int | ? |
HTTP.RECV_BUFFER_SIZE | HTTP-recv-buffer-size | int | ? |
HTTP.SO_TIMOUT_IN_SECS | HTTP-so-timeout-in-secs | int | 0 |
HTTP.ENABLE_STALE_CHECKING | HTTP-enable-stale-checking | boolean | false |
HTTP.TCP_NO_DELAY | HTTP-tcp-no-delay | boolean | false |
HTTP.MAX_CONNECTIONS_PER_HOST | HTTP-max-connections-per-host | int | ? |
HTTP.TOTAL_CONNECTIONS | HTTP-total-connections | int | ? |
HTTP.LENIENT | HTTP-lenient | boolean | false |
HTTP.STRICT | HTTP-strict | boolean | false |
HTTP.VERSION | HTTP-version | String | HTTP_1_1 |
HTTP_0_9 | HTTP-0-9 | String |
|
HTTP_1_0 | HTTP-1-0 | String |
|
HTTP_1_1 | HTTP-1-1 | String |
|
GRIDFTP settings also apply to MSSFTP.
* = defaults to FALSE if the property is not set; the default configuration object for Mkdir, Delete, and Copy, however, forces these to TRUE.
** = automatically set to TRUE during the postprocessing phase of the copy operation if source or tmp is being deleted.
*** = used when generating a CopyCache directly from source and target URIs.
**** = set to FALSE in the default configuration for resource copy.
To set the GRIDFTP port range programmatically, do the following:
- in JAVA:
Code Block System.setProperty("org.globus.tcp.port.range", "x,y");
- in OGRESCRIPT (see SetSystemProperty):
Code Block xml xml <set-system-property name="org.globus.tcp.port.range" value="x,y"/>
NOTES
An explanation of ncsa.tools.common.types.Configuration
This object can be used (programmatically) in one of two ways:
- to provide a dynamic set of name-value pairs which can be used to configure an object's "set" methods by reflection;
- to carry definitions of properties to be used dynamically in connection with an operation, without their being directly associated with an object's accessor methods.
The latter is the mode in which it is used in the Ogrescript-Trebuchet tasks.
The principal data type added and stored is an ncsa.tools.common.types.Property
; however, its subclass, ncsa.tools.common.types.ActualValueAttribute
, can also be added programmatically (not through Ogrescript) to the configuration object. The latter holds a property value of an arbitrary, usually (though not necessarily) serializable type. The configuration object's "match" method, however, only attempts to compare names and string values, even on the ActualValueAttribute.
If a property name is in the configuration propertyObjectMap and matches an accessor method on an object to be configured by reflection, that object will be given the corresponding value for that field by first deserializing the string value.
A single configuration object can be re-used to configure more than one object. Care must be taken, however, to avoid re-use of the same configuration object across objects of different types when these have intersecting method names whose values need to be different, or where default values for those names should not be changed on one of the objects.
Examples
Code Block | ||||
---|---|---|---|---|
| ||||
<ogrescript> ... <copy> <configuration> <property name="transferMode" value="gridftp-stream"/> <property name="target-active" value="true" type="boolean"/> <property name="tcpBufferSize" value="2097152" type="int"/> </configuration> ... </copy> ... </ogrescript> |