srm: Take root path into account when selecting protocol

Changes the door selection logic such that the root path of a door is taken
into account when selecting a transfer protocol.

Also refactors the Storage interface such that the decision to reuse a door is
done in the Storage implementation rather than in the generic SRM code (which
shouldn't know about dcap).

Target: trunk
Require-notes: yes
Require-book: no
Acked-by: Paul Millar <paul.millar@desy.de>
Patch: http://rb.dcache.org/r/6645/
srm: Various minor refactorings

These things were originally part of the unique TURL patch, but are
not directly a consequence of using unique TURLs.

Target: trunk
Require-notes: no
Require-book: no
Acked-by: Paul Millar <paul.millar@desy.de>
Patch: http://rb.dcache.org/r/6646/
srm: Add SRM status code to SRMException

Makes it easier to translate exceptions to an SRM reply. Unused
in this patch, but is used in subsequent patches.

Target: trunk
Require-notes: no
Require-book: no
Acked-by: Tigran Mkrtchyan <tigran.mkrtchyan@desy.de>
Patch: http://rb.dcache.org/r/6659/
xrootd: Upgrade to xrootd4j 1.3.1

Fixes problems with null-termination of string in xrootd messages.

Target: trunk
Require-notes: yes
Require-book: no
Acked-by: Tigran Mkrtchyan <tigran.mkrtchyan@desy.de>
Patch: http://rb.dcache.org/r/6669/
Upgrade to HikariCP 1.3.2

Solves a problem with JMX releated warning messages being logged.

Target: trunk
Require-notes: no
Require-book: no
Acked-by: Tigran Mkrtchyan <tigran.mkrtchyan@desy.de>
Patch: http://rb.dcache.org/r/6670/
Add missing newline when quitting shell applications

Target: trunk
Require-notes: no
Require-book: no
Acked-by: Tigran Mkrtchyan <tigran.mkrtchyan@desy.de>
Patch: http://rb.dcache.org/r/6671/
srm: Include failed or unprocessed surls in list response

Otherwise the status of such files isn't reported back to the client.

Target: trunk
Require-notes: yes
Require-book: no
Acked-by: Tigran Mkrtchyan <tigran.mkrtchyan@desy.de>
Patch: http://rb.dcache.org/r/6673
chimera: fix inode type detection

types socket and directory have an overlapping bit.
this makes checks like

(X & IFDIR) == IFDIR

to evaluate as true for sockets and process them a directory.

Use a type mask and change check to
(X & TYPE) == IFDIR

Acked-by: Gerd Behrmann
Target: master
Require-book: no
Require-notes: no