10 Commits

Author SHA1 Message Date
Andy Wilkinson
f7e9ec5f42 Minimise our usage of SocketUtils.findAvailableTcpPort
Closes gh-9382
2017-06-09 14:45:09 +01:00
Phillip Webb
425dbc3e52 Update copyright header for edited files 2017-03-06 15:04:07 -08:00
Phillip Webb
2a592103f0 Polish formatting 2017-03-06 15:03:43 -08:00
Andy Wilkinson
69e7e31b1c Merge branch '1.4.x' into 1.5.x 2017-01-16 20:42:40 +00:00
Andy Wilkinson
7c2664f959 Ensure that jar entry names use forward slashes, even on Windows
Previously, in the DevTools integration tests, portions of a File's
path were used to create the name of a jar entry. On Windows this
resulted in the entry containing \ characters. As a result the
directory structure was incorrect and the classes could not be loaded
from the jar.

This commit ensures that any \ characters are replaced with /
characters.

See gh-7782
2017-01-16 20:42:04 +00:00
Johnny Lim
6d1b752ffe Polish
Closes gh-7552
2016-12-14 19:14:24 +01:00
Andy Wilkinson
6061dd492e Increase timeout in DevTools integration tests and improve diagnostics 2016-12-02 13:40:22 +00:00
Phillip Webb
fce17ca6d9 Polish 2016-11-18 15:50:19 -08:00
Andy Wilkinson
5dea4c5a03 Wait for server port to be written in a more robust manner
Previously, we just waited for the file to exist before trying to read
the port from it. This left a window where the file existed but its
contents had not be written which could result in a
NumberFormatException.

This commit now waits for the file to have a length that is greater
than zero.

See gh-7379
2016-11-17 20:41:25 +00:00
Andy Wilkinson
918e122ddc Fix remote DevTools' support for adding and removing classes
Previously, remote DevTools only correctly supported modifying
existing classes. New classes that were added would be missed, and
deleted classes could cause a failure as they would be found by
component scanning but hidden by RestartClassLoader.

This commit introduces a DevTools-specific ResourcePatternResolver
that is installed as the application context's resource loader. This
custom resolver is aware of the files that have been added and
deleted and modifies the result returned from getResource and
getResources accordingly.

New intergration tests have been introduced to verify DevTools'
behaviour. The tests cover four scenarios:

- Adding a new controller
- Removing an existing controller
- Adding a request mapping to a controller
- Removing a request mapping from a controller

These four scenarios are tested with:

- DevTools updating a local application
- DevTools updating a remote application packaged in a jar file
- DevTools updating a remote application that's been exploded

Closes gh-7379
2016-11-17 19:19:54 +00:00