cleaner: Add hsqldb support

Addresses the issue that the cleaner was not functional when used with
hsqldb, and thus didn't work in system-test. The trigger to populate
the trash table was missing.

This patch adds a trigger. HSQLDB unfortunately does not support data
manipulation statements in BEFORE DELETE triggers and thus cannot
populate the trash on delete from t_inodes (AFTER DELETE is too late
as the delete cascades to t_locationinfo before the trigger is run,
and thus the data is already gone). Instead the patch adds an
AFTER DELETE trigger on the t_locationinfo table itself. A trigger
condition is used to limit the trigger to deletion of an inode and
thus excludes regular deletes of replicas on pool and tapes.

Target: trunk
Require-notes: no
Require-book: no
Acked-by: Paul Millar <paul.millar@desy.de>
Patch: http://rb.dcache.org/r/5735/
cleaner: Comply with new configuration policy

Also added a couple of delete tests to the system-test test
script.

New properties

cleaner.cell.name
cleaner.cell.export
cleaner.limits.threads
cleaner.limits.period
cleaner.limits.period.unit
cleaner.service.pool.timeout
cleaner.service.pool.timeout.unit
cleaner.service.pool.retry-period
cleaner.service.pool.retry-period.unit
cleaner.destination.remove-notification
cleaner.limits.batch-size
cleaner.enable.hsm
cleaner.limits.hsm-batch-size
cleaner.service.pool.hsm-timeout
cleaner.service.pool.hsm-timeout.unit
cleaner.db.host
cleaner.db.name
cleaner.db.user
cleaner.db.password
cleaner.db.driver
cleaner.db.url
cleaner.db.schema.auto

Deprecated

cleaner.period
cleaner.pool-reply-timeout
cleaner.pool-retry
cleaner.report-cell
cleaner.max-files-in-message
cleaner.enable.hsm
cleaner.hsm.max-files-in-message
cleaner.hsm.pool-reply-timeout

Obsolete

cleaner.hsm

Removed

cleaner.trash.dir
cleanerArchive
cleanerDB
cleanerPoolTimeout
cleanerProcessFilesPerRun
cleanerRecover
cleanerRefresh
hsmCleaner
hsmCleanerFlush
hsmCleanerRecover
hsmCleanerRepository
hsmCleanerRequest
hsmCleanerScan
hsmCleanerTimeout
hsmCleanerTrash
hsmCleanerQueue
trash
cleaner.hsm.trash.dir
cleaner.hsm.repository.dir
cleaner.book-keeping.dir
cleaner.archive
cleaner.hsm.max-concurrent-requests

Target: trunk
Require-notes: yes
Require-book: yes
Acked-by: Paul Millar <paul.millar@desy.de>
Patch: http://rb.dcache.org/r/5738/
info: Comply with new configuration policy

There are plenty of hardcoded cell names in the info service, but info
service has to be refactored further to parameterize these. This is not
done in this patch.

New properties

info.cell.name
info.cell.export
info.net.port
info.net.listen
info.net.backlog

Target: trunk
Require-notes: yes
Require-book: yes
Acked-by: Paul Millar <paul.millar@desy.de>
Patch: http://rb.dcache.org/r/5740/
missing-files: Comply with new configuration policy

New properties

missing-files.cell.name
missing-files.cell.export
missing-files.plugins
missing-files.limits.threads
dcache.service.missing-files
dcache.service.missing-files.timeout
dcache.service.missing-files.timeout.unit
dcache.enable.missing-files

Deprecated

missing-files.plugin.list
missing-files.thread-count
missing-files.name
missing-files.timeout
missing-files.timeout.unit
missing-files.enabled

Target: trunk
Require-notes: yes
Require-book: yes
Acked-by: Paul Millar <paul.millar@desy.de>
Patch: http://rb.dcache.org/r/5741/
srm: Minimize use of AuthorizationRecord

AuthorizationRecord is a legacy class from before gPlazma 2 existed.
Since the introduction of gPlazma 2, we have tried to use Subject
to represent users everywhere in dCache. SRM is the last component
in which this was not the case. This patch addresses this inconsistency.

AuthorizationRecord is not removed completely as the SRM relies
on storing the user identity in the database together with user
requests. To maintain this functionality and preserve backwards
compatibility, AuthorizationRecord is still used for this purpose.

The SRM itself uses the SRMUser interface to abstract from the
exact representation of a user. This patch introduces the DcacheUser
class, which wraps a Subject to expose it as an SRMUser. The
dCache specific SRM backend is updated to extract the Subject
directly from DcacheUser. DcacheUserPersistenceManager acts as a
bridge to persist and load DcacheUser instances to and from the
database. Internally, DcacheUserPersistenceManager however simply
interfaces with the legacy AuthRecordPersistenceManager. This is
the only place the legacy AuthorizationRecord class is used.

The custom authorization caching of the SRM has been replaced by
a CachingLoginStrategy.

The wiring related to the above classes has been moved into the
Spring XML file.

The only admin visible change is that the output format of the SRM
ls admin commands has changed slightly. It now shows a list of
principals as an identification of the request owner. If output
of these commands is used in the book, the book must be updated.

Target: trunk
Require-notes: yes
Require-book: yes
Acked-by: Dmitry Litvintsev <litvinse@fnal.gov>
Patch: http://rb.dcache.org/r/5691/