當前位置: 首頁>>代碼示例>>Java>>正文


Java WatchService.close方法代碼示例

本文整理匯總了Java中java.nio.file.WatchService.close方法的典型用法代碼示例。如果您正苦於以下問題:Java WatchService.close方法的具體用法?Java WatchService.close怎麽用?Java WatchService.close使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在java.nio.file.WatchService的用法示例。


在下文中一共展示了WatchService.close方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: handle

import java.nio.file.WatchService; //導入方法依賴的package包/類
/**
 * Stress the given WatchService, specifically the cancel method, in
 * the given directory. Closes the WatchService when done.
 */
static void handle(Path dir, WatchService watcher) {
    try {
        try {
            Path file = dir.resolve("anyfile");
            for (int i=0; i<2000; i++) {
                WatchKey key = dir.register(watcher, ENTRY_CREATE, ENTRY_DELETE);
                Files.createFile(file);
                Files.delete(file);
                key.cancel();
            }
        } finally {
            watcher.close();
        }
    } catch (Exception e) {
        e.printStackTrace();
        failed = true;
    }
}
 
開發者ID:lambdalab-mirror,項目名稱:jdk8u-jdk,代碼行數:23,代碼來源:LotsOfCancels.java

示例2: handle

import java.nio.file.WatchService; //導入方法依賴的package包/類
/**
 * Stress the given WatchService, specifically the cancel method, in
 * the given directory. Closes the WatchService when done.
 */
static void handle(int id, Path dir, WatchService watcher) {
    System.out.printf("begin handle %d%n", id);
    try {
        try {
            Path file = dir.resolve("anyfile");
            for (int i=0; i<2000; i++) {
                WatchKey key = dir.register(watcher, ENTRY_CREATE, ENTRY_DELETE);
                Files.createFile(file);
                Files.delete(file);
                key.cancel();
            }
        } finally {
            System.out.printf("WatchService %d closing ...%n", id);
            watcher.close();
            System.out.printf("WatchService %d closed %n", id);
        }
    } catch (Exception e) {
        e.printStackTrace();
        failed = true;
    }
    System.out.printf("end handle %d%n", id);
}
 
開發者ID:AdoptOpenJDK,項目名稱:openjdk-jdk10,代碼行數:27,代碼來源:LotsOfCancels.java

示例3: main

import java.nio.file.WatchService; //導入方法依賴的package包/類
public static void main(String[] args) throws Exception {
	Path path = Paths.get("/home/proberts/Desktop");
	WatchService watchService = path.getFileSystem().newWatchService();
	
	path.register(watchService,
			StandardWatchEventKinds.ENTRY_CREATE,
               StandardWatchEventKinds.ENTRY_MODIFY,
               StandardWatchEventKinds.ENTRY_DELETE);
	
	while(true) {
		WatchKey watchKey = watchService.take();
		
		for (WatchEvent<?> event : watchKey.pollEvents()) {
               printEvent(event);
           }
		
		if(!watchKey.reset()) {
			watchKey.cancel();
			watchService.close();
		}
	}
}
 
開發者ID:psxpaul,項目名稱:EclipseJava7Refresher,代碼行數:23,代碼來源:Java7RefreshProviderPlugin.java

示例4: testNewSingleThreadExecutor

import java.nio.file.WatchService; //導入方法依賴的package包/類
/**
 * Tests {@link FileSystemFactory#newWatchService()}.
 *
 * @throws ClosedWatchServiceException if the newly-created service is closed
 * @throws IOException if the test fails
 * @throws InterruptedException hopefully never
 */
@Test
public void testNewSingleThreadExecutor() throws ClosedWatchServiceException, IOException, InterruptedException {
    WatchService service = new FileSystemFactory().newWatchService();
    try {
        assertNotNull(service);
        assertNull(service.poll()); // verifies the service is not closed
    } finally {
        if (service != null) {
            try {
                service.close();
            }catch(IOException ex) {
                //trap
            }
        }
    }
}
 
開發者ID:sworisbreathing,項目名稱:sfmf4j,代碼行數:24,代碼來源:FileSystemFactoryTest.java

示例5: newCloserTask

