diff --git a/subprojects/core/src/main/java/org/gradle/internal/service/scopes/VirtualFileSystemServices.java b/subprojects/core/src/main/java/org/gradle/internal/service/scopes/VirtualFileSystemServices.java index 23aad1596511..dee154621251 100644 --- a/subprojects/core/src/main/java/org/gradle/internal/service/scopes/VirtualFileSystemServices.java +++ b/subprojects/core/src/main/java/org/gradle/internal/service/scopes/VirtualFileSystemServices.java @@ -209,7 +209,7 @@ BuildLifecycleAwareVirtualFileSystem createVirtualFileSystem( )) .orElse(new WatchingNotSupportedVirtualFileSystem(rootReference)); listenerManager.addListener((BuildAddedListener) buildState -> - virtualFileSystem.buildRootDirectoryAdded(buildState.getBuildRootDir()) + virtualFileSystem.registerRootDirectoryForWatching(buildState.getBuildRootDir()) ); return virtualFileSystem; } diff --git a/subprojects/file-watching/src/main/java/org/gradle/internal/watch/vfs/BuildLifecycleAwareVirtualFileSystem.java b/subprojects/file-watching/src/main/java/org/gradle/internal/watch/vfs/BuildLifecycleAwareVirtualFileSystem.java index f43ca5d03335..59937d52525d 100644 --- a/subprojects/file-watching/src/main/java/org/gradle/internal/watch/vfs/BuildLifecycleAwareVirtualFileSystem.java +++ b/subprojects/file-watching/src/main/java/org/gradle/internal/watch/vfs/BuildLifecycleAwareVirtualFileSystem.java @@ -31,12 +31,13 @@ public interface BuildLifecycleAwareVirtualFileSystem extends VirtualFileSystem void afterBuildStarted(boolean watchingEnabled); /** - * Called when a new build (aka project) root directory has been added. + * Register a root directory for watching. * + * Adds a directory as a root directory for watching. * This method is first called for the root directory of the root project. * It is also called for the root directories of included builds, and all other nested builds. */ - void buildRootDirectoryAdded(File buildRootDirectory); + void registerRootDirectoryForWatching(File rootDirectoryForWatching); /** * Called when the build is finished. diff --git a/subprojects/file-watching/src/main/java/org/gradle/internal/watch/vfs/impl/WatchingNotSupportedVirtualFileSystem.java b/subprojects/file-watching/src/main/java/org/gradle/internal/watch/vfs/impl/WatchingNotSupportedVirtualFileSystem.java index 032d7916cf4d..c8d81b291ff3 100644 --- a/subprojects/file-watching/src/main/java/org/gradle/internal/watch/vfs/impl/WatchingNotSupportedVirtualFileSystem.java +++ b/subprojects/file-watching/src/main/java/org/gradle/internal/watch/vfs/impl/WatchingNotSupportedVirtualFileSystem.java @@ -57,7 +57,7 @@ public void afterBuildStarted(boolean watchingEnabled) { } @Override - public void buildRootDirectoryAdded(File buildRootDirectory) { + public void registerRootDirectoryForWatching(File rootDirectoryForWatching) { } @Override diff --git a/subprojects/file-watching/src/main/java/org/gradle/internal/watch/vfs/impl/WatchingVirtualFileSystem.java b/subprojects/file-watching/src/main/java/org/gradle/internal/watch/vfs/impl/WatchingVirtualFileSystem.java index faa137f205a7..6b8ebd28b9f0 100644 --- a/subprojects/file-watching/src/main/java/org/gradle/internal/watch/vfs/impl/WatchingVirtualFileSystem.java +++ b/subprojects/file-watching/src/main/java/org/gradle/internal/watch/vfs/impl/WatchingVirtualFileSystem.java @@ -53,7 +53,7 @@ public class WatchingVirtualFileSystem implements BuildLifecycleAwareVirtualFile private final Predicate watchFilter; private final DaemonDocumentationIndex daemonDocumentationIndex; private final LocationsWrittenByCurrentBuild locationsWrittenByCurrentBuild; - private final Set rootProjectDirectoriesForWatching = new HashSet<>(); + private final Set rootDirectoriesForWatching = new HashSet<>(); private FileWatcherRegistry watchRegistry; private Exception reasonForNotWatchingFiles; @@ -110,16 +110,16 @@ public void afterBuildStarted(boolean watchingEnabled) { } @Override - public void buildRootDirectoryAdded(File buildRootDirectory) { - synchronized (rootProjectDirectoriesForWatching) { - rootProjectDirectoriesForWatching.add(buildRootDirectory); + public void registerRootDirectoryForWatching(File buildRootDirectory) { + synchronized (rootDirectoriesForWatching) { + rootDirectoriesForWatching.add(buildRootDirectory); rootReference.update(currentRoot -> { if (watchRegistry == null) { return currentRoot; } return withWatcherChangeErrorHandling( currentRoot, - () -> watchRegistry.getFileWatcherUpdater().updateRootProjectDirectories(rootProjectDirectoriesForWatching) + () -> watchRegistry.getFileWatcherUpdater().updateRootProjectDirectories(rootDirectoriesForWatching) ); }); } @@ -127,8 +127,8 @@ public void buildRootDirectoryAdded(File buildRootDirectory) { @Override public void beforeBuildFinished(boolean watchingEnabled) { - synchronized (rootProjectDirectoriesForWatching) { - rootProjectDirectoriesForWatching.clear(); + synchronized (rootDirectoriesForWatching) { + rootDirectoriesForWatching.clear(); } if (watchingEnabled) { if (reasonForNotWatchingFiles != null) { @@ -191,7 +191,7 @@ public void handleLostState() { stopWatchingAndInvalidateHierarchy(); } }); - watchRegistry.getFileWatcherUpdater().updateRootProjectDirectories(rootProjectDirectoriesForWatching); + watchRegistry.getFileWatcherUpdater().updateRootProjectDirectories(rootDirectoriesForWatching); long endTime = System.currentTimeMillis() - startTime; LOGGER.warn("Spent {} ms registering watches for file system events", endTime); // TODO: Move start watching early enough so that the root is always empty diff --git a/subprojects/file-watching/src/test/groovy/org/gradle/internal/watch/vfs/impl/WatchingVirtualFileSystemTest.groovy b/subprojects/file-watching/src/test/groovy/org/gradle/internal/watch/vfs/impl/WatchingVirtualFileSystemTest.groovy index fc051cc90a47..192cfc66dc7c 100644 --- a/subprojects/file-watching/src/test/groovy/org/gradle/internal/watch/vfs/impl/WatchingVirtualFileSystemTest.groovy +++ b/subprojects/file-watching/src/test/groovy/org/gradle/internal/watch/vfs/impl/WatchingVirtualFileSystemTest.groovy @@ -124,7 +124,7 @@ class WatchingVirtualFileSystemTest extends Specification { def newRootDirectory = new File("newRoot") when: - watchingHandler.buildRootDirectoryAdded(rootDirectory) + watchingHandler.registerRootDirectoryForWatching(rootDirectory) then: 0 * _ @@ -137,7 +137,7 @@ class WatchingVirtualFileSystemTest extends Specification { 0 * _ when: - watchingHandler.buildRootDirectoryAdded(anotherBuildRootDirectory) + watchingHandler.registerRootDirectoryForWatching(anotherBuildRootDirectory) then: 1 * watcherRegistry.fileWatcherUpdater >> fileWatcherUpdater 1 * fileWatcherUpdater.updateRootProjectDirectories(ImmutableSet.of(rootDirectory, anotherBuildRootDirectory)) @@ -151,7 +151,7 @@ class WatchingVirtualFileSystemTest extends Specification { 0 * _ when: - watchingHandler.buildRootDirectoryAdded(newRootDirectory) + watchingHandler.registerRootDirectoryForWatching(newRootDirectory) then: 1 * watcherRegistry.fileWatcherUpdater >> fileWatcherUpdater 1 * fileWatcherUpdater.updateRootProjectDirectories(ImmutableSet.of(newRootDirectory))