From f27def9af9633636f2e4ca6146095fa0197251b0 Mon Sep 17 00:00:00 2001
From: alaskowski <alaskowski@ethz.ch>
Date: Thu, 13 Jun 2024 11:05:53 +0200
Subject: [PATCH] BIS-1093: Added discard files pattern support

---
 .../etc/service.properties                    | 10 +++++-
 .../cisd/etlserver/ThreadParameters.java      | 34 ++++++++++++++++---
 2 files changed, 39 insertions(+), 5 deletions(-)

diff --git a/server-original-data-store/etc/service.properties b/server-original-data-store/etc/service.properties
index 671e5b04826..0675357b086 100644
--- a/server-original-data-store/etc/service.properties
+++ b/server-original-data-store/etc/service.properties
@@ -385,4 +385,12 @@ jython-version=2.7
 #
 default-incoming-share-id=1
 default-incoming-share-minimum-free-space-in-gb=10
-discard-hidden-files=true
+eln-lims-dropbox-discard-hidden-files=false
+eln-lims-dropbox-allow-hidden-files=true
+#eln-lims-dropbox-discard-files-patterns =
+#
+# Imaging plugin configuration
+#
+imaging.nanonis.sxm-script-path=${core-plugins-folder}/imaging-nanonis/1/dss/services/imaging-nanonis/nanonis_sxm.py
+imaging.nanonis.dat-script-path=${core-plugins-folder}/imaging-nanonis/1/dss/services/imaging-nanonis/nanonis_dat.py
+imaging.imaging-test.script-path=${core-plugins-folder}/imaging-test/1/dss/services/imaging-test/test_adaptor_script.py
\ No newline at end of file
diff --git a/server-original-data-store/source/java/ch/systemsx/cisd/etlserver/ThreadParameters.java b/server-original-data-store/source/java/ch/systemsx/cisd/etlserver/ThreadParameters.java
index b200d9f70a6..cbf1ef49489 100644
--- a/server-original-data-store/source/java/ch/systemsx/cisd/etlserver/ThreadParameters.java
+++ b/server-original-data-store/source/java/ch/systemsx/cisd/etlserver/ThreadParameters.java
@@ -16,9 +16,9 @@
 package ch.systemsx.cisd.etlserver;
 
 import java.io.File;
-import java.util.Arrays;
-import java.util.Properties;
-import java.util.Vector;
+import java.util.*;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.regex.Pattern;
 
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -133,6 +133,10 @@ public final class ThreadParameters
 
     public static final String DISCARD_HIDDEN_FILES = "discard-hidden-files";
 
+    public static final String ALLOW_HIDDEN_FILES = "allow-hidden-files";
+
+    public static final String DISCARD_FILES_PATTERNS = "discard-files-patterns";
+
     /**
      * The (local) directory to monitor for new files and directories to move to the remote side. The directory where data to be processed by the ETL
      * server become available.
@@ -187,6 +191,12 @@ public final class ThreadParameters
 
     private final boolean discardHiddenFiles;
 
+    private final boolean allowHiddenFiles;
+
+    private final String discardFilesPatterns;
+    private final Map<String, Pattern> discardFilesPatternsCache = new ConcurrentHashMap<>();
+
+
     /**
      * @param threadProperties parameters for one processing thread together with general parameters.
      */
@@ -196,6 +206,7 @@ public final class ThreadParameters
         this.h5Folders = PropertyUtils.getBoolean(threadProperties, H5_FOLDERS, false);
         this.h5arFolders = PropertyUtils.getBoolean(threadProperties, H5AR_FOLDERS, true);
         this.discardHiddenFiles = PropertyUtils.getBoolean(threadProperties, DISCARD_HIDDEN_FILES, true);
+        this.allowHiddenFiles = PropertyUtils.getBoolean(threadProperties, ALLOW_HIDDEN_FILES, true);
         this.createIncomingDirectories =
                 PropertyUtils.getBoolean(threadProperties, INCOMING_DIR_CREATE, true);
         this.threadProperties = threadProperties;
@@ -275,7 +286,7 @@ public final class ThreadParameters
                     ON_ERROR_DECISION_KEY + ".class", ex.getMessage());
         }
         this.onErrorDecisionClassOrNull = onErrorClass;
-
+        this.discardFilesPatterns = PropertyUtils.getProperty(threadProperties, DISCARD_FILES_PATTERNS, "");
     }
 
     private DataSetRegistrationPreStagingBehavior getOriginalnputDataSetBehaviour(
@@ -578,6 +589,21 @@ public final class ThreadParameters
         return discardHiddenFiles;
     }
 
+    public boolean allowHiddenFiles()
+    {
+        return allowHiddenFiles;
+    }
+
+    public String discardFilesPatterns()
+    {
+        return discardFilesPatterns;
+    }
+
+    public Map<String, Pattern> discardFilesPatternsCache()
+    {
+        return discardFilesPatternsCache;
+    }
+
     public boolean hasH5ArAsFolders()
     {
         return h5arFolders;
-- 
GitLab