import java.nio.file.WatchService; //導入方法依賴的package包/類
/**
 * Returns a task that closes the given WatchService.
 */
static Callable<Void> newCloserTask(WatchService watcher) {
    return () ->  {
        try {
            watcher.close();
            return null;
        } catch (IOException ioe) {
            throw new UncheckedIOException(ioe);
        }
    };
}
 
開發者ID:AdoptOpenJDK,項目名稱:openjdk-jdk10,代碼行數:14,代碼來源:LotsOfCloses.java

示例6: close

import java.nio.file.WatchService; //導入方法依賴的package包/類
/**
 * This will stop the validator and free all resources.
 * <br/>
 * After calling this method the method
 * {@link CertificateValidator#verifyTrustChain(List)} will report all
 * certificates as invalid.
 */
@Override
public void close() throws IOException {
    final WatchService watchService;
    final Thread thread;

    // get and reset
    synchronized (this) {
        logger.info("Closing default certificate validator");

        watchService = this.watchService;
        thread = this.thread;

        this.watchService = null;
        this.thread = null;

        this.trustedCertificates.clear();
        this.authorityCertificates.clear();
    }

    // dispose
    if (watchService != null) {
        watchService.close();
    }

    if (thread != null) {
        Uninterruptibles.joinUninterruptibly(thread);
    }
}
 
開發者ID:eclipse,項目名稱:milo,代碼行數:36,代碼來源:DefaultCertificateValidator.java

示例7: run

import java.nio.file.WatchService; //導入方法依賴的package包/類
@Override
public void run()
{
    try
    {
        WatchService watchService = FileSystems.getDefault().newWatchService();
        _directoryPath.register(watchService, StandardWatchEventKinds.ENTRY_CREATE, StandardWatchEventKinds.ENTRY_MODIFY);

        while (! _finish)
        {
            WatchKey watchKey = watchService.take();

            if (watchKey != null)
            {
                for (WatchEvent<?> watchEvent : watchKey.pollEvents())
                {
                    Kind<?> kind = watchEvent.kind();

                    Path context = _directoryPath.resolve((Path) watchEvent.context());
                    if (context.equals(_filePath) && ((kind == StandardWatchEventKinds.ENTRY_CREATE) || (kind == StandardWatchEventKinds.ENTRY_MODIFY)))
                        _dataProvider.produce(context.toFile());
                }

                if (! watchKey.reset())
                    _finish = true;
            }
        }

        watchService.close();
    }
    catch (InterruptedException interruptedException)
    {
    }
    catch (Throwable throwable)
    {
        logger.log(Level.WARNING, "Problem while watching file", throwable);
    }
}
 
開發者ID:arjuna-technologies,項目名稱:FileSystem_DataBroker_PlugIn,代碼行數:39,代碼來源:FileChangeDataSource.java

示例8: run

import java.nio.file.WatchService; //導入方法依賴的package包/類
@Override
public void run()
{
    try
    {
        WatchService watchService = FileSystems.getDefault().newWatchService();
        _directoryPath.register(watchService, StandardWatchEventKinds.ENTRY_CREATE, StandardWatchEventKinds.ENTRY_MODIFY);

        while (! _finish)
        {
            WatchKey watchKey = watchService.take();

            if (watchKey != null)
            {
                for (WatchEvent<?> watchEvent : watchKey.pollEvents())
                {
                    final Kind<?> kind = watchEvent.kind();

                    Path context = _directoryPath.resolve((Path) watchEvent.context());
                    if ((kind == StandardWatchEventKinds.ENTRY_CREATE) || (kind == StandardWatchEventKinds.ENTRY_MODIFY))
                        _dataProvider.produce(context.toFile());
                }

                if (! watchKey.reset())
                    _finish = true;
            }
        }

        watchService.close();
    }
    catch (InterruptedException interruptedException)
    {
    }
    catch (Throwable throwable)
    {
        logger.log(Level.WARNING, "Problem while watching directory", throwable);
    }
}
 
開發者ID:arjuna-technologies,項目名稱:FileSystem_DataBroker_PlugIn,代碼行數:39,代碼來源:DirectoryChangeDataSource.java

示例9: testSimple

