From 99982a3c5e989dffa073c58f218cf0aa551026df Mon Sep 17 00:00:00 2001
From: Greg DiCristofaro <gregd@basistech.com>
Date: Mon, 25 Jan 2021 14:36:25 -0500
Subject: [PATCH] more flexible serialization and active mq fix

---
 Core/build.xml                                                | 4 ++--
 .../autopsy/integrationtesting/IntegrationTestService.java    | 4 ++--
 .../autopsy/integrationtesting/config/ConnectionConfig.java   | 2 ++
 .../autopsy/integrationtesting/config/EnvConfig.java          | 2 ++
 .../integrationtesting/config/IntegrationTestConfig.java      | 2 ++
 .../config/ParameterizedResourceConfig.java                   | 2 ++
 .../autopsy/integrationtesting/config/TestSuiteConfig.java    | 2 ++
 .../autopsy/integrationtesting/config/TestingConfig.java      | 2 ++
 8 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/Core/build.xml b/Core/build.xml
index 2573b77303..668a07b127 100644
--- a/Core/build.xml
+++ b/Core/build.xml
@@ -298,8 +298,8 @@
             <property name="test.includes" value="**/org/sleuthkit/autopsy/integrationtesting/TestRunner.class"/>   
             <!-- This overrides the value in common.xml:test-init that sets each test lasting 10 minutes maximum.
             More information on the timeout can be found here: http://bits.netbeans.org/dev/javadoc/org-netbeans-modules-nbjunit/org/netbeans/junit/NbTestCase.html 
-            under timeout() or in the harness README. Current value is 1 hour (60 * 60 * 1000) -->
-            <property name="test.timeout" value="3600000"/>     
+            under timeout() or in the harness README. Current value is 4 hours (4 * 60 * 60 * 1000) -->
+            <property name="test.timeout" value="14400000"/>     
             <antcall target="projectized-common.test-qa-functional" />
         </sequential>
     </target>    
diff --git a/Core/src/org/sleuthkit/autopsy/integrationtesting/IntegrationTestService.java b/Core/src/org/sleuthkit/autopsy/integrationtesting/IntegrationTestService.java
index 09b7cb51b6..bda08b6c4e 100644
--- a/Core/src/org/sleuthkit/autopsy/integrationtesting/IntegrationTestService.java
+++ b/Core/src/org/sleuthkit/autopsy/integrationtesting/IntegrationTestService.java
@@ -313,9 +313,9 @@ private ConnectionConfig pushActiveMqSettings(ConnectionConfig connectionInfo) t
         }
 
         // retrieve values
-        String username = connectionInfo.getUserName();
         String host = connectionInfo.getHostName();
-        String password = connectionInfo.getPassword();
+        String username = connectionInfo.getUserName() == null ? "" : connectionInfo.getUserName();
+        String password = connectionInfo.getPassword() == null ? "" : connectionInfo.getPassword();
         int port = connectionInfo.getPort() == null ? DEFAULT_ACTIVEMQ_PORT : connectionInfo.getPort();
 
         // ensure all necessary values are present.
diff --git a/Core/src/org/sleuthkit/autopsy/integrationtesting/config/ConnectionConfig.java b/Core/src/org/sleuthkit/autopsy/integrationtesting/config/ConnectionConfig.java
index 1d55fa4c7b..c1fcd13db5 100644
--- a/Core/src/org/sleuthkit/autopsy/integrationtesting/config/ConnectionConfig.java
+++ b/Core/src/org/sleuthkit/autopsy/integrationtesting/config/ConnectionConfig.java
@@ -19,11 +19,13 @@
 package org.sleuthkit.autopsy.integrationtesting.config;
 
 import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import com.fasterxml.jackson.annotation.JsonProperty;
 
 /**
  * Configuration information for a postgres connection.
  */
