gplazma-ldap: support uniqueMember based group membership query

support group membership for LDAP schema defined by RFC2307 and RFC2307bis

Acked-by: karsten Schwank
Target: master, 2.11, 2.10
Require-book: no
Require-notes: yes
gplazma-ldap: pull only required attribute

ldap query results can be too big. Tell the server that we need only
some data.

Acked-by: Karsten Schwank
Target: master, 2.11, 2.10
Require-book: no
Require-notes: no
chimera: Avoid deprecated Guava calls

These methods are removed in Guava 18.

Target: trunk
Require-notes: no
Requier-book: no
Acked-by: Tigran Mkrtchyan <tigran.mkrtchyan@desy.de>
Patch: https://rb.dcache.org/r/7466/
dcache-xrootd: Extend and improve xrootd access log plugin

Adds more information to the access log plugin output, and refines the existing
output.

Target: trunk
Require-notes: yes
Require-book: no
Acked-by: Karsten Schwank <karsten.schwank@desy.de>
Patch: https://rb.dcache.org/r/7470/
Request: 2.11
Request: 2.10
libs: update to nfs4j-0.9.2

performance improvements

Changelog for nfs4j-0.9.1..nfs4j-0.9.2
    * [9951033] pseudofs: do not check READ_ATTR bit for unix
    * [c16ed50] avoid extra copy of data buffer in nfs3.read

Acked-by: Paul Millar
Target: master
Require-book: no
Require-notes: no
    dcache-webadmin: eliminate clojure dependency

    Get rid of stack trace reporting error.  deps.js is
    unused.

    Target: master
    Request: 2.11
    Request: 2.10
    Request: 2.9
    Request: 2.8
    Request: 2.7
    Requires-book: no
    Requires-notes: yes
    Acked-by:  Paul
srm-server: add servlet webapp-2.3.dtd file

The SRM server makes use of an XML file that follows the Sevlet 2.3
deployment descriptor.  When receiving the first SRM operation, Jetty
will parse the deployment descriptor, which requires the corresponding
DTD.

Previously (with Jetty 8) the DTD came as part of the servlet-api-2.x
jar file.  Jetty 9 depends on servlet-api 3.1, which does not contain
the deployment descriptor DTD:

    https://java.net/jira/browse/SERVLET_SPEC-115

Therefore, when it receives the first SRM operation, dCache will
download the DTD from java.sun.com.  For most sites, this is merely
undesirable, but if the dCache instance is not connected to the
Internet then this is problematic as a stack-trace is logged with the
root cause of:

    java.net.UnknownHostException: java.sun.com

and the SRM does not work.

This patch works around the problem by embedding the DTD in the
srm-server jar file.

Target: master
Patch: https://rb.dcache.org/r/7459
Acked-by: Gerd Behrmann
Request: 2.11
Require-notes: no
Require-book: no
dcache-webadmin: change output field of cell admin page to monospace font

Many of the dCache services format the output into columns and that only works with a mono space font.

Target: master
Request: 2.11
Request: 2.10
Request: 2.9
Request: 2.8
Request: 2.7
Request: 2.6
Acked-by: Gerd
Acked-by: Paul
Require-notes: no
Require-book: no
webadmin: remove redundant head element in alarms panel html

Not necessary, should have been removed numerous versions ago.

Target: master
Request: 2.11
Request: 2.10
Request: 2.9
Request: 2.8
Request: 2.7
Acked-by: Paul
Require-book: no
Require-notes: no
webadmin: Fix ClassCastException in cell admin

Fixes

07 nov. 2014 23:32:44 (httpd) [] RuntimeException while executing runnable org.dcache.cells.CellStub$1@135dac1f with executor com.google.common.util.concurrent.MoreExecutors$SameThreadExecutorService@12afd1d3
java.lang.ClassCastException: java.lang.String cannot be cast to diskCacheV111.vehicles.Message
        at org.dcache.cells.CellStub$1.run(CellStub.java:503) ~[dcache-core-2.12.0-SNAPSHOT.jar:2.12.0-SNAPSHOT]
        at com.google.common.util.concurrent.MoreExecutors$SameThreadExecutorService.execute(MoreExecutors.java:297) [guava-17.0.jar:na]
        at com.google.common.util.concurrent.ExecutionList.executeListener(ExecutionList.java:156) [guava-17.0.jar:na]
        at com.google.common.util.concurrent.ExecutionList.execute(ExecutionList.java:145) [guava-17.0.jar:na]
        at com.google.common.util.concurrent.AbstractFuture.set(AbstractFuture.java:185) [guava-17.0.jar:na]
        at org.dcache.cells.CellStub$CallbackFuture.set(CellStub.java:594) [dcache-core-2.12.0-SNAPSHOT.jar:2.12.0-SNAPSHOT]
        at org.dcache.cells.CellStub$CallbackFuture.answerArrived(CellStub.java:616) [dcache-core-2.12.0-SNAPSHOT.jar:2.12.0-SNAPSHOT]
        at dmg.cells.nucleus.CellNucleus$CallbackTask.innerRun(CellNucleus.java:1050) [cells-2.12.0-SNAPSHOT.jar:2.12.0-SNAPSHOT]
        at dmg.cells.nucleus.CellNucleus$AbstractNucleusTask.run(CellNucleus.java:1005) [cells-2.12.0-SNAPSHOT.jar:2.12.0-SNAPSHOT]
        at com.google.common.util.concurrent.MoreExecutors$SameThreadExecutorService.execute(MoreExecutors.java:297) [guava-17.0.jar:na]
        at dmg.cells.nucleus.CellNucleus.addToEventQueue(CellNucleus.java:813) [cells-2.12.0-SNAPSHOT.jar:2.12.0-SNAPSHOT]
        at dmg.cells.nucleus.CellGlue.sendMessage(CellGlue.java:557) [cells-2.12.0-SNAPSHOT.jar:2.12.0-SNAPSHOT]
        at dmg.cells.nucleus.CellNucleus.sendMessage(CellNucleus.java:371) [cells-2.12.0-SNAPSHOT.jar:2.12.0-SNAPSHOT]
        at dmg.cells.nucleus.CellAdapter.messageArrived(CellAdapter.java:831) [cells-2.12.0-SNAPSHOT.jar:2.12.0-SNAPSHOT]
        at dmg.cells.nucleus.CellNucleus$DeliverMessageTask.innerRun(CellNucleus.java:1095) [cells-2.12.0-SNAPSHOT.jar:2.12.0-SNAPSHOT]
        at dmg.cells.nucleus.CellNucleus$AbstractNucleusTask.run(CellNucleus.java:1005) [cells-2.12.0-SNAPSHOT.jar:2.12.0-SNAPSHOT]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_20]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_20]
        at java.lang.Thread.run(Thread.java:745) [na:1.8.0_20]

