Updated the fully qualified linked asset file to only re-generate the
trie for the app if any of the files have changed.
Replaced the recursive descent code when checking for changes within a
directory with a
directoryObserver.hasRecursivelyChangedSinceLastCheck() method that
could potentially tell us without requiring in-line recursion.
Provide the root directory the PerformantFileObserverFactory class so it
can add a recursive listener to the entire directory.
Switched to a simplified file notification sub-system, and updated how
we use Java7 file watchers so that all polling work is done on a
background thread so we don't have to poll, and so that updates to child
folders are propagated to ancestor folders so we don't have to
recursively iterate downwards to determine the last-modified time.
Use ServletModelAccessor.destroy() instead of the test-only reset()
method, since that also invokes close() if necessary.
Fixed a latent bug that might have lead to race conditions leading to
exceptions when stopping the server.
Use ServletModelAccessor.destroy() instead of the test-only reset()
method, since that also invokes close() if necessary, and ensure
destroy() is always invoked.
Fixed a latent bug that was exposed when we started using the destroy()
rather than the test-only reset() method.
Clear down the model reference in a finally block just in case.
Started working within a sub-directory of the operating system created
temporary directories, since we don't have permissions to add a 'watch'
directly to the OS created dir in Linux.
Point server to empty directory rather than the entire project
directory, since otherwise we end up creating more watcher than are
allowed under Linux.
Make the image bundler tests work on Linux again -- hopefully these
should continue to work on other operating systems too.
Start waiting for the app-deployment file-watcher thread to stop before
returning from the ApplicationServer.stop() method. Plus, since this
makes testing using a real app-server even slower, decrease the poll
time and make the ServeCommandTest an integration-test rather than a
normal test.
Stopped using real epoch dates for the last-modified values returned
when running tests since there is a very small possibility that the same
quantized epoch time can be returned twice for a file that has been
modified in the interim.
Renamed an old 'caplin' source directory to 'br' in one of the old
tests, since this was causing an exception to be thrown -- not sure
why/if only I'm seeing this.