Deviations from SAGA specifications

Security management

  • If several valid context candidates are available for a given URL, then instead of trying all the contexts, an AmbiguityException (extends NoSuccessException) is thrown. This avoid the risk of...
    • creating files with unexpected owner.
    • submitting jobs that fail at runtime because of unexpected user.
    • locking the account because of too many failed connection attempts.
  • Methods
    • toString(): overrided to dump a description of the security context instance.

Data management

  • URL
    • Query (?...) at the end of URL refers to adaptor-specific parameters.
    • Fragment (#...) at the end of URL refers to a specific configuration of the protocol.
    • Modified class URL to support windows paths, relative paths (scheme://./path) and special characters (e.g. %  #). (NOTE: this is the only modification made on the SAGA Java Binding, and it will disappear when a URL factory will be provided)
  • Constructor flags
    • FLAGS_BYPASSEXIST=4096: added to disable existence check when creating NSEntry instances. (NOTE: an IncorrectState exception embedding a DoesNotExist exception may be thrown on subsequent method invocations)
  • Methods (NOTE: These methods are accessible by casting NSEntry instances to AbstractNSEntryImpl and NSDirectory instances to AbstractNSDirectoryImpl)
    • copyFrom(): added to copy remote source entry to current entry (for optimization purposes).
    • getLastModified(): added to get the date of last modification (for implementation of "ls -l").
    • NSEntry.remove(): allow no RECURSIVE flag for directory (for enabling "rmdir-like" behavior).

Job management

  • Job description attributes
    • JobName: added
    • JobStartTime: not supported (NOTE: this attribute is ’not supported by JSDL and might disappear in future versions of the SAGA API)
    • JobContact: not supported (NOTE: this attribute is ’not supported by JSDL and might disappear in future versions of the SAGA API)
    • CPUArchitecture: defined as scalar attribute (NOTE: for compliance with JSDL)
    • OperatingSystemType: defined as scalar attribute (NOTE: for compliance with JSDL)
  • Attributes
    • NativeJobDescription: added
  • Metrics
    • job.sub_state: added
  • Methods
    • allocateResource: added (NOTE: to be renamed to bindResourceManager)

Streams, Remote Procedure Call

  • Will not be implemented.