5656 requiresDependencyResolution = ResolutionScope .COMPILE_PLUS_RUNTIME )
5757@ Execute (phase = LifecyclePhase .PROCESS_CLASSES )
5858public class WatchMojo extends AbstractExecutableMojo {
59- public static final int LIVE_RELOAD_PORT = 35729 ;
59+ private static final int LIVE_RELOAD_PORT = 35729 ;
6060 private DirectoryWatcher directoryWatcher ;
6161 private Thread watcherThread ;
6262 private List <String > compileSourceRoots ;
@@ -165,9 +165,9 @@ private void refresh(Set<FileEvent> fileEvents) {
165165 Set <File > compiledFilesToRemove = new HashSet <>();
166166 Set <File > compiledFilesToUpdate = new HashSet <>();
167167
168- boolean newFiles = analyzeEvents (fileEvents , compiledFilesToRemove , compiledFilesToUpdate );
168+ analyzeEvents (fileEvents , compiledFilesToRemove , compiledFilesToUpdate );
169169
170- if (newFiles || !compiledFilesToRemove .isEmpty () || !compiledFilesToUpdate .isEmpty ()) {
170+ if (!compiledFilesToRemove .isEmpty () || !compiledFilesToUpdate .isEmpty ()) {
171171 getLog ().info ("Source changes detected" );
172172
173173 try {
@@ -213,9 +213,8 @@ private void refresh(Set<FileEvent> fileEvents) {
213213 }
214214 }
215215
216- private boolean analyzeEvents (Set <FileEvent > fileEvents , Set <File > compiledFilesToRemove ,
216+ private void analyzeEvents (Set <FileEvent > fileEvents , Set <File > compiledFilesToRemove ,
217217 Set <File > compiledFilesToUpdate ) throws MojoExecutionException {
218- boolean newFiles = false ;
219218 for (FileEvent fileEvent : fileEvents ) {
220219 File changedFile = fileEvent .getFile ();
221220 if (!changedFile .isDirectory ()) {
@@ -226,17 +225,15 @@ private boolean analyzeEvents(Set<FileEvent> fileEvents, Set<File> compiledFiles
226225 if (canonicalChangedFile .startsWith (sourceRootPath + File .separator )
227226 && canonicalChangedFile .endsWith (".java" )) {
228227 if (fileEvent .getKind () == FileEvent .Kind .CREATE ) {
229- if (changedFile .length () > 0 ) {
230- // ignore empty files (not relevant for app refresh)
231- getLog ().info ("NEW: " + canonicalChangedFile );
232- newFiles = true ;
233- }
228+ getLog ().debug ("NEW: " + canonicalChangedFile );
229+ compiledFilesToUpdate .add (resolveCompiledFile (sourceRootPath ,
230+ canonicalChangedFile ));
234231 } else if (fileEvent .getKind () == FileEvent .Kind .MODIFY ) {
235- getLog ().info ("MODIFIED: " + canonicalChangedFile );
232+ getLog ().debug ("MODIFIED: " + canonicalChangedFile );
236233 compiledFilesToUpdate .add (resolveCompiledFile (sourceRootPath ,
237234 canonicalChangedFile ));
238235 } else if (fileEvent .getKind () == FileEvent .Kind .DELETE ) {
239- getLog ().info ("DELETED: " + canonicalChangedFile );
236+ getLog ().debug ("DELETED: " + canonicalChangedFile );
240237 compiledFilesToRemove .add (resolveCompiledFile (sourceRootPath ,
241238 canonicalChangedFile ));
242239 }
@@ -248,7 +245,6 @@ private boolean analyzeEvents(Set<FileEvent> fileEvents, Set<File> compiledFiles
248245 }
249246 }
250247 }
251- return newFiles ;
252248 }
253249
254250 private File resolveCompiledFile (String sourceRootPath , String changedFilePath ) {
@@ -268,7 +264,9 @@ private void removeFiles(Set<File> compiledFilesToRemove) throws MojoExecutionEx
268264 private Set <String > analyzeClasses (Set <File > classFiles ) throws MojoExecutionException {
269265 Set <String > classNamesToInvalidate = new HashSet <>();
270266 for (File file : classFiles ) {
271- classNamesToInvalidate .addAll (collectClassNames (file ));
267+ if (file .exists () && file .length () > 0 ) {
268+ classNamesToInvalidate .addAll (collectClassNames (file ));
269+ }
272270 }
273271 return classNamesToInvalidate ;
274272 }
0 commit comments