diff --git a/Core/ivy.xml b/Core/ivy.xml
index a45d09bf8b..3073796ab1 100644
--- a/Core/ivy.xml
+++ b/Core/ivy.xml
@@ -15,11 +15,17 @@
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
@@ -28,17 +34,14 @@
+
-
+
-
-
-
-
+
diff --git a/Core/nbproject/project.properties b/Core/nbproject/project.properties
index 1620df3d84..3caa4d3662 100644
--- a/Core/nbproject/project.properties
+++ b/Core/nbproject/project.properties
@@ -1,77 +1,94 @@
file.reference.activemq-all-5.11.1.jar=release/modules/ext/activemq-all-5.11.1.jar
-file.reference.apache-mime4j-core-0.8.1.jar=release/modules/ext/apache-mime4j-core-0.8.1.jar
-file.reference.apache-mime4j-dom-0.8.1.jar=release/modules/ext/apache-mime4j-dom-0.8.1.jar
-file.reference.asm-5.0.4.jar=release/modules/ext/asm-5.0.4.jar
-file.reference.bcmail-jdk15on-1.54.jar=release/modules/ext/bcmail-jdk15on-1.54.jar
-file.reference.bcprov-jdk15on-1.54.jar=release/modules/ext/bcprov-jdk15on-1.54.jar
-file.reference.boilerpipe-1.1.0.jar=release/modules/ext/boilerpipe-1.1.0.jar
+file.reference.apache-mime4j-core-0.8.2.jar=release\\modules\\ext\\apache-mime4j-core-0.8.2.jar
+file.reference.apache-mime4j-dom-0.8.2.jar=release\\modules\\ext\\apache-mime4j-dom-0.8.2.jar
+file.reference.asm-7.0.jar=release\\modules\\ext\\asm-7.0.jar
+file.reference.bcmail-jdk15on-1.60.jar=release\\modules\\ext\\bcmail-jdk15on-1.60.jar
+file.reference.bcprov-jdk15on-1.60.jar=release\\modules\\ext\\bcprov-jdk15on-1.60.jar
+file.reference.boilerpipe-1.1.0.jar=release\\modules\\ext\\boilerpipe-1.1.0.jar
file.reference.c3p0-0.9.5.jar=release/modules/ext/c3p0-0.9.5.jar
-file.reference.cdm-4.5.5.jar=release/modules/ext/cdm-4.5.5.jar
-file.reference.commons-codec-1.6.jar=release/modules/ext/commons-codec-1.6.jar
-file.reference.commons-compress-1.14.jar=release/modules/ext/commons-compress-1.14.jar
+file.reference.cdm-4.5.5.jar=release\\modules\\ext\\cdm-4.5.5.jar
+file.reference.commons-codec-1.11.jar=release\\modules\\ext\\commons-codec-1.11.jar
+file.reference.commons-collections4-4.2.jar=release\\modules\\ext\\commons-collections4-4.2.jar
+file.reference.commons-csv-1.6.jar=release\\modules\\ext\\commons-csv-1.6.jar
file.reference.commons-dbcp2-2.1.1.jar=release/modules/ext/commons-dbcp2-2.1.1.jar
-file.reference.commons-io-2.5.jar=release/modules/ext/commons-io-2.5.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-lang3-3.8.1.jar=release\\modules\\ext\\commons-lang3-3.8.1.jar
file.reference.commons-pool2-2.4.2.jar=release/modules/ext/commons-pool2-2.4.2.jar
-file.reference.geoapi-3.0.0.jar=release/modules/ext/geoapi-3.0.0.jar
-file.reference.grib-4.5.5.jar=release/modules/ext/grib-4.5.5.jar
-file.reference.httpservices-4.5.5.jar=release/modules/ext/httpservices-4.5.5.jar
-file.reference.isoparser-1.1.18.jar=release/modules/ext/isoparser-1.1.18.jar
-file.reference.jackcess-2.2.0.jar=release/modules/ext/jackcess-2.2.0.jar
-file.reference.jackcess-encrypt-2.1.4.jar=release/modules/ext/jackcess-encrypt-2.1.4.jar
-file.reference.java-libpst-0.8.1.jar=release/modules/ext/java-libpst-0.8.1.jar
-file.reference.jcl-over-slf4j-1.7.24.jar=release/modules/ext/jcl-over-slf4j-1.7.24.jar
-file.reference.jackson-core-2.9.7.jar=release/modules/ext/jackson-core-2.9.7.jar
+file.reference.cxf-rt-rs-client-3.3.0.jar=release\\modules\\ext\\cxf-rt-rs-client-3.3.0.jar
+file.reference.dd-plist-1.20.jar=release/modules/ext/dd-plist-1.20.jar
+file.reference.dec-0.1.2.jar=release\\modules\\ext\\dec-0.1.2.jar
+file.reference.fontbox-2.0.13.jar=release\\modules\\ext\\fontbox-2.0.13.jar
+file.reference.geoapi-3.0.1.jar=release\\modules\\ext\\geoapi-3.0.1.jar
+file.reference.grib-4.5.5.jar=release\\modules\\ext\\grib-4.5.5.jar
+file.reference.httpclient-4.5.6.jar=release\\modules\\ext\\httpclient-4.5.6.jar
+file.reference.httpmime-4.5.6.jar=release\\modules\\ext\\httpmime-4.5.6.jar
+file.reference.httpservices-4.5.5.jar=release\\modules\\ext\\httpservices-4.5.5.jar
+file.reference.isoparser-1.1.22.jar=release\\modules\\ext\\isoparser-1.1.22.jar
+file.reference.jackcess-2.2.0.jar=release\\modules\\ext\\jackcess-2.2.0.jar
+file.reference.jackcess-encrypt-2.1.4.jar=release\\modules\\ext\\jackcess-encrypt-2.1.4.jar
+file.reference.jackson-annotations-2.9.7.jar=release\\modules\\ext\\jackson-annotations-2.9.7.jar
+file.reference.jackson-core-2.9.7.jar=release\\modules\\ext\\jackson-core-2.9.7.jar
+file.reference.jackson-databind-2.9.7.jar=release\\modules\\ext\\jackson-databind-2.9.7.jar
+file.reference.jai-imageio-core-1.4.0.jar=release\\modules\\ext\\jai-imageio-core-1.4.0.jar
+file.reference.java-libpst-0.8.1.jar=release\\modules\\ext\\java-libpst-0.8.1.jar
+file.reference.javax.activation-1.2.0.jar=release\\modules\\ext\\javax.activation-1.2.0.jar
+file.reference.javax.annotation-api-1.3.2.jar=release\\modules\\ext\\javax.annotation-api-1.3.2.jar
+file.reference.jbig2-imageio-3.0.2.jar=release\\modules\\ext\\jbig2-imageio-3.0.2.jar
+file.reference.jcl-over-slf4j-1.7.25.jar=release\\modules\\ext\\jcl-over-slf4j-1.7.25.jar
file.reference.jdom-2.0.5-contrib.jar=release/modules/ext/jdom-2.0.5-contrib.jar
file.reference.jdom-2.0.5.jar=release/modules/ext/jdom-2.0.5.jar
+file.reference.jdom2-2.0.6.jar=release\\modules\\ext\\jdom2-2.0.6.jar
+file.reference.jempbox-1.8.16.jar=release\\modules\\ext\\jempbox-1.8.16.jar
file.reference.jericho-html-3.3.jar=release/modules/ext/jericho-html-3.3.jar
file.reference.jgraphx-v3.8.0.jar=release/modules/ext/jgraphx-v3.8.0.jar
-file.reference.jhighlight-1.0.2.jar=release/modules/ext/jhighlight-1.0.2.jar
-file.reference.jmatio-1.2.jar=release/modules/ext/jmatio-1.2.jar
-file.reference.json-1.8.jar=release/modules/ext/json-1.8.jar
-file.reference.json-simple-1.1.1.jar=release/modules/ext/json-simple-1.1.1.jar
-file.reference.jsoup-1.10.3.jar=release/modules/ext/jsoup-1.10.3.jar
-file.reference.jul-to-slf4j-1.7.24.jar=release/modules/ext/jul-to-slf4j-1.7.24.jar
-file.reference.juniversalchardet-1.0.3.jar=release/modules/ext/juniversalchardet-1.0.3.jar
-file.reference.junrar-0.7.jar=release/modules/ext/junrar-0.7.jar
+file.reference.jhighlight-1.0.3.jar=release\\modules\\ext\\jhighlight-1.0.3.jar
+file.reference.jmatio-1.5.jar=release\\modules\\ext\\jmatio-1.5.jar
+file.reference.jna-5.1.0.jar=release\\modules\\ext\\jna-5.1.0.jar
+file.reference.json-simple-1.1.1.jar=release\\modules\\ext\\json-simple-1.1.1.jar
+file.reference.jsoup-1.11.3.jar=release\\modules\\ext\\jsoup-1.11.3.jar
+file.reference.jul-to-slf4j-1.7.25.jar=release\\modules\\ext\\jul-to-slf4j-1.7.25.jar
+file.reference.juniversalchardet-1.0.3.jar=release\\modules\\ext\\juniversalchardet-1.0.3.jar
+file.reference.junrar-2.0.0.jar=release\\modules\\ext\\junrar-2.0.0.jar
file.reference.jython-standalone-2.7.0.jar=release/modules/ext/jython-standalone-2.7.0.jar
file.reference.mchange-commons-java-0.2.9.jar=release/modules/ext/mchange-commons-java-0.2.9.jar
-file.reference.metadata-extractor-2.10.1.jar=release/modules/ext/metadata-extractor-2.10.1.jar
-file.reference.netcdf4-4.5.5.jar=release/modules/ext/netcdf4-4.5.5.jar
-file.reference.opennlp-tools-1.8.3.jar=release/modules/ext/opennlp-tools-1.8.3.jar
-file.reference.poi-3.17.jar=release/modules/ext/poi-3.17.jar
-file.reference.poi-ooxml-3.17.jar=release/modules/ext/poi-ooxml-3.17.jar
-file.reference.poi-scratchpad-3.17.jar=release/modules/ext/poi-scratchpad-3.17.jar
+file.reference.metadata-extractor-2.11.0.jar=release\\modules\\ext\\metadata-extractor-2.11.0.jar
+file.reference.netcdf4-4.5.5.jar=release\\modules\\ext\\netcdf4-4.5.5.jar
+file.reference.openjson-1.0.10.jar=release\\modules\\ext\\openjson-1.0.10.jar
+file.reference.opennlp-tools-1.9.0.jar=release\\modules\\ext\\opennlp-tools-1.9.0.jar
+file.reference.parso-2.0.10.jar=release\\modules\\ext\\parso-2.0.10.jar
+file.reference.pdfbox-2.0.13.jar=release\\modules\\ext\\pdfbox-2.0.13.jar
+file.reference.pdfbox-tools-2.0.13.jar=release\\modules\\ext\\pdfbox-tools-2.0.13.jar
file.reference.postgresql-9.4.1211.jre7.jar=release/modules/ext/postgresql-9.4.1211.jre7.jar
file.reference.Rejistry-1.0-SNAPSHOT.jar=release/modules/ext/Rejistry-1.0-SNAPSHOT.jar
-file.reference.rome-1.5.1.jar=release/modules/ext/rome-1.5.1.jar
+file.reference.rome-1.12.0.jar=release\\modules\\ext\\rome-1.12.0.jar
+file.reference.sentiment-analysis-parser-0.1.jar=release\\modules\\ext\\sentiment-analysis-parser-0.1.jar
file.reference.sevenzipjbinding-AllPlatforms.jar=release/modules/ext/sevenzipjbinding-AllPlatforms.jar
file.reference.sevenzipjbinding.jar=release/modules/ext/sevenzipjbinding.jar
-file.reference.sis-metadata-0.6.jar=release/modules/ext/sis-metadata-0.6.jar
-file.reference.sis-netcdf-0.6.jar=release/modules/ext/sis-netcdf-0.6.jar
-file.reference.sis-utility-0.6.jar=release/modules/ext/sis-utility-0.6.jar
-file.reference.slf4j-api-1.7.24.jar=release/modules/ext/slf4j-api-1.7.24.jar
+file.reference.sis-metadata-0.8.jar=release\\modules\\ext\\sis-metadata-0.8.jar
+file.reference.sis-netcdf-0.8.jar=release\\modules\\ext\\sis-netcdf-0.8.jar
+file.reference.sis-utility-0.8.jar=release\\modules\\ext\\sis-utility-0.8.jar
+file.reference.slf4j-api-1.7.25.jar=release\\modules\\ext\\slf4j-api-1.7.25.jar
file.reference.sqlite-jdbc-3.25.2.jar=release/modules/ext/sqlite-jdbc-3.25.2.jar
file.reference.StixLib.jar=release/modules/ext/StixLib.jar
-file.reference.jempbox-1.8.13.jar=release/modules/ext/jempbox-1.8.13.jar
file.reference.javax.ws.rs-api-2.0.1.jar=release/modules/ext/javax.ws.rs-api-2.0.1.jar
file.reference.cxf-core-3.0.16.jar=release/modules/ext/cxf-core-3.0.16.jar
file.reference.cxf-rt-frontend-jaxrs-3.0.16.jar=release/modules/ext/cxf-rt-frontend-jaxrs-3.0.16.jar
-file.reference.cxf-rt-rs-client-3.0.16.jar=release/modules/ext/cxf-rt-rs-client-3.0.16.jar
file.reference.cxf-rt-transports-http-3.0.16.jar=release/modules/ext/cxf-rt-transports-http-3.0.16.jar
-file.reference.fontbox-2.0.8.jar=release/modules/ext/fontbox-2.0.8.jar
-file.reference.pdfbox-2.0.8.jar=release/modules/ext/pdfbox-2.0.8.jar
-file.reference.pdfbox-tools-2.0.8.jar=release/modules/ext/pdfbox-tools-2.0.8.jar
file.reference.sleuthkit-postgresql-4.6.6.jar=release/modules/ext/sleuthkit-postgresql-4.6.6.jar
-file.reference.tagsoup-1.2.1.jar=release/modules/ext/tagsoup-1.2.1.jar
-file.reference.tika-core-1.17.jar=release/modules/ext/tika-core-1.17.jar
-file.reference.tika-parsers-1.17.jar=release/modules/ext/tika-parsers-1.17.jar
file.reference.curator-client-2.8.0.jar=release/modules/ext/curator-client-2.8.0.jar
file.reference.curator-framework-2.8.0.jar=release/modules/ext/curator-framework-2.8.0.jar
file.reference.curator-recipes-2.8.0.jar=release/modules/ext/curator-recipes-2.8.0.jar
-file.reference.vorbis-java-core-0.8.jar=release/modules/ext/vorbis-java-core-0.8.jar
-file.reference.vorbis-java-tika-0.8.jar=release/modules/ext/vorbis-java-tika-0.8.jar
+file.reference.tagsoup-1.2.1.jar=release\\modules\\ext\\tagsoup-1.2.1.jar
+file.reference.tika-core-1.20.jar=release\\modules\\ext\\tika-core-1.20.jar
+file.reference.tika-parsers-1.20.jar=release\\modules\\ext\\tika-parsers-1.20.jar
+file.reference.uimafit-core-2.4.0.jar=release\\modules\\ext\\uimafit-core-2.4.0.jar
+file.reference.uimaj-core-3.0.1.jar=release\\modules\\ext\\uimaj-core-3.0.1.jar
+file.reference.vorbis-java-core-0.8.jar=release\\modules\\ext\\vorbis-java-core-0.8.jar
+file.reference.vorbis-java-tika-0.8.jar=release\\modules\\ext\\vorbis-java-tika-0.8.jar
+file.reference.xmlbeans-3.0.2.jar=release\\modules\\ext\\xmlbeans-3.0.2.jar
file.reference.xmpcore-5.1.3.jar=release/modules/ext/xmpcore-5.1.3.jar
-file.reference.xz-1.6.jar=release/modules/ext/xz-1.6.jar
+file.reference.xz-1.8.jar=release\\modules\\ext\\xz-1.8.jar
file.reference.zookeeper-3.4.6.jar=release/modules/ext/zookeeper-3.4.6.jar
file.reference.SparseBitSet-1.1.jar=release/modules/ext/SparseBitSet-1.1.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 e91c3e7ff9..1ee0f19822 100644
--- a/Core/nbproject/project.xml
+++ b/Core/nbproject/project.xml
@@ -346,12 +346,16 @@
org.sleuthkit.datamodel
- ext/apache-mime4j-dom-0.8.1.jar
- release/modules/ext/apache-mime4j-dom-0.8.1.jar
+ ext/commons-lang3-3.8.1.jar
+ release\modules\ext\commons-lang3-3.8.1.jar
+
+
+ ext/jempbox-1.8.16.jar
+ release\modules\ext\jempbox-1.8.16.jar
ext/jackcess-2.2.0.jar
- release/modules/ext/jackcess-2.2.0.jar
+ release\modules\ext\jackcess-2.2.0.jar
ext/jericho-html-3.3.jar
@@ -359,59 +363,83 @@
ext/cdm-4.5.5.jar
- release/modules/ext/cdm-4.5.5.jar
+ release\modules\ext\cdm-4.5.5.jar
ext/httpservices-4.5.5.jar
- release/modules/ext/httpservices-4.5.5.jar
+ release\modules\ext\httpservices-4.5.5.jar
+
+
+ ext/xz-1.8.jar
+ release\modules\ext\xz-1.8.jar
ext/commons-validator-1.6.jar
release/modules/ext/commons-validator-1.6.jar
- ext/commons-compress-1.14.jar
- release/modules/ext/commons-compress-1.14.jar
+ ext/sis-utility-0.8.jar
+ release\modules\ext\sis-utility-0.8.jar
- ext/geoapi-3.0.0.jar
- release/modules/ext/geoapi-3.0.0.jar
+ ext/jna-5.1.0.jar
+ release\modules\ext\jna-5.1.0.jar
ext/boilerpipe-1.1.0.jar
- release/modules/ext/boilerpipe-1.1.0.jar
+ release\modules\ext\boilerpipe-1.1.0.jar
+
+
+ ext/jbig2-imageio-3.0.2.jar
+ release\modules\ext\jbig2-imageio-3.0.2.jar
+
+
+ ext/jsoup-1.11.3.jar
+ release\modules\ext\jsoup-1.11.3.jar
ext/sevenzipjbinding.jar
release/modules/ext/sevenzipjbinding.jar
- ext/bcmail-jdk15on-1.54.jar
- release/modules/ext/bcmail-jdk15on-1.54.jar
+ ext/apache-mime4j-dom-0.8.2.jar
+ release\modules\ext\apache-mime4j-dom-0.8.2.jar
ext/mchange-commons-java-0.2.9.jar
release/modules/ext/mchange-commons-java-0.2.9.jar
+
+ ext/pdfbox-2.0.13.jar
+ release\modules\ext\pdfbox-2.0.13.jar
+
+
+ ext/xmlbeans-3.0.2.jar
+ release\modules\ext\xmlbeans-3.0.2.jar
+
+
+ ext/jackson-databind-2.9.7.jar
+ release\modules\ext\jackson-databind-2.9.7.jar
+
+
+ ext/jai-imageio-core-1.4.0.jar
+ release\modules\ext\jai-imageio-core-1.4.0.jar
+
+
+ ext/jcl-over-slf4j-1.7.25.jar
+ release\modules\ext\jcl-over-slf4j-1.7.25.jar
+
ext/curator-recipes-2.8.0.jar
release/modules/ext/curator-recipes-2.8.0.jar
- ext/metadata-extractor-2.10.1.jar
- release/modules/ext/metadata-extractor-2.10.1.jar
-
-
- ext/apache-mime4j-core-0.8.1.jar
- release/modules/ext/apache-mime4j-core-0.8.1.jar
+ ext/tika-core-1.20.jar
+ release\modules\ext\tika-core-1.20.jar
ext/tagsoup-1.2.1.jar
- release/modules/ext/tagsoup-1.2.1.jar
-
-
- ext/tika-core-1.17.jar
- release/modules/ext/tika-core-1.17.jar
+ release\modules\ext\tagsoup-1.2.1.jar
ext/StixLib.jar
@@ -419,52 +447,60 @@
ext/jackson-core-2.9.7.jar
- release/modules/ext/jackson-core-2.9.7.jar
+ release\modules\ext\jackson-core-2.9.7.jar
- ext/pdfbox-tools-2.0.8.jar
- release/modules/ext/pdfbox-tools-2.0.8.jar
+ ext/sis-metadata-0.8.jar
+ release\modules\ext\sis-metadata-0.8.jar
- ext/asm-5.0.4.jar
- release/modules/ext/asm-5.0.4.jar
+ ext/bcprov-jdk15on-1.60.jar
+ release\modules\ext\bcprov-jdk15on-1.60.jar
- ext/jcl-over-slf4j-1.7.24.jar
- release/modules/ext/jcl-over-slf4j-1.7.24.jar
-
-
- ext/tika-parsers-1.17.jar
- release/modules/ext/tika-parsers-1.17.jar
+ ext/parso-2.0.10.jar
+ release\modules\ext\parso-2.0.10.jar
ext/json-simple-1.1.1.jar
- release/modules/ext/json-simple-1.1.1.jar
+ release\modules\ext\json-simple-1.1.1.jar
- ext/sis-utility-0.6.jar
- release/modules/ext/sis-utility-0.6.jar
+ ext/metadata-extractor-2.11.0.jar
+ release\modules\ext\metadata-extractor-2.11.0.jar
- ext/jhighlight-1.0.2.jar
- release/modules/ext/jhighlight-1.0.2.jar
+ ext/commons-codec-1.11.jar
+ release\modules\ext\commons-codec-1.11.jar
+
+
+ ext/apache-mime4j-core-0.8.2.jar
+ release\modules\ext\apache-mime4j-core-0.8.2.jar
+
+
+ ext/jmatio-1.5.jar
+ release\modules\ext\jmatio-1.5.jar
ext/sleuthkit-postgresql-4.6.6.jar
release/modules/ext/sleuthkit-postgresql-4.6.6.jar
- ext/jempbox-1.8.13.jar
- release/modules/ext/jempbox-1.8.13.jar
+ ext/tika-parsers-1.20.jar
+ release\modules\ext\tika-parsers-1.20.jar
- ext/cxf-rt-rs-client-3.0.16.jar
- release/modules/ext/cxf-rt-rs-client-3.0.16.jar
+ ext/asm-7.0.jar
+ release\modules\ext\asm-7.0.jar
ext/commons-pool2-2.4.2.jar
release/modules/ext/commons-pool2-2.4.2.jar
+
+ ext/commons-io-2.6.jar
+ release\modules\ext\commons-io-2.6.jar
+
ext/jdom-2.0.5-contrib.jar
release/modules/ext/jdom-2.0.5-contrib.jar
@@ -474,8 +510,12 @@
release/modules/ext/SparseBitSet-1.1.jar
- ext/pdfbox-2.0.8.jar
- release/modules/ext/pdfbox-2.0.8.jar
+ ext/openjson-1.0.10.jar
+ release\modules\ext\openjson-1.0.10.jar
+
+
+ ext/isoparser-1.1.22.jar
+ release\modules\ext\isoparser-1.1.22.jar
ext/c3p0-0.9.5.jar
@@ -489,73 +529,61 @@
ext/zookeeper-3.4.6.jar
release/modules/ext/zookeeper-3.4.6.jar
+
+ ext/javax.activation-1.2.0.jar
+ release\modules\ext\javax.activation-1.2.0.jar
+
+
+ ext/commons-csv-1.6.jar
+ release\modules\ext\commons-csv-1.6.jar
+
ext/jdom-2.0.5.jar
release/modules/ext/jdom-2.0.5.jar
- ext/cxf-rt-transports-http-3.0.16.jar
- release/modules/ext/cxf-rt-transports-http-3.0.16.jar
+ ext/rome-1.12.0.jar
+ release\modules\ext\rome-1.12.0.jar
- ext/sis-metadata-0.6.jar
- release/modules/ext/sis-metadata-0.6.jar
+ ext/jackson-annotations-2.9.7.jar
+ release\modules\ext\jackson-annotations-2.9.7.jar
- ext/isoparser-1.1.18.jar
- release/modules/ext/isoparser-1.1.18.jar
+ ext/javax.annotation-api-1.3.2.jar
+ release\modules\ext\javax.annotation-api-1.3.2.jar
ext/vorbis-java-core-0.8.jar
- release/modules/ext/vorbis-java-core-0.8.jar
-
-
- ext/commons-codec-1.6.jar
- release/modules/ext/commons-codec-1.6.jar
+ release\modules\ext\vorbis-java-core-0.8.jar
ext/netcdf4-4.5.5.jar
- release/modules/ext/netcdf4-4.5.5.jar
-
-
- ext/slf4j-api-1.7.24.jar
- release/modules/ext/slf4j-api-1.7.24.jar
+ release\modules\ext\netcdf4-4.5.5.jar
ext/java-libpst-0.8.1.jar
- release/modules/ext/java-libpst-0.8.1.jar
+ release\modules\ext\java-libpst-0.8.1.jar
- ext/jul-to-slf4j-1.7.24.jar
- release/modules/ext/jul-to-slf4j-1.7.24.jar
+ ext/opennlp-tools-1.9.0.jar
+ release\modules\ext\opennlp-tools-1.9.0.jar
- ext/poi-3.17.jar
- release/modules/ext/poi-3.17.jar
-
-
- ext/poi-scratchpad-3.17.jar
- release/modules/ext/poi-scratchpad-3.17.jar
-
-
- ext/sis-netcdf-0.6.jar
- release/modules/ext/sis-netcdf-0.6.jar
-
-
- ext/commons-io-2.5.jar
- release/modules/ext/commons-io-2.5.jar
+ ext/sis-netcdf-0.8.jar
+ release\modules\ext\sis-netcdf-0.8.jar
ext/curator-framework-2.8.0.jar
release/modules/ext/curator-framework-2.8.0.jar
- ext/bcprov-jdk15on-1.54.jar
- release/modules/ext/bcprov-jdk15on-1.54.jar
+ ext/sentiment-analysis-parser-0.1.jar
+ release\modules\ext\sentiment-analysis-parser-0.1.jar
- ext/fontbox-2.0.8.jar
- release/modules/ext/fontbox-2.0.8.jar
+ ext/commons-collections4-4.2.jar
+ release\modules\ext\commons-collections4-4.2.jar
ext/commons-dbcp2-2.1.1.jar
@@ -567,39 +595,59 @@
ext/juniversalchardet-1.0.3.jar
- release/modules/ext/juniversalchardet-1.0.3.jar
+ release\modules\ext\juniversalchardet-1.0.3.jar
ext/jython-standalone-2.7.0.jar
release/modules/ext/jython-standalone-2.7.0.jar
+
+ ext/uimafit-core-2.4.0.jar
+ release\modules\ext\uimafit-core-2.4.0.jar
+
ext/jackcess-encrypt-2.1.4.jar
- release/modules/ext/jackcess-encrypt-2.1.4.jar
+ release\modules\ext\jackcess-encrypt-2.1.4.jar
- ext/cxf-core-3.0.16.jar
- release/modules/ext/cxf-core-3.0.16.jar
+ ext/jhighlight-1.0.3.jar
+ release\modules\ext\jhighlight-1.0.3.jar
- ext/javax.ws.rs-api-2.0.1.jar
- release/modules/ext/javax.ws.rs-api-2.0.1.jar
+ ext/junrar-2.0.0.jar
+ release\modules\ext\junrar-2.0.0.jar
- ext/opennlp-tools-1.8.3.jar
- release/modules/ext/opennlp-tools-1.8.3.jar
-
-
- ext/junrar-0.7.jar
- release/modules/ext/junrar-0.7.jar
+ ext/jul-to-slf4j-1.7.25.jar
+ release\modules\ext\jul-to-slf4j-1.7.25.jar
ext/postgresql-9.4.1211.jre7.jar
release/modules/ext/postgresql-9.4.1211.jre7.jar
- ext/poi-ooxml-3.17.jar
- release/modules/ext/poi-ooxml-3.17.jar
+ ext/slf4j-api-1.7.25.jar
+ release\modules\ext\slf4j-api-1.7.25.jar
+
+
+ ext/geoapi-3.0.1.jar
+ release\modules\ext\geoapi-3.0.1.jar
+
+
+ ext/httpmime-4.5.6.jar
+ release\modules\ext\httpmime-4.5.6.jar
+
+
+ ext/jdom2-2.0.6.jar
+ release\modules\ext\jdom2-2.0.6.jar
+
+
+ ext/httpclient-4.5.6.jar
+ release\modules\ext\httpclient-4.5.6.jar
+
+
+ ext/uimaj-core-3.0.1.jar
+ release\modules\ext\uimaj-core-3.0.1.jar
ext/curator-client-2.8.0.jar
@@ -610,48 +658,48 @@
release/modules/ext/sqlite-jdbc-3.25.2.jar
- ext/cxf-rt-frontend-jaxrs-3.0.16.jar
- release/modules/ext/cxf-rt-frontend-jaxrs-3.0.16.jar
+ ext/cxf-rt-rs-client-3.3.0.jar
+ release\modules\ext\cxf-rt-rs-client-3.3.0.jar
+
+
+ ext/pdfbox-tools-2.0.13.jar
+ release\modules\ext\pdfbox-tools-2.0.13.jar
ext/grib-4.5.5.jar
- release/modules/ext/grib-4.5.5.jar
+ release\modules\ext\grib-4.5.5.jar
+
+
+ ext/fontbox-2.0.13.jar
+ release\modules\ext\fontbox-2.0.13.jar
ext/activemq-all-5.11.1.jar
release/modules/ext/activemq-all-5.11.1.jar
- ext/xz-1.6.jar
- release/modules/ext/xz-1.6.jar
+ ext/dec-0.1.2.jar
+ release\modules\ext\dec-0.1.2.jar
ext/Rejistry-1.0-SNAPSHOT.jar
release/modules/ext/Rejistry-1.0-SNAPSHOT.jar
- ext/rome-1.5.1.jar
- release/modules/ext/rome-1.5.1.jar
+ ext/dd-plist-1.20.jar
+ release/modules/ext/dd-plist-1.20.jar
ext/sevenzipjbinding-AllPlatforms.jar
release/modules/ext/sevenzipjbinding-AllPlatforms.jar
- ext/jmatio-1.2.jar
- release/modules/ext/jmatio-1.2.jar
-
-
- ext/jsoup-1.10.3.jar
- release/modules/ext/jsoup-1.10.3.jar
+ ext/bcmail-jdk15on-1.60.jar
+ release\modules\ext\bcmail-jdk15on-1.60.jar
ext/vorbis-java-tika-0.8.jar
- release/modules/ext/vorbis-java-tika-0.8.jar
-
-
- ext/json-1.8.jar
- release/modules/ext/json-1.8.jar
+ release\modules\ext\vorbis-java-tika-0.8.jar
diff --git a/Core/src/org/sleuthkit/autopsy/communications/AccountsBrowser.java b/Core/src/org/sleuthkit/autopsy/communications/AccountsBrowser.java
index 006fbd846f..6abd4a70d0 100644
--- a/Core/src/org/sleuthkit/autopsy/communications/AccountsBrowser.java
+++ b/Core/src/org/sleuthkit/autopsy/communications/AccountsBrowser.java
@@ -120,7 +120,7 @@ public final class AccountsBrowser extends JPanel implements ExplorerManager.Pro
}
@Subscribe
- public void handleFilterEvent(CVTEvents.FilterChangeEvent filterChangeEvent) {
+ void handleFilterEvent(CVTEvents.FilterChangeEvent filterChangeEvent) {
try {
final CommunicationsManager commsManager = Case.getCurrentCaseThrows().getSleuthkitCase().getCommunicationsManager();
accountsTableEM.setRootContext(new AbstractNode(Children.create(new AccountDeviceInstanceNodeFactory(commsManager, filterChangeEvent.getNewFilter()), true)));
@@ -130,6 +130,19 @@ public final class AccountsBrowser extends JPanel implements ExplorerManager.Pro
//Case is closed, do nothig.
}
}
+
+ @Subscribe
+ void historyChange(CVTEvents.StateChangeEvent event) {
+ try {
+ final CommunicationsManager commsManager = Case.getCurrentCaseThrows().getSleuthkitCase().getCommunicationsManager();
+ accountsTableEM.setRootContext(new AbstractNode(Children.create(new AccountDeviceInstanceNodeFactory(commsManager, event.getCommunicationsState().getCommunicationsFilter()), true)));
+ } catch (TskCoreException ex) {
+ logger.log(Level.SEVERE, "There was an error getting the CommunicationsManager for the current case.", ex);
+ } catch (NoCurrentCaseException ex) { //NOPMD empty catch clause
+ //Case is closed, do nothig.
+ }
+
+ }
/**
* This method is called from within the constructor to initialize the form.
diff --git a/Core/src/org/sleuthkit/autopsy/communications/Bundle.properties b/Core/src/org/sleuthkit/autopsy/communications/Bundle.properties
index 6665c2e958..f00a02cf9d 100644
--- a/Core/src/org/sleuthkit/autopsy/communications/Bundle.properties
+++ b/Core/src/org/sleuthkit/autopsy/communications/Bundle.properties
@@ -22,7 +22,6 @@ CVTTopComponent.browseVisualizeTabPane.AccessibleContext.accessibleName=Visualiz
CVTTopComponent.vizPanel.TabConstraints.tabTitle_1=Visualize
VisualizationPanel.fitGraphButton.text=
VisualizationPanel.jTextArea1.text=Right-click an account in the Browse Accounts table, and select 'Visualize' to begin.
-VisualizationPanel.jLabel1.text=Layouts:
VisualizationPanel.zoomLabel.text=100%
VisualizationPanel.jLabel2.text=Zoom:
VisualizationPanel.fitZoomButton.toolTipText=fit visualization
@@ -33,9 +32,21 @@ VisualizationPanel.zoomInButton.toolTipText=Zoom in
VisualizationPanel.zoomInButton.text=
VisualizationPanel.zoomOutButton.toolTipText=Zoom out
VisualizationPanel.zoomOutButton.text=
+<<<<<<< HEAD
+VisualizationPanel.fastOrganicLayoutButton.text=Redraw
+VisualizationPanel.clearVizButton.text_1=Clear
+VisualizationPanel.backButton.text_1=
+VisualizationPanel.forwardButton.text=
+=======
VisualizationPanel.circleLayoutButton.text=Circle
VisualizationPanel.organicLayoutButton.text=Organic
-VisualizationPanel.fastOrganicLayoutButton.text=Fast Organic
+VisualizationPanel.fastOrganicLayoutButton.text=
VisualizationPanel.hierarchyLayoutButton.text=Hierarchical
-VisualizationPanel.clearVizButton.text_1=Clear Viz.
+VisualizationPanel.clearVizButton.text_1=
VisualizationPanel.snapshotButton.text_1=Snapshot Report
+>>>>>>> develop
+VisualizationPanel.clearVizButton.actionCommand=
+VisualizationPanel.backButton.toolTipText=Click to go back
+VisualizationPanel.forwardButton.toolTipText=Click to go forward
+VisualizationPanel.fastOrganicLayoutButton.toolTipText=Click to redraw the chart
+VisualizationPanel.clearVizButton.toolTipText=Click to clear the chart
diff --git a/Core/src/org/sleuthkit/autopsy/communications/Bundle.properties-MERGED b/Core/src/org/sleuthkit/autopsy/communications/Bundle.properties-MERGED
index e4daded09b..c9f38865a8 100755
--- a/Core/src/org/sleuthkit/autopsy/communications/Bundle.properties-MERGED
+++ b/Core/src/org/sleuthkit/autopsy/communications/Bundle.properties-MERGED
@@ -58,7 +58,6 @@ CVTTopComponent.browseVisualizeTabPane.AccessibleContext.accessibleName=Visualiz
CVTTopComponent.vizPanel.TabConstraints.tabTitle_1=Visualize
VisualizationPanel.fitGraphButton.text=
VisualizationPanel.jTextArea1.text=Right-click an account in the Browse Accounts table, and select 'Visualize' to begin.
-VisualizationPanel.jLabel1.text=Layouts:
# {0} - layout name
VisualizationPanel.layoutFail.text={0} layout failed. Try a different layout.
# {0} - layout name
@@ -77,12 +76,24 @@ VisualizationPanel.zoomInButton.toolTipText=Zoom in
VisualizationPanel.zoomInButton.text=
VisualizationPanel.zoomOutButton.toolTipText=Zoom out
VisualizationPanel.zoomOutButton.text=
+<<<<<<< HEAD
+VisualizationPanel.fastOrganicLayoutButton.text=Redraw
+VisualizationPanel.clearVizButton.text_1=Clear
+VisualizationPanel.backButton.text_1=
+VisualizationPanel.forwardButton.text=
+=======
VisualizationPanel.circleLayoutButton.text=Circle
VisualizationPanel.organicLayoutButton.text=Organic
-VisualizationPanel.fastOrganicLayoutButton.text=Fast Organic
+VisualizationPanel.fastOrganicLayoutButton.text=
VisualizationPanel.hierarchyLayoutButton.text=Hierarchical
-VisualizationPanel.clearVizButton.text_1=Clear Viz.
+VisualizationPanel.clearVizButton.text_1=
VisualizationPanel.snapshotButton.text_1=Snapshot Report
+>>>>>>> develop
+VisualizationPanel.clearVizButton.actionCommand=
+VisualizationPanel.backButton.toolTipText=Click to go back
+VisualizationPanel.forwardButton.toolTipText=Click to go forward
+VisualizationPanel.fastOrganicLayoutButton.toolTipText=Click to redraw the chart
+VisualizationPanel.clearVizButton.toolTipText=Click to clear the chart
VisualizationPanel_action_dialogs_title=Communications
VisualizationPanel_action_name_text=Snapshot Report
VisualizationPanel_module_name=Communications
diff --git a/Core/src/org/sleuthkit/autopsy/communications/CVTEvents.java b/Core/src/org/sleuthkit/autopsy/communications/CVTEvents.java
index 6a6a60d3da..ee7224b673 100644
--- a/Core/src/org/sleuthkit/autopsy/communications/CVTEvents.java
+++ b/Core/src/org/sleuthkit/autopsy/communications/CVTEvents.java
@@ -21,7 +21,9 @@ package org.sleuthkit.autopsy.communications;
import com.google.common.collect.ImmutableSet;
import com.google.common.eventbus.EventBus;
import java.util.Collection;
+import org.sleuthkit.autopsy.communications.FiltersPanel.DateControlState;
import org.sleuthkit.datamodel.CommunicationsFilter;
+import org.sleuthkit.autopsy.communications.StateManager.CommunicationsState;
/**
* Provide the singleton EventBus.
@@ -37,20 +39,38 @@ final class CVTEvents {
private CVTEvents() {
}
+ /**
+ * Invoked when a change from the FiltersPanel occures.
+ */
static final class FilterChangeEvent {
private final CommunicationsFilter newFilter;
+ private final DateControlState startControlState;
+ private final DateControlState endControlState;
CommunicationsFilter getNewFilter() {
return newFilter;
}
+
+ DateControlState getStartControlState() {
+ return startControlState;
+ }
+
+ DateControlState getEndControlState() {
+ return endControlState;
+ }
- FilterChangeEvent(CommunicationsFilter newFilter) {
+ FilterChangeEvent(CommunicationsFilter newFilter, DateControlState startControlState, DateControlState endControlState) {
this.newFilter = newFilter;
+ this.startControlState = startControlState;
+ this.endControlState = endControlState;
}
}
+ /**
+ * Invoked when a change in the pinned accounts occures.
+ */
static final class PinAccountsEvent {
private final ImmutableSet accountDeviceInstances;
@@ -70,6 +90,9 @@ final class CVTEvents {
}
}
+ /**
+ * Invoked when a change in the unpinned accounts occures.
+ */
static final class UnpinAccountsEvent {
private final ImmutableSet accountDeviceInstances;
@@ -82,4 +105,34 @@ final class CVTEvents {
this.accountDeviceInstances = ImmutableSet.copyOf(accountDeviceInstances);
}
}
+
+ /**
+ * Invoked when there is a change in the state of the window.
+ */
+ static final class StateChangeEvent {
+ private final CommunicationsState newState;
+
+ StateChangeEvent(CommunicationsState newState) {
+ this.newState = newState;
+ }
+
+ public CommunicationsState getCommunicationsState(){
+ return newState;
+ }
+ }
+
+ /**
+ * Invoked when change in the link analysis graph scale occures.
+ */
+ static final class ScaleChangeEvent {
+ private final double scaleValue;
+
+ ScaleChangeEvent(double scaleValue) {
+ this.scaleValue = scaleValue;
+ }
+
+ public double getZoomValue(){
+ return scaleValue;
+ }
+ }
}
diff --git a/Core/src/org/sleuthkit/autopsy/communications/CVTTopComponent.java b/Core/src/org/sleuthkit/autopsy/communications/CVTTopComponent.java
index 1e1004de25..bc8047d473 100644
--- a/Core/src/org/sleuthkit/autopsy/communications/CVTTopComponent.java
+++ b/Core/src/org/sleuthkit/autopsy/communications/CVTTopComponent.java
@@ -65,8 +65,8 @@ public final class CVTTopComponent extends TopComponent {
proxyLookup.setNewLookups(selectedComponent.getLookup());
filtersPane.setDeviceAccountTypeEnabled(browseVisualizeTabPane.getSelectedIndex() != 0);
});
-
-
+
+
/*
* Connect the filtersPane to the accountsBrowser and visualizaionPanel
* via an Eventbus
@@ -74,6 +74,7 @@ public final class CVTTopComponent extends TopComponent {
CVTEvents.getCVTEventBus().register(this);
CVTEvents.getCVTEventBus().register(vizPanel);
CVTEvents.getCVTEventBus().register(accountsBrowser);
+ CVTEvents.getCVTEventBus().register(filtersPane);
}
@Subscribe
diff --git a/Core/src/org/sleuthkit/autopsy/communications/FiltersPanel.java b/Core/src/org/sleuthkit/autopsy/communications/FiltersPanel.java
index 587bf47260..56c8be50a7 100644
--- a/Core/src/org/sleuthkit/autopsy/communications/FiltersPanel.java
+++ b/Core/src/org/sleuthkit/autopsy/communications/FiltersPanel.java
@@ -19,12 +19,15 @@
package org.sleuthkit.autopsy.communications;
import com.google.common.collect.ImmutableSet;
+import com.google.common.eventbus.Subscribe;
import java.awt.event.ItemListener;
import java.beans.PropertyChangeListener;
import java.time.LocalDate;
import java.time.ZoneId;
+import java.util.Collection;
import java.util.EnumSet;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.logging.Level;
@@ -260,6 +263,82 @@ final public class FiltersPanel extends JPanel {
logger.log(Level.SEVERE, "There was a error loading the datasources for the case.", tskCoreException);
}
}
+
+ /**
+ * Given a list of subFilters, set the states of the panel controls
+ * accordingly.
+ *
+ * @param subFilters A list of subFilters
+ */
+ public void setFilters(CommunicationsFilter commFilter) {
+ List subFilters = commFilter.getAndFilters();
+ subFilters.forEach(subFilter -> {
+ if( subFilter instanceof DeviceFilter ) {
+ setDeviceFilter((DeviceFilter)subFilter);
+ } else if( subFilter instanceof AccountTypeFilter) {
+ setAccountTypeFilter((AccountTypeFilter) subFilter);
+ }
+ });
+ }
+
+ /**
+ * Sets the state of the device filter checkboxes
+ *
+ * @param deviceFilter Selected devices
+ */
+ private void setDeviceFilter(DeviceFilter deviceFilter) {
+ Collection deviceIDs = deviceFilter.getDevices();
+ devicesMap.forEach((type, cb) -> {
+ cb.setSelected(deviceIDs.contains(type));
+ });
+ }
+
+ /**
+ * Set the state of the account type checkboxes to match the passed in filter
+ *
+ * @param typeFilter Account Types to be selected
+ */
+ private void setAccountTypeFilter(AccountTypeFilter typeFilter){
+
+ accountTypeMap.forEach((type, cb) -> {
+ cb.setSelected(typeFilter.getAccountTypes().contains(type));
+ });
+ }
+
+ /**
+ * Set up the startDatePicker and startCheckBox based on the passed in
+ * DateControlState.
+ *
+ * @param state new control state
+ */
+ private void setStartDateControlState(DateControlState state) {
+ startDatePicker.setDate(state.getDate());
+ startCheckBox.setSelected(state.isEnabled());
+ startDatePicker.setEnabled(state.isEnabled());
+ }
+
+ /**
+ * Set up the endDatePicker and endCheckBox based on the passed in
+ * DateControlState.
+ *
+ * @param state new control state
+ */
+ private void setEndDateControlState(DateControlState state) {
+ endDatePicker.setDate(state.getDate());
+ endCheckBox.setSelected(state.isEnabled());
+ endDatePicker.setEnabled(state.isEnabled());
+ }
+
+ @Subscribe
+ void filtersBack(CVTEvents.StateChangeEvent event) {
+ if(event.getCommunicationsState().getCommunicationsFilter() != null){
+ setFilters(event.getCommunicationsState().getCommunicationsFilter());
+ setStartDateControlState(event.getCommunicationsState().getStartControlState());
+ setEndDateControlState(event.getCommunicationsState().getEndControlState());
+ needsRefresh = false;
+ validateFilters();
+ }
+ }
/**
* This method is called from within the constructor to initialize the form.
@@ -503,12 +582,17 @@ final public class FiltersPanel extends JPanel {
* Post an event with the new filters.
*/
private void applyFilters() {
- CVTEvents.getCVTEventBus().post(new CVTEvents.FilterChangeEvent(getFilter()));
+ CVTEvents.getCVTEventBus().post(new CVTEvents.FilterChangeEvent(getFilter(), getStartControlState(), getEndControlState()));
needsRefresh = false;
validateFilters();
}
- private CommunicationsFilter getFilter() {
+ /**
+ * Get an instance of CommunicationsFilters base on the current panel state.
+ *
+ * @return an instance of CommunicationsFilter
+ */
+ protected CommunicationsFilter getFilter() {
CommunicationsFilter commsFilter = new CommunicationsFilter();
commsFilter.addAndFilter(getDeviceFilter());
commsFilter.addAndFilter(getAccountTypeFilter());
@@ -553,9 +637,17 @@ final public class FiltersPanel extends JPanel {
*/
private DateRangeFilter getDateRangeFilter() {
ZoneId zone = Utils.getUserPreferredZoneId();
- long start = startDatePicker.isEnabled() ? startDatePicker.getDate().atStartOfDay(zone).toEpochSecond() : 0;
- long end = endDatePicker.isEnabled() ? endDatePicker.getDate().atStartOfDay(zone).toEpochSecond() : 0;
- return new DateRangeFilter(start, end);
+
+ return new DateRangeFilter( startCheckBox.isSelected() ? startDatePicker.getDate().atStartOfDay(zone).toEpochSecond() : 0,
+ endCheckBox.isSelected() ? endDatePicker.getDate().atStartOfDay(zone).toEpochSecond() : 0);
+ }
+
+ private DateControlState getStartControlState() {
+ return new DateControlState (startDatePicker.getDate(), startCheckBox.isSelected());
+ }
+
+ private DateControlState getEndControlState() {
+ return new DateControlState (endDatePicker.getDate(), endCheckBox.isSelected());
}
/**
@@ -629,7 +721,47 @@ final public class FiltersPanel extends JPanel {
endDatePicker.setEnabled(endCheckBox.isSelected());
}//GEN-LAST:event_endCheckBoxStateChanged
-
+ /**
+ * A class to wrap the state of the date controls that consist of a date picker
+ * and a checkbox.
+ *
+ */
+ final class DateControlState {
+ private final LocalDate date;
+ private final boolean enabled;
+
+ /**
+ * Wraps the state of the date controls that consist of a date picker
+ * and checkbox
+ *
+ * @param date LocalDate value of the datepicker
+ * @param enabled State of the checkbox
+ */
+ protected DateControlState(LocalDate date, boolean enabled) {
+ this.date = date;
+ this.enabled = enabled;
+ }
+
+ /**
+ * Returns the given LocalDate from the datepicker
+ *
+ * @return Current state LocalDate
+ */
+ public LocalDate getDate(){
+ return date;
+ }
+
+ /**
+ * Returns the given state of the datepicker checkbox
+ *
+ * @return boolean, whether or not the datepicker was enabled
+ */
+ public boolean isEnabled() {
+ return enabled;
+ }
+
+ }
+
// Variables declaration - do not modify//GEN-BEGIN:variables
private final javax.swing.JPanel accountTypePane = new javax.swing.JPanel();
private final javax.swing.JLabel accountTypeRequiredLabel = new javax.swing.JLabel();
diff --git a/Core/src/org/sleuthkit/autopsy/communications/PinnedAccountModel.java b/Core/src/org/sleuthkit/autopsy/communications/PinnedAccountModel.java
index f7fb7d1232..c9fe899c3f 100644
--- a/Core/src/org/sleuthkit/autopsy/communications/PinnedAccountModel.java
+++ b/Core/src/org/sleuthkit/autopsy/communications/PinnedAccountModel.java
@@ -57,7 +57,7 @@ class PinnedAccountModel {
*
* @param accountDeviceInstances The accounts to unpin.
*/
- void unpinAccount(ImmutableSet accountDeviceInstances) {
+ void unpinAccount(Set accountDeviceInstances) {
pinnedAccountDevices.removeAll(accountDeviceInstances);
}
@@ -68,7 +68,7 @@ class PinnedAccountModel {
*
* @param accountDeviceInstances The accounts to pin.
*/
- void pinAccount(ImmutableSet accountDeviceInstances) {
+ void pinAccount(Set accountDeviceInstances) {
pinnedAccountDevices.addAll(accountDeviceInstances);
}
@@ -86,7 +86,7 @@ class PinnedAccountModel {
pinnedAccountDevices.clear();
}
- Iterable getPinnedAccounts() {
+ ImmutableSet getPinnedAccounts() {
return ImmutableSet.copyOf(pinnedAccountDevices);
}
diff --git a/Core/src/org/sleuthkit/autopsy/communications/StateManager.java b/Core/src/org/sleuthkit/autopsy/communications/StateManager.java
new file mode 100755
index 0000000000..c84a5beb79
--- /dev/null
+++ b/Core/src/org/sleuthkit/autopsy/communications/StateManager.java
@@ -0,0 +1,216 @@
+/*
+ * Autopsy Forensic Browser
+ *
+ * Copyright 2019 Basis Technology Corp.
+ * Contact: carrier sleuthkit org
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.sleuthkit.autopsy.communications;
+
+import com.google.common.eventbus.Subscribe;
+import java.util.HashSet;
+import java.util.Set;
+import org.sleuthkit.autopsy.communications.FiltersPanel.DateControlState;
+import org.sleuthkit.autopsy.coreutils.History;
+import org.sleuthkit.datamodel.CommunicationsFilter;
+
+/**
+ * Manages the state history for the Communications window. History is currently
+ * maintained for the CommunicationsFilter, the List of pinned accounts and the
+ * scale value of the graph.
+ */
+final class StateManager {
+
+ private final History historyManager = new History<>();
+ private CommunicationsFilter comFilter;
+ private final PinnedAccountModel pinModel;
+ private DateControlState currentStartState;
+ private DateControlState currentEndState;
+
+ /**
+ * Manages the state history for the Communications window.
+ *
+ * @param pinModel PinnedACcountModel
+ */
+ public StateManager(PinnedAccountModel pinModel){
+ this.pinModel = pinModel;
+ CVTEvents.getCVTEventBus().register(this);
+ }
+
+ @Subscribe
+ void pinAccount(CVTEvents.PinAccountsEvent pinEvent) {
+ if(pinEvent.isReplace()){
+ HashSet pinnedList = new HashSet<>();
+ pinnedList.addAll(pinEvent.getAccountDeviceInstances());
+ historyManager.advance(new CommunicationsState(comFilter, pinnedList, -1, currentStartState, currentEndState));
+ } else {
+ HashSet pinnedList = new HashSet<>();
+ pinnedList.addAll(pinEvent.getAccountDeviceInstances());
+ pinnedList.addAll(pinModel.getPinnedAccounts());
+
+ historyManager.advance(new CommunicationsState( comFilter, pinnedList, -1, currentStartState, currentEndState));
+ }
+ }
+
+ @Subscribe
+ void filterChange(CVTEvents.FilterChangeEvent filterEvent) {
+ comFilter = filterEvent.getNewFilter();
+ currentStartState = filterEvent.getStartControlState();
+ currentEndState = filterEvent.getEndControlState();
+ historyManager.advance(new CommunicationsState(comFilter, pinModel.getPinnedAccounts(), -1, currentStartState, currentEndState));
+ }
+
+ @Subscribe
+ void unpinAccounts(CVTEvents.UnpinAccountsEvent pinEvent) {
+
+ HashSet pinnedList = new HashSet<>();
+ pinnedList.addAll(pinModel.getPinnedAccounts());
+ pinnedList.removeAll(pinEvent.getAccountDeviceInstances());
+
+ historyManager.advance(new CommunicationsState(comFilter, pinnedList, -1, currentStartState, currentEndState));
+ }
+
+ @Subscribe
+ void zoomedGraph(CVTEvents.ScaleChangeEvent zoomEvent) {
+ historyManager.advance(new CommunicationsState(comFilter, pinModel.getPinnedAccounts(), zoomEvent.getZoomValue(), currentStartState, currentEndState));
+ }
+
+ /**
+ * Returns the next state object in the history.
+ *
+ * @return CommunicationsState or null if canRetreat is null
+ */
+ public CommunicationsState retreat(){
+ if(canRetreat()) {
+ return historyManager.retreat();
+ } else {
+ return null;
+ }
+ }
+
+ /**
+ * Returns the next state object in the forward history.
+ *
+ * @return CommunicationsState or null if canAdvance is null
+ */
+ public CommunicationsState advance() {
+ if(canAdvance()) {
+ return historyManager.advance();
+ } else {
+ return null;
+ }
+ }
+
+ /**
+ * Returns true if there is a history of states.
+ *
+ * @return boolean
+ */
+ public boolean canRetreat() {
+ return historyManager.canRetreat();
+ }
+
+ /**
+ * Returns true if there is history to advance too.
+ *
+ * @return
+ */
+ public boolean canAdvance(){
+ return historyManager.canAdvance();
+ }
+
+ /**
+ * Object to store one instance of the state of the Communications window.
+ */
+ final class CommunicationsState{
+ private final CommunicationsFilter communcationFilter;
+ private final Set pinnedList;
+ private final double zoomValue;
+ private final DateControlState startDateState;
+ private final DateControlState endDateState;
+
+ /**
+ * Stores all the properties of the current state of the Communications
+ * window.
+ *
+ * @param communcationFilter Instance of CommunicationsFilter
+ * @param pinnedList Set of AccountDeviceInstanceKey
+ * @param zoomValue Double value of the current graph scale
+ */
+ protected CommunicationsState(CommunicationsFilter communcationFilter,
+ Set pinnedList, double zoomValue,
+ DateControlState startDateState, DateControlState endDateState){
+ this.pinnedList = pinnedList;
+ this.communcationFilter = communcationFilter;
+ this.zoomValue = zoomValue;
+ this.startDateState = startDateState;
+ this.endDateState = endDateState;
+ }
+
+ /**
+ * Return whether or not this state contains a zoom change
+ *
+ * @return boolean
+ */
+ public boolean isZoomChange() {
+ return (zoomValue != -1);
+ }
+
+ /**
+ * Returns a list of the currently pinned accounts.
+ *
+ * @return Set of AccountDeviceInstanceKey
+ */
+ public Set getPinnedList(){
+ return pinnedList;
+ }
+
+ /**
+ * Return a new CommunicationsFilter object based on the list of
+ * SubFilters
+ *
+ * @return CommunicationsFilter
+ */
+ public CommunicationsFilter getCommunicationsFilter() {
+ return communcationFilter;
+ }
+
+ /**
+ * Return the value for the % zoom.
+ *
+ * @return double value % zoom or -1 if zoom did not change
+ */
+ public double getZoomValue() {
+ return zoomValue;
+ }
+
+ /**
+ * Returns the state for the start date picker.
+ *
+ * @return Start DateControlState
+ */
+ public DateControlState getStartControlState() {
+ return startDateState;
+ }
+
+ /**
+ * Returns the state for the end date picker.
+ *
+ * @return Etart DateControlState
+ */
+ public DateControlState getEndControlState() {
+ return endDateState;
+ }
+ }
+}
diff --git a/Core/src/org/sleuthkit/autopsy/communications/UnpinAccountsAction.java b/Core/src/org/sleuthkit/autopsy/communications/UnpinAccountsAction.java
index ba0bbc545b..58ace503d9 100644
--- a/Core/src/org/sleuthkit/autopsy/communications/UnpinAccountsAction.java
+++ b/Core/src/org/sleuthkit/autopsy/communications/UnpinAccountsAction.java
@@ -46,7 +46,7 @@ final class UnpinAccountsAction extends AbstractCVTAction {
public void actionPerformed(final ActionEvent event) {
CVTEvents.getCVTEventBus().post(new CVTEvents.UnpinAccountsEvent(getSelectedAccounts()));
}
-
+
@Override
String getActionDisplayName() {
return getSelectedAccounts().size() > 1 ? PLURAL_TEXT : SINGULAR_TEXT;
diff --git a/Core/src/org/sleuthkit/autopsy/communications/VisualizationPanel.form b/Core/src/org/sleuthkit/autopsy/communications/VisualizationPanel.form
index 4e0a73a6c7..f2e3052f47 100644
--- a/Core/src/org/sleuthkit/autopsy/communications/VisualizationPanel.form
+++ b/Core/src/org/sleuthkit/autopsy/communications/VisualizationPanel.form
@@ -11,7 +11,7 @@
-
+
@@ -49,9 +49,9 @@
-
+
-
+
@@ -93,32 +93,28 @@
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -133,12 +129,7 @@
-
-
-
-
-
@@ -147,8 +138,11 @@
+
+
+
@@ -156,58 +150,21 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -306,6 +263,12 @@
+
+
+
+
+
+
@@ -316,6 +279,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -334,6 +330,11 @@
+
+
+
+
+
diff --git a/Core/src/org/sleuthkit/autopsy/communications/VisualizationPanel.java b/Core/src/org/sleuthkit/autopsy/communications/VisualizationPanel.java
index f3d4f95bb2..a0f63348ee 100644
--- a/Core/src/org/sleuthkit/autopsy/communications/VisualizationPanel.java
+++ b/Core/src/org/sleuthkit/autopsy/communications/VisualizationPanel.java
@@ -41,7 +41,6 @@ import com.mxgraph.view.mxGraph;
import com.mxgraph.view.mxGraphView;
import java.awt.BorderLayout;
import java.awt.Color;
-import java.awt.Cursor;
import java.awt.Desktop;
import java.awt.Dimension;
import java.awt.Font;
@@ -163,6 +162,8 @@ final public class VisualizationPanel extends JPanel implements Lookup.Provider
private final Map layoutButtons = new HashMap<>();
private NamedGraphLayout currentLayout;
+ private final StateManager stateManager;
+
@NbBundle.Messages("VisalizationPanel.paintingError=Problem painting visualization.")
public VisualizationPanel() {
initComponents();
@@ -241,10 +242,6 @@ final public class VisualizationPanel extends JPanel implements Lookup.Provider
graph.getView().addListener(mxEvent.UNDO, undoListener);
FastOrganicLayoutImpl fastOrganicLayout = new FastOrganicLayoutImpl(graph);
- CircleLayoutImpl circleLayout = new CircleLayoutImpl(graph);
- OrganicLayoutImpl organicLayout = new OrganicLayoutImpl(graph);
- organicLayout.setMaxIterations(10);
- HierarchicalLayoutImpl hierarchyLayout = new HierarchicalLayoutImpl(graph);
//local method to configure layout buttons
BiConsumer configure = (layoutButton, layout) -> {
@@ -252,12 +249,13 @@ final public class VisualizationPanel extends JPanel implements Lookup.Provider
layoutButton.addActionListener(event -> applyLayout(layout));
};
//configure layout buttons.
- configure.accept(circleLayoutButton, circleLayout);
- configure.accept(organicLayoutButton, organicLayout);
configure.accept(fastOrganicLayoutButton, fastOrganicLayout);
- configure.accept(hierarchyLayoutButton, hierarchyLayout);
applyLayout(fastOrganicLayout);
+
+ stateManager = new StateManager(pinnedAccountModel);
+
+ setStateButtonsEnabled();
}
@Override
@@ -286,6 +284,8 @@ final public class VisualizationPanel extends JPanel implements Lookup.Provider
rebuildGraph();
// Updates the display
graph.getModel().endUpdate();
+
+ setStateButtonsEnabled();
}
@Subscribe
@@ -298,6 +298,8 @@ final public class VisualizationPanel extends JPanel implements Lookup.Provider
rebuildGraph();
// Updates the display
graph.getModel().endUpdate();
+
+ setStateButtonsEnabled();
}
@Subscribe
@@ -308,6 +310,8 @@ final public class VisualizationPanel extends JPanel implements Lookup.Provider
rebuildGraph();
// Updates the display
graph.getModel().endUpdate();
+
+ setStateButtonsEnabled();
}
@ThreadConfined(type = ThreadConfined.ThreadType.AWT)
@@ -349,9 +353,9 @@ final public class VisualizationPanel extends JPanel implements Lookup.Provider
try {
commsManager = Case.getCurrentCaseThrows().getSleuthkitCase().getCommunicationsManager();
} catch (TskCoreException ex) {
- logger.log(Level.SEVERE, "Error getting CommunicationsManager for the current case.", ex);
+ logger.log(Level.SEVERE, "Error getting CommunicationsManager for the current case.", ex); //NON-NLS
} catch (NoCurrentCaseException ex) {
- logger.log(Level.SEVERE, "Can't get CommunicationsManager when there is no case open.", ex);
+ logger.log(Level.SEVERE, "Can't get CommunicationsManager when there is no case open.", ex); //NON-NLS
}
Case.addEventTypeSubscriber(EnumSet.of(Case.Events.CURRENT_CASE), evt -> {
@@ -368,7 +372,7 @@ final public class VisualizationPanel extends JPanel implements Lookup.Provider
try {
commsManager = currentCase.getSleuthkitCase().getCommunicationsManager();
} catch (TskCoreException ex) {
- logger.log(Level.SEVERE, "Error getting CommunicationsManager for the current case.", ex);
+ logger.log(Level.SEVERE, "Error getting CommunicationsManager for the current case.", ex); //NON-NLS
}
}
});
@@ -388,12 +392,7 @@ final public class VisualizationPanel extends JPanel implements Lookup.Provider
placeHolderPanel = new JPanel();
jTextArea1 = new JTextArea();
toolbar = new JPanel();
- jLabel1 = new JLabel();
- hierarchyLayoutButton = new JButton();
fastOrganicLayoutButton = new JButton();
- organicLayoutButton = new JButton();
- circleLayoutButton = new JButton();
- jSeparator1 = new JToolBar.Separator();
zoomOutButton = new JButton();
zoomInButton = new JButton();
zoomActualButton = new JButton();
@@ -402,8 +401,11 @@ final public class VisualizationPanel extends JPanel implements Lookup.Provider
zoomLabel = new JLabel();
clearVizButton = new JButton();
jSeparator2 = new JToolBar.Separator();
+ backButton = new JButton();
+ forwardButton = new JButton();
snapshotButton = new JButton();
jSeparator3 = new JToolBar.Separator();
+ jSeparator4 = new JToolBar.Separator();
notificationsJFXPanel = new JFXPanel();
setLayout(new BorderLayout());
@@ -423,9 +425,9 @@ final public class VisualizationPanel extends JPanel implements Lookup.Provider
placeHolderPanel.setLayout(placeHolderPanelLayout);
placeHolderPanelLayout.setHorizontalGroup(placeHolderPanelLayout.createParallelGroup(GroupLayout.LEADING)
.add(placeHolderPanelLayout.createSequentialGroup()
- .addContainerGap(268, Short.MAX_VALUE)
+ .addContainerGap(250, Short.MAX_VALUE)
.add(jTextArea1, GroupLayout.PREFERRED_SIZE, 424, GroupLayout.PREFERRED_SIZE)
- .addContainerGap(445, Short.MAX_VALUE))
+ .addContainerGap(423, Short.MAX_VALUE))
);
placeHolderPanelLayout.setVerticalGroup(placeHolderPanelLayout.createParallelGroup(GroupLayout.LEADING)
.add(placeHolderPanelLayout.createSequentialGroup()
@@ -436,30 +438,12 @@ final public class VisualizationPanel extends JPanel implements Lookup.Provider
borderLayoutPanel.add(placeHolderPanel, BorderLayout.CENTER);
- jLabel1.setText(NbBundle.getMessage(VisualizationPanel.class, "VisualizationPanel.jLabel1.text")); // NOI18N
-
- hierarchyLayoutButton.setText(NbBundle.getMessage(VisualizationPanel.class, "VisualizationPanel.hierarchyLayoutButton.text")); // NOI18N
- hierarchyLayoutButton.setFocusable(false);
- hierarchyLayoutButton.setHorizontalTextPosition(SwingConstants.CENTER);
- hierarchyLayoutButton.setVerticalTextPosition(SwingConstants.BOTTOM);
-
+ fastOrganicLayoutButton.setIcon(new ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/communications/images/arrow-circle-double-135.png"))); // NOI18N
fastOrganicLayoutButton.setText(NbBundle.getMessage(VisualizationPanel.class, "VisualizationPanel.fastOrganicLayoutButton.text")); // NOI18N
+ fastOrganicLayoutButton.setToolTipText(NbBundle.getMessage(VisualizationPanel.class, "VisualizationPanel.fastOrganicLayoutButton.toolTipText")); // NOI18N
fastOrganicLayoutButton.setFocusable(false);
- fastOrganicLayoutButton.setHorizontalTextPosition(SwingConstants.CENTER);
fastOrganicLayoutButton.setVerticalTextPosition(SwingConstants.BOTTOM);
- organicLayoutButton.setText(NbBundle.getMessage(VisualizationPanel.class, "VisualizationPanel.organicLayoutButton.text")); // NOI18N
- organicLayoutButton.setFocusable(false);
- organicLayoutButton.setHorizontalTextPosition(SwingConstants.CENTER);
- organicLayoutButton.setVerticalTextPosition(SwingConstants.BOTTOM);
-
- circleLayoutButton.setText(NbBundle.getMessage(VisualizationPanel.class, "VisualizationPanel.circleLayoutButton.text")); // NOI18N
- circleLayoutButton.setFocusable(false);
- circleLayoutButton.setHorizontalTextPosition(SwingConstants.CENTER);
- circleLayoutButton.setVerticalTextPosition(SwingConstants.BOTTOM);
-
- jSeparator1.setOrientation(SwingConstants.VERTICAL);
-
zoomOutButton.setIcon(new ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/communications/images/magnifier-zoom-out-red.png"))); // NOI18N
zoomOutButton.setText(NbBundle.getMessage(VisualizationPanel.class, "VisualizationPanel.zoomOutButton.text")); // NOI18N
zoomOutButton.setToolTipText(NbBundle.getMessage(VisualizationPanel.class, "VisualizationPanel.zoomOutButton.toolTipText")); // NOI18N
@@ -514,6 +498,8 @@ final public class VisualizationPanel extends JPanel implements Lookup.Provider
clearVizButton.setIcon(new ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/communications/images/broom.png"))); // NOI18N
clearVizButton.setText(NbBundle.getMessage(VisualizationPanel.class, "VisualizationPanel.clearVizButton.text_1")); // NOI18N
+ clearVizButton.setToolTipText(NbBundle.getMessage(VisualizationPanel.class, "VisualizationPanel.clearVizButton.toolTipText")); // NOI18N
+ clearVizButton.setActionCommand(NbBundle.getMessage(VisualizationPanel.class, "VisualizationPanel.clearVizButton.actionCommand")); // NOI18N
clearVizButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
clearVizButtonActionPerformed(evt);
@@ -522,6 +508,25 @@ final public class VisualizationPanel extends JPanel implements Lookup.Provider
jSeparator2.setOrientation(SwingConstants.VERTICAL);
+ backButton.setIcon(new ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/images/resultset_previous.png"))); // NOI18N
+ backButton.setText(NbBundle.getMessage(VisualizationPanel.class, "VisualizationPanel.backButton.text_1")); // NOI18N
+ backButton.setToolTipText(NbBundle.getMessage(VisualizationPanel.class, "VisualizationPanel.backButton.toolTipText")); // NOI18N
+ backButton.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent evt) {
+ backButtonActionPerformed(evt);
+ }
+ });
+
+ forwardButton.setIcon(new ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/images/resultset_next.png"))); // NOI18N
+ forwardButton.setText(NbBundle.getMessage(VisualizationPanel.class, "VisualizationPanel.forwardButton.text")); // NOI18N
+ forwardButton.setToolTipText(NbBundle.getMessage(VisualizationPanel.class, "VisualizationPanel.forwardButton.toolTipText")); // NOI18N
+ forwardButton.setHorizontalTextPosition(SwingConstants.LEADING);
+ forwardButton.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent evt) {
+ forwardButtonActionPerformed(evt);
+ }
+ });
+
snapshotButton.setIcon(new ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/report/images/image.png"))); // NOI18N
snapshotButton.setText(NbBundle.getMessage(VisualizationPanel.class, "VisualizationPanel.snapshotButton.text_1")); // NOI18N
snapshotButton.addActionListener(new ActionListener() {
@@ -532,24 +537,22 @@ final public class VisualizationPanel extends JPanel implements Lookup.Provider
jSeparator3.setOrientation(SwingConstants.VERTICAL);
+ jSeparator4.setOrientation(SwingConstants.VERTICAL);
+
GroupLayout toolbarLayout = new GroupLayout(toolbar);
toolbar.setLayout(toolbarLayout);
toolbarLayout.setHorizontalGroup(toolbarLayout.createParallelGroup(GroupLayout.LEADING)
.add(toolbarLayout.createSequentialGroup()
.addContainerGap()
- .add(clearVizButton)
- .add(3, 3, 3)
- .add(jSeparator1, GroupLayout.PREFERRED_SIZE, 10, GroupLayout.PREFERRED_SIZE)
- .add(5, 5, 5)
- .add(jLabel1)
+ .add(backButton)
+ .addPreferredGap(LayoutStyle.RELATED)
+ .add(forwardButton)
+ .addPreferredGap(LayoutStyle.RELATED)
+ .add(jSeparator4, GroupLayout.PREFERRED_SIZE, 10, GroupLayout.PREFERRED_SIZE)
.addPreferredGap(LayoutStyle.RELATED)
.add(fastOrganicLayoutButton)
.addPreferredGap(LayoutStyle.RELATED)
- .add(organicLayoutButton)
- .addPreferredGap(LayoutStyle.RELATED)
- .add(hierarchyLayoutButton)
- .addPreferredGap(LayoutStyle.RELATED)
- .add(circleLayoutButton)
+ .add(clearVizButton)
.addPreferredGap(LayoutStyle.RELATED)
.add(jSeparator2, GroupLayout.PREFERRED_SIZE, 10, GroupLayout.PREFERRED_SIZE)
.addPreferredGap(LayoutStyle.RELATED)
@@ -574,12 +577,7 @@ final public class VisualizationPanel extends JPanel implements Lookup.Provider
.add(toolbarLayout.createSequentialGroup()
.add(3, 3, 3)
.add(toolbarLayout.createParallelGroup(GroupLayout.CENTER)
- .add(jLabel1, GroupLayout.PREFERRED_SIZE, 25, GroupLayout.PREFERRED_SIZE)
- .add(hierarchyLayoutButton)
.add(fastOrganicLayoutButton)
- .add(organicLayoutButton)
- .add(circleLayoutButton)
- .add(jSeparator1, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.add(zoomOutButton)
.add(zoomInButton, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.add(zoomActualButton, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
@@ -588,8 +586,11 @@ final public class VisualizationPanel extends JPanel implements Lookup.Provider
.add(zoomLabel)
.add(clearVizButton)
.add(jSeparator2, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .add(backButton)
+ .add(forwardButton)
.add(snapshotButton)
- .add(jSeparator3, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+ .add(jSeparator3, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .add(jSeparator4, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.add(3, 3, 3))
);
@@ -607,14 +608,17 @@ final public class VisualizationPanel extends JPanel implements Lookup.Provider
private void zoomActualButtonActionPerformed(ActionEvent evt) {//GEN-FIRST:event_zoomActualButtonActionPerformed
graphComponent.zoomActual();
+ CVTEvents.getCVTEventBus().post(new CVTEvents.ScaleChangeEvent(graph.getView().getScale()));
}//GEN-LAST:event_zoomActualButtonActionPerformed
private void zoomInButtonActionPerformed(ActionEvent evt) {//GEN-FIRST:event_zoomInButtonActionPerformed
graphComponent.zoomIn();
+ CVTEvents.getCVTEventBus().post(new CVTEvents.ScaleChangeEvent(graph.getView().getScale()));
}//GEN-LAST:event_zoomInButtonActionPerformed
private void zoomOutButtonActionPerformed(ActionEvent evt) {//GEN-FIRST:event_zoomOutButtonActionPerformed
graphComponent.zoomOut();
+ CVTEvents.getCVTEventBus().post(new CVTEvents.ScaleChangeEvent(graph.getView().getScale()));
}//GEN-LAST:event_zoomOutButtonActionPerformed
/**
@@ -656,30 +660,66 @@ final public class VisualizationPanel extends JPanel implements Lookup.Provider
get();
} catch (InterruptedException | ExecutionException ex) {
logger.log(Level.WARNING, "CVT graph layout failed.", ex);
- String message = (lockedVertexModel.isEmpty())
- ? Bundle.VisualizationPanel_layoutFail_text(layout.getDisplayName())
- : Bundle.VisualizationPanel_layoutFailWithLockedVertices_text(layout.getDisplayName());
-
- Platform.runLater(()
- -> Notifications.create().owner(notificationsJFXPanel.getScene().getWindow())
- .text(message)
- .showWarning()
- );
}
}
}.execute();
}
private void clearVizButtonActionPerformed(ActionEvent evt) {//GEN-FIRST:event_clearVizButtonActionPerformed
- setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
+ CVTEvents.getCVTEventBus().post(new CVTEvents.UnpinAccountsEvent(pinnedAccountModel.getPinnedAccounts()));
+ }//GEN-LAST:event_clearVizButtonActionPerformed
+
+ private void forwardButtonActionPerformed(ActionEvent evt) {//GEN-FIRST:event_forwardButtonActionPerformed
+ handleStateChange(stateManager.advance());
+ }//GEN-LAST:event_forwardButtonActionPerformed
+
+ private void backButtonActionPerformed(ActionEvent evt) {//GEN-FIRST:event_backButtonActionPerformed
+ handleStateChange(stateManager.retreat());
+ }//GEN-LAST:event_backButtonActionPerformed
+
+ /**
+ * Manages the redo and undo actions.
+ *
+ * @param newState a CommunicationsState
+ */
+ private void handleStateChange(StateManager.CommunicationsState newState ){
+ if(newState == null) {
+ return;
+ }
+
+ // If the zoom was changed, only change the zoom.
+ if(newState.isZoomChange()) {
+ graph.getView().setScale(newState.getZoomValue());
+ return;
+ }
+
+ // This will cause the FilterPane to update its controls
+ CVTEvents.getCVTEventBus().post(new CVTEvents.StateChangeEvent(newState));
+ setStateButtonsEnabled();
+
graph.getModel().beginUpdate();
- pinnedAccountModel.clear();
- graph.clear();
+ graph.resetGraph();
+
+ if(newState.getPinnedList() != null) {
+ pinnedAccountModel.pinAccount(newState.getPinnedList());
+ } else {
+ pinnedAccountModel.clear();
+ }
+
+ currentFilter = newState.getCommunicationsFilter();
+
rebuildGraph();
// Updates the display
graph.getModel().endUpdate();
- setCursor(Cursor.getDefaultCursor());
- }//GEN-LAST:event_clearVizButtonActionPerformed
+
+ fitGraph();
+
+ }
+
+ private void setStateButtonsEnabled() {
+ backButton.setEnabled(stateManager.canRetreat());
+ forwardButton.setEnabled(stateManager.canAdvance());
+ }
@NbBundle.Messages({
"VisualizationPanel_snapshot_report_failure=Snapshot report not created. An error occurred during creation."
@@ -725,12 +765,12 @@ final public class VisualizationPanel extends JPanel implements Lookup.Provider
graphComponent.zoom((heightFactor + widthFactor) / 2.0);
}
-
+
/**
* Handle the ActionPerformed event from the Snapshot button.
- *
+ *
* @throws NoCurrentCaseException
- * @throws IOException
+ * @throws IOException
*/
@NbBundle.Messages({
"VisualizationPanel_action_dialogs_title=Communications",
@@ -762,14 +802,14 @@ final public class VisualizationPanel extends JPanel implements Lookup.Provider
if (result == JOptionPane.OK_OPTION) {
String enteredReportName = text.getText();
-
+
if(enteredReportName.trim().isEmpty()){
result = JOptionPane.showConfirmDialog(graphComponent, Bundle.VisualizationPane_accept_defaultName(defaultReportName), Bundle.VisualizationPane_blank_report_title(), JOptionPane.OK_CANCEL_OPTION);
if(result != JOptionPane.OK_OPTION) {
return;
}
}
-
+
String reportName = StringUtils.defaultIfBlank(enteredReportName, defaultReportName);
Path reportPath = Paths.get(currentCase.getReportDirectory(), reportName);
if (Files.exists(reportPath)) {
@@ -787,14 +827,14 @@ final public class VisualizationPanel extends JPanel implements Lookup.Provider
}
}
}
-
+
/**
* Create the Snapshot Report.
- *
+ *
* @param currentCase The current case
* @param reportName User selected name for the report
- *
- * @throws IOException
+ *
+ * @throws IOException
*/
@NbBundle.Messages({
"VisualizationPane_DisplayName=Open Report",
@@ -808,12 +848,12 @@ final public class VisualizationPanel extends JPanel implements Lookup.Provider
"VisualizationPane_Report_OK_Button=OK",
"VisualizationPane_Open_Report=Open Report",})
private void createReport(Case currentCase, String reportName) throws IOException {
-
+
// Create the report.
Path reportFolderPath = Paths.get(currentCase.getReportDirectory(), reportName, Bundle.VisualizationPane_reportName()); //NON_NLS
BufferedImage image = mxCellRenderer.createBufferedImage(graph, null, graph.getView().getScale(), Color.WHITE, true, null);
Path reportPath = new CommSnapShotReportWriter(currentCase, reportFolderPath, reportName, new Date(), image, currentFilter).writeReport();
-
+
// Report success to the user and offer to open the report.
String message = Bundle.VisualizationPane_Report_Success(reportPath.toAbsolutePath());
String[] buttons = {Bundle.VisualizationPane_Open_Report(), Bundle.VisualizationPane_Report_OK_Button()};
@@ -850,20 +890,18 @@ final public class VisualizationPanel extends JPanel implements Lookup.Provider
}
// Variables declaration - do not modify//GEN-BEGIN:variables
+ private JButton backButton;
private JPanel borderLayoutPanel;
- private JButton circleLayoutButton;
private JButton clearVizButton;
private JButton fastOrganicLayoutButton;
private JButton fitZoomButton;
- private JButton hierarchyLayoutButton;
- private JLabel jLabel1;
+ private JButton forwardButton;
private JLabel jLabel2;
- private JToolBar.Separator jSeparator1;
private JToolBar.Separator jSeparator2;
private JToolBar.Separator jSeparator3;
+ private JToolBar.Separator jSeparator4;
private JTextArea jTextArea1;
private JFXPanel notificationsJFXPanel;
- private JButton organicLayoutButton;
private JPanel placeHolderPanel;
private JButton snapshotButton;
private JSplitPane splitPane;
@@ -1093,6 +1131,8 @@ final public class VisualizationPanel extends JPanel implements Lookup.Provider
} else if (event.getPreciseWheelRotation() > 0) {
graphComponent.zoomOut();
}
+
+ CVTEvents.getCVTEventBus().post(new CVTEvents.ScaleChangeEvent(graph.getView().getScale()));
}
/**
diff --git a/Core/src/org/sleuthkit/autopsy/images/resultset_next.png b/Core/src/org/sleuthkit/autopsy/images/resultset_next.png
new file mode 100755
index 0000000000..e252606d3e
Binary files /dev/null and b/Core/src/org/sleuthkit/autopsy/images/resultset_next.png differ
diff --git a/Core/src/org/sleuthkit/autopsy/images/resultset_previous.png b/Core/src/org/sleuthkit/autopsy/images/resultset_previous.png
new file mode 100755
index 0000000000..18f9cc1094
Binary files /dev/null and b/Core/src/org/sleuthkit/autopsy/images/resultset_previous.png differ
diff --git a/Core/src/org/sleuthkit/autopsy/textextractors/TikaTextExtractor.java b/Core/src/org/sleuthkit/autopsy/textextractors/TikaTextExtractor.java
index 0a05a238c4..b4a53b2e55 100644
--- a/Core/src/org/sleuthkit/autopsy/textextractors/TikaTextExtractor.java
+++ b/Core/src/org/sleuthkit/autopsy/textextractors/TikaTextExtractor.java
@@ -58,6 +58,7 @@ import org.sleuthkit.autopsy.casemodule.NoCurrentCaseException;
import org.sleuthkit.autopsy.coreutils.ExecUtil;
import org.sleuthkit.autopsy.coreutils.ExecUtil.ProcessTerminator;
import org.sleuthkit.autopsy.coreutils.FileUtil;
+import org.sleuthkit.autopsy.coreutils.Logger;
import org.sleuthkit.autopsy.coreutils.PlatformUtil;
import org.sleuthkit.autopsy.textextractors.configs.ImageConfig;
import org.sleuthkit.autopsy.datamodel.ContentUtils;
@@ -118,7 +119,8 @@ final class TikaTextExtractor implements TextExtractor {
"application/x-z", //NON-NLS
"application/x-compress"); //NON-NLS
- private static final java.util.logging.Logger tikaLogger = java.util.logging.Logger.getLogger("Tika"); //NON-NLS
+ private static final java.util.logging.Logger TIKA_LOGGER = java.util.logging.Logger.getLogger("Tika"); //NON-NLS
+ private static final Logger AUTOPSY_LOGGER = Logger.getLogger(TikaTextExtractor.class.getName());
private final ThreadFactory tikaThreadFactory
= new ThreadFactoryBuilder().setNameFormat("tika-reader-%d").build();
@@ -242,7 +244,9 @@ final class TikaTextExtractor implements TextExtractor {
} catch (InitReaderException ex) {
throw ex;
} catch (Exception ex) {
- tikaLogger.log(Level.WARNING, "Exception: Unable to Tika parse the "
+ AUTOPSY_LOGGER.log(Level.WARNING, String.format("Error with file [id=%d] %s, see Tika log for details...",
+ content.getId(), content.getName()));
+ TIKA_LOGGER.log(Level.WARNING, "Exception: Unable to Tika parse the "
+ "content" + content.getId() + ": " + content.getName(),
ex.getCause()); //NON-NLS
final String msg = NbBundle.getMessage(this.getClass(),
diff --git a/Core/src/org/sleuthkit/autopsy/timeline/actions/Back.java b/Core/src/org/sleuthkit/autopsy/timeline/actions/Back.java
index 8ee6aa3cd2..43c1a62933 100644
--- a/Core/src/org/sleuthkit/autopsy/timeline/actions/Back.java
+++ b/Core/src/org/sleuthkit/autopsy/timeline/actions/Back.java
@@ -32,7 +32,7 @@ import org.sleuthkit.autopsy.timeline.TimeLineController;
//TODO: This and the corresponding imageanalyzer action are identical except for the type of the controller... abstract something! -jm
public class Back extends Action {
- private static final Image BACK_IMAGE = new Image("/org/sleuthkit/autopsy/timeline/images/arrow-180.png", 16, 16, true, true, true); // NON-NLS
+ private static final Image BACK_IMAGE = new Image("/org/sleuthkit/autopsy/images/resultset_previous.png", 16, 16, true, true, true); // NON-NLS
private final TimeLineController controller;
diff --git a/Core/src/org/sleuthkit/autopsy/timeline/actions/Forward.java b/Core/src/org/sleuthkit/autopsy/timeline/actions/Forward.java
index 851731528b..9f1d265d60 100644
--- a/Core/src/org/sleuthkit/autopsy/timeline/actions/Forward.java
+++ b/Core/src/org/sleuthkit/autopsy/timeline/actions/Forward.java
@@ -32,7 +32,7 @@ import org.sleuthkit.autopsy.timeline.TimeLineController;
//TODO: This and the corresponding imageanalyzer action are identical except for the type of the controller... abstract something! -jm
public class Forward extends Action {
- private static final Image FORWARD_IMAGE = new Image("/org/sleuthkit/autopsy/timeline/images/arrow.png", 16, 16, true, true, true); // NON-NLS
+ private static final Image FORWARD_IMAGE = new Image("/org/sleuthkit/autopsy/images/resultset_next.png", 16, 16, true, true, true); // NON-NLS
private final TimeLineController controller;
diff --git a/CoreLibs/ivy.xml b/CoreLibs/ivy.xml
index 994e82c694..c3056bda3f 100644
--- a/CoreLibs/ivy.xml
+++ b/CoreLibs/ivy.xml
@@ -9,7 +9,7 @@
-
+
@@ -32,8 +32,8 @@
-
-
+
+
diff --git a/CoreLibs/nbproject/project.properties b/CoreLibs/nbproject/project.properties
index 7a154a4cf6..875fdacfe9 100644
--- a/CoreLibs/nbproject/project.properties
+++ b/CoreLibs/nbproject/project.properties
@@ -6,8 +6,9 @@ file.reference.avalon-framework-4.1.5.jar=release/modules/ext/avalon-framework-4
file.reference.common-image-3.2.jar=release/modules/ext/common-image-3.2.jar
file.reference.common-io-3.2.jar=release/modules/ext/common-io-3.2.jar
file.reference.common-lang-3.2.jar=release/modules/ext/common-lang-3.2.jar
-file.reference.commons-codec-1.10.jar=release/modules/ext/commons-codec-1.10.jar
-file.reference.commons-collections4-4.1.jar=release/modules/ext/commons-collections4-4.1.jar
+file.reference.commons-codec-1.11.jar=release/modules/ext/commons-codec-1.11.jar
+file.reference.commons-collections4-4.2.jar=release\\modules\\ext\\commons-collections4-4.2.jar
+file.reference.commons-compress-1.18.jar=release/modules/ext/commons-compress-1.18.jar
file.reference.commons-csv-1.4.jar=release/modules/ext/commons-csv-1.4.jar
file.reference.commons-io-2.4.jar=release/modules/ext/commons-io-2.4.jar
file.reference.commons-io-2.5.jar=release/modules/ext/commons-io-2.5.jar
@@ -22,7 +23,7 @@ file.reference.compiler-0.9.1.jar=release/modules/ext/compiler-0.9.1.jar
file.reference.controlsfx-8.40.11.jar=release/modules/ext/controlsfx-8.40.11.jar
file.reference.dom4j-1.6.1.jar=release/modules/ext/dom4j-1.6.1.jar
file.reference.geronimo-jms_1.1_spec-1.0.jar=release/modules/ext/geronimo-jms_1.1_spec-1.0.jar
-file.reference.gson-2.8.1.jar=release/modules/ext/gson-2.8.1.jar
+file.reference.gson-2.8.5.jar=release\\modules\\ext\\gson-2.8.5.jar
file.reference.gst1-java-core-1.0.0.jar=release\\modules\\ext\\gst1-java-core-1.0.0.jar
file.reference.jna-3.4.0.jar=release/modules/ext/jna-3.4.0.jar
file.reference.guava-19.0.jar=release/modules/ext/guava-19.0.jar
@@ -60,20 +61,19 @@ file.reference.mail-1.4.3.jar=release/modules/ext/mail-1.4.3.jar
file.reference.opencv-248.jar=release/modules/ext/opencv-248.jar
file.reference.openjfx-dialogs-1.0.2.jar=release/modules/ext/openjfx-dialogs-1.0.3.jar
file.reference.platform-3.4.0.jar=release/modules/ext/platform-3.4.0.jar
-file.reference.poi-3.17.jar=release/modules/ext/poi-3.17.jar
-file.reference.poi-excelant-3.17.jar=release/modules/ext/poi-excelant-3.17.jar
-file.reference.poi-ooxml-3.17.jar=release/modules/ext/poi-ooxml-3.17.jar
-file.reference.poi-ooxml-schemas-3.17.jar=release/modules/ext/poi-ooxml-schemas-3.17.jar
-file.reference.poi-scratchpad-3.17.jar=release/modules/ext/poi-scratchpad-3.17.jar
+file.reference.poi-4.0.1.jar=release\\modules\\ext\\poi-4.0.1.jar
+file.reference.poi-excelant-4.0.1.jar=release\\modules\\ext\\poi-excelant-4.0.1.jar
+file.reference.poi-ooxml-4.0.1.jar=release\\modules\\ext\\poi-ooxml-4.0.1.jar
+file.reference.poi-ooxml-schemas-4.0.1.jar=release\\modules\\ext\\poi-ooxml-schemas-4.0.1.jar
+file.reference.poi-scratchpad-4.0.1.jar=release\\modules\\ext\\poi-scratchpad-4.0.1.jar
file.reference.reflections-0.9.8.jar=release/modules/ext/reflections-0.9.8.jar
file.reference.servlet-api-2.5.jar=release/modules/ext/servlet-api-2.5.jar
file.reference.sigar-1.6.4-sources.jar=release/modules/ext/sigar-1.6.4-sources.jar
file.reference.sigar-1.6.4.jar=release/modules/ext/sigar-1.6.4.jar
file.reference.slf4j-api-1.6.1.jar=release/modules/ext/slf4j-api-1.6.1.jar
file.reference.slf4j-simple-1.6.1.jar=release/modules/ext/slf4j-simple-1.6.1.jar
-file.reference.stax-api-1.0.1.jar=release/modules/ext/stax-api-1.0.1.jar
file.reference.xml-apis-1.0.b2.jar=release/modules/ext/xml-apis-1.0.b2.jar
-file.reference.xmlbeans-2.6.0.jar=release/modules/ext/xmlbeans-2.6.0.jar
+file.reference.xmlbeans-3.0.2.jar=release/modules/ext/xmlbeans-3.0.2.jar
file.reference.dd-plist-1.20.jar=release/modules/ext/dd-plist-1.20.jar
javac.source=1.8
javac.compilerargs=-Xlint -Xlint:-serial
diff --git a/CoreLibs/nbproject/project.xml b/CoreLibs/nbproject/project.xml
index f7ebf84361..30a331dfc9 100644
--- a/CoreLibs/nbproject/project.xml
+++ b/CoreLibs/nbproject/project.xml
@@ -70,6 +70,24 @@
com.google.gson.internal.bind.util
com.google.gson.reflect
com.google.gson.stream
+ com.microsoft.schemas.compatibility
+ com.microsoft.schemas.compatibility.impl
+ com.microsoft.schemas.office.excel
+ com.microsoft.schemas.office.excel.impl
+ com.microsoft.schemas.office.office
+ com.microsoft.schemas.office.office.impl
+ com.microsoft.schemas.office.visio.x2012.main
+ com.microsoft.schemas.office.visio.x2012.main.impl
+ com.microsoft.schemas.office.x2006.digsig
+ com.microsoft.schemas.office.x2006.digsig.impl
+ com.microsoft.schemas.office.x2006.encryption
+ com.microsoft.schemas.office.x2006.encryption.impl
+ com.microsoft.schemas.office.x2006.keyEncryptor.certificate
+ com.microsoft.schemas.office.x2006.keyEncryptor.certificate.impl
+ com.microsoft.schemas.office.x2006.keyEncryptor.password
+ com.microsoft.schemas.office.x2006.keyEncryptor.password.impl
+ com.microsoft.schemas.vml
+ com.microsoft.schemas.vml.impl
com.sun.activation.registries
com.sun.activation.viewers
com.sun.jna
@@ -232,10 +250,59 @@
org.apache.avalon.framework.thread
org.apache.commons.codec
org.apache.commons.codec.binary
+ org.apache.commons.codec.cli
org.apache.commons.codec.digest
org.apache.commons.codec.language
+ org.apache.commons.codec.language.bm
org.apache.commons.codec.net
org.apache.commons.collections4
+ org.apache.commons.collections4.bag
+ org.apache.commons.collections4.bidimap
+ org.apache.commons.collections4.collection
+ org.apache.commons.collections4.comparators
+ org.apache.commons.collections4.functors
+ org.apache.commons.collections4.iterators
+ org.apache.commons.collections4.keyvalue
+ org.apache.commons.collections4.list
+ org.apache.commons.collections4.map
+ org.apache.commons.collections4.multimap
+ org.apache.commons.collections4.multiset
+ org.apache.commons.collections4.properties
+ org.apache.commons.collections4.queue
+ org.apache.commons.collections4.sequence
+ org.apache.commons.collections4.set
+ org.apache.commons.collections4.splitmap
+ org.apache.commons.collections4.trie
+ org.apache.commons.collections4.trie.analyzer
+ org.apache.commons.compress
+ org.apache.commons.compress.archivers
+ org.apache.commons.compress.archivers.ar
+ org.apache.commons.compress.archivers.arj
+ org.apache.commons.compress.archivers.cpio
+ org.apache.commons.compress.archivers.dump
+ org.apache.commons.compress.archivers.examples
+ org.apache.commons.compress.archivers.jar
+ org.apache.commons.compress.archivers.sevenz
+ org.apache.commons.compress.archivers.tar
+ org.apache.commons.compress.archivers.zip
+ org.apache.commons.compress.changes
+ org.apache.commons.compress.compressors
+ org.apache.commons.compress.compressors.brotli
+ org.apache.commons.compress.compressors.bzip2
+ org.apache.commons.compress.compressors.deflate
+ org.apache.commons.compress.compressors.deflate64
+ org.apache.commons.compress.compressors.gzip
+ org.apache.commons.compress.compressors.lz4
+ org.apache.commons.compress.compressors.lz77support
+ org.apache.commons.compress.compressors.lzma
+ org.apache.commons.compress.compressors.lzw
+ org.apache.commons.compress.compressors.pack200
+ org.apache.commons.compress.compressors.snappy
+ org.apache.commons.compress.compressors.xz
+ org.apache.commons.compress.compressors.z
+ org.apache.commons.compress.compressors.zstandard
+ org.apache.commons.compress.parallel
+ org.apache.commons.compress.utils
org.apache.commons.csv
org.apache.commons.io
org.apache.commons.io.comparator
@@ -304,8 +371,8 @@
org.apache.poi.common.usermodel
org.apache.poi.common.usermodel.fonts
org.apache.poi.ddf
- org.apache.poi.dev
org.apache.poi.extractor
+ org.apache.poi.extractor.ole2
org.apache.poi.hdgf
org.apache.poi.hdgf.chunks
org.apache.poi.hdgf.dev
@@ -374,6 +441,9 @@
org.apache.poi.hwpf.model.types
org.apache.poi.hwpf.sprm
org.apache.poi.hwpf.usermodel
+ org.apache.poi.ooxml
+ org.apache.poi.ooxml.extractor
+ org.apache.poi.ooxml.util
org.apache.poi.openxml4j.exceptions
org.apache.poi.openxml4j.opc
org.apache.poi.openxml4j.opc.internal
@@ -401,6 +471,7 @@
org.apache.poi.sl.draw
org.apache.poi.sl.draw.binding
org.apache.poi.sl.draw.geom
+ org.apache.poi.sl.extractor
org.apache.poi.sl.image
org.apache.poi.sl.usermodel
org.apache.poi.ss
@@ -424,6 +495,9 @@
org.apache.poi.ss.util.cellwalk
org.apache.poi.util
org.apache.poi.wp.usermodel
+ org.apache.poi.xddf.usermodel
+ org.apache.poi.xddf.usermodel.chart
+ org.apache.poi.xddf.usermodel.text
org.apache.poi.xdgf.exceptions
org.apache.poi.xdgf.extractor
org.apache.poi.xdgf.geom
@@ -440,7 +514,6 @@
org.apache.poi.xslf.util
org.apache.poi.xssf
org.apache.poi.xssf.binary
- org.apache.poi.xssf.dev
org.apache.poi.xssf.eventusermodel
org.apache.poi.xssf.extractor
org.apache.poi.xssf.model
@@ -530,9 +603,6 @@
org.apache.xmlbeans.impl.jam.provider
org.apache.xmlbeans.impl.jam.visitor
org.apache.xmlbeans.impl.jam.xml
- org.apache.xmlbeans.impl.piccolo.io
- org.apache.xmlbeans.impl.piccolo.util
- org.apache.xmlbeans.impl.piccolo.xml
org.apache.xmlbeans.impl.regex
org.apache.xmlbeans.impl.richParser
org.apache.xmlbeans.impl.schema
@@ -554,6 +624,7 @@
org.apache.xmlbeans.impl.xb.xsdownload.impl
org.apache.xmlbeans.impl.xb.xsdschema
org.apache.xmlbeans.impl.xb.xsdschema.impl
+ org.apache.xmlbeans.impl.xpathgen
org.apache.xmlbeans.impl.xsd2inst
org.apache.xmlbeans.soap
org.apache.xmlbeans.xml.stream
@@ -589,6 +660,8 @@
org.dom4j.util
org.dom4j.xpath
org.dom4j.xpp
+ org.etsi.uri.x01903.v13
+ org.etsi.uri.x01903.v13.impl
org.freedesktop.gstreamer
org.freedesktop.gstreamer.device
org.freedesktop.gstreamer.elements
@@ -668,6 +741,8 @@
org.slf4j.helpers
org.slf4j.impl
org.slf4j.spi
+ org.w3.x2000.x09.xmldsig
+ org.w3.x2000.x09.xmldsig.impl
org.w3c.dom
org.w3c.dom.css
org.w3c.dom.events
@@ -680,6 +755,8 @@
org.xml.sax.ext
org.xml.sax.helpers
repackage
+ schemaorg_apache_xmlbeans.system.s8C3F193EE11A2F798ACF65489B9E6078
+ schemaorg_apache_xmlbeans.system.sD023D6490046BA0250A839A9AD24C443
schemaorg_apache_xmlbeans.system.sXMLCONFIG
schemaorg_apache_xmlbeans.system.sXMLLANG
schemaorg_apache_xmlbeans.system.sXMLSCHEMA
@@ -757,14 +834,14 @@
ext/imgscalr-lib-4.2.jar
release/modules/ext/imgscalr-lib-4.2.jar
-
- ext/xmlbeans-2.6.0.jar
- release/modules/ext/xmlbeans-2.6.0.jar
-
ext/common-io-3.2.jar
release/modules/ext/common-io-3.2.jar
+
+ ext/xmlbeans-3.0.2.jar
+ release/modules/ext/xmlbeans-3.0.2.jar
+
ext/commons-lang3-3.0-sources.jar
release/modules/ext/commons-lang3-3.0-sources.jar
@@ -793,18 +870,26 @@
ext/joda-time-2.4-javadoc.jar
release/modules/ext/joda-time-2.4-javadoc.jar
+
+ ext/poi-scratchpad-4.0.1.jar
+ release\modules\ext\poi-scratchpad-4.0.1.jar
+
ext/imageio-psd-3.2.jar
release/modules/ext/imageio-psd-3.2.jar
-
- ext/stax-api-1.0.1.jar
- release/modules/ext/stax-api-1.0.1.jar
-
ext/servlet-api-2.5.jar
release/modules/ext/servlet-api-2.5.jar
+
+ ext/poi-ooxml-4.0.1.jar
+ release\modules\ext\poi-ooxml-4.0.1.jar
+
+
+ ext/commons-codec-1.11.jar
+ release/modules/ext/commons-codec-1.11.jar
+
ext/imageio-pcx-3.2.jar
release/modules/ext/imageio-pcx-3.2.jar
@@ -854,20 +939,20 @@
release/modules/ext/joda-time-2.4.jar
- ext/commons-collections4-4.1.jar
- release/modules/ext/commons-collections4-4.1.jar
+ ext/commons-compress-1.18.jar
+ release/modules/ext/commons-compress-1.18.jar
ext/commons-logging-1.1.2-javadoc.jar
release/modules/ext/commons-logging-1.1.2-javadoc.jar
- ext/commons-codec-1.10.jar
- release/modules/ext/commons-codec-1.10.jar
+ ext/opencv-248.jar
+ release/modules/ext/opencv-248.jar
- ext/gson-2.8.1.jar
- release/modules/ext/gson-2.8.1.jar
+ ext/gson-2.8.5.jar
+ release/modules/ext/gson-2.8.5.jar
ext/opencv-248.jar
@@ -881,22 +966,14 @@
ext/guava-19.0.jar
release/modules/ext/guava-19.0.jar
-
- ext/poi-3.17.jar
- release/modules/ext/poi-3.17.jar
-
-
- ext/poi-ooxml-schemas-3.17.jar
- release/modules/ext/poi-ooxml-schemas-3.17.jar
-
-
- ext/poi-scratchpad-3.17.jar
- release/modules/ext/poi-scratchpad-3.17.jar
-
ext/commons-io-2.5.jar
release/modules/ext/commons-io-2.5.jar
+
+ ext/commons-collections4-4.2.jar
+ release\modules\ext\commons-collections4-4.2.jar
+
ext/imageio-bmp-3.2.jar
release/modules/ext/imageio-bmp-3.2.jar
@@ -921,10 +998,6 @@
ext/ant-1.8.2.jar
release/modules/ext/ant-1.8.2.jar
-
- ext/poi-excelant-3.17.jar
- release/modules/ext/poi-excelant-3.17.jar
-
ext/javassist-3.12.1.GA.jar
release/modules/ext/javassist-3.12.1.GA.jar
@@ -934,12 +1007,16 @@
release/modules/ext/imageio-core-3.2.jar
- ext/commons-logging-1.1.2.jar
- release/modules/ext/commons-logging-1.1.2.jar
+ ext/poi-4.0.1.jar
+ release\modules\ext\poi-4.0.1.jar
- ext/poi-ooxml-3.17.jar
- release/modules/ext/poi-ooxml-3.17.jar
+ ext/poi-excelant-4.0.1.jar
+ release\modules\ext\poi-excelant-4.0.1.jar
+
+
+ ext/commons-logging-1.1.2.jar
+ release/modules/ext/commons-logging-1.1.2.jar
ext/controlsfx-8.40.11.jar
@@ -957,6 +1034,10 @@
ext/common-image-3.2.jar
release/modules/ext/common-image-3.2.jar
+
+ ext/poi-ooxml-schemas-4.0.1.jar
+ release\modules\ext\poi-ooxml-schemas-4.0.1.jar
+
ext/imageio-pict-3.2.jar
release/modules/ext/imageio-pict-3.2.jar
diff --git a/Experimental/ivy.xml b/Experimental/ivy.xml
index 965af1bc12..b4e3a11a83 100644
--- a/Experimental/ivy.xml
+++ b/Experimental/ivy.xml
@@ -6,7 +6,7 @@
-
+
diff --git a/Experimental/manifest.mf b/Experimental/manifest.mf
index a53adc8642..15ed8c19f7 100644
--- a/Experimental/manifest.mf
+++ b/Experimental/manifest.mf
@@ -4,4 +4,4 @@ OpenIDE-Module: org.sleuthkit.autopsy.experimental
OpenIDE-Module-Layer: org/sleuthkit/autopsy/experimental/autoingest/layer.xml
OpenIDE-Module-Localizing-Bundle: org/sleuthkit/autopsy/experimental/autoingest/Bundle.properties
OpenIDE-Module-Requires: org.openide.windows.WindowManager
-OpenIDE-Module-Specification-Version: 1.0
+OpenIDE-Module-Specification-Version: 1.0
\ No newline at end of file
diff --git a/Experimental/nbproject/project.properties b/Experimental/nbproject/project.properties
index 2db8202ab7..8dc87db7e3 100644
--- a/Experimental/nbproject/project.properties
+++ b/Experimental/nbproject/project.properties
@@ -3,7 +3,7 @@ file.reference.jackson-core-2.7.0.jar=release/modules/ext/jackson-core-2.7.0.jar
file.reference.LGoodDatePicker-10.3.1.jar=release/modules/ext/LGoodDatePicker-10.3.1.jar
file.reference.mchange-commons-java-0.2.9.jar=release/modules/ext/mchange-commons-java-0.2.9.jar
file.reference.postgresql-9.4-1201-jdbc41.jar=release/modules/ext/postgresql-9.4-1201-jdbc41.jar
-file.reference.tika-core-1.17.jar=release/modules/ext/tika-core-1.17.jar
+file.reference.tika-core-1.20.jar=release\\modules\\ext\\tika-core-1.20.jar
javac.source=1.8
javac.compilerargs=-Xlint -Xlint:-serial
javadoc.reference.LGoodDatePicker-10.3.1.jar=release/modules/ext/LGoodDatePicker-10.3.1-javadoc.jar
diff --git a/Experimental/nbproject/project.xml b/Experimental/nbproject/project.xml
index 17173a0c09..551dc9baa7 100644
--- a/Experimental/nbproject/project.xml
+++ b/Experimental/nbproject/project.xml
@@ -162,12 +162,12 @@
org.sleuthkit.autopsy.experimental.configuration
- ext/LGoodDatePicker-10.3.1.jar
- release/modules/ext/LGoodDatePicker-10.3.1.jar
+ ext/tika-core-1.20.jar
+ release\modules\ext\tika-core-1.20.jar
- ext/tika-core-1.17.jar
- release/modules/ext/tika-core-1.17.jar
+ ext/LGoodDatePicker-10.3.1.jar
+ release/modules/ext/LGoodDatePicker-10.3.1.jar
ext/mchange-commons-java-0.2.9.jar
diff --git a/KeywordSearch/ivy.xml b/KeywordSearch/ivy.xml
index fc6aa00269..f86e1de895 100644
--- a/KeywordSearch/ivy.xml
+++ b/KeywordSearch/ivy.xml
@@ -15,18 +15,21 @@
-
-
-
-
-
+
+
+
+
+
+
+
+
+
@@ -41,10 +44,5 @@
-
-
-
-
diff --git a/KeywordSearch/nbproject/project.properties b/KeywordSearch/nbproject/project.properties
index 7e931bf641..08eec5cbee 100644
--- a/KeywordSearch/nbproject/project.properties
+++ b/KeywordSearch/nbproject/project.properties
@@ -1,133 +1,60 @@
-file.reference.apache-mime4j-core-0.8.1.jar=release/modules/ext/apache-mime4j-core-0.8.1.jar
-file.reference.apache-mime4j-dom-0.8.1.jar=release/modules/ext/apache-mime4j-dom-0.8.1.jar
-file.reference.asm-5.0.4.jar=release/modules/ext/asm-5.0.4.jar
-file.reference.asm-all-3.1.jar=release/modules/ext/asm-all-3.1.jar
-file.reference.bcmail-jdk15on-1.54.jar=release/modules/ext/bcmail-jdk15on-1.54.jar
-file.reference.bcpkix-jdk15on-1.54.jar=release/modules/ext/bcpkix-jdk15on-1.54.jar
-file.reference.bcprov-jdk15on-1.54.jar=release/modules/ext/bcprov-jdk15on-1.54.jar
file.reference.boilerpipe-1.1.0.jar=release/modules/ext/boilerpipe-1.1.0.jar
file.reference.bzip2-0.9.1.jar=release/modules/ext/bzip2-0.9.1.jar
file.reference.c3p0-0.9.1.1.jar=release/modules/ext/c3p0-0.9.1.1.jar
file.reference.cdm-4.5.5.jar=release/modules/ext/cdm-4.5.5.jar
file.reference.cleartk-util-2.0.0.jar=release/modules/ext/cleartk-util-2.0.0.jar
file.reference.commons-beanutils-1.9.2.jar=release/modules/ext/commons-beanutils-1.9.2.jar
-file.reference.commons-codec-1.10.jar=release/modules/ext/commons-codec-1.10.jar
+file.reference.commons-codec-1.11.jar=release\\modules\\ext\\commons-codec-1.11.jar
file.reference.commons-collections-3.2.2.jar=release/modules/ext/commons-collections-3.2.2.jar
-file.reference.commons-collections4-4.1.jar=release/modules/ext/commons-collections4-4.1.jar
-file.reference.commons-compress-1.14.jar=release/modules/ext/commons-compress-1.14.jar
-file.reference.commons-csv-1.0.jar=release/modules/ext/commons-csv-1.0.jar
file.reference.commons-digester-1.8.1.jar=release/modules/ext/commons-digester-1.8.1.jar
file.reference.commons-exec-1.3.jar=release/modules/ext/commons-exec-1.3.jar
-file.reference.commons-io-2.3.jar=release/modules/ext/commons-io-2.3.jar
+file.reference.commons-io-2.3.jar=release\\modules\\ext\\commons-io-2.3.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-logging-api-1.1.jar=release/modules/ext/commons-logging-api-1.1.jar
file.reference.commons-validator-1.5.1-javadoc.jar=release/modules/ext/commons-validator-1.5.1-javadoc.jar
file.reference.commons-validator-1.5.1-sources.jar=release/modules/ext/commons-validator-1.5.1-sources.jar
file.reference.commons-validator-1.5.1.jar=release/modules/ext/commons-validator-1.5.1.jar
-file.reference.ctakes-core-3.2.2.jar=release/modules/ext/ctakes-core-3.2.2.jar
-file.reference.ctakes-core-res-3.2.2.jar=release/modules/ext/ctakes-core-res-3.2.2.jar
-file.reference.ctakes-type-system-3.2.2.jar=release/modules/ext/ctakes-type-system-3.2.2.jar
-file.reference.ctakes-utils-3.2.2.jar=release/modules/ext/ctakes-utils-3.2.2.jar
-file.reference.curvesapi-1.04.jar=release/modules/ext/curvesapi-1.04.jar
-file.reference.cxf-core-3.0.16.jar=release/modules/ext/cxf-core-3.0.16.jar
-file.reference.cxf-rt-frontend-jaxrs-3.0.16.jar=release/modules/ext/cxf-rt-frontend-jaxrs-3.0.16.jar
-file.reference.cxf-rt-rs-client-3.0.16.jar=release/modules/ext/cxf-rt-rs-client-3.0.16.jar
-file.reference.cxf-rt-transports-http-3.0.16.jar=release/modules/ext/cxf-rt-transports-http-3.0.16.jar
file.reference.ehcache-core-2.6.2.jar=release/modules/ext/ehcache-core-2.6.2.jar
file.reference.findstructapi-0.0.1.jar=release/modules/ext/findstructapi-0.0.1.jar
-file.reference.fontbox-2.0.8.jar=release/modules/ext/fontbox-2.0.8.jar
-file.reference.geoapi-3.0.0.jar=release/modules/ext/geoapi-3.0.0.jar
file.reference.grib-4.5.5.jar=release/modules/ext/grib-4.5.5.jar
file.reference.guava-17.0.jar=release/modules/ext/guava-17.0.jar
file.reference.hamcrest-core-1.3.jar=release/modules/ext/hamcrest-core-1.3.jar
-file.reference.httpclient-4.5.4.jar=release/modules/ext/httpclient-4.5.4.jar
-file.reference.httpcore-4.4.1.jar=release/modules/ext/httpcore-4.4.1.jar
-file.reference.httpcore-4.4.7.jar=release/modules/ext/httpcore-4.4.7.jar
-file.reference.httpmime-4.4.1.jar=release/modules/ext/httpmime-4.4.1.jar
-file.reference.httpmime-4.5.4.jar=release/modules/ext/httpmime-4.5.4.jar
+file.reference.httpclient-4.3.1.jar=release\\modules\\ext\\httpclient-4.5.6.jar
+file.reference.httpcore-4.4.1.jar=release/modules/ext/httpcore-4.4.10.jar
+file.reference.httpmime-4.3.1.jar=release\\modules\\ext\\httpmime-4.5.6.jar
file.reference.httpservices-4.5.5.jar=release/modules/ext/httpservices-4.5.5.jar
-file.reference.icu4j-3.8.jar=release/modules/ext/icu4j-3.8.jar
-file.reference.isoparser-1.1.18.jar=release/modules/ext/isoparser-1.1.18.jar
-file.reference.jackcess-2.1.8.jar=release/modules/ext/jackcess-2.1.8.jar
-file.reference.jackcess-encrypt-2.1.2.jar=release/modules/ext/jackcess-encrypt-2.1.2.jar
-file.reference.jackson-core-2.9.2.jar=release/modules/ext/jackson-core-2.9.2.jar
-file.reference.jakarta-regexp-1.4.jar=release/modules/ext/jakarta-regexp-1.4.jar
file.reference.java-libpst-0.8.1.jar=release/modules/ext/java-libpst-0.8.1.jar
-file.reference.javax.annotation-api-1.2.jar=release/modules/ext/javax.annotation-api-1.2.jar
-file.reference.javax.ws.rs-api-2.0.1.jar=release/modules/ext/javax.ws.rs-api-2.0.1.jar
file.reference.jcip-annotations-1.0.jar=release/modules/ext/jcip-annotations-1.0.jar
file.reference.jcommander-1.35.jar=release/modules/ext/jcommander-1.35.jar
file.reference.jdom-1.0.jar=release/modules/ext/jdom-1.0.jar
-file.reference.jdom2-2.0.4.jar=release/modules/ext/jdom2-2.0.4.jar
-file.reference.jempbox-1.8.13.jar=release/modules/ext/jempbox-1.8.13.jar
file.reference.jericho-html-3.3-javadoc.jar=release/modules/ext/jericho-html-3.3-javadoc.jar
file.reference.jericho-html-3.3-sources.jar=release/modules/ext/jericho-html-3.3-sources.jar
file.reference.jericho-html-3.3.jar=release/modules/ext/jericho-html-3.3.jar
-file.reference.jhighlight-1.0.2.jar=release/modules/ext/jhighlight-1.0.2.jar
-file.reference.jmatio-1.2.jar=release/modules/ext/jmatio-1.2.jar
-file.reference.jna-4.1.0.jar=release/modules/ext/jna-4.1.0.jar
file.reference.joda-time-2.2.jar=release/modules/ext/joda-time-2.2.jar
file.reference.json-simple-1.1.1.jar=release/modules/ext/json-simple-1.1.1.jar
-file.reference.jsoup-1.7.2.jar=release/modules/ext/jsoup-1.7.2.jar
-file.reference.jsr-275-0.9.3.jar=release/modules/ext/jsr-275-0.9.3.jar
file.reference.juniversalchardet-1.0.3.jar=release/modules/ext/juniversalchardet-1.0.3.jar
-file.reference.junrar-0.7.jar=release/modules/ext/junrar-0.7.jar
-file.reference.jVinci-2.6.0.jar=release/modules/ext/jVinci-2.6.0.jar
-file.reference.jwnl-1.3.3.jar=release/modules/ext/jwnl-1.3.3.jar
file.reference.libsvm-3.1.jar=release/modules/ext/libsvm-3.1.jar
file.reference.log4j-1.2.17.jar=release/modules/ext/log4j-1.2.17.jar
-file.reference.lucene-analyzers-common-4.0.0.jar=release/modules/ext/lucene-analyzers-common-4.0.0.jar
-file.reference.lucene-core-4.0.0.jar=release/modules/ext/lucene-core-4.0.0.jar
-file.reference.lucene-queries-4.0.0.jar=release/modules/ext/lucene-queries-4.0.0.jar
-file.reference.lucene-queryparser-4.0.0.jar=release/modules/ext/lucene-queryparser-4.0.0.jar
-file.reference.lucene-sandbox-4.0.0.jar=release/modules/ext/lucene-sandbox-4.0.0.jar
-file.reference.metadata-extractor-2.10.1.jar=release/modules/ext/metadata-extractor-2.10.1.jar
file.reference.netcdf4-4.5.5.jar=release/modules/ext/netcdf4-4.5.5.jar
file.reference.noggit-0.5.jar=release/modules/ext/noggit-0.5.jar
file.reference.openaifsm-0.0.1.jar=release/modules/ext/openaifsm-0.0.1.jar
file.reference.opennlp-maxent-3.0.3.jar=release/modules/ext/opennlp-maxent-3.0.3.jar
-file.reference.opennlp-tools-1.5.3.jar=release/modules/ext/opennlp-tools-1.5.3.jar
-file.reference.org.apache.felix.scr.annotations-1.6.0.jar=release/modules/ext/org.apache.felix.scr.annotations-1.6.0.jar
-file.reference.org.apache.felix.scr.generator-1.1.2.jar=release/modules/ext/org.apache.felix.scr.generator-1.1.2.jar
-file.reference.org.osgi.compendium-4.0.0.jar=release/modules/ext/org.osgi.compendium-4.0.0.jar
-file.reference.org.osgi.core-4.0.0.jar=release/modules/ext/org.osgi.core-4.0.0.jar
-file.reference.pdfbox-2.0.8.jar=release/modules/ext/pdfbox-2.0.8.jar
-file.reference.pdfbox-tools-2.0.8.jar=release/modules/ext/pdfbox-tools-2.0.8.jar
-file.reference.poi-3.17.jar=release/modules/ext/poi-3.17.jar
-file.reference.poi-ooxml-3.17.jar=release/modules/ext/poi-ooxml-3.17.jar
-file.reference.poi-ooxml-schemas-3.17.jar=release/modules/ext/poi-ooxml-schemas-3.17.jar
-file.reference.poi-scratchpad-3.17.jar=release/modules/ext/poi-scratchpad-3.17.jar
+file.reference.poi-4.0.1.jar=release/modules/ext/poi-4.0.1.jar
+file.reference.poi-ooxml-4.0.1.jar=release/modules/ext/poi-ooxml-4.0.1.jar
+file.reference.poi-ooxml-schemas-4.0.1.jar=release/modules/ext/poi-ooxml-schemas-4.0.1.jar
+file.reference.poi-scratchpad-4.0.1.jar=release/modules/ext/poi-scratchpad-4.0.1.jar
file.reference.protobuf-java-2.5.0.jar=release/modules/ext/protobuf-java-2.5.0.jar
-file.reference.qdox-1.12.jar=release/modules/ext/qdox-1.12.jar
file.reference.quartz-2.2.0.jar=release/modules/ext/quartz-2.2.0.jar
-file.reference.rome-1.5.1.jar=release/modules/ext/rome-1.5.1.jar
-file.reference.rome-utils-1.5.1.jar=release/modules/ext/rome-utils-1.5.1.jar
-file.reference.sis-metadata-0.6.jar=release/modules/ext/sis-metadata-0.6.jar
-file.reference.sis-netcdf-0.6.jar=release/modules/ext/sis-netcdf-0.6.jar
-file.reference.sis-referencing-0.6.jar=release/modules/ext/sis-referencing-0.6.jar
-file.reference.sis-storage-0.6.jar=release/modules/ext/sis-storage-0.6.jar
-file.reference.sis-utility-0.6.jar=release/modules/ext/sis-utility-0.6.jar
-file.reference.slf4j-api-1.7.24.jar=release/modules/ext/slf4j-api-1.7.24.jar
file.reference.solr-solrj-4.9.1-javadoc.jar=release/modules/ext/solr-solrj-4.9.1-javadoc.jar
file.reference.solr-solrj-4.9.1-sources.jar=release/modules/ext/solr-solrj-4.9.1-sources.jar
file.reference.solr-solrj-4.9.1.jar=release/modules/ext/solr-solrj-4.9.1.jar
-file.reference.sqlite-jdbc-3.19.3.jar=release/modules/ext/sqlite-jdbc-3.19.3.jar
file.reference.sqlwrapper-0.0.1.jar=release/modules/ext/sqlwrapper-0.0.1.jar
file.reference.stax2-api-3.1.4.jar=release/modules/ext/stax2-api-3.1.4.jar
file.reference.tagsoup-1.2.1.jar=release/modules/ext/tagsoup-1.2.1.jar
-file.reference.tika-core-1.17.jar=release/modules/ext/tika-core-1.17.jar
-file.reference.tika-parsers-1.17-javadoc.jar=release/modules/ext/tika-parsers-1.17-javadoc.jar
-file.reference.tika-parsers-1.17-sources.jar=release/modules/ext/tika-parsers-1.17-sources.jar
-file.reference.tika-parsers-1.17.jar=release/modules/ext/tika-parsers-1.17.jar
+file.reference.tika-core-1.20.jar=release/modules/ext/tika-core-1.20.jar
+file.reference.tika-parsers-1.20.jar=release/modules/ext/tika-parsers-1.20.jar
file.reference.udunits-4.5.5.jar=release/modules/ext/udunits-4.5.5.jar
-file.reference.uimafit-core-2.1.0.jar=release/modules/ext/uimafit-core-2.1.0.jar
-file.reference.uimaj-adapter-vinci-2.6.0.jar=release/modules/ext/uimaj-adapter-vinci-2.6.0.jar
-file.reference.uimaj-core-2.5.0.jar=release/modules/ext/uimaj-core-2.5.0.jar
-file.reference.uimaj-cpe-2.6.0.jar=release/modules/ext/uimaj-cpe-2.6.0.jar
-file.reference.uimaj-document-annotation-2.5.0.jar=release/modules/ext/uimaj-document-annotation-2.5.0.jar
-file.reference.uimaj-examples-2.4.0.jar=release/modules/ext/uimaj-examples-2.4.0.jar
-file.reference.uimaj-tools-2.6.0.jar=release/modules/ext/uimaj-tools-2.6.0.jar
file.reference.vorbis-java-core-0.8.jar=release/modules/ext/vorbis-java-core-0.8.jar
file.reference.vorbis-java-tika-0.8.jar=release/modules/ext/vorbis-java-tika-0.8.jar
file.reference.woodstox-core-asl-4.4.1.jar=release/modules/ext/woodstox-core-asl-4.4.1.jar
diff --git a/KeywordSearch/nbproject/project.xml b/KeywordSearch/nbproject/project.xml
index 05aa7b3165..b6a814eb36 100644
--- a/KeywordSearch/nbproject/project.xml
+++ b/KeywordSearch/nbproject/project.xml
@@ -239,45 +239,17 @@
ext/commons-validator-1.5.1-sources.jar
release/modules/ext/commons-validator-1.5.1-sources.jar
-
- ext/apache-mime4j-dom-0.8.1.jar
- release/modules/ext/apache-mime4j-dom-0.8.1.jar
-
ext/commons-digester-1.8.1.jar
release/modules/ext/commons-digester-1.8.1.jar
-
- ext/jwnl-1.3.3.jar
- release/modules/ext/jwnl-1.3.3.jar
-
-
- ext/lucene-queryparser-4.0.0.jar
- release/modules/ext/lucene-queryparser-4.0.0.jar
-
-
- ext/httpclient-4.5.4.jar
- release/modules/ext/httpclient-4.5.4.jar
-
-
- ext/uimaj-examples-2.4.0.jar
- release/modules/ext/uimaj-examples-2.4.0.jar
-
ext/cdm-4.5.5.jar
release/modules/ext/cdm-4.5.5.jar
- ext/org.osgi.compendium-4.0.0.jar
- release/modules/ext/org.osgi.compendium-4.0.0.jar
-
-
- ext/geoapi-3.0.0.jar
- release/modules/ext/geoapi-3.0.0.jar
-
-
- ext/commons-compress-1.14.jar
- release/modules/ext/commons-compress-1.14.jar
+ ext/httpservices-4.5.5.jar
+ release/modules/ext/httpservices-4.5.5.jar
ext/hamcrest-core-1.3.jar
@@ -292,12 +264,8 @@
release/modules/ext/commons-logging-api-1.1.jar
- ext/jakarta-regexp-1.4.jar
- release/modules/ext/jakarta-regexp-1.4.jar
-
-
- ext/xmlbeans-2.6.0.jar
- release/modules/ext/xmlbeans-2.6.0.jar
+ ext/solr-solrj-4.9.1-javadoc.jar
+ release/modules/ext/solr-solrj-4.9.1-javadoc.jar
ext/quartz-2.2.0.jar
@@ -308,60 +276,60 @@
release/modules/ext/guava-17.0.jar
- ext/metadata-extractor-2.10.1.jar
- release/modules/ext/metadata-extractor-2.10.1.jar
+ ext/joda-time-2.2.jar
+ release/modules/ext/joda-time-2.2.jar
- ext/apache-mime4j-core-0.8.1.jar
- release/modules/ext/apache-mime4j-core-0.8.1.jar
+ ext/tika-core-1.20.jar
+ release/modules/ext/tika-core-1.20.jar
+
+
+ ext/tagsoup-1.2.1.jar
+ release/modules/ext/tagsoup-1.2.1.jar
ext/opennlp-maxent-3.0.3.jar
release/modules/ext/opennlp-maxent-3.0.3.jar
- ext/pdfbox-tools-2.0.8.jar
- release/modules/ext/pdfbox-tools-2.0.8.jar
-
-
- ext/jVinci-2.6.0.jar
- release/modules/ext/jVinci-2.6.0.jar
+ ext/poi-scratchpad-4.0.1.jar
+ release/modules/ext/poi-scratchpad-4.0.1.jar
ext/json-simple-1.1.1.jar
release/modules/ext/json-simple-1.1.1.jar
- ext/tika-parsers-1.17.jar
- release/modules/ext/tika-parsers-1.17.jar
+ ext/poi-ooxml-4.0.1.jar
+ release/modules/ext/poi-ooxml-4.0.1.jar
- ext/sis-utility-0.6.jar
- release/modules/ext/sis-utility-0.6.jar
+ ext/httpclient-4.5.6.jar
+ release\modules\ext\httpclient-4.5.6.jar
- ext/jhighlight-1.0.2.jar
- release/modules/ext/jhighlight-1.0.2.jar
+ ext/commons-codec-1.11.jar
+ release\modules\ext\commons-codec-1.11.jar
- ext/uimaj-cpe-2.6.0.jar
- release/modules/ext/uimaj-cpe-2.6.0.jar
+ ext/tika-parsers-1.20.jar
+ release/modules/ext/tika-parsers-1.20.jar
ext/log4j-1.2.17.jar
release/modules/ext/log4j-1.2.17.jar
- ext/ctakes-utils-3.2.2.jar
- release/modules/ext/ctakes-utils-3.2.2.jar
+ ext/jericho-html-3.3-javadoc.jar
+ release/modules/ext/jericho-html-3.3-javadoc.jar
- ext/cxf-rt-rs-client-3.0.16.jar
- release/modules/ext/cxf-rt-rs-client-3.0.16.jar
+ ext/udunits-4.5.5.jar
+ release/modules/ext/udunits-4.5.5.jar
- ext/jempbox-1.8.13.jar
- release/modules/ext/jempbox-1.8.13.jar
+ ext/commons-collections-3.2.2.jar
+ release/modules/ext/commons-collections-3.2.2.jar
ext/openaifsm-0.0.1.jar
@@ -371,10 +339,6 @@
ext/stax2-api-3.1.4.jar
release/modules/ext/stax2-api-3.1.4.jar
-
- ext/commons-collections4-4.1.jar
- release/modules/ext/commons-collections4-4.1.jar
-
ext/solr-solrj-4.9.1.jar
release/modules/ext/solr-solrj-4.9.1.jar
@@ -383,85 +347,57 @@
ext/xmpcore-5.1.3.jar
release/modules/ext/xmpcore-5.1.3.jar
-
- ext/jackcess-2.1.8.jar
- release/modules/ext/jackcess-2.1.8.jar
-
ext/findstructapi-0.0.1.jar
release/modules/ext/findstructapi-0.0.1.jar
+
+ ext/zookeeper-3.4.6.jar
+ release/modules/ext/zookeeper-3.4.6.jar
+
ext/jcommander-1.35.jar
release/modules/ext/jcommander-1.35.jar
-
- ext/sis-metadata-0.6.jar
- release/modules/ext/sis-metadata-0.6.jar
-
-
- ext/isoparser-1.1.18.jar
- release/modules/ext/isoparser-1.1.18.jar
-
ext/vorbis-java-core-0.8.jar
release/modules/ext/vorbis-java-core-0.8.jar
- ext/jdom2-2.0.4.jar
- release/modules/ext/jdom2-2.0.4.jar
+ ext/netcdf4-4.5.5.jar
+ release/modules/ext/netcdf4-4.5.5.jar
ext/java-libpst-0.8.1.jar
release/modules/ext/java-libpst-0.8.1.jar
- ext/commons-codec-1.10.jar
- release/modules/ext/commons-codec-1.10.jar
-
-
- ext/poi-ooxml-schemas-3.17.jar
- release/modules/ext/poi-ooxml-schemas-3.17.jar
-
-
- ext/poi-scratchpad-3.17.jar
- release/modules/ext/poi-scratchpad-3.17.jar
-
-
- ext/poi-3.17.jar
- release/modules/ext/poi-3.17.jar
+ ext/protobuf-java-2.5.0.jar
+ release/modules/ext/protobuf-java-2.5.0.jar
ext/lucene-queries-4.0.0.jar
release/modules/ext/lucene-queries-4.0.0.jar
- ext/bcprov-jdk15on-1.54.jar
- release/modules/ext/bcprov-jdk15on-1.54.jar
+ ext/commons-io-2.3.jar
+ release\modules\ext\commons-io-2.3.jar
- ext/fontbox-2.0.8.jar
- release/modules/ext/fontbox-2.0.8.jar
+ ext/jericho-html-3.3-sources.jar
+ release/modules/ext/jericho-html-3.3-sources.jar
ext/solr-solrj-4.9.1-sources.jar
release/modules/ext/solr-solrj-4.9.1-sources.jar
- ext/lucene-analyzers-common-4.0.0.jar
- release/modules/ext/lucene-analyzers-common-4.0.0.jar
+ ext/juniversalchardet-1.0.3.jar
+ release/modules/ext/juniversalchardet-1.0.3.jar
- ext/javax.ws.rs-api-2.0.1.jar
- release/modules/ext/javax.ws.rs-api-2.0.1.jar
-
-
- ext/httpmime-4.5.4.jar
- release/modules/ext/httpmime-4.5.4.jar
-
-
- ext/junrar-0.7.jar
- release/modules/ext/junrar-0.7.jar
+ ext/commons-lang-2.6.jar
+ release/modules/ext/commons-lang-2.6.jar
ext/libsvm-3.1.jar
@@ -472,8 +408,8 @@
release/modules/ext/noggit-0.5.jar
- ext/poi-ooxml-3.17.jar
- release/modules/ext/poi-ooxml-3.17.jar
+ ext/poi-4.0.1.jar
+ release/modules/ext/poi-4.0.1.jar
ext/jna-4.1.0.jar
@@ -532,29 +468,17 @@
release/modules/ext/jsr-275-0.9.3.jar
- ext/httpservices-4.5.5.jar
- release/modules/ext/httpservices-4.5.5.jar
-
-
- ext/httpcore-4.4.7.jar
- release/modules/ext/httpcore-4.4.7.jar
+ ext/httpcore-4.4.10.jar
+ release/modules/ext/httpcore-4.4.10.jar
ext/bcmail-jdk15on-1.54.jar
release/modules/ext/bcmail-jdk15on-1.54.jar
-
- ext/solr-solrj-4.9.1-javadoc.jar
- release/modules/ext/solr-solrj-4.9.1-javadoc.jar
-
ext/asm-all-3.1.jar
release/modules/ext/asm-all-3.1.jar
-
- ext/tika-parsers-1.17-javadoc.jar
- release/modules/ext/tika-parsers-1.17-javadoc.jar
-
ext/icu4j-3.8.jar
release/modules/ext/icu4j-3.8.jar
@@ -571,18 +495,6 @@
ext/ctakes-core-res-3.2.2.jar
release/modules/ext/ctakes-core-res-3.2.2.jar
-
- ext/joda-time-2.2.jar
- release/modules/ext/joda-time-2.2.jar
-
-
- ext/tagsoup-1.2.1.jar
- release/modules/ext/tagsoup-1.2.1.jar
-
-
- ext/tika-core-1.17.jar
- release/modules/ext/tika-core-1.17.jar
-
ext/lucene-core-4.0.0.jar
release/modules/ext/lucene-core-4.0.0.jar
@@ -603,10 +515,6 @@
ext/c3p0-0.9.1.1.jar
release/modules/ext/c3p0-0.9.1.1.jar
-
- ext/tika-parsers-1.17-sources.jar
- release/modules/ext/tika-parsers-1.17-sources.jar
-
ext/sqlwrapper-0.0.1.jar
release/modules/ext/sqlwrapper-0.0.1.jar
@@ -616,92 +524,8 @@
release/modules/ext/jackcess-encrypt-2.1.2.jar
- ext/jericho-html-3.3-javadoc.jar
- release/modules/ext/jericho-html-3.3-javadoc.jar
-
-
- ext/udunits-4.5.5.jar
- release/modules/ext/udunits-4.5.5.jar
-
-
- ext/commons-collections-3.2.2.jar
- release/modules/ext/commons-collections-3.2.2.jar
-
-
- ext/uimaj-document-annotation-2.5.0.jar
- release/modules/ext/uimaj-document-annotation-2.5.0.jar
-
-
- ext/woodstox-core-asl-4.4.1.jar
- release/modules/ext/woodstox-core-asl-4.4.1.jar
-
-
- ext/org.apache.felix.scr.generator-1.1.2.jar
- release/modules/ext/org.apache.felix.scr.generator-1.1.2.jar
-
-
- ext/pdfbox-2.0.8.jar
- release/modules/ext/pdfbox-2.0.8.jar
-
-
- ext/zookeeper-3.4.6.jar
- release/modules/ext/zookeeper-3.4.6.jar
-
-
- ext/cxf-rt-transports-http-3.0.16.jar
- release/modules/ext/cxf-rt-transports-http-3.0.16.jar
-
-
- ext/netcdf4-4.5.5.jar
- release/modules/ext/netcdf4-4.5.5.jar
-
-
- ext/slf4j-api-1.7.24.jar
- release/modules/ext/slf4j-api-1.7.24.jar
-
-
- ext/protobuf-java-2.5.0.jar
- release/modules/ext/protobuf-java-2.5.0.jar
-
-
- ext/sis-netcdf-0.6.jar
- release/modules/ext/sis-netcdf-0.6.jar
-
-
- ext/javax.annotation-api-1.2.jar
- release/modules/ext/javax.annotation-api-1.2.jar
-
-
- ext/jericho-html-3.3-sources.jar
- release/modules/ext/jericho-html-3.3-sources.jar
-
-
- ext/juniversalchardet-1.0.3.jar
- release/modules/ext/juniversalchardet-1.0.3.jar
-
-
- ext/org.apache.felix.scr.annotations-1.6.0.jar
- release/modules/ext/org.apache.felix.scr.annotations-1.6.0.jar
-
-
- ext/commons-lang-2.6.jar
- release/modules/ext/commons-lang-2.6.jar
-
-
- ext/cxf-core-3.0.16.jar
- release/modules/ext/cxf-core-3.0.16.jar
-
-
- ext/opennlp-tools-1.5.3.jar
- release/modules/ext/opennlp-tools-1.5.3.jar
-
-
- ext/rome-utils-1.5.1.jar
- release/modules/ext/rome-utils-1.5.1.jar
-
-
- ext/sis-storage-0.6.jar
- release/modules/ext/sis-storage-0.6.jar
+ ext/httpmime-4.5.6.jar
+ release\modules\ext\httpmime-4.5.6.jar
ext/jcip-annotations-1.0.jar
@@ -711,14 +535,6 @@
ext/commons-validator-1.5.1.jar
release/modules/ext/commons-validator-1.5.1.jar
-
- ext/uimafit-core-2.1.0.jar
- release/modules/ext/uimafit-core-2.1.0.jar
-
-
- ext/cxf-rt-frontend-jaxrs-3.0.16.jar
- release/modules/ext/cxf-rt-frontend-jaxrs-3.0.16.jar
-
ext/cleartk-util-2.0.0.jar
release/modules/ext/cleartk-util-2.0.0.jar
@@ -736,33 +552,13 @@
release/modules/ext/ehcache-core-2.6.2.jar
- ext/ctakes-type-system-3.2.2.jar
- release/modules/ext/ctakes-type-system-3.2.2.jar
-
-
- ext/rome-1.5.1.jar
- release/modules/ext/rome-1.5.1.jar
-
-
- ext/uimaj-adapter-vinci-2.6.0.jar
- release/modules/ext/uimaj-adapter-vinci-2.6.0.jar
-
-
- ext/ctakes-core-3.2.2.jar
- release/modules/ext/ctakes-core-3.2.2.jar
-
-
- ext/jsoup-1.7.2.jar
- release/modules/ext/jsoup-1.7.2.jar
+ ext/poi-ooxml-schemas-4.0.1.jar
+ release/modules/ext/poi-ooxml-schemas-4.0.1.jar
ext/commons-exec-1.3.jar
release/modules/ext/commons-exec-1.3.jar
-
- ext/uimaj-tools-2.6.0.jar
- release/modules/ext/uimaj-tools-2.6.0.jar
-
ext/vorbis-java-tika-0.8.jar
release/modules/ext/vorbis-java-tika-0.8.jar
diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties-MERGED b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties-MERGED
index 6f95dfc82f..ab7e11a07f 100755
--- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties-MERGED
+++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties-MERGED
@@ -35,7 +35,7 @@ KeywordSearchResultFactory.createNodeForKey.noResultsFound.text=No results found
KeywordSearchResultFactory.query.exception.msg=Could not perform the query
OpenIDE-Module-Display-Category=Ingest Module
-OpenIDE-Module-Long-Description=Keyword Search ingest module.\n\nThe module indexes files found in the disk image at ingest time.\nIt then periodically runs the search on the indexed files using one or more keyword lists (containing pure words and/or regular expressions) and posts results.\n\nThe module also contains additional tools integrated in the main GUI, such as keyword list configuration, keyword search bar in the top-right corner, extracted text viewer and search results viewer showing highlighted keywords found.
+OpenIDE-Module-Long-Description=Keyword Search ingest module.\n\nThe module indexes files found in the disk image at ingest time.\nIt then periodically runs the search on the indexed files using one or more keyword lists (containing pure words and/or regular expressions) and posts results.\n\n\The module also contains additional tools integrated in the main GUI, such as keyword list configuration, keyword search bar in the top-right corner, extracted text viewer and search results viewer showing highlighted keywords found.
OpenIDE-Module-Name=KeywordSearch
OptionsCategory_Name_KeywordSearchOptions=Keyword Search
OptionsCategory_Keywords_KeywordSearchOptions=Keyword Search
diff --git a/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Bundle.properties-MERGED b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Bundle.properties-MERGED
index 17d744eee1..7da2ebca7b 100755
--- a/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Bundle.properties-MERGED
+++ b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Bundle.properties-MERGED
@@ -64,7 +64,7 @@ ExtractZone_progress_Msg=Extracting :Zone.Identifer files
ExtractZone_Restricted=Restricted Sites Zone
ExtractZone_Trusted=Trusted Sites Zone
OpenIDE-Module-Display-Category=Ingest Module
-OpenIDE-Module-Long-Description=Recent Activity ingest module.\n\nThe module extracts useful information about the recent user activity on the disk image being ingested, such as:\n\n- Recently open documents,\n- Web activity (sites visited, stored cookies, book marked sites, search engine queries, file downloads),\n- Recently attached devices,\n- Installed programs.\n\nThe module currently supports Windows only disk images.\nThe plugin is also fully functional when deployed on Windows version of Autopsy.
+OpenIDE-Module-Long-Description=Recent Activity ingest module.\n\n\The module extracts useful information about the recent user activity on the disk image being ingested, such as:\n\n- Recently open documents,\n- Web activity (sites visited, stored cookies, book marked sites, search engine queries, file downloads),\n- Recently attached devices,\n- Installed programs.\n\nThe module currently supports Windows only disk images.\nThe plugin is also fully functional when deployed on Windows version of Autopsy.
OpenIDE-Module-Name=RecentActivity
OpenIDE-Module-Short-Description=Recent Activity finder ingest module
Chrome.moduleName=Chrome
diff --git a/docs/doxygen-user/images/triage/createVHD.png b/docs/doxygen-user/images/triage/createVHD.png
new file mode 100644
index 0000000000..8c8c859bcf
Binary files /dev/null and b/docs/doxygen-user/images/triage/createVHD.png differ
diff --git a/docs/doxygen-user/images/triage/fileFilter.png b/docs/doxygen-user/images/triage/fileFilter.png
new file mode 100644
index 0000000000..e327a15d71
Binary files /dev/null and b/docs/doxygen-user/images/triage/fileFilter.png differ
diff --git a/docs/doxygen-user/images/triage/fileFilterImage.png b/docs/doxygen-user/images/triage/fileFilterImage.png
new file mode 100644
index 0000000000..22b21d81af
Binary files /dev/null and b/docs/doxygen-user/images/triage/fileFilterImage.png differ
diff --git a/docs/doxygen-user/images/triage/ingestProfile.png b/docs/doxygen-user/images/triage/ingestProfile.png
new file mode 100644
index 0000000000..731058c4d8
Binary files /dev/null and b/docs/doxygen-user/images/triage/ingestProfile.png differ
diff --git a/docs/doxygen-user/images/triage/pipelineFolders.png b/docs/doxygen-user/images/triage/pipelineFolders.png
new file mode 100644
index 0000000000..41aa8a64bf
Binary files /dev/null and b/docs/doxygen-user/images/triage/pipelineFolders.png differ
diff --git a/docs/doxygen-user/images/triage/profileSelect.png b/docs/doxygen-user/images/triage/profileSelect.png
new file mode 100644
index 0000000000..d0b53df7e6
Binary files /dev/null and b/docs/doxygen-user/images/triage/profileSelect.png differ
diff --git a/docs/doxygen-user/live_triage.dox b/docs/doxygen-user/live_triage.dox
index 64f8accedf..58e6ed546d 100644
--- a/docs/doxygen-user/live_triage.dox
+++ b/docs/doxygen-user/live_triage.dox
@@ -1,4 +1,4 @@
-/*! \page live_triage_page Live Triage
+/*! \page live_triage_page Creating a Live Triage Drive
\section live_triage_overview Overview
diff --git a/docs/doxygen-user/main.dox b/docs/doxygen-user/main.dox
index db40ccd5fd..e148279aa6 100644
--- a/docs/doxygen-user/main.dox
+++ b/docs/doxygen-user/main.dox
@@ -62,7 +62,9 @@ The following topics are available here:
- \subpage windows_authentication
- \subpage multiuser_sec_page
- \subpage multiuser_page
-- \subpage live_triage_page
+- Triage
+ - \subpage triage_page
+ - \subpage live_triage_page
- \subpage advanced_page
- \subpage experimental_page
- \subpage command_line_ingest_page
diff --git a/docs/doxygen-user/translations.dox b/docs/doxygen-user/translations.dox
index 6ff49fa558..672268f231 100644
--- a/docs/doxygen-user/translations.dox
+++ b/docs/doxygen-user/translations.dox
@@ -72,4 +72,83 @@ You should submit a Github Pull Request when:
To get the code committed, send a [pull request](https://help.github.com/articles/about-pull-requests/) to the main Autopsy repository.
+\section translations_ui Translating The UI
+This section outlines how to translate the UI. To do this, you will need:
+
+- A git account
+- Basic familiarity with git
+- A full Autopsy development environment.
+
+\subsection translations_ui_autopsy Autopsy Development Environment
+
+You will need to have a full Autopsy development environment setup so that you can launch Autopsy with your translations and verify it is in the correct location and doesn't get cropped.
+
+You can find instructions for doing this in [BUILDING.txt](https://github.com/sleuthkit/autopsy/blob/develop/BUILDING.txt).
+
+\subsection translations_ui_strings Where The English Strings Are Stored
+
+Autopsy uses two different methods for storing the English versions of the UI strings. Some are stored in Bundle.properties files and others are stored in the code as \@Message annotations. The annotations make it harder for the code to be translated because translators would need to look in two places, but makes development easier.
+
+To make translations easier, we've added some logic into our build process to merge the various strings together into a single place. When the Autopsy code is compiled, it merges the contents of the annotations and the Bundle.properties files into a single file named Bundle.properties-MERGED. One of these files exists for each Java package.
+
+Let's look at an example in the corecomponents package. Note that some of these links may not be exactly correct once these files are updated and the documentation is not updated, but they serve as a basic reference):
+- There is a [Bundle.properties](https://github.com/sleuthkit/autopsy/blob/develop/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle.properties) file. At the time of this writing, there are 230 lines in that file.
+- In that same package, the [AutopsyOptionsPanel.java](https://github.com/sleuthkit/autopsy/blob/develop/Core/src/org/sleuthkit/autopsy/corecomponents/AutopsyOptionsPanel.java#L53) class has some strings defined as \@Message annotations.
+- There is a [Bundle.properties-MERGED](https://github.com/sleuthkit/autopsy/blob/develop/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle.properties-MERGED) file that contains the strings from both Bundle.properties and the annotations. At this time of this writing, that file has 277 lines.
+
+\subsection translations_ui_translation Where The Translated Strings Are Stored
+
+Each Java package should have a Bundle_AB.properties file that stores the translated text. The AB is replaced by the 2 character [country code] (http://www.lingoes.net/en/translator/langcode.htm). Such as Bundle_fr.properties for French or Bundle_ja.properties for Japanese.
+
+As an example, you can see the Japanese translation of the previous corecomponents package in [Bundle_ja.properties](https://github.com/sleuthkit/autopsy/blob/develop/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle_ja.properties).
+
+This file needs to contain all of the strings for that language. It needs to be based off of the Bundle.properties-MERGED file, not the Bundle.properties file (which does not contain all of the strings).
+
+
+
+\subsection translations_ui_start Translating To a New Language
+
+If there is not already documentation in a language, then you need to:
+- Go into each package
+- Copy the Bundle.properties-MERGED file to Bundle_XX.properties file where XX is replaced by the language code.
+- Edit the Bundle_XX.properties file and translate the English strings.
+
+
+\subsection translations_ui_update Updating The Translations
+
+When new releases are made and the English UI is updated, the other languages should be updated as well. To determine what has changed:
+
+- First, determine when the last time the translated file was changed. From a command line, you can change into the package folder and type:
+
+\code
+ $ cd Core/src/org/sleuthkit/autopsy/corecomponents
+ $ git log -n 1 Bundle_ja.properties
+ commit 94e4b1042af47908dd4a0b2959b3f6c3d4af1333
+ Author: John Doe
+ Date: Tue Jan 1 22:56:09 2019 -0500
+\endcode
+
+This shows you that commit 94e4b1042af47908dd4a0b2959b3f6c3d4af1333 was the last translation update to occur for the Japanese version.
+
+- Next, determine what changed in the English version since then:
+
+\code
+ $ git diff 94e4b1042af47908dd4a0b2959b3f6c3d4af1333 Bundle.properties-MERGED
+ -AutopsyOptionsPanel.restartNecessaryWarning.text=A restart is necessary for any changes to max memory to take effect.
+ +AutopsyOptionsPanel.restartNecessaryWarning.text=A restart is necessary for any memory changes to take effect.
+\endcode
+
+- Update the strings in Bundle_ja.properties appropriately based on what was added, removed, or changed.
+
+- If you do not get to complete all of the changes, you should create a TODO_xx.txt file that lists what was not updated so that other people know that not everything was updated.
+
+\subsection translations_ui_commit Committing the Documentation
+
+You should submit a Github Pull Request when:
+- You complete a language.
+- You don't have time to do more work, but want to submit what you did.
+
+To get the code committed, send a [pull request](https://help.github.com/articles/about-pull-requests/) to the main Autopsy repository.
+
+
*/
\ No newline at end of file
diff --git a/docs/doxygen-user/triage.dox b/docs/doxygen-user/triage.dox
new file mode 100644
index 0000000000..6f27b02683
--- /dev/null
+++ b/docs/doxygen-user/triage.dox
@@ -0,0 +1,97 @@
+/*! \page triage_page Triage
+
+\section triage_overview Overview
+
+Sometimes you need to make a quick decision about a system or systems and don't have the time or resources to make full images. For example, during a knock and talk you want to know if there is notable data on their system. Or you are at a location with many systems and want to know which should be analyzed first. Autopsy has features that will allow you to quickly find the data of interest without making full images of the devices. Those features will be described below, followed by some example scenarios that show how to put everything together.
+
+\section triage_features Triage-related Features
+
+There are many features of Autopsy that can come into play in a triage situation. Some help you process the files most likely to be relevant earlier, and others allow you to continue analyzing the data after disconnecting from the target system.
+
+\subsection triage_prioritization Prioritization
+
+The goal is to find the most important files first when there is limited time to analyze a system. Autopsy always runs on the user folders first (if present), since in many situations they are the most likely folders to contain data of interest.
+
+\image html triage/pipelineFolders.png
+
+\subsection triage_file_filter File Filters
+
+For a particular scenario, you may know specific file types that you are interested in. For example, if you are only concerned with finding images, you could save time by not analyzing any non-image files. This will allow a system to be processed far faster than if you analyzed every file.
+
+\image html triage/fileFilterImage.png
+
+File filters allow you to limit which types of files will be processed. The \ref file_filters section of \ref ingest_page page shows how to create a file filter. You can filter on file name/extension, path, or how recently the file was modified. Once saved, your new file filter can be selected when configuring ingest modules.
+
+\image html triage/fileFilter.png
+
+\subsection triage_profile Ingest Profiles
+
+Another way to speed up analysis is to only run some of the ingest modules. For example, if we're only interested in images, there may be no point in running the \ref keyword_search_page or the \ref encryption_page. You can manually select and configure the modules you want to run each time, but since many sessions are similar it may be easier to set up an ingest profile. An ingest profile allows you to store which file filter you want to run, which ingest modules should be enabled, and your configuration for each ingest module.
+
+\image html triage/ingestProfile.png
+
+Once you have at least one ingest profile configured, a new screen will appear before the normal ingest module configuration panel. If you choose your user-defined profile, that ingest module configuration panel will be skipped entirely and the ingest modules from that profile will be run on the data source.
+
+\image html triage/profileSelect.png
+
+See the \ref ingest_profiles section of the \ref ingest_page page for additional information on how to set up and use an ingest profile.
+
+\subsection triage_no_image Running on Live Systems and Devices
+
+In a triage situation, there is generally not time to make a full image of the system in question. There are a few ways to process live systems and devices with Autopsy:
+
+
+- Devices such as USB drives can be analyzed as local disks without needing to create an image file. See the \ref ds_local section for more details.
+
- A live triage drive can be created that will allow you to run Autopsy from a USB drive on a live system. All case data will be saved to the USB drive with minimal changes to the system being analyzed. See \ref live_triage_page for more details.
+
- The target computer can be booted from a trusted Linux or Windows USB and Autopsy can be run from it. Paladin includes Autopsy in its bootable Linux USB and a Windows FE image can be created as well.
+
+
+\subsubsection triage_vhd Making a Sparse Image
+
+With any of the above methods for analyzing live systems and devices there is still the problem that your Autopsy case won't be very useful after you disconnect from the drive. To solve this problem you can choose to make a "sparse VHD" as Autopsy is processing the device. This is a file format used by Microsoft Virtual Machines that is readable by Windows and other forensic tools. Instead of copying each sector sequentially, sparse VHDs allow us to copy sectors in any order. This lets us copy each sector as Autopsy reads it, so the sparse VHD will contain all of the files that have been processed so far. We will also have the data associated with volumes and file systems since Autopsy has to process those in the course of analyzing the system.
+
+To create a sparse VHD, check the box for "Make a VHD image..." when selecting the disk to analyze.
+
+\image html createVHD.png
+
+\section triage_scenarios Scenarios
+
+\subsection triage_scen1 Scenario: Previewing computer for child exploitation material
+
+In this scenario, you are trying to answer whether child exploitation images exist in a knock and talk type situation where you will have a limited amount of time with the target system.
+
+Preparaton at the office:
+
+- Create a \ref live_triage_page "live triage drive" on your USB drive
+
- Launch Autopsy from that USB drive and create an \ref ingest_profiles "ingest profile" that:
+
+- Uses a \ref file_filters "file filter" that runs on only picture and ZIP extensions
+
- Runs only the \ref hash_db_page "Hash Lookup Module", \ref EXIF_parser_page \ref file_type_identification_page, and \ref embedded_file_extractor_page
+
- Uses known child exploitation hash sets, following the instructions in \ref live_triage_hash_db to copy them to the USB drive
+
+
+
+At the house:
+
+- Start the analysis:
+
+ - Plus the live triage drive you made at the office into their laptop
+
- Launch Autopsy from the .bat file
+
- \ref cases_page "Create a case" (saving to your USB drive)
+
- Add a \ref ds_local "local drive data source"
+
+ - "C:"
+
- Choose to make VHD and keep default location
+
+
+ - As the automated analysis continues:
+
+ - Choose View->File Types->Images in the \ref tree_viewer_page "tree viewer" and review the thumbnails
+
- Wait for hash set hits
+
- Review EXIF fles
+
- \ref tagging_page "Tag" any notable files found
+
+ - You can stop the analysis at any time. All data read so far will be in the VHD file.
+
+
+*/
\ No newline at end of file