Skip to content

carlspring/resource-change-monitor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

resource-change-monitor

This is a simple event-driven library for monitoring file changes.

Maven

This library is available as a Maven artifact from Maven Central, so you don't need to add any additional repositories.

Usage

In order to use the ResourceChangeMonitor, you will need to implement the ResourceChangeListener as illustrated below:

private class Observer implements ResourceChangeListener
{

    @Override
    public void handleEvent(ResourceChangeEvent event)
    {
        try
        {
            if (event.getEventType() == ResourceChangeEvent.EVENT_RESOURCE_CONTENTS_CHANGED)
            {
                System.out.println(event.getResourceFile().getCanonicalPath() + ": contents have changed.");
            }

            if (event.getEventType() == ResourceChangeEvent.EVENT_RESOURCE_SIZE_CHANGED)
            {
                System.out.println(event.getResourceFile().getCanonicalPath() + ": size has changed.");
            }

            if (event.getEventType() == ResourceChangeEvent.EVENT_RESOURCE_DELETED)
            {
                System.out.println(event.getResourceFile().getCanonicalPath() + ": has been deleted.");
            }
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
    }
}

Then, in order to observe files for changes:

File file1 = new File(DIR_TEST_RESOURCES, "file1"); // size changed

Observer observer = new Observer();

ResourceChangeMonitor monitor = new ResourceChangeMonitor();
monitor.setInterval(1000); // Check for changes every second
monitor.addResource(new Resource(file1, getHashFor(file1), 10 * 1024));
monitor.addListener(observer);
monitor.start();

For more details and an example implementation, check src/test/java/org/carlspring/resource/ChangeMonitorTest.java.

About

This is a simple event-driven library for monitoring file changes.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages