package restx.common.watch; import restx.common.OSUtils; import java.util.ServiceLoader; /** * User: xavierhanin * Date: 7/27/13 * Time: 2:15 PM */ public class WatcherServiceLoader { private static final WatcherService WATCHER_SERVICE; static { WatcherService watcher = null; ServiceLoader<WatcherService> watcherServices = ServiceLoader.load(WatcherService.class); for (WatcherService watcherService : watcherServices) { if (watcherService.isEnabled()) { watcher = watcherService; break; } } if (watcher == null) { watcher = new StdWatcherService(); if (OSUtils.isMacOSX()) { System.out.println("WARN: using default watch service on MacOSX uses polling.\n" + "Add `restx-barbarywatch` to your classpath to have real time file system notifications."); } } WATCHER_SERVICE = watcher; } public static WatcherService getWatcherService() { return WATCHER_SERVICE; } }