The problem was hidden by the use of a raw type and thus the compiler didn't
reject the code.

Target: trunk
Request: 2.11
Request: 2.10
Request: 2.9
Require-notes: yes
Require-book: no
Acked-by: Paul Millar <paul.millar@desy.de>
Patch: https://rb.dcache.org/r/7478/
Limit MessageCallback to Message

Could have prevented https://rb.dcache.org/r/7478/

Target: trunk
Require-notes: no
Require-book: no
Acked-by: Paul Millar <paul.millar@desy.de>
Patch: https://rb.dcache.org/r/7479/
doors: Add pnfs ID to billing remove entries

Doors reform billing when files are deleted, but many only included the path.
Since the path is ambiguous, this patch adds PnfsId to those notifications. In
a few cases we even have the file size available and add that too. The client
IP address is also added.

Please advice whether this should be backported to 2.10.

Target: trunk
Require-notes: yes
Require-book: yes
Acked-by: Paul Millar <paul.millar@desy.de>
Patch: https://rb.dcache.org/r/7476/
httpd: Integrate handlers into spring wiring

The httpd service used a partial Spring wiring model where the bulk of the
service was still manually and dynamically instantiated. To integrate with cell
messaging, info extraction, admin shell, etc, the instantiation code tried to
glue the two models together, with lots of indirection and coupling. Worse, it
didn't actually work for admin shell integration. Thus the 'set update' command
was not actually exposed in the admin shell.

This patch reworks the entire service. The handlers are passed to Spring for
initialization, allowing them to hook into all the cell services without extra
glue code.

Life cycle management is moved into the HandleDelegator, just like for all
other Jetty handler collections.

Webadmin WAR files are no longer unpacked, resolving the issue with stale files
on upgrade. The httpd.container.webapps.tmp-dir property is now obsolete.

The arguments of the 'set webapp' command in httpd has changed: It now takes
the path to the WAR file, not the path to the directory containing the WAR
file.  Sites that have customized their httpd alias layout will likely have to
update their configuraiton.

The output of the info command has changed. The list of defined aliases is no
longer shown. The same information can be obtained with the existing 'ls alias'
command.

The changes are unfortunately so intrusive that backporting these fixes to
stable branches is unrealistic.

Target: trunk
Require-notes: yes
Require-book: yes
Acked-by: Karsten Schwank <karsten.schwank@desy.de>
Acked-by: Albert Rossi <arossi@fnal.gov>
Patch: https://rb.dcache.org/r/7436/
gplazma2-htpasswd: Avoid deprecated Guava classes

The plugin was incompatible with Guava 18 due to use of deprecated
classes that are removed in the new release.

This patch ports the plugin to Java 8.

Target: trunk
Require-notes: no
Require-book: no
Acked-by: Paul Millar <paul.millar@desy.de>
Acked-by: Karsten Schwank <karsten.schwank@desy.de>
Patch: https://rb.dcache.org/r/7465/
jetty: update webdefault.xml to adhere to new specification

The current xml stanza concerning security constraints does
not observe the new requirement that all HTTP methods be
specified.

This patch updates the xml namespace to point to the newer xsd,
and adds the missing omission stanza.

Testing:

Before application of patch, the following type of warning appears in the log:

05 Nov 2014 11:45:13 (httpd) [] ServletContext@o.e.j.w.WebAppContext@1db9683d{/webadmin,file:/var/lib/dcache/httpd/webadmin/webapp/,STARTING}{/webadmin.war} has uncovered http methods for path: /

The patch silences this warning.

Target: master
Patch: https://rb.dcache.org/r/7488
Request: 2.11
Acked-by: Paul
Require-notes: no
Require-book: no
Update to HikariCP 2.2.4

Required getting rid of DriverManagerDataSource as it doesn't support
setLoginTimeout.

Target: trunk
Require-notes: no
Require-book: no
Acked-by: Paul Millar <paul.millar@desy.de>
Patch: https://rb.dcache.org/r/7477/