diff --git a/Core/build.xml b/Core/build.xml
index 62ab09d6f6..9059637f1a 100644
--- a/Core/build.xml
+++ b/Core/build.xml
@@ -97,7 +97,7 @@
-
+
@@ -118,14 +118,14 @@
tofile="${ext.dir}/sleuthkit-${TSK_VERSION}.jar"/>
-
+
+ tofile="${ext.dir}/SparseBitSet-1.1.jar"/>
@@ -139,7 +139,7 @@
-
+
@@ -173,6 +173,17 @@
+
+
+
+
+
+
+
+
+
+
+
+ to a single jar file: allJarsInUse.jar. Then we put this new jar to classpath for testing program to avoid command line Java classpath too long problem.
+Note: Started from ant 1.10, maxParentLevels are enforced. If you get error from manifestclasspath complaines 'No suitable relative path from ...' then it's time to
+ increase your maxParentLevels -->
diff --git a/Core/nbproject/project.properties b/Core/nbproject/project.properties
index f3aa4c9c0d..a155b333ca 100644
--- a/Core/nbproject/project.properties
+++ b/Core/nbproject/project.properties
@@ -20,7 +20,6 @@ file.reference.commons-codec-1.11.jar=release\\modules\\ext\\commons-codec-1.11.
file.reference.commons-collections-3.2.2.jar=release\\modules\\ext\\commons-collections-3.2.2.jar
file.reference.commons-dbcp2-2.1.1.jar=release\\modules\\ext\\commons-dbcp2-2.1.1.jar
file.reference.commons-digester-1.8.1.jar=release\\modules\\ext\\commons-digester-1.8.1.jar
-file.reference.commons-lang-2.6.jar=release\\modules\\ext\\commons-lang-2.6.jar
file.reference.commons-logging-1.2.jar=release\\modules\\ext\\commons-logging-1.2.jar
file.reference.commons-pool2-2.4.2.jar=release\\modules\\ext\\commons-pool2-2.4.2.jar
file.reference.commons-validator-1.6.jar=release\\modules\\ext\\commons-validator-1.6.jar
diff --git a/Core/nbproject/project.xml b/Core/nbproject/project.xml
index e1aec851e1..b7471c6a9e 100644
--- a/Core/nbproject/project.xml
+++ b/Core/nbproject/project.xml
@@ -687,10 +687,6 @@
ext/jython-standalone-2.7.0.jar
release\modules\ext\jython-standalone-2.7.0.jar
-
- ext/commons-lang-2.6.jar
- release\modules\ext\commons-lang-2.6.jar
-
ext/jsr305-3.0.2.jar
release\modules\ext\jsr305-3.0.2.jar
diff --git a/Core/test/qa-functional/src/org/sleuthkit/autopsy/integrationtesting/config/ConfigDeserializer.java b/Core/test/qa-functional/src/org/sleuthkit/autopsy/integrationtesting/config/ConfigDeserializer.java
index 437e7e6ad5..a6030f6619 100644
--- a/Core/test/qa-functional/src/org/sleuthkit/autopsy/integrationtesting/config/ConfigDeserializer.java
+++ b/Core/test/qa-functional/src/org/sleuthkit/autopsy/integrationtesting/config/ConfigDeserializer.java
@@ -16,6 +16,7 @@ import java.io.File;
import java.io.IOException;
import java.lang.reflect.Type;
import java.util.Arrays;
+import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Map;
@@ -23,7 +24,7 @@ import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
-import java.util.stream.Stream;
+import org.apache.commons.io.FileUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.cxf.common.util.CollectionUtils;
import org.sleuthkit.autopsy.integrationtesting.PathUtil;
@@ -34,20 +35,9 @@ import org.sleuthkit.autopsy.integrationtesting.PathUtil;
*/
public class ConfigDeserializer {
- private static final String JSON_EXT = ".json";
+ private static final String JSON_EXT = "json";
private static final Logger logger = Logger.getLogger(ConfigDeserializer.class.getName());
- private static final ObjectMapper mapper = getMapper();
-
- private static ObjectMapper getMapper() {
- ObjectMapper mapper = new ObjectMapper();
- SimpleModule module = new SimpleModule();
- module.addDeserializer(
- ParameterizedResourceConfig.class,
- new ParameterizedResourceConfig.ParameterizedResourceConfigDeserializer());
-
- mapper.registerModule(module);
- return mapper;
- }
+ private static final ObjectMapper mapper = new ObjectMapper();
public T convertToObj(Map toConvert, Type clazz) {
GsonBuilder builder = new GsonBuilder();
@@ -108,8 +98,8 @@ public class ConfigDeserializer {
}
public List getTestSuiteConfigs(File rootDirectory) {
- File[] jsonFiles = rootDirectory.listFiles((File dir, String name) -> name.endsWith(JSON_EXT));
- return Stream.of(jsonFiles)
+ Collection jsonFiles = FileUtils.listFiles(rootDirectory, new String[]{JSON_EXT}, true);
+ return jsonFiles.stream()
.flatMap((file) -> getTestSuiteConfig(rootDirectory, file).stream())
.collect(Collectors.toList());
}
@@ -131,12 +121,12 @@ public class ConfigDeserializer {
logger.log(Level.WARNING, String.format("Item in %s at index %d must contain a valid 'name', 'caseTypes', 'dataSources', and 'integrationTests'", file.toString(), index));
return null;
}
-
+
if (config.getRelativeOutputPath() == null) {
// taken from https://stackoverflow.com/questions/204784/how-to-construct-a-relative-path-in-java-from-two-absolute-paths-or-urls
String relative = rootDirectory.toURI().relativize(file.toURI()).getPath();
- if (relative.endsWith(JSON_EXT)) {
- relative = relative.substring(0, relative.length() - JSON_EXT.length());
+ if (relative.endsWith("." + JSON_EXT)) {
+ relative = relative.substring(0, relative.length() - ("." + JSON_EXT).length());
}
config.setRelativeOutputPath(relative);
}
diff --git a/Core/test/qa-functional/src/org/sleuthkit/autopsy/integrationtesting/config/ConnectionConfig.java b/Core/test/qa-functional/src/org/sleuthkit/autopsy/integrationtesting/config/ConnectionConfig.java
index cd74d412ad..7c477711d8 100644
--- a/Core/test/qa-functional/src/org/sleuthkit/autopsy/integrationtesting/config/ConnectionConfig.java
+++ b/Core/test/qa-functional/src/org/sleuthkit/autopsy/integrationtesting/config/ConnectionConfig.java
@@ -18,6 +18,9 @@
*/
package org.sleuthkit.autopsy.integrationtesting.config;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
/**
*
* @author gregd
@@ -28,7 +31,13 @@ public class ConnectionConfig {
private final String userName;
private final String password;
- public ConnectionConfig(String hostName, Integer port, String userName, String password) {
+ @JsonCreator
+ public ConnectionConfig(
+ @JsonProperty("hostName") String hostName,
+ @JsonProperty("port") Integer port,
+ @JsonProperty("userName") String userName,
+ @JsonProperty("password") String password) {
+
this.hostName = hostName;
this.port = port;
this.userName = userName;
diff --git a/Core/test/qa-functional/src/org/sleuthkit/autopsy/integrationtesting/config/EnvConfig.java b/Core/test/qa-functional/src/org/sleuthkit/autopsy/integrationtesting/config/EnvConfig.java
index b24871dafc..2432a09350 100644
--- a/Core/test/qa-functional/src/org/sleuthkit/autopsy/integrationtesting/config/EnvConfig.java
+++ b/Core/test/qa-functional/src/org/sleuthkit/autopsy/integrationtesting/config/EnvConfig.java
@@ -18,6 +18,9 @@
*/
package org.sleuthkit.autopsy.integrationtesting.config;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
/**
*
* @author gregd
@@ -27,16 +30,18 @@ public class EnvConfig {
private final String rootCaseOutputPath;
private final String rootTestOutputPath;
private final String rootTestSuitesPath;
-
+
private final ConnectionConfig connectionInfo;
private String workingDirectory;
-
- public EnvConfig(String rootCaseOutputPath,
- String rootTestSuitesPath,
- String rootTestOutputPath,
- ConnectionConfig connectionInfo) {
+ @JsonCreator
+ public EnvConfig(
+ @JsonProperty("rootCaseOutputPath") String rootCaseOutputPath,
+ @JsonProperty("rootTestSuitesPath") String rootTestSuitesPath,
+ @JsonProperty("rootTestOutputPath") String rootTestOutputPath,
+ @JsonProperty("connectionInfo") ConnectionConfig connectionInfo) {
+
this.rootCaseOutputPath = rootCaseOutputPath;
this.rootTestOutputPath = rootTestOutputPath;
this.rootTestSuitesPath = rootTestSuitesPath;
diff --git a/Core/test/qa-functional/src/org/sleuthkit/autopsy/integrationtesting/config/IntegrationTestConfig.java b/Core/test/qa-functional/src/org/sleuthkit/autopsy/integrationtesting/config/IntegrationTestConfig.java
index 19fad8a968..c8bd0f6532 100644
--- a/Core/test/qa-functional/src/org/sleuthkit/autopsy/integrationtesting/config/IntegrationTestConfig.java
+++ b/Core/test/qa-functional/src/org/sleuthkit/autopsy/integrationtesting/config/IntegrationTestConfig.java
@@ -18,6 +18,8 @@
*/
package org.sleuthkit.autopsy.integrationtesting.config;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;
/**
@@ -26,15 +28,18 @@ import java.util.List;
*/
public class IntegrationTestConfig {
-
private final List testSuites;
private final EnvConfig envConfig;
- public IntegrationTestConfig(List testSuites, EnvConfig envConfig) {
+ @JsonCreator
+ public IntegrationTestConfig(
+ @JsonProperty("testSuites") List testSuites,
+ @JsonProperty("envConfig") EnvConfig envConfig) {
+
this.testSuites = testSuites;
this.envConfig = envConfig;
}
-
+
/**
* @return The per-case configuration.
*/
diff --git a/Core/test/qa-functional/src/org/sleuthkit/autopsy/integrationtesting/config/ParameterizedResourceConfig.java b/Core/test/qa-functional/src/org/sleuthkit/autopsy/integrationtesting/config/ParameterizedResourceConfig.java
index f55b595376..23150cbd06 100644
--- a/Core/test/qa-functional/src/org/sleuthkit/autopsy/integrationtesting/config/ParameterizedResourceConfig.java
+++ b/Core/test/qa-functional/src/org/sleuthkit/autopsy/integrationtesting/config/ParameterizedResourceConfig.java
@@ -20,21 +20,30 @@ package org.sleuthkit.autopsy.integrationtesting.config;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
+import com.fasterxml.jackson.databind.node.TextNode;
import java.io.IOException;
import java.util.Collections;
+import java.util.HashMap;
import java.util.Map;
+import org.sleuthkit.autopsy.integrationtesting.config.ParameterizedResourceConfig.ParameterizedResourceConfigDeserializer;
/**
*
* @author gregd
*/
+@JsonDeserialize(using = ParameterizedResourceConfigDeserializer.class)
public class ParameterizedResourceConfig {
public static class ParameterizedResourceConfigDeserializer extends StdDeserializer {
+ private static TypeReference> typeRef = new TypeReference>() {
+ };
+
public ParameterizedResourceConfigDeserializer() {
this(null);
}
@@ -46,10 +55,18 @@ public class ParameterizedResourceConfig {
@Override
public ParameterizedResourceConfig deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException {
JsonNode node = jp.getCodec().readTree(jp);
- if (node.isTextual()) {
- return new ParameterizedResourceConfig(node.asText());
+
+ if (node == null) {
+ return null;
+ } else if (node instanceof TextNode) {
+ return new ParameterizedResourceConfig(((TextNode) node).textValue());
} else {
- return ctxt.readValue(jp, ParameterizedResourceConfig.class);
+ String resource = (node.get("resource") != null) ? node.get("resource").asText() : null;
+ Map parameters = (node.get("parameters") != null) ?
+ node.get("parameters").traverse().readValueAs(Map.class) :
+ null;
+
+ return new ParameterizedResourceConfig(resource, parameters);
}
}
}
diff --git a/Core/test/qa-functional/src/org/sleuthkit/autopsy/integrationtesting/config/TestSuiteConfig.java b/Core/test/qa-functional/src/org/sleuthkit/autopsy/integrationtesting/config/TestSuiteConfig.java
index 69c42e98b8..22ab1e68eb 100644
--- a/Core/test/qa-functional/src/org/sleuthkit/autopsy/integrationtesting/config/TestSuiteConfig.java
+++ b/Core/test/qa-functional/src/org/sleuthkit/autopsy/integrationtesting/config/TestSuiteConfig.java
@@ -18,12 +18,15 @@
*/
package org.sleuthkit.autopsy.integrationtesting.config;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;
/**
* Configuration in IntegrationTests per case.
*/
public class TestSuiteConfig {
+
private final String name;
private final String description;
private final List dataSources;
@@ -32,7 +35,15 @@ public class TestSuiteConfig {
private final IntegrationCaseType caseTypes;
private String relativeOutputPath;
- public TestSuiteConfig(String name, String description, List dataSources, List configurationModules, TestingConfig integrationTests, IntegrationCaseType caseTypes) {
+ @JsonCreator
+ public TestSuiteConfig(
+ @JsonProperty("name") String name,
+ @JsonProperty("description") String description,
+ @JsonProperty("dataSources") List dataSources,
+ @JsonProperty("configurationModules") List configurationModules,
+ @JsonProperty("integrationTests") TestingConfig integrationTests,
+ @JsonProperty("caseTypes") IntegrationCaseType caseTypes) {
+
this.name = name;
this.description = description;
this.dataSources = dataSources;
@@ -72,6 +83,5 @@ public class TestSuiteConfig {
public void setRelativeOutputPath(String relativeOutputPath) {
this.relativeOutputPath = relativeOutputPath;
}
-
-
+
}
diff --git a/Core/test/qa-functional/src/org/sleuthkit/autopsy/integrationtesting/config/TestingConfig.java b/Core/test/qa-functional/src/org/sleuthkit/autopsy/integrationtesting/config/TestingConfig.java
index 49691ddee3..a2a9b165ad 100644
--- a/Core/test/qa-functional/src/org/sleuthkit/autopsy/integrationtesting/config/TestingConfig.java
+++ b/Core/test/qa-functional/src/org/sleuthkit/autopsy/integrationtesting/config/TestingConfig.java
@@ -18,6 +18,7 @@
*/
package org.sleuthkit.autopsy.integrationtesting.config;
+import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.Collections;
import java.util.HashMap;
@@ -37,11 +38,10 @@ public class TestingConfig {
private final Map excludeAllExcept;
private final Set includeAllExcept;
+ @JsonCreator
public TestingConfig(
- @JsonProperty("excludeAllExcept")
- List excludeAllExcept,
- @JsonProperty("includeAllExcept")
- List includeAllExcept) {
+ @JsonProperty("excludeAllExcept") List excludeAllExcept,
+ @JsonProperty("includeAllExcept") List includeAllExcept) {
List safeExcludeAllExcept = ((excludeAllExcept == null) ? Collections.emptyList() : excludeAllExcept);
this.excludeAllExcept = safeExcludeAllExcept
diff --git a/KeywordSearch/ivy.xml b/KeywordSearch/ivy.xml
index ee86821bd8..9a6a4d1255 100644
--- a/KeywordSearch/ivy.xml
+++ b/KeywordSearch/ivy.xml
@@ -19,7 +19,6 @@
-
diff --git a/KeywordSearch/nbproject/project.properties b/KeywordSearch/nbproject/project.properties
index b0c06e183e..ffc82a095b 100644
--- a/KeywordSearch/nbproject/project.properties
+++ b/KeywordSearch/nbproject/project.properties
@@ -2,8 +2,6 @@ file.reference.annotations-12.0.jar=release\\modules\\ext\\annotations-12.0.jar
file.reference.commons-beanutils-1.9.2.jar=release\\modules\\ext\\commons-beanutils-1.9.2.jar
file.reference.commons-collections-3.2.2.jar=release\\modules\\ext\\commons-collections-3.2.2.jar
file.reference.commons-digester-1.8.1.jar=release\\modules\\ext\\commons-digester-1.8.1.jar
-file.reference.commons-io-2.3.jar=release\\modules\\ext\\commons-io-2.3.jar
-file.reference.commons-lang-2.4.jar=release\\modules\\ext\\commons-lang-2.4.jar
file.reference.commons-logging-1.2.jar=release\\modules\\ext\\commons-logging-1.2.jar
file.reference.commons-validator-1.5.1.jar=release\\modules\\ext\\commons-validator-1.5.1.jar
file.reference.guava-18.0.jar=release\\modules\\ext\\guava-18.0.jar
diff --git a/KeywordSearch/nbproject/project.xml b/KeywordSearch/nbproject/project.xml
index aa8cb0cf8e..5c2ba10461 100644
--- a/KeywordSearch/nbproject/project.xml
+++ b/KeywordSearch/nbproject/project.xml
@@ -262,10 +262,6 @@
ext/commons-validator-1.5.1.jar
release\modules\ext\commons-validator-1.5.1.jar
-
- ext/commons-lang-2.4.jar
- release\modules\ext\commons-lang-2.4.jar
-
ext/commons-logging-1.2.jar
release\modules\ext\commons-logging-1.2.jar
@@ -286,10 +282,6 @@
ext/commons-beanutils-1.9.2.jar
release\modules\ext\commons-beanutils-1.9.2.jar
-
- ext/commons-io-2.3.jar
- release\modules\ext\commons-io-2.3.jar
-
ext/wstx-asl-3.2.7.jar
release\modules\ext\wstx-asl-3.2.7.jar
diff --git a/Tika/nbproject/project.properties b/Tika/nbproject/project.properties
index 15dd1d821b..e44d126d39 100755
--- a/Tika/nbproject/project.properties
+++ b/Tika/nbproject/project.properties
@@ -14,7 +14,6 @@ file.reference.commons-codec-1.13.jar=release\\modules\\ext\\commons-codec-1.13.
file.reference.commons-compress-1.19.jar=release\\modules\\ext\\commons-compress-1.19.jar
file.reference.commons-csv-1.7.jar=release\\modules\\ext\\commons-csv-1.7.jar
file.reference.commons-exec-1.3.jar=release\\modules\\ext\\commons-exec-1.3.jar
-file.reference.commons-io-2.6.jar=release\\modules\\ext\\commons-io-2.6.jar
file.reference.commons-math3-3.6.1.jar=release\\modules\\ext\\commons-math3-3.6.1.jar
file.reference.curvesapi-1.06.jar=release\\modules\\ext\\curvesapi-1.06.jar
file.reference.cxf-core-3.3.4.jar=release\\modules\\ext\\cxf-core-3.3.4.jar
diff --git a/Tika/nbproject/project.xml b/Tika/nbproject/project.xml
index 883db46afb..955f2811c8 100755
--- a/Tika/nbproject/project.xml
+++ b/Tika/nbproject/project.xml
@@ -426,10 +426,6 @@
ext/bcmail-jdk15on-1.64.jar
release\modules\ext\bcmail-jdk15on-1.64.jar
-
- ext/commons-io-2.6.jar
- release\modules\ext\commons-io-2.6.jar
-
ext/cxf-rt-rs-client-3.3.4.jar
release\modules\ext\cxf-rt-rs-client-3.3.4.jar
diff --git a/thunderbirdparser/ivy.xml b/thunderbirdparser/ivy.xml
index d2833c64c1..6dd9ffd6b1 100644
--- a/thunderbirdparser/ivy.xml
+++ b/thunderbirdparser/ivy.xml
@@ -7,7 +7,6 @@
-
diff --git a/thunderbirdparser/nbproject/project.properties b/thunderbirdparser/nbproject/project.properties
index ea9d0786eb..18a61ec9ad 100644
--- a/thunderbirdparser/nbproject/project.properties
+++ b/thunderbirdparser/nbproject/project.properties
@@ -1,7 +1,6 @@
file.reference.apache-mime4j-core-0.8.0-SNAPSHOT.jar=release/modules/ext/apache-mime4j-core-0.8.0-SNAPSHOT.jar
file.reference.apache-mime4j-dom-0.8.0-SNAPSHOT.jar=release/modules/ext/apache-mime4j-dom-0.8.0-SNAPSHOT.jar
file.reference.apache-mime4j-mbox-iterator-0.8.0-SNAPSHOT.jar=release/modules/ext/apache-mime4j-mbox-iterator-0.8.0-SNAPSHOT.jar
-file.reference.commons-lang3-3.8.1.jar=release/modules/ext/commons-lang3-3.8.1.jar
file.reference.apache-mime4j-core-0.8.0.jar=release/modules/ext/apache-mime4j-core-0.8.0-SNAPSHOT.jar
file.reference.apache-mime4j-dom-0.8.0.jar=release/modules/ext/apache-mime4j-dom-0.8.0-SNAPSHOT.jar
file.reference.apache-mime4j-mbox-iterator-0.8.0.jar=release/modules/ext/apache-mime4j-mbox-iterator-0.8.0-SNAPSHOT.jar