Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (102)
JavaBeans (21)
JDBC (121)
JDK (426)
JSP (20)
Logging (108)
Mail (58)
Messaging (8)
Network (84)
PDF (97)
Report (7)
Scripting (84)
Security (32)
Server (121)
Servlet (26)
SOAP (24)
Testing (54)
Web (15)
XML (322)
Collections:
Other Resources:
commons-io-2.6-sources.jar - Apache Commons IO
commons-io-2.6-sources.jar is the source JAR file for Apache Commons IO 2.6, which
is a library of utilities to assist with developing IO functionality.
JAR File Size and Download Location:
JAR name: commons-io-2.6-sources.jar Target JDK version: 1.7 Dependency: None File size: 280,834 bytes Release date: 15-Oct-2017 Download: Apache Commons IO Website
✍: FYIcenter.com
⏎ org/apache/commons/io/monitor/FileAlterationMonitor.java
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.commons.io.monitor;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.ThreadFactory;
/**
* A runnable that spawns a monitoring thread triggering any
* registered {@link FileAlterationObserver} at a specified interval.
*
* @see FileAlterationObserver
* @version $Id$
* @since 2.0
*/
public final class FileAlterationMonitor implements Runnable {
private final long interval;
private final List<FileAlterationObserver> observers = new CopyOnWriteArrayList<>();
private Thread thread = null;
private ThreadFactory threadFactory;
private volatile boolean running = false;
/**
* Construct a monitor with a default interval of 10 seconds.
*/
public FileAlterationMonitor() {
this(10000);
}
/**
* Construct a monitor with the specified interval.
*
* @param interval The amount of time in milliseconds to wait between
* checks of the file system
*/
public FileAlterationMonitor(final long interval) {
this.interval = interval;
}
/**
* Construct a monitor with the specified interval and set of observers.
*
* @param interval The amount of time in milliseconds to wait between
* checks of the file system
* @param observers The set of observers to add to the monitor.
*/
public FileAlterationMonitor(final long interval, final FileAlterationObserver... observers) {
this(interval);
if (observers != null) {
for (final FileAlterationObserver observer : observers) {
addObserver(observer);
}
}
}
/**
* Return the interval.
*
* @return the interval
*/
public long getInterval() {
return interval;
}
/**
* Set the thread factory.
*
* @param threadFactory the thread factory
*/
public synchronized void setThreadFactory(final ThreadFactory threadFactory) {
this.threadFactory = threadFactory;
}
/**
* Add a file system observer to this monitor.
*
* @param observer The file system observer to add
*/
public void addObserver(final FileAlterationObserver observer) {
if (observer != null) {
observers.add(observer);
}
}
/**
* Remove a file system observer from this monitor.
*
* @param observer The file system observer to remove
*/
public void removeObserver(final FileAlterationObserver observer) {
if (observer != null) {
while (observers.remove(observer)) {
}
}
}
/**
* Returns the set of {@link FileAlterationObserver} registered with
* this monitor.
*
* @return The set of {@link FileAlterationObserver}
*/
public Iterable<FileAlterationObserver> getObservers() {
return observers;
}
/**
* Start monitoring.
*
* @throws Exception if an error occurs initializing the observer
*/
public synchronized void start() throws Exception {
if (running) {
throw new IllegalStateException("Monitor is already running");
}
for (final FileAlterationObserver observer : observers) {
observer.initialize();
}
running = true;
if (threadFactory != null) {
thread = threadFactory.newThread(this);
} else {
thread = new Thread(this);
}
thread.start();
}
/**
* Stop monitoring.
*
* @throws Exception if an error occurs initializing the observer
*/
public synchronized void stop() throws Exception {
stop(interval);
}
/**
* Stop monitoring.
*
* @param stopInterval the amount of time in milliseconds to wait for the thread to finish.
* A value of zero will wait until the thread is finished (see {@link Thread#join(long)}).
* @throws Exception if an error occurs initializing the observer
* @since 2.1
*/
public synchronized void stop(final long stopInterval) throws Exception {
if (running == false) {
throw new IllegalStateException("Monitor is not running");
}
running = false;
try {
thread.join(stopInterval);
} catch (final InterruptedException e) {
Thread.currentThread().interrupt();
}
for (final FileAlterationObserver observer : observers) {
observer.destroy();
}
}
/**
* Run.
*/
@Override
public void run() {
while (running) {
for (final FileAlterationObserver observer : observers) {
observer.checkAndNotify();
}
if (!running) {
break;
}
try {
Thread.sleep(interval);
} catch (final InterruptedException ignored) {
}
}
}
}
⏎ org/apache/commons/io/monitor/FileAlterationMonitor.java
Or download all of them as a single archive file:
File name: commons-io-2.6-sources.jar File size: 280834 bytes Release date: 2017-10-05 Download
⇒ Download and Install commons-io-2.5-bin.zip
2020-12-09, ≈87🔥, 1💬
Popular Posts:
How to download and install ojdbc6.jar for Oracle 11g R2? ojdbc6.jar for Oracle 11g R2 is a Java 6, ...
JDK 17 java.base.jmod is the JMOD file for JDK 17 Base module. JDK 17 Base module compiled class fil...
JDK 11 java.sql.jmod is the JMOD file for JDK 11 SQL (Structured Query Language) module. JDK 11 SQL ...
JRE 8 deploy.jar is the JAR file for JRE 8 Java Control Panel and other deploy tools. JRE (Java Runt...
What is the jaxp\SourceValidator.jav aprovided in the Apache Xerces package? I have Apache Xerces 2....