diff --git a/src/main/java/edu/tamu/app/observer/FileMonitorManager.java b/src/main/java/edu/tamu/app/observer/FileMonitorManager.java index a66d5f23..d2cb3dc6 100644 --- a/src/main/java/edu/tamu/app/observer/FileMonitorManager.java +++ b/src/main/java/edu/tamu/app/observer/FileMonitorManager.java @@ -11,7 +11,7 @@ @Service public class FileMonitorManager { - private static final Logger logger = Logger.getLogger(FileObserverRegistry.class); + private static final Logger logger = Logger.getLogger(FileMonitorManager.class); private static FileAlterationMonitor monitor; diff --git a/src/main/java/edu/tamu/app/observer/FileObserverRegistry.java b/src/main/java/edu/tamu/app/observer/FileObserverRegistry.java index 7860c409..050fbc9c 100644 --- a/src/main/java/edu/tamu/app/observer/FileObserverRegistry.java +++ b/src/main/java/edu/tamu/app/observer/FileObserverRegistry.java @@ -3,6 +3,7 @@ import java.io.File; import java.util.HashMap; import java.util.Map; +import java.util.Optional; import org.apache.commons.io.monitor.FileAlterationObserver; import org.apache.log4j.Logger; @@ -24,26 +25,38 @@ public class FileObserverRegistry { private AutowireCapableBeanFactory beanFactory; public void register(FileListener listener) { + String path = listener.getPath(); + try { + dismiss(listener); + } catch (Exception e) { + logger.error("Unable to dismiss listener: " + path); + } + logger.info("Registering listener: " + path); beanFactory.autowireBean(listener); - logger.info("Registering: " + listener.getPath()); - final File directory = new File(listener.getPath()); + final File directory = new File(path); if (directory.exists()) { FileAlterationObserver observer = new FileAlterationObserver(directory); observer.addListener(listener); - observers.put(listener.getPath(), observer); + observers.put(path, observer); fileMonitorManager.addObserver(observer); - logger.info("Listening: " + listener.getPath()); + logger.info("Listening at: " + path); } else { - logger.error("Path not found: " + listener.getPath()); + logger.error("Path not found: " + path); } } public void dismiss(FileListener listener) throws Exception { - logger.info("Dismissing: " + listener.getPath()); - FileAlterationObserver observer = observers.get(listener.getPath()); - observers.remove(observer.getDirectory().getAbsolutePath()); - fileMonitorManager.removeObserver(observer); - observer.destroy(); + String path = listener.getPath(); + Optional observer = Optional.ofNullable(observers.get(path)); + if (observer.isPresent()) { + logger.info("Dismissing listener: " + path); + beanFactory.destroyBean(listener); + observers.remove(path); + fileMonitorManager.removeObserver(observer.get()); + observer.get().destroy(); + } else { + logger.info("No listener to dismiss: " + path); + } } } diff --git a/src/main/java/edu/tamu/app/service/repository/ArchivematicaFilesystemRepository.java b/src/main/java/edu/tamu/app/service/repository/ArchivematicaFilesystemRepository.java index 6e6bb4e7..38bdc39a 100644 --- a/src/main/java/edu/tamu/app/service/repository/ArchivematicaFilesystemRepository.java +++ b/src/main/java/edu/tamu/app/service/repository/ArchivematicaFilesystemRepository.java @@ -23,7 +23,6 @@ import org.apache.commons.codec.digest.DigestUtils; import org.apache.commons.io.FileUtils; -import org.apache.jena.atlas.logging.Log; import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.Base64Utils; @@ -34,7 +33,6 @@ import edu.tamu.app.model.Document; import edu.tamu.app.model.ProjectRepository; import edu.tamu.app.model.repo.DocumentRepo; -import edu.tamu.app.service.DocumentFactory; import edu.tamu.app.utilities.CsvUtility; public class ArchivematicaFilesystemRepository implements Repository { @@ -48,7 +46,7 @@ public class ArchivematicaFilesystemRepository implements Repository { private ProjectRepository projectRepository; private CsvUtility csvUtility; - + private static final Logger logger = Logger.getLogger(ArchivematicaFilesystemRepository.class); public ArchivematicaFilesystemRepository(ProjectRepository projectRepository) { @@ -206,7 +204,7 @@ private boolean startArchivematicaTransfer(Document document, File archivematica String params = ""; params += "name=" + document.getProject().getName() + "_" + document.getName() + "&type=standard" + "&paths[]=" + encodedPath; try { - logger.info("POST request parameters being sent to archivematica: "+ params); + logger.info("POST request parameters being sent to archivematica: " + params); connection.getOutputStream().write(params.getBytes()); @@ -218,14 +216,13 @@ private boolean startArchivematicaTransfer(Document document, File archivematica // Read response from item post StringBuilder response = new StringBuilder(); - + BufferedReader br = null; try { br = new BufferedReader(new InputStreamReader(connection.getInputStream())); } catch (IOException e) { - IOException ioe = new IOException("Could not get input stream for a response from the connection of the POST request. Response message was \"" + connection.getResponseMessage() - + "\" with this exception thrown: {" + e.getMessage() + "}"); + IOException ioe = new IOException("Could not get input stream for a response from the connection of the POST request. Response message was \"" + connection.getResponseMessage() + "\" with this exception thrown: {" + e.getMessage() + "}"); ioe.setStackTrace(e.getStackTrace()); throw ioe; } @@ -241,7 +238,7 @@ private boolean startArchivematicaTransfer(Document document, File archivematica ioe.setStackTrace(e.getStackTrace()); throw ioe; } - + logger.info("POST request to archivematica resulted in response code of " + connection.getResponseCode() + " with response: " + response.toString()); // Close streams diff --git a/src/main/java/edu/tamu/app/service/suggestor/NALTSuggestor.java b/src/main/java/edu/tamu/app/service/suggestor/NALTSuggestor.java index b70a01b9..0c0776ed 100644 --- a/src/main/java/edu/tamu/app/service/suggestor/NALTSuggestor.java +++ b/src/main/java/edu/tamu/app/service/suggestor/NALTSuggestor.java @@ -19,7 +19,6 @@ import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; -import edu.tamu.app.controller.DocumentController; import edu.tamu.app.model.Document; import edu.tamu.app.model.ProjectSuggestor; import edu.tamu.app.model.Resource;