Conditional Basic Auth

Previously, basic auth headers were added to every DownloadCache
request.  In the case where there were no basic auth credentials,
empty strings were used for the username and password.  This was
wrong, although tolerated by the primarily used CloudFront.  This
change ensures that basic auth headers are only added when there are
both a username and password specified.

[#72253796]
Merge 72253796-conditional-basic-auth to master

[Completes #72253796]
Disable Auto-reconfiguration via configuration

Previously, auto-reconfiguration was always enabled.  The auto-
reconfiguration log might sometimes choose not to reconfigure, but if
there was a bug or some other situation that would prevent an
application from running, there was no way to explicitly disable auto-
reconfiguration from even being downloaded and run.

This change adds that configuration option to all three kinds of auto-
reconfiguration and documents how to disable them.

[#72265294]
Merge 72265294-auto-reconfig-kill-switch to master

[Completes #72265294]
Version updates

This change updates the dependency versions
Move debug

This change moves debug gems into a different group.
Package with Ruby 2.1

Previously, the Gemfile of the project assumed that all work was being
done against Ruby 1.9.x.  The CI tests ran successfully on the 2.1
line because they excluded the version-specific debug gems with a
--without debug.  The instructions (and indeed good user experience)
did not ask users to do this, so when bundle install was run in a
non-1.9 Ruby runtime, the gems would not install.

This change updates the Gemfile to install version-specific debug gems
allowing development against 1.9.x, 2.0.x, and 2.1.x.
Spring Boot 1.1.0

Previously, auto-reconfiguration did not work on Spring Boot
applications.  With the upcoming releases of Spring Boot 1.1.0.RELEASE
and Java Buildpack Auto-reconfiguration 1.0.0.RELEASE, this will no
longer be the case.  This change updates the buildpack to work with
Spring Boot 1.1.0.RELEASE and later.

[#49695439]
Version updates

This change updates the versions of all dependencies.
New Relic Agent Upgrade

This change upgrades the buildpack to use the 3.7.x line of the New
Relic agent.
Empty classpath improvements

Previously, when there were no additional libraries, the classpath
would render as '-cp '.  This was a problem when that argument was
followed by something else.  Applications would end up with something
like '-cp  app.groovy' which was incorrect.  This change updates the
as_classpath() method to return nil if there is are no additional
libraries ensuring that the '-cp' argument is never added to the
command.
Document tier_name and list all config in alphabetical order

The tier_name the application should apear under in the AppDynamics dashboard
was not documented. This commit fixes that and also ensures all config options
are listed in alphabetical order in the AppDynamics documentation as well as
other documentation.

[#72500698]
Merge branch 'cgfrost-master'
Truncate detect strings to 255 characters

An issue raised on GitHub [1] shows that detect strings over 255 characters
cause a non-obvious error to occur during staging of an application. The
commit causes detect strings over 255 characters to be truncated to 252
characters and have an ellipsis appended (...).

[1] https://github.com/cloudfoundry/java-buildpack/issues/58

[#73628824]
Merge branch 'cgfrost-master'

[resolves #58]
Session replication should accept host as well as hostname

Redis provides host and not hostname as a credential for session replication.
The buildpack currently only accepts hostname. This commit adds support for
either 'host' or 'hostname' but not both to be provided in the credentials.

See: https://groups.google.com/a/cloudfoundry.org/d/msg/vcap-dev/vIHzLxZHQ2A/YyT-a6va-cYJ

[#73611494]
Version updates

This change updates the versions of Ruby and the buildpack's
dependencies.  A change to Rubocop required a slight change to the
code.
Support configurable Tomcat Access Logging

Currently, in order to enable access logging the buildpack must be forked and
a custom access valve added to the Tomcat configuration in the resources
folder. A customised Access Valve is required as the one provided with Tomcat
does not support logging to stdout which is required for Loggregator. This
change allows Access logging to be enabled with a simple configuration change
to the Tomcat container configuration in the 'config' folder. The default
pattern for the logging output is specified in the server.xml file located in
the 'resources/tomcat' folder. The default pattern begins with '[ACCESS]' and
includes the 'X-Vcap-Request_Id' request header but otherwise follows the
default for Apache access logs.

[#72881930]
Merge branch 'cgfrost-master'

[resolves #66]
Upgrade to AppDynamics 3.8.+

A new version of AppDynamics is available and should be consumed in the Java
buildpack, this change does so.

[#74772312]