pool: Fix -sticky option in migration module

Addresses a regression that causes the -sticky option when
used without a value to not match any files.

The issue was that the empty value of a multi-valued option
was translated to an array with the empty string rather than
the empty array.

Target: trunk
Request: 2.7
Request: 2.6
Ticket: http://rt.dcache.org/Ticket/Display.html?id=8108
Require-notes: yes
Require-book: no
Acked-by: Paul Millar <paul.millar@desy.de>
Patch: http://rb.dcache.org/r/6247/
srm: Refactor Scheduler

This is the first iteration to clean up the Scheduler class. The
patch mostly addresses logging and locking issues, and also replaces
a number of chained if-statements with switch.

Appologies for auto-reformatting, but the existing indentation was
too inconsistent to work with.

I deliberately did not make major changes to the logic or error
messages. That will be done in subsequent patches.

Target: trunk
Require-notes: no
Require-book: no
Acked-by: Paul Millar <paul.millar@desy.de>
Acked-by: Dmitry Litvintsev <litvinse@fnal.gov>
Patch: http://rb.dcache.org/r/6199/
srm: Get rid of dead exception code in Scheduler

Target: trunk
Require-notes: no
Require-book: no
Acked-by: Paul Millar <paul.millar@desy.de>
Acked-by: Dmitry Litvintsev <litvinse@fnal.gov>
Patch: http://rb.dcache.org/r/6206/
srm: More Scheduler refactoring

Target: trunk
Require-notes: no
Require-book: no
Acked-by: Dmitry Litvintsev <litvinse@fnal.gov>
Acked-by: Paul Millar <paul.millar@desy.de>
Patch: http://rb.dcache.org/r/6209/
srm: Some more refactoring of Scheduler

Target: trunk
Require-notes: no
Require-book: no
Acked-by: Paul Millar <paul.millar@desy.de>
Patch: http://rb.dcache.org/r/6212/
srm: Fix compilation error introduced by bad merge

Target: trunk
Require-notes: no
Require-book: no
Patch: none
billing: Add shebang header to indexer cronjob

Addresses an issue with the billing indexer cronjob, that
prevented it from being executed.

Target: trunk
Request: 2.7
Require-notes: yes
Require-book: no
Acked-by: Paul Millar <paul.millar@desy.de>
Patch: http://rb.dcache.org/r/6249/
nfs: add -c option to statics command to reset counters

Acked-by: Gerd Behrmann
Target: master
Require-book: no
Require-notes: no
chimera: compact hadles passed to NFS server

The chimera IDs on the wire presented as:

0:TAG:0000DA875B38D9E0461F9ADFEA7C7422A956:OSMTemplate

This change introduses a binary form with backward compatibility,
e.q. new version can understand and decode old forms.

The new form:

<byte 1> : fsid
<byte 2> : inode type
<byte 3> : len of the id
<byte 4:id len> id of the file
<byte ~22> : len of inode specific data
<byte 24:opque len> specific data.

For example above, ithe old encoding: will produce 68 byte nfs file handle,
with new scheme - 47.

Ticket: #7927
Acked-by: Paul Millar
Target: master
Require-book: no
Require-notes: no
dcap: separate protocol name and client ip in DCapProtocolInfo#toString()

from
   DCap-3.0141.34.224.41:20009
to
   DCap-3.0,141.34.224.41:20009

Acked-by: Paul Millar
Target: master, 2.6, 2.7
Require-book: no
Require-notes: no
namespace: use liquibase for chimera based tests

Acked-by: Gerd Behrmann
Target: master
Require-book: no
Require-notes: no
chimera: remove historic SQL code

Acked-by: Dmitry Litvintsev
Target: master
Require-book: no
Require-notes: no
chimera: update DB schema to support CREATION_TIME

update jdbcfs to populate creation time

A new field 'icrtime' is introduced to keep track of file creation time.
The initial value for ald files will be oldest from mtime, ctime and atime.

Acked-by: Paul Millar
Target: master
Require-book: yes
Require-notes: yes
namespace: use correct DB field for CREATION_TIME

Acked-by: Gerd Behrmann
Target: master
Require-book: no
Require-notes: no
dcap: use CHANGE_TIME to provide ctime on stat

Acked-by: Paul Millar
Target: master
Require-book: no
Require-notes: no
ldap: fix filter property

Acked-by: Karsten Schwank
Target: master, 2.6, 2,7
Require-book: no
Require-notes: no
billing: Add date prefix to output of search command

Our default billing format does not include the year in the billing
file, and it is unclear whether the order in the billing file is
month.year or year.month. This patch adds the full date as a prefix
to the output when searching for billing entries. The date is
formatted using the system local.

Target: trunk
Require-notes: yes
Require-book: yes
Acked-by: Paul Millar <paul.millar@desy.de>
Patch: http://rb.dcache.org/r/6251/
srm: Supress stack trace on EofException in Axis 1

Axis 1 logs a full stack trace on a benign EofException. There is
no easy way to alter the behaviour of the Axis 1 code. This patch
instead uses an aspect to advice Axis 1 to log a simpler message.

I had to change the Java agent from Spring's AspectJ wrapper to
AspectJ. Spring's agent is used when you have many class loaders
and want to weave independently in each. That's a use case we
don't have, and using Spring's wrapper causes problems when you
have multiple adviced dCache services.

Target: trunk
Request: 2.7
Require-notes: yes
Require-book: no
Acked-by: Tigran Mkrtchyan <tigran.mkrtchyan@desy.de>
Patch: http://rb.dcache.org/r/6256/
srm: Supress stack trace on EofException in Axis 1

Forgot to include this file in the previous commit.

Require-notes: no
Require-book: no
gPlazma-ldap: fix non-serializable Set problem

reverseMap returned a automatically Scala to Java converted Set class
that did not implement Serializable.  This caused an
NotSerializableException when the object should be send in a cell
message.  This patch adds a couple of manual conversions instead of
automatic ones, ensuring the returned Set is Serializable.

Ticket:
Acked-by:
Target: trunk
Require-book: no
Require-notes: no