import java.nio.file.WatchService; //導入方法依賴的package包/類
@Test
@Ignore
public void testSimple() throws IOException {
  Path rootPath = Paths.get(clusterUri);
  
  WatchService watcher = rootPath.getFileSystem().newWatchService();
  rootPath.register(watcher, 
        new WatchEvent.Kind<?>[] { ENTRY_MODIFY });
  watcher.close();
}
 
開發者ID:damiencarol,項目名稱:jsr203-hadoop,代碼行數:11,代碼來源:TestWatchService.java

示例10: testSimpleEx

import java.nio.file.WatchService; //導入方法依賴的package包/類
@Test(expected=ClosedWatchServiceException.class)
@Ignore
public void testSimpleEx() throws IOException {
  Path rootPath = Paths.get(clusterUri);
  
  WatchService watcher = rootPath.getFileSystem().newWatchService();
  rootPath.register(watcher, 
        new WatchEvent.Kind<?>[] { ENTRY_MODIFY });
  watcher.close();
  // Should throw ClosedWatchServiceException
  watcher.poll();
}
 
開發者ID:damiencarol,項目名稱:jsr203-hadoop,代碼行數:13,代碼來源:TestWatchService.java

示例11: testRegisterOnClosedWatchService

import java.nio.file.WatchService; //導入方法依賴的package包/類
@Test( expected = ClosedWatchServiceException.class )
@Category( { Watchable.class, Writable.class } )
public void testRegisterOnClosedWatchService() throws IOException {
    WatchService watcher = FS.newWatchService();
    watcher.close();
    dirTAB().register( watcher, ENTRY_CREATE );
}
 
開發者ID:openCage,項目名稱:niotest,代碼行數:8,代碼來源:Tests11Watcher.java

示例12: testCloseAWatchServiceCancelsKeys

import java.nio.file.WatchService; //導入方法依賴的package包/類
@Test
@Category( { SlowTest.class, Watchable.class, Writable.class } )
public void testCloseAWatchServiceCancelsKeys() throws Exception {
    Path dir = dirTA();
    final WatchService watcher = dir.getFileSystem().newWatchService();
    WatchKey key = dir.register( watcher, ENTRY_CREATE );

    watcher.close();
    waitForWatchService();

    assertThat( key.isValid() ).isFalse();

}
 
開發者ID:openCage,項目名稱:niotest,代碼行數:14,代碼來源:Tests11Watcher.java

示例13: testEntryCreate

import java.nio.file.WatchService; //導入方法依賴的package包/類
public void testEntryCreate() throws IOException, InterruptedException, StfException {
	Path tempDirectory = getTemporaryDirectory();
	WatchService watchService = FileSystems.getDefault().newWatchService();
	try {
		tempDirectory.register(watchService, StandardWatchEventKinds.ENTRY_CREATE);
		Path newFilename = Paths.get("ENTRY_CREATE.txt");
		Path newFile = tempDirectory.resolve(newFilename);
		Files.createFile(newFile);
		assertTrue("File was not created", Files.exists(newFile));

		WatchKey key = null;

		// We will give it POLL_TIMEOUT_SECONDS seconds, if it hasn't got something by
		// then we assume failure
		key = watchService.poll(POLL_TIMEOUT_SECONDS, TimeUnit.SECONDS);

		assertNotNull("Polling WatchService object returned null", key);

		boolean eventFound = false;

		// Check for exactly one event
		for (WatchEvent<?> event : key.pollEvents()) {
			if (event.kind().equals(StandardWatchEventKinds.ENTRY_CREATE)) {
				// Assert exactly one event
				assertFalse("Duplicate ENTRY_CREATE events delivered for one file creation", eventFound);
				// Assert filename is correct
				assertEquals(newFilename, (Path) event.context());
				eventFound = true;
			} else {
				fail(event.kind() + " event retured, expected ENTRY_CREATE");
			}
		}

		// Reset the key, to allow for future events
		key.reset();

	} finally {
		watchService.close();
	}
	okForCleanup();
}
 
開發者ID:AdoptOpenJDK,項目名稱:openjdk-systemtest,代碼行數:42,代碼來源:DirectoryWatcherTest.java

