|
20 | 20 | import java.util.HashMap; |
21 | 21 | import java.util.Map; |
22 | 22 | import java.util.Stack; |
| 23 | +import java.util.concurrent.ThreadFactory; |
23 | 24 | import java.util.stream.Stream; |
24 | 25 |
|
| 26 | +import org.apache.commons.lang3.concurrent.BasicThreadFactory; |
25 | 27 | import org.apache.commons.logging.Log; |
26 | 28 | import org.apache.commons.logging.LogFactory; |
27 | 29 | import org.apache.commons.vfs2.FileListener; |
|
64 | 66 | * |
65 | 67 | * <pre> |
66 | 68 | * FileSystemManager fsManager = VFS.getManager(); |
67 | | - * FileObject listendir = fsManager.resolveFile("/home/username/monitored/"); |
| 69 | + * FileObject listenDir = fsManager.resolveFile("/home/username/monitored/"); |
68 | 70 | * |
69 | 71 | * DefaultFileMonitor fm = new DefaultFileMonitor(new CustomFileListener()); |
70 | 72 | * fm.setRecursive(true); |
71 | | - * fm.addFile(listendir); |
| 73 | + * fm.addFile(listenDir); |
72 | 74 | * fm.start(); |
73 | 75 | * </pre> |
74 | 76 | * |
|
77 | 79 | // TODO Add a Builder so we can construct and start. |
78 | 80 | public class DefaultFileMonitor implements Runnable, FileMonitor, AutoCloseable { |
79 | 81 |
|
| 82 | + private static final ThreadFactory threadFactory = new BasicThreadFactory.Builder().daemon(true).priority(Thread.MIN_PRIORITY).build(); |
| 83 | + |
80 | 84 | /** |
81 | 85 | * File monitor agent. |
82 | 86 | */ |
83 | 87 | private static final class FileMonitorAgent { |
| 88 | + |
84 | 89 | private final FileObject fileObject; |
85 | 90 | private final DefaultFileMonitor defaultFileMonitor; |
86 | | - |
87 | 91 | private boolean exists; |
88 | 92 | private long timestamp; |
89 | 93 | private Map<FileName, Object> children; |
@@ -556,9 +560,7 @@ public void setRecursive(final boolean newRecursive) { |
556 | 560 | */ |
557 | 561 | public synchronized void start() { |
558 | 562 | if (monitorThread == null) { |
559 | | - monitorThread = new Thread(this); |
560 | | - monitorThread.setDaemon(true); |
561 | | - monitorThread.setPriority(Thread.MIN_PRIORITY); |
| 563 | + monitorThread = threadFactory.newThread(this); |
562 | 564 | } |
563 | 565 | monitorThread.start(); |
564 | 566 | } |
|
0 commit comments