+@JsonIgnoreProperties(ignoreUnknown = true)
 public class ConnectionConfig {
     private final String hostName;
     private final Integer port;
diff --git a/Core/src/org/sleuthkit/autopsy/integrationtesting/config/EnvConfig.java b/Core/src/org/sleuthkit/autopsy/integrationtesting/config/EnvConfig.java
index 82f9480cf2..f2e6024b3e 100644
--- a/Core/src/org/sleuthkit/autopsy/integrationtesting/config/EnvConfig.java
+++ b/Core/src/org/sleuthkit/autopsy/integrationtesting/config/EnvConfig.java
@@ -19,11 +19,13 @@
 package org.sleuthkit.autopsy.integrationtesting.config;
 
 import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import com.fasterxml.jackson.annotation.JsonProperty;
 
 /**
  * Defines integration testing environment settings.
  */
+@JsonIgnoreProperties(ignoreUnknown = true)
 public class EnvConfig {
 
     private final String rootCaseOutputPath;
diff --git a/Core/src/org/sleuthkit/autopsy/integrationtesting/config/IntegrationTestConfig.java b/Core/src/org/sleuthkit/autopsy/integrationtesting/config/IntegrationTestConfig.java
index c51d8bc59f..2d9df62d65 100644
--- a/Core/src/org/sleuthkit/autopsy/integrationtesting/config/IntegrationTestConfig.java
+++ b/Core/src/org/sleuthkit/autopsy/integrationtesting/config/IntegrationTestConfig.java
@@ -19,6 +19,7 @@
 package org.sleuthkit.autopsy.integrationtesting.config;
 
 import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import java.util.Collections;
 import java.util.List;
@@ -27,6 +28,7 @@
  * Configuration for running Integration Tests including things like ingest
  * parameters, datasource locations, cases to create, tests to run, etc.
  */
+@JsonIgnoreProperties(ignoreUnknown = true)
 public class IntegrationTestConfig {
 
     private final List<TestSuiteConfig> testSuites;
diff --git a/Core/src/org/sleuthkit/autopsy/integrationtesting/config/ParameterizedResourceConfig.java b/Core/src/org/sleuthkit/autopsy/integrationtesting/config/ParameterizedResourceConfig.java
index 00485dde98..fcb8dac012 100644
--- a/Core/src/org/sleuthkit/autopsy/integrationtesting/config/ParameterizedResourceConfig.java
+++ b/Core/src/org/sleuthkit/autopsy/integrationtesting/config/ParameterizedResourceConfig.java
@@ -18,6 +18,7 @@
  */
 package org.sleuthkit.autopsy.integrationtesting.config;
 
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import com.fasterxml.jackson.core.JsonParser;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.DeserializationContext;
@@ -39,6 +40,7 @@
 /**
  * A resource that potentially has parameters as well.
  */
+@JsonIgnoreProperties(ignoreUnknown = true)
 @JsonDeserialize(using = ParameterizedResourceConfig.ParameterizedResourceConfigDeserializer.class)
 public class ParameterizedResourceConfig {
 
diff --git a/Core/src/org/sleuthkit/autopsy/integrationtesting/config/TestSuiteConfig.java b/Core/src/org/sleuthkit/autopsy/integrationtesting/config/TestSuiteConfig.java
index bc050fdb87..9e4fb8800d 100644
--- a/Core/src/org/sleuthkit/autopsy/integrationtesting/config/TestSuiteConfig.java
+++ b/Core/src/org/sleuthkit/autopsy/integrationtesting/config/TestSuiteConfig.java
@@ -19,6 +19,7 @@
 package org.sleuthkit.autopsy.integrationtesting.config;
 
 import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import java.util.Collections;
 import java.util.List;
@@ -26,6 +27,7 @@
 /**
  * Configuration per test suite.
  */
+@JsonIgnoreProperties(ignoreUnknown = true)
 public class TestSuiteConfig {
 
     private final String name;
diff --git a/Core/src/org/sleuthkit/autopsy/integrationtesting/config/TestingConfig.java b/Core/src/org/sleuthkit/autopsy/integrationtesting/config/TestingConfig.java
index 8cd7f81509..1cd2e0d397 100644
--- a/Core/src/org/sleuthkit/autopsy/integrationtesting/config/TestingConfig.java
+++ b/Core/src/org/sleuthkit/autopsy/integrationtesting/config/TestingConfig.java
@@ -19,6 +19,7 @@
 package org.sleuthkit.autopsy.integrationtesting.config;
 
 import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import java.util.Collections;
 import java.util.HashMap;
@@ -33,6 +34,7 @@
 /**
  * Configuration for which integration test suites to run.
  */
+@JsonIgnoreProperties(ignoreUnknown = true)
 public class TestingConfig {
 
     private final Map<String, ParameterizedResourceConfig> excludeAllExcept;
-- 
GitLab