Convert license to AGPLv3
Merge thirdparty-webresources into informant repo
Merge shaded-dependencies into informant repo
Update dependency versions
Convert from hamcrest to fest

Fest is awesome. The tests read better, and fest's fluent matchers are
way easier to find (via auto-complete) than the static imported hamcrest
matchers.
Convert to bootstrap-datepicker javascript library

Nice to remove jQueryUI since only using it for datepicker. Use
moment.js for date parsing and formatting since it supports i18n and
looks like there will be integration between bootstrap-datepicker and
moment.js at some point, see
http://momentjs.com/docs/#/customization/long-date-formats.
Generate files during unit testing under temp dir

It is tempting to generate these files under target/, but this seems too
maven specific.

Delete files at end of unit test to keep temp dir from getting overrun.
Generate dependency reduced pom under target/

This way it will be ignored by git (without adding another gitignore
pattern), and also it will be cleaned by mvn clean (without adding a
custom maven-clean-plugin configuration).
Use patched maven-shade-plugin to shade sources
Sonar inspired cleanup
Fix NPE when reading configuration

This occurs after disabling Informant (without updating any of the
default properties) and then restarting which reads the new
configuration and generates a NullPointerException.
Guava-fication

Guava is great. Use it over the alternatives pretty much everywhere.
Except for the functional stuff which is mostly too verbose without
lambda expressions. And except Optional, since Nullable annotation seems
the way to go now that there is tooling support via Eclipse Juno, and
Optional seems like a more useful in functional languages anyways.
(although Optional is still useful for marking nulls in maps, especially
maps that do not allow null values, e.g. ConcurrentHashMap).

Examples:

Convert Collections.empty*() to Immutable*.of()
Convert new HashMap<...> to Maps.newHashMap()
Convert new ArrayList<...> to Lists.newArrayList()
Convert List.toArray() to Iterables.toArray()
Use ImmutableList, ImmutableMap where applicable
Rename shutdown() methods to close()

Could maybe implement JDK 7's java.lang.AutoCloseable interface someday.
Update util class naming convention

Use the more common trailing 's' convention for naming util classes,
e.g. java.util.Collections and com.google.common.collect.Maps.
Rename configuration to config everywhere

Significantly shorter, helps with 100 character line wrapping issues, no
loss in readability.
Fix unit test logging when run from maven

Currently, there is no slf4j implementation available to tests when they
are run from maven.

This is not an issue in an eclipse workspace where tests are being run
against unshaded informant-core and so they inherit
shaded-logback-classic (the shaded-logback-classic artifact shades
logback, but doesn't shade slf4j, so it provides an unshaded slf4j
implementation).

However, when tests are run from maven, all of informant-core's
dependencies are shaded and there is no slf4j implementation available
to the (unshaded) test code (informant-core code during the maven build
is using shaded slf4j which *does* find an implementation available,
namely shaded-logback-classic, which at that time has been further
shaded inside of informant-core to target shaded slf4j).

It seems the best fix to this relatively complex shading issue is to
remove shaded-logback-classic artifact and instead shade logback-classic
during the informant-core build. This way, when in eclipse, all code
uses unshaded slf4j (as before) and (unshaded) logback-classic is
transitively inherited from informant-core. And when running unit tests
from maven, logback-classic is shaded inside of informant-core,
providing an internal shaded slf4j implementation, but not preventing
unit tests from adding a regular slf4j implementation to handle their
own logging needs.

However, since logback-classic is transitively inherited inside eclipse
(since no shading is occuring), there is already a regular slf4j
implementation available, so a second implementation for unit tests
cannot be added (slf4j will complain). The key is that, by using
logback-classic as the slf4j implementation for unit tests, the m2e
eclipse plugin adds it only once to the classpath since it is
transitively inherited from informant-core with same group-artifact
coordinates.
Change test logging from debug to info

Makes it much easier to notice warn/error messages. Can always modify
logback configuration when debugging a particular unit test.
Use more minimalistic xml comment style
Reformat line wrapping

Lots has changed, several multi-line statements can be condensed to a
single line. Also, prefer Eclipse line wrapping, except where manual
line wrapping can result in fewer lines and for builder pattern, where
one line per attribute makes the pattern much clearer.
Apply Nullable annotation to fields

Use the new Eclipse Juno null analysis engine 'beta feature'
(http://wiki.eclipse.org/JDT_Core/Null_Analysis/Beta) to further analyze
and document the flow of nulls by adding Nullable annotation to all
fields that can be null.