示例14: testMultipleEntryCreate

import java.nio.file.WatchService; //導入方法依賴的package包/類
public void testMultipleEntryCreate() throws IOException, InterruptedException, StfException {
	Path tempDirectory = getTemporaryDirectory();
	WatchService watchService = FileSystems.getDefault().newWatchService();
	try {
		tempDirectory.register(watchService, StandardWatchEventKinds.ENTRY_CREATE);
		WatchKey key = null;
		for (int iteration = 0; iteration < 10; iteration++) {
			HangNotifier.ping();
			Path newFilename = Paths.get("ENTRY_CREATE" + iteration + ".txt");
			Path newFile = tempDirectory.resolve(newFilename);
			Files.createFile(newFile);
			assertTrue("File was not created", Files.exists(newFile));

			key = null;

			// We will give it POLL_TIMEOUT_SECONDS seconds, if it hasn't got something by
			// then we assume failure

			key = watchService.poll(POLL_TIMEOUT_SECONDS, TimeUnit.SECONDS);
			assertNotNull("Polling WatchService object returned null", key);
			
			boolean eventFound = false;

			// Check for exactly one event
			for (WatchEvent<?> event : key.pollEvents()) {
				if (event.kind().equals(StandardWatchEventKinds.ENTRY_CREATE)) {
					// Assert exactly one event
					assertFalse("Duplicate ENTRY_CREATE events delivered for one file creation", eventFound);
					// Assert filename is correct
					assertEquals(newFilename, (Path) event.context());
					eventFound = true;
				} else {
					fail(event.kind() + " event retured, expected ENTRY_CREATE");
				}
			}

			// Reset the key, to allow for future events
			if (key != null) {
				key.reset();
			}
		}
	} finally {
		watchService.close();
	}
	okForCleanup();
}
 
開發者ID:AdoptOpenJDK,項目名稱:openjdk-systemtest,代碼行數:47,代碼來源:DirectoryWatcherTest.java

示例15: testEntryModify

import java.nio.file.WatchService; //導入方法依賴的package包/類
public void testEntryModify() throws IOException, InterruptedException, StfException {
	Path tempDirectory = getTemporaryDirectory();
	WatchService watchService = FileSystems.getDefault().newWatchService();
	try {
		Path newFilename = Paths.get("ENTRY_MODIFY.txt");
		Path newFile = tempDirectory.resolve(newFilename);
		Files.createFile(newFile);
		assertTrue("File was not created", Files.exists(newFile));

		// We need to pause so that the implementation on AIX and zOS
		// notices the modification time
		// has changed, which only work to the second apparently.
		try {
			Thread.sleep(2000);
		} catch (InterruptedException e) {

		}

		tempDirectory.register(watchService, StandardWatchEventKinds.ENTRY_MODIFY);

		// Modify file
		OutputStream out = Files.newOutputStream(newFile, StandardOpenOption.WRITE);
		out.write("A".getBytes());
		out.close();

		WatchKey key = null;

		// We will give it POLL_TIMEOUT_SECONDS seconds, if it hasn't got
		// something by
		// then we assume failure

		key = watchService.poll(POLL_TIMEOUT_SECONDS, TimeUnit.SECONDS);

		assertNotNull("Polling WatchService object returned null", key);

		boolean eventFound = false;

		// Check for exactly one event
		for (WatchEvent<?> event : key.pollEvents()) {
			if (event.kind().equals(StandardWatchEventKinds.ENTRY_MODIFY)) {
				// Assert exactly one event
				assertFalse("Duplicate ENTRY_MODIFY events delivered for one file modification", eventFound);
				// Assert filename is correct
				assertEquals(newFilename, (Path) event.context());
				eventFound = true;
			} else {
				fail(event.kind() + " event retured, expected ENTRY_MODIFY");
			}
		}

		// Reset the key, to allow for future events
		key.reset();
	} finally {
		watchService.close();
	}
	okForCleanup();
}
 
開發者ID:AdoptOpenJDK,項目名稱:openjdk-systemtest,代碼行數:58,代碼來源:DirectoryWatcherTest.java


注:本文中的java.nio.file.WatchService.close方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。