Merge branch 'develop' of https://github.com/markmckinnon/autopsy into develop

This commit is contained in:
Mark McKinnon 2025-01-21 11:54:37 -05:00
commit 8b49a5f829
99 changed files with 2861 additions and 1781 deletions

View File

@ -108,8 +108,6 @@
<copy todir="${ext.dir}"> <copy todir="${ext.dir}">
<fileset dir="${thirdparty.dir}/jai/"/> <fileset dir="${thirdparty.dir}/jai/"/>
</copy> </copy>
<copy file="${thirdparty.dir}/jdom/jdom-2.0.5.jar" todir="${ext.dir}" />
<copy file="${thirdparty.dir}/jdom/jdom-2.0.5-contrib.jar" todir="${ext.dir}" />
<copy file="${thirdparty.dir}/DatCon/3.6.9/DatCon.jar" todir="${ext.dir}" /> <copy file="${thirdparty.dir}/DatCon/3.6.9/DatCon.jar" todir="${ext.dir}" />
<!--Copy YARA to release--> <!--Copy YARA to release-->
<copy todir="${basedir}/release/yara" > <copy todir="${basedir}/release/yara" >

View File

@ -1,6 +1,3 @@
<!DOCTYPE ivy-module [
<!ENTITY httpcomponents.version "4.5.14">
]>
<ivy-module version="2.0"> <ivy-module version="2.0">
<info organisation="org.sleuthkit.autopsy" module="core"/> <info organisation="org.sleuthkit.autopsy" module="core"/>
<configurations > <configurations >
@ -10,43 +7,44 @@
<dependencies > <dependencies >
<dependency conf="core->default" org="com.github.vlsi.mxgraph" name="jgraphx" rev="4.2.2" /> <dependency conf="core->default" org="com.github.vlsi.mxgraph" name="jgraphx" rev="4.2.2" />
<dependency conf="core->default" org="org.apache.activemq" name="activemq-all" rev="5.16.4"/> <dependency org="jakarta.jms" name="jakarta.jms-api" rev="3.1.0"/>
<dependency conf="core->default" org="org.apache.curator" name="curator-client" rev="5.2.1"/> <dependency conf="core->default" org="org.apache.activemq" name="activemq-all" rev="6.1.4"/>
<dependency conf="core->default" org="org.apache.curator" name="curator-framework" rev="5.2.1"/> <dependency conf="core->default" org="org.apache.curator" name="curator-client" rev="${curator.version}"/>
<dependency conf="core->default" org="org.apache.curator" name="curator-recipes" rev="5.2.1"/> <dependency conf="core->default" org="org.apache.curator" name="curator-framework" rev="${curator.version}"/>
<dependency conf="core->default" org="org.apache.curator" name="curator-recipes" rev="${curator.version}"/>
<dependency conf="core->default" org="org.python" name="jython-standalone" rev="2.7.2" /> <dependency conf="core->default" org="org.python" name="jython-standalone" rev="2.7.4" />
<dependency conf="core->default" org="com.adobe.xmp" name="xmpcore" rev="6.1.11"/> <dependency conf="core->default" org="com.adobe.xmp" name="xmpcore" rev="6.1.11"/>
<dependency conf="core->default" org="org.apache.zookeeper" name="zookeeper" rev="3.8.0"/> <dependency conf="core->default" org="org.apache.zookeeper" name="zookeeper" rev="3.9.3"/>
<dependency conf="core->default" org="com.healthmarketscience.jackcess" name="jackcess" rev="4.0.1"/> <dependency conf="core->default" org="com.healthmarketscience.jackcess" name="jackcess" rev="4.0.7"/>
<dependency conf="core->default" org="com.healthmarketscience.jackcess" name="jackcess-encrypt" rev="4.0.1"/> <dependency conf="core->default" org="com.healthmarketscience.jackcess" name="jackcess-encrypt" rev="4.0.2"/>
<dependency conf="core->default" org="org.apache.commons" name="commons-dbcp2" rev="2.9.0"/> <dependency conf="core->default" org="org.apache.commons" name="commons-dbcp2" rev="2.13.0"/>
<dependency conf="core->default" org="org.jsoup" name="jsoup" rev="1.16.1"/> <dependency conf="core->default" org="org.jsoup" name="jsoup" rev="1.18.3"/>
<dependency conf="core->default" org="com.drewnoakes" name="metadata-extractor" rev="2.18.0"/> <dependency conf="core->default" org="com.drewnoakes" name="metadata-extractor" rev="2.19.0"/>
<dependency conf="core->default" org="com.ethteck.decodetect" name="decodetect-core" rev="0.3"/> <dependency conf="core->default" org="com.ethteck.decodetect" name="decodetect-core" rev="0.3"/>
<dependency conf="core->default" org="com.googlecode.libphonenumber" name="libphonenumber" rev="8.12.45" /> <dependency conf="core->default" org="com.googlecode.libphonenumber" name="libphonenumber" rev="8.13.52" />
<dependency conf="core->default" org="com.squareup.okhttp" name="okhttp" rev="2.7.5"/> <dependency conf="core->default" org="com.squareup.okhttp3" name="okhttp" rev="4.12.0"/>
<dependency conf="core->default" org="org.jfree" name="jfreechart" rev="1.5.3"/> <dependency conf="core->default" org="org.jfree" name="jfreechart" rev="1.5.5"/>
<!-- for yaml reading/writing --> <!-- for yaml reading/writing -->
<dependency conf="core->default" org="org.yaml" name="snakeyaml" rev="2.0"/> <dependency conf="core->default" org="org.yaml" name="snakeyaml" rev="2.3"/>
<!-- map support for geolocation --> <!-- map support for geolocation -->
<dependency conf="core->default" org="org.jxmapviewer" name="jxmapviewer2" rev="2.6"/> <dependency conf="core->default" org="org.jxmapviewer" name="jxmapviewer2" rev="2.8"/>
<!-- for handling diffs --> <!-- for handling diffs -->
<dependency conf="core->default" org="io.github.java-diff-utils" name="java-diff-utils" rev="4.11"/> <dependency conf="core->default" org="io.github.java-diff-utils" name="java-diff-utils" rev="4.15"/>
<!-- JAXB --> <!-- JAXB -->
<dependency conf="core->default" org="javax.xml.bind" name="jaxb-api" rev="2.3.1"/> <dependency conf="core->default" org="jakarta.xml.bind" name="jakarta.xml.bind-api" rev="4.0.2"/>
<dependency conf="core->default" org="org.glassfish.jaxb" name="jaxb-runtime" rev="2.3.3"/> <dependency conf="core->default" org="com.sun.xml.bind" name="jaxb-impl" rev="4.0.5"/>
<dependency conf="core->default" org="org.icepdf.os" name="icepdf-viewer" rev="6.2.2"> <dependency conf="core->default" org="org.icepdf.os" name="icepdf-viewer" rev="6.2.2">
<!-- get the new latest batik items below, override bouncy castle --> <!-- get the new latest batik items below, override bouncy castle -->
@ -62,40 +60,52 @@
<exclude org="com.sun.media" module="jai_imageio"/> <exclude org="com.sun.media" module="jai_imageio"/>
</dependency> </dependency>
<dependency conf="core->default" org="org.apache.xmlgraphics" name="batik-awt-util" rev="1.14"/> <dependency conf="core->default" org="org.apache.xmlgraphics" name="batik-awt-util" rev="${batik.version}"/>
<dependency conf="core->default" org="org.apache.xmlgraphics" name="batik-dom" rev="1.14"/> <dependency conf="core->default" org="org.apache.xmlgraphics" name="batik-dom" rev="${batik.version}"/>
<dependency conf="core->default" org="org.apache.xmlgraphics" name="batik-svg-dom" rev="1.14"/> <dependency conf="core->default" org="org.apache.xmlgraphics" name="batik-svg-dom" rev="${batik.version}"/>
<dependency conf="core->default" org="org.apache.xmlgraphics" name="batik-svggen" rev="1.14"/> <dependency conf="core->default" org="org.apache.xmlgraphics" name="batik-svggen" rev="${batik.version}"/>
<dependency conf="core->default" org="org.apache.xmlgraphics" name="batik-util" rev="1.14"/> <dependency conf="core->default" org="org.apache.xmlgraphics" name="batik-util" rev="${batik.version}"/>
<dependency conf="core->default" org="org.apache.xmlgraphics" name="batik-xml" rev="1.14"/> <dependency conf="core->default" org="org.apache.xmlgraphics" name="batik-xml" rev="${batik.version}"/>
<!-- https://mvnrepository.com/artifact/javax.ws.rs/javax.ws.rs-api --> <!-- https://mvnrepository.com/artifact/javax.ws.rs/javax.ws.rs-api -->
<dependency conf="core->default" org="javax.ws.rs" name="javax.ws.rs-api" rev="2.1.1"/> <dependency conf="core->default" org="javax.ws.rs" name="javax.ws.rs-api" rev="2.1.1"/>
<dependency org="org.jdom" name="jdom2" rev="2.0.6.1"/>
<!-- annotations like guarded by --> <!-- annotations like guarded by -->
<dependency conf="core->default" org="com.github.spotbugs" name="spotbugs-annotations" rev="4.6.0"/> <dependency conf="core->default" org="com.github.spotbugs" name="spotbugs-annotations" rev="4.8.6"/>
<dependency conf="core->default" org="com.license4j" name="license4j-runtime-library" rev="4.7.1"/> <dependency conf="core->default" org="com.license4j" name="license4j-runtime-library" rev="4.7.3"/>
<dependency conf="core->default" org="org.apache.httpcomponents" name="httpclient" rev="&httpcomponents.version;"/> <dependency conf="core->default" org="org.apache.httpcomponents" name="httpclient" rev="${httpcomponents.version}"/>
<dependency conf="core->default" org="org.apache.httpcomponents" name="httpmime" rev="&httpcomponents.version;"/> <dependency conf="core->default" org="org.apache.httpcomponents" name="httpmime" rev="${httpcomponents.version}"/>
<dependency conf="core->default" org="org.apache.httpcomponents" name="httpclient-win" rev="&httpcomponents.version;"> <dependency conf="core->default" org="org.apache.httpcomponents" name="httpclient-win" rev="${httpcomponents.version}">
<exclude name="jna" /> <exclude name="jna" />
<exclude name="jna-platform" /> <exclude name="jna-platform" />
</dependency> </dependency>
<override org="org.apache.zookeeper" module="zookeeper" rev="3.8.0"/> <dependency conf="core->default" org="org.bouncycastle" name="bcprov-jdk18on" rev="${bouncycastle.version}"/>
<override org="org.apache.zookeeper" module="zookeeper-jute" rev="3.8.0"/> <dependency conf="core->default" org="org.bouncycastle" name="bcpkix-jdk18on" rev="${bouncycastle.version}"/>
<override org="jakarta.ws.rs" module="jakarta.ws.rs-api" rev="2.1.5"/> <exclude org="org.bouncycastle" module="bcprov-jdk15on"/>
<override org="org.slf4j" module="slf4j-api" rev="1.7.36"/> <exclude org="org.bouncycastle" module="bcprov-ext-jdk15on"/>
<override org="com.google.guava" module="guava" rev="32.0.1-jre"/> <exclude org="org.bouncycastle" module="bcpkix-jdk15on"/>
<override org="com.fasterxml.jackson.core" module="jackson-core" rev="2.15.2"/>
<exclude org="*" ext="*" type="javadoc"/>
<override org="xalan" module="xalan" rev="2.7.3"/>
<override org="xerces" module="xercesImpl" rev="2.12.2"/>
<override org="org.bouncycastle" module="bcprov-jdk18on" rev="${bouncycastle.version}"/>
<override org="org.bouncycastle" module="bcpkix-jdk18on" rev="${bouncycastle.version}"/>
<override org="commons-io" module="commons-io" rev="2.18.0"/>
<override org="com.google.guava" module="guava" rev="33.4.0-jre"/>
<override org="io.netty" module="netty-transport" rev="${netty.version}"/>
<override org="io.netty" module="netty-transport-native-epoll" rev="${netty.version}"/>
<override org="io.netty" module="netty-transport-classes-epoll" rev="${netty.version}"/>
<override org="io.netty" module="netty-common" rev="${netty.version}"/>
<override org="io.netty" module="netty-tcnative-boringssl-static" rev="2.0.69.Final"/>
<!-- changes to bouncy castle version may also be reflected in thirdparty/IcePDF 6.2.2 -->
<override org="org.bouncycastle" module="bcprov-ext-jdk15on" rev="1.70"/>
<override org="org.bouncycastle" module="bcprov-jdk15on" rev="1.70"/>
<override org="org.bouncycastle" module="bcpkix-jdk15on" rev="1.70"/>
<override org="junit" module="junit" rev="4.13.2"/> <override org="junit" module="junit" rev="4.13.2"/>
</dependencies> </dependencies>
</ivy-module> </ivy-module>

View File

@ -1,4 +1,10 @@
<ivysettings> <ivysettings>
<property name="httpcomponents.version" value="4.5.14"/>
<property name="curator.version" value="5.7.1"/>
<property name="batik.version" value="1.18"/>
<property name="bouncycastle.version" value="1.79"/>
<property name="netty.version" value="4.1.116.Final"/>
<settings defaultResolver="main"/> <settings defaultResolver="main"/>
<resolvers> <resolvers>
<chain name="main"> <chain name="main">

View File

@ -1,110 +1,116 @@
file.reference.activemq-all-5.16.4.jar=release/modules/ext/activemq-all-5.16.4.jar
file.reference.audience-annotations-0.12.0.jar=release/modules/ext/audience-annotations-0.12.0.jar
file.reference.batik-awt-util-1.14.jar=release/modules/ext/batik-awt-util-1.14.jar
file.reference.batik-constants-1.14.jar=release/modules/ext/batik-constants-1.14.jar
file.reference.batik-css-1.14.jar=release/modules/ext/batik-css-1.14.jar
file.reference.batik-dom-1.14.jar=release/modules/ext/batik-dom-1.14.jar
file.reference.batik-ext-1.14.jar=release/modules/ext/batik-ext-1.14.jar
file.reference.batik-i18n-1.14.jar=release/modules/ext/batik-i18n-1.14.jar
file.reference.batik-parser-1.14.jar=release/modules/ext/batik-parser-1.14.jar
file.reference.batik-shared-resources-1.14.jar=release/modules/ext/batik-shared-resources-1.14.jar
file.reference.batik-svg-dom-1.14.jar=release/modules/ext/batik-svg-dom-1.14.jar
file.reference.batik-svggen-1.14.jar=release/modules/ext/batik-svggen-1.14.jar
file.reference.batik-util-1.14.jar=release/modules/ext/batik-util-1.14.jar
file.reference.batik-xml-1.14.jar=release/modules/ext/batik-xml-1.14.jar
file.reference.bcpkix-jdk15on-1.70.jar=release/modules/ext/bcpkix-jdk15on-1.70.jar
file.reference.bcprov-ext-jdk15on-1.70.jar=release/modules/ext/bcprov-ext-jdk15on-1.70.jar
file.reference.bcprov-jdk15on-1.70.jar=release/modules/ext/bcprov-jdk15on-1.70.jar
file.reference.bcutil-jdk15on-1.70.jar=release/modules/ext/bcutil-jdk15on-1.70.jar
file.reference.c3p0-0.9.5.5.jar=release/modules/ext/c3p0-0.9.5.5.jar
file.reference.checker-qual-3.33.0.jar=release/modules/ext/checker-qual-3.33.0.jar
file.reference.commons-codec-1.11.jar=release/modules/ext/commons-codec-1.11.jar
file.reference.commons-dbcp2-2.9.0.jar=release/modules/ext/commons-dbcp2-2.9.0.jar
file.reference.commons-io-2.11.0.jar=release/modules/ext/commons-io-2.11.0.jar
file.reference.commons-lang3-3.10.jar=release/modules/ext/commons-lang3-3.10.jar
file.reference.commons-logging-1.2.jar=release/modules/ext/commons-logging-1.2.jar
file.reference.commons-pool2-2.10.0.jar=release/modules/ext/commons-pool2-2.10.0.jar
file.reference.curator-client-5.2.1.jar=release/modules/ext/curator-client-5.2.1.jar
file.reference.curator-framework-5.2.1.jar=release/modules/ext/curator-framework-5.2.1.jar
file.reference.curator-recipes-5.2.1.jar=release/modules/ext/curator-recipes-5.2.1.jar
file.reference.DatCon.jar=release/modules/ext/DatCon.jar file.reference.DatCon.jar=release/modules/ext/DatCon.jar
file.reference.Rejistry-1.1-SNAPSHOT.jar=release/modules/ext/Rejistry-1.1-SNAPSHOT.jar
file.reference.SparseBitSet-1.1.jar=release/modules/ext/SparseBitSet-1.1.jar
file.reference.YaraJNIWrapper.jar=release/modules/ext/YaraJNIWrapper.jar
file.reference.activemq-all-6.1.4.jar=release/modules/ext/activemq-all-6.1.4.jar
file.reference.angus-activation-2.0.2.jar=release/modules/ext/angus-activation-2.0.2.jar
file.reference.annotations-13.0.jar=release/modules/ext/annotations-13.0.jar
file.reference.audience-annotations-0.12.0.jar=release/modules/ext/audience-annotations-0.12.0.jar
file.reference.batik-awt-util-1.18.jar=release/modules/ext/batik-awt-util-1.18.jar
file.reference.batik-constants-1.18.jar=release/modules/ext/batik-constants-1.18.jar
file.reference.batik-css-1.18.jar=release/modules/ext/batik-css-1.18.jar
file.reference.batik-dom-1.18.jar=release/modules/ext/batik-dom-1.18.jar
file.reference.batik-ext-1.18.jar=release/modules/ext/batik-ext-1.18.jar
file.reference.batik-i18n-1.18.jar=release/modules/ext/batik-i18n-1.18.jar
file.reference.batik-parser-1.18.jar=release/modules/ext/batik-parser-1.18.jar
file.reference.batik-shared-resources-1.18.jar=release/modules/ext/batik-shared-resources-1.18.jar
file.reference.batik-svg-dom-1.18.jar=release/modules/ext/batik-svg-dom-1.18.jar
file.reference.batik-svggen-1.18.jar=release/modules/ext/batik-svggen-1.18.jar
file.reference.batik-util-1.18.jar=release/modules/ext/batik-util-1.18.jar
file.reference.batik-xml-1.18.jar=release/modules/ext/batik-xml-1.18.jar
file.reference.bcpkix-jdk18on-1.79.jar=release/modules/ext/bcpkix-jdk18on-1.79.jar
file.reference.bcprov-jdk18on-1.79.jar=release/modules/ext/bcprov-jdk18on-1.79.jar
file.reference.bcutil-jdk18on-1.79.jar=release/modules/ext/bcutil-jdk18on-1.79.jar
file.reference.c3p0-0.9.5.5.jar=release/modules/ext/c3p0-0.9.5.5.jar
file.reference.checker-qual-3.43.0.jar=release/modules/ext/checker-qual-3.43.0.jar
file.reference.commons-codec-1.11.jar=release/modules/ext/commons-codec-1.11.jar
file.reference.commons-dbcp2-2.13.0.jar=release/modules/ext/commons-dbcp2-2.13.0.jar
file.reference.commons-io-2.18.0.jar=release/modules/ext/commons-io-2.18.0.jar
file.reference.commons-lang3-3.10.jar=release/modules/ext/commons-lang3-3.10.jar
file.reference.commons-logging-1.3.4.jar=release/modules/ext/commons-logging-1.3.4.jar
file.reference.commons-pool2-2.12.0.jar=release/modules/ext/commons-pool2-2.12.0.jar
file.reference.curator-client-5.7.1.jar=release/modules/ext/curator-client-5.7.1.jar
file.reference.curator-framework-5.7.1.jar=release/modules/ext/curator-framework-5.7.1.jar
file.reference.curator-recipes-5.7.1.jar=release/modules/ext/curator-recipes-5.7.1.jar
file.reference.decodetect-core-0.3.jar=release/modules/ext/decodetect-core-0.3.jar file.reference.decodetect-core-0.3.jar=release/modules/ext/decodetect-core-0.3.jar
file.reference.error_prone_annotations-2.18.0.jar=release/modules/ext/error_prone_annotations-2.18.0.jar file.reference.error_prone_annotations-2.36.0.jar=release/modules/ext/error_prone_annotations-2.36.0.jar
file.reference.failureaccess-1.0.1.jar=release/modules/ext/failureaccess-1.0.1.jar file.reference.failureaccess-1.0.1.jar=release/modules/ext/failureaccess-1.0.1.jar
file.reference.guava-32.0.1-jre.jar=release/modules/ext/guava-32.0.1-jre.jar file.reference.guava-33.4.0-jre.jar=release/modules/ext/guava-33.4.0-jre.jar
file.reference.httpclient-4.5.14.jar=release/modules/ext/httpclient-4.5.14.jar file.reference.httpclient-4.5.14.jar=release/modules/ext/httpclient-4.5.14.jar
file.reference.httpclient-win-4.5.14.jar=release/modules/ext/httpclient-win-4.5.14.jar file.reference.httpclient-win-4.5.14.jar=release/modules/ext/httpclient-win-4.5.14.jar
file.reference.httpcore-4.4.16.jar=release/modules/ext/httpcore-4.4.16.jar file.reference.httpcore-4.4.16.jar=release/modules/ext/httpcore-4.4.16.jar
file.reference.httpmime-4.5.14.jar=release/modules/ext/httpmime-4.5.14.jar file.reference.httpmime-4.5.14.jar=release/modules/ext/httpmime-4.5.14.jar
file.reference.icepdf-core-6.2.2.jar=release/modules/ext/icepdf-core-6.2.2.jar file.reference.icepdf-core-6.2.2.jar=release/modules/ext/icepdf-core-6.2.2.jar
file.reference.icepdf-viewer-6.2.2.jar=release/modules/ext/icepdf-viewer-6.2.2.jar file.reference.icepdf-viewer-6.2.2.jar=release/modules/ext/icepdf-viewer-6.2.2.jar
file.reference.istack-commons-runtime-3.0.11.jar=release/modules/ext/istack-commons-runtime-3.0.11.jar file.reference.j2objc-annotations-3.0.0.jar=release/modules/ext/j2objc-annotations-3.0.0.jar
file.reference.j2objc-annotations-2.8.jar=release/modules/ext/j2objc-annotations-2.8.jar file.reference.jackcess-4.0.7.jar=release/modules/ext/jackcess-4.0.7.jar
file.reference.jackcess-4.0.1.jar=release/modules/ext/jackcess-4.0.1.jar file.reference.jackcess-encrypt-4.0.2.jar=release/modules/ext/jackcess-encrypt-4.0.2.jar
file.reference.jackcess-encrypt-4.0.1.jar=release/modules/ext/jackcess-encrypt-4.0.1.jar
file.reference.jai_core-1.1.3.jar=release/modules/ext/jai_core-1.1.3.jar file.reference.jai_core-1.1.3.jar=release/modules/ext/jai_core-1.1.3.jar
file.reference.jai_imageio-1.1.jar=release/modules/ext/jai_imageio-1.1.jar file.reference.jai_imageio-1.1.jar=release/modules/ext/jai_imageio-1.1.jar
file.reference.jakarta.activation-1.2.2.jar=release/modules/ext/jakarta.activation-1.2.2.jar file.reference.jakarta.activation-api-2.1.3.jar=release/modules/ext/jakarta.activation-api-2.1.3.jar
file.reference.jakarta.xml.bind-api-2.3.3.jar=release/modules/ext/jakarta.xml.bind-api-2.3.3.jar file.reference.jakarta.annotation-api-2.1.1.jar=release/modules/ext/jakarta.annotation-api-2.1.1.jar
file.reference.java-diff-utils-4.11.jar=release/modules/ext/java-diff-utils-4.11.jar file.reference.jakarta.jms-api-3.1.0-sources.jar=release/modules/ext/jakarta.jms-api-3.1.0-sources.jar
file.reference.javax.activation-api-1.2.0.jar=release/modules/ext/javax.activation-api-1.2.0.jar file.reference.jakarta.jms-api-3.1.0.jar=release/modules/ext/jakarta.jms-api-3.1.0.jar
file.reference.jakarta.transaction-api-1.3.3.jar=release/modules/ext/jakarta.transaction-api-1.3.3.jar
file.reference.jakarta.xml.bind-api-4.0.2.jar=release/modules/ext/jakarta.xml.bind-api-4.0.2.jar
file.reference.java-diff-utils-4.15.jar=release/modules/ext/java-diff-utils-4.15.jar
file.reference.javax.ws.rs-api-2.1.1.jar=release/modules/ext/javax.ws.rs-api-2.1.1.jar file.reference.javax.ws.rs-api-2.1.1.jar=release/modules/ext/javax.ws.rs-api-2.1.1.jar
file.reference.jaxb-api-2.3.1.jar=release/modules/ext/jaxb-api-2.3.1.jar file.reference.jaxb-core-4.0.5.jar=release/modules/ext/jaxb-core-4.0.5.jar
file.reference.jaxb-runtime-2.3.3.jar=release/modules/ext/jaxb-runtime-2.3.3.jar file.reference.jaxb-impl-4.0.5.jar=release/modules/ext/jaxb-impl-4.0.5.jar
file.reference.jdom-2.0.5-contrib.jar=release/modules/ext/jdom-2.0.5-contrib.jar file.reference.jaxen-1.2.0.jar=release/modules/ext/jaxen-1.2.0.jar
file.reference.jdom-2.0.5.jar=release/modules/ext/jdom-2.0.5.jar file.reference.jdom2-2.0.6.1-sources.jar=release/modules/ext/jdom2-2.0.6.1-sources.jar
file.reference.jfreechart-1.5.3.jar=release/modules/ext/jfreechart-1.5.3.jar file.reference.jdom2-2.0.6.1.jar=release/modules/ext/jdom2-2.0.6.1.jar
file.reference.jfreechart-1.5.5.jar=release/modules/ext/jfreechart-1.5.5.jar
file.reference.jgraphx-4.2.2.jar=release/modules/ext/jgraphx-4.2.2.jar file.reference.jgraphx-4.2.2.jar=release/modules/ext/jgraphx-4.2.2.jar
file.reference.jsoup-1.16.1.jar=release/modules/ext/jsoup-1.16.1.jar file.reference.jsoup-1.18.3.jar=release/modules/ext/jsoup-1.18.3.jar
file.reference.jsr305-3.0.2.jar=release/modules/ext/jsr305-3.0.2.jar file.reference.jsr305-3.0.2.jar=release/modules/ext/jsr305-3.0.2.jar
file.reference.jutf7-1.0.0.jar=release/modules/ext/jutf7-1.0.0.jar file.reference.jutf7-1.0.0.jar=release/modules/ext/jutf7-1.0.0.jar
file.reference.jxmapviewer2-2.6.jar=release/modules/ext/jxmapviewer2-2.6.jar file.reference.jxmapviewer2-2.8.jar=release/modules/ext/jxmapviewer2-2.8.jar
file.reference.jython-standalone-2.7.2.jar=release/modules/ext/jython-standalone-2.7.2.jar file.reference.jython-standalone-2.7.4.jar=release/modules/ext/jython-standalone-2.7.4.jar
file.reference.libphonenumber-8.12.45.jar=release/modules/ext/libphonenumber-8.12.45.jar file.reference.kotlin-stdlib-1.8.21.jar=release/modules/ext/kotlin-stdlib-1.8.21.jar
file.reference.license4j-runtime-library-4.7.1.jar=release/modules/ext/license4j-runtime-library-4.7.1.jar file.reference.kotlin-stdlib-common-1.9.10.jar=release/modules/ext/kotlin-stdlib-common-1.9.10.jar
file.reference.kotlin-stdlib-jdk7-1.8.21.jar=release/modules/ext/kotlin-stdlib-jdk7-1.8.21.jar
file.reference.kotlin-stdlib-jdk8-1.8.21.jar=release/modules/ext/kotlin-stdlib-jdk8-1.8.21.jar
file.reference.libphonenumber-8.13.52.jar=release/modules/ext/libphonenumber-8.13.52.jar
file.reference.license4j-runtime-library-4.7.3.jar=release/modules/ext/license4j-runtime-library-4.7.3.jar
file.reference.listenablefuture-1.0.jar=release/modules/ext/listenablefuture-1.0.jar file.reference.listenablefuture-1.0.jar=release/modules/ext/listenablefuture-1.0.jar
file.reference.logback-classic-1.2.10.jar=release/modules/ext/logback-classic-1.2.10.jar
file.reference.logback-core-1.2.10.jar=release/modules/ext/logback-core-1.2.10.jar
file.reference.mchange-commons-java-0.3.0.jar=release/modules/ext/mchange-commons-java-0.3.0.jar file.reference.mchange-commons-java-0.3.0.jar=release/modules/ext/mchange-commons-java-0.3.0.jar
file.reference.metadata-extractor-2.18.0.jar=release/modules/ext/metadata-extractor-2.18.0.jar file.reference.metadata-extractor-2.19.0.jar=release/modules/ext/metadata-extractor-2.19.0.jar
file.reference.netty-buffer-4.1.73.Final.jar=release/modules/ext/netty-buffer-4.1.73.Final.jar file.reference.netty-buffer-4.1.113.Final.jar=release/modules/ext/netty-buffer-4.1.113.Final.jar
file.reference.netty-codec-4.1.73.Final.jar=release/modules/ext/netty-codec-4.1.73.Final.jar file.reference.netty-codec-4.1.113.Final.jar=release/modules/ext/netty-codec-4.1.113.Final.jar
file.reference.netty-common-4.1.73.Final.jar=release/modules/ext/netty-common-4.1.73.Final.jar file.reference.netty-common-4.1.116.Final.jar=release/modules/ext/netty-common-4.1.116.Final.jar
file.reference.netty-handler-4.1.73.Final.jar=release/modules/ext/netty-handler-4.1.73.Final.jar file.reference.netty-handler-4.1.113.Final.jar=release/modules/ext/netty-handler-4.1.113.Final.jar
file.reference.netty-resolver-4.1.73.Final.jar=release/modules/ext/netty-resolver-4.1.73.Final.jar file.reference.netty-resolver-4.1.113.Final.jar=release/modules/ext/netty-resolver-4.1.113.Final.jar
file.reference.netty-tcnative-2.0.48.Final.jar=release/modules/ext/netty-tcnative-2.0.48.Final.jar file.reference.netty-tcnative-boringssl-static-2.0.69.Final.jar=release/modules/ext/netty-tcnative-boringssl-static-2.0.69.Final.jar
file.reference.netty-tcnative-classes-2.0.48.Final.jar=release/modules/ext/netty-tcnative-classes-2.0.48.Final.jar file.reference.netty-tcnative-classes-2.0.66.Final.jar=release/modules/ext/netty-tcnative-classes-2.0.66.Final.jar
file.reference.netty-transport-4.1.73.Final.jar=release/modules/ext/netty-transport-4.1.73.Final.jar file.reference.netty-transport-4.1.116.Final.jar=release/modules/ext/netty-transport-4.1.116.Final.jar
file.reference.netty-transport-classes-epoll-4.1.73.Final.jar=release/modules/ext/netty-transport-classes-epoll-4.1.73.Final.jar file.reference.netty-transport-classes-epoll-4.1.116.Final.jar=release/modules/ext/netty-transport-classes-epoll-4.1.116.Final.jar
file.reference.netty-transport-native-epoll-4.1.73.Final.jar=release/modules/ext/netty-transport-native-epoll-4.1.73.Final.jar file.reference.netty-transport-native-epoll-4.1.116.Final-linux-x86_64.jar=release/modules/ext/netty-transport-native-epoll-4.1.116.Final-linux-x86_64.jar
file.reference.netty-transport-native-unix-common-4.1.73.Final.jar=release/modules/ext/netty-transport-native-unix-common-4.1.73.Final.jar file.reference.netty-transport-native-unix-common-4.1.113.Final.jar=release/modules/ext/netty-transport-native-unix-common-4.1.113.Final.jar
file.reference.okhttp-2.7.5.jar=release/modules/ext/okhttp-2.7.5.jar file.reference.okhttp-4.12.0.jar=release/modules/ext/okhttp-4.12.0.jar
file.reference.okio-1.6.0.jar=release/modules/ext/okio-1.6.0.jar file.reference.okio-3.6.0.jar=release/modules/ext/okio-3.6.0.jar
file.reference.okio-jvm-3.6.0.jar=release/modules/ext/okio-jvm-3.6.0.jar
file.reference.postgresql-42.7.3.jar=release/modules/ext/postgresql-42.7.3.jar file.reference.postgresql-42.7.3.jar=release/modules/ext/postgresql-42.7.3.jar
file.reference.Rejistry-1.1-SNAPSHOT.jar=release/modules/ext/Rejistry-1.1-SNAPSHOT.jar
file.reference.serializer-2.7.2.jar=release/modules/ext/serializer-2.7.2.jar
file.reference.sevenzipjbinding-AllPlatforms.jar=release/modules/ext/sevenzipjbinding-AllPlatforms.jar file.reference.sevenzipjbinding-AllPlatforms.jar=release/modules/ext/sevenzipjbinding-AllPlatforms.jar
file.reference.sevenzipjbinding.jar=release/modules/ext/sevenzipjbinding.jar file.reference.sevenzipjbinding.jar=release/modules/ext/sevenzipjbinding.jar
file.reference.sleuthkit-4.12.1.jar=release/modules/ext/sleuthkit-4.12.1.jar file.reference.sleuthkit-4.12.1.jar=release/modules/ext/sleuthkit-4.12.1.jar
file.reference.sleuthkit-caseuco-4.12.1.jar=release/modules/ext/sleuthkit-caseuco-4.12.1.jar file.reference.sleuthkit-caseuco-4.12.1.jar=release/modules/ext/sleuthkit-caseuco-4.12.1.jar
file.reference.slf4j-api-1.7.36.jar=release/modules/ext/slf4j-api-1.7.36.jar file.reference.slf4j-api-1.7.30.jar=release/modules/ext/slf4j-api-1.7.30.jar
file.reference.snakeyaml-2.0.jar=release/modules/ext/snakeyaml-2.0.jar file.reference.snakeyaml-2.3.jar=release/modules/ext/snakeyaml-2.3.jar
file.reference.SparseBitSet-1.1.jar=release/modules/ext/SparseBitSet-1.1.jar file.reference.spotbugs-annotations-4.8.6.jar=release/modules/ext/spotbugs-annotations-4.8.6.jar
file.reference.spotbugs-annotations-4.6.0.jar=release/modules/ext/spotbugs-annotations-4.6.0.jar
file.reference.sqlite-jdbc-3.47.1.0.jar=release/modules/ext/sqlite-jdbc-3.47.1.0.jar file.reference.sqlite-jdbc-3.47.1.0.jar=release/modules/ext/sqlite-jdbc-3.47.1.0.jar
file.reference.txw2-2.3.3.jar=release/modules/ext/txw2-2.3.3.jar file.reference.xalan-2.7.3.jar=release/modules/ext/xalan-2.7.3.jar
file.reference.xalan-2.7.2.jar=release/modules/ext/xalan-2.7.2.jar file.reference.xercesImpl-2.12.2.jar=release/modules/ext/xercesImpl-2.12.2.jar
file.reference.xml-apis-1.4.01.jar=release/modules/ext/xml-apis-1.4.01.jar file.reference.xml-apis-1.4.01.jar=release/modules/ext/xml-apis-1.4.01.jar
file.reference.xml-apis-ext-1.3.04.jar=release/modules/ext/xml-apis-ext-1.3.04.jar file.reference.xml-apis-ext-1.3.04.jar=release/modules/ext/xml-apis-ext-1.3.04.jar
file.reference.xmlgraphics-commons-2.6.jar=release/modules/ext/xmlgraphics-commons-2.6.jar file.reference.xmlgraphics-commons-2.10.jar=release/modules/ext/xmlgraphics-commons-2.10.jar
file.reference.xmpcore-6.1.11.jar=release/modules/ext/xmpcore-6.1.11.jar file.reference.xmpcore-6.1.11.jar=release/modules/ext/xmpcore-6.1.11.jar
file.reference.YaraJNIWrapper.jar=release/modules/ext/YaraJNIWrapper.jar file.reference.zookeeper-3.9.3.jar=release/modules/ext/zookeeper-3.9.3.jar
file.reference.zookeeper-3.8.0.jar=release/modules/ext/zookeeper-3.8.0.jar file.reference.zookeeper-jute-3.9.3.jar=release/modules/ext/zookeeper-jute-3.9.3.jar
file.reference.zookeeper-jute-3.8.0.jar=release/modules/ext/zookeeper-jute-3.8.0.jar javac.compilerargs=-Xlint -Xlint\:-serial
javac.source=17 javac.source=17
javac.compilerargs=-Xlint -Xlint:-serial
license.file=../LICENSE-2.0.txt license.file=../LICENSE-2.0.txt
nbm.homepage=http://www.sleuthkit.org/ nbm.homepage=http\://www.sleuthkit.org/
nbm.module.author=Brian Carrier nbm.module.author=Brian Carrier
nbm.needs.restart=true nbm.needs.restart=true
spec.version.base=10.25 spec.version.base=10.25

View File

@ -370,120 +370,124 @@
<package>org.sleuthkit.datamodel.blackboardutils.attributes</package> <package>org.sleuthkit.datamodel.blackboardutils.attributes</package>
</public-packages> </public-packages>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/activemq-all-5.16.4.jar</runtime-relative-path> <runtime-relative-path>ext/activemq-all-6.1.4.jar</runtime-relative-path>
<binary-origin>release/modules/ext/activemq-all-5.16.4.jar</binary-origin> <binary-origin>release/modules/ext/activemq-all-6.1.4.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/angus-activation-2.0.2.jar</runtime-relative-path>
<binary-origin>release/modules/ext/angus-activation-2.0.2.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/annotations-13.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/annotations-13.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/audience-annotations-0.12.0.jar</runtime-relative-path> <runtime-relative-path>ext/audience-annotations-0.12.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/audience-annotations-0.12.0.jar</binary-origin> <binary-origin>release/modules/ext/audience-annotations-0.12.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/batik-awt-util-1.14.jar</runtime-relative-path> <runtime-relative-path>ext/batik-awt-util-1.18.jar</runtime-relative-path>
<binary-origin>release/modules/ext/batik-awt-util-1.14.jar</binary-origin> <binary-origin>release/modules/ext/batik-awt-util-1.18.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/batik-constants-1.14.jar</runtime-relative-path> <runtime-relative-path>ext/batik-constants-1.18.jar</runtime-relative-path>
<binary-origin>release/modules/ext/batik-constants-1.14.jar</binary-origin> <binary-origin>release/modules/ext/batik-constants-1.18.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/batik-css-1.14.jar</runtime-relative-path> <runtime-relative-path>ext/batik-css-1.18.jar</runtime-relative-path>
<binary-origin>release/modules/ext/batik-css-1.14.jar</binary-origin> <binary-origin>release/modules/ext/batik-css-1.18.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/batik-dom-1.14.jar</runtime-relative-path> <runtime-relative-path>ext/batik-dom-1.18.jar</runtime-relative-path>
<binary-origin>release/modules/ext/batik-dom-1.14.jar</binary-origin> <binary-origin>release/modules/ext/batik-dom-1.18.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/batik-ext-1.14.jar</runtime-relative-path> <runtime-relative-path>ext/batik-ext-1.18.jar</runtime-relative-path>
<binary-origin>release/modules/ext/batik-ext-1.14.jar</binary-origin> <binary-origin>release/modules/ext/batik-ext-1.18.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/batik-i18n-1.14.jar</runtime-relative-path> <runtime-relative-path>ext/batik-i18n-1.18.jar</runtime-relative-path>
<binary-origin>release/modules/ext/batik-i18n-1.14.jar</binary-origin> <binary-origin>release/modules/ext/batik-i18n-1.18.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/batik-parser-1.14.jar</runtime-relative-path> <runtime-relative-path>ext/batik-parser-1.18.jar</runtime-relative-path>
<binary-origin>release/modules/ext/batik-parser-1.14.jar</binary-origin> <binary-origin>release/modules/ext/batik-parser-1.18.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/batik-shared-resources-1.14.jar</runtime-relative-path> <runtime-relative-path>ext/batik-shared-resources-1.18.jar</runtime-relative-path>
<binary-origin>release/modules/ext/batik-shared-resources-1.14.jar</binary-origin> <binary-origin>release/modules/ext/batik-shared-resources-1.18.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/batik-svg-dom-1.14.jar</runtime-relative-path> <runtime-relative-path>ext/batik-svg-dom-1.18.jar</runtime-relative-path>
<binary-origin>release/modules/ext/batik-svg-dom-1.14.jar</binary-origin> <binary-origin>release/modules/ext/batik-svg-dom-1.18.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/batik-svggen-1.14.jar</runtime-relative-path> <runtime-relative-path>ext/batik-svggen-1.18.jar</runtime-relative-path>
<binary-origin>release/modules/ext/batik-svggen-1.14.jar</binary-origin> <binary-origin>release/modules/ext/batik-svggen-1.18.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/batik-util-1.14.jar</runtime-relative-path> <runtime-relative-path>ext/batik-util-1.18.jar</runtime-relative-path>
<binary-origin>release/modules/ext/batik-util-1.14.jar</binary-origin> <binary-origin>release/modules/ext/batik-util-1.18.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/batik-xml-1.14.jar</runtime-relative-path> <runtime-relative-path>ext/batik-xml-1.18.jar</runtime-relative-path>
<binary-origin>release/modules/ext/batik-xml-1.14.jar</binary-origin> <binary-origin>release/modules/ext/batik-xml-1.18.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/bcpkix-jdk15on-1.70.jar</runtime-relative-path> <runtime-relative-path>ext/bcpkix-jdk18on-1.79.jar</runtime-relative-path>
<binary-origin>release/modules/ext/bcpkix-jdk15on-1.70.jar</binary-origin> <binary-origin>release/modules/ext/bcpkix-jdk18on-1.79.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/bcprov-ext-jdk15on-1.70.jar</runtime-relative-path> <runtime-relative-path>ext/bcprov-jdk18on-1.79.jar</runtime-relative-path>
<binary-origin>release/modules/ext/bcprov-ext-jdk15on-1.70.jar</binary-origin> <binary-origin>release/modules/ext/bcprov-jdk18on-1.79.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/bcprov-jdk15on-1.70.jar</runtime-relative-path> <runtime-relative-path>ext/bcutil-jdk18on-1.79.jar</runtime-relative-path>
<binary-origin>release/modules/ext/bcprov-jdk15on-1.70.jar</binary-origin> <binary-origin>release/modules/ext/bcutil-jdk18on-1.79.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/bcutil-jdk15on-1.70.jar</runtime-relative-path>
<binary-origin>release/modules/ext/bcutil-jdk15on-1.70.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/c3p0-0.9.5.5.jar</runtime-relative-path> <runtime-relative-path>ext/c3p0-0.9.5.5.jar</runtime-relative-path>
<binary-origin>release/modules/ext/c3p0-0.9.5.5.jar</binary-origin> <binary-origin>release/modules/ext/c3p0-0.9.5.5.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/checker-qual-3.33.0.jar</runtime-relative-path> <runtime-relative-path>ext/checker-qual-3.43.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/checker-qual-3.33.0.jar</binary-origin> <binary-origin>release/modules/ext/checker-qual-3.43.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/commons-codec-1.11.jar</runtime-relative-path> <runtime-relative-path>ext/commons-codec-1.11.jar</runtime-relative-path>
<binary-origin>release/modules/ext/commons-codec-1.11.jar</binary-origin> <binary-origin>release/modules/ext/commons-codec-1.11.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/commons-dbcp2-2.9.0.jar</runtime-relative-path> <runtime-relative-path>ext/commons-dbcp2-2.13.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/commons-dbcp2-2.9.0.jar</binary-origin> <binary-origin>release/modules/ext/commons-dbcp2-2.13.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/commons-io-2.11.0.jar</runtime-relative-path> <runtime-relative-path>ext/commons-io-2.18.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/commons-io-2.11.0.jar</binary-origin> <binary-origin>release/modules/ext/commons-io-2.18.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/commons-lang3-3.10.jar</runtime-relative-path> <runtime-relative-path>ext/commons-lang3-3.10.jar</runtime-relative-path>
<binary-origin>release/modules/ext/commons-lang3-3.10.jar</binary-origin> <binary-origin>release/modules/ext/commons-lang3-3.10.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/commons-logging-1.2.jar</runtime-relative-path> <runtime-relative-path>ext/commons-logging-1.3.4.jar</runtime-relative-path>
<binary-origin>release/modules/ext/commons-logging-1.2.jar</binary-origin> <binary-origin>release/modules/ext/commons-logging-1.3.4.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/commons-pool2-2.10.0.jar</runtime-relative-path> <runtime-relative-path>ext/commons-pool2-2.12.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/commons-pool2-2.10.0.jar</binary-origin> <binary-origin>release/modules/ext/commons-pool2-2.12.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/curator-client-5.2.1.jar</runtime-relative-path> <runtime-relative-path>ext/curator-client-5.7.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/curator-client-5.2.1.jar</binary-origin> <binary-origin>release/modules/ext/curator-client-5.7.1.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/curator-framework-5.2.1.jar</runtime-relative-path> <runtime-relative-path>ext/curator-framework-5.7.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/curator-framework-5.2.1.jar</binary-origin> <binary-origin>release/modules/ext/curator-framework-5.7.1.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/curator-recipes-5.2.1.jar</runtime-relative-path> <runtime-relative-path>ext/curator-recipes-5.7.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/curator-recipes-5.2.1.jar</binary-origin> <binary-origin>release/modules/ext/curator-recipes-5.7.1.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/DatCon.jar</runtime-relative-path> <runtime-relative-path>ext/DatCon.jar</runtime-relative-path>
@ -494,16 +498,16 @@
<binary-origin>release/modules/ext/decodetect-core-0.3.jar</binary-origin> <binary-origin>release/modules/ext/decodetect-core-0.3.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/error_prone_annotations-2.18.0.jar</runtime-relative-path> <runtime-relative-path>ext/error_prone_annotations-2.36.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/error_prone_annotations-2.18.0.jar</binary-origin> <binary-origin>release/modules/ext/error_prone_annotations-2.36.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/failureaccess-1.0.1.jar</runtime-relative-path> <runtime-relative-path>ext/failureaccess-1.0.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/failureaccess-1.0.1.jar</binary-origin> <binary-origin>release/modules/ext/failureaccess-1.0.1.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/guava-32.0.1-jre.jar</runtime-relative-path> <runtime-relative-path>ext/guava-33.4.0-jre.jar</runtime-relative-path>
<binary-origin>release/modules/ext/guava-32.0.1-jre.jar</binary-origin> <binary-origin>release/modules/ext/guava-33.4.0-jre.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/httpclient-4.5.14.jar</runtime-relative-path> <runtime-relative-path>ext/httpclient-4.5.14.jar</runtime-relative-path>
@ -530,20 +534,16 @@
<binary-origin>release/modules/ext/icepdf-viewer-6.2.2.jar</binary-origin> <binary-origin>release/modules/ext/icepdf-viewer-6.2.2.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/istack-commons-runtime-3.0.11.jar</runtime-relative-path> <runtime-relative-path>ext/j2objc-annotations-3.0.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/istack-commons-runtime-3.0.11.jar</binary-origin> <binary-origin>release/modules/ext/j2objc-annotations-3.0.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/j2objc-annotations-2.8.jar</runtime-relative-path> <runtime-relative-path>ext/jackcess-4.0.7.jar</runtime-relative-path>
<binary-origin>release/modules/ext/j2objc-annotations-2.8.jar</binary-origin> <binary-origin>release/modules/ext/jackcess-4.0.7.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/jackcess-4.0.1.jar</runtime-relative-path> <runtime-relative-path>ext/jackcess-encrypt-4.0.2.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jackcess-4.0.1.jar</binary-origin> <binary-origin>release/modules/ext/jackcess-encrypt-4.0.2.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/jackcess-encrypt-4.0.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jackcess-encrypt-4.0.1.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/jai_core-1.1.3.jar</runtime-relative-path> <runtime-relative-path>ext/jai_core-1.1.3.jar</runtime-relative-path>
@ -554,52 +554,68 @@
<binary-origin>release/modules/ext/jai_imageio-1.1.jar</binary-origin> <binary-origin>release/modules/ext/jai_imageio-1.1.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/jakarta.activation-1.2.2.jar</runtime-relative-path> <runtime-relative-path>ext/jakarta.activation-api-2.1.3.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jakarta.activation-1.2.2.jar</binary-origin> <binary-origin>release/modules/ext/jakarta.activation-api-2.1.3.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/jakarta.xml.bind-api-2.3.3.jar</runtime-relative-path> <runtime-relative-path>ext/jakarta.annotation-api-2.1.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jakarta.xml.bind-api-2.3.3.jar</binary-origin> <binary-origin>release/modules/ext/jakarta.annotation-api-2.1.1.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/java-diff-utils-4.11.jar</runtime-relative-path> <runtime-relative-path>ext/jakarta.jms-api-3.1.0-sources.jar</runtime-relative-path>
<binary-origin>release/modules/ext/java-diff-utils-4.11.jar</binary-origin> <binary-origin>release/modules/ext/jakarta.jms-api-3.1.0-sources.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/javax.activation-api-1.2.0.jar</runtime-relative-path> <runtime-relative-path>ext/jakarta.jms-api-3.1.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/javax.activation-api-1.2.0.jar</binary-origin> <binary-origin>release/modules/ext/jakarta.jms-api-3.1.0.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/jakarta.transaction-api-1.3.3.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jakarta.transaction-api-1.3.3.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/jakarta.xml.bind-api-4.0.2.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jakarta.xml.bind-api-4.0.2.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/java-diff-utils-4.15.jar</runtime-relative-path>
<binary-origin>release/modules/ext/java-diff-utils-4.15.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/javax.ws.rs-api-2.1.1.jar</runtime-relative-path> <runtime-relative-path>ext/javax.ws.rs-api-2.1.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/javax.ws.rs-api-2.1.1.jar</binary-origin> <binary-origin>release/modules/ext/javax.ws.rs-api-2.1.1.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/jaxb-api-2.3.1.jar</runtime-relative-path> <runtime-relative-path>ext/jaxb-core-4.0.5.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jaxb-api-2.3.1.jar</binary-origin> <binary-origin>release/modules/ext/jaxb-core-4.0.5.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/jaxb-runtime-2.3.3.jar</runtime-relative-path> <runtime-relative-path>ext/jaxb-impl-4.0.5.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jaxb-runtime-2.3.3.jar</binary-origin> <binary-origin>release/modules/ext/jaxb-impl-4.0.5.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/jdom-2.0.5-contrib.jar</runtime-relative-path> <runtime-relative-path>ext/jaxen-1.2.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jdom-2.0.5-contrib.jar</binary-origin> <binary-origin>release/modules/ext/jaxen-1.2.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/jdom-2.0.5.jar</runtime-relative-path> <runtime-relative-path>ext/jdom2-2.0.6.1-sources.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jdom-2.0.5.jar</binary-origin> <binary-origin>release/modules/ext/jdom2-2.0.6.1-sources.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/jfreechart-1.5.3.jar</runtime-relative-path> <runtime-relative-path>ext/jdom2-2.0.6.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jfreechart-1.5.3.jar</binary-origin> <binary-origin>release/modules/ext/jdom2-2.0.6.1.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/jfreechart-1.5.5.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jfreechart-1.5.5.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/jgraphx-4.2.2.jar</runtime-relative-path> <runtime-relative-path>ext/jgraphx-4.2.2.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jgraphx-4.2.2.jar</binary-origin> <binary-origin>release/modules/ext/jgraphx-4.2.2.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/jsoup-1.16.1.jar</runtime-relative-path> <runtime-relative-path>ext/jsoup-1.18.3.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jsoup-1.16.1.jar</binary-origin> <binary-origin>release/modules/ext/jsoup-1.18.3.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/jsr305-3.0.2.jar</runtime-relative-path> <runtime-relative-path>ext/jsr305-3.0.2.jar</runtime-relative-path>
@ -610,92 +626,104 @@
<binary-origin>release/modules/ext/jutf7-1.0.0.jar</binary-origin> <binary-origin>release/modules/ext/jutf7-1.0.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/jxmapviewer2-2.6.jar</runtime-relative-path> <runtime-relative-path>ext/jxmapviewer2-2.8.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jxmapviewer2-2.6.jar</binary-origin> <binary-origin>release/modules/ext/jxmapviewer2-2.8.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/jython-standalone-2.7.2.jar</runtime-relative-path> <runtime-relative-path>ext/jython-standalone-2.7.4.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jython-standalone-2.7.2.jar</binary-origin> <binary-origin>release/modules/ext/jython-standalone-2.7.4.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/libphonenumber-8.12.45.jar</runtime-relative-path> <runtime-relative-path>ext/kotlin-stdlib-1.8.21.jar</runtime-relative-path>
<binary-origin>release/modules/ext/libphonenumber-8.12.45.jar</binary-origin> <binary-origin>release/modules/ext/kotlin-stdlib-1.8.21.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/license4j-runtime-library-4.7.1.jar</runtime-relative-path> <runtime-relative-path>ext/kotlin-stdlib-common-1.9.10.jar</runtime-relative-path>
<binary-origin>release/modules/ext/license4j-runtime-library-4.7.1.jar</binary-origin> <binary-origin>release/modules/ext/kotlin-stdlib-common-1.9.10.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/kotlin-stdlib-jdk7-1.8.21.jar</runtime-relative-path>
<binary-origin>release/modules/ext/kotlin-stdlib-jdk7-1.8.21.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/kotlin-stdlib-jdk8-1.8.21.jar</runtime-relative-path>
<binary-origin>release/modules/ext/kotlin-stdlib-jdk8-1.8.21.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/libphonenumber-8.13.52.jar</runtime-relative-path>
<binary-origin>release/modules/ext/libphonenumber-8.13.52.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/license4j-runtime-library-4.7.3.jar</runtime-relative-path>
<binary-origin>release/modules/ext/license4j-runtime-library-4.7.3.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/listenablefuture-1.0.jar</runtime-relative-path> <runtime-relative-path>ext/listenablefuture-1.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/listenablefuture-1.0.jar</binary-origin> <binary-origin>release/modules/ext/listenablefuture-1.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/logback-classic-1.2.10.jar</runtime-relative-path>
<binary-origin>release/modules/ext/logback-classic-1.2.10.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/logback-core-1.2.10.jar</runtime-relative-path>
<binary-origin>release/modules/ext/logback-core-1.2.10.jar</binary-origin>
</class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/mchange-commons-java-0.3.0.jar</runtime-relative-path> <runtime-relative-path>ext/mchange-commons-java-0.3.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/mchange-commons-java-00.3.0.jar</binary-origin> <binary-origin>release/modules/ext/mchange-commons-java-0.3.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/metadata-extractor-2.18.0.jar</runtime-relative-path> <runtime-relative-path>ext/metadata-extractor-2.19.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/metadata-extractor-2.18.0.jar</binary-origin> <binary-origin>release/modules/ext/metadata-extractor-2.19.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/netty-buffer-4.1.73.Final.jar</runtime-relative-path> <runtime-relative-path>ext/netty-buffer-4.1.113.Final.jar</runtime-relative-path>
<binary-origin>release/modules/ext/netty-buffer-4.1.73.Final.jar</binary-origin> <binary-origin>release/modules/ext/netty-buffer-4.1.113.Final.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/netty-codec-4.1.73.Final.jar</runtime-relative-path> <runtime-relative-path>ext/netty-codec-4.1.113.Final.jar</runtime-relative-path>
<binary-origin>release/modules/ext/netty-codec-4.1.73.Final.jar</binary-origin> <binary-origin>release/modules/ext/netty-codec-4.1.113.Final.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/netty-common-4.1.73.Final.jar</runtime-relative-path> <runtime-relative-path>ext/netty-common-4.1.116.Final.jar</runtime-relative-path>
<binary-origin>release/modules/ext/netty-common-4.1.73.Final.jar</binary-origin> <binary-origin>release/modules/ext/netty-common-4.1.116.Final.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/netty-handler-4.1.73.Final.jar</runtime-relative-path> <runtime-relative-path>ext/netty-handler-4.1.113.Final.jar</runtime-relative-path>
<binary-origin>release/modules/ext/netty-handler-4.1.73.Final.jar</binary-origin> <binary-origin>release/modules/ext/netty-handler-4.1.113.Final.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/netty-resolver-4.1.73.Final.jar</runtime-relative-path> <runtime-relative-path>ext/netty-resolver-4.1.113.Final.jar</runtime-relative-path>
<binary-origin>release/modules/ext/netty-resolver-4.1.73.Final.jar</binary-origin> <binary-origin>release/modules/ext/netty-resolver-4.1.113.Final.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/netty-tcnative-2.0.48.Final.jar</runtime-relative-path> <runtime-relative-path>ext/netty-tcnative-boringssl-static-2.0.69.Final.jar</runtime-relative-path>
<binary-origin>release/modules/ext/netty-tcnative-2.0.48.Final.jar</binary-origin> <binary-origin>release/modules/ext/netty-tcnative-boringssl-static-2.0.69.Final.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/netty-tcnative-classes-2.0.48.Final.jar</runtime-relative-path> <runtime-relative-path>ext/netty-tcnative-classes-2.0.66.Final.jar</runtime-relative-path>
<binary-origin>release/modules/ext/netty-tcnative-classes-2.0.48.Final.jar</binary-origin> <binary-origin>release/modules/ext/netty-tcnative-classes-2.0.66.Final.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/netty-transport-4.1.73.Final.jar</runtime-relative-path> <runtime-relative-path>ext/netty-transport-4.1.116.Final.jar</runtime-relative-path>
<binary-origin>release/modules/ext/netty-transport-4.1.73.Final.jar</binary-origin> <binary-origin>release/modules/ext/netty-transport-4.1.116.Final.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/netty-transport-classes-epoll-4.1.73.Final.jar</runtime-relative-path> <runtime-relative-path>ext/netty-transport-classes-epoll-4.1.116.Final.jar</runtime-relative-path>
<binary-origin>release/modules/ext/netty-transport-classes-epoll-4.1.73.Final.jar</binary-origin> <binary-origin>release/modules/ext/netty-transport-classes-epoll-4.1.116.Final.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/netty-transport-native-epoll-4.1.73.Final.jar</runtime-relative-path> <runtime-relative-path>ext/netty-transport-native-epoll-4.1.116.Final-linux-x86_64.jar</runtime-relative-path>
<binary-origin>release/modules/ext/netty-transport-native-epoll-4.1.73.Final.jar</binary-origin> <binary-origin>release/modules/ext/netty-transport-native-epoll-4.1.116.Final-linux-x86_64.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/netty-transport-native-unix-common-4.1.73.Final.jar</runtime-relative-path> <runtime-relative-path>ext/netty-transport-native-unix-common-4.1.113.Final.jar</runtime-relative-path>
<binary-origin>release/modules/ext/netty-transport-native-unix-common-4.1.73.Final.jar</binary-origin> <binary-origin>release/modules/ext/netty-transport-native-unix-common-4.1.113.Final.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/okhttp-2.7.5.jar</runtime-relative-path> <runtime-relative-path>ext/okhttp-4.12.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/okhttp-2.7.5.jar</binary-origin> <binary-origin>release/modules/ext/okhttp-4.12.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/okio-1.6.0.jar</runtime-relative-path> <runtime-relative-path>ext/okio-3.6.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/okio-1.6.0.jar</binary-origin> <binary-origin>release/modules/ext/okio-3.6.0.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/okio-jvm-3.6.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/okio-jvm-3.6.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/postgresql-42.7.3.jar</runtime-relative-path> <runtime-relative-path>ext/postgresql-42.7.3.jar</runtime-relative-path>
@ -705,10 +733,6 @@
<runtime-relative-path>ext/Rejistry-1.1-SNAPSHOT.jar</runtime-relative-path> <runtime-relative-path>ext/Rejistry-1.1-SNAPSHOT.jar</runtime-relative-path>
<binary-origin>release/modules/ext/Rejistry-1.1-SNAPSHOT.jar</binary-origin> <binary-origin>release/modules/ext/Rejistry-1.1-SNAPSHOT.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/serializer-2.7.2.jar</runtime-relative-path>
<binary-origin>release/modules/ext/serializer-2.7.2.jar</binary-origin>
</class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/sevenzipjbinding-AllPlatforms.jar</runtime-relative-path> <runtime-relative-path>ext/sevenzipjbinding-AllPlatforms.jar</runtime-relative-path>
<binary-origin>release/modules/ext/sevenzipjbinding-AllPlatforms.jar</binary-origin> <binary-origin>release/modules/ext/sevenzipjbinding-AllPlatforms.jar</binary-origin>
@ -726,32 +750,32 @@
<binary-origin>release/modules/ext/sleuthkit-caseuco-4.12.1.jar</binary-origin> <binary-origin>release/modules/ext/sleuthkit-caseuco-4.12.1.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/slf4j-api-1.7.36.jar</runtime-relative-path> <runtime-relative-path>ext/slf4j-api-1.7.30.jar</runtime-relative-path>
<binary-origin>release/modules/ext/slf4j-api-1.7.36.jar</binary-origin> <binary-origin>release/modules/ext/slf4j-api-1.7.30.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/snakeyaml-2.0.jar</runtime-relative-path> <runtime-relative-path>ext/snakeyaml-2.3.jar</runtime-relative-path>
<binary-origin>release/modules/ext/snakeyaml-2.0.jar</binary-origin> <binary-origin>release/modules/ext/snakeyaml-2.3.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/SparseBitSet-1.1.jar</runtime-relative-path> <runtime-relative-path>ext/SparseBitSet-1.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/SparseBitSet-1.1.jar</binary-origin> <binary-origin>release/modules/ext/SparseBitSet-1.1.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/spotbugs-annotations-4.6.0.jar</runtime-relative-path> <runtime-relative-path>ext/spotbugs-annotations-4.8.6.jar</runtime-relative-path>
<binary-origin>release/modules/ext/spotbugs-annotations-4.6.0.jar</binary-origin> <binary-origin>release/modules/ext/spotbugs-annotations-4.8.6.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/sqlite-jdbc-3.47.1.0.jar</runtime-relative-path> <runtime-relative-path>ext/sqlite-jdbc-3.47.1.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/sqlite-jdbc-3.47.1.0.jar</binary-origin> <binary-origin>release/modules/ext/sqlite-jdbc-3.47.1.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/txw2-2.3.3.jar</runtime-relative-path> <runtime-relative-path>ext/xalan-2.7.3.jar</runtime-relative-path>
<binary-origin>release/modules/ext/txw2-2.3.3.jar</binary-origin> <binary-origin>release/modules/ext/xalan-2.7.3.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/xalan-2.7.2.jar</runtime-relative-path> <runtime-relative-path>ext/xercesImpl-2.12.2.jar</runtime-relative-path>
<binary-origin>release/modules/ext/xalan-2.7.2.jar</binary-origin> <binary-origin>release/modules/ext/xercesImpl-2.12.2.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/xml-apis-1.4.01.jar</runtime-relative-path> <runtime-relative-path>ext/xml-apis-1.4.01.jar</runtime-relative-path>
@ -762,8 +786,8 @@
<binary-origin>release/modules/ext/xml-apis-ext-1.3.04.jar</binary-origin> <binary-origin>release/modules/ext/xml-apis-ext-1.3.04.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/xmlgraphics-commons-2.6.jar</runtime-relative-path> <runtime-relative-path>ext/xmlgraphics-commons-2.10.jar</runtime-relative-path>
<binary-origin>release/modules/ext/xmlgraphics-commons-2.6.jar</binary-origin> <binary-origin>release/modules/ext/xmlgraphics-commons-2.10.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/xmpcore-6.1.11.jar</runtime-relative-path> <runtime-relative-path>ext/xmpcore-6.1.11.jar</runtime-relative-path>
@ -774,12 +798,12 @@
<binary-origin>release/modules/ext/YaraJNIWrapper.jar</binary-origin> <binary-origin>release/modules/ext/YaraJNIWrapper.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/zookeeper-3.8.0.jar</runtime-relative-path> <runtime-relative-path>ext/zookeeper-3.9.3.jar</runtime-relative-path>
<binary-origin>release/modules/ext/zookeeper-3.8.0.jar</binary-origin> <binary-origin>release/modules/ext/zookeeper-3.9.3.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/zookeeper-jute-3.8.0.jar</runtime-relative-path> <runtime-relative-path>ext/zookeeper-jute-3.9.3.jar</runtime-relative-path>
<binary-origin>release/modules/ext/zookeeper-jute-3.8.0.jar</binary-origin> <binary-origin>release/modules/ext/zookeeper-jute-3.9.3.jar</binary-origin>
</class-path-extension> </class-path-extension>
</data> </data>
</configuration> </configuration>

View File

@ -18,7 +18,7 @@
*/ */
package com.basistech.df.cybertriage.autopsy; package com.basistech.df.cybertriage.autopsy;
import java.awt.Desktop; import org.sleuthkit.autopsy.coreutils.Desktop;
import java.io.IOException; import java.io.IOException;
import java.net.URI; import java.net.URI;
import java.net.URISyntaxException; import java.net.URISyntaxException;

View File

@ -32,7 +32,7 @@ public class CTCloudException extends Exception{
public enum ErrorCode { public enum ErrorCode {
BAD_REQUEST("CT-400", "Unknown or Bad request. Please contact Basis support at " + Constants.SUPPORT_AT_CYBERTRIAGE_DOT_COM + " for help diagnosing the problem."), BAD_REQUEST("CT-400", "Unknown or Bad request. Please contact Basis support at " + Constants.SUPPORT_AT_CYBERTRIAGE_DOT_COM + " for help diagnosing the problem."),
INVALID_KEY("CT-401", "An invalid license ID was used to access CyberTriage Cloud Service. Please contact Basis support " + Constants.SUPPORT_AT_CYBERTRIAGE_DOT_COM + " for help diagnosing the problem."), INVALID_KEY("CT-401", "An invalid license ID was used to access CyberTriage Cloud Service. Please remove the license from the Cyber Triage options panel."),
GATEWAY_TIMEOUT("CT-504", "Request to CyberTriage Cloud Service timed out. Please retry after some time. If issue persists, please contact Basis support at " + Constants.SUPPORT_AT_CYBERTRIAGE_DOT_COM + " for assistance."), GATEWAY_TIMEOUT("CT-504", "Request to CyberTriage Cloud Service timed out. Please retry after some time. If issue persists, please contact Basis support at " + Constants.SUPPORT_AT_CYBERTRIAGE_DOT_COM + " for assistance."),
UN_AUTHORIZED("CT-403", "An authorization error occurred. Please contact Basis support " + Constants.SUPPORT_AT_CYBERTRIAGE_DOT_COM + " for help diagnosing the problem."), UN_AUTHORIZED("CT-403", "An authorization error occurred. Please contact Basis support " + Constants.SUPPORT_AT_CYBERTRIAGE_DOT_COM + " for help diagnosing the problem."),
PROXY_UNAUTHORIZED("CT-407", "Proxy authentication failed. Please validate the connection settings from the Options panel Proxy Settings."), PROXY_UNAUTHORIZED("CT-407", "Proxy authentication failed. Please validate the connection settings from the Options panel Proxy Settings."),

View File

@ -39,7 +39,7 @@ import org.sleuthkit.autopsy.ingest.IngestModuleGlobalSettingsPanel;
*/ */
public class CTOptionsPanel extends IngestModuleGlobalSettingsPanel { public class CTOptionsPanel extends IngestModuleGlobalSettingsPanel {
private static final int MAX_SUBPANEL_WIDTH = 650; private static final int MAX_SUBPANEL_WIDTH = 700;
private static final Logger logger = Logger.getLogger(CTOptionsPanel.class.getName()); private static final Logger logger = Logger.getLogger(CTOptionsPanel.class.getName());
@ -70,14 +70,14 @@ public class CTOptionsPanel extends IngestModuleGlobalSettingsPanel {
} }
private void addSubOptionsPanels(List<CTOptionsSubPanel> subPanels) { private void addSubOptionsPanels(List<CTOptionsSubPanel> subPanels) {
GridBagConstraints disclaimerConstraints = new GridBagConstraints(); GridBagConstraints disclaimerConstraints = new GridBagConstraints();
disclaimerConstraints.gridx = 0; disclaimerConstraints.gridx = 0;
disclaimerConstraints.gridy = 0; disclaimerConstraints.gridy = 0;
disclaimerConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; disclaimerConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
disclaimerConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; disclaimerConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
disclaimerConstraints.insets = new java.awt.Insets(5, 5, 5, 5); disclaimerConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
disclaimerConstraints.weighty = 0; disclaimerConstraints.weighty = 0;
disclaimerConstraints.weightx = 0; disclaimerConstraints.weightx = 0;
for (int i = 0; i < subPanels.size(); i++) { for (int i = 0; i < subPanels.size(); i++) {
CTOptionsSubPanel subPanel = subPanels.get(i); CTOptionsSubPanel subPanel = subPanels.get(i);

View File

@ -23,6 +23,8 @@ EULADialog.cancelButton.text=Cancel
EULADialog.acceptButton.text=Accept EULADialog.acceptButton.text=Accept
EULADialog.title=Cyber Triage End User License Agreement EULADialog.title=Cyber Triage End User License Agreement
CTMalwareScannerOptionsPanel.licenseInfoMessageLabel.text= CTMalwareScannerOptionsPanel.licenseInfoMessageLabel.text=
CTMalwareScannerOptionsPanel.disclaimer.text=<html>The Cyber Triage Malware Scanner module uses 40+ malware scanning engines to identify if Windows executables are malicious. It requires a paid subscription to use.</html>
CTMalwareScannerOptionsPanel.purchaseFromLabel.text=For licensing information, visit CTMalwareScannerOptionsPanel.purchaseFromLabel.text=For licensing information, visit
CTLicenseDialog.licenseNumberTextField.toolTipText=AUT-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX CTLicenseDialog.licenseNumberTextField.toolTipText=AUT-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
CTMalwareScannerOptionsPanel.licenseErrorLabel.text=
CTMalwareScannerOptionsPanel.licenseInfoRemoveButton.text=Remove License
CTMalwareScannerOptionsPanel.text=<html>The Cyber Triage Malware Scanner module uses 40+ malware scanning engines to identify if Windows executables are malicious. It requires a paid subscription to use.</html>

View File

@ -28,7 +28,7 @@ CTMalwareScannerOptionsPanel_licenseAddDialog_desc=License Number:
CTMalwareScannerOptionsPanel_licenseAddDialog_title=Add a License... CTMalwareScannerOptionsPanel_licenseAddDialog_title=Add a License...
CTMalwareScannerOptionsPanel_licenseAddDialogEnteredErr_desc=The license number has already been entered CTMalwareScannerOptionsPanel_licenseAddDialogEnteredErr_desc=The license number has already been entered
CTMalwareScannerOptionsPanel_licenseAddDialogEnteredErr_title=License Number Already Entered CTMalwareScannerOptionsPanel_licenseAddDialogEnteredErr_title=License Number Already Entered
CTMalwareScannerOptionsPanel_licenseAddDialogPatternErr_desc=Please verify that license number is of format 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX' CTMalwareScannerOptionsPanel_licenseAddDialogPatternErr_desc=Please verify that license number is of format 'AUT-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'
CTMalwareScannerOptionsPanel_licenseAddDialogPatternErr_title=Invalid License Number CTMalwareScannerOptionsPanel_licenseAddDialogPatternErr_title=Invalid License Number
CTMalwareScannerOptionsPanel_LicenseFetcher_apiErr_title=Server Error CTMalwareScannerOptionsPanel_LicenseFetcher_apiErr_title=Server Error
# {0} - licenseCode # {0} - licenseCode
@ -63,6 +63,9 @@ EULADialog.cancelButton.text=Cancel
EULADialog.acceptButton.text=Accept EULADialog.acceptButton.text=Accept
EULADialog.title=Cyber Triage End User License Agreement EULADialog.title=Cyber Triage End User License Agreement
CTMalwareScannerOptionsPanel.licenseInfoMessageLabel.text= CTMalwareScannerOptionsPanel.licenseInfoMessageLabel.text=
CTMalwareScannerOptionsPanel.disclaimer.text=<html>The Cyber Triage Malware Scanner module uses 40+ malware scanning engines to identify if Windows executables are malicious. It requires a paid subscription to use.</html>
CTMalwareScannerOptionsPanel.purchaseFromLabel.text=For licensing information, visit CTMalwareScannerOptionsPanel.purchaseFromLabel.text=For licensing information, visit
CTLicenseDialog.licenseNumberTextField.toolTipText=AUT-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX CTLicenseDialog.licenseNumberTextField.toolTipText=AUT-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
CTMalwareScannerOptionsPanel.licenseErrorLabel.text=
CTMalwareScannerOptionsPanel.licenseInfoRemoveButton.text=Remove License
CTMalwareScannerOptionsPanel.text=<html>The Cyber Triage Malware Scanner module uses 40+ malware scanning engines to identify if Windows executables are malicious. It requires a paid subscription to use.</html>
Installer_LicenseCheck_cloudExceptionTitle=Cyber Triage Error

View File

@ -51,6 +51,15 @@ public class CTLicensePersistence {
return instance; return instance;
} }
public synchronized boolean deleteLicenseResponse() {
File licenseFile = getCTLicenseFile();
if (licenseFile.exists()) {
return licenseFile.delete();
} else {
return false;
}
}
public synchronized boolean saveLicenseResponse(LicenseResponse licenseResponse) { public synchronized boolean saveLicenseResponse(LicenseResponse licenseResponse) {
if (licenseResponse != null) { if (licenseResponse != null) {
File licenseFile = getCTLicenseFile(); File licenseFile = getCTLicenseFile();

View File

@ -1,6 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?> <?xml version="1.0" encoding="UTF-8" ?>
<Form version="1.8" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JPanelFormInfo"> <Form version="1.8" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
<Properties>
<Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
<Dimension value="[650, 32767]"/>
</Property>
</Properties>
<AuxValues> <AuxValues>
<AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="1"/> <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="1"/>
<AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/> <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
@ -11,7 +16,7 @@
<AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/> <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
<AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/> <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
<AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/> <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
<AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,1,90,0,0,1,-29"/> <AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,1,90,0,0,2,6"/>
</AuxValues> </AuxValues>
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/> <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/>
@ -25,10 +30,13 @@
</TitledBorder> </TitledBorder>
</Border> </Border>
</Property> </Property>
<Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
<Dimension value="[650, 2147483647]"/>
</Property>
</Properties> </Properties>
<Constraints> <Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
<GridBagConstraints gridX="0" gridY="2" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="18" weightX="1.0" weightY="0.0"/> <GridBagConstraints gridX="-1" gridY="-1" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="1.0" weightY="0.0"/>
</Constraint> </Constraint>
</Constraints> </Constraints>
@ -37,9 +45,16 @@
<Component class="javax.swing.JLabel" name="disclaimer"> <Component class="javax.swing.JLabel" name="disclaimer">
<Properties> <Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="com/basistech/df/cybertriage/autopsy/ctoptions/ctcloud/Bundle.properties" key="CTMalwareScannerOptionsPanel.disclaimer.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/> <ResourceString bundle="com/basistech/df/cybertriage/autopsy/ctoptions/ctcloud/Bundle.properties" key="CTMalwareScannerOptionsPanel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property> </Property>
<Property name="verticalAlignment" type="int" value="1"/> <Property name="verticalAlignment" type="int" value="1"/>
<Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
<Dimension value="[650, 32]"/>
</Property>
<Property name="name" type="java.lang.String" value="" noResource="true"/>
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
<Dimension value="[650, 32]"/>
</Property>
</Properties> </Properties>
<AuxValues> <AuxValues>
<AuxValue name="JavaCodeGenerator_VariableLocal" type="java.lang.Boolean" value="true"/> <AuxValue name="JavaCodeGenerator_VariableLocal" type="java.lang.Boolean" value="true"/>
@ -72,10 +87,79 @@
</Properties> </Properties>
<Constraints> <Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
<GridBagConstraints gridX="0" gridY="0" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="5" insetsLeft="5" insetsBottom="5" insetsRight="5" anchor="18" weightX="1.0" weightY="0.0"/> <GridBagConstraints gridX="0" gridY="0" gridWidth="3" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="5" insetsLeft="5" insetsBottom="5" insetsRight="5" anchor="18" weightX="1.0" weightY="0.0"/>
</Constraint> </Constraint>
</Constraints> </Constraints>
</Component> </Component>
<Container class="javax.swing.JPanel" name="buttonSpacer">
<Properties>
<Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
<Dimension value="[32767, 0]"/>
</Property>
<Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
<Dimension value="[5, 0]"/>
</Property>
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
<Dimension value="[5, 0]"/>
</Property>
</Properties>
<AuxValues>
<AuxValue name="JavaCodeGenerator_VariableLocal" type="java.lang.Boolean" value="true"/>
<AuxValue name="JavaCodeGenerator_VariableModifier" type="java.lang.Integer" value="0"/>
</AuxValues>
<Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
<GridBagConstraints gridX="0" gridY="2" gridWidth="2" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="1.0" weightY="0.0"/>
</Constraint>
</Constraints>
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignFlowLayout"/>
</Container>
<Container class="javax.swing.JPanel" name="buttonPanel">
<AuxValues>
<AuxValue name="JavaCodeGenerator_VariableLocal" type="java.lang.Boolean" value="true"/>
<AuxValue name="JavaCodeGenerator_VariableModifier" type="java.lang.Integer" value="0"/>
</AuxValues>
<Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
<GridBagConstraints gridX="2" gridY="2" gridWidth="1" gridHeight="7" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="11" weightX="0.0" weightY="0.0"/>
</Constraint>
</Constraints>
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/>
<SubComponents>
<Component class="javax.swing.JButton" name="licenseInfoAddButton">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="com/basistech/df/cybertriage/autopsy/ctoptions/ctcloud/Bundle.properties" key="CTMalwareScannerOptionsPanel.licenseInfoAddButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="licenseInfoAddButtonActionPerformed"/>
</Events>
<Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
<GridBagConstraints gridX="0" gridY="0" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="5" insetsLeft="5" insetsBottom="5" insetsRight="5" anchor="12" weightX="0.0" weightY="0.0"/>
</Constraint>
</Constraints>
</Component>
<Component class="javax.swing.JButton" name="licenseInfoRemoveButton">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="com/basistech/df/cybertriage/autopsy/ctoptions/ctcloud/Bundle.properties" key="CTMalwareScannerOptionsPanel.licenseInfoRemoveButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="licenseInfoRemoveButtonActionPerformed"/>
</Events>
<Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
<GridBagConstraints gridX="0" gridY="1" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="5" insetsBottom="5" insetsRight="5" anchor="12" weightX="0.0" weightY="0.0"/>
</Constraint>
</Constraints>
</Component>
</SubComponents>
</Container>
<Component class="javax.swing.JLabel" name="licenseInfoExpiresLabel"> <Component class="javax.swing.JLabel" name="licenseInfoExpiresLabel">
<Properties> <Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
@ -84,7 +168,7 @@
</Properties> </Properties>
<Constraints> <Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
<GridBagConstraints gridX="0" gridY="1" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="5" insetsLeft="5" insetsBottom="5" insetsRight="5" anchor="18" weightX="1.0" weightY="0.0"/> <GridBagConstraints gridX="0" gridY="3" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="5" insetsLeft="5" insetsBottom="5" insetsRight="5" anchor="18" weightX="1.0" weightY="0.0"/>
</Constraint> </Constraint>
</Constraints> </Constraints>
</Component> </Component>
@ -96,7 +180,7 @@
</Properties> </Properties>
<Constraints> <Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
<GridBagConstraints gridX="1" gridY="1" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="5" insetsLeft="5" insetsBottom="5" insetsRight="5" anchor="18" weightX="1.0" weightY="0.0"/> <GridBagConstraints gridX="1" gridY="3" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="5" insetsLeft="5" insetsBottom="5" insetsRight="5" anchor="18" weightX="1.0" weightY="0.0"/>
</Constraint> </Constraint>
</Constraints> </Constraints>
</Component> </Component>
@ -108,58 +192,7 @@
</Properties> </Properties>
<Constraints> <Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
<GridBagConstraints gridX="0" gridY="2" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="5" insetsLeft="5" insetsBottom="5" insetsRight="5" anchor="18" weightX="1.0" weightY="0.0"/> <GridBagConstraints gridX="0" gridY="4" gridWidth="2" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="5" insetsLeft="5" insetsBottom="5" insetsRight="5" anchor="18" weightX="1.0" weightY="0.0"/>
</Constraint>
</Constraints>
</Component>
<Component class="javax.swing.JButton" name="licenseInfoAddButton">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="com/basistech/df/cybertriage/autopsy/ctoptions/ctcloud/Bundle.properties" key="CTMalwareScannerOptionsPanel.licenseInfoAddButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="licenseInfoAddButtonActionPerformed"/>
</Events>
<Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
<GridBagConstraints gridX="2" gridY="2" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="5" insetsBottom="5" insetsRight="5" anchor="12" weightX="1.0" weightY="0.0"/>
</Constraint>
</Constraints>
</Component>
<Component class="javax.swing.JLabel" name="maxFileUploadsLabel">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="com/basistech/df/cybertriage/autopsy/ctoptions/ctcloud/Bundle.properties" key="CTMalwareScannerOptionsPanel.maxFileUploadsLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
<Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
<GridBagConstraints gridX="0" gridY="4" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="5" insetsBottom="5" insetsRight="5" anchor="18" weightX="1.0" weightY="0.0"/>
</Constraint>
</Constraints>
</Component>
<Component class="javax.swing.JLabel" name="maxHashLookupsLabel">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="com/basistech/df/cybertriage/autopsy/ctoptions/ctcloud/Bundle.properties" key="CTMalwareScannerOptionsPanel.maxHashLookupsLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
<Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
<GridBagConstraints gridX="0" gridY="3" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="5" insetsLeft="5" insetsBottom="5" insetsRight="5" anchor="18" weightX="1.0" weightY="0.0"/>
</Constraint>
</Constraints>
</Component>
<Component class="javax.swing.JLabel" name="hashLookupsRemainingLabel">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="com/basistech/df/cybertriage/autopsy/ctoptions/ctcloud/Bundle.properties" key="CTMalwareScannerOptionsPanel.hashLookupsRemainingLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
<Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
<GridBagConstraints gridX="1" gridY="3" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="5" insetsLeft="5" insetsBottom="5" insetsRight="5" anchor="18" weightX="1.0" weightY="0.0"/>
</Constraint> </Constraint>
</Constraints> </Constraints>
</Component> </Component>
@ -171,19 +204,43 @@
</Properties> </Properties>
<Constraints> <Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
<GridBagConstraints gridX="0" gridY="3" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="5" insetsLeft="5" insetsBottom="5" insetsRight="5" anchor="18" weightX="1.0" weightY="0.0"/> <GridBagConstraints gridX="0" gridY="5" gridWidth="2" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="5" insetsLeft="5" insetsBottom="5" insetsRight="5" anchor="18" weightX="1.0" weightY="0.0"/>
</Constraint> </Constraint>
</Constraints> </Constraints>
</Component> </Component>
<Component class="javax.swing.JLabel" name="countersResetLabel"> <Component class="javax.swing.JLabel" name="maxHashLookupsLabel">
<Properties> <Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="com/basistech/df/cybertriage/autopsy/ctoptions/ctcloud/Bundle.properties" key="CTMalwareScannerOptionsPanel.countersResetLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/> <ResourceString bundle="com/basistech/df/cybertriage/autopsy/ctoptions/ctcloud/Bundle.properties" key="CTMalwareScannerOptionsPanel.maxHashLookupsLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property> </Property>
</Properties> </Properties>
<Constraints> <Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
<GridBagConstraints gridX="0" gridY="5" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="5" insetsBottom="5" insetsRight="5" anchor="18" weightX="1.0" weightY="0.0"/> <GridBagConstraints gridX="0" gridY="6" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="5" insetsLeft="5" insetsBottom="5" insetsRight="5" anchor="18" weightX="1.0" weightY="0.0"/>
</Constraint>
</Constraints>
</Component>
<Component class="javax.swing.JLabel" name="hashLookupsRemainingLabel">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="com/basistech/df/cybertriage/autopsy/ctoptions/ctcloud/Bundle.properties" key="CTMalwareScannerOptionsPanel.hashLookupsRemainingLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
<Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
<GridBagConstraints gridX="1" gridY="6" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="5" insetsLeft="5" insetsBottom="5" insetsRight="5" anchor="18" weightX="1.0" weightY="0.0"/>
</Constraint>
</Constraints>
</Component>
<Component class="javax.swing.JLabel" name="maxFileUploadsLabel">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="com/basistech/df/cybertriage/autopsy/ctoptions/ctcloud/Bundle.properties" key="CTMalwareScannerOptionsPanel.maxFileUploadsLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
<Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
<GridBagConstraints gridX="0" gridY="7" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="5" insetsBottom="5" insetsRight="5" anchor="18" weightX="1.0" weightY="0.0"/>
</Constraint> </Constraint>
</Constraints> </Constraints>
</Component> </Component>
@ -195,7 +252,34 @@
</Properties> </Properties>
<Constraints> <Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
<GridBagConstraints gridX="1" gridY="4" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="5" insetsBottom="5" insetsRight="5" anchor="18" weightX="1.0" weightY="0.0"/> <GridBagConstraints gridX="1" gridY="7" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="5" insetsBottom="5" insetsRight="5" anchor="18" weightX="1.0" weightY="0.0"/>
</Constraint>
</Constraints>
</Component>
<Component class="javax.swing.JLabel" name="countersResetLabel">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="com/basistech/df/cybertriage/autopsy/ctoptions/ctcloud/Bundle.properties" key="CTMalwareScannerOptionsPanel.countersResetLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
<Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
<GridBagConstraints gridX="0" gridY="8" gridWidth="2" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="5" insetsBottom="5" insetsRight="5" anchor="18" weightX="1.0" weightY="0.0"/>
</Constraint>
</Constraints>
</Component>
<Component class="javax.swing.JLabel" name="licenseErrorLabel">
<Properties>
<Property name="foreground" type="java.awt.Color" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
<Connection code="java.awt.Color.RED" type="code"/>
</Property>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="com/basistech/df/cybertriage/autopsy/ctoptions/ctcloud/Bundle.properties" key="CTMalwareScannerOptionsPanel.licenseErrorLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
<Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
<GridBagConstraints gridX="0" gridY="1" gridWidth="3" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="5" insetsLeft="5" insetsBottom="5" insetsRight="5" anchor="18" weightX="1.0" weightY="0.0"/>
</Constraint> </Constraint>
</Constraints> </Constraints>
</Component> </Component>
@ -208,7 +292,7 @@
</AuxValues> </AuxValues>
<Constraints> <Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
<GridBagConstraints gridX="0" gridY="3" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="5" insetsBottom="5" insetsRight="5" anchor="18" weightX="1.0" weightY="0.0"/> <GridBagConstraints gridX="0" gridY="2" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="5" insetsBottom="5" insetsRight="5" anchor="18" weightX="1.0" weightY="0.0"/>
</Constraint> </Constraint>
</Constraints> </Constraints>

View File

@ -28,7 +28,7 @@ import com.basistech.df.cybertriage.autopsy.ctapi.json.LicenseLimitType;
import com.basistech.df.cybertriage.autopsy.ctapi.json.LicenseResponse; import com.basistech.df.cybertriage.autopsy.ctapi.json.LicenseResponse;
import com.basistech.df.cybertriage.autopsy.ctapi.util.LicenseDecryptorUtil; import com.basistech.df.cybertriage.autopsy.ctapi.util.LicenseDecryptorUtil;
import com.basistech.df.cybertriage.autopsy.ctapi.util.LicenseDecryptorUtil.InvalidLicenseException; import com.basistech.df.cybertriage.autopsy.ctapi.util.LicenseDecryptorUtil.InvalidLicenseException;
import java.awt.Desktop; import org.sleuthkit.autopsy.coreutils.Desktop;
import java.awt.event.ComponentAdapter; import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent; import java.awt.event.ComponentEvent;
import java.io.IOException; import java.io.IOException;
@ -40,7 +40,6 @@ import java.util.Optional;
import java.util.concurrent.CancellationException; import java.util.concurrent.CancellationException;
import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutionException;
import java.util.logging.Level; import java.util.logging.Level;
import javax.swing.JOptionPane;
import javax.swing.SwingUtilities; import javax.swing.SwingUtilities;
import javax.swing.SwingWorker; import javax.swing.SwingWorker;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
@ -81,6 +80,7 @@ public class CTMalwareScannerOptionsPanel extends CTOptionsSubPanel {
private volatile AuthTokenResponse authTokenResponse = null; private volatile AuthTokenResponse authTokenResponse = null;
private volatile String authTokenMessage = null; private volatile String authTokenMessage = null;
private volatile AuthTokenFetcher authTokenFetcher = null; private volatile AuthTokenFetcher authTokenFetcher = null;
private volatile String authTokenError = null;
/** /**
* Main constructor. * Main constructor.
@ -118,7 +118,12 @@ public class CTMalwareScannerOptionsPanel extends CTOptionsSubPanel {
@Override @Override
public synchronized void saveSettings() { public synchronized void saveSettings() {
ctPersistence.saveLicenseResponse(getLicenseInfo()); LicenseResponse licenseResponse = getLicenseInfo();
if (licenseResponse == null) {
this.ctPersistence.deleteLicenseResponse();
} else {
ctPersistence.saveLicenseResponse(licenseResponse);
}
} }
@Override @Override
@ -131,7 +136,7 @@ public class CTMalwareScannerOptionsPanel extends CTOptionsSubPanel {
Optional<LicenseInfo> licenseInfoOpt = ctPersistence.loadLicenseInfo(); Optional<LicenseInfo> licenseInfoOpt = ctPersistence.loadLicenseInfo();
LicenseInfo licenseInfo = licenseInfoOpt.orElse(null); LicenseInfo licenseInfo = licenseInfoOpt.orElse(null);
setLicenseDisplay(licenseInfo, null); setLicenseDisplay(licenseInfo, null);
setMalwareScansDisplay(null, null); setMalwareScansDisplay(null, null, null);
if (licenseInfo != null) { if (licenseInfo != null) {
loadMalwareScansInfo(licenseInfo); loadMalwareScansInfo(licenseInfo);
this.purchaseFromLabel.setVisible(false); this.purchaseFromLabel.setVisible(false);
@ -168,9 +173,10 @@ public class CTMalwareScannerOptionsPanel extends CTOptionsSubPanel {
renderLicenseState(); renderLicenseState();
} }
private synchronized void setMalwareScansDisplay(AuthTokenResponse authTokenResponse, String authTokenMessage) { private synchronized void setMalwareScansDisplay(AuthTokenResponse authTokenResponse, String authTokenMessage, String authTokenError) {
this.authTokenResponse = authTokenResponse; this.authTokenResponse = authTokenResponse;
this.authTokenMessage = authTokenMessage; this.authTokenMessage = authTokenMessage;
this.authTokenError = authTokenError;
renderLicenseState(); renderLicenseState();
} }
@ -196,7 +202,7 @@ public class CTMalwareScannerOptionsPanel extends CTOptionsSubPanel {
this.licenseFetcher.cancel(true); this.licenseFetcher.cancel(true);
} }
setLicenseDisplay(null, Bundle.CTOPtionsPanel_loadLicenseInfo_loading()); setLicenseDisplay(null, Bundle.CTOPtionsPanel_loadLicenseInfo_loading());
setMalwareScansDisplay(null, null); setMalwareScansDisplay(null, null, null);
this.licenseFetcher = new LicenseFetcher(licenseNumber); this.licenseFetcher = new LicenseFetcher(licenseNumber);
this.licenseFetcher.execute(); this.licenseFetcher.execute();
} }
@ -210,16 +216,22 @@ public class CTMalwareScannerOptionsPanel extends CTOptionsSubPanel {
} }
if (licenseInfo == null || licenseInfo.getDecryptedLicense() == null) { if (licenseInfo == null || licenseInfo.getDecryptedLicense() == null) {
setMalwareScansDisplay(null, null); setMalwareScansDisplay(null, null, null);
return; return;
} }
setMalwareScansDisplay(null, Bundle.CTOPtionsPanel_loadMalwareScansInfo_loading()); setMalwareScansDisplay(null, Bundle.CTOPtionsPanel_loadMalwareScansInfo_loading(), null);
this.authTokenFetcher = new AuthTokenFetcher(licenseInfo.getDecryptedLicense()); this.authTokenFetcher = new AuthTokenFetcher(licenseInfo.getDecryptedLicense());
this.authTokenFetcher.execute(); this.authTokenFetcher.execute();
} }
private static String htmlWrap(String msg) {
return msg == null
? null
: "<html>" + msg + "</html>";
}
/** /**
* This method is called from within the constructor to initialize the form. * This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always * WARNING: Do NOT modify this code. The content of this method is always
@ -234,27 +246,36 @@ public class CTMalwareScannerOptionsPanel extends CTOptionsSubPanel {
javax.swing.JLabel disclaimer = new javax.swing.JLabel(); javax.swing.JLabel disclaimer = new javax.swing.JLabel();
javax.swing.JPanel licenseInfoPanel = new javax.swing.JPanel(); javax.swing.JPanel licenseInfoPanel = new javax.swing.JPanel();
licenseInfoMessageLabel = new javax.swing.JLabel(); licenseInfoMessageLabel = new javax.swing.JLabel();
javax.swing.JPanel buttonSpacer = new javax.swing.JPanel();
javax.swing.JPanel buttonPanel = new javax.swing.JPanel();
licenseInfoAddButton = new javax.swing.JButton();
licenseInfoRemoveButton = new javax.swing.JButton();
licenseInfoExpiresLabel = new javax.swing.JLabel(); licenseInfoExpiresLabel = new javax.swing.JLabel();
licenseInfoIdLabel = new javax.swing.JLabel(); licenseInfoIdLabel = new javax.swing.JLabel();
licenseInfoUserLabel = new javax.swing.JLabel(); licenseInfoUserLabel = new javax.swing.JLabel();
licenseInfoAddButton = new javax.swing.JButton(); malwareScansMessageLabel = new javax.swing.JLabel();
maxFileUploadsLabel = new javax.swing.JLabel();
maxHashLookupsLabel = new javax.swing.JLabel(); maxHashLookupsLabel = new javax.swing.JLabel();
hashLookupsRemainingLabel = new javax.swing.JLabel(); hashLookupsRemainingLabel = new javax.swing.JLabel();
malwareScansMessageLabel = new javax.swing.JLabel(); maxFileUploadsLabel = new javax.swing.JLabel();
countersResetLabel = new javax.swing.JLabel();
fileUploadsRemainingLabel = new javax.swing.JLabel(); fileUploadsRemainingLabel = new javax.swing.JLabel();
countersResetLabel = new javax.swing.JLabel();
licenseErrorLabel = new javax.swing.JLabel();
javax.swing.JPanel purchasePanel = new javax.swing.JPanel(); javax.swing.JPanel purchasePanel = new javax.swing.JPanel();
purchaseFromLabel = new javax.swing.JLabel(); purchaseFromLabel = new javax.swing.JLabel();
purchaseLink = new javax.swing.JLabel(); purchaseLink = new javax.swing.JLabel();
setMaximumSize(new java.awt.Dimension(650, 32767));
setLayout(new java.awt.GridBagLayout()); setLayout(new java.awt.GridBagLayout());
malwareScansPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(org.openide.util.NbBundle.getMessage(CTMalwareScannerOptionsPanel.class, "CTMalwareScannerOptionsPanel.malwareScansPanel.border.title"))); // NOI18N malwareScansPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(org.openide.util.NbBundle.getMessage(CTMalwareScannerOptionsPanel.class, "CTMalwareScannerOptionsPanel.malwareScansPanel.border.title"))); // NOI18N
malwareScansPanel.setMaximumSize(new java.awt.Dimension(650, 2147483647));
malwareScansPanel.setLayout(new java.awt.GridBagLayout()); malwareScansPanel.setLayout(new java.awt.GridBagLayout());
org.openide.awt.Mnemonics.setLocalizedText(disclaimer, org.openide.util.NbBundle.getMessage(CTMalwareScannerOptionsPanel.class, "CTMalwareScannerOptionsPanel.disclaimer.text")); // NOI18N org.openide.awt.Mnemonics.setLocalizedText(disclaimer, org.openide.util.NbBundle.getMessage(CTMalwareScannerOptionsPanel.class, "CTMalwareScannerOptionsPanel.text")); // NOI18N
disclaimer.setVerticalAlignment(javax.swing.SwingConstants.TOP); disclaimer.setVerticalAlignment(javax.swing.SwingConstants.TOP);
disclaimer.setMaximumSize(new java.awt.Dimension(650, 32));
disclaimer.setName(""); // NOI18N
disclaimer.setPreferredSize(new java.awt.Dimension(650, 32));
gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0; gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0; gridBagConstraints.gridy = 0;
@ -270,38 +291,25 @@ public class CTMalwareScannerOptionsPanel extends CTOptionsSubPanel {
gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0; gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0; gridBagConstraints.gridy = 0;
gridBagConstraints.gridwidth = 3;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.weightx = 1.0; gridBagConstraints.weightx = 1.0;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5); gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
licenseInfoPanel.add(licenseInfoMessageLabel, gridBagConstraints); licenseInfoPanel.add(licenseInfoMessageLabel, gridBagConstraints);
org.openide.awt.Mnemonics.setLocalizedText(licenseInfoExpiresLabel, org.openide.util.NbBundle.getMessage(CTMalwareScannerOptionsPanel.class, "CTMalwareScannerOptionsPanel.licenseInfoExpiresLabel.text")); // NOI18N buttonSpacer.setMaximumSize(new java.awt.Dimension(32767, 0));
gridBagConstraints = new java.awt.GridBagConstraints(); buttonSpacer.setMinimumSize(new java.awt.Dimension(5, 0));
gridBagConstraints.gridx = 0; buttonSpacer.setPreferredSize(new java.awt.Dimension(5, 0));
gridBagConstraints.gridy = 1;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
licenseInfoPanel.add(licenseInfoExpiresLabel, gridBagConstraints);
org.openide.awt.Mnemonics.setLocalizedText(licenseInfoIdLabel, org.openide.util.NbBundle.getMessage(CTMalwareScannerOptionsPanel.class, "CTMalwareScannerOptionsPanel.licenseInfoIdLabel.text")); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 1;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
licenseInfoPanel.add(licenseInfoIdLabel, gridBagConstraints);
org.openide.awt.Mnemonics.setLocalizedText(licenseInfoUserLabel, org.openide.util.NbBundle.getMessage(CTMalwareScannerOptionsPanel.class, "CTMalwareScannerOptionsPanel.licenseInfoUserLabel.text")); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0; gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 2; gridBagConstraints.gridy = 2;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.gridwidth = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.weightx = 1.0; gridBagConstraints.weightx = 1.0;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5); licenseInfoPanel.add(buttonSpacer, gridBagConstraints);
licenseInfoPanel.add(licenseInfoUserLabel, gridBagConstraints);
buttonPanel.setLayout(new java.awt.GridBagLayout());
org.openide.awt.Mnemonics.setLocalizedText(licenseInfoAddButton, org.openide.util.NbBundle.getMessage(CTMalwareScannerOptionsPanel.class, "CTMalwareScannerOptionsPanel.licenseInfoAddButton.text")); // NOI18N org.openide.awt.Mnemonics.setLocalizedText(licenseInfoAddButton, org.openide.util.NbBundle.getMessage(CTMalwareScannerOptionsPanel.class, "CTMalwareScannerOptionsPanel.licenseInfoAddButton.text")); // NOI18N
licenseInfoAddButton.addActionListener(new java.awt.event.ActionListener() { licenseInfoAddButton.addActionListener(new java.awt.event.ActionListener() {
@ -309,27 +317,77 @@ public class CTMalwareScannerOptionsPanel extends CTOptionsSubPanel {
licenseInfoAddButtonActionPerformed(evt); licenseInfoAddButtonActionPerformed(evt);
} }
}); });
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHEAST;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
buttonPanel.add(licenseInfoAddButton, gridBagConstraints);
org.openide.awt.Mnemonics.setLocalizedText(licenseInfoRemoveButton, org.openide.util.NbBundle.getMessage(CTMalwareScannerOptionsPanel.class, "CTMalwareScannerOptionsPanel.licenseInfoRemoveButton.text")); // NOI18N
licenseInfoRemoveButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
licenseInfoRemoveButtonActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHEAST;
gridBagConstraints.insets = new java.awt.Insets(0, 5, 5, 5);
buttonPanel.add(licenseInfoRemoveButton, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2; gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = 2; gridBagConstraints.gridy = 2;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHEAST; gridBagConstraints.gridheight = 7;
gridBagConstraints.weightx = 1.0; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH;
gridBagConstraints.insets = new java.awt.Insets(0, 5, 5, 5); licenseInfoPanel.add(buttonPanel, gridBagConstraints);
licenseInfoPanel.add(licenseInfoAddButton, gridBagConstraints);
org.openide.awt.Mnemonics.setLocalizedText(maxFileUploadsLabel, org.openide.util.NbBundle.getMessage(CTMalwareScannerOptionsPanel.class, "CTMalwareScannerOptionsPanel.maxFileUploadsLabel.text")); // NOI18N org.openide.awt.Mnemonics.setLocalizedText(licenseInfoExpiresLabel, org.openide.util.NbBundle.getMessage(CTMalwareScannerOptionsPanel.class, "CTMalwareScannerOptionsPanel.licenseInfoExpiresLabel.text")); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 3;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
licenseInfoPanel.add(licenseInfoExpiresLabel, gridBagConstraints);
org.openide.awt.Mnemonics.setLocalizedText(licenseInfoIdLabel, org.openide.util.NbBundle.getMessage(CTMalwareScannerOptionsPanel.class, "CTMalwareScannerOptionsPanel.licenseInfoIdLabel.text")); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 3;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
licenseInfoPanel.add(licenseInfoIdLabel, gridBagConstraints);
org.openide.awt.Mnemonics.setLocalizedText(licenseInfoUserLabel, org.openide.util.NbBundle.getMessage(CTMalwareScannerOptionsPanel.class, "CTMalwareScannerOptionsPanel.licenseInfoUserLabel.text")); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0; gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 4; gridBagConstraints.gridy = 4;
gridBagConstraints.gridwidth = 2;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.weightx = 1.0; gridBagConstraints.weightx = 1.0;
gridBagConstraints.insets = new java.awt.Insets(0, 5, 5, 5); gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
licenseInfoPanel.add(maxFileUploadsLabel, gridBagConstraints); licenseInfoPanel.add(licenseInfoUserLabel, gridBagConstraints);
org.openide.awt.Mnemonics.setLocalizedText(malwareScansMessageLabel, org.openide.util.NbBundle.getMessage(CTMalwareScannerOptionsPanel.class, "CTMalwareScannerOptionsPanel.malwareScansMessageLabel.text")); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 5;
gridBagConstraints.gridwidth = 2;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
licenseInfoPanel.add(malwareScansMessageLabel, gridBagConstraints);
org.openide.awt.Mnemonics.setLocalizedText(maxHashLookupsLabel, org.openide.util.NbBundle.getMessage(CTMalwareScannerOptionsPanel.class, "CTMalwareScannerOptionsPanel.maxHashLookupsLabel.text")); // NOI18N org.openide.awt.Mnemonics.setLocalizedText(maxHashLookupsLabel, org.openide.util.NbBundle.getMessage(CTMalwareScannerOptionsPanel.class, "CTMalwareScannerOptionsPanel.maxHashLookupsLabel.text")); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0; gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 3; gridBagConstraints.gridy = 6;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.weightx = 1.0; gridBagConstraints.weightx = 1.0;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5); gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
@ -338,39 +396,51 @@ public class CTMalwareScannerOptionsPanel extends CTOptionsSubPanel {
org.openide.awt.Mnemonics.setLocalizedText(hashLookupsRemainingLabel, org.openide.util.NbBundle.getMessage(CTMalwareScannerOptionsPanel.class, "CTMalwareScannerOptionsPanel.hashLookupsRemainingLabel.text")); // NOI18N org.openide.awt.Mnemonics.setLocalizedText(hashLookupsRemainingLabel, org.openide.util.NbBundle.getMessage(CTMalwareScannerOptionsPanel.class, "CTMalwareScannerOptionsPanel.hashLookupsRemainingLabel.text")); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1; gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 3; gridBagConstraints.gridy = 6;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.weightx = 1.0; gridBagConstraints.weightx = 1.0;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5); gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
licenseInfoPanel.add(hashLookupsRemainingLabel, gridBagConstraints); licenseInfoPanel.add(hashLookupsRemainingLabel, gridBagConstraints);
org.openide.awt.Mnemonics.setLocalizedText(malwareScansMessageLabel, org.openide.util.NbBundle.getMessage(CTMalwareScannerOptionsPanel.class, "CTMalwareScannerOptionsPanel.malwareScansMessageLabel.text")); // NOI18N org.openide.awt.Mnemonics.setLocalizedText(maxFileUploadsLabel, org.openide.util.NbBundle.getMessage(CTMalwareScannerOptionsPanel.class, "CTMalwareScannerOptionsPanel.maxFileUploadsLabel.text")); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0; gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 3; gridBagConstraints.gridy = 7;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.weightx = 1.0; gridBagConstraints.weightx = 1.0;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5); gridBagConstraints.insets = new java.awt.Insets(0, 5, 5, 5);
licenseInfoPanel.add(malwareScansMessageLabel, gridBagConstraints); licenseInfoPanel.add(maxFileUploadsLabel, gridBagConstraints);
org.openide.awt.Mnemonics.setLocalizedText(fileUploadsRemainingLabel, org.openide.util.NbBundle.getMessage(CTMalwareScannerOptionsPanel.class, "CTMalwareScannerOptionsPanel.fileUploadsRemainingLabel.text")); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 7;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.insets = new java.awt.Insets(0, 5, 5, 5);
licenseInfoPanel.add(fileUploadsRemainingLabel, gridBagConstraints);
org.openide.awt.Mnemonics.setLocalizedText(countersResetLabel, org.openide.util.NbBundle.getMessage(CTMalwareScannerOptionsPanel.class, "CTMalwareScannerOptionsPanel.countersResetLabel.text")); // NOI18N org.openide.awt.Mnemonics.setLocalizedText(countersResetLabel, org.openide.util.NbBundle.getMessage(CTMalwareScannerOptionsPanel.class, "CTMalwareScannerOptionsPanel.countersResetLabel.text")); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0; gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 5; gridBagConstraints.gridy = 8;
gridBagConstraints.gridwidth = 2;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.weightx = 1.0; gridBagConstraints.weightx = 1.0;
gridBagConstraints.insets = new java.awt.Insets(0, 5, 5, 5); gridBagConstraints.insets = new java.awt.Insets(0, 5, 5, 5);
licenseInfoPanel.add(countersResetLabel, gridBagConstraints); licenseInfoPanel.add(countersResetLabel, gridBagConstraints);
org.openide.awt.Mnemonics.setLocalizedText(fileUploadsRemainingLabel, org.openide.util.NbBundle.getMessage(CTMalwareScannerOptionsPanel.class, "CTMalwareScannerOptionsPanel.fileUploadsRemainingLabel.text")); // NOI18N licenseErrorLabel.setForeground(java.awt.Color.RED);
org.openide.awt.Mnemonics.setLocalizedText(licenseErrorLabel, org.openide.util.NbBundle.getMessage(CTMalwareScannerOptionsPanel.class, "CTMalwareScannerOptionsPanel.licenseErrorLabel.text")); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1; gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 4; gridBagConstraints.gridy = 1;
gridBagConstraints.gridwidth = 3;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.weightx = 1.0; gridBagConstraints.weightx = 1.0;
gridBagConstraints.insets = new java.awt.Insets(0, 5, 5, 5); gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
licenseInfoPanel.add(fileUploadsRemainingLabel, gridBagConstraints); licenseInfoPanel.add(licenseErrorLabel, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0; gridBagConstraints.gridx = 0;
@ -406,7 +476,7 @@ public class CTMalwareScannerOptionsPanel extends CTOptionsSubPanel {
gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0; gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 3; gridBagConstraints.gridy = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.weightx = 1.0; gridBagConstraints.weightx = 1.0;
@ -414,10 +484,7 @@ public class CTMalwareScannerOptionsPanel extends CTOptionsSubPanel {
malwareScansPanel.add(purchasePanel, gridBagConstraints); malwareScansPanel.add(purchasePanel, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.weightx = 1.0; gridBagConstraints.weightx = 1.0;
add(malwareScansPanel, gridBagConstraints); add(malwareScansPanel, gridBagConstraints);
}// </editor-fold>//GEN-END:initComponents }// </editor-fold>//GEN-END:initComponents
@ -428,7 +495,7 @@ public class CTMalwareScannerOptionsPanel extends CTOptionsSubPanel {
"CTMalwareScannerOptionsPanel_licenseAddDialogEnteredErr_title=License Number Already Entered", "CTMalwareScannerOptionsPanel_licenseAddDialogEnteredErr_title=License Number Already Entered",
"CTMalwareScannerOptionsPanel_licenseAddDialogEnteredErr_desc=The license number has already been entered", "CTMalwareScannerOptionsPanel_licenseAddDialogEnteredErr_desc=The license number has already been entered",
"CTMalwareScannerOptionsPanel_licenseAddDialogPatternErr_title=Invalid License Number", "CTMalwareScannerOptionsPanel_licenseAddDialogPatternErr_title=Invalid License Number",
"CTMalwareScannerOptionsPanel_licenseAddDialogPatternErr_desc=Please verify that license number is of format 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'"}) "CTMalwareScannerOptionsPanel_licenseAddDialogPatternErr_desc=Please verify that license number is of format 'AUT-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'"})
private void licenseInfoAddButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_licenseInfoAddButtonActionPerformed private void licenseInfoAddButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_licenseInfoAddButtonActionPerformed
CTLicenseDialog licenseDialog = new CTLicenseDialog(WindowManager.getDefault().getMainWindow(), true); CTLicenseDialog licenseDialog = new CTLicenseDialog(WindowManager.getDefault().getMainWindow(), true);
licenseDialog.setLocationRelativeTo(this); licenseDialog.setLocationRelativeTo(this);
@ -442,11 +509,7 @@ public class CTMalwareScannerOptionsPanel extends CTOptionsSubPanel {
} }
} }
JOptionPane.showMessageDialog( setMalwareScansDisplay(null, null, htmlWrap(Bundle.CTMalwareScannerOptionsPanel_licenseAddDialogEnteredErr_desc()));
this,
Bundle.CTMalwareScannerOptionsPanel_licenseAddDialogEnteredErr_desc(),
Bundle.CTMalwareScannerOptionsPanel_licenseAddDialogEnteredErr_title(),
JOptionPane.INFORMATION_MESSAGE);
} }
}//GEN-LAST:event_licenseInfoAddButtonActionPerformed }//GEN-LAST:event_licenseInfoAddButtonActionPerformed
@ -455,6 +518,12 @@ public class CTMalwareScannerOptionsPanel extends CTOptionsSubPanel {
gotoLink(PURCHASE_URL); gotoLink(PURCHASE_URL);
}//GEN-LAST:event_purchaseLinkMouseClicked }//GEN-LAST:event_purchaseLinkMouseClicked
private void licenseInfoRemoveButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_licenseInfoRemoveButtonActionPerformed
setLicenseDisplay(null, null);
setMalwareScansDisplay(null, null, null);
this.firePropertyChange(OptionsPanelController.PROP_CHANGED, null, null);
}//GEN-LAST:event_licenseInfoRemoveButtonActionPerformed
@NbBundle.Messages({ @NbBundle.Messages({
"# {0} - userName", "# {0} - userName",
"# {1} - email", "# {1} - email",
@ -477,10 +546,14 @@ public class CTMalwareScannerOptionsPanel extends CTOptionsSubPanel {
"CTMalwareScannerOptionsPanel_malwareScans_fileUploadsRemaining=File uploads remaining: {0}"}) "CTMalwareScannerOptionsPanel_malwareScans_fileUploadsRemaining=File uploads remaining: {0}"})
private synchronized void renderLicenseState() { private synchronized void renderLicenseState() {
this.licenseInfoAddButton.setEnabled(!isLicenseAddRunning()); this.licenseInfoAddButton.setEnabled(!isLicenseAddRunning());
this.licenseInfoRemoveButton.setEnabled(this.licenseInfo != null && !isLicenseAddRunning());
this.licenseInfoMessageLabel.setVisible(StringUtils.isNotBlank(this.licenseInfoMessage)); this.licenseInfoMessageLabel.setVisible(StringUtils.isNotBlank(this.licenseInfoMessage));
this.licenseInfoMessageLabel.setText(this.licenseInfoMessage); this.licenseInfoMessageLabel.setText(this.licenseInfoMessage);
this.licenseErrorLabel.setVisible(StringUtils.isNotBlank(this.authTokenError));
this.licenseErrorLabel.setText(this.authTokenError);
if (licenseInfo == null) { if (licenseInfo == null) {
this.licenseInfoExpiresLabel.setVisible(false); this.licenseInfoExpiresLabel.setVisible(false);
this.licenseInfoIdLabel.setVisible(false); this.licenseInfoIdLabel.setVisible(false);
@ -592,16 +665,12 @@ public class CTMalwareScannerOptionsPanel extends CTOptionsSubPanel {
this.licenseInfo = LicenseDecryptorUtil.getInstance().createLicenseInfo(licenseResponse); this.licenseInfo = LicenseDecryptorUtil.getInstance().createLicenseInfo(licenseResponse);
this.firePropertyChange(OptionsPanelController.PROP_CHANGED, null, null); this.firePropertyChange(OptionsPanelController.PROP_CHANGED, null, null);
} }
} catch (IOException | InvalidLicenseException ex) {
logger.log(Level.WARNING, "An error occurred while fetching data", ex);
JOptionPane.showMessageDialog(
CTMalwareScannerOptionsPanel.this,
Bundle.CTMalwareScannerOptionsPanel_LicenseFetcher_localErr_desc(),
Bundle.CTMalwareScannerOptionsPanel_LicenseFetcher_localErr_title(),
JOptionPane.ERROR_MESSAGE);
} finally {
setLicenseDisplay(this.licenseInfo, null); setLicenseDisplay(this.licenseInfo, null);
loadMalwareScansInfo(this.licenseInfo); loadMalwareScansInfo(this.licenseInfo);
} catch (IOException | InvalidLicenseException ex) {
logger.log(Level.WARNING, "An error occurred while fetching data", ex);
setLicenseDisplay(this.licenseInfo, null);
setMalwareScansDisplay(null, null, htmlWrap(Bundle.CTMalwareScannerOptionsPanel_LicenseFetcher_localErr_desc()));
} }
} }
@ -634,13 +703,8 @@ public class CTMalwareScannerOptionsPanel extends CTOptionsSubPanel {
// if no result, show unauthorized // if no result, show unauthorized
if (licenseResponse == null) { if (licenseResponse == null) {
logger.log(Level.WARNING, "An API error occurred while fetching license information. License fetch returned no result."); logger.log(Level.WARNING, "An API error occurred while fetching license information. License fetch returned no result.");
JOptionPane.showMessageDialog( setLicenseDisplay(null, null);
CTMalwareScannerOptionsPanel.this, setMalwareScansDisplay(null, null, htmlWrap(CTCloudException.ErrorCode.UN_AUTHORIZED.getDescription()));
CTCloudException.ErrorCode.UN_AUTHORIZED.getDescription(),
Bundle.CTMalwareScannerOptionsPanel_LicenseFetcher_apiErr_title(),
JOptionPane.ERROR_MESSAGE);
setLicenseDisplay(licenseInfo, null);
loadMalwareScansInfo(licenseInfo);
return; return;
} }
@ -652,13 +716,8 @@ public class CTMalwareScannerOptionsPanel extends CTOptionsSubPanel {
if (!StringUtils.isBlank(licenseResponse.getErrorMsg())) { if (!StringUtils.isBlank(licenseResponse.getErrorMsg())) {
message = licenseResponse.getErrorMsg(); message = licenseResponse.getErrorMsg();
} }
JOptionPane.showMessageDialog( setLicenseDisplay(null, null);
CTMalwareScannerOptionsPanel.this, setMalwareScansDisplay(null, null, htmlWrap(message));
message,
Bundle.CTMalwareScannerOptionsPanel_LicenseFetcher_apiErr_title(),
JOptionPane.ERROR_MESSAGE);
setLicenseDisplay(licenseInfo, null);
loadMalwareScansInfo(licenseInfo);
return; return;
} }
@ -670,23 +729,16 @@ public class CTMalwareScannerOptionsPanel extends CTOptionsSubPanel {
setLicenseDisplay(licenseInfo, null); setLicenseDisplay(licenseInfo, null);
loadMalwareScansInfo(licenseInfo); loadMalwareScansInfo(licenseInfo);
} catch (ExecutionException ex) { } catch (ExecutionException ex) {
String errMessage;
if (ex.getCause() != null && ex.getCause() instanceof CTCloudException cloudEx) { if (ex.getCause() != null && ex.getCause() instanceof CTCloudException cloudEx) {
logger.log(Level.WARNING, "An API error occurred while fetching license information", cloudEx); logger.log(Level.WARNING, "An API error occurred while fetching license information", cloudEx);
JOptionPane.showMessageDialog( errMessage = cloudEx.getErrorDetails();
CTMalwareScannerOptionsPanel.this,
cloudEx.getErrorCode().getDescription(),
Bundle.CTMalwareScannerOptionsPanel_LicenseFetcher_apiErr_title(),
JOptionPane.ERROR_MESSAGE);
} else { } else {
logger.log(Level.WARNING, "An error occurred while fetching data", ex); logger.log(Level.WARNING, "An error occurred while fetching data", ex);
JOptionPane.showMessageDialog( errMessage = Bundle.CTMalwareScannerOptionsPanel_LicenseFetcher_localErr_desc();
CTMalwareScannerOptionsPanel.this,
Bundle.CTMalwareScannerOptionsPanel_LicenseFetcher_localErr_desc(),
Bundle.CTMalwareScannerOptionsPanel_LicenseFetcher_localErr_title(),
JOptionPane.ERROR_MESSAGE);
} }
setLicenseDisplay(licenseInfo, null); setLicenseDisplay(null, null);
loadMalwareScansInfo(licenseInfo); setMalwareScansDisplay(null, null, htmlWrap(errMessage));
} finally { } finally {
synchronized (CTMalwareScannerOptionsPanel.this) { synchronized (CTMalwareScannerOptionsPanel.this) {
CTMalwareScannerOptionsPanel.this.licenseFetcher = null; CTMalwareScannerOptionsPanel.this.licenseFetcher = null;
@ -719,6 +771,7 @@ public class CTMalwareScannerOptionsPanel extends CTOptionsSubPanel {
@Override @Override
protected void done() { protected void done() {
AuthTokenResponse authTokenResponse = null; AuthTokenResponse authTokenResponse = null;
String authTokenError = null;
try { try {
authTokenResponse = get(); authTokenResponse = get();
} catch (InterruptedException | CancellationException ex) { } catch (InterruptedException | CancellationException ex) {
@ -726,24 +779,16 @@ public class CTMalwareScannerOptionsPanel extends CTOptionsSubPanel {
} catch (ExecutionException ex) { } catch (ExecutionException ex) {
if (ex.getCause() != null && ex.getCause() instanceof CTCloudException cloudEx) { if (ex.getCause() != null && ex.getCause() instanceof CTCloudException cloudEx) {
logger.log(Level.WARNING, "An API error occurred while fetching malware scans information for license", cloudEx); logger.log(Level.WARNING, "An API error occurred while fetching malware scans information for license", cloudEx);
JOptionPane.showMessageDialog( authTokenError = cloudEx.getErrorDetails();
CTMalwareScannerOptionsPanel.this,
cloudEx.getErrorDetails(),
Bundle.CTMalwareScannerOptionsPanel_MalwareScansFetcher_apiErr_title(),
JOptionPane.ERROR_MESSAGE);
} else { } else {
logger.log(Level.WARNING, "An error occurred while fetching data", ex); logger.log(Level.WARNING, "An error occurred while fetching data", ex);
JOptionPane.showMessageDialog( authTokenError = Bundle.CTMalwareScannerOptionsPanel_MalwareScansFetcher_localErr_desc();
CTMalwareScannerOptionsPanel.this,
Bundle.CTMalwareScannerOptionsPanel_MalwareScansFetcher_localErr_desc(),
Bundle.CTMalwareScannerOptionsPanel_MalwareScansFetcher_localErr_title(),
JOptionPane.ERROR_MESSAGE);
} }
} finally { } finally {
synchronized (CTMalwareScannerOptionsPanel.this) { synchronized (CTMalwareScannerOptionsPanel.this) {
CTMalwareScannerOptionsPanel.this.authTokenFetcher = null; CTMalwareScannerOptionsPanel.this.authTokenFetcher = null;
if (!this.isCancelled()) { if (!this.isCancelled()) {
setMalwareScansDisplay(authTokenResponse, null); setMalwareScansDisplay(authTokenResponse, null, htmlWrap(authTokenError));
} }
} }
} }
@ -755,10 +800,12 @@ public class CTMalwareScannerOptionsPanel extends CTOptionsSubPanel {
private javax.swing.JLabel countersResetLabel; private javax.swing.JLabel countersResetLabel;
private javax.swing.JLabel fileUploadsRemainingLabel; private javax.swing.JLabel fileUploadsRemainingLabel;
private javax.swing.JLabel hashLookupsRemainingLabel; private javax.swing.JLabel hashLookupsRemainingLabel;
private javax.swing.JLabel licenseErrorLabel;
private javax.swing.JButton licenseInfoAddButton; private javax.swing.JButton licenseInfoAddButton;
private javax.swing.JLabel licenseInfoExpiresLabel; private javax.swing.JLabel licenseInfoExpiresLabel;
private javax.swing.JLabel licenseInfoIdLabel; private javax.swing.JLabel licenseInfoIdLabel;
private javax.swing.JLabel licenseInfoMessageLabel; private javax.swing.JLabel licenseInfoMessageLabel;
private javax.swing.JButton licenseInfoRemoveButton;
private javax.swing.JLabel licenseInfoUserLabel; private javax.swing.JLabel licenseInfoUserLabel;
private javax.swing.JLabel malwareScansMessageLabel; private javax.swing.JLabel malwareScansMessageLabel;
private javax.swing.JPanel malwareScansPanel; private javax.swing.JPanel malwareScansPanel;

View File

@ -0,0 +1,75 @@
/*
* Autopsy Forensic Browser
*
* Copyright 2023 Basis Technology Corp.
* Contact: carrier <at> sleuthkit <dot> 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 com.basistech.df.cybertriage.autopsy.ctoptions.ctcloud;
import com.basistech.df.cybertriage.autopsy.ctapi.CTApiDAO;
import com.basistech.df.cybertriage.autopsy.ctapi.CTCloudException;
import com.basistech.df.cybertriage.autopsy.ctapi.json.AuthTokenResponse;
import com.basistech.df.cybertriage.autopsy.ctapi.json.LicenseInfo;
import java.util.Optional;
import java.util.logging.Level;
import org.openide.modules.ModuleInstall;
import org.openide.util.NbBundle.Messages;
import org.sleuthkit.autopsy.coreutils.Logger;
import org.sleuthkit.autopsy.coreutils.MessageNotifyUtil;
/**
* Installer to check for a functional license at startup.
*/
public class Installer extends ModuleInstall {
private final static Logger LOGGER = Logger.getLogger(Installer.class.getName());
private final static Installer INSTANCE = new Installer();
public static Installer getDefault() {
return INSTANCE;
}
private Installer() {}
@Override
public void restored() {
new Thread(new LicenseCheck()).start();
}
@Messages({
"Installer_LicenseCheck_cloudExceptionTitle=Cyber Triage Error"
})
private static class LicenseCheck implements Runnable {
@Override
public void run() {
try {
Optional<LicenseInfo> licenseInfoOpt = CTLicensePersistence.getInstance().loadLicenseInfo();
if (licenseInfoOpt.isEmpty()) {
return;
}
LicenseInfo licenseInfo = licenseInfoOpt.get();
AuthTokenResponse authTokenResp = CTApiDAO.getInstance().getAuthToken(licenseInfo.getDecryptedLicense());
// if we got this far, then it was a successful request
} catch (CTCloudException cloudEx) {
LOGGER.log(Level.WARNING, "A cloud exception occurred while fetching an auth token", cloudEx);
MessageNotifyUtil.Notify.warn(Bundle.Installer_LicenseCheck_cloudExceptionTitle(), cloudEx.getErrorDetails());
} catch (Throwable t) {
LOGGER.log(Level.WARNING, "An error occurred while fetching license info", t);
}
}
}
}

View File

@ -3,13 +3,13 @@
# Click nbfs://nbhost/SystemFileSystem/Templates/Other/properties.properties to edit this template # Click nbfs://nbhost/SystemFileSystem/Templates/Other/properties.properties to edit this template
CTIncidentImportOptionsPanel.border.title=Local Settings CTIncidentImportOptionsPanel.border.title=Local Settings
CTIncidentImportOptionsPanel.fileRepoPathLabel.text=Update the Cyber Triage Data Folder if you are not using the default location: CTIncidentImportOptionsPanel.fileRepoPathLabel.text=<html>Update the Cyber Triage Data Folder if you are not using the default location:</html>
CTIncidentImportOptionsPanel.fileRepoPathField.text= CTIncidentImportOptionsPanel.fileRepoPathField.text=
CTIncidentImportOptionsPanel.fileRepoBrowseButton.text=Browse CTIncidentImportOptionsPanel.fileRepoBrowseButton.text=Browse
CTIncidentImportOptionsPanel.caseOpenWarningLabel.text=Some settings cannot be modified while a case is open. CTIncidentImportOptionsPanel.caseOpenWarningLabel.text=Some settings cannot be modified while a case is open.
CTIncidentImportOptionsPanel.fileRepoFileChooser.title=Cyber Triage Data Folder CTIncidentImportOptionsPanel.fileRepoFileChooser.title=Cyber Triage Data Folder
CTIncidentImportOptionsPanel.border.title_1=Incident Importer CTIncidentImportOptionsPanel.border.title_1=Incident Importer
CTIncidentImportOptionsPanel.incidentTextLabel.text=The Cyber Triage Incident Import module allows you to open data collected by Cyber Triage in Autopsy. To use this feature you must install the Cyber Triage Import Module. CTIncidentImportOptionsPanel.incidentTextLabel.text=<html>The Cyber Triage Incident Import module allows you to open data collected by Cyber Triage in Autopsy. To use this feature you must install the Cyber Triage Import Module.</html>
CTincidentImportOptionsPanel.instructionsTextLabel.text= CTincidentImportOptionsPanel.instructionsTextLabel.text=
CTIncidentImportOptionsPanel.instructionsTextLabel.text=For instructions on obtaining the module refer to: CTIncidentImportOptionsPanel.instructionsTextLabel.text=For instructions on obtaining the module refer to:
CTIncidentImportOptionsPanel.importModule.text=Cyber Triage Import Module: CTIncidentImportOptionsPanel.importModule.text=Cyber Triage Import Module:

View File

@ -3,13 +3,13 @@
# Click nbfs://nbhost/SystemFileSystem/Templates/Other/properties.properties to edit this template # Click nbfs://nbhost/SystemFileSystem/Templates/Other/properties.properties to edit this template
CTIncidentImportOptionsPanel.border.title=Local Settings CTIncidentImportOptionsPanel.border.title=Local Settings
CTIncidentImportOptionsPanel.fileRepoPathLabel.text=Update the Cyber Triage Data Folder if you are not using the default location: CTIncidentImportOptionsPanel.fileRepoPathLabel.text=<html>Update the Cyber Triage Data Folder if you are not using the default location:</html>
CTIncidentImportOptionsPanel.fileRepoPathField.text= CTIncidentImportOptionsPanel.fileRepoPathField.text=
CTIncidentImportOptionsPanel.fileRepoBrowseButton.text=Browse CTIncidentImportOptionsPanel.fileRepoBrowseButton.text=Browse
CTIncidentImportOptionsPanel.caseOpenWarningLabel.text=Some settings cannot be modified while a case is open. CTIncidentImportOptionsPanel.caseOpenWarningLabel.text=Some settings cannot be modified while a case is open.
CTIncidentImportOptionsPanel.fileRepoFileChooser.title=Cyber Triage Data Folder CTIncidentImportOptionsPanel.fileRepoFileChooser.title=Cyber Triage Data Folder
CTIncidentImportOptionsPanel.border.title_1=Incident Importer CTIncidentImportOptionsPanel.border.title_1=Incident Importer
CTIncidentImportOptionsPanel.incidentTextLabel.text=The Cyber Triage Incident Import module allows you to open data collected by Cyber Triage in Autopsy. To use this feature you must install the Cyber Triage Import Module. CTIncidentImportOptionsPanel.incidentTextLabel.text=<html>The Cyber Triage Incident Import module allows you to open data collected by Cyber Triage in Autopsy. To use this feature you must install the Cyber Triage Import Module.</html>
CTincidentImportOptionsPanel.instructionsTextLabel.text= CTincidentImportOptionsPanel.instructionsTextLabel.text=
CTIncidentImportOptionsPanel.instructionsTextLabel.text=For instructions on obtaining the module refer to: CTIncidentImportOptionsPanel.instructionsTextLabel.text=For instructions on obtaining the module refer to:
CTIncidentImportOptionsPanel.importModule.text=Cyber Triage Import Module: CTIncidentImportOptionsPanel.importModule.text=Cyber Triage Import Module:

View File

@ -9,6 +9,15 @@
</TitledBorder> </TitledBorder>
</Border> </Border>
</Property> </Property>
<Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
<Dimension value="[650, 2147483647]"/>
</Property>
<Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
<Dimension value="[650, 206]"/>
</Property>
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
<Dimension value="[650, 206]"/>
</Property>
</Properties> </Properties>
<AuxValues> <AuxValues>
<AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="1"/> <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="1"/>
@ -20,7 +29,7 @@
<AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/> <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
<AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/> <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
<AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/> <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
<AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,0,-50,0,0,1,-17"/> <AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,0,-54,0,0,2,36"/>
</AuxValues> </AuxValues>
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/> <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/>
@ -28,7 +37,7 @@
<Container class="javax.swing.JPanel" name="incidentTextPanel"> <Container class="javax.swing.JPanel" name="incidentTextPanel">
<Constraints> <Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
<GridBagConstraints gridX="0" gridY="0" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/> <GridBagConstraints gridX="0" gridY="0" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="1.0" weightY="0.0"/>
</Constraint> </Constraint>
</Constraints> </Constraints>
@ -39,10 +48,16 @@
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="com/basistech/df/cybertriage/autopsy/incidentoptions/Bundle.properties" key="CTIncidentImportOptionsPanel.incidentTextLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/> <ResourceString bundle="com/basistech/df/cybertriage/autopsy/incidentoptions/Bundle.properties" key="CTIncidentImportOptionsPanel.incidentTextLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property> </Property>
<Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
<Dimension value="[600, 32]"/>
</Property>
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
<Dimension value="null"/>
</Property>
</Properties> </Properties>
<Constraints> <Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
<GridBagConstraints gridX="0" gridY="0" gridWidth="2" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="5" insetsLeft="5" insetsBottom="5" insetsRight="5" anchor="18" weightX="1.0" weightY="0.0"/> <GridBagConstraints gridX="0" gridY="0" gridWidth="2" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="5" insetsLeft="5" insetsBottom="5" insetsRight="5" anchor="18" weightX="0.0" weightY="0.0"/>
</Constraint> </Constraint>
</Constraints> </Constraints>
</Component> </Component>
@ -51,6 +66,9 @@
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="com/basistech/df/cybertriage/autopsy/incidentoptions/Bundle.properties" key="CTIncidentImportOptionsPanel.importModule.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/> <ResourceString bundle="com/basistech/df/cybertriage/autopsy/incidentoptions/Bundle.properties" key="CTIncidentImportOptionsPanel.importModule.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property> </Property>
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
<Dimension value="null"/>
</Property>
</Properties> </Properties>
<AuxValues> <AuxValues>
<AuxValue name="JavaCodeGenerator_VariableLocal" type="java.lang.Boolean" value="true"/> <AuxValue name="JavaCodeGenerator_VariableLocal" type="java.lang.Boolean" value="true"/>
@ -58,7 +76,7 @@
</AuxValues> </AuxValues>
<Constraints> <Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
<GridBagConstraints gridX="0" gridY="1" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="5" insetsLeft="5" insetsBottom="5" insetsRight="3" anchor="10" weightX="0.0" weightY="0.0"/> <GridBagConstraints gridX="0" gridY="1" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="5" insetsLeft="5" insetsBottom="5" insetsRight="3" anchor="18" weightX="0.0" weightY="0.0"/>
</Constraint> </Constraint>
</Constraints> </Constraints>
</Component> </Component>
@ -79,7 +97,7 @@
<Container class="javax.swing.JPanel" name="instructionsPanel"> <Container class="javax.swing.JPanel" name="instructionsPanel">
<Constraints> <Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
<GridBagConstraints gridX="0" gridY="1" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="18" weightX="0.0" weightY="0.0"/> <GridBagConstraints gridX="0" gridY="1" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="18" weightX="1.0" weightY="0.0"/>
</Constraint> </Constraint>
</Constraints> </Constraints>
@ -90,6 +108,9 @@
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="com/basistech/df/cybertriage/autopsy/incidentoptions/Bundle.properties" key="CTIncidentImportOptionsPanel.instructionsTextLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/> <ResourceString bundle="com/basistech/df/cybertriage/autopsy/incidentoptions/Bundle.properties" key="CTIncidentImportOptionsPanel.instructionsTextLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property> </Property>
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
<Dimension value="null"/>
</Property>
</Properties> </Properties>
<AccessibilityProperties> <AccessibilityProperties>
<Property name="AccessibleContext.accessibleName" type="java.lang.String" value="For instructions on obtaining the module refer to:"/> <Property name="AccessibleContext.accessibleName" type="java.lang.String" value="For instructions on obtaining the module refer to:"/>
@ -108,22 +129,33 @@
<Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
<Color id="Hand Cursor"/> <Color id="Hand Cursor"/>
</Property> </Property>
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
<Dimension value="null"/>
</Property>
</Properties> </Properties>
<Events> <Events>
<EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="instructionsLinkLabelMouseClicked"/> <EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="instructionsLinkLabelMouseClicked"/>
</Events> </Events>
<Constraints> <Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
<GridBagConstraints gridX="1" gridY="0" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="5" insetsLeft="5" insetsBottom="5" insetsRight="5" anchor="18" weightX="0.0" weightY="0.0"/> <GridBagConstraints gridX="1" gridY="0" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="5" insetsLeft="2" insetsBottom="5" insetsRight="5" anchor="18" weightX="1.0" weightY="0.0"/>
</Constraint> </Constraint>
</Constraints> </Constraints>
</Component> </Component>
</SubComponents> </SubComponents>
</Container> </Container>
<Container class="javax.swing.JPanel" name="repoPanel"> <Container class="javax.swing.JPanel" name="repoPanel">
<Properties>
<Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
<Dimension value="[650, 2147483647]"/>
</Property>
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
<Dimension value="[650, 75]"/>
</Property>
</Properties>
<Constraints> <Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
<GridBagConstraints gridX="0" gridY="2" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="18" weightX="0.0" weightY="0.0"/> <GridBagConstraints gridX="0" gridY="2" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="18" weightX="1.0" weightY="0.0"/>
</Constraint> </Constraint>
</Constraints> </Constraints>
@ -134,6 +166,12 @@
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="com/basistech/df/cybertriage/autopsy/incidentoptions/Bundle.properties" key="CTIncidentImportOptionsPanel.fileRepoPathLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/> <ResourceString bundle="com/basistech/df/cybertriage/autopsy/incidentoptions/Bundle.properties" key="CTIncidentImportOptionsPanel.fileRepoPathLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property> </Property>
<Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
<Dimension value="[600, 16]"/>
</Property>
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
<Dimension value="null"/>
</Property>
</Properties> </Properties>
<AuxValues> <AuxValues>
<AuxValue name="JavaCodeGenerator_VariableLocal" type="java.lang.Boolean" value="true"/> <AuxValue name="JavaCodeGenerator_VariableLocal" type="java.lang.Boolean" value="true"/>
@ -150,6 +188,9 @@
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="com/basistech/df/cybertriage/autopsy/incidentoptions/Bundle.properties" key="CTIncidentImportOptionsPanel.fileRepoPathField.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/> <ResourceString bundle="com/basistech/df/cybertriage/autopsy/incidentoptions/Bundle.properties" key="CTIncidentImportOptionsPanel.fileRepoPathField.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property> </Property>
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
<Dimension value="null"/>
</Property>
</Properties> </Properties>
<AccessibilityProperties> <AccessibilityProperties>
<Property name="AccessibleContext.accessibleName" type="java.lang.String" value=""/> <Property name="AccessibleContext.accessibleName" type="java.lang.String" value=""/>
@ -189,7 +230,7 @@
</Properties> </Properties>
<Constraints> <Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
<GridBagConstraints gridX="0" gridY="2" gridWidth="2" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="5" insetsBottom="5" insetsRight="5" anchor="17" weightX="0.0" weightY="0.0"/> <GridBagConstraints gridX="0" gridY="2" gridWidth="2" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="5" insetsBottom="5" insetsRight="5" anchor="17" weightX="1.0" weightY="0.0"/>
</Constraint> </Constraint>
</Constraints> </Constraints>
</Component> </Component>

View File

@ -161,24 +161,31 @@ public class CTIncidentImportOptionsPanel extends CTOptionsSubPanel {
caseOpenWarningLabel = new javax.swing.JLabel(); caseOpenWarningLabel = new javax.swing.JLabel();
setBorder(javax.swing.BorderFactory.createTitledBorder(org.openide.util.NbBundle.getMessage(CTIncidentImportOptionsPanel.class, "CTIncidentImportOptionsPanel.border.title_1"))); // NOI18N setBorder(javax.swing.BorderFactory.createTitledBorder(org.openide.util.NbBundle.getMessage(CTIncidentImportOptionsPanel.class, "CTIncidentImportOptionsPanel.border.title_1"))); // NOI18N
setMaximumSize(new java.awt.Dimension(650, 2147483647));
setMinimumSize(new java.awt.Dimension(650, 206));
setPreferredSize(new java.awt.Dimension(650, 206));
setLayout(new java.awt.GridBagLayout()); setLayout(new java.awt.GridBagLayout());
incidentTextPanel.setLayout(new java.awt.GridBagLayout()); incidentTextPanel.setLayout(new java.awt.GridBagLayout());
org.openide.awt.Mnemonics.setLocalizedText(incidentTextLabel, org.openide.util.NbBundle.getMessage(CTIncidentImportOptionsPanel.class, "CTIncidentImportOptionsPanel.incidentTextLabel.text")); // NOI18N org.openide.awt.Mnemonics.setLocalizedText(incidentTextLabel, org.openide.util.NbBundle.getMessage(CTIncidentImportOptionsPanel.class, "CTIncidentImportOptionsPanel.incidentTextLabel.text")); // NOI18N
incidentTextLabel.setMaximumSize(new java.awt.Dimension(600, 32));
incidentTextLabel.setPreferredSize(null);
gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0; gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0; gridBagConstraints.gridy = 0;
gridBagConstraints.gridwidth = 2; gridBagConstraints.gridwidth = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5); gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
incidentTextPanel.add(incidentTextLabel, gridBagConstraints); incidentTextPanel.add(incidentTextLabel, gridBagConstraints);
org.openide.awt.Mnemonics.setLocalizedText(importModule, org.openide.util.NbBundle.getMessage(CTIncidentImportOptionsPanel.class, "CTIncidentImportOptionsPanel.importModule.text")); // NOI18N org.openide.awt.Mnemonics.setLocalizedText(importModule, org.openide.util.NbBundle.getMessage(CTIncidentImportOptionsPanel.class, "CTIncidentImportOptionsPanel.importModule.text")); // NOI18N
importModule.setPreferredSize(null);
gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0; gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1; gridBagConstraints.gridy = 1;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 3); gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 3);
incidentTextPanel.add(importModule, gridBagConstraints); incidentTextPanel.add(importModule, gridBagConstraints);
@ -194,11 +201,14 @@ public class CTIncidentImportOptionsPanel extends CTOptionsSubPanel {
gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0; gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0; gridBagConstraints.gridy = 0;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.weightx = 1.0;
add(incidentTextPanel, gridBagConstraints); add(incidentTextPanel, gridBagConstraints);
instructionsPanel.setLayout(new java.awt.GridBagLayout()); instructionsPanel.setLayout(new java.awt.GridBagLayout());
org.openide.awt.Mnemonics.setLocalizedText(instructionsTextLabel, org.openide.util.NbBundle.getMessage(CTIncidentImportOptionsPanel.class, "CTIncidentImportOptionsPanel.instructionsTextLabel.text")); // NOI18N org.openide.awt.Mnemonics.setLocalizedText(instructionsTextLabel, org.openide.util.NbBundle.getMessage(CTIncidentImportOptionsPanel.class, "CTIncidentImportOptionsPanel.instructionsTextLabel.text")); // NOI18N
instructionsTextLabel.setPreferredSize(null);
gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0; gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0; gridBagConstraints.gridy = 0;
@ -209,6 +219,7 @@ public class CTIncidentImportOptionsPanel extends CTOptionsSubPanel {
org.openide.awt.Mnemonics.setLocalizedText(instructionsLinkLabel, getHtmlLink(CT_IMPORTER_DOC_LINK)); org.openide.awt.Mnemonics.setLocalizedText(instructionsLinkLabel, getHtmlLink(CT_IMPORTER_DOC_LINK));
instructionsLinkLabel.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR)); instructionsLinkLabel.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
instructionsLinkLabel.setPreferredSize(null);
instructionsLinkLabel.addMouseListener(new java.awt.event.MouseAdapter() { instructionsLinkLabel.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) { public void mouseClicked(java.awt.event.MouseEvent evt) {
instructionsLinkLabelMouseClicked(evt); instructionsLinkLabelMouseClicked(evt);
@ -218,18 +229,25 @@ public class CTIncidentImportOptionsPanel extends CTOptionsSubPanel {
gridBagConstraints.gridx = 1; gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 0; gridBagConstraints.gridy = 0;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5); gridBagConstraints.weightx = 1.0;
gridBagConstraints.insets = new java.awt.Insets(5, 2, 5, 5);
instructionsPanel.add(instructionsLinkLabel, gridBagConstraints); instructionsPanel.add(instructionsLinkLabel, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0; gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1; gridBagConstraints.gridy = 1;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.weightx = 1.0;
add(instructionsPanel, gridBagConstraints); add(instructionsPanel, gridBagConstraints);
repoPanel.setMaximumSize(new java.awt.Dimension(650, 2147483647));
repoPanel.setPreferredSize(new java.awt.Dimension(650, 75));
repoPanel.setLayout(new java.awt.GridBagLayout()); repoPanel.setLayout(new java.awt.GridBagLayout());
org.openide.awt.Mnemonics.setLocalizedText(fileRepoPathLabel, org.openide.util.NbBundle.getMessage(CTIncidentImportOptionsPanel.class, "CTIncidentImportOptionsPanel.fileRepoPathLabel.text")); // NOI18N org.openide.awt.Mnemonics.setLocalizedText(fileRepoPathLabel, org.openide.util.NbBundle.getMessage(CTIncidentImportOptionsPanel.class, "CTIncidentImportOptionsPanel.fileRepoPathLabel.text")); // NOI18N
fileRepoPathLabel.setMaximumSize(new java.awt.Dimension(600, 16));
fileRepoPathLabel.setPreferredSize(null);
gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0; gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0; gridBagConstraints.gridy = 0;
@ -239,6 +257,7 @@ public class CTIncidentImportOptionsPanel extends CTOptionsSubPanel {
repoPanel.add(fileRepoPathLabel, gridBagConstraints); repoPanel.add(fileRepoPathLabel, gridBagConstraints);
fileRepoPathField.setText(org.openide.util.NbBundle.getMessage(CTIncidentImportOptionsPanel.class, "CTIncidentImportOptionsPanel.fileRepoPathField.text")); // NOI18N fileRepoPathField.setText(org.openide.util.NbBundle.getMessage(CTIncidentImportOptionsPanel.class, "CTIncidentImportOptionsPanel.fileRepoPathField.text")); // NOI18N
fileRepoPathField.setPreferredSize(null);
fileRepoPathField.addActionListener(new java.awt.event.ActionListener() { fileRepoPathField.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) { public void actionPerformed(java.awt.event.ActionEvent evt) {
fileRepoPathFieldActionPerformed(evt); fileRepoPathFieldActionPerformed(evt);
@ -274,13 +293,16 @@ public class CTIncidentImportOptionsPanel extends CTOptionsSubPanel {
gridBagConstraints.gridy = 2; gridBagConstraints.gridy = 2;
gridBagConstraints.gridwidth = 2; gridBagConstraints.gridwidth = 2;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.insets = new java.awt.Insets(0, 5, 5, 5); gridBagConstraints.insets = new java.awt.Insets(0, 5, 5, 5);
repoPanel.add(caseOpenWarningLabel, gridBagConstraints); repoPanel.add(caseOpenWarningLabel, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0; gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 2; gridBagConstraints.gridy = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.weightx = 1.0;
add(repoPanel, gridBagConstraints); add(repoPanel, gridBagConstraints);
}// </editor-fold>//GEN-END:initComponents }// </editor-fold>//GEN-END:initComponents
private void fileRepoBrowseButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_fileRepoBrowseButtonActionPerformed private void fileRepoBrowseButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_fileRepoBrowseButtonActionPerformed

View File

@ -33,6 +33,9 @@ MalwareScanIngestModule_ShareProcessing_noLookupsRemaining_desc=There are no mor
MalwareScanIngestModule_ShareProcessing_noLookupsRemaining_title=No remaining lookups MalwareScanIngestModule_ShareProcessing_noLookupsRemaining_title=No remaining lookups
MalwareScanIngestModule_ShareProcessing_noUploadsRemaining_desc=There are no more remaining file uploads for this license at this time. File uploading will be disabled. MalwareScanIngestModule_ShareProcessing_noUploadsRemaining_desc=There are no more remaining file uploads for this license at this time. File uploading will be disabled.
MalwareScanIngestModule_ShareProcessing_noUploadsRemaining_title=No remaining file uploads MalwareScanIngestModule_ShareProcessing_noUploadsRemaining_title=No remaining file uploads
MalwareScanIngestModule_ShareProcessing_startup_generalException_desc=An exception occurred on MalwareScanIngestModule startup. See the log for more information.
MalwareScanIngestModule_ShareProcessing_startup_invalidLicenseWarning_desc=The current Cyber Triage license is no longer valid. Please remove the license from the Cyber Triage options panel.
MalwareScanIngestModule_ShareProcessing_startup_invalidLicenseWarning_title=Invalid License
MalwareScanIngestModule_uploadFile_noRemainingFileUploads_desc=There are no more file uploads on this license at this time. File uploads will be disabled for remaining uploads. MalwareScanIngestModule_uploadFile_noRemainingFileUploads_desc=There are no more file uploads on this license at this time. File uploads will be disabled for remaining uploads.
MalwareScanIngestModule_uploadFile_noRemainingFileUploads_title=No Remaining File Uploads MalwareScanIngestModule_uploadFile_noRemainingFileUploads_title=No Remaining File Uploads
# {0} - objectId # {0} - objectId

View File

@ -161,7 +161,10 @@ class MalwareScanIngestModule implements FileIngestModule {
"MalwareScanIngestModule_ShareProcessing_noUploadsRemaining_desc=There are no more remaining file uploads for this license at this time. File uploading will be disabled.", "MalwareScanIngestModule_ShareProcessing_noUploadsRemaining_desc=There are no more remaining file uploads for this license at this time. File uploading will be disabled.",
"MalwareScanIngestModule_ShareProcessing_lowUploadsLimitWarning_title=File Uploads Limit Low", "MalwareScanIngestModule_ShareProcessing_lowUploadsLimitWarning_title=File Uploads Limit Low",
"# {0} - remainingUploads", "# {0} - remainingUploads",
"MalwareScanIngestModule_ShareProcessing_lowUploadsLimitWarning_desc=This license only has {0} file uploads remaining.",}) "MalwareScanIngestModule_ShareProcessing_lowUploadsLimitWarning_desc=This license only has {0} file uploads remaining.",
"MalwareScanIngestModule_ShareProcessing_startup_generalException_desc=An exception occurred on MalwareScanIngestModule startup. See the log for more information.",
"MalwareScanIngestModule_ShareProcessing_startup_invalidLicenseWarning_title=Invalid License",
"MalwareScanIngestModule_ShareProcessing_startup_invalidLicenseWarning_desc=The current Cyber Triage license is no longer valid. Please remove the license from the Cyber Triage options panel."})
synchronized void startUp(IngestJobContext context, boolean uploadFiles) throws IngestModuleException { synchronized void startUp(IngestJobContext context, boolean uploadFiles) throws IngestModuleException {
// only run this code once per startup // only run this code once per startup
if (ingestJobState != null) { if (ingestJobState != null) {
@ -170,9 +173,18 @@ class MalwareScanIngestModule implements FileIngestModule {
try { try {
ingestJobState = getNewJobState(context, uploadFiles); ingestJobState = getNewJobState(context, uploadFiles);
} catch (CTCloudException cloudEx) {
ingestJobState = IngestJobState.DISABLED;
logger.log(Level.WARNING, "An error occurred while starting the MalwareScanIngestModule.", cloudEx);
throw new IngestModuleException(cloudEx.getErrorDetails(), cloudEx);
} catch (IllegalStateException stateEx) {
ingestJobState = IngestJobState.DISABLED;
logger.log(Level.WARNING, "An error occurred while starting the MalwareScanIngestModule.", stateEx);
throw new IngestModuleException(stateEx.getMessage(), stateEx);
} catch (Exception ex) { } catch (Exception ex) {
ingestJobState = IngestJobState.DISABLED; ingestJobState = IngestJobState.DISABLED;
throw new IngestModuleException("An exception occurred on MalwareScanIngestModule startup", ex); logger.log(Level.WARNING, "An error occurred while starting the MalwareScanIngestModule.", ex);
throw new IngestModuleException(Bundle.MalwareScanIngestModule_ShareProcessing_startup_generalException_desc(), ex);
} }
} }
@ -188,12 +200,7 @@ class MalwareScanIngestModule implements FileIngestModule {
// get saved license // get saved license
Optional<LicenseInfo> licenseInfoOpt = ctSettingsPersistence.loadLicenseInfo(); Optional<LicenseInfo> licenseInfoOpt = ctSettingsPersistence.loadLicenseInfo();
if (licenseInfoOpt.isEmpty() || licenseInfoOpt.get().getDecryptedLicense() == null) { if (licenseInfoOpt.isEmpty() || licenseInfoOpt.get().getDecryptedLicense() == null) {
notifyWarning( throw new IllegalStateException(Bundle.MalwareScanIngestModule_ShareProcessing_noLicense_desc());
Bundle.MalwareScanIngestModule_ShareProcessing_noLicense_title(),
Bundle.MalwareScanIngestModule_ShareProcessing_noLicense_desc(),
null);
return IngestJobState.DISABLED;
} }
AuthTokenResponse authTokenResponse = ctApiDAO.getAuthToken(licenseInfoOpt.get().getDecryptedLicense()); AuthTokenResponse authTokenResponse = ctApiDAO.getAuthToken(licenseInfoOpt.get().getDecryptedLicense());

View File

@ -18,7 +18,7 @@
*/ */
package org.sleuthkit.autopsy.actions; package org.sleuthkit.autopsy.actions;
import java.awt.Desktop; import org.sleuthkit.autopsy.coreutils.Desktop;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import java.io.File; import java.io.File;

View File

@ -18,7 +18,7 @@
*/ */
package org.sleuthkit.autopsy.actions; package org.sleuthkit.autopsy.actions;
import java.awt.Desktop; import org.sleuthkit.autopsy.coreutils.Desktop;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.util.logging.Level; import java.util.logging.Level;

View File

@ -18,7 +18,7 @@
*/ */
package org.sleuthkit.autopsy.actions; package org.sleuthkit.autopsy.actions;
import java.awt.Desktop; import org.sleuthkit.autopsy.coreutils.Desktop;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import java.io.File; import java.io.File;

View File

@ -18,7 +18,7 @@
*/ */
package org.sleuthkit.autopsy.actions; package org.sleuthkit.autopsy.actions;
import java.awt.Desktop; import org.sleuthkit.autopsy.coreutils.Desktop;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import java.io.BufferedWriter; import java.io.BufferedWriter;
import java.io.File; import java.io.File;

View File

@ -27,6 +27,7 @@ import java.util.List;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.UUID; import java.util.UUID;
import javax.swing.filechooser.FileFilter; import javax.swing.filechooser.FileFilter;
import org.apache.commons.lang3.StringUtils;
import org.openide.util.NbBundle; import org.openide.util.NbBundle;
import org.openide.util.lookup.ServiceProvider; import org.openide.util.lookup.ServiceProvider;
import org.openide.util.lookup.ServiceProviders; import org.openide.util.lookup.ServiceProviders;
@ -184,7 +185,7 @@ public class ImageDSProcessor implements DataSourceProcessor, AutoIngestDataSour
*/ */
@Override @Override
public void run(DataSourceProcessorProgressMonitor progressMonitor, DataSourceProcessorCallback callback) { public void run(DataSourceProcessorProgressMonitor progressMonitor, DataSourceProcessorCallback callback) {
run(null, progressMonitor, callback); run(null, null, progressMonitor, callback);
} }
/** /**
@ -204,9 +205,16 @@ public class ImageDSProcessor implements DataSourceProcessor, AutoIngestDataSour
*/ */
@Override @Override
public void run(Host host, DataSourceProcessorProgressMonitor progressMonitor, DataSourceProcessorCallback callback) { public void run(Host host, DataSourceProcessorProgressMonitor progressMonitor, DataSourceProcessorCallback callback) {
run(null, host, progressMonitor, callback);
}
@Override
public void run(String password, Host host, DataSourceProcessorProgressMonitor progressMonitor, DataSourceProcessorCallback callback) {
ingestStream = new DefaultIngestStream(); ingestStream = new DefaultIngestStream();
readConfigSettings(); readConfigSettings();
this.host = host; this.host = host;
this.password = StringUtils.defaultString(password, this.password);
try { try {
image = SleuthkitJNI.addImageToDatabase(Case.getCurrentCase().getSleuthkitCase(), image = SleuthkitJNI.addImageToDatabase(Case.getCurrentCase().getSleuthkitCase(),
new String[]{imagePath}, sectorSize, timeZone, md5, sha1, sha256, deviceId, this.password, this.host); new String[]{imagePath}, sectorSize, timeZone, md5, sha1, sha256, deviceId, this.password, this.host);
@ -221,6 +229,46 @@ public class ImageDSProcessor implements DataSourceProcessor, AutoIngestDataSour
doAddImageProcess(deviceId, imagePath, sectorSize, timeZone, ignoreFatOrphanFiles, md5, sha1, sha256, this.password, progressMonitor, callback); doAddImageProcess(deviceId, imagePath, sectorSize, timeZone, ignoreFatOrphanFiles, md5, sha1, sha256, this.password, progressMonitor, callback);
} }
/**
* Adds a data source to the case database using a background task in a
* separate thread and the given settings instead of those provided by the
* selection and configuration panel. Returns as soon as the background task
* is started and uses the callback object to signal task completion and
* return results.
*
* @param deviceId An ASCII-printable identifier for the device
* associated with the data source that is
* intended to be unique across multiple cases
* (e.g., a UUID).
* @param imagePath Path to the image file.
* @param timeZone The time zone to use when processing dates
* and times for the image, obtained from
* java.util.TimeZone.getID.
* @param ignoreFatOrphanFiles Whether to parse orphans if the image has a
* FAT filesystem.
* @param progressMonitor Progress monitor for reporting progress
* during processing.
* @param callback Callback to call when processing is done.
*/
public void run(String deviceId, String imagePath, String timeZone, boolean ignoreFatOrphanFiles, DataSourceProcessorProgressMonitor progressMonitor, DataSourceProcessorCallback callback) {
ingestStream = new DefaultIngestStream();
try {
image = SleuthkitJNI.addImageToDatabase(Case.getCurrentCase().getSleuthkitCase(),
new String[]{imagePath}, sectorSize, timeZone, "", "", "", deviceId, null, null);
} catch (TskCoreException ex) {
logger.log(Level.SEVERE, "Error adding data source with path " + imagePath + " to database", ex);
final List<String> errors = new ArrayList<>();
errors.add(ex.getMessage());
callback.done(DataSourceProcessorCallback.DataSourceProcessorResult.CRITICAL_ERRORS, errors, new ArrayList<>());
return;
}
doAddImageProcess(deviceId, imagePath, 0, timeZone, ignoreFatOrphanFiles, null, null, null, this.password, progressMonitor, callback);
}
/** /**
* Adds a data source to the case database using a background task in a * Adds a data source to the case database using a background task in a
* separate thread and the settings provided by the selection and * separate thread and the settings provided by the selection and
@ -241,7 +289,7 @@ public class ImageDSProcessor implements DataSourceProcessor, AutoIngestDataSour
@Override @Override
public void runWithIngestStream(IngestJobSettings settings, DataSourceProcessorProgressMonitor progress, public void runWithIngestStream(IngestJobSettings settings, DataSourceProcessorProgressMonitor progress,
DataSourceProcessorCallback callBack) { DataSourceProcessorCallback callBack) {
runWithIngestStream(null, settings, progress, callBack); runWithIngestStream(null, null, settings, progress, callBack);
} }
/** /**
@ -265,10 +313,18 @@ public class ImageDSProcessor implements DataSourceProcessor, AutoIngestDataSour
@Override @Override
public void runWithIngestStream(Host host, IngestJobSettings settings, DataSourceProcessorProgressMonitor progress, public void runWithIngestStream(Host host, IngestJobSettings settings, DataSourceProcessorProgressMonitor progress,
DataSourceProcessorCallback callBack) { DataSourceProcessorCallback callBack) {
runWithIngestStream(null, host, settings, progress, callBack);
}
@Override
public void runWithIngestStream(String password, Host host, IngestJobSettings settings,
DataSourceProcessorProgressMonitor progress, DataSourceProcessorCallback callBack) {
// Read the settings from the wizard // Read the settings from the wizard
readConfigSettings(); readConfigSettings();
this.host = host; this.host = host;
this.password = StringUtils.defaultString(password, this.password);
// Set up the data source before creating the ingest stream // Set up the data source before creating the ingest stream
try { try {
@ -296,6 +352,7 @@ public class ImageDSProcessor implements DataSourceProcessor, AutoIngestDataSour
doAddImageProcess(deviceId, imagePath, sectorSize, timeZone, ignoreFatOrphanFiles, md5, sha1, sha256, this.password, progress, callBack); doAddImageProcess(deviceId, imagePath, sectorSize, timeZone, ignoreFatOrphanFiles, md5, sha1, sha256, this.password, progress, callBack);
} }
/** /**
* Store the options from the config panel. * Store the options from the config panel.
*/ */
@ -318,8 +375,8 @@ public class ImageDSProcessor implements DataSourceProcessor, AutoIngestDataSour
if (sha256.isEmpty()) { if (sha256.isEmpty()) {
sha256 = null; sha256 = null;
} }
password = configPanel.getPassword(); this.password = configPanel.getPassword();
if (password.isEmpty()) { if (this.password.isEmpty()) {
password = null; password = null;
} }
} }
@ -334,42 +391,6 @@ public class ImageDSProcessor implements DataSourceProcessor, AutoIngestDataSour
return true; return true;
} }
/**
* Adds a data source to the case database using a background task in a
* separate thread and the given settings instead of those provided by the
* selection and configuration panel. Returns as soon as the background task
* is started and uses the callback object to signal task completion and
* return results.
*
* @param deviceId An ASCII-printable identifier for the device
* associated with the data source that is
* intended to be unique across multiple cases
* (e.g., a UUID).
* @param imagePath Path to the image file.
* @param timeZone The time zone to use when processing dates
* and times for the image, obtained from
* java.util.TimeZone.getID.
* @param ignoreFatOrphanFiles Whether to parse orphans if the image has a
* FAT filesystem.
* @param progressMonitor Progress monitor for reporting progress
* during processing.
* @param callback Callback to call when processing is done.
*/
public void run(String deviceId, String imagePath, String timeZone, boolean ignoreFatOrphanFiles, DataSourceProcessorProgressMonitor progressMonitor, DataSourceProcessorCallback callback) {
ingestStream = new DefaultIngestStream();
try {
image = SleuthkitJNI.addImageToDatabase(Case.getCurrentCase().getSleuthkitCase(),
new String[]{imagePath}, sectorSize, timeZone, "", "", "", deviceId, this.password, null);
} catch (TskCoreException ex) {
logger.log(Level.SEVERE, "Error adding data source with path " + imagePath + " to database", ex);
final List<String> errors = new ArrayList<>();
errors.add(ex.getMessage());
callback.done(DataSourceProcessorCallback.DataSourceProcessorResult.CRITICAL_ERRORS, errors, new ArrayList<>());
return;
}
doAddImageProcess(deviceId, imagePath, 0, timeZone, ignoreFatOrphanFiles, null, null, null, this.password, progressMonitor, callback);
}
/** /**
* Adds a data source to the case database using a background task in a * Adds a data source to the case database using a background task in a
@ -472,6 +493,13 @@ public class ImageDSProcessor implements DataSourceProcessor, AutoIngestDataSour
@Override @Override
public int canProcess(Path dataSourcePath) throws AutoIngestDataSourceProcessorException { public int canProcess(Path dataSourcePath) throws AutoIngestDataSourceProcessorException {
return canProcess(dataSourcePath, null);
}
@Override
public int canProcess(Path dataSourcePath, String password) throws AutoIngestDataSourceProcessorException {
// check file extension for supported types // check file extension for supported types
if (!isAcceptedByFiler(dataSourcePath.toFile(), filtersList)) { if (!isAcceptedByFiler(dataSourcePath.toFile(), filtersList)) {
@ -504,16 +532,22 @@ public class ImageDSProcessor implements DataSourceProcessor, AutoIngestDataSour
@Override @Override
public void process(String deviceId, Path dataSourcePath, DataSourceProcessorProgressMonitor progressMonitor, DataSourceProcessorCallback callBack) { public void process(String deviceId, Path dataSourcePath, DataSourceProcessorProgressMonitor progressMonitor, DataSourceProcessorCallback callBack) {
process(deviceId, dataSourcePath, null, progressMonitor, callBack); process(deviceId, dataSourcePath, null, null, progressMonitor, callBack);
} }
@Override @Override
public void process(String deviceId, Path dataSourcePath, Host host, DataSourceProcessorProgressMonitor progressMonitor, DataSourceProcessorCallback callBack) { public void process(String deviceId, Path dataSourcePath, Host host, DataSourceProcessorProgressMonitor progressMonitor, DataSourceProcessorCallback callBack) {
process(deviceId, dataSourcePath, null, host, progressMonitor, callBack);
}
@Override
public void process(String deviceId, Path dataSourcePath, String password, Host host, DataSourceProcessorProgressMonitor progressMonitor, DataSourceProcessorCallback callBack) {
// this method does not use the config panel // this method does not use the config panel
this.deviceId = deviceId; this.deviceId = deviceId;
this.imagePath = dataSourcePath.toString(); this.imagePath = dataSourcePath.toString();
this.sectorSize = 0; this.sectorSize = 0;
this.timeZone = Calendar.getInstance().getTimeZone().getID(); this.timeZone = Calendar.getInstance().getTimeZone().getID();
this.password = StringUtils.defaultString(password, this.password);
this.host = host; this.host = host;
this.ignoreFatOrphanFiles = false; this.ignoreFatOrphanFiles = false;
@ -529,28 +563,36 @@ public class ImageDSProcessor implements DataSourceProcessor, AutoIngestDataSour
return; return;
} }
doAddImageProcess(deviceId, dataSourcePath.toString(), sectorSize, timeZone, ignoreFatOrphanFiles, null, null, null, null, progressMonitor, callBack); doAddImageProcess(deviceId, dataSourcePath.toString(), sectorSize, timeZone, ignoreFatOrphanFiles, null, null, null, this.password, progressMonitor, callBack);
} }
@Override @Override
public IngestStream processWithIngestStream(String deviceId, Path dataSourcePath, IngestJobSettings settings, DataSourceProcessorProgressMonitor progressMonitor, DataSourceProcessorCallback callBack) { public IngestStream processWithIngestStream(String deviceId, Path dataSourcePath, IngestJobSettings settings, DataSourceProcessorProgressMonitor progressMonitor, DataSourceProcessorCallback callBack) {
return processWithIngestStream(deviceId, dataSourcePath, null, settings, progressMonitor, callBack); return processWithIngestStream(deviceId, dataSourcePath, null, null, settings, progressMonitor, callBack);
} }
@Override @Override
public IngestStream processWithIngestStream(String deviceId, Path dataSourcePath, Host host, IngestJobSettings settings, DataSourceProcessorProgressMonitor progressMonitor, DataSourceProcessorCallback callBack) { public IngestStream processWithIngestStream(String deviceId, Path dataSourcePath, Host host, IngestJobSettings settings, DataSourceProcessorProgressMonitor progressMonitor, DataSourceProcessorCallback callBack) {
return processWithIngestStream(deviceId, dataSourcePath, null, host, settings, progressMonitor, callBack);
}
@Override
public IngestStream processWithIngestStream(String deviceId, Path dataSourcePath, String password, Host host, IngestJobSettings settings, DataSourceProcessorProgressMonitor progressMonitor, DataSourceProcessorCallback callBack) {
// this method does not use the config panel // this method does not use the config panel
this.deviceId = deviceId; this.deviceId = deviceId;
this.imagePath = dataSourcePath.toString(); this.imagePath = dataSourcePath.toString();
this.sectorSize = 0; this.sectorSize = 0;
this.timeZone = Calendar.getInstance().getTimeZone().getID(); this.timeZone = Calendar.getInstance().getTimeZone().getID();
this.host = host; this.host = host;
this.password = password;
this.ignoreFatOrphanFiles = false; this.ignoreFatOrphanFiles = false;
// Set up the data source before creating the ingest stream // Set up the data source before creating the ingest stream
try { try {
image = SleuthkitJNI.addImageToDatabase(Case.getCurrentCase().getSleuthkitCase(), image = SleuthkitJNI.addImageToDatabase(Case.getCurrentCase().getSleuthkitCase(),
new String[]{imagePath}, sectorSize, timeZone, md5, sha1, sha256, deviceId, this.password, host); new String[]{imagePath}, sectorSize, timeZone, md5, sha1, sha256, deviceId, password, host);
} catch (TskCoreException ex) { } catch (TskCoreException ex) {
logger.log(Level.SEVERE, "Error adding data source with path " + imagePath + " to database", ex); logger.log(Level.SEVERE, "Error adding data source with path " + imagePath + " to database", ex);
final List<String> errors = new ArrayList<>(); final List<String> errors = new ArrayList<>();
@ -570,8 +612,10 @@ public class ImageDSProcessor implements DataSourceProcessor, AutoIngestDataSour
return null; return null;
} }
doAddImageProcess(deviceId, dataSourcePath.toString(), sectorSize, timeZone, ignoreFatOrphanFiles, null, null, null, null, progressMonitor, callBack); doAddImageProcess(deviceId, dataSourcePath.toString(), sectorSize, timeZone, ignoreFatOrphanFiles, null, null, null, password, progressMonitor, callBack);
return ingestStream; return ingestStream;
} }
} }

View File

@ -136,7 +136,12 @@ public class LocalDiskDSProcessor implements DataSourceProcessor {
*/ */
@Override @Override
public void run(DataSourceProcessorProgressMonitor progressMonitor, DataSourceProcessorCallback callback) { public void run(DataSourceProcessorProgressMonitor progressMonitor, DataSourceProcessorCallback callback) {
run(null, progressMonitor, callback); run(null, null, progressMonitor, callback);
}
@Override
public void run(Host host, DataSourceProcessorProgressMonitor progressMonitor, DataSourceProcessorCallback callback) {
run(null, host, progressMonitor, callback);
} }
/** /**
@ -155,7 +160,7 @@ public class LocalDiskDSProcessor implements DataSourceProcessor {
* to return results. * to return results.
*/ */
@Override @Override
public void run(Host host, DataSourceProcessorProgressMonitor progressMonitor, DataSourceProcessorCallback callback) { public void run(String password, Host host, DataSourceProcessorProgressMonitor progressMonitor, DataSourceProcessorCallback callback) {
deviceId = UUID.randomUUID().toString(); deviceId = UUID.randomUUID().toString();
drivePath = configPanel.getContentPath(); drivePath = configPanel.getContentPath();
sectorSize = configPanel.getSectorSize(); sectorSize = configPanel.getSectorSize();
@ -168,12 +173,13 @@ public class LocalDiskDSProcessor implements DataSourceProcessor {
} }
this.host = host; this.host = host;
this.password = password;
Image image; Image image;
try { try {
image = SleuthkitJNI.addImageToDatabase(Case.getCurrentCase().getSleuthkitCase(), image = SleuthkitJNI.addImageToDatabase(Case.getCurrentCase().getSleuthkitCase(),
new String[]{drivePath}, sectorSize, new String[]{drivePath}, sectorSize,
timeZone, null, null, null, deviceId, this.host); timeZone, null, null, null, deviceId, this.password, this.host);
} catch (TskCoreException ex) { } catch (TskCoreException ex) {
logger.log(Level.SEVERE, "Error adding local disk with path " + drivePath + " to database", ex); logger.log(Level.SEVERE, "Error adding local disk with path " + drivePath + " to database", ex);
final List<String> errors = new ArrayList<>(); final List<String> errors = new ArrayList<>();
@ -183,7 +189,7 @@ public class LocalDiskDSProcessor implements DataSourceProcessor {
} }
addDiskTask = new AddImageTask( addDiskTask = new AddImageTask(
new AddImageTask.ImageDetails(deviceId, image, sectorSize, timeZone, ignoreFatOrphanFiles, null, null, null, imageWriterSettings, password), new AddImageTask.ImageDetails(deviceId, image, sectorSize, timeZone, ignoreFatOrphanFiles, null, null, null, imageWriterSettings, this.password),
progressMonitor, progressMonitor,
new StreamingAddDataSourceCallbacks(new DefaultIngestStream()), new StreamingAddDataSourceCallbacks(new DefaultIngestStream()),
new StreamingAddImageTaskCallback(new DefaultIngestStream(), callback)); new StreamingAddImageTaskCallback(new DefaultIngestStream(), callback));
@ -242,7 +248,7 @@ public class LocalDiskDSProcessor implements DataSourceProcessor {
try { try {
image = SleuthkitJNI.addImageToDatabase(Case.getCurrentCase().getSleuthkitCase(), image = SleuthkitJNI.addImageToDatabase(Case.getCurrentCase().getSleuthkitCase(),
new String[]{drivePath}, sectorSize, new String[]{drivePath}, sectorSize,
timeZone, null, null, null, deviceId); timeZone, null, null, null, deviceId, this.password, null);
} catch (TskCoreException ex) { } catch (TskCoreException ex) {
logger.log(Level.SEVERE, "Error adding local disk with path " + drivePath + " to database", ex); logger.log(Level.SEVERE, "Error adding local disk with path " + drivePath + " to database", ex);
final List<String> errors = new ArrayList<>(); final List<String> errors = new ArrayList<>();
@ -251,7 +257,7 @@ public class LocalDiskDSProcessor implements DataSourceProcessor {
return; return;
} }
addDiskTask = new AddImageTask(new AddImageTask.ImageDetails(deviceId, image, sectorSize, timeZone, ignoreFatOrphanFiles, null, null, null, imageWriterSettings, password), addDiskTask = new AddImageTask(new AddImageTask.ImageDetails(deviceId, image, sectorSize, timeZone, ignoreFatOrphanFiles, null, null, null, imageWriterSettings, this.password),
progressMonitor, progressMonitor,
new StreamingAddDataSourceCallbacks(new DefaultIngestStream()), new StreamingAddDataSourceCallbacks(new DefaultIngestStream()),
new StreamingAddImageTaskCallback(new DefaultIngestStream(), callback)); new StreamingAddImageTaskCallback(new DefaultIngestStream(), callback));

View File

@ -0,0 +1,119 @@
/*
* Autopsy Forensic Browser
*
* Copyright 2017-2020 Basis Technology Corp.
* Contact: carrier <at> sleuthkit <dot> 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.centralrepository.eventlisteners;
import java.lang.reflect.InvocationTargetException;
import java.util.Map;
import java.util.logging.Level;
import javax.swing.JOptionPane;
import javax.swing.SwingUtilities;
import org.openide.util.NbBundle;
import org.sleuthkit.autopsy.centralrepository.CentralRepoSettings;
import org.sleuthkit.autopsy.centralrepository.datamodel.CentralRepoDbChoice;
import org.sleuthkit.autopsy.centralrepository.datamodel.CentralRepoDbManager;
import org.sleuthkit.autopsy.centralrepository.datamodel.CentralRepoException;
import org.sleuthkit.autopsy.core.RuntimeProperties;
import org.sleuthkit.autopsy.core.UserPreferences;
import org.sleuthkit.autopsy.coreutils.Logger;
import org.sleuthkit.autopsy.coreutils.ModuleSettings;
/**
* Runs the default setup for central repository and notifies the user if a)
* running with GUI and b) first launch.
*/
public class CRDefaultSetupAction {
private static final Logger logger = Logger.getLogger(CRDefaultSetupAction.class.getName());
private static final CRDefaultSetupAction INSTANCE = new CRDefaultSetupAction();
public static CRDefaultSetupAction getInstance() {
return INSTANCE;
}
private CRDefaultSetupAction() {
}
/**
* Checks if the central repository has been set up and configured. If not,
* does the set up unconditionally.
*
* @return Returns true if first run and a default CR was setup.
*/
public boolean setupDefaultCentralRepository() {
Map<String, String> centralRepoSettings = ModuleSettings.getConfigSettings(CentralRepoSettings.getInstance().getModuleSettingsKey());
String initializedStr = centralRepoSettings.get("initialized");
// check to see if the repo has been initialized asking to setup cr
boolean initialized = Boolean.parseBoolean(initializedStr);
// if it hasn't received that flag, check for a previous install where cr is already setup
if (!initialized) {
boolean prevRepo = Boolean.parseBoolean(centralRepoSettings.get("db.useCentralRepo"));
// if it has been previously set up and is in use, mark as previously initialized and save the settings
if (prevRepo) {
initialized = true;
ModuleSettings.setConfigSetting(CentralRepoSettings.getInstance().getModuleSettingsKey(), "initialized", "true");
}
}
if (initialized) {
return false; // Nothing to do
}
try {
CentralRepoDbManager manager = new CentralRepoDbManager();
if (UserPreferences.getIsMultiUserModeEnabled()) {
// Set up using existing multi-user settings.
manager.setupPostgresDb(CentralRepoDbChoice.POSTGRESQL_MULTIUSER);
} else {
manager.setupDefaultSqliteDb();
}
} catch (CentralRepoException ex) {
logger.log(Level.SEVERE, "There was an error while initializing the central repository database", ex);
doMessageBoxIfRunningInGUI(ex);
}
ModuleSettings.setConfigSetting(CentralRepoSettings.getInstance().getModuleSettingsKey(), "initialized", "true");
return true;
}
/**
* Display a central repository exception in a message box if running with a
* GUI.
*
* @param ex The exception.
*/
@NbBundle.Messages({"Installer.centralRepoUpgradeFailed.title=Central repository disabled"})
private void doMessageBoxIfRunningInGUI(CentralRepoException ex) {
if (RuntimeProperties.runningWithGUI()) {
try {
SwingUtilities.invokeAndWait(() -> {
JOptionPane.showMessageDialog(null,
ex.getUserMessage(),
NbBundle.getMessage(this.getClass(), "Installer.centralRepoUpgradeFailed.title"),
JOptionPane.ERROR_MESSAGE);
});
} catch (InterruptedException | InvocationTargetException e) {
logger.log(Level.WARNING, e.getMessage(), e);
}
}
}
}

View File

@ -33,7 +33,7 @@ public class CentralRepositoryNotificationDialog {
* This dialog should display iff the mode is RELEASE and the * This dialog should display iff the mode is RELEASE and the
* application is running with a GUI. * application is running with a GUI.
*/ */
static boolean shouldDisplay() { public static boolean shouldDisplay() {
return Version.getBuildType() == Version.Type.RELEASE return Version.getBuildType() == Version.Type.RELEASE
&& RuntimeProperties.runningWithGUI(); && RuntimeProperties.runningWithGUI();
} }
@ -50,7 +50,7 @@ public class CentralRepositoryNotificationDialog {
"CentralRepositoryNotificationDialog.bulletThree=Create personas that group accounts", "CentralRepositoryNotificationDialog.bulletThree=Create personas that group accounts",
"CentralRepositoryNotificationDialog.finalRemarks=To limit what is stored, use the Central Repository options panel." "CentralRepositoryNotificationDialog.finalRemarks=To limit what is stored, use the Central Repository options panel."
}) })
static void display() { public static void display() {
assert shouldDisplay(); assert shouldDisplay();
MessageNotifyUtil.Message.info( MessageNotifyUtil.Message.info(

View File

@ -20,21 +20,12 @@ package org.sleuthkit.autopsy.centralrepository.eventlisteners;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.nio.file.Paths; import java.nio.file.Paths;
import java.util.Map; import java.util.Map;
import java.util.logging.Level; import java.util.logging.Level;
import javax.swing.JOptionPane;
import javax.swing.SwingUtilities;
import org.apache.commons.io.FileUtils; import org.apache.commons.io.FileUtils;
import org.openide.modules.ModuleInstall; import org.openide.modules.ModuleInstall;
import org.openide.util.NbBundle;
import org.sleuthkit.autopsy.centralrepository.datamodel.CentralRepoDbChoice;
import org.sleuthkit.autopsy.centralrepository.datamodel.CentralRepoDbManager;
import org.sleuthkit.autopsy.centralrepository.datamodel.CentralRepoException;
import org.sleuthkit.autopsy.centralrepository.CentralRepoSettings; import org.sleuthkit.autopsy.centralrepository.CentralRepoSettings;
import org.sleuthkit.autopsy.core.RuntimeProperties;
import org.sleuthkit.autopsy.core.UserPreferences;
import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.autopsy.coreutils.Logger;
import org.sleuthkit.autopsy.coreutils.ModuleSettings; import org.sleuthkit.autopsy.coreutils.ModuleSettings;
import org.sleuthkit.autopsy.coreutils.PlatformUtil; import org.sleuthkit.autopsy.coreutils.PlatformUtil;
@ -90,7 +81,6 @@ public class Installer extends ModuleInstall {
public void restored() { public void restored() {
// must happen first to move any legacy settings that exist. // must happen first to move any legacy settings that exist.
upgradeSettingsPath(); upgradeSettingsPath();
setupDefaultCentralRepository();
} }
@ -151,76 +141,6 @@ public class Installer extends ModuleInstall {
} }
} }
/**
* Checks if the central repository has been set up and configured. If not,
* does the set up unconditionally. If the application is running with a
* GUI, a notification will be displayed to the user if the mode is RELEASE
* (in other words, developers are exempt from seeing the notification).
*/
private void setupDefaultCentralRepository() {
Map<String, String> centralRepoSettings = ModuleSettings.getConfigSettings(CentralRepoSettings.getInstance().getModuleSettingsKey());
String initializedStr = centralRepoSettings.get("initialized");
// check to see if the repo has been initialized asking to setup cr
boolean initialized = Boolean.parseBoolean(initializedStr);
// if it hasn't received that flag, check for a previous install where cr is already setup
if (!initialized) {
boolean prevRepo = Boolean.parseBoolean(centralRepoSettings.get("db.useCentralRepo"));
// if it has been previously set up and is in use, mark as previously initialized and save the settings
if (prevRepo) {
initialized = true;
ModuleSettings.setConfigSetting(CentralRepoSettings.getInstance().getModuleSettingsKey(), "initialized", "true");
}
}
if(initialized) {
return; // Nothing to do
}
if (CentralRepositoryNotificationDialog.shouldDisplay()) {
CentralRepositoryNotificationDialog.display();
}
try {
CentralRepoDbManager manager = new CentralRepoDbManager();
if (UserPreferences.getIsMultiUserModeEnabled()) {
// Set up using existing multi-user settings.
manager.setupPostgresDb(CentralRepoDbChoice.POSTGRESQL_MULTIUSER);
} else {
manager.setupDefaultSqliteDb();
}
} catch (CentralRepoException ex) {
logger.log(Level.SEVERE, "There was an error while initializing the central repository database", ex);
doMessageBoxIfRunningInGUI(ex);
}
ModuleSettings.setConfigSetting(CentralRepoSettings.getInstance().getModuleSettingsKey(), "initialized", "true");
}
/**
* Display a central repository exception in a message box if running with a
* GUI.
*
* @param ex The exception.
*/
@NbBundle.Messages({"Installer.centralRepoUpgradeFailed.title=Central repository disabled"})
private void doMessageBoxIfRunningInGUI(CentralRepoException ex) {
if (RuntimeProperties.runningWithGUI()) {
try {
SwingUtilities.invokeAndWait(() -> {
JOptionPane.showMessageDialog(null,
ex.getUserMessage(),
NbBundle.getMessage(this.getClass(), "Installer.centralRepoUpgradeFailed.title"),
JOptionPane.ERROR_MESSAGE);
});
} catch (InterruptedException | InvocationTargetException e) {
logger.log(Level.WARNING, e.getMessage(), e);
}
}
}
@Override @Override
public void uninstalled() { public void uninstalled() {
/* /*

View File

@ -49,7 +49,9 @@ class CommandLineCommand {
DATA_SOURCE_PATH, DATA_SOURCE_PATH,
DATA_SOURCE_ID, DATA_SOURCE_ID,
INGEST_PROFILE_NAME, INGEST_PROFILE_NAME,
REPORT_PROFILE_NAME; REPORT_PROFILE_NAME,
BITLOCKER_KEY,
;
} }
private final CommandType type; private final CommandType type;

View File

@ -198,7 +198,8 @@ public class CommandLineIngestManager extends CommandLineManager {
} }
String dataSourcePath = inputs.get(CommandLineCommand.InputType.DATA_SOURCE_PATH.name()); String dataSourcePath = inputs.get(CommandLineCommand.InputType.DATA_SOURCE_PATH.name());
dataSource = new AutoIngestDataSource(UUID.randomUUID().toString(), Paths.get(dataSourcePath)); String password = inputs.get(CommandLineCommand.InputType.BITLOCKER_KEY.name());
dataSource = new AutoIngestDataSource(UUID.randomUUID().toString(), Paths.get(dataSourcePath), password);
runDataSourceProcessor(caseForJob, dataSource); runDataSourceProcessor(caseForJob, dataSource);
String outputDirPath = getOutputDirPath(caseForJob); String outputDirPath = getOutputDirPath(caseForJob);
@ -406,7 +407,7 @@ public class CommandLineIngestManager extends CommandLineManager {
// Get an ordered list of data source processors to try // Get an ordered list of data source processors to try
List<AutoIngestDataSourceProcessor> validDataSourceProcessors; List<AutoIngestDataSourceProcessor> validDataSourceProcessors;
try { try {
validDataSourceProcessors = DataSourceProcessorUtility.getOrderedListOfDataSourceProcessors(dataSource.getPath()); validDataSourceProcessors = DataSourceProcessorUtility.getOrderedListOfDataSourceProcessors(dataSource.getPath(), dataSource.getPassword());
} catch (AutoIngestDataSourceProcessor.AutoIngestDataSourceProcessorException ex) { } catch (AutoIngestDataSourceProcessor.AutoIngestDataSourceProcessorException ex) {
LOGGER.log(Level.SEVERE, "Exception while determining best data source processor for {0}", dataSource.getPath()); LOGGER.log(Level.SEVERE, "Exception while determining best data source processor for {0}", dataSource.getPath());
// rethrow the exception. // rethrow the exception.
@ -429,7 +430,7 @@ public class CommandLineIngestManager extends CommandLineManager {
DataSourceProcessorCallback callBack = new AddDataSourceCallback(caseForJob, dataSource, taskId, ingestLock); DataSourceProcessorCallback callBack = new AddDataSourceCallback(caseForJob, dataSource, taskId, ingestLock);
caseForJob.notifyAddingDataSource(taskId); caseForJob.notifyAddingDataSource(taskId);
LOGGER.log(Level.INFO, "Identified data source type for {0} as {1}", new Object[]{dataSource.getPath(), selectedProcessor.getDataSourceType()}); LOGGER.log(Level.INFO, "Identified data source type for {0} as {1}", new Object[]{dataSource.getPath(), selectedProcessor.getDataSourceType()});
selectedProcessor.process(dataSource.getDeviceId(), dataSource.getPath(), progressMonitor, callBack); selectedProcessor.process(dataSource.getDeviceId(), dataSource.getPath(), dataSource.getPassword(), null, progressMonitor, callBack);
ingestLock.wait(); ingestLock.wait();
// at this point we got the content object(s) from the current DSP. // at this point we got the content object(s) from the current DSP.

View File

@ -30,6 +30,7 @@ import java.util.Set;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.Stream; import java.util.stream.Stream;
import org.apache.commons.lang3.ArrayUtils;
import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.autopsy.coreutils.Logger;
import org.netbeans.api.sendopts.CommandException; import org.netbeans.api.sendopts.CommandException;
import org.netbeans.spi.sendopts.Env; import org.netbeans.spi.sendopts.Env;
@ -52,6 +53,7 @@ public class CommandLineOptionProcessor extends OptionProcessor {
private final Option dataSourcePathOption = Option.requiredArgument('s', "dataSourcePath"); private final Option dataSourcePathOption = Option.requiredArgument('s', "dataSourcePath");
private final Option dataSourceObjectIdOption = Option.requiredArgument('i', "dataSourceObjectId"); private final Option dataSourceObjectIdOption = Option.requiredArgument('i', "dataSourceObjectId");
private final Option addDataSourceCommandOption = Option.withoutArgument('a', "addDataSource"); private final Option addDataSourceCommandOption = Option.withoutArgument('a', "addDataSource");
private final Option bitlockerKeyCommandOption = Option.requiredArgument('k', "key");
private final Option runIngestCommandOption = Option.optionalArgument('r', "runIngest"); private final Option runIngestCommandOption = Option.optionalArgument('r', "runIngest");
private final Option listAllDataSourcesCommandOption = Option.withoutArgument('l', "listAllDataSources"); private final Option listAllDataSourcesCommandOption = Option.withoutArgument('l', "listAllDataSources");
private final Option generateReportsOption = Option.optionalArgument('g', "generateReports"); private final Option generateReportsOption = Option.optionalArgument('g', "generateReports");
@ -81,20 +83,21 @@ public class CommandLineOptionProcessor extends OptionProcessor {
@Override @Override
protected Set<Option> getOptions() { protected Set<Option> getOptions() {
Set<Option> set = new HashSet<>(); return Set.of(
set.add(createCaseCommandOption); createCaseCommandOption,
set.add(caseNameOption); caseNameOption,
set.add(caseTypeOption); caseTypeOption,
set.add(caseBaseDirOption); caseBaseDirOption,
set.add(dataSourcePathOption); dataSourcePathOption,
set.add(addDataSourceCommandOption); addDataSourceCommandOption,
set.add(dataSourceObjectIdOption); bitlockerKeyCommandOption,
set.add(runIngestCommandOption); dataSourceObjectIdOption,
set.add(listAllDataSourcesCommandOption); runIngestCommandOption,
set.add(generateReportsOption); listAllDataSourcesCommandOption,
set.add(listAllIngestProfileOption); generateReportsOption,
set.add(defaultArgument); listAllIngestProfileOption,
return set; defaultArgument
);
} }
@Override @Override
@ -203,6 +206,9 @@ public class CommandLineOptionProcessor extends OptionProcessor {
} }
} }
String[] keysArgs = values.get(bitlockerKeyCommandOption);
String bitlockerKey = ArrayUtils.isNotEmpty(keysArgs) ? keysArgs[0] : null;
String dataSourceId = ""; String dataSourceId = "";
if (values.containsKey(dataSourceObjectIdOption)) { if (values.containsKey(dataSourceObjectIdOption)) {
@ -247,6 +253,11 @@ public class CommandLineOptionProcessor extends OptionProcessor {
newCommand.addInputValue(CommandLineCommand.InputType.CASE_NAME.name(), inputCaseName); newCommand.addInputValue(CommandLineCommand.InputType.CASE_NAME.name(), inputCaseName);
newCommand.addInputValue(CommandLineCommand.InputType.CASES_BASE_DIR_PATH.name(), caseBaseDir); newCommand.addInputValue(CommandLineCommand.InputType.CASES_BASE_DIR_PATH.name(), caseBaseDir);
newCommand.addInputValue(CommandLineCommand.InputType.DATA_SOURCE_PATH.name(), dataSourcePath); newCommand.addInputValue(CommandLineCommand.InputType.DATA_SOURCE_PATH.name(), dataSourcePath);
if (bitlockerKey != null) {
newCommand.addInputValue(CommandLineCommand.InputType.BITLOCKER_KEY.name(), bitlockerKey);
}
commands.add(newCommand); commands.add(newCommand);
runFromCommandLine(true); runFromCommandLine(true);
} }

View File

@ -41,7 +41,7 @@ import com.mxgraph.view.mxGraph;
import com.mxgraph.view.mxGraphView; import com.mxgraph.view.mxGraphView;
import java.awt.BorderLayout; import java.awt.BorderLayout;
import java.awt.Color; import java.awt.Color;
import java.awt.Desktop; import org.sleuthkit.autopsy.coreutils.Desktop;
import java.awt.Dimension; import java.awt.Dimension;
import java.awt.Font; import java.awt.Font;
import java.awt.Frame; import java.awt.Frame;

View File

@ -246,6 +246,7 @@ public class Installer extends ModuleInstall {
packageInstallers.add(org.sleuthkit.autopsy.casemodule.Installer.getDefault()); packageInstallers.add(org.sleuthkit.autopsy.casemodule.Installer.getDefault());
packageInstallers.add(org.sleuthkit.autopsy.modules.hashdatabase.infrastructure.Installer.getDefault()); packageInstallers.add(org.sleuthkit.autopsy.modules.hashdatabase.infrastructure.Installer.getDefault());
packageInstallers.add(org.sleuthkit.autopsy.report.infrastructure.Installer.getDefault()); packageInstallers.add(org.sleuthkit.autopsy.report.infrastructure.Installer.getDefault());
packageInstallers.add(com.basistech.df.cybertriage.autopsy.ctoptions.ctcloud.Installer.getDefault());
/** /**
* This is a temporary workaround for the following bug in Tika that * This is a temporary workaround for the following bug in Tika that

View File

@ -129,6 +129,27 @@ public interface DataSourceProcessor {
run(progressMonitor, callback); run(progressMonitor, callback);
} }
/**
* Adds a data source to the case database using a background task in a
* separate thread and the settings provided by the selection and
* configuration panel. Returns as soon as the background task is started.
* The background task uses a callback object to signal task completion and
* return results.
*
* This method should not be called unless isPanelValid returns true.
*
* @param password The password
* @param host Host for the data source.
* @param progressMonitor Progress monitor that will be used by the
* background task to report progress.
* @param callback Callback that will be used by the background task
* to return results.
*/
default void run(String password, Host host, DataSourceProcessorProgressMonitor progressMonitor, DataSourceProcessorCallback callback) {
run(host, progressMonitor, callback);
}
/** /**
* Adds a data source to the case database using a background task in a * Adds a data source to the case database using a background task in a
* separate thread and the settings provided by the selection and * separate thread and the settings provided by the selection and
@ -176,6 +197,31 @@ public interface DataSourceProcessor {
runWithIngestStream(settings, progress, callBack); runWithIngestStream(settings, progress, callBack);
} }
/**
* Adds a data source to the case database using a background task in a
* separate thread and the settings provided by the selection and
* configuration panel. Files found during ingest will be sent directly to
* the IngestStream provided. Returns as soon as the background task is
* started. The background task uses a callback object to signal task
* completion and return results.
*
* This method should not be called unless isPanelValid returns true, and
* should only be called for DSPs that support ingest streams. The ingest
* settings must be complete before calling this method.
*
* @param password The password to decrypt the data source.
* @param host Host for this data source.
* @param settings The ingest job settings.
* @param progress Progress monitor that will be used by the background task
* to report progress.
* @param callBack Callback that will be used by the background task to
* return results.
*/
default void runWithIngestStream(String password, Host host, IngestJobSettings settings, DataSourceProcessorProgressMonitor progress,
DataSourceProcessorCallback callBack) {
runWithIngestStream(host, settings, progress, callBack);
}
/** /**
* Check if this DSP supports ingest streams. * Check if this DSP supports ingest streams.
* *

View File

@ -19,7 +19,7 @@
package org.sleuthkit.autopsy.corecomponents; package org.sleuthkit.autopsy.corecomponents;
import java.awt.Cursor; import java.awt.Cursor;
import java.awt.Desktop; import org.sleuthkit.autopsy.coreutils.Desktop;
import java.awt.Window; import java.awt.Window;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;

View File

@ -44,6 +44,8 @@ import org.openide.util.Lookup;
import org.openide.windows.WindowManager; import org.openide.windows.WindowManager;
import org.sleuthkit.autopsy.casemodule.StartupWindowProvider; import org.sleuthkit.autopsy.casemodule.StartupWindowProvider;
import org.sleuthkit.autopsy.commandlineingest.CommandLineIngestManager; import org.sleuthkit.autopsy.commandlineingest.CommandLineIngestManager;
import org.sleuthkit.autopsy.centralrepository.eventlisteners.CRDefaultSetupAction;
import org.sleuthkit.autopsy.centralrepository.eventlisteners.CentralRepositoryNotificationDialog;
import org.sleuthkit.autopsy.commandlineingest.CommandLineOptionProcessor; import org.sleuthkit.autopsy.commandlineingest.CommandLineOptionProcessor;
import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.autopsy.coreutils.Logger;
import org.sleuthkit.autopsy.coreutils.ModuleSettings; import org.sleuthkit.autopsy.coreutils.ModuleSettings;
@ -93,6 +95,12 @@ public class Installer extends ModuleInstall {
final CommandLineOptionProcessor finalprocessor = processor; final CommandLineOptionProcessor finalprocessor = processor;
/**
* Runs central repo default setup. Triggered here to track if this is
* first time setup in order to show CR notification dialog prior to any
* startup window.
*/
final boolean crFirstTimeSetup = CRDefaultSetupAction.getInstance().setupDefaultCentralRepository();
// When the --nogui flag is supplied invokeWhenUIReady happens a lot sooner // When the --nogui flag is supplied invokeWhenUIReady happens a lot sooner
// than it would when running wiht the gui. Makes sense. That means that // than it would when running wiht the gui. Makes sense. That means that
@ -120,13 +128,13 @@ public class Installer extends ModuleInstall {
} else { } else {
WindowManager.getDefault().invokeWhenUIReady(() -> { WindowManager.getDefault().invokeWhenUIReady(() -> {
if(WindowManager.getDefault().getMainWindow().isVisible() || finalprocessor == null || finalprocessor.getState() == CommandLineOptionProcessor.ProcessState.COMPLETED) { if(WindowManager.getDefault().getMainWindow().isVisible() || finalprocessor == null || finalprocessor.getState() == CommandLineOptionProcessor.ProcessState.COMPLETED) {
StartupWindowProvider.getInstance().open(); showStartupWindows(crFirstTimeSetup);
} else { } else {
finalprocessor.addPropertyChangeListener(new PropertyChangeListener(){ finalprocessor.addPropertyChangeListener(new PropertyChangeListener(){
@Override @Override
public void propertyChange(PropertyChangeEvent evt) { public void propertyChange(PropertyChangeEvent evt) {
if(evt.getPropertyName().equals(CommandLineOptionProcessor.PROCESSING_COMPLETED)) { if(evt.getPropertyName().equals(CommandLineOptionProcessor.PROCESSING_COMPLETED)) {
StartupWindowProvider.getInstance().open(); showStartupWindows(crFirstTimeSetup);
} }
} }
}); });
@ -135,6 +143,18 @@ public class Installer extends ModuleInstall {
} }
} }
/**
* Show startup window(s) in sequence.
* @param crFirstTimeSetup If true, attempts to show the central repo notification dialog
*/
private void showStartupWindows(boolean crFirstTimeSetup) {
if (crFirstTimeSetup && CentralRepositoryNotificationDialog.shouldDisplay()) {
CentralRepositoryNotificationDialog.display();
}
StartupWindowProvider.getInstance().open();
}
@Override @Override
public void uninstalled() { public void uninstalled() {
super.uninstalled(); super.uninstalled();

View File

@ -18,12 +18,13 @@
*/ */
package org.sleuthkit.autopsy.corecomponents; package org.sleuthkit.autopsy.corecomponents;
import java.awt.Desktop; import org.sleuthkit.autopsy.coreutils.Desktop;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.net.MalformedURLException; import java.net.MalformedURLException;
import java.net.URI; import java.nio.file.Paths;
import org.netbeans.core.actions.HTMLViewAction; import org.netbeans.core.actions.HTMLViewAction;
import org.openide.awt.ActionID; import org.openide.awt.ActionID;
import org.openide.awt.ActionReference; import org.openide.awt.ActionReference;
@ -33,6 +34,7 @@ import org.openide.awt.HtmlBrowser;
import org.openide.util.NbBundle; import org.openide.util.NbBundle;
import org.openide.util.NbBundle.Messages; import org.openide.util.NbBundle.Messages;
import java.util.logging.Level; import java.util.logging.Level;
import org.openide.modules.InstalledFileLocator;
import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.autopsy.coreutils.Logger;
/** /**
@ -52,6 +54,10 @@ import org.sleuthkit.autopsy.coreutils.Logger;
@Messages("CTL_OfflineHelpAction=Offline Autopsy Documentation") @Messages("CTL_OfflineHelpAction=Offline Autopsy Documentation")
public final class OfflineHelpAction implements ActionListener { public final class OfflineHelpAction implements ActionListener {
private static final String DOCS_FOLDER = "docs";
private static final String HELP_HTML_FILE = "index.html";
private static final String HELP_REL_PATH = Paths.get("..", DOCS_FOLDER, HELP_HTML_FILE).toString();
private static final Logger logger private static final Logger logger
= org.sleuthkit.autopsy.coreutils.Logger.getLogger(AboutWindowPanel.class.getName()); = org.sleuthkit.autopsy.coreutils.Logger.getLogger(AboutWindowPanel.class.getName());
@ -67,41 +73,42 @@ public final class OfflineHelpAction implements ActionListener {
* Tested and working: Chrome, Firefox, IE Not tested: Opera, Safari * Tested and working: Chrome, Firefox, IE Not tested: Opera, Safari
*/ */
private void viewOfflineHelp() { private void viewOfflineHelp() {
String fileForHelp = "";
String indexForHelp = "";
String currentDirectory = "";
URI uri = null;
try { File systemHelpFile = getOfflineHelpFile();
// Match the form: file:///C:/some/directory/AutopsyXYZ/docs/index.html if (systemHelpFile == null) {
fileForHelp = NbBundle.getMessage(OfflineHelpAction.class, "FILE_FOR_LOCAL_HELP"); logger.log(Level.SEVERE, "Unable to load Offline Documentation file at relative path: " + HELP_REL_PATH);
indexForHelp = NbBundle.getMessage(OfflineHelpAction.class, "INDEX_FOR_LOCAL_HELP"); return;
currentDirectory = System.getProperty("user.dir").replace("\\", "/").replace(" ", "%20"); //NON-NLS
uri = new URI(fileForHelp + currentDirectory + indexForHelp);
} catch (Exception ex) {
logger.log(Level.SEVERE, "Unable to load Offline Documentation: "
+ fileForHelp + currentDirectory + indexForHelp, ex); //NON-NLS
} }
if (uri != null) {
// Display URL in the System browser // Display URL in the System browser
if (Desktop.isDesktopSupported()) { if (Desktop.isDesktopSupported()) {
Desktop desktop = Desktop.getDesktop(); Desktop desktop = Desktop.getDesktop();
try { try {
desktop.browse(uri); desktop.open(systemHelpFile);
} catch (IOException ex) { return;
logger.log(Level.SEVERE, "Unable to launch the system browser: " } catch (IOException ex) {
+ fileForHelp + currentDirectory + indexForHelp, ex); //NON-NLS logger.log(Level.SEVERE, "Unable to launch the system browser: "
} + systemHelpFile, ex); //NON-NLS
} else {
org.openide.awt.StatusDisplayer.getDefault().setStatusText(
NbBundle.getMessage(HTMLViewAction.class, "CTL_OpeningBrowser")); //NON-NLS
try {
HtmlBrowser.URLDisplayer.getDefault().showURL(uri.toURL());
} catch (MalformedURLException ex) {
logger.log(Level.SEVERE, "Unable to launch the built-in browser: "
+ fileForHelp + currentDirectory + indexForHelp, ex); //NON-NLS
}
} }
} }
org.openide.awt.StatusDisplayer.getDefault().setStatusText(
NbBundle.getMessage(HTMLViewAction.class, "CTL_OpeningBrowser")); //NON-NLS
try {
HtmlBrowser.URLDisplayer.getDefault().showURL(systemHelpFile.toURI().toURL());
} catch (MalformedURLException ex) {
logger.log(Level.SEVERE, "Unable to launch the built-in browser: "
+ systemHelpFile, ex); //NON-NLS
}
}
private File getOfflineHelpFile() {
return InstalledFileLocator.getDefault().locate(
HELP_REL_PATH,
OfflineHelpAction.class.getPackage().getName(),
false);
} }
} }

View File

@ -20,7 +20,7 @@ package org.sleuthkit.autopsy.corecomponents;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import java.awt.Desktop; import org.sleuthkit.autopsy.coreutils.Desktop;
import java.io.IOException; import java.io.IOException;
import java.net.MalformedURLException; import java.net.MalformedURLException;
import java.net.URISyntaxException; import java.net.URISyntaxException;

View File

@ -22,12 +22,14 @@ import org.sleuthkit.datamodel.SleuthkitJNI;
import java.io.IOException; import java.io.IOException;
import java.nio.file.Path; import java.nio.file.Path;
import java.text.MessageFormat; import java.text.MessageFormat;
import java.util.logging.Level;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
/** /**
* Utility methods for working with data sources. * Utility methods for working with data sources.
*/ */
public class DataSourceUtils { public class DataSourceUtils {
private static final Logger logger = Logger.getLogger(DataSourceUtils.class.getName());
/** /**
* Calls TSK to determine whether a * Calls TSK to determine whether a
@ -44,24 +46,37 @@ public class DataSourceUtils {
return SleuthkitJNI.isImageSupported(dataSourcePath.toString()); return SleuthkitJNI.isImageSupported(dataSourcePath.toString());
} }
/**
* Calls TSK to determine whether a
* potential data source has a file system.
*
* @param dataSourcePath The path to the data source.
* @param password The password to decrypt the image.
*
* @return True or false.
*
* @throws IOException if an error occurs while trying to determine if the
* data source has a file system.
*/
public static boolean imageHasFileSystem(Path dataSourcePath, String password) throws IOException { public static boolean imageHasFileSystem(Path dataSourcePath, String password) throws IOException {
try { try {
// LOGGER.info("Testing if disk image {} can be opened", hostPath);
SleuthkitJNI.TestOpenImageResult openImageResult = SleuthkitJNI.testOpenImage(dataSourcePath.toString(), password); SleuthkitJNI.TestOpenImageResult openImageResult = SleuthkitJNI.testOpenImage(dataSourcePath.toString(), password);
if (!openImageResult.wasSuccessful()) { if (openImageResult.wasSuccessful()) {
return true;
} else {
String message = MessageFormat.format("An error occurred while opening {0}: {1}", String message = MessageFormat.format("An error occurred while opening {0}: {1}",
dataSourcePath.toString(), dataSourcePath.toString(),
openImageResult == null || StringUtils.isBlank(openImageResult.getMessage()) openImageResult == null || StringUtils.isBlank(openImageResult.getMessage())
? "<unknown>" ? "<unknown>"
: openImageResult.getMessage()); : openImageResult.getMessage());
logger.log(Level.INFO, message);
return false; return false;
} }
} catch (Throwable ex) { } catch (Throwable ex) {
String message = "An error occurred while opening " + dataSourcePath.toString(); String message = "An error occurred while opening " + dataSourcePath.toString();
logger.log(Level.WARNING, message);
return false; return false;
} }
return SleuthkitJNI.isImageSupported(dataSourcePath.toString());
} }
} }

View File

@ -0,0 +1,146 @@
/*
* Autopsy Forensic Browser
*
* Copyright 2023 Basis Technology Corp.
* Contact: carrier <at> sleuthkit <dot> 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.coreutils;
import java.io.File;
import java.io.IOException;
import java.net.URI;
import java.util.concurrent.TimeUnit;
import java.util.logging.Level;
import org.apache.commons.lang3.SystemUtils;
/**
* Wrapper for java.awt.Desktop to handle some situations that java.awt.Desktop
* doesn't.
*/
public class Desktop {
private static final Logger LOGGER = Logger.getLogger(Desktop.class.getName());
private static final long XDG_TIMEOUT_SECS = 30;
private static Boolean xdgSupported = null;
private static boolean isXdgSupported() {
if (xdgSupported == null) {
xdgSupported = false;
if (SystemUtils.IS_OS_LINUX) {
try {
xdgSupported = Runtime.getRuntime().exec(new String[]{"which", "xdg-open"}).getInputStream().read() != -1;
} catch (IOException ex) {
LOGGER.log(Level.WARNING, "There was an error running 'which xdg-open' ", ex);
}
}
}
return xdgSupported;
}
/**
* @return True if this class's external calls can be used on this operating
* system.
*/
public static boolean isDesktopSupported() {
return java.awt.Desktop.isDesktopSupported() || isXdgSupported();
}
private static Desktop instance = null;
/**
* @return A singleton instance of this class.
*/
public static Desktop getDesktop() {
if (instance == null) {
instance = new Desktop(java.awt.Desktop.getDesktop());
}
return instance;
}
private final java.awt.Desktop awtDesktop;
/**
* Private constructor for this wrapper.
*
* @param awtDesktop The delegate java.awt.Desktop.
*/
private Desktop(java.awt.Desktop awtDesktop) {
this.awtDesktop = awtDesktop;
}
/**
* Opens a given path using `xdg-open` on linux.
*
* @param path The path.
* @throws IOException
*/
private void xdgOpen(String path) throws IOException {
Process process = Runtime.getRuntime().exec(new String[]{"xdg-open", path});
try {
process.waitFor(XDG_TIMEOUT_SECS, TimeUnit.SECONDS);
} catch (InterruptedException ex) {
throw new IOException("xdg-open timed out", ex);
}
int exitCode = process.exitValue();
if (exitCode != 0) {
throw new IOException("Received non-zero exit code from xdg-open: " + exitCode);
}
}
/**
* Triggers the OS to navigate to the given uri.
*
* @param uri The uri.
* @throws IOException
*/
public void browse(URI uri) throws IOException {
if (!awtDesktop.isSupported(java.awt.Desktop.Action.BROWSE) && isXdgSupported()) {
xdgOpen(uri.toString());
} else {
awtDesktop.browse(uri);
}
}
/**
* Triggers the OS to open the given file.
*
* @param file The file.
* @throws IOException
*/
public void open(File file) throws IOException {
if (!awtDesktop.isSupported(java.awt.Desktop.Action.OPEN) && isXdgSupported()) {
xdgOpen(file.getAbsolutePath());
} else {
awtDesktop.open(file);
}
}
/**
* Triggers the OS to edit the given file.
*
* @param file The file.
* @throws IOException
*/
public void edit(File file) throws IOException {
if (!awtDesktop.isSupported(java.awt.Desktop.Action.EDIT) && isXdgSupported()) {
xdgOpen(file.getAbsolutePath());
} else {
awtDesktop.edit(file);
}
}
}

View File

@ -73,14 +73,7 @@ public class XMLUtil {
} }
private static SchemaFactory getSchemaFactory(String schemaLanguage) { private static SchemaFactory getSchemaFactory(String schemaLanguage) {
// See JIRA-6958 for details about class loading and jaxb. return SchemaFactory.newInstance(schemaLanguage);
ClassLoader original = Thread.currentThread().getContextClassLoader();
try {
Thread.currentThread().setContextClassLoader(XMLUtil.class.getClassLoader());
return SchemaFactory.newInstance(schemaLanguage);
} finally {
Thread.currentThread().setContextClassLoader(original);
}
} }
private static TransformerFactory getTransformerFactory() { private static TransformerFactory getTransformerFactory() {

View File

@ -30,13 +30,20 @@ public class AutoIngestDataSource {
private final String deviceId; private final String deviceId;
private final Path path; private final Path path;
private final String password;
private DataSourceProcessorResult resultCode; private DataSourceProcessorResult resultCode;
private List<String> errorMessages; private List<String> errorMessages;
private List<Content> content; private List<Content> content;
public AutoIngestDataSource(String deviceId, Path path) {
public AutoIngestDataSource(String deviceId, Path path, String password) {
this.deviceId = deviceId; this.deviceId = deviceId;
this.path = path; this.path = path;
this.password = password;
}
public AutoIngestDataSource(String deviceId, Path path) {
this(deviceId, path, null);
} }
public String getDeviceId() { public String getDeviceId() {
@ -47,6 +54,13 @@ public class AutoIngestDataSource {
return this.path; return this.path;
} }
/**
* @return The password to decrypt the data source.
*/
public String getPassword() {
return password;
}
public synchronized void setDataSourceProcessorOutput(DataSourceProcessorResult result, List<String> errorMessages, List<Content> content) { public synchronized void setDataSourceProcessorOutput(DataSourceProcessorResult result, List<String> errorMessages, List<Content> content) {
this.resultCode = result; this.resultCode = result;
this.errorMessages = new ArrayList<>(errorMessages); this.errorMessages = new ArrayList<>(errorMessages);

View File

@ -50,6 +50,25 @@ public interface AutoIngestDataSourceProcessor extends DataSourceProcessor {
*/ */
int canProcess(Path dataSourcePath) throws AutoIngestDataSourceProcessorException; int canProcess(Path dataSourcePath) throws AutoIngestDataSourceProcessorException;
/**
* Indicates whether the DataSourceProcessor is capable of processing the
* data source. Returns a confidence value. Method can throw an exception
* for a system level problem. The exception should not be thrown for an issue
* related to bad input data.
*
* @param dataSourcePath Path to the data source.
* @param password The password to decrypt the data source.
* @return Confidence value. Values between 0 and 100 are recommended. Zero
* or less means the data source is not supported by the
* DataSourceProcessor. Value of 100 indicates high certainty in
* being able to process the data source.
* @throws org.sleuthkit.autopsy.datasourceprocessors.AutoIngestDataSourceProcessor.AutoIngestDataSourceProcessorException
*/
default int canProcess(Path dataSourcePath, String password) throws AutoIngestDataSourceProcessorException {
return canProcess(dataSourcePath);
}
/** /**
* Adds a data source to the case database using a background task in a * Adds a data source to the case database using a background task in a
* separate thread by calling DataSourceProcessor.run() method. Returns as * separate thread by calling DataSourceProcessor.run() method. Returns as
@ -91,6 +110,30 @@ public interface AutoIngestDataSourceProcessor extends DataSourceProcessor {
process(deviceId, dataSourcePath, progressMonitor, callBack); process(deviceId, dataSourcePath, progressMonitor, callBack);
} }
/**
* Adds a data source to the case database using a background task in a
* separate thread by calling DataSourceProcessor.run() method. Returns as
* soon as the background task is started. The background task uses a
* callback object to signal task completion and return results. Method can
* throw an exception for a system level problem. The exception should not
* be thrown for an issue related to bad input data.
*
* @param deviceId An ASCII-printable identifier for the device
* associated with the data source that is intended
* to be unique across multiple cases (e.g., a UUID).
* @param dataSourcePath Path to the data source.
* @param password The password to decrypt the datasource.
* @param host Host for this data source.
* @param progressMonitor Progress monitor that will be used by the
* background task to report progress.
* @param callBack Callback that will be used by the background task
* to return results.
*/
default void process(String deviceId, Path dataSourcePath, String password, Host host, DataSourceProcessorProgressMonitor progressMonitor, DataSourceProcessorCallback callBack) {
process(deviceId, dataSourcePath, progressMonitor, callBack);
}
/** /**
* Adds a data source to the case database using a background task in a * Adds a data source to the case database using a background task in a
* separate thread by calling DataSourceProcessor.run() method. Returns as * separate thread by calling DataSourceProcessor.run() method. Returns as
@ -140,6 +183,33 @@ public interface AutoIngestDataSourceProcessor extends DataSourceProcessor {
return processWithIngestStream(deviceId, dataSourcePath, settings, progressMonitor, callBack); return processWithIngestStream(deviceId, dataSourcePath, settings, progressMonitor, callBack);
} }
/**
* Adds a data source to the case database using a background task in a
* separate thread by calling DataSourceProcessor.run() method. Returns as
* soon as the background task is started. The background task uses a
* callback object to signal task completion and return results. Method can
* throw an exception for a system level problem. The exception should not
* be thrown for an issue related to bad input data.
*
* @param deviceId An ASCII-printable identifier for the device
* associated with the data source that is intended
* to be unique across multiple cases (e.g., a UUID).
* @param dataSourcePath Path to the data source.
* @param password The password to decrypt the datasource.
* @param host The host for this data source.
* @param settings The ingest job settings.
* @param progressMonitor Progress monitor that will be used by the
* background task to report progress.
* @param callBack Callback that will be used by the background task
* to return results.
*
* @return The new ingest stream or null if an error occurred. Errors will be handled by the callback.
*/
default IngestStream processWithIngestStream(String deviceId, Path dataSourcePath, String password, Host host, IngestJobSettings settings, DataSourceProcessorProgressMonitor progressMonitor, DataSourceProcessorCallback callBack) {
return processWithIngestStream(deviceId, dataSourcePath, settings, progressMonitor, callBack);
}
/** /**
* A custom exception for the use of AutomatedIngestDataSourceProcessor. * A custom exception for the use of AutomatedIngestDataSourceProcessor.
*/ */

View File

@ -49,9 +49,27 @@ public class DataSourceProcessorUtility {
* org.sleuthkit.autopsy.datasourceprocessors.AutoIngestDataSourceProcessor.AutoIngestDataSourceProcessorException * org.sleuthkit.autopsy.datasourceprocessors.AutoIngestDataSourceProcessor.AutoIngestDataSourceProcessorException
*/ */
public static Map<AutoIngestDataSourceProcessor, Integer> getDataSourceProcessorForFile(Path dataSourcePath, Collection<? extends AutoIngestDataSourceProcessor> processorCandidates) throws AutoIngestDataSourceProcessorException { public static Map<AutoIngestDataSourceProcessor, Integer> getDataSourceProcessorForFile(Path dataSourcePath, Collection<? extends AutoIngestDataSourceProcessor> processorCandidates) throws AutoIngestDataSourceProcessorException {
return getDataSourceProcessorForFile(dataSourcePath, null, processorCandidates);
}
/**
* A utility method to find all Data Source Processors (DSP) that are able
* to process the input data source. Only the DSPs that implement
* AutoIngestDataSourceProcessor interface are used.
*
* @param dataSourcePath Full path to the data source
* @param password The password to decrypt the data source.
* @param processorCandidates Possible DSPs that can handle the data source
*
* @return Hash map of all DSPs that can process the data source along with
* their confidence score
* @throws
* org.sleuthkit.autopsy.datasourceprocessors.AutoIngestDataSourceProcessor.AutoIngestDataSourceProcessorException
*/
public static Map<AutoIngestDataSourceProcessor, Integer> getDataSourceProcessorForFile(Path dataSourcePath, String password, Collection<? extends AutoIngestDataSourceProcessor> processorCandidates) throws AutoIngestDataSourceProcessorException {
Map<AutoIngestDataSourceProcessor, Integer> validDataSourceProcessorsMap = new HashMap<>(); Map<AutoIngestDataSourceProcessor, Integer> validDataSourceProcessorsMap = new HashMap<>();
for (AutoIngestDataSourceProcessor processor : processorCandidates) { for (AutoIngestDataSourceProcessor processor : processorCandidates) {
int confidence = processor.canProcess(dataSourcePath); int confidence = processor.canProcess(dataSourcePath, password);
if (confidence > 0) { if (confidence > 0) {
validDataSourceProcessorsMap.put(processor, confidence); validDataSourceProcessorsMap.put(processor, confidence);
} }
@ -76,9 +94,29 @@ public class DataSourceProcessorUtility {
* org.sleuthkit.autopsy.datasourceprocessors.AutoIngestDataSourceProcessor.AutoIngestDataSourceProcessorException * org.sleuthkit.autopsy.datasourceprocessors.AutoIngestDataSourceProcessor.AutoIngestDataSourceProcessorException
*/ */
public static List<AutoIngestDataSourceProcessor> getOrderedListOfDataSourceProcessors(Path dataSourcePath) throws AutoIngestDataSourceProcessorException { public static List<AutoIngestDataSourceProcessor> getOrderedListOfDataSourceProcessors(Path dataSourcePath) throws AutoIngestDataSourceProcessorException {
return getOrderedListOfDataSourceProcessors(dataSourcePath, (String) null);
}
/**
* A utility method to find all Data Source Processors (DSP) that are able
* to process the input data source. Only the DSPs that implement
* AutoIngestDataSourceProcessor interface are used. Returns ordered list of
* data source processors. DSPs are ordered in descending order from highest
* confidence to lowest.
*
* @param dataSourcePath Full path to the data source
* @param password The password to decrypt the data source.
*
* @return Ordered list of data source processors. DSPs are ordered in
* descending order from highest confidence to lowest.
*
* @throws
* org.sleuthkit.autopsy.datasourceprocessors.AutoIngestDataSourceProcessor.AutoIngestDataSourceProcessorException
*/
public static List<AutoIngestDataSourceProcessor> getOrderedListOfDataSourceProcessors(Path dataSourcePath, String password) throws AutoIngestDataSourceProcessorException {
// lookup all AutomatedIngestDataSourceProcessors // lookup all AutomatedIngestDataSourceProcessors
Collection<? extends AutoIngestDataSourceProcessor> processorCandidates = Lookup.getDefault().lookupAll(AutoIngestDataSourceProcessor.class); Collection<? extends AutoIngestDataSourceProcessor> processorCandidates = Lookup.getDefault().lookupAll(AutoIngestDataSourceProcessor.class);
return getOrderedListOfDataSourceProcessors(dataSourcePath, processorCandidates); return getOrderedListOfDataSourceProcessors(dataSourcePath, password, processorCandidates);
} }
/** /**
@ -98,7 +136,28 @@ public class DataSourceProcessorUtility {
* org.sleuthkit.autopsy.datasourceprocessors.AutoIngestDataSourceProcessor.AutoIngestDataSourceProcessorException * org.sleuthkit.autopsy.datasourceprocessors.AutoIngestDataSourceProcessor.AutoIngestDataSourceProcessorException
*/ */
public static List<AutoIngestDataSourceProcessor> getOrderedListOfDataSourceProcessors(Path dataSourcePath, Collection<? extends AutoIngestDataSourceProcessor> processorCandidates) throws AutoIngestDataSourceProcessorException { public static List<AutoIngestDataSourceProcessor> getOrderedListOfDataSourceProcessors(Path dataSourcePath, Collection<? extends AutoIngestDataSourceProcessor> processorCandidates) throws AutoIngestDataSourceProcessorException {
Map<AutoIngestDataSourceProcessor, Integer> validDataSourceProcessorsMap = getDataSourceProcessorForFile(dataSourcePath, processorCandidates); return getOrderedListOfDataSourceProcessors(dataSourcePath, null, processorCandidates);
}
/**
* A utility method to find all Data Source Processors (DSP) that are able
* to process the input data source. Only the DSPs that implement
* AutoIngestDataSourceProcessor interface are used. Returns ordered list of
* data source processors. DSPs are ordered in descending order from highest
* confidence to lowest.
*
* @param dataSourcePath Full path to the data source
* @param password The password to decrypt the data source.
* @param processorCandidates Collection of AutoIngestDataSourceProcessor objects to use
*
* @return Ordered list of data source processors. DSPs are ordered in
* descending order from highest confidence to lowest.
*
* @throws
* org.sleuthkit.autopsy.datasourceprocessors.AutoIngestDataSourceProcessor.AutoIngestDataSourceProcessorException
*/
public static List<AutoIngestDataSourceProcessor> getOrderedListOfDataSourceProcessors(Path dataSourcePath, String password, Collection<? extends AutoIngestDataSourceProcessor> processorCandidates) throws AutoIngestDataSourceProcessorException {
Map<AutoIngestDataSourceProcessor, Integer> validDataSourceProcessorsMap = getDataSourceProcessorForFile(dataSourcePath, password, processorCandidates);
return orderDataSourceProcessorsByConfidence(validDataSourceProcessorsMap); return orderDataSourceProcessorsByConfidence(validDataSourceProcessorsMap);
} }

View File

@ -18,7 +18,7 @@
*/ */
package org.sleuthkit.autopsy.directorytree; package org.sleuthkit.autopsy.directorytree;
import java.awt.Desktop; import org.sleuthkit.autopsy.coreutils.Desktop;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;

View File

@ -24,7 +24,7 @@ import java.util.Set;
import java.util.logging.Level; import java.util.logging.Level;
import javax.annotation.concurrent.GuardedBy; import javax.annotation.concurrent.GuardedBy;
import javax.annotation.concurrent.ThreadSafe; import javax.annotation.concurrent.ThreadSafe;
import javax.jms.JMSException; import jakarta.jms.JMSException;
import org.sleuthkit.autopsy.core.UserPreferencesException; import org.sleuthkit.autopsy.core.UserPreferencesException;
import org.sleuthkit.autopsy.core.UserPreferences; import org.sleuthkit.autopsy.core.UserPreferences;
import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.autopsy.coreutils.Logger;

View File

@ -21,8 +21,8 @@ package org.sleuthkit.autopsy.events;
import java.net.URI; import java.net.URI;
import java.net.URISyntaxException; import java.net.URISyntaxException;
import javax.annotation.concurrent.Immutable; import javax.annotation.concurrent.Immutable;
import javax.jms.Connection; import jakarta.jms.Connection;
import javax.jms.JMSException; import jakarta.jms.JMSException;
import org.apache.activemq.ActiveMQConnectionFactory; import org.apache.activemq.ActiveMQConnectionFactory;
import java.io.IOException; import java.io.IOException;
import java.net.InetAddress; import java.net.InetAddress;

View File

@ -22,16 +22,16 @@ import java.net.URISyntaxException;
import java.util.logging.Level; import java.util.logging.Level;
import javax.annotation.concurrent.GuardedBy; import javax.annotation.concurrent.GuardedBy;
import javax.annotation.concurrent.ThreadSafe; import javax.annotation.concurrent.ThreadSafe;
import javax.jms.Connection; import jakarta.jms.Connection;
import javax.jms.DeliveryMode; import jakarta.jms.DeliveryMode;
import javax.jms.JMSException; import jakarta.jms.JMSException;
import javax.jms.Message; import jakarta.jms.Message;
import javax.jms.MessageConsumer; import jakarta.jms.MessageConsumer;
import javax.jms.MessageListener; import jakarta.jms.MessageListener;
import javax.jms.MessageProducer; import jakarta.jms.MessageProducer;
import javax.jms.ObjectMessage; import jakarta.jms.ObjectMessage;
import javax.jms.Session; import jakarta.jms.Session;
import javax.jms.Topic; import jakarta.jms.Topic;
import org.apache.activemq.ActiveMQConnectionFactory; import org.apache.activemq.ActiveMQConnectionFactory;
import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.autopsy.coreutils.Logger;

View File

@ -50,6 +50,7 @@ import org.apache.tika.exception.TikaException;
import org.apache.tika.extractor.EmbeddedDocumentExtractor; import org.apache.tika.extractor.EmbeddedDocumentExtractor;
import org.apache.tika.extractor.ParsingEmbeddedDocumentExtractor; import org.apache.tika.extractor.ParsingEmbeddedDocumentExtractor;
import org.apache.tika.metadata.Metadata; import org.apache.tika.metadata.Metadata;
import org.apache.tika.metadata.TikaCoreProperties;
import org.apache.tika.mime.MediaType; import org.apache.tika.mime.MediaType;
import org.apache.tika.mime.MimeTypeException; import org.apache.tika.mime.MimeTypeException;
import org.apache.tika.parser.AutoDetectParser; import org.apache.tika.parser.AutoDetectParser;
@ -728,7 +729,7 @@ class DocumentEmbeddedContentExtractor {
} }
// try to get the name of the embedded file from the metadata // try to get the name of the embedded file from the metadata
String name = metadata.get(Metadata.RESOURCE_NAME_KEY); String name = metadata.get(TikaCoreProperties.RESOURCE_NAME_KEY);
// TODO: This can be removed after we upgrade to Tika 1.16 or // TODO: This can be removed after we upgrade to Tika 1.16 or
// above. The 1.16 version of Tika keeps track of files that // above. The 1.16 version of Tika keeps track of files that

View File

@ -30,6 +30,7 @@ import org.apache.commons.io.FilenameUtils;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
import org.apache.tika.exception.TikaException; import org.apache.tika.exception.TikaException;
import org.apache.tika.extractor.EmbeddedDocumentExtractor; import org.apache.tika.extractor.EmbeddedDocumentExtractor;
import org.apache.tika.metadata.TikaCoreProperties;
import org.apache.tika.metadata.Metadata; import org.apache.tika.metadata.Metadata;
import org.apache.tika.parser.AutoDetectParser; import org.apache.tika.parser.AutoDetectParser;
import org.apache.tika.parser.ParseContext; import org.apache.tika.parser.ParseContext;
@ -125,7 +126,7 @@ final class PDFAttachmentExtractor {
//Resource naming scheme is used internally in autopsy, therefore we can guarentee uniqueness. //Resource naming scheme is used internally in autopsy, therefore we can guarentee uniqueness.
String uniqueExtractedName = "extract_" + attachmentCount++; //NON-NLS String uniqueExtractedName = "extract_" + attachmentCount++; //NON-NLS
String name = mtdt.get(Metadata.RESOURCE_NAME_KEY); String name = mtdt.get(TikaCoreProperties.RESOURCE_NAME_KEY);
String ext = FilenameUtils.getExtension(name); String ext = FilenameUtils.getExtension(name);
//Append the extension if we can. //Append the extension if we can.

View File

@ -32,6 +32,7 @@ import java.util.Arrays;
import java.util.logging.Level; import java.util.logging.Level;
import org.apache.tika.exception.EncryptedDocumentException; import org.apache.tika.exception.EncryptedDocumentException;
import org.apache.tika.exception.TikaException; import org.apache.tika.exception.TikaException;
import org.apache.tika.metadata.TikaCoreProperties;
import org.apache.tika.metadata.Metadata; import org.apache.tika.metadata.Metadata;
import org.apache.tika.parser.AutoDetectParser; import org.apache.tika.parser.AutoDetectParser;
import org.apache.tika.parser.ParseContext; import org.apache.tika.parser.ParseContext;
@ -287,7 +288,7 @@ final class EncryptionDetectionFileIngestModule extends FileIngestModuleAdapter
bin = new BufferedInputStream(in); bin = new BufferedInputStream(in);
ContentHandler handler = new BodyContentHandler(-1); ContentHandler handler = new BodyContentHandler(-1);
Metadata metadata = new Metadata(); Metadata metadata = new Metadata();
metadata.add(Metadata.RESOURCE_NAME_KEY, file.getName()); metadata.add(TikaCoreProperties.RESOURCE_NAME_KEY, file.getName());
AutoDetectParser parser = new AutoDetectParser(); AutoDetectParser parser = new AutoDetectParser();
parser.parse(bin, handler, metadata, new ParseContext()); parser.parse(bin, handler, metadata, new ParseContext());
} catch (EncryptedDocumentException ex) { } catch (EncryptedDocumentException ex) {

View File

@ -18,6 +18,7 @@
*/ */
package org.sleuthkit.autopsy.modules.filetypeid; package org.sleuthkit.autopsy.modules.filetypeid;
import jakarta.xml.bind.DatatypeConverter;
import java.io.File; import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.FileOutputStream; import java.io.FileOutputStream;
@ -26,7 +27,6 @@ import java.nio.file.Path;
import java.nio.file.Paths; import java.nio.file.Paths;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import javax.xml.bind.DatatypeConverter;
import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.ParserConfigurationException;
import org.apache.commons.codec.DecoderException; import org.apache.commons.codec.DecoderException;
import org.apache.commons.codec.binary.Hex; import org.apache.commons.codec.binary.Hex;

View File

@ -20,7 +20,7 @@ package org.sleuthkit.autopsy.modules.photoreccarver;
import java.awt.Color; import java.awt.Color;
import java.awt.Cursor; import java.awt.Cursor;
import java.awt.Desktop; import org.sleuthkit.autopsy.coreutils.Desktop;
import java.awt.event.MouseAdapter; import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent; import java.awt.event.MouseEvent;
import java.io.IOException; import java.io.IOException;

View File

@ -19,7 +19,7 @@
package org.sleuthkit.autopsy.modules.yara.ui; package org.sleuthkit.autopsy.modules.yara.ui;
import java.awt.Component; import java.awt.Component;
import java.awt.Desktop; import org.sleuthkit.autopsy.coreutils.Desktop;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.util.List; import java.util.List;

View File

@ -21,7 +21,7 @@ package org.sleuthkit.autopsy.report;
import org.openide.util.NbBundle; import org.openide.util.NbBundle;
import java.awt.Color; import java.awt.Color;
import java.awt.Cursor; import java.awt.Cursor;
import java.awt.Desktop; import org.sleuthkit.autopsy.coreutils.Desktop;
import java.awt.EventQueue; import java.awt.EventQueue;
import java.awt.event.MouseEvent; import java.awt.event.MouseEvent;
import java.awt.event.MouseListener; import java.awt.event.MouseListener;

View File

@ -49,7 +49,6 @@ import org.apache.tika.parser.ParseContext;
import org.apache.tika.parser.Parser; import org.apache.tika.parser.Parser;
import org.apache.tika.parser.ParsingReader; import org.apache.tika.parser.ParsingReader;
import org.apache.tika.parser.microsoft.OfficeParserConfig; import org.apache.tika.parser.microsoft.OfficeParserConfig;
import org.apache.tika.parser.ocr.TesseractOCRConfig;
import org.apache.tika.parser.pdf.PDFParserConfig; import org.apache.tika.parser.pdf.PDFParserConfig;
import org.openide.util.NbBundle; import org.openide.util.NbBundle;
import org.openide.modules.InstalledFileLocator; import org.openide.modules.InstalledFileLocator;
@ -75,7 +74,9 @@ import java.io.InputStreamReader;
import java.nio.charset.Charset; import java.nio.charset.Charset;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Set; import java.util.Set;
import org.apache.tika.config.TikaConfig;
import org.apache.tika.mime.MimeTypes; import org.apache.tika.mime.MimeTypes;
import org.apache.tika.parser.ocr.TesseractOCRConfig;
import org.apache.tika.parser.pdf.PDFParserConfig.OCR_STRATEGY; import org.apache.tika.parser.pdf.PDFParserConfig.OCR_STRATEGY;
import org.sleuthkit.autopsy.coreutils.ExecUtil.HybridTerminator; import org.sleuthkit.autopsy.coreutils.ExecUtil.HybridTerminator;
import org.sleuthkit.autopsy.modules.filetypeid.FileTypeDetector; import org.sleuthkit.autopsy.modules.filetypeid.FileTypeDetector;
@ -284,9 +285,10 @@ final class TikaTextExtractor implements TextExtractor {
// during extraction // during extraction
TesseractOCRConfig ocrConfig = new TesseractOCRConfig(); TesseractOCRConfig ocrConfig = new TesseractOCRConfig();
String tesseractFolder = TESSERACT_PATH.getParent(); String tesseractFolder = TESSERACT_PATH.getParent();
ocrConfig.setTesseractPath(tesseractFolder); // coming from https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=109454096#TikaOCR-OverridingDefaultConfiguration
ocrConfig.getOtherTesseractConfig().put("tessdataPath", PlatformUtil.getOcrLanguagePacksPath());
ocrConfig.getOtherTesseractConfig().put("tesseractPath", tesseractFolder);
ocrConfig.setLanguage(languagePacks); ocrConfig.setLanguage(languagePacks);
ocrConfig.setTessdataPath(PlatformUtil.getOcrLanguagePacksPath());
parseContext.set(TesseractOCRConfig.class, ocrConfig); parseContext.set(TesseractOCRConfig.class, ocrConfig);
// Configure how Tika handles OCRing PDFs // Configure how Tika handles OCRing PDFs

View File

@ -21,13 +21,14 @@ package org.sleuthkit.autopsy.texttranslation.translators;
import com.google.gson.JsonArray; import com.google.gson.JsonArray;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import com.google.gson.JsonParser; import com.google.gson.JsonParser;
import com.squareup.okhttp.MediaType;
import com.squareup.okhttp.OkHttpClient;
import com.squareup.okhttp.Request;
import com.squareup.okhttp.RequestBody;
import com.squareup.okhttp.Response;
import java.io.IOException; import java.io.IOException;
import javax.swing.JPanel; import javax.swing.JPanel;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
import org.openide.util.NbBundle.Messages; import org.openide.util.NbBundle.Messages;
import org.openide.util.lookup.ServiceProvider; import org.openide.util.lookup.ServiceProvider;
import org.sleuthkit.autopsy.coreutils.ThreadConfined; import org.sleuthkit.autopsy.coreutils.ThreadConfined;

View File

@ -22,11 +22,6 @@ import com.google.gson.JsonArray;
import com.google.gson.JsonElement; import com.google.gson.JsonElement;
import com.google.gson.JsonParser; import com.google.gson.JsonParser;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import com.squareup.okhttp.MediaType;
import com.squareup.okhttp.OkHttpClient;
import com.squareup.okhttp.Request;
import com.squareup.okhttp.RequestBody;
import com.squareup.okhttp.Response;
import java.io.IOException; import java.io.IOException;
import java.util.logging.Level; import java.util.logging.Level;
import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.autopsy.coreutils.Logger;
@ -34,8 +29,13 @@ import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener; import javax.swing.event.DocumentListener;
import javax.swing.event.HyperlinkEvent; import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener; import javax.swing.event.HyperlinkListener;
import java.awt.Desktop; import org.sleuthkit.autopsy.coreutils.Desktop;
import java.net.URISyntaxException; import java.net.URISyntaxException;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.openide.util.NbBundle.Messages; import org.openide.util.NbBundle.Messages;

View File

@ -24,7 +24,7 @@ import com.google.cloud.translate.Language;
import com.google.cloud.translate.Translate; import com.google.cloud.translate.Translate;
import com.google.cloud.translate.TranslateOptions; import com.google.cloud.translate.TranslateOptions;
import com.google.cloud.translate.Translation; import com.google.cloud.translate.Translation;
import java.awt.Desktop; import org.sleuthkit.autopsy.coreutils.Desktop;
import java.awt.event.ItemListener; import java.awt.event.ItemListener;
import java.io.File; import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;

View File

@ -18,7 +18,7 @@
*/ */
package org.sleuthkit.autopsy.timeline.actions; package org.sleuthkit.autopsy.timeline.actions;
import java.awt.Desktop; import org.sleuthkit.autopsy.coreutils.Desktop;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
import java.io.IOException; import java.io.IOException;
import java.nio.file.InvalidPathException; import java.nio.file.InvalidPathException;

View File

@ -40,7 +40,13 @@
<!-- Make a report that lists out the dependencies that our JARs have --> <!-- Make a report that lists out the dependencies that our JARs have -->
<ivy:report todir='${basedir}/build/ivy-reports' graph='true' xml='false'/> <ivy:report todir='${basedir}/build/ivy-reports' graph='true' xml='false'/>
<ivy:retrieve pattern="${basedir}/release/modules/ext/[artifact]-[revision](-[classifier]).[ext]" /> <ivy:retrieve pattern="${basedir}/release/modules/ext/[artifact]-[revision](-[classifier]).[ext]">
<!-- this is to prevent an issue with '+' in the version identifier which messes with the properties file -->
<firstmatchmapper>
<regexpmapper from="^(.*)\+(.*)$" to="\1\2"/>
<identitymapper/>
</firstmatchmapper>
</ivy:retrieve>
</target> </target>
<target name="init" depends="get-deps,harness.init"/> <target name="init" depends="get-deps,harness.init"/>

View File

@ -1,7 +1,3 @@
<!DOCTYPE ivy-module [
<!ENTITY javafx.version "17.0.7">
<!ENTITY jackson.version "2.15.2">
]>
<ivy-module version="2.0" xmlns:e="http://ant.apache.org/ivy/extra"> <ivy-module version="2.0" xmlns:e="http://ant.apache.org/ivy/extra">
<info organisation="org.sleuthkit.autopsy" module="corelibs"/> <info organisation="org.sleuthkit.autopsy" module="corelibs"/>
<configurations > <configurations >
@ -10,43 +6,43 @@
</configurations> </configurations>
<dependencies> <dependencies>
<dependency conf="autopsy_core->default" org="org.openjfx" name="javafx-fxml" rev="&javafx.version;"> <dependency conf="autopsy_core->default" org="org.openjfx" name="javafx-fxml" rev="${javafx.version}">
<artifact name="javafx-fxml" type="jar" /> <artifact name="javafx-fxml" type="jar" />
<artifact name="javafx-fxml" type="jar" e:classifier="win"/> <artifact name="javafx-fxml" type="jar" e:classifier="win"/>
<artifact name="javafx-fxml" type="jar" e:classifier="mac"/> <artifact name="javafx-fxml" type="jar" e:classifier="mac"/>
<artifact name="javafx-fxml" type="jar" e:classifier="linux"/> <artifact name="javafx-fxml" type="jar" e:classifier="linux"/>
</dependency> </dependency>
<dependency conf="autopsy_core->default" org="org.openjfx" name="javafx-graphics" rev="&javafx.version;"> <dependency conf="autopsy_core->default" org="org.openjfx" name="javafx-graphics" rev="${javafx.version}">
<artifact name="javafx-graphics" type="jar" /> <artifact name="javafx-graphics" type="jar" />
<artifact name="javafx-graphics" type="jar" e:classifier="win"/> <artifact name="javafx-graphics" type="jar" e:classifier="win"/>
<artifact name="javafx-graphics" type="jar" e:classifier="mac"/> <artifact name="javafx-graphics" type="jar" e:classifier="mac"/>
<artifact name="javafx-graphics" type="jar" e:classifier="linux"/> <artifact name="javafx-graphics" type="jar" e:classifier="linux"/>
</dependency> </dependency>
<dependency conf="autopsy_core->default" org="org.openjfx" name="javafx-controls" rev="&javafx.version;"> <dependency conf="autopsy_core->default" org="org.openjfx" name="javafx-controls" rev="${javafx.version}">
<artifact name="javafx-controls" type="jar" /> <artifact name="javafx-controls" type="jar" />
<artifact name="javafx-controls" type="jar" e:classifier="win"/> <artifact name="javafx-controls" type="jar" e:classifier="win"/>
<artifact name="javafx-controls" type="jar" e:classifier="mac"/> <artifact name="javafx-controls" type="jar" e:classifier="mac"/>
<artifact name="javafx-controls" type="jar" e:classifier="linux"/> <artifact name="javafx-controls" type="jar" e:classifier="linux"/>
</dependency> </dependency>
<dependency conf="autopsy_core->default" org="org.openjfx" name="javafx-base" rev="&javafx.version;"> <dependency conf="autopsy_core->default" org="org.openjfx" name="javafx-base" rev="${javafx.version}">
<artifact name="javafx-base" type="jar" /> <artifact name="javafx-base" type="jar" />
<artifact name="javafx-base" type="jar" e:classifier="win"/> <artifact name="javafx-base" type="jar" e:classifier="win"/>
<artifact name="javafx-base" type="jar" e:classifier="mac"/> <artifact name="javafx-base" type="jar" e:classifier="mac"/>
<artifact name="javafx-base" type="jar" e:classifier="linux"/> <artifact name="javafx-base" type="jar" e:classifier="linux"/>
</dependency> </dependency>
<dependency conf="autopsy_core->default" org="org.openjfx" name="javafx-swing" rev="&javafx.version;" > <dependency conf="autopsy_core->default" org="org.openjfx" name="javafx-swing" rev="${javafx.version}" >
<artifact name="javafx-swing" type="jar" /> <artifact name="javafx-swing" type="jar" />
<artifact name="javafx-swing" type="jar" e:classifier="win"/> <artifact name="javafx-swing" type="jar" e:classifier="win"/>
<artifact name="javafx-swing" type="jar" e:classifier="mac"/> <artifact name="javafx-swing" type="jar" e:classifier="mac"/>
<artifact name="javafx-swing" type="jar" e:classifier="linux"/> <artifact name="javafx-swing" type="jar" e:classifier="linux"/>
</dependency> </dependency>
<dependency conf="autopsy_core->default" org="org.openjfx" name="javafx-web" rev="&javafx.version;" > <dependency conf="autopsy_core->default" org="org.openjfx" name="javafx-web" rev="${javafx.version}" >
<artifact name="javafx-web" type="jar" /> <artifact name="javafx-web" type="jar" />
<artifact name="javafx-web" type="jar" e:classifier="win"/> <artifact name="javafx-web" type="jar" e:classifier="win"/>
<artifact name="javafx-web" type="jar" e:classifier="mac"/> <artifact name="javafx-web" type="jar" e:classifier="mac"/>
<artifact name="javafx-web" type="jar" e:classifier="linux"/> <artifact name="javafx-web" type="jar" e:classifier="linux"/>
</dependency> </dependency>
<dependency conf="autopsy_core->default" org="org.openjfx" name="javafx-media" rev="&javafx.version;"> <dependency conf="autopsy_core->default" org="org.openjfx" name="javafx-media" rev="${javafx.version}">
<artifact name="javafx-media" type="jar" /> <artifact name="javafx-media" type="jar" />
<artifact name="javafx-media" type="jar" e:classifier="win"/> <artifact name="javafx-media" type="jar" e:classifier="win"/>
<artifact name="javafx-media" type="jar" e:classifier="mac"/> <artifact name="javafx-media" type="jar" e:classifier="mac"/>
@ -54,8 +50,8 @@
</dependency> </dependency>
<dependency conf="autopsy_core->default" org="org.apache.ant" name="ant-launcher" rev="1.10.12"/> <dependency conf="autopsy_core->default" org="org.apache.ant" name="ant-launcher" rev="1.10.15"/>
<dependency conf="autopsy_core->default" org="org.apache.ant" name="ant" rev="1.10.12"/> <dependency conf="autopsy_core->default" org="org.apache.ant" name="ant" rev="1.10.15"/>
<!-- apple for swing --> <!-- apple for swing -->
<dependency conf="autopsy_core->default" org="com.apple" name="AppleJavaExtensions" rev="1.4"/> <dependency conf="autopsy_core->default" org="com.apple" name="AppleJavaExtensions" rev="1.4"/>
@ -67,29 +63,29 @@
<!-- for file search --> <!-- for file search -->
<dependency conf="autopsy_core->default" org="com.github.lgooddatepicker" name="LGoodDatePicker" rev="11.2.1"/> <dependency conf="autopsy_core->default" org="com.github.lgooddatepicker" name="LGoodDatePicker" rev="11.2.1"/>
<dependency conf="autopsy_core->default" org="commons-codec" name="commons-codec" rev="1.15"/> <dependency conf="autopsy_core->default" org="commons-codec" name="commons-codec" rev="1.17.1"/>
<!-- Google dependencies (translate needs to be kept with guava because translate depends on guava)--> <!-- Google dependencies (translate needs to be kept with guava because translate depends on guava)-->
<dependency conf="autopsy_core->default" org="com.google.cloud" name="google-cloud-translate" rev="2.1.11"/> <dependency conf="autopsy_core->default" org="com.google.cloud" name="google-cloud-translate" rev="2.54.0"/>
<!-- commmon --> <!-- commmon -->
<dependency conf="autopsy_core->default" org="org.apache.commons" name="commons-lang3" rev="3.12.0"/> <dependency conf="autopsy_core->default" org="org.apache.commons" name="commons-lang3" rev="3.17.0"/>
<dependency conf="autopsy_core->default" org="org.apache.commons" name="commons-csv" rev="1.9.0"/> <dependency conf="autopsy_core->default" org="org.apache.commons" name="commons-csv" rev="1.12.0"/>
<dependency conf="autopsy_core->default" org="org.apache.commons" name="commons-text" rev="1.10.0"/> <dependency conf="autopsy_core->default" org="org.apache.commons" name="commons-text" rev="1.13.0"/>
<!-- keep old commons-lang because some deps may need it at runtime. <!-- keep old commons-lang because some deps may need it at runtime.
Note there is no namespace collision with ver 3 --> Note there is no namespace collision with ver 3 -->
<dependency conf="autopsy_core->default" org="commons-lang" name="commons-lang" rev="2.6"/> <dependency conf="autopsy_core->default" org="commons-lang" name="commons-lang" rev="2.6"/>
<dependency conf="autopsy_core->default" org="commons-logging" name="commons-logging" rev="1.2"/> <dependency conf="autopsy_core->default" org="commons-logging" name="commons-logging" rev="1.3.4"/>
<dependency conf="autopsy_core->default" org="commons-io" name="commons-io" rev="2.11.0"/> <dependency conf="autopsy_core->default" org="commons-io" name="commons-io" rev="2.18.0"/>
<dependency conf="autopsy_core->default" org="commons-validator" name="commons-validator" rev="1.7"/> <dependency conf="autopsy_core->default" org="commons-validator" name="commons-validator" rev="1.9.0"/>
<dependency conf="autopsy_core->default" org="org.apache.commons" name="commons-collections4" rev="4.4"/> <dependency conf="autopsy_core->default" org="org.apache.commons" name="commons-collections4" rev="4.5.0-M2"/>
<dependency conf="autopsy_core->default" org="commons-collections" name="commons-collections" rev="3.2.2"/> <dependency conf="autopsy_core->default" org="commons-collections" name="commons-collections" rev="3.2.2"/>
<dependency conf="autopsy_core->default" org="net.htmlparser.jericho" name="jericho-html" rev="3.4"/> <dependency conf="autopsy_core->default" org="net.htmlparser.jericho" name="jericho-html" rev="3.4"/>
<dependency conf="autopsy_core->default" org="com.fasterxml.jackson.dataformat" name="jackson-dataformat-csv" rev="&jackson.version;"/> <dependency conf="autopsy_core->default" org="com.fasterxml.jackson.dataformat" name="jackson-dataformat-csv" rev="${jackson.version}"/>
<dependency conf="autopsy_core->default" org="com.fasterxml.jackson.datatype" name="jackson-datatype-jsr310" rev="&jackson.version;"/> <dependency conf="autopsy_core->default" org="com.fasterxml.jackson.datatype" name="jackson-datatype-jsr310" rev="${jackson.version}"/>
<!-- better image resizing --> <!-- better image resizing -->
<dependency conf="autopsy_core->default" org="org.imgscalr" name="imgscalr-lib" rev="4.2" /> <dependency conf="autopsy_core->default" org="org.imgscalr" name="imgscalr-lib" rev="4.2" />
@ -101,54 +97,47 @@
https://github.com/controlsfx/controlsfx/issues/1241 https://github.com/controlsfx/controlsfx/issues/1241
--> -->
<dependency conf="autopsy_core->*" org="org.controlsfx" name="controlsfx" rev="11.1.2" /> <dependency conf="autopsy_core->*" org="org.controlsfx" name="controlsfx" rev="11.2.1" />
<dependency conf="autopsy_core->default" org="joda-time" name="joda-time" rev="2.10.14" /> <dependency conf="autopsy_core->default" org="joda-time" name="joda-time" rev="2.13.0" />
<!-- timeline --> <!-- timeline -->
<dependency conf="autopsy_core->default" org="org.jfxtras" name="jfxtras-fxml" rev="17-r1" /> <dependency conf="autopsy_core->default" org="org.jfxtras" name="jfxtras-fxml" rev="${jfxtras.version}" />
<dependency conf="autopsy_core->default" org="org.jfxtras" name="jfxtras-controls" rev="17-r1" /> <dependency conf="autopsy_core->default" org="org.jfxtras" name="jfxtras-controls" rev="${jfxtras.version}" />
<dependency conf="autopsy_core->default" org="org.jfxtras" name="jfxtras-common" rev="17-r1" /> <dependency conf="autopsy_core->default" org="org.jfxtras" name="jfxtras-common" rev="${jfxtras.version}" />
<!-- templateing engine used by timeline to generate its snapshot report --> <!-- templateing engine used by timeline to generate its snapshot report -->
<dependency conf="autopsy_core->default" org="com.github.spullara.mustache.java" name="compiler" rev="0.9.10" /> <dependency conf="autopsy_core->default" org="com.github.spullara.mustache.java" name="compiler" rev="0.9.14" />
<!-- image support for autopsy and image gallery --> <!-- image support for autopsy and image gallery -->
<dependency conf="autopsy_core->default" org="com.twelvemonkeys.common" name="common-lang" rev="3.8.2" /> <dependency conf="autopsy_core->default" org="com.twelvemonkeys.common" name="common-lang" rev="${twelvemonkeys.version}" />
<dependency conf="autopsy_core->default" org="com.twelvemonkeys.common" name="common-io" rev="3.8.2" /> <dependency conf="autopsy_core->default" org="com.twelvemonkeys.common" name="common-io" rev="${twelvemonkeys.version}" />
<dependency conf="autopsy_core->default" org="com.twelvemonkeys.common" name="common-image" rev="3.8.2" /> <dependency conf="autopsy_core->default" org="com.twelvemonkeys.common" name="common-image" rev="${twelvemonkeys.version}" />
<dependency conf="autopsy_core->default" org="com.twelvemonkeys.imageio" name="imageio-jpeg" rev="3.8.2" /> <dependency conf="autopsy_core->default" org="com.twelvemonkeys.imageio" name="imageio-jpeg" rev="${twelvemonkeys.version}" />
<dependency conf="autopsy_core->default" org="com.twelvemonkeys.imageio" name="imageio-bmp" rev="3.8.2" /> <dependency conf="autopsy_core->default" org="com.twelvemonkeys.imageio" name="imageio-bmp" rev="${twelvemonkeys.version}" />
<dependency conf="autopsy_core->default" org="com.twelvemonkeys.imageio" name="imageio-tiff" rev="3.8.2" /> <dependency conf="autopsy_core->default" org="com.twelvemonkeys.imageio" name="imageio-tiff" rev="${twelvemonkeys.version}" />
<dependency conf="autopsy_core->default" org="com.twelvemonkeys.imageio" name="imageio-pnm" rev="3.8.2" /> <dependency conf="autopsy_core->default" org="com.twelvemonkeys.imageio" name="imageio-pnm" rev="${twelvemonkeys.version}" />
<dependency conf="autopsy_core->default" org="com.twelvemonkeys.imageio" name="imageio-psd" rev="3.8.2" /> <dependency conf="autopsy_core->default" org="com.twelvemonkeys.imageio" name="imageio-psd" rev="${twelvemonkeys.version}" />
<dependency conf="autopsy_core->default" org="com.twelvemonkeys.imageio" name="imageio-iff" rev="3.8.2" /> <dependency conf="autopsy_core->default" org="com.twelvemonkeys.imageio" name="imageio-iff" rev="${twelvemonkeys.version}" />
<dependency conf="autopsy_core->default" org="com.twelvemonkeys.imageio" name="imageio-pcx" rev="3.8.2" /> <dependency conf="autopsy_core->default" org="com.twelvemonkeys.imageio" name="imageio-pcx" rev="${twelvemonkeys.version}" />
<dependency conf="autopsy_core->default" org="com.twelvemonkeys.imageio" name="imageio-pict" rev="3.8.2" /> <dependency conf="autopsy_core->default" org="com.twelvemonkeys.imageio" name="imageio-pict" rev="${twelvemonkeys.version}" />
<dependency conf="autopsy_core->default" org="com.twelvemonkeys.imageio" name="imageio-sgi" rev="3.8.2" /> <dependency conf="autopsy_core->default" org="com.twelvemonkeys.imageio" name="imageio-sgi" rev="${twelvemonkeys.version}" />
<dependency conf="autopsy_core->default" org="com.twelvemonkeys.imageio" name="imageio-tga" rev="3.8.2" /> <dependency conf="autopsy_core->default" org="com.twelvemonkeys.imageio" name="imageio-tga" rev="${twelvemonkeys.version}" />
<dependency conf="autopsy_core->default" org="com.twelvemonkeys.imageio" name="imageio-icns" rev="3.8.2" /> <dependency conf="autopsy_core->default" org="com.twelvemonkeys.imageio" name="imageio-icns" rev="${twelvemonkeys.version}" />
<dependency conf="autopsy_core->default" org="com.twelvemonkeys.imageio" name="imageio-thumbsdb" rev="3.8.2" /> <dependency conf="autopsy_core->default" org="com.twelvemonkeys.imageio" name="imageio-thumbsdb" rev="${twelvemonkeys.version}" />
<dependency conf="autopsy_core->default" org="com.twelvemonkeys.imageio" name="imageio-core" rev="3.8.2" /> <dependency conf="autopsy_core->default" org="com.twelvemonkeys.imageio" name="imageio-core" rev="${twelvemonkeys.version}" />
<dependency conf="autopsy_core->default" org="com.twelvemonkeys.imageio" name="imageio-metadata" rev="3.8.2" /> <dependency conf="autopsy_core->default" org="com.twelvemonkeys.imageio" name="imageio-metadata" rev="${twelvemonkeys.version}" />
<dependency conf="autopsy_core->default" org="org.sejda.webp-imageio" name="webp-imageio-sejda" rev="0.1.0"/> <dependency conf="autopsy_core->default" org="org.sejda.webp-imageio" name="webp-imageio-sejda" rev="0.1.0"/>
<dependency conf="autopsy_core->default" org="com.googlecode.plist" name="dd-plist" rev="1.23"/> <dependency conf="autopsy_core->default" org="com.googlecode.plist" name="dd-plist" rev="1.28"/>
<dependency conf="autopsy_core->default" org="org.slf4j" name="slf4j-reload4j" rev="1.7.36"/> <dependency conf="autopsy_core->default" org="org.slf4j" name="slf4j-reload4j" rev="2.0.16"/>
<dependency conf="autopsy_core->default" org="org.apache.logging.log4j" name="log4j-api" rev="2.17.2" transitive="false"/> <dependency conf="autopsy_core->default" org="org.apache.logging.log4j" name="log4j-api" rev="${log4j.version}" transitive="false"/>
<dependency conf="autopsy_core->default" org="org.apache.logging.log4j" name="log4j-core" rev="2.17.2" transitive="false"/> <dependency conf="autopsy_core->default" org="org.apache.logging.log4j" name="log4j-core" rev="${log4j.version}" transitive="false"/>
<exclude org="*" ext="*" type="javadoc"/> <exclude org="*" ext="*" type="javadoc"/>
<exclude org="log4j" module="log4j"/> <exclude org="log4j" module="log4j"/>
<override org="org.slf4j" module="slf4j-api" rev="1.7.36"/> <override org="com.google.guava" module="guava" rev="33.4.0-jre"/>
<override org="io.netty" module="netty-transport" rev="4.1.116.Final"/>
<override org="com.google.code.gson" module="gson" rev="2.9.0"/>
<override org="com.google.guava" module="guava" rev="32.0.1-jre"/>
<override org="com.fasterxml.jackson.core" module="jackson-databind" rev="&jackson.version;"/>
<override org="com.fasterxml.jackson.core" module="jackson-core" rev="&jackson.version;"/>
<!-- changes to bouncy castle version may also be reflected in thirdparty/IcePDF 6.2.2 -->
<override org="org.bouncycastle" module="bcprov-jdk15on" rev="1.70"/>
<override org="org.bouncycastle" module="bcpkix-jdk15on" rev="1.70"/>
</dependencies> </dependencies>
</ivy-module> </ivy-module>

View File

@ -1,4 +1,10 @@
<ivysettings> <ivysettings>
<property name="javafx.version" value="17.0.14-ea+2"/>
<property name="jackson.version" value="2.18.2"/>
<property name="jfxtras.version" value="17-r1"/>
<property name="twelvemonkeys.version" value="3.12.0"/>
<property name="log4j.version" value="2.24.3"/>
<settings defaultResolver="main"/> <settings defaultResolver="main"/>
<resolvers> <resolvers>
<chain name="main"> <chain name="main">

View File

@ -1,118 +1,120 @@
file.reference.animal-sniffer-annotations-1.21.jar=release/modules/ext/animal-sniffer-annotations-1.21.jar
file.reference.annotations-4.1.1.4.jar=release/modules/ext/annotations-4.1.1.4.jar
file.reference.ant-1.10.12.jar=release/modules/ext/ant-1.10.12.jar
file.reference.ant-launcher-1.10.12.jar=release/modules/ext/ant-launcher-1.10.12.jar
file.reference.api-common-2.1.4.jar=release/modules/ext/api-common-2.1.4.jar
file.reference.AppleJavaExtensions-1.4.jar=release/modules/ext/AppleJavaExtensions-1.4.jar file.reference.AppleJavaExtensions-1.4.jar=release/modules/ext/AppleJavaExtensions-1.4.jar
file.reference.auto-value-annotations-1.9.jar=release/modules/ext/auto-value-annotations-1.9.jar file.reference.LGoodDatePicker-11.2.1.jar=release/modules/ext/LGoodDatePicker-11.2.1.jar
file.reference.bcpkix-jdk15on-1.70.jar=release/modules/ext/bcpkix-jdk15on-1.70.jar file.reference.animal-sniffer-annotations-1.24.jar=release/modules/ext/animal-sniffer-annotations-1.24.jar
file.reference.bcprov-jdk15on-1.70.jar=release/modules/ext/bcprov-jdk15on-1.70.jar file.reference.annotations-4.1.1.4.jar=release/modules/ext/annotations-4.1.1.4.jar
file.reference.bcutil-jdk15on-1.70.jar=release/modules/ext/bcutil-jdk15on-1.70.jar file.reference.ant-1.10.15.jar=release/modules/ext/ant-1.10.15.jar
file.reference.checker-qual-3.21.3.jar=release/modules/ext/checker-qual-3.21.3.jar file.reference.ant-launcher-1.10.15.jar=release/modules/ext/ant-launcher-1.10.15.jar
file.reference.common-image-3.8.2.jar=release/modules/ext/common-image-3.8.2.jar file.reference.api-common-2.41.0.jar=release/modules/ext/api-common-2.41.0.jar
file.reference.common-io-3.8.2.jar=release/modules/ext/common-io-3.8.2.jar file.reference.auto-value-annotations-1.11.0.jar=release/modules/ext/auto-value-annotations-1.11.0.jar
file.reference.common-lang-3.8.2.jar=release/modules/ext/common-lang-3.8.2.jar file.reference.checker-qual-3.47.0.jar=release/modules/ext/checker-qual-3.47.0.jar
file.reference.common-image-3.12.0.jar=release/modules/ext/common-image-3.12.0.jar
file.reference.common-io-3.12.0.jar=release/modules/ext/common-io-3.12.0.jar
file.reference.common-lang-3.12.0.jar=release/modules/ext/common-lang-3.12.0.jar
file.reference.commons-beanutils-1.9.4.jar=release/modules/ext/commons-beanutils-1.9.4.jar file.reference.commons-beanutils-1.9.4.jar=release/modules/ext/commons-beanutils-1.9.4.jar
file.reference.commons-codec-1.15.jar=release/modules/ext/commons-codec-1.15.jar file.reference.commons-codec-1.17.1.jar=release/modules/ext/commons-codec-1.17.1.jar
file.reference.commons-collections-3.2.2.jar=release/modules/ext/commons-collections-3.2.2.jar file.reference.commons-collections-3.2.2.jar=release/modules/ext/commons-collections-3.2.2.jar
file.reference.commons-collections4-4.4.jar=release/modules/ext/commons-collections4-4.4.jar file.reference.commons-collections4-4.5.0-M2.jar=release/modules/ext/commons-collections4-4.5.0-M2.jar
file.reference.commons-csv-1.9.0.jar=release/modules/ext/commons-csv-1.9.0.jar file.reference.commons-csv-1.12.0.jar=release/modules/ext/commons-csv-1.12.0.jar
file.reference.commons-digester-2.1.jar=release/modules/ext/commons-digester-2.1.jar file.reference.commons-digester-2.1.jar=release/modules/ext/commons-digester-2.1.jar
file.reference.commons-io-2.11.0.jar=release/modules/ext/commons-io-2.11.0.jar file.reference.commons-io-2.18.0.jar=release/modules/ext/commons-io-2.18.0.jar
file.reference.commons-lang-2.6.jar=release/modules/ext/commons-lang-2.6.jar file.reference.commons-lang-2.6.jar=release/modules/ext/commons-lang-2.6.jar
file.reference.commons-lang3-3.12.0.jar=release/modules/ext/commons-lang3-3.12.0.jar file.reference.commons-lang3-3.17.0.jar=release/modules/ext/commons-lang3-3.17.0.jar
file.reference.commons-logging-1.2.jar=release/modules/ext/commons-logging-1.2.jar file.reference.commons-logging-1.3.4.jar=release/modules/ext/commons-logging-1.3.4.jar
file.reference.commons-text-1.10.0.jar=release/modules/ext/commons-text-1.10.0.jar file.reference.commons-text-1.13.0.jar=release/modules/ext/commons-text-1.13.0.jar
file.reference.commons-validator-1.7.jar=release/modules/ext/commons-validator-1.7.jar file.reference.commons-validator-1.9.0.jar=release/modules/ext/commons-validator-1.9.0.jar
file.reference.compiler-0.9.10.jar=release/modules/ext/compiler-0.9.10.jar file.reference.compiler-0.9.14.jar=release/modules/ext/compiler-0.9.14.jar
file.reference.conscrypt-openjdk-uber-2.5.1.jar=release/modules/ext/conscrypt-openjdk-uber-2.5.1.jar file.reference.conscrypt-openjdk-uber-2.5.2.jar=release/modules/ext/conscrypt-openjdk-uber-2.5.2.jar
file.reference.controlsfx-11.1.2-sources.jar=release/modules/ext/controlsfx-11.1.2-sources.jar file.reference.controlsfx-11.2.1-sources.jar=release/modules/ext/controlsfx-11.2.1-sources.jar
file.reference.controlsfx-11.1.2.jar=release/modules/ext/controlsfx-11.1.2.jar file.reference.controlsfx-11.2.1.jar=release/modules/ext/controlsfx-11.2.1.jar
file.reference.dd-plist-1.23.jar=release/modules/ext/dd-plist-1.23.jar file.reference.dd-plist-1.28.jar=release/modules/ext/dd-plist-1.28.jar
file.reference.error_prone_annotations-2.11.0.jar=release/modules/ext/error_prone_annotations-2.11.0.jar file.reference.error_prone_annotations-2.35.1.jar=release/modules/ext/error_prone_annotations-2.35.1.jar
file.reference.failureaccess-1.0.1.jar=release/modules/ext/failureaccess-1.0.1.jar file.reference.failureaccess-1.0.2.jar=release/modules/ext/failureaccess-1.0.2.jar
file.reference.gax-2.12.2.jar=release/modules/ext/gax-2.12.2.jar file.reference.gax-2.58.0.jar=release/modules/ext/gax-2.58.0.jar
file.reference.gax-grpc-2.12.2.jar=release/modules/ext/gax-grpc-2.12.2.jar file.reference.gax-grpc-2.58.0.jar=release/modules/ext/gax-grpc-2.58.0.jar
file.reference.gax-httpjson-0.97.2.jar=release/modules/ext/gax-httpjson-0.97.2.jar file.reference.gax-httpjson-2.58.0.jar=release/modules/ext/gax-httpjson-2.58.0.jar
file.reference.google-api-client-1.33.2.jar=release/modules/ext/google-api-client-1.33.2.jar file.reference.google-api-client-2.7.0.jar=release/modules/ext/google-api-client-2.7.0.jar
file.reference.google-api-services-translate-v2-rev20170525-1.32.1.jar=release/modules/ext/google-api-services-translate-v2-rev20170525-1.32.1.jar file.reference.google-api-services-translate-v2-rev20170525-2.0.0.jar=release/modules/ext/google-api-services-translate-v2-rev20170525-2.0.0.jar
file.reference.google-auth-library-credentials-1.5.3.jar=release/modules/ext/google-auth-library-credentials-1.5.3.jar file.reference.google-auth-library-credentials-1.30.0.jar=release/modules/ext/google-auth-library-credentials-1.30.0.jar
file.reference.google-auth-library-oauth2-http-1.5.3.jar=release/modules/ext/google-auth-library-oauth2-http-1.5.3.jar file.reference.google-auth-library-oauth2-http-1.30.0.jar=release/modules/ext/google-auth-library-oauth2-http-1.30.0.jar
file.reference.google-cloud-core-2.5.6.jar=release/modules/ext/google-cloud-core-2.5.6.jar file.reference.google-cloud-core-2.48.0.jar=release/modules/ext/google-cloud-core-2.48.0.jar
file.reference.google-cloud-core-http-2.5.6.jar=release/modules/ext/google-cloud-core-http-2.5.6.jar file.reference.google-cloud-core-http-2.48.0.jar=release/modules/ext/google-cloud-core-http-2.48.0.jar
file.reference.google-cloud-translate-2.1.11.jar=release/modules/ext/google-cloud-translate-2.1.11.jar file.reference.google-cloud-translate-2.54.0.jar=release/modules/ext/google-cloud-translate-2.54.0.jar
file.reference.google-http-client-1.41.4.jar=release/modules/ext/google-http-client-1.41.4.jar file.reference.google-http-client-1.45.0.jar=release/modules/ext/google-http-client-1.45.0.jar
file.reference.google-http-client-apache-v2-1.41.4.jar=release/modules/ext/google-http-client-apache-v2-1.41.4.jar file.reference.google-http-client-apache-v2-1.45.0.jar=release/modules/ext/google-http-client-apache-v2-1.45.0.jar
file.reference.google-http-client-appengine-1.41.4.jar=release/modules/ext/google-http-client-appengine-1.41.4.jar file.reference.google-http-client-appengine-1.45.0.jar=release/modules/ext/google-http-client-appengine-1.45.0.jar
file.reference.google-http-client-gson-1.41.4.jar=release/modules/ext/google-http-client-gson-1.41.4.jar file.reference.google-http-client-gson-1.45.0.jar=release/modules/ext/google-http-client-gson-1.45.0.jar
file.reference.google-http-client-jackson2-1.41.4.jar=release/modules/ext/google-http-client-jackson2-1.41.4.jar file.reference.google-http-client-jackson2-1.45.0.jar=release/modules/ext/google-http-client-jackson2-1.45.0.jar
file.reference.google-oauth-client-1.33.1.jar=release/modules/ext/google-oauth-client-1.33.1.jar file.reference.google-oauth-client-1.36.0.jar=release/modules/ext/google-oauth-client-1.36.0.jar
file.reference.grpc-alts-1.44.1.jar=release/modules/ext/grpc-alts-1.44.1.jar file.reference.grpc-alts-1.68.1.jar=release/modules/ext/grpc-alts-1.68.1.jar
file.reference.grpc-api-1.44.1.jar=release/modules/ext/grpc-api-1.44.1.jar file.reference.grpc-api-1.68.1.jar=release/modules/ext/grpc-api-1.68.1.jar
file.reference.grpc-auth-1.44.1.jar=release/modules/ext/grpc-auth-1.44.1.jar file.reference.grpc-auth-1.68.1.jar=release/modules/ext/grpc-auth-1.68.1.jar
file.reference.grpc-context-1.44.1.jar=release/modules/ext/grpc-context-1.44.1.jar file.reference.grpc-context-1.68.1.jar=release/modules/ext/grpc-context-1.68.1.jar
file.reference.grpc-core-1.44.1.jar=release/modules/ext/grpc-core-1.44.1.jar file.reference.grpc-core-1.68.1.jar=release/modules/ext/grpc-core-1.68.1.jar
file.reference.grpc-grpclb-1.44.1.jar=release/modules/ext/grpc-grpclb-1.44.1.jar file.reference.grpc-googleapis-1.68.1.jar=release/modules/ext/grpc-googleapis-1.68.1.jar
file.reference.grpc-netty-shaded-1.44.1.jar=release/modules/ext/grpc-netty-shaded-1.44.1.jar file.reference.grpc-grpclb-1.68.1.jar=release/modules/ext/grpc-grpclb-1.68.1.jar
file.reference.grpc-protobuf-1.44.1.jar=release/modules/ext/grpc-protobuf-1.44.1.jar file.reference.grpc-inprocess-1.68.1.jar=release/modules/ext/grpc-inprocess-1.68.1.jar
file.reference.grpc-protobuf-lite-1.44.1.jar=release/modules/ext/grpc-protobuf-lite-1.44.1.jar file.reference.grpc-netty-shaded-1.68.1.jar=release/modules/ext/grpc-netty-shaded-1.68.1.jar
file.reference.grpc-services-1.44.1.jar=release/modules/ext/grpc-services-1.44.1.jar file.reference.grpc-protobuf-1.68.1.jar=release/modules/ext/grpc-protobuf-1.68.1.jar
file.reference.grpc-stub-1.44.1.jar=release/modules/ext/grpc-stub-1.44.1.jar file.reference.grpc-protobuf-lite-1.68.1.jar=release/modules/ext/grpc-protobuf-lite-1.68.1.jar
file.reference.grpc-xds-1.44.1.jar=release/modules/ext/grpc-xds-1.44.1.jar file.reference.grpc-s2a-1.68.1.jar=release/modules/ext/grpc-s2a-1.68.1.jar
file.reference.gson-2.9.0.jar=release/modules/ext/gson-2.9.0.jar file.reference.grpc-services-1.68.1.jar=release/modules/ext/grpc-services-1.68.1.jar
file.reference.grpc-stub-1.68.1.jar=release/modules/ext/grpc-stub-1.68.1.jar
file.reference.grpc-util-1.68.1.jar=release/modules/ext/grpc-util-1.68.1.jar
file.reference.grpc-xds-1.68.1.jar=release/modules/ext/grpc-xds-1.68.1.jar
file.reference.gson-2.11.0.jar=release/modules/ext/gson-2.11.0.jar
file.reference.gst1-java-core-1.4.0.jar=release/modules/ext/gst1-java-core-1.4.0.jar file.reference.gst1-java-core-1.4.0.jar=release/modules/ext/gst1-java-core-1.4.0.jar
file.reference.guava-32.0.1-jre.jar=release/modules/ext/guava-32.0.1-jre.jar file.reference.guava-33.4.0-jre.jar=release/modules/ext/guava-33.4.0-jre.jar
file.reference.httpclient-4.5.13.jar=release/modules/ext/httpclient-4.5.13.jar file.reference.httpclient-4.5.14.jar=release/modules/ext/httpclient-4.5.14.jar
file.reference.httpcore-4.4.15.jar=release/modules/ext/httpcore-4.4.15.jar file.reference.httpcore-4.4.16.jar=release/modules/ext/httpcore-4.4.16.jar
file.reference.imageio-bmp-3.8.2.jar=release/modules/ext/imageio-bmp-3.8.2.jar file.reference.imageio-bmp-3.12.0.jar=release/modules/ext/imageio-bmp-3.12.0.jar
file.reference.imageio-core-3.8.2.jar=release/modules/ext/imageio-core-3.8.2.jar file.reference.imageio-core-3.12.0.jar=release/modules/ext/imageio-core-3.12.0.jar
file.reference.imageio-icns-3.8.2.jar=release/modules/ext/imageio-icns-3.8.2.jar file.reference.imageio-icns-3.12.0.jar=release/modules/ext/imageio-icns-3.12.0.jar
file.reference.imageio-iff-3.8.2.jar=release/modules/ext/imageio-iff-3.8.2.jar file.reference.imageio-iff-3.12.0.jar=release/modules/ext/imageio-iff-3.12.0.jar
file.reference.imageio-jpeg-3.8.2.jar=release/modules/ext/imageio-jpeg-3.8.2.jar file.reference.imageio-jpeg-3.12.0.jar=release/modules/ext/imageio-jpeg-3.12.0.jar
file.reference.imageio-metadata-3.8.2.jar=release/modules/ext/imageio-metadata-3.8.2.jar file.reference.imageio-metadata-3.12.0.jar=release/modules/ext/imageio-metadata-3.12.0.jar
file.reference.imageio-pcx-3.8.2.jar=release/modules/ext/imageio-pcx-3.8.2.jar file.reference.imageio-pcx-3.12.0.jar=release/modules/ext/imageio-pcx-3.12.0.jar
file.reference.imageio-pict-3.8.2.jar=release/modules/ext/imageio-pict-3.8.2.jar file.reference.imageio-pict-3.12.0.jar=release/modules/ext/imageio-pict-3.12.0.jar
file.reference.imageio-pnm-3.8.2.jar=release/modules/ext/imageio-pnm-3.8.2.jar file.reference.imageio-pnm-3.12.0.jar=release/modules/ext/imageio-pnm-3.12.0.jar
file.reference.imageio-psd-3.8.2.jar=release/modules/ext/imageio-psd-3.8.2.jar file.reference.imageio-psd-3.12.0.jar=release/modules/ext/imageio-psd-3.12.0.jar
file.reference.imageio-sgi-3.8.2.jar=release/modules/ext/imageio-sgi-3.8.2.jar file.reference.imageio-sgi-3.12.0.jar=release/modules/ext/imageio-sgi-3.12.0.jar
file.reference.imageio-tga-3.8.2.jar=release/modules/ext/imageio-tga-3.8.2.jar file.reference.imageio-tga-3.12.0.jar=release/modules/ext/imageio-tga-3.12.0.jar
file.reference.imageio-thumbsdb-3.8.2.jar=release/modules/ext/imageio-thumbsdb-3.8.2.jar file.reference.imageio-thumbsdb-3.12.0.jar=release/modules/ext/imageio-thumbsdb-3.12.0.jar
file.reference.imageio-tiff-3.8.2.jar=release/modules/ext/imageio-tiff-3.8.2.jar file.reference.imageio-tiff-3.12.0.jar=release/modules/ext/imageio-tiff-3.12.0.jar
file.reference.imgscalr-lib-4.2.jar=release/modules/ext/imgscalr-lib-4.2.jar file.reference.imgscalr-lib-4.2.jar=release/modules/ext/imgscalr-lib-4.2.jar
file.reference.j2objc-annotations-1.3.jar=release/modules/ext/j2objc-annotations-1.3.jar file.reference.j2objc-annotations-3.0.0.jar=release/modules/ext/j2objc-annotations-3.0.0.jar
file.reference.jackson-annotations-2.15.2.jar=release/modules/ext/jackson-annotations-2.15.2.jar file.reference.jackson-annotations-2.18.2.jar=release/modules/ext/jackson-annotations-2.18.2.jar
file.reference.jackson-core-2.15.2.jar=release/modules/ext/jackson-core-2.15.2.jar file.reference.jackson-core-2.18.2.jar=release/modules/ext/jackson-core-2.18.2.jar
file.reference.jackson-databind-2.15.2.jar=release/modules/ext/jackson-databind-2.15.2.jar file.reference.jackson-databind-2.18.2.jar=release/modules/ext/jackson-databind-2.18.2.jar
file.reference.jackson-dataformat-csv-2.15.2.jar=release/modules/ext/jackson-dataformat-csv-2.15.2.jar file.reference.jackson-dataformat-csv-2.18.2.jar=release/modules/ext/jackson-dataformat-csv-2.18.2.jar
file.reference.jackson-datatype-jsr310-2.15.2.jar=release/modules/ext/jackson-datatype-jsr310-2.15.2.jar file.reference.jackson-datatype-jsr310-2.18.2.jar=release/modules/ext/jackson-datatype-jsr310-2.18.2.jar
file.reference.javafx-base-17.0.7-linux.jar=release/modules/ext/javafx-base-17.0.7-linux.jar file.reference.javafx-base-17.0.14-ea2-linux.jar=release/modules/ext/javafx-base-17.0.14-ea2-linux.jar
file.reference.javafx-base-17.0.7-mac.jar=release/modules/ext/javafx-base-17.0.7-mac.jar file.reference.javafx-base-17.0.14-ea2-mac.jar=release/modules/ext/javafx-base-17.0.14-ea2-mac.jar
file.reference.javafx-base-17.0.7-win.jar=release/modules/ext/javafx-base-17.0.7-win.jar file.reference.javafx-base-17.0.14-ea2-win.jar=release/modules/ext/javafx-base-17.0.14-ea2-win.jar
file.reference.javafx-base-17.0.7.jar=release/modules/ext/javafx-base-17.0.7.jar file.reference.javafx-base-17.0.14-ea2.jar=release/modules/ext/javafx-base-17.0.14-ea2.jar
file.reference.javafx-controls-17.0.7-linux.jar=release/modules/ext/javafx-controls-17.0.7-linux.jar file.reference.javafx-controls-17.0.14-ea2-linux.jar=release/modules/ext/javafx-controls-17.0.14-ea2-linux.jar
file.reference.javafx-controls-17.0.7-mac.jar=release/modules/ext/javafx-controls-17.0.7-mac.jar file.reference.javafx-controls-17.0.14-ea2-mac.jar=release/modules/ext/javafx-controls-17.0.14-ea2-mac.jar
file.reference.javafx-controls-17.0.7-win.jar=release/modules/ext/javafx-controls-17.0.7-win.jar file.reference.javafx-controls-17.0.14-ea2-win.jar=release/modules/ext/javafx-controls-17.0.14-ea2-win.jar
file.reference.javafx-controls-17.0.7.jar=release/modules/ext/javafx-controls-17.0.7.jar file.reference.javafx-controls-17.0.14-ea2.jar=release/modules/ext/javafx-controls-17.0.14-ea2.jar
file.reference.javafx-fxml-17.0.7-linux.jar=release/modules/ext/javafx-fxml-17.0.7-linux.jar file.reference.javafx-fxml-17.0.14-ea2-linux.jar=release/modules/ext/javafx-fxml-17.0.14-ea2-linux.jar
file.reference.javafx-fxml-17.0.7-mac.jar=release/modules/ext/javafx-fxml-17.0.7-mac.jar file.reference.javafx-fxml-17.0.14-ea2-mac.jar=release/modules/ext/javafx-fxml-17.0.14-ea2-mac.jar
file.reference.javafx-fxml-17.0.7-win.jar=release/modules/ext/javafx-fxml-17.0.7-win.jar file.reference.javafx-fxml-17.0.14-ea2-win.jar=release/modules/ext/javafx-fxml-17.0.14-ea2-win.jar
file.reference.javafx-fxml-17.0.7.jar=release/modules/ext/javafx-fxml-17.0.7.jar file.reference.javafx-fxml-17.0.14-ea2.jar=release/modules/ext/javafx-fxml-17.0.14-ea2.jar
file.reference.javafx-graphics-17.0.7-linux.jar=release/modules/ext/javafx-graphics-17.0.7-linux.jar file.reference.javafx-graphics-17.0.14-ea2-linux.jar=release/modules/ext/javafx-graphics-17.0.14-ea2-linux.jar
file.reference.javafx-graphics-17.0.7-mac.jar=release/modules/ext/javafx-graphics-17.0.7-mac.jar file.reference.javafx-graphics-17.0.14-ea2-mac.jar=release/modules/ext/javafx-graphics-17.0.14-ea2-mac.jar
file.reference.javafx-graphics-17.0.7-win.jar=release/modules/ext/javafx-graphics-17.0.7-win.jar file.reference.javafx-graphics-17.0.14-ea2-win.jar=release/modules/ext/javafx-graphics-17.0.14-ea2-win.jar
file.reference.javafx-graphics-17.0.7.jar=release/modules/ext/javafx-graphics-17.0.7.jar file.reference.javafx-graphics-17.0.14-ea2.jar=release/modules/ext/javafx-graphics-17.0.14-ea2.jar
file.reference.javafx-media-17.0.7-linux.jar=release/modules/ext/javafx-media-17.0.7-linux.jar file.reference.javafx-media-17.0.14-ea2-linux.jar=release/modules/ext/javafx-media-17.0.14-ea2-linux.jar
file.reference.javafx-media-17.0.7-mac.jar=release/modules/ext/javafx-media-17.0.7-mac.jar file.reference.javafx-media-17.0.14-ea2-mac.jar=release/modules/ext/javafx-media-17.0.14-ea2-mac.jar
file.reference.javafx-media-17.0.7-win.jar=release/modules/ext/javafx-media-17.0.7-win.jar file.reference.javafx-media-17.0.14-ea2-win.jar=release/modules/ext/javafx-media-17.0.14-ea2-win.jar
file.reference.javafx-media-17.0.7.jar=release/modules/ext/javafx-media-17.0.7.jar file.reference.javafx-media-17.0.14-ea2.jar=release/modules/ext/javafx-media-17.0.14-ea2.jar
file.reference.javafx-swing-17.0.7-linux.jar=release/modules/ext/javafx-swing-17.0.7-linux.jar file.reference.javafx-swing-17.0.14-ea2-linux.jar=release/modules/ext/javafx-swing-17.0.14-ea2-linux.jar
file.reference.javafx-swing-17.0.7-mac.jar=release/modules/ext/javafx-swing-17.0.7-mac.jar file.reference.javafx-swing-17.0.14-ea2-mac.jar=release/modules/ext/javafx-swing-17.0.14-ea2-mac.jar
file.reference.javafx-swing-17.0.7-win.jar=release/modules/ext/javafx-swing-17.0.7-win.jar file.reference.javafx-swing-17.0.14-ea2-win.jar=release/modules/ext/javafx-swing-17.0.14-ea2-win.jar
file.reference.javafx-swing-17.0.7.jar=release/modules/ext/javafx-swing-17.0.7.jar file.reference.javafx-swing-17.0.14-ea2.jar=release/modules/ext/javafx-swing-17.0.14-ea2.jar
file.reference.javafx-web-17.0.7-linux.jar=release/modules/ext/javafx-web-17.0.7-linux.jar file.reference.javafx-web-17.0.14-ea2-linux.jar=release/modules/ext/javafx-web-17.0.14-ea2-linux.jar
file.reference.javafx-web-17.0.7-mac.jar=release/modules/ext/javafx-web-17.0.7-mac.jar file.reference.javafx-web-17.0.14-ea2-mac.jar=release/modules/ext/javafx-web-17.0.14-ea2-mac.jar
file.reference.javafx-web-17.0.7-win.jar=release/modules/ext/javafx-web-17.0.7-win.jar file.reference.javafx-web-17.0.14-ea2-win.jar=release/modules/ext/javafx-web-17.0.14-ea2-win.jar
file.reference.javafx-web-17.0.7.jar=release/modules/ext/javafx-web-17.0.7.jar file.reference.javafx-web-17.0.14-ea2.jar=release/modules/ext/javafx-web-17.0.14-ea2.jar
file.reference.javax.annotation-api-1.3.2.jar=release/modules/ext/javax.annotation-api-1.3.2.jar file.reference.javax.annotation-api-1.3.2.jar=release/modules/ext/javax.annotation-api-1.3.2.jar
file.reference.jericho-html-3.4.jar=release/modules/ext/jericho-html-3.4.jar file.reference.jericho-html-3.4.jar=release/modules/ext/jericho-html-3.4.jar
file.reference.jfxtras-common-17-r1.jar=release/modules/ext/jfxtras-common-17-r1.jar file.reference.jfxtras-common-17-r1.jar=release/modules/ext/jfxtras-common-17-r1.jar
@ -120,29 +122,27 @@ file.reference.jfxtras-controls-17-r1.jar=release/modules/ext/jfxtras-controls-1
file.reference.jfxtras-fxml-17-r1.jar=release/modules/ext/jfxtras-fxml-17-r1.jar file.reference.jfxtras-fxml-17-r1.jar=release/modules/ext/jfxtras-fxml-17-r1.jar
file.reference.jna-5.16.0.jar=release/modules/ext/jna-5.16.0.jar file.reference.jna-5.16.0.jar=release/modules/ext/jna-5.16.0.jar
file.reference.jna-platform-5.16.0.jar=release/modules/ext/jna-platform-5.16.0.jar file.reference.jna-platform-5.16.0.jar=release/modules/ext/jna-platform-5.16.0.jar
file.reference.joda-time-2.10.14.jar=release/modules/ext/joda-time-2.10.14.jar file.reference.joda-time-2.13.0.jar=release/modules/ext/joda-time-2.13.0.jar
file.reference.jsr305-3.0.2.jar=release/modules/ext/jsr305-3.0.2.jar file.reference.jsr305-3.0.2.jar=release/modules/ext/jsr305-3.0.2.jar
file.reference.LGoodDatePicker-11.2.1.jar=release/modules/ext/LGoodDatePicker-11.2.1.jar
file.reference.listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar=release/modules/ext/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar file.reference.listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar=release/modules/ext/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar
file.reference.log4j-api-2.17.2.jar=release/modules/ext/log4j-api-2.17.2.jar file.reference.log4j-api-2.24.3.jar=release/modules/ext/log4j-api-2.24.3.jar
file.reference.log4j-core-2.17.2.jar=release/modules/ext/log4j-core-2.17.2.jar file.reference.log4j-core-2.24.3.jar=release/modules/ext/log4j-core-2.24.3.jar
file.reference.opencensus-api-0.31.0.jar=release/modules/ext/opencensus-api-0.31.0.jar file.reference.opencensus-api-0.31.1.jar=release/modules/ext/opencensus-api-0.31.1.jar
file.reference.opencensus-contrib-http-util-0.31.0.jar=release/modules/ext/opencensus-contrib-http-util-0.31.0.jar file.reference.opencensus-contrib-http-util-0.31.1.jar=release/modules/ext/opencensus-contrib-http-util-0.31.1.jar
file.reference.opencensus-proto-0.2.0.jar=release/modules/ext/opencensus-proto-0.2.0.jar
file.reference.opencv-2413.jar=release/modules/ext/opencv-2413.jar file.reference.opencv-2413.jar=release/modules/ext/opencv-2413.jar
file.reference.perfmark-api-0.23.0.jar=release/modules/ext/perfmark-api-0.23.0.jar file.reference.perfmark-api-0.27.0.jar=release/modules/ext/perfmark-api-0.27.0.jar
file.reference.proto-google-cloud-translate-v3-2.1.11.jar=release/modules/ext/proto-google-cloud-translate-v3-2.1.11.jar file.reference.proto-google-cloud-translate-v3-2.54.0.jar=release/modules/ext/proto-google-cloud-translate-v3-2.54.0.jar
file.reference.proto-google-cloud-translate-v3beta1-0.83.11.jar=release/modules/ext/proto-google-cloud-translate-v3beta1-0.83.11.jar file.reference.proto-google-cloud-translate-v3beta1-0.136.0.jar=release/modules/ext/proto-google-cloud-translate-v3beta1-0.136.0.jar
file.reference.proto-google-common-protos-2.7.4.jar=release/modules/ext/proto-google-common-protos-2.7.4.jar file.reference.proto-google-common-protos-2.49.0.jar=release/modules/ext/proto-google-common-protos-2.49.0.jar
file.reference.proto-google-iam-v1-1.2.6.jar=release/modules/ext/proto-google-iam-v1-1.2.6.jar file.reference.proto-google-iam-v1-1.44.0.jar=release/modules/ext/proto-google-iam-v1-1.44.0.jar
file.reference.protobuf-java-3.19.4.jar=release/modules/ext/protobuf-java-3.19.4.jar file.reference.protobuf-java-3.25.5.jar=release/modules/ext/protobuf-java-3.25.5.jar
file.reference.protobuf-java-util-3.19.4.jar=release/modules/ext/protobuf-java-util-3.19.4.jar file.reference.protobuf-java-util-3.25.5.jar=release/modules/ext/protobuf-java-util-3.25.5.jar
file.reference.re2j-1.5.jar=release/modules/ext/re2j-1.5.jar file.reference.re2j-1.7.jar=release/modules/ext/re2j-1.7.jar
file.reference.reload4j-1.2.19.jar=release/modules/ext/reload4j-1.2.19.jar file.reference.reload4j-1.2.22.jar=release/modules/ext/reload4j-1.2.22.jar
file.reference.slf4j-api-1.7.36.jar=release/modules/ext/slf4j-api-1.7.36.jar file.reference.slf4j-api-2.0.16.jar=release/modules/ext/slf4j-api-2.0.16.jar
file.reference.slf4j-reload4j-1.7.36.jar=release/modules/ext/slf4j-reload4j-1.7.36.jar file.reference.slf4j-reload4j-2.0.16.jar=release/modules/ext/slf4j-reload4j-2.0.16.jar
file.reference.threetenbp-1.5.2.jar=release/modules/ext/threetenbp-1.5.2.jar file.reference.threetenbp-1.7.0.jar=release/modules/ext/threetenbp-1.7.0.jar
file.reference.webp-imageio-sejda-0.1.0.jar=release/modules/ext/webp-imageio-sejda-0.1.0.jar file.reference.webp-imageio-sejda-0.1.0.jar=release/modules/ext/webp-imageio-sejda-0.1.0.jar
javac.compilerargs=-Xlint -Xlint\:-serial
javac.source=17 javac.source=17
javac.compilerargs=-Xlint -Xlint:-serial
nbm.needs.restart=true nbm.needs.restart=true

View File

@ -405,6 +405,7 @@
<package>org.apache.commons.io</package> <package>org.apache.commons.io</package>
<package>org.apache.commons.io.comparator</package> <package>org.apache.commons.io.comparator</package>
<package>org.apache.commons.io.filefilter</package> <package>org.apache.commons.io.filefilter</package>
<package>org.apache.commons.io.function</package>
<package>org.apache.commons.io.input</package> <package>org.apache.commons.io.input</package>
<package>org.apache.commons.io.monitor</package> <package>org.apache.commons.io.monitor</package>
<package>org.apache.commons.io.output</package> <package>org.apache.commons.io.output</package>
@ -561,464 +562,468 @@
<package>org.slf4j.spi</package> <package>org.slf4j.spi</package>
</public-packages> </public-packages>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/animal-sniffer-annotations-1.21.jar</runtime-relative-path> <runtime-relative-path>ext/animal-sniffer-annotations-1.24.jar</runtime-relative-path>
<binary-origin>release/modules/ext/animal-sniffer-annotations-1.21.jar</binary-origin> <binary-origin>release/modules/ext/animal-sniffer-annotations-1.24.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/annotations-4.1.1.4.jar</runtime-relative-path> <runtime-relative-path>ext/annotations-4.1.1.4.jar</runtime-relative-path>
<binary-origin>release/modules/ext/annotations-4.1.1.4.jar</binary-origin> <binary-origin>release/modules/ext/annotations-4.1.1.4.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/ant-1.10.12.jar</runtime-relative-path> <runtime-relative-path>ext/ant-1.10.15.jar</runtime-relative-path>
<binary-origin>release/modules/ext/ant-1.10.12.jar</binary-origin> <binary-origin>release/modules/ext/ant-1.10.15.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/ant-launcher-1.10.12.jar</runtime-relative-path> <runtime-relative-path>ext/ant-launcher-1.10.15.jar</runtime-relative-path>
<binary-origin>release/modules/ext/ant-launcher-1.10.12.jar</binary-origin> <binary-origin>release/modules/ext/ant-launcher-1.10.15.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/api-common-2.1.4.jar</runtime-relative-path> <runtime-relative-path>ext/api-common-2.41.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/api-common-2.1.4.jar</binary-origin> <binary-origin>release/modules/ext/api-common-2.41.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/AppleJavaExtensions-1.4.jar</runtime-relative-path> <runtime-relative-path>ext/AppleJavaExtensions-1.4.jar</runtime-relative-path>
<binary-origin>release/modules/ext/AppleJavaExtensions-1.4.jar</binary-origin> <binary-origin>release/modules/ext/AppleJavaExtensions-1.4.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/auto-value-annotations-1.9.jar</runtime-relative-path> <runtime-relative-path>ext/auto-value-annotations-1.11.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/auto-value-annotations-1.9.jar</binary-origin> <binary-origin>release/modules/ext/auto-value-annotations-1.11.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/bcpkix-jdk15on-1.70.jar</runtime-relative-path> <runtime-relative-path>ext/checker-qual-3.47.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/bcpkix-jdk15on-1.70.jar</binary-origin> <binary-origin>release/modules/ext/checker-qual-3.47.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/bcprov-jdk15on-1.70.jar</runtime-relative-path> <runtime-relative-path>ext/common-image-3.12.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/bcprov-jdk15on-1.70.jar</binary-origin> <binary-origin>release/modules/ext/common-image-3.12.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/bcutil-jdk15on-1.70.jar</runtime-relative-path> <runtime-relative-path>ext/common-io-3.12.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/bcutil-jdk15on-1.70.jar</binary-origin> <binary-origin>release/modules/ext/common-io-3.12.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/checker-qual-3.21.3.jar</runtime-relative-path> <runtime-relative-path>ext/common-lang-3.12.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/checker-qual-3.21.3.jar</binary-origin> <binary-origin>release/modules/ext/common-lang-3.12.0.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/common-image-3.8.2.jar</runtime-relative-path>
<binary-origin>release/modules/ext/common-image-3.8.2.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/common-io-3.8.2.jar</runtime-relative-path>
<binary-origin>release/modules/ext/common-io-3.8.2.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/common-lang-3.8.2.jar</runtime-relative-path>
<binary-origin>release/modules/ext/common-lang-3.8.2.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/commons-beanutils-1.9.4.jar</runtime-relative-path> <runtime-relative-path>ext/commons-beanutils-1.9.4.jar</runtime-relative-path>
<binary-origin>release/modules/ext/commons-beanutils-1.9.4.jar</binary-origin> <binary-origin>release/modules/ext/commons-beanutils-1.9.4.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/commons-codec-1.15.jar</runtime-relative-path> <runtime-relative-path>ext/commons-codec-1.17.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/commons-codec-1.15.jar</binary-origin> <binary-origin>release/modules/ext/commons-codec-1.17.1.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/commons-collections-3.2.2.jar</runtime-relative-path> <runtime-relative-path>ext/commons-collections-3.2.2.jar</runtime-relative-path>
<binary-origin>release/modules/ext/commons-collections-3.2.2.jar</binary-origin> <binary-origin>release/modules/ext/commons-collections-3.2.2.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/commons-collections4-4.4.jar</runtime-relative-path> <runtime-relative-path>ext/commons-collections4-4.5.0-M2.jar</runtime-relative-path>
<binary-origin>release/modules/ext/commons-collections4-4.4.jar</binary-origin> <binary-origin>release/modules/ext/commons-collections4-4.5.0-M2.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/commons-csv-1.9.0.jar</runtime-relative-path> <runtime-relative-path>ext/commons-csv-1.12.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/commons-csv-1.9.0.jar</binary-origin> <binary-origin>release/modules/ext/commons-csv-1.12.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/commons-digester-2.1.jar</runtime-relative-path> <runtime-relative-path>ext/commons-digester-2.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/commons-digester-2.1.jar</binary-origin> <binary-origin>release/modules/ext/commons-digester-2.1.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/commons-io-2.11.0.jar</runtime-relative-path> <runtime-relative-path>ext/commons-io-2.18.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/commons-io-2.11.0.jar</binary-origin> <binary-origin>release/modules/ext/commons-io-2.18.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/commons-lang-2.6.jar</runtime-relative-path> <runtime-relative-path>ext/commons-lang-2.6.jar</runtime-relative-path>
<binary-origin>release/modules/ext/commons-lang-2.6.jar</binary-origin> <binary-origin>release/modules/ext/commons-lang-2.6.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/commons-lang3-3.12.0.jar</runtime-relative-path> <runtime-relative-path>ext/commons-lang3-3.17.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/commons-lang3-3.12.0.jar</binary-origin> <binary-origin>release/modules/ext/commons-lang3-3.17.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/commons-logging-1.2.jar</runtime-relative-path> <runtime-relative-path>ext/commons-logging-1.3.4.jar</runtime-relative-path>
<binary-origin>release/modules/ext/commons-logging-1.2.jar</binary-origin> <binary-origin>release/modules/ext/commons-logging-1.3.4.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/commons-text-1.10.0.jar</runtime-relative-path> <runtime-relative-path>ext/commons-text-1.13.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/commons-text-1.10.0.jar</binary-origin> <binary-origin>release/modules/ext/commons-text-1.13.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/commons-validator-1.7.jar</runtime-relative-path> <runtime-relative-path>ext/commons-validator-1.9.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/commons-validator-1.7.jar</binary-origin> <binary-origin>release/modules/ext/commons-validator-1.9.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/compiler-0.9.10.jar</runtime-relative-path> <runtime-relative-path>ext/compiler-0.9.14.jar</runtime-relative-path>
<binary-origin>release/modules/ext/compiler-0.9.10.jar</binary-origin> <binary-origin>release/modules/ext/compiler-0.9.14.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/conscrypt-openjdk-uber-2.5.1.jar</runtime-relative-path> <runtime-relative-path>ext/conscrypt-openjdk-uber-2.5.2.jar</runtime-relative-path>
<binary-origin>release/modules/ext/conscrypt-openjdk-uber-2.5.1.jar</binary-origin> <binary-origin>release/modules/ext/conscrypt-openjdk-uber-2.5.2.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/controlsfx-11.1.2-sources.jar</runtime-relative-path> <runtime-relative-path>ext/controlsfx-11.2.1-sources.jar</runtime-relative-path>
<binary-origin>release/modules/ext/controlsfx-11.1.2-sources.jar</binary-origin> <binary-origin>release/modules/ext/controlsfx-11.2.1-sources.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/controlsfx-11.1.2.jar</runtime-relative-path> <runtime-relative-path>ext/controlsfx-11.2.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/controlsfx-11.1.2.jar</binary-origin> <binary-origin>release/modules/ext/controlsfx-11.2.1.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/dd-plist-1.23.jar</runtime-relative-path> <runtime-relative-path>ext/dd-plist-1.28.jar</runtime-relative-path>
<binary-origin>release/modules/ext/dd-plist-1.23.jar</binary-origin> <binary-origin>release/modules/ext/dd-plist-1.28.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/error_prone_annotations-2.11.0.jar</runtime-relative-path> <runtime-relative-path>ext/error_prone_annotations-2.35.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/error_prone_annotations-2.11.0.jar</binary-origin> <binary-origin>release/modules/ext/error_prone_annotations-2.35.1.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/failureaccess-1.0.1.jar</runtime-relative-path> <runtime-relative-path>ext/failureaccess-1.0.2.jar</runtime-relative-path>
<binary-origin>release/modules/ext/failureaccess-1.0.1.jar</binary-origin> <binary-origin>release/modules/ext/failureaccess-1.0.2.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/gax-2.12.2.jar</runtime-relative-path> <runtime-relative-path>ext/gax-2.58.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/gax-2.12.2.jar</binary-origin> <binary-origin>release/modules/ext/gax-2.58.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/gax-grpc-2.12.2.jar</runtime-relative-path> <runtime-relative-path>ext/gax-grpc-2.58.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/gax-grpc-2.12.2.jar</binary-origin> <binary-origin>release/modules/ext/gax-grpc-2.58.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/gax-httpjson-0.97.2.jar</runtime-relative-path> <runtime-relative-path>ext/gax-httpjson-2.58.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/gax-httpjson-0.97.2.jar</binary-origin> <binary-origin>release/modules/ext/gax-httpjson-2.58.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/google-api-client-1.33.2.jar</runtime-relative-path> <runtime-relative-path>ext/google-api-client-2.7.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/google-api-client-1.33.2.jar</binary-origin> <binary-origin>release/modules/ext/google-api-client-2.7.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/google-api-services-translate-v2-rev20170525-1.32.1.jar</runtime-relative-path> <runtime-relative-path>ext/google-api-services-translate-v2-rev20170525-2.0.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/google-api-services-translate-v2-rev20170525-1.32.1.jar</binary-origin> <binary-origin>release/modules/ext/google-api-services-translate-v2-rev20170525-2.0.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/google-auth-library-credentials-1.5.3.jar</runtime-relative-path> <runtime-relative-path>ext/google-auth-library-credentials-1.30.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/google-auth-library-credentials-1.5.3.jar</binary-origin> <binary-origin>release/modules/ext/google-auth-library-credentials-1.30.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/google-auth-library-oauth2-http-1.5.3.jar</runtime-relative-path> <runtime-relative-path>ext/google-auth-library-oauth2-http-1.30.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/google-auth-library-oauth2-http-1.5.3.jar</binary-origin> <binary-origin>release/modules/ext/google-auth-library-oauth2-http-1.30.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/google-cloud-core-2.5.6.jar</runtime-relative-path> <runtime-relative-path>ext/google-cloud-core-2.48.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/google-cloud-core-2.5.6.jar</binary-origin> <binary-origin>release/modules/ext/google-cloud-core-2.48.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/google-cloud-core-http-2.5.6.jar</runtime-relative-path> <runtime-relative-path>ext/google-cloud-core-http-2.48.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/google-cloud-core-http-2.5.6.jar</binary-origin> <binary-origin>release/modules/ext/google-cloud-core-http-2.48.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/google-cloud-translate-2.1.11.jar</runtime-relative-path> <runtime-relative-path>ext/google-cloud-translate-2.54.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/google-cloud-translate-2.1.11.jar</binary-origin> <binary-origin>release/modules/ext/google-cloud-translate-2.54.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/google-http-client-1.41.4.jar</runtime-relative-path> <runtime-relative-path>ext/google-http-client-1.45.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/google-http-client-1.41.4.jar</binary-origin> <binary-origin>release/modules/ext/google-http-client-1.45.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/google-http-client-apache-v2-1.41.4.jar</runtime-relative-path> <runtime-relative-path>ext/google-http-client-apache-v2-1.45.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/google-http-client-apache-v2-1.41.4.jar</binary-origin> <binary-origin>release/modules/ext/google-http-client-apache-v2-1.45.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/google-http-client-appengine-1.41.4.jar</runtime-relative-path> <runtime-relative-path>ext/google-http-client-appengine-1.45.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/google-http-client-appengine-1.41.4.jar</binary-origin> <binary-origin>release/modules/ext/google-http-client-appengine-1.45.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/google-http-client-gson-1.41.4.jar</runtime-relative-path> <runtime-relative-path>ext/google-http-client-gson-1.45.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/google-http-client-gson-1.41.4.jar</binary-origin> <binary-origin>release/modules/ext/google-http-client-gson-1.45.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/google-http-client-jackson2-1.41.4.jar</runtime-relative-path> <runtime-relative-path>ext/google-http-client-jackson2-1.45.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/google-http-client-jackson2-1.41.4.jar</binary-origin> <binary-origin>release/modules/ext/google-http-client-jackson2-1.45.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/google-oauth-client-1.33.1.jar</runtime-relative-path> <runtime-relative-path>ext/google-oauth-client-1.36.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/google-oauth-client-1.33.1.jar</binary-origin> <binary-origin>release/modules/ext/google-oauth-client-1.36.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/grpc-alts-1.44.1.jar</runtime-relative-path> <runtime-relative-path>ext/grpc-alts-1.68.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/grpc-alts-1.44.1.jar</binary-origin> <binary-origin>release/modules/ext/grpc-alts-1.68.1.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/grpc-api-1.44.1.jar</runtime-relative-path> <runtime-relative-path>ext/grpc-api-1.68.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/grpc-api-1.44.1.jar</binary-origin> <binary-origin>release/modules/ext/grpc-api-1.68.1.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/grpc-auth-1.44.1.jar</runtime-relative-path> <runtime-relative-path>ext/grpc-auth-1.68.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/grpc-auth-1.44.1.jar</binary-origin> <binary-origin>release/modules/ext/grpc-auth-1.68.1.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/grpc-context-1.44.1.jar</runtime-relative-path> <runtime-relative-path>ext/grpc-context-1.68.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/grpc-context-1.44.1.jar</binary-origin> <binary-origin>release/modules/ext/grpc-context-1.68.1.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/grpc-core-1.44.1.jar</runtime-relative-path> <runtime-relative-path>ext/grpc-core-1.68.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/grpc-core-1.44.1.jar</binary-origin> <binary-origin>release/modules/ext/grpc-core-1.68.1.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/grpc-grpclb-1.44.1.jar</runtime-relative-path> <runtime-relative-path>ext/grpc-googleapis-1.68.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/grpc-grpclb-1.44.1.jar</binary-origin> <binary-origin>release/modules/ext/grpc-googleapis-1.68.1.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/grpc-netty-shaded-1.44.1.jar</runtime-relative-path> <runtime-relative-path>ext/grpc-grpclb-1.68.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/grpc-netty-shaded-1.44.1.jar</binary-origin> <binary-origin>release/modules/ext/grpc-grpclb-1.68.1.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/grpc-protobuf-1.44.1.jar</runtime-relative-path> <runtime-relative-path>ext/grpc-inprocess-1.68.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/grpc-protobuf-1.44.1.jar</binary-origin> <binary-origin>release/modules/ext/grpc-inprocess-1.68.1.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/grpc-protobuf-lite-1.44.1.jar</runtime-relative-path> <runtime-relative-path>ext/grpc-netty-shaded-1.68.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/grpc-protobuf-lite-1.44.1.jar</binary-origin> <binary-origin>release/modules/ext/grpc-netty-shaded-1.68.1.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/grpc-services-1.44.1.jar</runtime-relative-path> <runtime-relative-path>ext/grpc-protobuf-1.68.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/grpc-services-1.44.1.jar</binary-origin> <binary-origin>release/modules/ext/grpc-protobuf-1.68.1.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/grpc-stub-1.44.1.jar</runtime-relative-path> <runtime-relative-path>ext/grpc-protobuf-lite-1.68.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/grpc-stub-1.44.1.jar</binary-origin> <binary-origin>release/modules/ext/grpc-protobuf-lite-1.68.1.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/grpc-xds-1.44.1.jar</runtime-relative-path> <runtime-relative-path>ext/grpc-s2a-1.68.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/grpc-xds-1.44.1.jar</binary-origin> <binary-origin>release/modules/ext/grpc-s2a-1.68.1.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/gson-2.9.0.jar</runtime-relative-path> <runtime-relative-path>ext/grpc-services-1.68.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/gson-2.9.0.jar</binary-origin> <binary-origin>release/modules/ext/grpc-services-1.68.1.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/grpc-stub-1.68.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/grpc-stub-1.68.1.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/grpc-util-1.68.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/grpc-util-1.68.1.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/grpc-xds-1.68.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/grpc-xds-1.68.1.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/gson-2.11.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/gson-2.11.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/gst1-java-core-1.4.0.jar</runtime-relative-path> <runtime-relative-path>ext/gst1-java-core-1.4.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/gst1-java-core-1.4.0.jar</binary-origin> <binary-origin>release/modules/ext/gst1-java-core-1.4.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/guava-32.0.1-jre.jar</runtime-relative-path> <runtime-relative-path>ext/guava-33.4.0-jre.jar</runtime-relative-path>
<binary-origin>release/modules/ext/guava-32.0.1-jre.jar</binary-origin> <binary-origin>release/modules/ext/guava-33.4.0-jre.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/httpclient-4.5.13.jar</runtime-relative-path> <runtime-relative-path>ext/httpclient-4.5.14.jar</runtime-relative-path>
<binary-origin>release/modules/ext/httpclient-4.5.13.jar</binary-origin> <binary-origin>release/modules/ext/httpclient-4.5.14.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/httpcore-4.4.15.jar</runtime-relative-path> <runtime-relative-path>ext/httpcore-4.4.16.jar</runtime-relative-path>
<binary-origin>release/modules/ext/httpcore-4.4.15.jar</binary-origin> <binary-origin>release/modules/ext/httpcore-4.4.16.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/imageio-bmp-3.8.2.jar</runtime-relative-path> <runtime-relative-path>ext/imageio-bmp-3.12.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/imageio-bmp-3.8.2.jar</binary-origin> <binary-origin>release/modules/ext/imageio-bmp-3.12.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/imageio-core-3.8.2.jar</runtime-relative-path> <runtime-relative-path>ext/imageio-core-3.12.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/imageio-core-3.8.2.jar</binary-origin> <binary-origin>release/modules/ext/imageio-core-3.12.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/imageio-icns-3.8.2.jar</runtime-relative-path> <runtime-relative-path>ext/imageio-icns-3.12.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/imageio-icns-3.8.2.jar</binary-origin> <binary-origin>release/modules/ext/imageio-icns-3.12.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/imageio-iff-3.8.2.jar</runtime-relative-path> <runtime-relative-path>ext/imageio-iff-3.12.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/imageio-iff-3.8.2.jar</binary-origin> <binary-origin>release/modules/ext/imageio-iff-3.12.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/imageio-jpeg-3.8.2.jar</runtime-relative-path> <runtime-relative-path>ext/imageio-jpeg-3.12.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/imageio-jpeg-3.8.2.jar</binary-origin> <binary-origin>release/modules/ext/imageio-jpeg-3.12.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/imageio-metadata-3.8.2.jar</runtime-relative-path> <runtime-relative-path>ext/imageio-metadata-3.12.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/imageio-metadata-3.8.2.jar</binary-origin> <binary-origin>release/modules/ext/imageio-metadata-3.12.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/imageio-pcx-3.8.2.jar</runtime-relative-path> <runtime-relative-path>ext/imageio-pcx-3.12.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/imageio-pcx-3.8.2.jar</binary-origin> <binary-origin>release/modules/ext/imageio-pcx-3.12.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/imageio-pict-3.8.2.jar</runtime-relative-path> <runtime-relative-path>ext/imageio-pict-3.12.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/imageio-pict-3.8.2.jar</binary-origin> <binary-origin>release/modules/ext/imageio-pict-3.12.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/imageio-pnm-3.8.2.jar</runtime-relative-path> <runtime-relative-path>ext/imageio-pnm-3.12.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/imageio-pnm-3.8.2.jar</binary-origin> <binary-origin>release/modules/ext/imageio-pnm-3.12.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/imageio-psd-3.8.2.jar</runtime-relative-path> <runtime-relative-path>ext/imageio-psd-3.12.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/imageio-psd-3.8.2.jar</binary-origin> <binary-origin>release/modules/ext/imageio-psd-3.12.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/imageio-sgi-3.8.2.jar</runtime-relative-path> <runtime-relative-path>ext/imageio-sgi-3.12.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/imageio-sgi-3.8.2.jar</binary-origin> <binary-origin>release/modules/ext/imageio-sgi-3.12.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/imageio-tga-3.8.2.jar</runtime-relative-path> <runtime-relative-path>ext/imageio-tga-3.12.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/imageio-tga-3.8.2.jar</binary-origin> <binary-origin>release/modules/ext/imageio-tga-3.12.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/imageio-thumbsdb-3.8.2.jar</runtime-relative-path> <runtime-relative-path>ext/imageio-thumbsdb-3.12.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/imageio-thumbsdb-3.8.2.jar</binary-origin> <binary-origin>release/modules/ext/imageio-thumbsdb-3.12.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/imageio-tiff-3.8.2.jar</runtime-relative-path> <runtime-relative-path>ext/imageio-tiff-3.12.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/imageio-tiff-3.8.2.jar</binary-origin> <binary-origin>release/modules/ext/imageio-tiff-3.12.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/imgscalr-lib-4.2.jar</runtime-relative-path> <runtime-relative-path>ext/imgscalr-lib-4.2.jar</runtime-relative-path>
<binary-origin>release/modules/ext/imgscalr-lib-4.2.jar</binary-origin> <binary-origin>release/modules/ext/imgscalr-lib-4.2.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/j2objc-annotations-1.3.jar</runtime-relative-path> <runtime-relative-path>ext/j2objc-annotations-3.0.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/j2objc-annotations-1.3.jar</binary-origin> <binary-origin>release/modules/ext/j2objc-annotations-3.0.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/jackson-annotations-2.15.2.jar</runtime-relative-path> <runtime-relative-path>ext/jackson-annotations-2.18.2.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jackson-annotations-2.15.2.jar</binary-origin> <binary-origin>release/modules/ext/jackson-annotations-2.18.2.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/jackson-core-2.15.2.jar</runtime-relative-path> <runtime-relative-path>ext/jackson-core-2.18.2.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jackson-core-2.15.2.jar</binary-origin> <binary-origin>release/modules/ext/jackson-core-2.18.2.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/jackson-databind-2.15.2.jar</runtime-relative-path> <runtime-relative-path>ext/jackson-databind-2.18.2.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jackson-databind-2.15.2.jar</binary-origin> <binary-origin>release/modules/ext/jackson-databind-2.18.2.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/jackson-dataformat-csv-2.15.2.jar</runtime-relative-path> <runtime-relative-path>ext/jackson-dataformat-csv-2.18.2.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jackson-dataformat-csv-2.15.2.jar</binary-origin> <binary-origin>release/modules/ext/jackson-dataformat-csv-2.18.2.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/jackson-datatype-jsr310-2.15.2.jar</runtime-relative-path> <runtime-relative-path>ext/jackson-datatype-jsr310-2.18.2.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jackson-datatype-jsr310-2.15.2.jar</binary-origin> <binary-origin>release/modules/ext/jackson-datatype-jsr310-2.18.2.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/javafx-base-17.0.7-linux.jar</runtime-relative-path> <runtime-relative-path>ext/javafx-base-17.0.14-ea2-linux.jar</runtime-relative-path>
<binary-origin>release/modules/ext/javafx-base-17.0.7-linux.jar</binary-origin> <binary-origin>release/modules/ext/javafx-base-17.0.14-ea2-linux.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/javafx-base-17.0.7-mac.jar</runtime-relative-path> <runtime-relative-path>ext/javafx-base-17.0.14-ea2-mac.jar</runtime-relative-path>
<binary-origin>release/modules/ext/javafx-base-17.0.7-mac.jar</binary-origin> <binary-origin>release/modules/ext/javafx-base-17.0.14-ea2-mac.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/javafx-base-17.0.7-win.jar</runtime-relative-path> <runtime-relative-path>ext/javafx-base-17.0.14-ea2-win.jar</runtime-relative-path>
<binary-origin>release/modules/ext/javafx-base-17.0.7-win.jar</binary-origin> <binary-origin>release/modules/ext/javafx-base-17.0.14-ea2-win.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/javafx-base-17.0.7.jar</runtime-relative-path> <runtime-relative-path>ext/javafx-base-17.0.14-ea2.jar</runtime-relative-path>
<binary-origin>release/modules/ext/javafx-base-17.0.7.jar</binary-origin> <binary-origin>release/modules/ext/javafx-base-17.0.14-ea2.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/javafx-controls-17.0.7-linux.jar</runtime-relative-path> <runtime-relative-path>ext/javafx-controls-17.0.14-ea2-linux.jar</runtime-relative-path>
<binary-origin>release/modules/ext/javafx-controls-17.0.7-linux.jar</binary-origin> <binary-origin>release/modules/ext/javafx-controls-17.0.14-ea2-linux.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/javafx-controls-17.0.7-mac.jar</runtime-relative-path> <runtime-relative-path>ext/javafx-controls-17.0.14-ea2-mac.jar</runtime-relative-path>
<binary-origin>release/modules/ext/javafx-controls-17.0.7-mac.jar</binary-origin> <binary-origin>release/modules/ext/javafx-controls-17.0.14-ea2-mac.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/javafx-controls-17.0.7-win.jar</runtime-relative-path> <runtime-relative-path>ext/javafx-controls-17.0.14-ea2-win.jar</runtime-relative-path>
<binary-origin>release/modules/ext/javafx-controls-17.0.7-win.jar</binary-origin> <binary-origin>release/modules/ext/javafx-controls-17.0.14-ea2-win.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/javafx-controls-17.0.7.jar</runtime-relative-path> <runtime-relative-path>ext/javafx-controls-17.0.14-ea2.jar</runtime-relative-path>
<binary-origin>release/modules/ext/javafx-controls-17.0.7.jar</binary-origin> <binary-origin>release/modules/ext/javafx-controls-17.0.14-ea2.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/javafx-fxml-17.0.7-linux.jar</runtime-relative-path> <runtime-relative-path>ext/javafx-fxml-17.0.14-ea2-linux.jar</runtime-relative-path>
<binary-origin>release/modules/ext/javafx-fxml-17.0.7-linux.jar</binary-origin> <binary-origin>release/modules/ext/javafx-fxml-17.0.14-ea2-linux.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/javafx-fxml-17.0.7-mac.jar</runtime-relative-path> <runtime-relative-path>ext/javafx-fxml-17.0.14-ea2-mac.jar</runtime-relative-path>
<binary-origin>release/modules/ext/javafx-fxml-17.0.7-mac.jar</binary-origin> <binary-origin>release/modules/ext/javafx-fxml-17.0.14-ea2-mac.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/javafx-fxml-17.0.7-win.jar</runtime-relative-path> <runtime-relative-path>ext/javafx-fxml-17.0.14-ea2-win.jar</runtime-relative-path>
<binary-origin>release/modules/ext/javafx-fxml-17.0.7-win.jar</binary-origin> <binary-origin>release/modules/ext/javafx-fxml-17.0.14-ea2-win.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/javafx-fxml-17.0.7.jar</runtime-relative-path> <runtime-relative-path>ext/javafx-fxml-17.0.14-ea2.jar</runtime-relative-path>
<binary-origin>release/modules/ext/javafx-fxml-17.0.7.jar</binary-origin> <binary-origin>release/modules/ext/javafx-fxml-17.0.14-ea2.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/javafx-graphics-17.0.7-linux.jar</runtime-relative-path> <runtime-relative-path>ext/javafx-graphics-17.0.14-ea2-linux.jar</runtime-relative-path>
<binary-origin>release/modules/ext/javafx-graphics-17.0.7-linux.jar</binary-origin> <binary-origin>release/modules/ext/javafx-graphics-17.0.14-ea2-linux.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/javafx-graphics-17.0.7-mac.jar</runtime-relative-path> <runtime-relative-path>ext/javafx-graphics-17.0.14-ea2-mac.jar</runtime-relative-path>
<binary-origin>release/modules/ext/javafx-graphics-17.0.7-mac.jar</binary-origin> <binary-origin>release/modules/ext/javafx-graphics-17.0.14-ea2-mac.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/javafx-graphics-17.0.7-win.jar</runtime-relative-path> <runtime-relative-path>ext/javafx-graphics-17.0.14-ea2-win.jar</runtime-relative-path>
<binary-origin>release/modules/ext/javafx-graphics-17.0.7-win.jar</binary-origin> <binary-origin>release/modules/ext/javafx-graphics-17.0.14-ea2-win.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/javafx-graphics-17.0.7.jar</runtime-relative-path> <runtime-relative-path>ext/javafx-graphics-17.0.14-ea2.jar</runtime-relative-path>
<binary-origin>release/modules/ext/javafx-graphics-17.0.7.jar</binary-origin> <binary-origin>release/modules/ext/javafx-graphics-17.0.14-ea2.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/javafx-media-17.0.7-linux.jar</runtime-relative-path> <runtime-relative-path>ext/javafx-media-17.0.14-ea2-linux.jar</runtime-relative-path>
<binary-origin>release/modules/ext/javafx-media-17.0.7-linux.jar</binary-origin> <binary-origin>release/modules/ext/javafx-media-17.0.14-ea2-linux.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/javafx-media-17.0.7-mac.jar</runtime-relative-path> <runtime-relative-path>ext/javafx-media-17.0.14-ea2-mac.jar</runtime-relative-path>
<binary-origin>release/modules/ext/javafx-media-17.0.7-mac.jar</binary-origin> <binary-origin>release/modules/ext/javafx-media-17.0.14-ea2-mac.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/javafx-media-17.0.7-win.jar</runtime-relative-path> <runtime-relative-path>ext/javafx-media-17.0.14-ea2-win.jar</runtime-relative-path>
<binary-origin>release/modules/ext/javafx-media-17.0.7-win.jar</binary-origin> <binary-origin>release/modules/ext/javafx-media-17.0.14-ea2-win.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/javafx-media-17.0.7.jar</runtime-relative-path> <runtime-relative-path>ext/javafx-media-17.0.14-ea2.jar</runtime-relative-path>
<binary-origin>release/modules/ext/javafx-media-17.0.7.jar</binary-origin> <binary-origin>release/modules/ext/javafx-media-17.0.14-ea2.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/javafx-swing-17.0.7-linux.jar</runtime-relative-path> <runtime-relative-path>ext/javafx-swing-17.0.14-ea2-linux.jar</runtime-relative-path>
<binary-origin>release/modules/ext/javafx-swing-17.0.7-linux.jar</binary-origin> <binary-origin>release/modules/ext/javafx-swing-17.0.14-ea2-linux.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/javafx-swing-17.0.7-mac.jar</runtime-relative-path> <runtime-relative-path>ext/javafx-swing-17.0.14-ea2-mac.jar</runtime-relative-path>
<binary-origin>release/modules/ext/javafx-swing-17.0.7-mac.jar</binary-origin> <binary-origin>release/modules/ext/javafx-swing-17.0.14-ea2-mac.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/javafx-swing-17.0.7-win.jar</runtime-relative-path> <runtime-relative-path>ext/javafx-swing-17.0.14-ea2-win.jar</runtime-relative-path>
<binary-origin>release/modules/ext/javafx-swing-17.0.7-win.jar</binary-origin> <binary-origin>release/modules/ext/javafx-swing-17.0.14-ea2-win.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/javafx-swing-17.0.7.jar</runtime-relative-path> <runtime-relative-path>ext/javafx-swing-17.0.14-ea2.jar</runtime-relative-path>
<binary-origin>release/modules/ext/javafx-swing-17.0.7.jar</binary-origin> <binary-origin>release/modules/ext/javafx-swing-17.0.14-ea2.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/javafx-web-17.0.7-linux.jar</runtime-relative-path> <runtime-relative-path>ext/javafx-web-17.0.14-ea2-linux.jar</runtime-relative-path>
<binary-origin>release/modules/ext/javafx-web-17.0.7-linux.jar</binary-origin> <binary-origin>release/modules/ext/javafx-web-17.0.14-ea2-linux.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/javafx-web-17.0.7-mac.jar</runtime-relative-path> <runtime-relative-path>ext/javafx-web-17.0.14-ea2-mac.jar</runtime-relative-path>
<binary-origin>release/modules/ext/javafx-web-17.0.7-mac.jar</binary-origin> <binary-origin>release/modules/ext/javafx-web-17.0.14-ea2-mac.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/javafx-web-17.0.7-win.jar</runtime-relative-path> <runtime-relative-path>ext/javafx-web-17.0.14-ea2-win.jar</runtime-relative-path>
<binary-origin>release/modules/ext/javafx-web-17.0.7-win.jar</binary-origin> <binary-origin>release/modules/ext/javafx-web-17.0.14-ea2-win.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/javafx-web-17.0.7.jar</runtime-relative-path> <runtime-relative-path>ext/javafx-web-17.0.14-ea2.jar</runtime-relative-path>
<binary-origin>release/modules/ext/javafx-web-17.0.7.jar</binary-origin> <binary-origin>release/modules/ext/javafx-web-17.0.14-ea2.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/javax.annotation-api-1.3.2.jar</runtime-relative-path> <runtime-relative-path>ext/javax.annotation-api-1.3.2.jar</runtime-relative-path>
@ -1049,8 +1054,8 @@
<binary-origin>release/modules/ext/jna-platform-5.16.0.jar</binary-origin> <binary-origin>release/modules/ext/jna-platform-5.16.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/joda-time-2.10.14.jar</runtime-relative-path> <runtime-relative-path>ext/joda-time-2.13.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/joda-time-2.10.14.jar</binary-origin> <binary-origin>release/modules/ext/joda-time-2.13.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/jsr305-3.0.2.jar</runtime-relative-path> <runtime-relative-path>ext/jsr305-3.0.2.jar</runtime-relative-path>
@ -1065,76 +1070,72 @@
<binary-origin>release/modules/ext/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar</binary-origin> <binary-origin>release/modules/ext/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/log4j-api-2.17.2.jar</runtime-relative-path> <runtime-relative-path>ext/log4j-api-2.24.3.jar</runtime-relative-path>
<binary-origin>release/modules/ext/log4j-api-2.17.2.jar</binary-origin> <binary-origin>release/modules/ext/log4j-api-2.24.3.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/log4j-core-2.17.2.jar</runtime-relative-path> <runtime-relative-path>ext/log4j-core-2.24.3.jar</runtime-relative-path>
<binary-origin>release/modules/ext/log4j-core-2.17.2.jar</binary-origin> <binary-origin>release/modules/ext/log4j-core-2.24.3.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/opencensus-api-0.31.0.jar</runtime-relative-path> <runtime-relative-path>ext/opencensus-api-0.31.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/opencensus-api-0.31.0.jar</binary-origin> <binary-origin>release/modules/ext/opencensus-api-0.31.1.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/opencensus-contrib-http-util-0.31.0.jar</runtime-relative-path> <runtime-relative-path>ext/opencensus-contrib-http-util-0.31.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/opencensus-contrib-http-util-0.31.0.jar</binary-origin> <binary-origin>release/modules/ext/opencensus-contrib-http-util-0.31.1.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/opencensus-proto-0.2.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/opencensus-proto-0.2.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/opencv-2413.jar</runtime-relative-path> <runtime-relative-path>ext/opencv-2413.jar</runtime-relative-path>
<binary-origin>release/modules/ext/opencv-2413.jar</binary-origin> <binary-origin>release/modules/ext/opencv-2413.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/perfmark-api-0.23.0.jar</runtime-relative-path> <runtime-relative-path>ext/perfmark-api-0.27.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/perfmark-api-0.23.0.jar</binary-origin> <binary-origin>release/modules/ext/perfmark-api-0.27.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/proto-google-cloud-translate-v3-2.1.11.jar</runtime-relative-path> <runtime-relative-path>ext/proto-google-cloud-translate-v3-2.54.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/proto-google-cloud-translate-v3-2.1.11.jar</binary-origin> <binary-origin>release/modules/ext/proto-google-cloud-translate-v3-2.54.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/proto-google-cloud-translate-v3beta1-0.83.11.jar</runtime-relative-path> <runtime-relative-path>ext/proto-google-cloud-translate-v3beta1-0.136.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/proto-google-cloud-translate-v3beta1-0.83.11.jar</binary-origin> <binary-origin>release/modules/ext/proto-google-cloud-translate-v3beta1-0.136.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/proto-google-common-protos-2.7.4.jar</runtime-relative-path> <runtime-relative-path>ext/proto-google-common-protos-2.49.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/proto-google-common-protos-2.7.4.jar</binary-origin> <binary-origin>release/modules/ext/proto-google-common-protos-2.49.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/proto-google-iam-v1-1.2.6.jar</runtime-relative-path> <runtime-relative-path>ext/proto-google-iam-v1-1.44.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/proto-google-iam-v1-1.2.6.jar</binary-origin> <binary-origin>release/modules/ext/proto-google-iam-v1-1.44.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/protobuf-java-3.19.4.jar</runtime-relative-path> <runtime-relative-path>ext/protobuf-java-3.25.5.jar</runtime-relative-path>
<binary-origin>release/modules/ext/protobuf-java-3.19.4.jar</binary-origin> <binary-origin>release/modules/ext/protobuf-java-3.25.5.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/protobuf-java-util-3.19.4.jar</runtime-relative-path> <runtime-relative-path>ext/protobuf-java-util-3.25.5.jar</runtime-relative-path>
<binary-origin>release/modules/ext/protobuf-java-util-3.19.4.jar</binary-origin> <binary-origin>release/modules/ext/protobuf-java-util-3.25.5.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/re2j-1.5.jar</runtime-relative-path> <runtime-relative-path>ext/re2j-1.7.jar</runtime-relative-path>
<binary-origin>release/modules/ext/re2j-1.5.jar</binary-origin> <binary-origin>release/modules/ext/re2j-1.7.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/reload4j-1.2.19.jar</runtime-relative-path> <runtime-relative-path>ext/reload4j-1.2.22.jar</runtime-relative-path>
<binary-origin>release/modules/ext/reload4j-1.2.19.jar</binary-origin> <binary-origin>release/modules/ext/reload4j-1.2.22.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/slf4j-api-1.7.36.jar</runtime-relative-path> <runtime-relative-path>ext/slf4j-api-2.0.16.jar</runtime-relative-path>
<binary-origin>release/modules/ext/slf4j-api-1.7.36.jar</binary-origin> <binary-origin>release/modules/ext/slf4j-api-2.0.16.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/slf4j-reload4j-1.7.36.jar</runtime-relative-path> <runtime-relative-path>ext/slf4j-reload4j-2.0.16.jar</runtime-relative-path>
<binary-origin>release/modules/ext/slf4j-reload4j-1.7.36.jar</binary-origin> <binary-origin>release/modules/ext/slf4j-reload4j-2.0.16.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/threetenbp-1.5.2.jar</runtime-relative-path> <runtime-relative-path>ext/threetenbp-1.7.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/threetenbp-1.5.2.jar</binary-origin> <binary-origin>release/modules/ext/threetenbp-1.7.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/webp-imageio-sejda-0.1.0.jar</runtime-relative-path> <runtime-relative-path>ext/webp-imageio-sejda-0.1.0.jar</runtime-relative-path>

View File

@ -5,9 +5,12 @@
</configurations> </configurations>
<dependencies > <dependencies >
<dependency conf="coretestlibs->default" org="org.mockito" name="mockito-core" rev="4.8.1"/> <dependency conf="coretestlibs->default" org="org.mockito" name="mockito-core" rev="4.8.1"/>
<dependency conf="coretestlibs->default" org="net.bytebuddy" name="byte-buddy" rev="1.12.18"/> <dependency conf="coretestlibs->default" org="net.bytebuddy" name="byte-buddy" rev="1.15.11"/>
<dependency conf="coretestlibs->default" org="net.bytebuddy" name="byte-buddy-agent" rev="1.12.18"/> <dependency conf="coretestlibs->default" org="net.bytebuddy" name="byte-buddy-agent" rev="1.15.11"/>
<dependency conf="coretestlibs->default" org="org.objenesis" name="objenesis" rev="3.3"/> <dependency conf="coretestlibs->default" org="org.objenesis" name="objenesis" rev="3.4"/>
<dependency conf="coretestlibs->default" org="junit" name="junit" rev="4.13.2"/> <dependency conf="coretestlibs->default" org="junit" name="junit" rev="4.13.2"/>
<exclude org="*" ext="*" type="javadoc"/>
</dependencies> </dependencies>
</ivy-module> </ivy-module>

View File

@ -1,8 +1,8 @@
file.reference.byte-buddy-1.10.13.jar=release/modules/ext/byte-buddy-1.10.13.jar file.reference.byte-buddy-1.15.11.jar=release/modules/ext/byte-buddy-1.15.11.jar
file.reference.byte-buddy-agent-1.10.13.jar=release/modules/ext/byte-buddy-agent-1.10.13.jar file.reference.byte-buddy-agent-1.15.11.jar=release/modules/ext/byte-buddy-agent-1.15.11.jar
file.reference.hamcrest-core-1.3.jar=release/modules/ext/hamcrest-core-1.3.jar file.reference.hamcrest-core-1.3.jar=release/modules/ext/hamcrest-core-1.3.jar
file.reference.junit-4.13.2.jar=release/modules/ext/junit-4.13.2.jar file.reference.junit-4.13.2.jar=release/modules/ext/junit-4.13.2.jar
file.reference.mockito-core-4.8.1.jar=release/modules/ext/mockito-core-4.8.1.jar file.reference.mockito-core-4.8.1.jar=release/modules/ext/mockito-core-4.8.1.jar
file.reference.objenesis-3.1.jar=release/modules/ext/objenesis-3.1.jar file.reference.objenesis-3.4.jar=release/modules/ext/objenesis-3.4.jar
javac.source=11 javac.compilerargs=-Xlint -Xlint\:-serial
javac.compilerargs=-Xlint -Xlint:-serial javac.source=17

View File

@ -44,12 +44,12 @@
<package>org.junit.validator</package> <package>org.junit.validator</package>
</public-packages> </public-packages>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/byte-buddy-1.12.18.jar</runtime-relative-path> <runtime-relative-path>ext/byte-buddy-1.15.11.jar</runtime-relative-path>
<binary-origin>release/modules/ext/byte-buddy-1.12.18.jar</binary-origin> <binary-origin>release/modules/ext/byte-buddy-1.15.11.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/byte-buddy-agent-1.12.18.jar</runtime-relative-path> <runtime-relative-path>ext/byte-buddy-agent-1.15.11.jar</runtime-relative-path>
<binary-origin>release/modules/ext/byte-buddy-agent-1.12.18.jar</binary-origin> <binary-origin>release/modules/ext/byte-buddy-agent-1.15.11.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/hamcrest-core-1.3.jar</runtime-relative-path> <runtime-relative-path>ext/hamcrest-core-1.3.jar</runtime-relative-path>
@ -64,8 +64,8 @@
<binary-origin>release/modules/ext/mockito-core-4.8.1.jar</binary-origin> <binary-origin>release/modules/ext/mockito-core-4.8.1.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/objenesis-3.3.jar</runtime-relative-path> <runtime-relative-path>ext/objenesis-3.4.jar</runtime-relative-path>
<binary-origin>release/modules/ext/objenesis-3.3.jar</binary-origin> <binary-origin>release/modules/ext/objenesis-3.4.jar</binary-origin>
</class-path-extension> </class-path-extension>
</data> </data>
</configuration> </configuration>

View File

@ -1,4 +1,4 @@
file.reference.jtidy-r938.jar=release/modules/ext/jtidy-r938.jar file.reference.jtidy-r938.jar=release/modules/ext/jtidy-r938.jar
javac.compilerargs=-Xlint -Xlint\:-serial
javac.source=17 javac.source=17
javac.compilerargs=-Xlint -Xlint:-serial
spec.version.base=1.0 spec.version.base=1.0

View File

@ -19,7 +19,7 @@
package org.sleuthkit.autopsy.experimental.autoingest; package org.sleuthkit.autopsy.experimental.autoingest;
import java.awt.Cursor; import java.awt.Cursor;
import java.awt.Desktop; import org.sleuthkit.autopsy.coreutils.Desktop;
import java.awt.EventQueue; import java.awt.EventQueue;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.io.IOException; import java.io.IOException;

View File

@ -20,7 +20,7 @@ package org.sleuthkit.autopsy.experimental.autoingest;
import com.google.common.util.concurrent.ThreadFactoryBuilder; import com.google.common.util.concurrent.ThreadFactoryBuilder;
import java.awt.Cursor; import java.awt.Cursor;
import java.awt.Desktop; import org.sleuthkit.autopsy.coreutils.Desktop;
import java.awt.EventQueue; import java.awt.EventQueue;
import java.io.IOException; import java.io.IOException;
import java.nio.file.Path; import java.nio.file.Path;

View File

@ -106,6 +106,12 @@ final class AutoIngestJob implements Comparable<AutoIngestJob>, IngestProgressSn
*/ */
private boolean ocrEnabled; private boolean ocrEnabled;
/**
* Version 5 fields
*/
@GuardedBy("this")
private String password;
/** /**
* Constructs a new automated ingest job. All job state not specified in the * Constructs a new automated ingest job. All job state not specified in the
* job manifest is set to the default state for a new job. * job manifest is set to the default state for a new job.
@ -166,7 +172,7 @@ final class AutoIngestJob implements Comparable<AutoIngestJob>, IngestProgressSn
/* /*
* Version 0 fields. * Version 0 fields.
*/ */
this.manifest = new Manifest(nodeData.getManifestFilePath(), nodeData.getManifestFileDate(), nodeData.getCaseName(), nodeData.getDeviceId(), nodeData.getDataSourcePath(), Collections.emptyMap()); this.manifest = new Manifest(nodeData.getManifestFilePath(), nodeData.getManifestFileDate(), nodeData.getCaseName(), nodeData.getDeviceId(), nodeData.getDataSourcePath(), nodeData.getPassword(), Collections.emptyMap());
this.nodeName = nodeData.getProcessingHostName(); this.nodeName = nodeData.getProcessingHostName();
this.caseDirectoryPath = nodeData.getCaseDirectoryPath().toString(); this.caseDirectoryPath = nodeData.getCaseDirectoryPath().toString();
this.priority = nodeData.getPriority(); this.priority = nodeData.getPriority();
@ -204,6 +210,11 @@ final class AutoIngestJob implements Comparable<AutoIngestJob>, IngestProgressSn
*/ */
this.ocrEnabled = nodeData.getOcrEnabled(); this.ocrEnabled = nodeData.getOcrEnabled();
/**
* Version 5 fields
*/
this.password = nodeData.getPassword();
} catch (Exception ex) { } catch (Exception ex) {
throw new AutoIngestJobException(String.format("Error creating automated ingest job"), ex); throw new AutoIngestJobException(String.format("Error creating automated ingest job"), ex);
} }
@ -282,6 +293,21 @@ final class AutoIngestJob implements Comparable<AutoIngestJob>, IngestProgressSn
this.ocrEnabled = enabled; this.ocrEnabled = enabled;
} }
/**
* @return The password to decrypt the image.
*/
synchronized String getPassword() {
return password;
}
/**
* @param password The password to decrypt the image.
*/
synchronized void setPassword(String password) {
this.password = password;
}
/** /**
* Sets the processing stage of the job. The start date/time for the stage * Sets the processing stage of the job. The start date/time for the stage
* is set when the stage is set. * is set when the stage is set.

View File

@ -24,6 +24,7 @@ import java.nio.file.Path;
import java.nio.file.Paths; import java.nio.file.Paths;
import java.util.Date; import java.util.Date;
import javax.lang.model.type.TypeKind; import javax.lang.model.type.TypeKind;
import org.apache.commons.lang3.StringUtils;
/** /**
* An object that converts auto ingest job data for an auto ingest job * An object that converts auto ingest job data for an auto ingest job
@ -31,7 +32,7 @@ import javax.lang.model.type.TypeKind;
*/ */
final class AutoIngestJobNodeData { final class AutoIngestJobNodeData {
private static final int CURRENT_VERSION = 3; private static final int CURRENT_VERSION = 4;
private static final int DEFAULT_PRIORITY = 0; private static final int DEFAULT_PRIORITY = 0;
/* /*
@ -84,6 +85,12 @@ final class AutoIngestJobNodeData {
*/ */
private boolean ocrEnabled; private boolean ocrEnabled;
/**
* Version 4 fields.
*/
private String password; // password to decrypt the image
/** /**
* Gets the current version of the auto ingest job coordination service node * Gets the current version of the auto ingest job coordination service node
* data. * data.
@ -121,6 +128,7 @@ final class AutoIngestJobNodeData {
setProcessingStageDetails(job.getProcessingStageDetails()); setProcessingStageDetails(job.getProcessingStageDetails());
setDataSourceSize(job.getDataSourceSize()); setDataSourceSize(job.getDataSourceSize());
setOcrEnabled(job.getOcrEnabled()); setOcrEnabled(job.getOcrEnabled());
setPassword(manifest.getPassword());
} }
/** /**
@ -157,6 +165,7 @@ final class AutoIngestJobNodeData {
this.processingStageDetailsStartDate = 0L; this.processingStageDetailsStartDate = 0L;
this.dataSourceSize = 0L; this.dataSourceSize = 0L;
this.ocrEnabled = false; this.ocrEnabled = false;
this.password = "";
/* /*
* Get fields from node data. * Get fields from node data.
@ -208,6 +217,13 @@ final class AutoIngestJobNodeData {
this.ocrEnabled = (1 == ocrFlag); this.ocrEnabled = (1 == ocrFlag);
} }
if (buffer.hasRemaining()) {
/*
* Get version 4 fields.
*/
setPassword(getStringFromBuffer(buffer, TypeKind.SHORT));
}
} catch (BufferUnderflowException ex) { } catch (BufferUnderflowException ex) {
throw new InvalidDataException("Node data is incomplete", ex); throw new InvalidDataException("Node data is incomplete", ex);
} }
@ -471,6 +487,22 @@ final class AutoIngestJobNodeData {
} }
} }
/**
* @return The password to decrypt the image. Empty indicates no password.
*/
public String getPassword() {
return password;
}
/**
* @param password The password to decrypt the image.
*/
public void setPassword(String password) {
this.password = StringUtils.defaultString(password);
}
/** /**
* Get the processing stage of the job. * Get the processing stage of the job.
* *
@ -604,6 +636,10 @@ final class AutoIngestJobNodeData {
if (this.version >= 3) { if (this.version >= 3) {
buffer.putInt(this.ocrEnabled ? 1 : 0); buffer.putInt(this.ocrEnabled ? 1 : 0);
} }
if (this.version >= 4) {
putStringIntoBuffer(this.password, buffer, TypeKind.SHORT);
}
} }
// Prepare the array // Prepare the array

View File

@ -2573,7 +2573,8 @@ final class AutoIngestManager extends Observable implements PropertyChangeListen
return null; return null;
} }
String deviceId = manifest.getDeviceId(); String deviceId = manifest.getDeviceId();
return new AutoIngestDataSource(deviceId, dataSourcePath); String password = manifest.getPassword();
return new AutoIngestDataSource(deviceId, dataSourcePath, password);
} }
/** /**
@ -2603,7 +2604,7 @@ final class AutoIngestManager extends Observable implements PropertyChangeListen
// Get an ordered list of data source processors to try // Get an ordered list of data source processors to try
List<AutoIngestDataSourceProcessor> validDataSourceProcessors; List<AutoIngestDataSourceProcessor> validDataSourceProcessors;
try { try {
validDataSourceProcessors = DataSourceProcessorUtility.getOrderedListOfDataSourceProcessors(dataSource.getPath()); validDataSourceProcessors = DataSourceProcessorUtility.getOrderedListOfDataSourceProcessors(dataSource.getPath(), dataSource.getPassword());
} catch (AutoIngestDataSourceProcessor.AutoIngestDataSourceProcessorException ex) { } catch (AutoIngestDataSourceProcessor.AutoIngestDataSourceProcessorException ex) {
sysLogger.log(Level.SEVERE, "Exception while determining best data source processor for {0}", dataSource.getPath()); sysLogger.log(Level.SEVERE, "Exception while determining best data source processor for {0}", dataSource.getPath());
// rethrow the exception. It will get caught & handled upstream and will result in AIM auto-pause. // rethrow the exception. It will get caught & handled upstream and will result in AIM auto-pause.
@ -2641,7 +2642,7 @@ final class AutoIngestManager extends Observable implements PropertyChangeListen
jobLogger.logIngestJobSettingsErrors(); jobLogger.logIngestJobSettingsErrors();
throw new AutoIngestDataSourceProcessor.AutoIngestDataSourceProcessorException("Error(s) in ingest job settings for " + manifestPath); throw new AutoIngestDataSourceProcessor.AutoIngestDataSourceProcessorException("Error(s) in ingest job settings for " + manifestPath);
} }
currentIngestStream = selectedProcessor.processWithIngestStream(dataSource.getDeviceId(), dataSource.getPath(), ingestJobSettings, progressMonitor, callBack); currentIngestStream = selectedProcessor.processWithIngestStream(dataSource.getDeviceId(), dataSource.getPath(), dataSource.getPassword(), null, ingestJobSettings, progressMonitor, callBack);
if (currentIngestStream == null) { if (currentIngestStream == null) {
// Either there was a failure to add the data source object to the database or the ingest settings were bad. // Either there was a failure to add the data source object to the database or the ingest settings were bad.
// An error in the ingest settings is the more likely scenario. // An error in the ingest settings is the more likely scenario.
@ -2651,7 +2652,7 @@ final class AutoIngestManager extends Observable implements PropertyChangeListen
throw new AutoIngestDataSourceProcessor.AutoIngestDataSourceProcessorException("Error initializing processing for " + manifestPath + ", probably due to an ingest settings error"); throw new AutoIngestDataSourceProcessor.AutoIngestDataSourceProcessorException("Error initializing processing for " + manifestPath + ", probably due to an ingest settings error");
} }
} else { } else {
selectedProcessor.process(dataSource.getDeviceId(), dataSource.getPath(), progressMonitor, callBack); selectedProcessor.process(dataSource.getDeviceId(), dataSource.getPath(), dataSource.getPassword(), null, progressMonitor, callBack);
} }
ingestLock.wait(); ingestLock.wait();

View File

@ -19,7 +19,7 @@
package org.sleuthkit.autopsy.experimental.autoingest; package org.sleuthkit.autopsy.experimental.autoingest;
import com.google.common.util.concurrent.ThreadFactoryBuilder; import com.google.common.util.concurrent.ThreadFactoryBuilder;
import java.awt.Desktop; import org.sleuthkit.autopsy.coreutils.Desktop;
import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener; import java.beans.PropertyChangeListener;
import java.io.BufferedWriter; import java.io.BufferedWriter;

View File

@ -45,6 +45,7 @@ public final class AutopsyManifestFileParser implements ManifestFileParser {
private static final String MANIFEST_FILE_NAME_SIGNATURE = "_MANIFEST.XML"; private static final String MANIFEST_FILE_NAME_SIGNATURE = "_MANIFEST.XML";
private static final String ROOT_ELEM_TAG_NAME = "AutopsyManifest"; private static final String ROOT_ELEM_TAG_NAME = "AutopsyManifest";
private static final String CASE_NAME_XPATH = "/AutopsyManifest/CaseName/text()"; private static final String CASE_NAME_XPATH = "/AutopsyManifest/CaseName/text()";
private static final String PASSWORD_XPATH = "/AutopsyManifest/Password/text()";
private static final String DEVICE_ID_XPATH = "/AutopsyManifest/DeviceId/text()"; private static final String DEVICE_ID_XPATH = "/AutopsyManifest/DeviceId/text()";
private static final String DATA_SOURCE_NAME_XPATH = "/AutopsyManifest/DataSource/text()"; private static final String DATA_SOURCE_NAME_XPATH = "/AutopsyManifest/DataSource/text()";
private static final Logger logger = Logger.getLogger(AutopsyManifestFileParser.class.getName()); private static final Logger logger = Logger.getLogger(AutopsyManifestFileParser.class.getName());
@ -102,7 +103,10 @@ public final class AutopsyManifestFileParser implements ManifestFileParser {
} }
Path dataSourcePath = filePath.getParent().resolve(dataSourceName); Path dataSourcePath = filePath.getParent().resolve(dataSourceName);
return new Manifest(filePath, dateFileCreated, caseName, deviceId, dataSourcePath, new HashMap<>()); expr = xpath.compile(PASSWORD_XPATH);
String password = (String) expr.evaluate(doc, XPathConstants.STRING);
return new Manifest(filePath, dateFileCreated, caseName, deviceId, dataSourcePath, password, new HashMap<>());
} catch (Exception ex) { } catch (Exception ex) {
throw new ManifestFileParserException(String.format("Error parsing manifest %s", filePath), ex); throw new ManifestFileParserException(String.format("Error parsing manifest %s", filePath), ex);
} finally { } finally {

View File

@ -19,7 +19,7 @@
package org.sleuthkit.autopsy.experimental.autoingest; package org.sleuthkit.autopsy.experimental.autoingest;
import java.awt.Color; import java.awt.Color;
import java.awt.Desktop; import org.sleuthkit.autopsy.coreutils.Desktop;
import java.awt.EventQueue; import java.awt.EventQueue;
import java.awt.Font; import java.awt.Font;
import java.io.File; import java.io.File;

View File

@ -42,9 +42,14 @@ public final class Manifest implements Serializable {
private final String caseName; private final String caseName;
private final String deviceId; private final String deviceId;
private final String dataSourceFileName; private final String dataSourceFileName;
private final String password;
private final Map<String, String> manifestProperties; private final Map<String, String> manifestProperties;
public Manifest(Path manifestFilePath, Date dateFileCreated, String caseName, String deviceId, Path dataSourcePath, Map<String, String> manifestProperties) { public Manifest(Path manifestFilePath, Date dateFileCreated, String caseName, String deviceId, Path dataSourcePath, Map<String, String> manifestProperties) {
this(manifestFilePath, dateFileCreated, caseName, deviceId, dataSourcePath, null, manifestProperties);
}
public Manifest(Path manifestFilePath, Date dateFileCreated, String caseName, String deviceId, Path dataSourcePath, String password, Map<String, String> manifestProperties) {
this.filePathString = manifestFilePath.toString(); this.filePathString = manifestFilePath.toString();
this.filePath = Paths.get(filePathString); this.filePath = Paths.get(filePathString);
@ -60,6 +65,7 @@ public final class Manifest implements Serializable {
this.dataSourcePath = Paths.get(""); this.dataSourcePath = Paths.get("");
dataSourceFileName = ""; dataSourceFileName = "";
} }
this.password = password;
this.manifestProperties = new HashMap<>(manifestProperties); this.manifestProperties = new HashMap<>(manifestProperties);
} }
@ -91,6 +97,13 @@ public final class Manifest implements Serializable {
return dataSourcePath; return dataSourcePath;
} }
/**
* @return The password to decrypt the data source (may be null).
*/
public String getPassword() {
return password;
}
public String getDataSourceFileName() { public String getDataSourceFileName() {
return dataSourceFileName; return dataSourceFileName;
} }

View File

@ -18,7 +18,7 @@
*/ */
package org.sleuthkit.autopsy.experimental.autoingest; package org.sleuthkit.autopsy.experimental.autoingest;
import java.awt.Desktop; import org.sleuthkit.autopsy.coreutils.Desktop;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.io.IOException; import java.io.IOException;
import java.nio.file.Path; import java.nio.file.Path;

View File

@ -17,45 +17,53 @@
<!-- Solr --> <!-- Solr -->
<dependency conf="solr-war->default" org="org.apache.solr" name="solr" rev="4.10.4" transitive="false" /> <!-- the war file for embedded Solr 4 --> <dependency conf="solr-war->default" org="org.apache.solr" name="solr" rev="4.10.4" transitive="false" /> <!-- the war file for embedded Solr 4 -->
<dependency conf="solr-libs->default" name="solr-cell" rev="8.11.2" org="org.apache.solr"/> <dependency conf="solr-libs->default" org="org.apache.solr" name="solr-cell" rev="${solr.version}"/>
<!-- https://mvnrepository.com/artifact/org.apache.lucene/lucene-core --> <!-- https://mvnrepository.com/artifact/org.apache.lucene/lucene-core -->
<dependency conf="autopsy->default" org="org.apache.lucene" name="lucene-core" rev="8.11.2"/> <dependency conf="autopsy->default" org="org.apache.lucene" name="lucene-core" rev="${solr.version}"/>
<!-- Autopsy --> <!-- Autopsy -->
<dependency conf="autopsy->default" org="org.apache.solr" name="solr-solrj" rev="8.11.2"/> <dependency conf="autopsy->default" org="org.apache.solr" name="solr-solrj" rev="${solr.version}"/>
<dependency conf="autopsy->default" org="com.optimaize.languagedetector" name="language-detector" rev="0.6"/> <dependency conf="autopsy->default" org="com.optimaize.languagedetector" name="language-detector" rev="0.6"/>
<!-- <dependency conf="autopsy->default" org="org.apache.cxf" name="cxf-rt-rs-client" rev="3.5.1"/> --> <!-- <dependency conf="autopsy->default" org="org.apache.cxf" name="cxf-rt-rs-client" rev="3.5.1"/> -->
<!-- <dependency conf="autopsy->default" org="org.cleartk" name="cleartk-ml" rev="2.0.0"/> --> <!-- <dependency conf="autopsy->default" org="org.cleartk" name="cleartk-ml" rev="2.0.0"/> -->
<!-- icu4j for pdfbox bidirectional text support, needs to be defined explicitely (it is optional) --> <!-- icu4j for pdfbox bidirectional text support, needs to be defined explicitely (it is optional) -->
<dependency conf="autopsy->default" org="com.ibm.icu" name="icu4j" rev="70.1"/> <dependency conf="autopsy->default" org="com.ibm.icu" name="icu4j" rev="76.1"/>
<dependency conf="autopsy->default" org="junit" name="junit" rev="4.13.2"/> <dependency conf="autopsy->default" org="junit" name="junit" rev="4.13.2"/>
<dependency conf="autopsy->default" org="org.eclipse.jetty.http2" name="http2-client" rev="${http2-client.version}"/>
<!-- Jetty --> <!-- Jetty -->
<dependency conf="start-solr->default" org="org.eclipse.jetty" name="jetty-start" rev="11.0.15"/> <dependency conf="start-solr->default" org="org.eclipse.jetty" name="jetty-start" rev="${jetty.version}"/>
<dependency conf="jetty-libs->default" org="org.eclipse.jetty" name="jetty-server" rev="11.0.15"/> <dependency conf="jetty-libs->default" org="org.eclipse.jetty" name="jetty-server" rev="${jetty.version}"/>
<dependency conf="jetty-libs->default" org="org.eclipse.jetty" name="jetty-deploy" rev="11.0.15"/> <dependency conf="jetty-libs->default" org="org.eclipse.jetty" name="jetty-deploy" rev="${jetty.version}"/>
<dependency conf="servlet->default" org="org.eclipse.jetty.orbit" name="javax.servlet" rev="3.0.0.v201112011016"/> <dependency conf="servlet->default" org="jakarta.servlet" name="jakarta.servlet-api" rev="6.1.0"/>
<!-- logging --> <!-- logging -->
<dependency conf="slf4j-libs->default" org="org.slf4j" name="slf4j-log4j12" rev="1.7.36"/> <dependency conf="slf4j-libs->default" org="org.slf4j" name="slf4j-log4j12" rev="${slf4j.version}"/>
<dependency conf="slf4j-libs->default" org="org.slf4j" name="jcl-over-slf4j" rev="1.7.36"/> <dependency conf="slf4j-libs->default" org="org.slf4j" name="jcl-over-slf4j" rev="${slf4j.version}"/>
<dependency conf="slf4j-libs->default" org="org.slf4j" name="jul-to-slf4j" rev="1.7.36"/> <dependency conf="slf4j-libs->default" org="org.slf4j" name="jul-to-slf4j" rev="${slf4j.version}"/>
<exclude org="*" ext="*" type="javadoc"/> <exclude org="" ext="*" type="javadoc"/>
<override org="commons-io" module="commons-io" rev="2.18.0"/>
<override org="com.google.guava" module="guava" rev="33.4.0-jre"/>
<override org="org.apache.logging.log4j" module="log4j-api" rev="2.17.2"/> <override org="org.apache.logging.log4j" module="log4j-api" rev="${log4j.version}"/>
<override org="org.apache.logging.log4j" module="log4j-core" rev="2.17.2"/> <override org="org.apache.logging.log4j" module="log4j-core" rev="${log4j.version}"/>
<override org="org.apache.logging.log4j" module="log4j-1.2-api" rev="2.17.2"/> <override org="org.apache.logging.log4j" module="log4j-1.2-api" rev="${log4j.version}"/>
<override org="org.apache.logging.log4j" module="log4j-layout-template-json" rev="2.17.2"/> <override org="org.apache.logging.log4j" module="log4j-layout-template-json" rev="${log4j.version}"/>
<override org="org.apache.logging.log4j" module="log4j-slf4j-impl" rev="2.17.2"/> <override org="org.apache.logging.log4j" module="log4j-slf4j-impl" rev="${log4j.version}"/>
<override org="org.apache.logging.log4j" module="log4j-web" rev="2.17.2"/> <override org="org.apache.logging.log4j" module="log4j-web" rev="${log4j.version}"/>
<override org="org.slf4j" module="slf4j-api" rev="1.7.36"/> <override org="org.eclipse.jetty.http2" module="http2-client" rev="${http2-client.version}"/>
<override org="org.apache.zookeeper" module="zookeeper" rev="3.8.0"/> <override org="org.xerial.snappy" module="snappy-java" rev="1.1.10.7"/>
<override org="org.apache.zookeeper" module="zookeeper-jute" rev="3.8.0"/>
<override org="com.google.code.gson" module="gson" rev="2.9.0"/> <override org="io.netty" module="netty-transport" rev="${netty.version}"/>
<override org="com.google.guava" module="guava" rev="31.1-jre"/> <override org="io.netty" module="netty-common" rev="${netty.version}"/>
<override org="joda-time" module="joda-time" rev="2.10.14" /> <override org="io.netty" module="netty-transport-native-epoll" rev="${netty.version}"/>
<override org="io.netty" module="netty-transport-classes-epoll" rev="${netty.version}"/>
<override org="org.apache.zookeeper" module="zookeeper" rev="${zookeeper.version}"/>
<override org="org.apache.zookeeper" module="zookeeper-jute" rev="${zookeeper.version}"/>
</dependencies> </dependencies>
</ivy-module> </ivy-module>

View File

@ -1,4 +1,12 @@
<ivysettings> <ivysettings>
<property name="http2-client.version" value="11.0.24"/>
<property name="jetty.version" value="12.0.16"/>
<property name="log4j.version" value="2.24.3"/>
<property name="netty.version" value="4.1.116.Final"/>
<property name="slf4j.version" value="2.0.16"/>
<property name="solr.version" value="8.11.4"/>
<property name="zookeeper.version" value="3.9.3"/>
<settings defaultResolver="main"/> <settings defaultResolver="main"/>
<resolvers> <resolvers>
<chain name="main"> <chain name="main">

View File

@ -1,51 +1,55 @@
file.reference.annotations-12.0.jar=release/modules/ext/annotations-12.0.jar file.reference.annotations-12.0.jar=release/modules/ext/annotations-12.0.jar
file.reference.commons-io-2.8.0.jar=release/modules/ext/commons-io-2.8.0.jar file.reference.checker-qual-3.43.0.jar=release/modules/ext/checker-qual-3.43.0.jar
file.reference.commons-io-2.18.0.jar=release/modules/ext/commons-io-2.18.0.jar
file.reference.commons-lang-2.6.jar=release/modules/ext/commons-lang-2.6.jar file.reference.commons-lang-2.6.jar=release/modules/ext/commons-lang-2.6.jar
file.reference.commons-math3-3.6.1.jar=release/modules/ext/commons-math3-3.6.1.jar file.reference.commons-math3-3.6.1.jar=release/modules/ext/commons-math3-3.6.1.jar
file.reference.guava-31.1-jre.jar=release/modules/ext/guava-31.1-jre.jar file.reference.error_prone_annotations-2.36.0.jar=release/modules/ext/error_prone_annotations-2.36.0.jar
file.reference.failureaccess-1.0.2.jar=release/modules/ext/failureaccess-1.0.2.jar
file.reference.guava-33.4.0-jre.jar=release/modules/ext/guava-33.4.0-jre.jar
file.reference.hamcrest-core-1.3.jar=release/modules/ext/hamcrest-core-1.3.jar file.reference.hamcrest-core-1.3.jar=release/modules/ext/hamcrest-core-1.3.jar
file.reference.http2-client-9.4.44.v20210927.jar=release/modules/ext/http2-client-9.4.44.v20210927.jar file.reference.http2-client-11.0.24.jar=release/modules/ext/http2-client-11.0.24.jar
file.reference.http2-common-9.4.44.v20210927.jar=release/modules/ext/http2-common-9.4.44.v20210927.jar file.reference.http2-common-9.4.53.v20231009.jar=release/modules/ext/http2-common-9.4.53.v20231009.jar
file.reference.http2-hpack-9.4.44.v20210927.jar=release/modules/ext/http2-hpack-9.4.44.v20210927.jar file.reference.http2-hpack-9.4.53.v20231009.jar=release/modules/ext/http2-hpack-9.4.53.v20231009.jar
file.reference.http2-http-client-transport-9.4.44.v20210927.jar=release/modules/ext/http2-http-client-transport-9.4.44.v20210927.jar file.reference.http2-http-client-transport-9.4.53.v20231009.jar=release/modules/ext/http2-http-client-transport-9.4.53.v20231009.jar
file.reference.httpclient-4.5.13.jar=release/modules/ext/httpclient-4.5.13.jar file.reference.httpclient-4.5.13.jar=release/modules/ext/httpclient-4.5.13.jar
file.reference.httpcore-4.4.14.jar=release/modules/ext/httpcore-4.4.14.jar file.reference.httpcore-4.4.14.jar=release/modules/ext/httpcore-4.4.14.jar
file.reference.httpmime-4.5.13.jar=release/modules/ext/httpmime-4.5.13.jar file.reference.httpmime-4.5.13.jar=release/modules/ext/httpmime-4.5.13.jar
file.reference.icu4j-70.1.jar=release/modules/ext/icu4j-70.1.jar file.reference.icu4j-76.1.jar=release/modules/ext/icu4j-76.1.jar
file.reference.jcl-over-slf4j-1.7.24.jar=release/modules/ext/jcl-over-slf4j-1.7.24.jar file.reference.j2objc-annotations-3.0.0.jar=release/modules/ext/j2objc-annotations-3.0.0.jar
file.reference.jetty-alpn-client-9.4.44.v20210927.jar=release/modules/ext/jetty-alpn-client-9.4.44.v20210927.jar file.reference.jcl-over-slf4j-1.7.36.jar=release/modules/ext/jcl-over-slf4j-1.7.36.jar
file.reference.jetty-alpn-java-client-9.4.44.v20210927.jar=release/modules/ext/jetty-alpn-java-client-9.4.44.v20210927.jar file.reference.jetty-alpn-client-9.4.53.v20231009.jar=release/modules/ext/jetty-alpn-client-9.4.53.v20231009.jar
file.reference.jetty-alpn-openjdk8-client-9.4.44.v20210927.jar=release/modules/ext/jetty-alpn-openjdk8-client-9.4.44.v20210927.jar file.reference.jetty-alpn-java-client-9.4.53.v20231009.jar=release/modules/ext/jetty-alpn-java-client-9.4.53.v20231009.jar
file.reference.jetty-client-9.4.44.v20210927.jar=release/modules/ext/jetty-client-9.4.44.v20210927.jar file.reference.jetty-client-9.4.53.v20231009.jar=release/modules/ext/jetty-client-9.4.53.v20231009.jar
file.reference.jetty-http-9.4.44.v20210927.jar=release/modules/ext/jetty-http-9.4.44.v20210927.jar file.reference.jetty-http-9.4.53.v20231009.jar=release/modules/ext/jetty-http-9.4.53.v20231009.jar
file.reference.jetty-io-9.4.44.v20210927.jar=release/modules/ext/jetty-io-9.4.44.v20210927.jar file.reference.jetty-io-9.4.53.v20231009.jar=release/modules/ext/jetty-io-9.4.53.v20231009.jar
file.reference.jetty-util-9.4.44.v20210927.jar=release/modules/ext/jetty-util-9.4.44.v20210927.jar file.reference.jetty-util-9.4.53.v20231009.jar=release/modules/ext/jetty-util-9.4.53.v20231009.jar
file.reference.jsonic-1.2.11.jar=release/modules/ext/jsonic-1.2.11.jar file.reference.jsonic-1.2.11.jar=release/modules/ext/jsonic-1.2.11.jar
file.reference.jsr305-3.0.2.jar=release/modules/ext/jsr305-3.0.2.jar
file.reference.junit-4.13.2.jar=release/modules/ext/junit-4.13.2.jar file.reference.junit-4.13.2.jar=release/modules/ext/junit-4.13.2.jar
file.reference.language-detector-0.6.jar=release/modules/ext/language-detector-0.6.jar file.reference.language-detector-0.6.jar=release/modules/ext/language-detector-0.6.jar
file.reference.logback-classic-1.2.10.jar=release/modules/ext/logback-classic-1.2.10.jar file.reference.listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar=release/modules/ext/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar
file.reference.logback-core-1.2.10.jar=release/modules/ext/logback-core-1.2.10.jar file.reference.lucene-core-8.11.4.jar=release/modules/ext/lucene-core-8.11.4.jar
file.reference.lucene-core-8.11.2.jar=release/modules/ext/lucene-core-8.11.2.jar file.reference.netty-buffer-4.1.99.Final.jar=release/modules/ext/netty-buffer-4.1.99.Final.jar
file.reference.netty-buffer-4.1.68.Final.jar=release/modules/ext/netty-buffer-4.1.68.Final.jar file.reference.netty-codec-4.1.99.Final.jar=release/modules/ext/netty-codec-4.1.99.Final.jar
file.reference.netty-codec-4.1.68.Final.jar=release/modules/ext/netty-codec-4.1.68.Final.jar file.reference.netty-common-4.1.116.Final.jar=release/modules/ext/netty-common-4.1.116.Final.jar
file.reference.netty-common-4.1.68.Final.jar=release/modules/ext/netty-common-4.1.68.Final.jar file.reference.netty-handler-4.1.99.Final.jar=release/modules/ext/netty-handler-4.1.99.Final.jar
file.reference.netty-handler-4.1.68.Final.jar=release/modules/ext/netty-handler-4.1.68.Final.jar file.reference.netty-resolver-4.1.99.Final.jar=release/modules/ext/netty-resolver-4.1.99.Final.jar
file.reference.netty-resolver-4.1.68.Final.jar=release/modules/ext/netty-resolver-4.1.68.Final.jar file.reference.netty-tcnative-boringssl-static-2.0.66.Final.jar=release/modules/ext/netty-tcnative-boringssl-static-2.0.66.Final.jar
file.reference.netty-tcnative-2.0.48.Final.jar=release/modules/ext/netty-tcnative-2.0.48.Final.jar file.reference.netty-tcnative-classes-2.0.66.Final.jar=release/modules/ext/netty-tcnative-classes-2.0.66.Final.jar
file.reference.netty-tcnative-classes-2.0.48.Final.jar=release/modules/ext/netty-tcnative-classes-2.0.48.Final.jar file.reference.netty-transport-4.1.116.Final.jar=release/modules/ext/netty-transport-4.1.116.Final.jar
file.reference.netty-transport-4.1.68.Final.jar=release/modules/ext/netty-transport-4.1.68.Final.jar file.reference.netty-transport-classes-epoll-4.1.116.Final.jar=release/modules/ext/netty-transport-classes-epoll-4.1.116.Final.jar
file.reference.netty-transport-native-epoll-4.1.68.Final.jar=release/modules/ext/netty-transport-native-epoll-4.1.68.Final.jar file.reference.netty-transport-native-epoll-4.1.116.Final.jar=release/modules/ext/netty-transport-native-epoll-4.1.116.Final.jar
file.reference.netty-transport-native-unix-common-4.1.68.Final.jar=release/modules/ext/netty-transport-native-unix-common-4.1.68.Final.jar file.reference.netty-transport-native-unix-common-4.1.99.Final.jar=release/modules/ext/netty-transport-native-unix-common-4.1.99.Final.jar
file.reference.slf4j-api-1.7.36.jar=release/modules/ext/slf4j-api-1.7.36.jar file.reference.slf4j-api-1.7.36.jar=release/modules/ext/slf4j-api-1.7.36.jar
file.reference.snappy-java-1.1.7.6.jar=release/modules/ext/snappy-java-1.1.7.6.jar file.reference.snappy-java-1.1.10.7.jar=release/modules/ext/snappy-java-1.1.10.7.jar
file.reference.solr-solrj-8.11.2.jar=release/modules/ext/solr-solrj-8.11.2.jar file.reference.solr-solrj-8.11.4.jar=release/modules/ext/solr-solrj-8.11.4.jar
file.reference.stax2-api-4.2.1.jar=release/modules/ext/stax2-api-4.2.1.jar file.reference.stax2-api-4.2.1.jar=release/modules/ext/stax2-api-4.2.1.jar
file.reference.woodstox-core-6.2.4.jar=release/modules/ext/woodstox-core-6.2.4.jar file.reference.woodstox-core-6.5.1.jar=release/modules/ext/woodstox-core-6.5.1.jar
file.reference.zookeeper-3.8.0.jar=release/modules/ext/zookeeper-3.8.0.jar file.reference.zookeeper-3.9.3.jar=release/modules/ext/zookeeper-3.9.3.jar
file.reference.zookeeper-jute-3.8.0.jar=release/modules/ext/zookeeper-jute-3.8.0.jar file.reference.zookeeper-jute-3.9.3.jar=release/modules/ext/zookeeper-jute-3.9.3.jar
javac.compilerargs=-Xlint -Xlint\:-serial
javac.source=17 javac.source=17
javac.compilerargs=-Xlint -Xlint:-serial
license.file=../LICENSE-2.0.txt license.file=../LICENSE-2.0.txt
nbm.homepage=http://www.sleuthkit.org/autopsy/ nbm.homepage=http\://www.sleuthkit.org/autopsy/
nbm.needs.restart=true nbm.needs.restart=true
spec.version.base=6.7 spec.version.base=6.7

View File

@ -239,8 +239,12 @@
<binary-origin>release/modules/ext/annotations-12.0.jar</binary-origin> <binary-origin>release/modules/ext/annotations-12.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/commons-io-2.8.0.jar</runtime-relative-path> <runtime-relative-path>ext/checker-qual-3.43.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/commons-io-2.8.0.jar</binary-origin> <binary-origin>release/modules/ext/checker-qual-3.43.0.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/commons-io-2.18.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/commons-io-2.18.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/commons-lang-2.6.jar</runtime-relative-path> <runtime-relative-path>ext/commons-lang-2.6.jar</runtime-relative-path>
@ -251,28 +255,36 @@
<binary-origin>release/modules/ext/commons-math3-3.6.1.jar</binary-origin> <binary-origin>release/modules/ext/commons-math3-3.6.1.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/guava-31.1-jre.jar</runtime-relative-path> <runtime-relative-path>ext/error_prone_annotations-2.36.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/guava-31.1-jre.jar</binary-origin> <binary-origin>release/modules/ext/error_prone_annotations-2.36.0.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/failureaccess-1.0.2.jar</runtime-relative-path>
<binary-origin>release/modules/ext/failureaccess-1.0.2.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/guava-33.4.0-jre.jar</runtime-relative-path>
<binary-origin>release/modules/ext/guava-33.4.0-jre.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/hamcrest-core-1.3.jar</runtime-relative-path> <runtime-relative-path>ext/hamcrest-core-1.3.jar</runtime-relative-path>
<binary-origin>release/modules/ext/hamcrest-core-1.3.jar</binary-origin> <binary-origin>release/modules/ext/hamcrest-core-1.3.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/http2-client-9.4.44.v20210927.jar</runtime-relative-path> <runtime-relative-path>ext/http2-client-11.0.24.jar</runtime-relative-path>
<binary-origin>release/modules/ext/http2-client-9.4.44.v20210927.jar</binary-origin> <binary-origin>release/modules/ext/http2-client-11.0.24.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/http2-common-9.4.44.v20210927.jar</runtime-relative-path> <runtime-relative-path>ext/http2-common-9.4.53.v20231009.jar</runtime-relative-path>
<binary-origin>release/modules/ext/http2-common-9.4.44.v20210927.jar</binary-origin> <binary-origin>release/modules/ext/http2-common-9.4.53.v20231009.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/http2-hpack-9.4.44.v20210927.jar</runtime-relative-path> <runtime-relative-path>ext/http2-hpack-9.4.53.v20231009.jar</runtime-relative-path>
<binary-origin>release/modules/ext/http2-hpack-9.4.44.v20210927.jar</binary-origin> <binary-origin>release/modules/ext/http2-hpack-9.4.53.v20231009.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/http2-http-client-transport-9.4.44.v20210927.jar</runtime-relative-path> <runtime-relative-path>ext/http2-http-client-transport-9.4.53.v20231009.jar</runtime-relative-path>
<binary-origin>release/modules/ext/http2-http-client-transport-9.4.44.v20210927.jar</binary-origin> <binary-origin>release/modules/ext/http2-http-client-transport-9.4.53.v20231009.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/httpclient-4.5.13.jar</runtime-relative-path> <runtime-relative-path>ext/httpclient-4.5.13.jar</runtime-relative-path>
@ -287,45 +299,49 @@
<binary-origin>release/modules/ext/httpmime-4.5.13.jar</binary-origin> <binary-origin>release/modules/ext/httpmime-4.5.13.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/icu4j-70.1.jar</runtime-relative-path> <runtime-relative-path>ext/icu4j-76.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/icu4j-70.1.jar</binary-origin> <binary-origin>release/modules/ext/icu4j-76.1.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/jcl-over-slf4j-1.7.24.jar</runtime-relative-path> <runtime-relative-path>ext/j2objc-annotations-3.0.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jcl-over-slf4j-1.7.24.jar</binary-origin> <binary-origin>release/modules/ext/j2objc-annotations-3.0.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/jetty-alpn-client-9.4.44.v20210927.jar</runtime-relative-path> <runtime-relative-path>ext/jcl-over-slf4j-1.7.36.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jetty-alpn-client-9.4.44.v20210927.jar</binary-origin> <binary-origin>release/modules/ext/jcl-over-slf4j-1.7.36.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/jetty-alpn-java-client-9.4.44.v20210927.jar</runtime-relative-path> <runtime-relative-path>ext/jetty-alpn-client-9.4.53.v20231009.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jetty-alpn-java-client-9.4.44.v20210927.jar</binary-origin> <binary-origin>release/modules/ext/jetty-alpn-client-9.4.53.v20231009.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/jetty-alpn-openjdk8-client-9.4.44.v20210927.jar</runtime-relative-path> <runtime-relative-path>ext/jetty-alpn-java-client-9.4.53.v20231009.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jetty-alpn-openjdk8-client-9.4.44.v20210927.jar</binary-origin> <binary-origin>release/modules/ext/jetty-alpn-java-client-9.4.53.v20231009.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/jetty-client-9.4.44.v20210927.jar</runtime-relative-path> <runtime-relative-path>ext/jetty-client-9.4.53.v20231009.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jetty-client-9.4.44.v20210927.jar</binary-origin> <binary-origin>release/modules/ext/jetty-client-9.4.53.v20231009.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/jetty-http-9.4.44.v20210927.jar</runtime-relative-path> <runtime-relative-path>ext/jetty-http-9.4.53.v20231009.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jetty-http-9.4.44.v20210927.jar</binary-origin> <binary-origin>release/modules/ext/jetty-http-9.4.53.v20231009.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/jetty-io-9.4.44.v20210927.jar</runtime-relative-path> <runtime-relative-path>ext/jetty-io-9.4.53.v20231009.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jetty-io-9.4.44.v20210927.jar</binary-origin> <binary-origin>release/modules/ext/jetty-io-9.4.53.v20231009.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/jetty-util-9.4.44.v20210927.jar</runtime-relative-path> <runtime-relative-path>ext/jetty-util-9.4.53.v20231009.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jetty-util-9.4.44.v20210927.jar</binary-origin> <binary-origin>release/modules/ext/jetty-util-9.4.53.v20231009.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/jsonic-1.2.11.jar</runtime-relative-path> <runtime-relative-path>ext/jsonic-1.2.11.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jsonic-1.2.11.jar</binary-origin> <binary-origin>release/modules/ext/jsonic-1.2.11.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/jsr305-3.0.2.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jsr305-3.0.2.jar</binary-origin>
</class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/junit-4.13.2.jar</runtime-relative-path> <runtime-relative-path>ext/junit-4.13.2.jar</runtime-relative-path>
<binary-origin>release/modules/ext/junit-4.13.2.jar</binary-origin> <binary-origin>release/modules/ext/junit-4.13.2.jar</binary-origin>
@ -335,84 +351,84 @@
<binary-origin>release/modules/ext/language-detector-0.6.jar</binary-origin> <binary-origin>release/modules/ext/language-detector-0.6.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/logback-classic-1.2.10.jar</runtime-relative-path> <runtime-relative-path>ext/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar</runtime-relative-path>
<binary-origin>release/modules/ext/logback-classic-1.2.10.jar</binary-origin> <binary-origin>release/modules/ext/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/logback-core-1.2.10.jar</runtime-relative-path> <runtime-relative-path>ext/lucene-core-8.11.4.jar</runtime-relative-path>
<binary-origin>release/modules/ext/logback-core-1.2.10.jar</binary-origin> <binary-origin>release/modules/ext/lucene-core-8.11.4.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/lucene-core-8.11.2.jar</runtime-relative-path> <runtime-relative-path>ext/netty-buffer-4.1.99.Final.jar</runtime-relative-path>
<binary-origin>release/modules/ext/lucene-core-8.11.2.jar</binary-origin> <binary-origin>release/modules/ext/netty-buffer-4.1.99.Final.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/netty-buffer-4.1.68.Final.jar</runtime-relative-path> <runtime-relative-path>ext/netty-codec-4.1.99.Final.jar</runtime-relative-path>
<binary-origin>release/modules/ext/netty-buffer-4.1.68.Final.jar</binary-origin> <binary-origin>release/modules/ext/netty-codec-4.1.99.Final.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/netty-codec-4.1.68.Final.jar</runtime-relative-path> <runtime-relative-path>ext/netty-common-4.1.116.Final.jar</runtime-relative-path>
<binary-origin>release/modules/ext/netty-codec-4.1.68.Final.jar</binary-origin> <binary-origin>release/modules/ext/netty-common-4.1.116.Final.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/netty-common-4.1.68.Final.jar</runtime-relative-path> <runtime-relative-path>ext/netty-handler-4.1.99.Final.jar</runtime-relative-path>
<binary-origin>release/modules/ext/netty-common-4.1.68.Final.jar</binary-origin> <binary-origin>release/modules/ext/netty-handler-4.1.99.Final.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/netty-handler-4.1.68.Final.jar</runtime-relative-path> <runtime-relative-path>ext/netty-resolver-4.1.99.Final.jar</runtime-relative-path>
<binary-origin>release/modules/ext/netty-handler-4.1.68.Final.jar</binary-origin> <binary-origin>release/modules/ext/netty-resolver-4.1.99.Final.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/netty-resolver-4.1.68.Final.jar</runtime-relative-path> <runtime-relative-path>ext/netty-tcnative-boringssl-static-2.0.66.Final.jar</runtime-relative-path>
<binary-origin>release/modules/ext/netty-resolver-4.1.68.Final.jar</binary-origin> <binary-origin>release/modules/ext/netty-tcnative-boringssl-static-2.0.66.Final.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/netty-tcnative-2.0.48.Final.jar</runtime-relative-path> <runtime-relative-path>ext/netty-tcnative-classes-2.0.66.Final.jar</runtime-relative-path>
<binary-origin>release/modules/ext/netty-tcnative-2.0.48.Final.jar</binary-origin> <binary-origin>release/modules/ext/netty-tcnative-classes-2.0.66.Final.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/netty-tcnative-classes-2.0.48.Final.jar</runtime-relative-path> <runtime-relative-path>ext/netty-transport-4.1.116.Final.jar</runtime-relative-path>
<binary-origin>release/modules/ext/netty-tcnative-classes-2.0.48.Final.jar</binary-origin> <binary-origin>release/modules/ext/netty-transport-4.1.116.Final.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/netty-transport-4.1.68.Final.jar</runtime-relative-path> <runtime-relative-path>ext/netty-transport-classes-epoll-4.1.116.Final.jar</runtime-relative-path>
<binary-origin>release/modules/ext/netty-transport-4.1.68.Final.jar</binary-origin> <binary-origin>release/modules/ext/netty-transport-classes-epoll-4.1.116.Final.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/netty-transport-native-epoll-4.1.68.Final.jar</runtime-relative-path> <runtime-relative-path>ext/netty-transport-native-epoll-4.1.116.Final.jar</runtime-relative-path>
<binary-origin>release/modules/ext/netty-transport-native-epoll-4.1.68.Final.jar</binary-origin> <binary-origin>release/modules/ext/netty-transport-native-epoll-4.1.116.Final.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/netty-transport-native-unix-common-4.1.68.Final.jar</runtime-relative-path> <runtime-relative-path>ext/netty-transport-native-unix-common-4.1.99.Final.jar</runtime-relative-path>
<binary-origin>release/modules/ext/netty-transport-native-unix-common-4.1.68.Final.jar</binary-origin> <binary-origin>release/modules/ext/netty-transport-native-unix-common-4.1.99.Final.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/slf4j-api-1.7.36.jar</runtime-relative-path> <runtime-relative-path>ext/slf4j-api-1.7.36.jar</runtime-relative-path>
<binary-origin>release/modules/ext/slf4j-api-1.7.36.jar</binary-origin> <binary-origin>release/modules/ext/slf4j-api-1.7.36.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/snappy-java-1.1.7.6.jar</runtime-relative-path> <runtime-relative-path>ext/snappy-java-1.1.10.7.jar</runtime-relative-path>
<binary-origin>release/modules/ext/snappy-java-1.1.7.6.jar</binary-origin> <binary-origin>release/modules/ext/snappy-java-1.1.10.7.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/solr-solrj-8.11.2.jar</runtime-relative-path> <runtime-relative-path>ext/solr-solrj-8.11.4.jar</runtime-relative-path>
<binary-origin>release/modules/ext/solr-solrj-8.11.2.jar</binary-origin> <binary-origin>release/modules/ext/solr-solrj-8.11.4.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/stax2-api-4.2.1.jar</runtime-relative-path> <runtime-relative-path>ext/stax2-api-4.2.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/stax2-api-4.2.1.jar</binary-origin> <binary-origin>release/modules/ext/stax2-api-4.2.1.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/woodstox-core-6.2.4.jar</runtime-relative-path> <runtime-relative-path>ext/woodstox-core-6.5.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/woodstox-core-6.2.4.jar</binary-origin> <binary-origin>release/modules/ext/woodstox-core-6.5.1.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/zookeeper-3.8.0.jar</runtime-relative-path> <runtime-relative-path>ext/zookeeper-3.9.3.jar</runtime-relative-path>
<binary-origin>release/modules/ext/zookeeper-3.8.0.jar</binary-origin> <binary-origin>release/modules/ext/zookeeper-3.9.3.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/zookeeper-jute-3.8.0.jar</runtime-relative-path> <runtime-relative-path>ext/zookeeper-jute-3.9.3.jar</runtime-relative-path>
<binary-origin>release/modules/ext/zookeeper-jute-3.8.0.jar</binary-origin> <binary-origin>release/modules/ext/zookeeper-jute-3.9.3.jar</binary-origin>
</class-path-extension> </class-path-extension>
</data> </data>
</configuration> </configuration>

View File

@ -146,7 +146,7 @@ grant {
permission java.security.SecurityPermission "putProviderProperty.SaslPlainServer"; permission java.security.SecurityPermission "putProviderProperty.SaslPlainServer";
permission java.security.SecurityPermission "insertProvider"; permission java.security.SecurityPermission "insertProvider";
permission javax.xml.bind.JAXBPermission "setDatatypeConverter"; permission jakarta.xml.bind.JAXBPermission "setDatatypeConverter";
// SSL related properties for Solr tests // SSL related properties for Solr tests
permission javax.net.ssl.SSLPermission "setDefaultSSLContext"; permission javax.net.ssl.SSLPermission "setDefaultSSLContext";

View File

@ -19,7 +19,6 @@
package org.sleuthkit.autopsy.keywordsearch; package org.sleuthkit.autopsy.keywordsearch;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSet;
import com.google.common.io.CharSource; import com.google.common.io.CharSource;
import java.io.IOException; import java.io.IOException;
@ -33,10 +32,26 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import static java.util.Locale.US; import static java.util.Locale.US;
import java.util.Map; import java.util.Map;
import java.util.Map.Entry;
import java.util.Optional; import java.util.Optional;
import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicInteger;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.IntStream;
import java.util.stream.Stream;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.commons.lang3.tuple.Triple;
import org.apache.tika.metadata.DublinCore;
import org.apache.tika.metadata.FileSystem;
import org.apache.tika.metadata.IPTC;
import org.apache.tika.metadata.Office;
import org.apache.tika.metadata.OfficeOpenXMLCore;
import org.apache.tika.metadata.OfficeOpenXMLExtended;
import org.apache.tika.metadata.PDF;
import org.apache.tika.metadata.Photoshop;
import org.apache.tika.metadata.TikaCoreProperties;
import org.apache.tika.metadata.XMP;
import org.apache.tika.metadata.XMPDM;
import org.apache.tika.mime.MimeTypes; import org.apache.tika.mime.MimeTypes;
import org.openide.util.Lookup; import org.openide.util.Lookup;
import org.openide.util.NbBundle; import org.openide.util.NbBundle;
@ -130,24 +145,69 @@ public final class KeywordSearchIngestModule implements FileIngestModule {
"application/x-z", //NON-NLS "application/x-z", //NON-NLS
"application/x-compress"); //NON-NLS "application/x-compress"); //NON-NLS
private static final List<String> METADATA_DATE_TYPES private static final Map<String, Pair<BlackboardAttribute.ATTRIBUTE_TYPE, Integer>> METADATA_TYPES_MAP = Stream.of(
= ImmutableList.of( Pair.of(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_DATETIME_MODIFIED, List.of(
"Last-Save-Date", //NON-NLS "Last-Save-Date",
"Last-Printed", //NON-NLS TikaCoreProperties.MODIFIED.getName(),
"Creation-Date"); //NON-NLS FileSystem.MODIFIED.getName(),
DublinCore.MODIFIED.getName(),
PDF.DOC_INFO_MODIFICATION_DATE.getName(),
PDF.PDFVT_MODIFIED.getName(),
XMP.MODIFY_DATE.getName(),
XMPDM.AUDIO_MOD_DATE.getName(),
XMPDM.METADATA_MOD_DATE.getName(),
XMPDM.VIDEO_MOD_DATE.getName())),
Pair.of(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_USER_ID, List.of(
"Last-Author",
Office.LAST_AUTHOR.getName(),
TikaCoreProperties.MODIFIER.getName())),
Pair.of(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_DATETIME_CREATED, List.of(
"Creation-Date",
TikaCoreProperties.CREATED.getName(),
FileSystem.CREATED.getName(),
DublinCore.CREATED.getName(),
IPTC.DATE_CREATED.getName(),
Office.CREATION_DATE.getName(),
PDF.DOC_INFO_CREATED.getName(),
Photoshop.DATE_CREATED.getName(),
XMP.CREATE_DATE.getName())),
Pair.of(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_ORGANIZATION, List.of(
"Company",
DublinCore.PUBLISHER.getName(),
IPTC.ORGANISATION_NAME.getName(),
OfficeOpenXMLExtended.COMPANY.getName())),
Pair.of(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_OWNER, List.of(
"Author",
TikaCoreProperties.CREATOR.getName(),
DublinCore.CREATOR.getName(),
Office.INITIAL_AUTHOR.getName(),
Office.AUTHOR.getName(),
Photoshop.AUTHORS_POSITION.getName(),
PDF.DOC_INFO_CREATOR.getName())),
Pair.of(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_PROG_NAME, List.of(
"Application-Name",
"Producer",
OfficeOpenXMLExtended.APPLICATION.getName(),
org.apache.tika.metadata.RTFMetadata.EMB_APP_VERSION.getName())),
Pair.of(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_LAST_PRINTED_DATETIME, List.of(
"Last-Printed",
OfficeOpenXMLCore.LAST_PRINTED.getName())),
Pair.of(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_DESCRIPTION, List.of(
"Title",
DublinCore.TITLE.getName(),
IPTC.TITLE.getName(),
PDF.DOC_INFO_TITLE.getName())),
Pair.of(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_VERSION, List.of(
PDF.PDF_VERSION.getName(),
OfficeOpenXMLCore.VERSION.getName())))
.flatMap(pr -> {
BlackboardAttribute.ATTRIBUTE_TYPE attrType = pr.getKey();
List<String> keys = pr.getValue();
return IntStream.range(0, keys.size())
.mapToObj(idx -> Triple.of(keys.get(idx), attrType, idx));
})
.collect(Collectors.toMap(Triple::getLeft, trip -> Pair.of(trip.getMiddle(), trip.getRight()), (v1, v2) -> v1.getRight() < v2.getRight() ? v1 : v2));
private static final Map<String, BlackboardAttribute.ATTRIBUTE_TYPE> METADATA_TYPES_MAP = ImmutableMap.<String, BlackboardAttribute.ATTRIBUTE_TYPE>builder()
.put("Last-Save-Date", BlackboardAttribute.ATTRIBUTE_TYPE.TSK_DATETIME_MODIFIED)
.put("Last-Author", BlackboardAttribute.ATTRIBUTE_TYPE.TSK_USER_ID)
.put("Creation-Date", BlackboardAttribute.ATTRIBUTE_TYPE.TSK_DATETIME_CREATED)
.put("Company", BlackboardAttribute.ATTRIBUTE_TYPE.TSK_ORGANIZATION)
.put("Author", BlackboardAttribute.ATTRIBUTE_TYPE.TSK_OWNER)
.put("Application-Name", BlackboardAttribute.ATTRIBUTE_TYPE.TSK_PROG_NAME)
.put("Last-Printed", BlackboardAttribute.ATTRIBUTE_TYPE.TSK_LAST_PRINTED_DATETIME)
.put("Producer", BlackboardAttribute.ATTRIBUTE_TYPE.TSK_PROG_NAME)
.put("Title", BlackboardAttribute.ATTRIBUTE_TYPE.TSK_DESCRIPTION)
.put("pdf:PDFVersion", BlackboardAttribute.ATTRIBUTE_TYPE.TSK_VERSION)
.build();
private static final String IMAGE_MIME_TYPE_PREFIX = "image/"; private static final String IMAGE_MIME_TYPE_PREFIX = "image/";
@ -624,14 +684,28 @@ public final class KeywordSearchIngestModule implements FileIngestModule {
Collection<BlackboardAttribute> attributes = new ArrayList<>(); Collection<BlackboardAttribute> attributes = new ArrayList<>();
Collection<BlackboardArtifact> bbartifacts = new ArrayList<>(); Collection<BlackboardArtifact> bbartifacts = new ArrayList<>();
/**
* Get best matched metadata for each attribute type found in metadata map.
*/
Map<BlackboardAttribute.ATTRIBUTE_TYPE, Pair<Integer, String>> intermediateMapping = new HashMap<>();
for (Map.Entry<String, String> entry : metadata.entrySet()) { for (Map.Entry<String, String> entry : metadata.entrySet()) {
if (METADATA_TYPES_MAP.containsKey(entry.getKey())) { Pair<BlackboardAttribute.ATTRIBUTE_TYPE, Integer> attrPair = METADATA_TYPES_MAP.get(entry.getKey());
BlackboardAttribute bba = checkAttribute(entry.getKey(), entry.getValue()); if (attrPair != null) {
if (bba != null) { intermediateMapping.compute(attrPair.getKey(), (k, v) -> {
attributes.add(bba); if (v == null || v.getKey() > attrPair.getValue()) {
} return Pair.of(attrPair.getValue(), entry.getValue());
} else {
return v;
}
});
} }
} }
for (Entry<BlackboardAttribute.ATTRIBUTE_TYPE, Pair<Integer, String>> interEntry: intermediateMapping.entrySet()) {
attributes.add(checkAttribute(interEntry.getKey(), interEntry.getValue().getValue()));
}
if (!attributes.isEmpty()) { if (!attributes.isEmpty()) {
try { try {
BlackboardArtifact bbart = aFile.newDataArtifact(new BlackboardArtifact.Type(BlackboardArtifact.ARTIFACT_TYPE.TSK_METADATA), attributes); BlackboardArtifact bbart = aFile.newDataArtifact(new BlackboardArtifact.Type(BlackboardArtifact.ARTIFACT_TYPE.TSK_METADATA), attributes);
@ -653,24 +727,31 @@ public final class KeywordSearchIngestModule implements FileIngestModule {
} }
} }
private BlackboardAttribute checkAttribute(String key, String value) { /**
* Create a metadata blackboard attribute based on specified content.
* @param attrType The attribute type.
* @param key The key for the attribute.
* @param value The value of the attribute.
* @return
*/
private BlackboardAttribute checkAttribute(BlackboardAttribute.ATTRIBUTE_TYPE attrType, String value) {
String moduleName = KeywordSearchIngestModule.class.getName(); String moduleName = KeywordSearchIngestModule.class.getName();
if (!value.isEmpty() && value.charAt(0) != ' ') { if (attrType != null && !value.isEmpty() && value.charAt(0) != ' ') {
if (METADATA_DATE_TYPES.contains(key)) { if (attrType.getValueType() == BlackboardAttribute.TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.DATETIME) {
SimpleDateFormat metadataDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", US); SimpleDateFormat metadataDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", US);
Long metadataDateTime = Long.valueOf(0); Long metadataDateTime = Long.valueOf(0);
try { try {
String metadataDate = value.replaceAll("T", " ").replaceAll("Z", ""); String metadataDate = value.replaceAll("T", " ").replaceAll("Z", "");
Date usedDate = metadataDateFormat.parse(metadataDate); Date usedDate = metadataDateFormat.parse(metadataDate);
metadataDateTime = usedDate.getTime() / 1000; metadataDateTime = usedDate.getTime() / 1000;
return new BlackboardAttribute(METADATA_TYPES_MAP.get(key), moduleName, metadataDateTime); return new BlackboardAttribute(attrType, moduleName, metadataDateTime);
} catch (ParseException ex) { } catch (ParseException ex) {
// catching error and displaying date that could not be parsed then will continue on. // catching error and displaying date that could not be parsed then will continue on.
logger.log(Level.WARNING, String.format("Failed to parse date/time %s for metadata attribute %s.", value, key), ex); //NON-NLS logger.log(Level.WARNING, String.format("Failed to parse date/time %s for metadata attribute %s.", value, attrType == null ? "<null>" : attrType.name()), ex); //NON-NLS
return null; return null;
} }
} else { } else {
return new BlackboardAttribute(METADATA_TYPES_MAP.get(key), moduleName, value); return new BlackboardAttribute(attrType, moduleName, value);
} }
} }

View File

@ -395,7 +395,6 @@ public class Server {
CloudSolrClient client = new CloudSolrClient.Builder(solrUrls) CloudSolrClient client = new CloudSolrClient.Builder(solrUrls)
.withConnectionTimeout(connectionTimeoutMs) .withConnectionTimeout(connectionTimeoutMs)
.withSocketTimeout(connectionTimeoutMs) .withSocketTimeout(connectionTimeoutMs)
.withResponseParser(new XMLResponseParser())
.build(); .build();
if (!defaultCollectionName.isEmpty()) { if (!defaultCollectionName.isEmpty()) {
client.setDefaultCollection(defaultCollectionName); client.setDefaultCollection(defaultCollectionName);

View File

@ -46,6 +46,7 @@ import java.util.stream.Collectors;
import java.util.stream.Stream; import java.util.stream.Stream;
import javax.imageio.ImageIO; import javax.imageio.ImageIO;
import javax.swing.JDialog; import javax.swing.JDialog;
import javax.swing.SwingUtilities;
import javax.swing.text.JTextComponent; import javax.swing.text.JTextComponent;
import javax.swing.tree.TreePath; import javax.swing.tree.TreePath;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
@ -64,7 +65,6 @@ import org.netbeans.jemmy.operators.JCheckBoxOperator;
import org.netbeans.jemmy.operators.JComboBoxOperator; import org.netbeans.jemmy.operators.JComboBoxOperator;
import org.netbeans.jemmy.operators.JDialogOperator; import org.netbeans.jemmy.operators.JDialogOperator;
import org.netbeans.jemmy.operators.JFileChooserOperator; import org.netbeans.jemmy.operators.JFileChooserOperator;
import org.netbeans.jemmy.operators.JLabelOperator;
import org.netbeans.jemmy.operators.JListOperator; import org.netbeans.jemmy.operators.JListOperator;
import org.netbeans.jemmy.operators.JTabbedPaneOperator; import org.netbeans.jemmy.operators.JTabbedPaneOperator;
import org.netbeans.jemmy.operators.JTableOperator; import org.netbeans.jemmy.operators.JTableOperator;
@ -177,13 +177,23 @@ public class AutopsyTestCases {
JToggleButtonOperator jtbo = new JToggleButtonOperator(wo, 0); JToggleButtonOperator jtbo = new JToggleButtonOperator(wo, 0);
jtbo.clickMouse(); jtbo.clickMouse();
wo.btNext().clickMouse(); wo.btNext().clickMouse();
new Timeout("pausing", 5000).sleep();
JTextFieldOperator jtfo0 = new JTextFieldOperator(wo, 0); JTextFieldOperator jtfo0 = new JTextFieldOperator(wo, 0);
String img_path = getEscapedPath(System.getProperty("img_path")); String img_path = getEscapedPath(System.getProperty("img_path"));
String imageDir = img_path; String imageDir = img_path;
logger.log(Level.INFO, "setting image path to " + imageDir);
((JTextComponent) jtfo0.getSource()).setText(imageDir); ((JTextComponent) jtfo0.getSource()).setText(imageDir);
new Timeout("pausing", 5000).sleep();
JComboBoxOperator comboBoxOperator = new JComboBoxOperator(wo, 0); JComboBoxOperator comboBoxOperator = new JComboBoxOperator(wo, 0);
logger.log(Level.INFO, "setting time zone");
comboBoxOperator.setSelectedItem("(GMT-5:00) America/New_York"); comboBoxOperator.setSelectedItem("(GMT-5:00) America/New_York");
wo.btNext().clickMouse(); // do in invoke later to allow time for validation to happen.
new Thread(() -> {
new Timeout("pausing", 5000).sleep();
logger.log(Level.INFO, "clicking next button");
wo.btNext().clickMouse();
}).start();
new Timeout("pausing", 8000).sleep();
} catch (TimeoutExpiredException ex) { } catch (TimeoutExpiredException ex) {
logger.log(Level.SEVERE, "AutopsyTestCases.testNewCaseWizard encountered timed out", ex); logger.log(Level.SEVERE, "AutopsyTestCases.testNewCaseWizard encountered timed out", ex);
logSystemDiagnostics(); logSystemDiagnostics();

View File

@ -4,21 +4,27 @@
<conf name="tika"/> <conf name="tika"/>
</configurations> </configurations>
<dependencies > <dependencies >
<dependency conf="tika->default" org="org.apache.tika" name="tika-parsers" rev="1.28.1"/> <dependency conf="tika->default" org="org.apache.tika" name="tika-parsers-standard-package" rev="${tika.version}"/>
<dependency conf="tika->default" org="org.apache.tika" name="tika-parser-scientific-package" rev="${tika.version}"/>
<dependency conf="tika->default" org="org.apache.tika" name="tika-parser-sqlite3-package" rev="${tika.version}"/>
<dependency conf="tika->default" org="org.apache.tika" name="tika-parser-advancedmedia-package" rev="${tika.version}"/>
<dependency conf="tika->default" org="org.apache.tika" name="tika-core" rev="${tika.version}"/>
<dependency conf="tika->default" org="org.apache.poi" name="ooxml-schemas" rev="1.4"/> <dependency conf="tika->default" org="org.apache.poi" name="ooxml-schemas" rev="1.4"/>
<override org="org.jsoup" module="jsoup" rev="1.16.1"/> <dependency conf="tika->default" org="org.bouncycastle" name="bcprov-jdk18on" rev="${bouncycastle.version}"/>
<override org="org.apache.poi" module="poi-ooxml-schemas" rev="4.1.2"/> <dependency conf="tika->default" org="org.bouncycastle" name="bcpkix-jdk18on" rev="${bouncycastle.version}"/>
<override org="org.slf4j" module="slf4j-api" rev="1.7.36"/>
<override org="com.google.code.gson" module="gson" rev="2.9.0"/>
<override org="com.google.guava" module="guava" rev="32.0.1-jre"/>
<override org="com.fasterxml.jackson.core" module="jackson-core" rev="2.15.2"/>
<override org="com.fasterxml.jackson.core" module="jackson-databind" rev="2.15.2"/>
<override org="com.fasterxml.jackson.core" module="jackson-annotations" rev="2.15.2"/>
<!-- changes to bouncy castle version may also be reflected in thirdparty/IcePDF 6.2.2 --> <exclude org="org.bouncycastle" module="bcprov-jdk15on"/>
<override org="org.bouncycastle" module="bcmail-jdk15on" rev="1.70"/> <exclude org="org.bouncycastle" module="bcpkix-jdk15on"/>
<override org="org.bouncycastle" module="bcprov-jdk15on" rev="1.70"/> <exclude org="*" ext="*" type="javadoc"/>
<override org="org.bouncycastle" module="bcpkix-jdk15on" rev="1.70"/> <exclude org="*" ext="*" type="tests" />
<override org="org.bouncycastle" module="bcprov-jdk18on" rev="${bouncycastle.version}"/>
<override org="org.bouncycastle" module="bcpkix-jdk18on" rev="${bouncycastle.version}"/>
<override org="com.google.guava" module="guava" rev="33.4.0-jre"/>
<override org="org.apache.logging.log4j" module="log4j-api" rev="${log4j.version}"/>
</dependencies> </dependencies>
</ivy-module> </ivy-module>

View File

@ -1,5 +1,9 @@
<ivysettings> <ivysettings>
<settings defaultResolver="main"/> <settings defaultResolver="main"/>
<property name="log4j.version" value="2.24.3"/>
<property name="bouncycastle.version" value="1.79"/>
<property name="tika.version" value="3.0.0"/>
<resolvers> <resolvers>
<chain name="main"> <chain name="main">
<ibiblio name="central" root="https://repo1.maven.org/maven2" m2compatible="true"/> <ibiblio name="central" root="https://repo1.maven.org/maven2" m2compatible="true"/>

View File

@ -1,120 +1,122 @@
file.reference.apache-mime4j-core-0.8.4.jar=release/modules/ext/apache-mime4j-core-0.8.4.jar file.reference.SparseBitSet-1.3.jar=release/modules/ext/SparseBitSet-1.3.jar
file.reference.apache-mime4j-dom-0.8.4.jar=release/modules/ext/apache-mime4j-dom-0.8.4.jar file.reference.angus-activation-2.0.2.jar=release/modules/ext/angus-activation-2.0.2.jar
file.reference.asm-9.2.jar=release/modules/ext/asm-9.2.jar file.reference.apache-mime4j-core-0.8.11.jar=release/modules/ext/apache-mime4j-core-0.8.11.jar
file.reference.bcmail-jdk15on-1.70.jar=release/modules/ext/bcmail-jdk15on-1.70.jar file.reference.apache-mime4j-dom-0.8.11.jar=release/modules/ext/apache-mime4j-dom-0.8.11.jar
file.reference.bcpkix-jdk15on-1.70.jar=release/modules/ext/bcpkix-jdk15on-1.70.jar file.reference.asm-9.7.1.jar=release/modules/ext/asm-9.7.1.jar
file.reference.bcprov-jdk15on-1.70.jar=release/modules/ext/bcprov-jdk15on-1.70.jar file.reference.bcjmail-jdk18on-1.78.1.jar=release/modules/ext/bcjmail-jdk18on-1.78.1.jar
file.reference.bcutil-jdk15on-1.70.jar=release/modules/ext/bcutil-jdk15on-1.70.jar file.reference.bcpkix-jdk18on-1.79.jar=release/modules/ext/bcpkix-jdk18on-1.79.jar
file.reference.boilerpipe-1.1.0.jar=release/modules/ext/boilerpipe-1.1.0.jar file.reference.bcprov-jdk18on-1.79.jar=release/modules/ext/bcprov-jdk18on-1.79.jar
file.reference.bcutil-jdk18on-1.78.1.jar=release/modules/ext/bcutil-jdk18on-1.78.1.jar
file.reference.bzip2-0.9.1.jar=release/modules/ext/bzip2-0.9.1.jar file.reference.bzip2-0.9.1.jar=release/modules/ext/bzip2-0.9.1.jar
file.reference.c3p0-0.9.5.5.jar=release/modules/ext/c3p0-0.9.5.5.jar file.reference.commons-codec-1.17.1.jar=release/modules/ext/commons-codec-1.17.1.jar
file.reference.cdm-4.5.5.jar=release/modules/ext/cdm-4.5.5.jar
file.reference.checker-qual-3.33.0.jar=release/modules/ext/checker-qual-3.33.0.jar
file.reference.commons-codec-1.15.jar=release/modules/ext/commons-codec-1.15.jar
file.reference.commons-collections4-4.4.jar=release/modules/ext/commons-collections4-4.4.jar file.reference.commons-collections4-4.4.jar=release/modules/ext/commons-collections4-4.4.jar
file.reference.commons-compress-1.21.jar=release/modules/ext/commons-compress-1.21.jar file.reference.commons-compress-1.27.1.jar=release/modules/ext/commons-compress-1.27.1.jar
file.reference.commons-csv-1.9.0.jar=release/modules/ext/commons-csv-1.9.0.jar file.reference.commons-csv-1.12.0.jar=release/modules/ext/commons-csv-1.12.0.jar
file.reference.commons-exec-1.3.jar=release/modules/ext/commons-exec-1.3.jar file.reference.commons-exec-1.4.0.jar=release/modules/ext/commons-exec-1.4.0.jar
file.reference.commons-io-2.11.0.jar=release/modules/ext/commons-io-2.11.0.jar file.reference.commons-io-2.17.0.jar=release/modules/ext/commons-io-2.17.0.jar
file.reference.commons-lang3-3.12.0.jar=release/modules/ext/commons-lang3-3.12.0.jar file.reference.commons-lang3-3.17.0.jar=release/modules/ext/commons-lang3-3.17.0.jar
file.reference.commons-logging-1.2.jar=release/modules/ext/commons-logging-1.2.jar file.reference.commons-logging-1.3.4.jar=release/modules/ext/commons-logging-1.3.4.jar
file.reference.commons-math3-3.6.1.jar=release/modules/ext/commons-math3-3.6.1.jar file.reference.commons-math3-3.6.1.jar=release/modules/ext/commons-math3-3.6.1.jar
file.reference.curvesapi-1.06.jar=release/modules/ext/curvesapi-1.06.jar file.reference.curvesapi-1.08.jar=release/modules/ext/curvesapi-1.08.jar
file.reference.cxf-core-3.5.0.jar=release/modules/ext/cxf-core-3.5.0.jar file.reference.dd-plist-1.28.jar=release/modules/ext/dd-plist-1.28.jar
file.reference.cxf-rt-frontend-jaxrs-3.5.0.jar=release/modules/ext/cxf-rt-frontend-jaxrs-3.5.0.jar
file.reference.cxf-rt-rs-client-3.5.0.jar=release/modules/ext/cxf-rt-rs-client-3.5.0.jar
file.reference.cxf-rt-security-3.5.0.jar=release/modules/ext/cxf-rt-security-3.5.0.jar
file.reference.cxf-rt-transports-http-3.5.0.jar=release/modules/ext/cxf-rt-transports-http-3.5.0.jar
file.reference.dd-plist-1.23.jar=release/modules/ext/dd-plist-1.23.jar
file.reference.dec-0.1.2.jar=release/modules/ext/dec-0.1.2.jar file.reference.dec-0.1.2.jar=release/modules/ext/dec-0.1.2.jar
file.reference.ehcache-core-2.6.2.jar=release/modules/ext/ehcache-core-2.6.2.jar file.reference.fontbox-3.0.3.jar=release/modules/ext/fontbox-3.0.3.jar
file.reference.error_prone_annotations-2.18.0.jar=release/modules/ext/error_prone_annotations-2.18.0.jar file.reference.geoapi-3.0.2.jar=release/modules/ext/geoapi-3.0.2.jar
file.reference.failureaccess-1.0.1.jar=release/modules/ext/failureaccess-1.0.1.jar
file.reference.fontbox-2.0.25.jar=release/modules/ext/fontbox-2.0.25.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.grib-4.5.5.jar=release/modules/ext/grib-4.5.5.jar
file.reference.gson-2.9.0.jar=release/modules/ext/gson-2.9.0.jar file.reference.httpclient-4.5.14.jar=release/modules/ext/httpclient-4.5.14.jar
file.reference.guava-32.0.1-jre.jar=release/modules/ext/guava-32.0.1-jre.jar file.reference.httpcore-4.4.16.jar=release/modules/ext/httpcore-4.4.16.jar
file.reference.HikariCP-java7-2.4.13.jar=release/modules/ext/HikariCP-java7-2.4.13.jar file.reference.httpmime-4.5.14.jar=release/modules/ext/httpmime-4.5.14.jar
file.reference.httpclient-4.5.13.jar=release/modules/ext/httpclient-4.5.13.jar file.reference.istack-commons-runtime-4.1.2.jar=release/modules/ext/istack-commons-runtime-4.1.2.jar
file.reference.httpcore-4.4.13.jar=release/modules/ext/httpcore-4.4.13.jar file.reference.jackcess-4.0.7.jar=release/modules/ext/jackcess-4.0.7.jar
file.reference.httpmime-4.5.13.jar=release/modules/ext/httpmime-4.5.13.jar file.reference.jackcess-encrypt-4.0.2.jar=release/modules/ext/jackcess-encrypt-4.0.2.jar
file.reference.httpservices-4.5.5.jar=release/modules/ext/httpservices-4.5.5.jar file.reference.jackson-annotations-2.18.0.jar=release/modules/ext/jackson-annotations-2.18.0.jar
file.reference.isoparser-1.9.41.7.jar=release/modules/ext/isoparser-1.9.41.7.jar file.reference.jackson-core-2.18.0.jar=release/modules/ext/jackson-core-2.18.0.jar
file.reference.istack-commons-runtime-3.0.12.jar=release/modules/ext/istack-commons-runtime-3.0.12.jar file.reference.jackson-databind-2.18.0.jar=release/modules/ext/jackson-databind-2.18.0.jar
file.reference.j2objc-annotations-2.8.jar=release/modules/ext/j2objc-annotations-2.8.jar
file.reference.jackcess-4.0.1.jar=release/modules/ext/jackcess-4.0.1.jar
file.reference.jackcess-encrypt-4.0.1.jar=release/modules/ext/jackcess-encrypt-4.0.1.jar
file.reference.jackson-annotations-2.15.2.jar=release/modules/ext/jackson-annotations-2.15.2.jar
file.reference.jackson-core-2.15.2.jar=release/modules/ext/jackson-core-2.15.2.jar
file.reference.jackson-databind-2.15.2.jar=release/modules/ext/jackson-databind-2.15.2.jar
file.reference.jai-imageio-core-1.4.0.jar=release/modules/ext/jai-imageio-core-1.4.0.jar file.reference.jai-imageio-core-1.4.0.jar=release/modules/ext/jai-imageio-core-1.4.0.jar
file.reference.jakarta.activation-1.2.2.jar=release/modules/ext/jakarta.activation-1.2.2.jar file.reference.jakarta.activation-api-2.1.3.jar=release/modules/ext/jakarta.activation-api-2.1.3.jar
file.reference.jakarta.activation-api-1.2.2.jar=release/modules/ext/jakarta.activation-api-1.2.2.jar file.reference.jakarta.ws.rs-api-3.1.0.jar=release/modules/ext/jakarta.ws.rs-api-3.1.0.jar
file.reference.jakarta.annotation-api-1.3.5.jar=release/modules/ext/jakarta.annotation-api-1.3.5.jar file.reference.jakarta.xml.bind-api-4.0.2.jar=release/modules/ext/jakarta.xml.bind-api-4.0.2.jar
file.reference.jakarta.ws.rs-api-2.1.6.jar=release/modules/ext/jakarta.ws.rs-api-2.1.6.jar
file.reference.jakarta.xml.bind-api-2.3.3.jar=release/modules/ext/jakarta.xml.bind-api-2.3.3.jar
file.reference.java-libpst-0.9.3.jar=release/modules/ext/java-libpst-0.9.3.jar file.reference.java-libpst-0.9.3.jar=release/modules/ext/java-libpst-0.9.3.jar
file.reference.jaxb-runtime-2.3.5.jar=release/modules/ext/jaxb-runtime-2.3.5.jar file.reference.jaxb-core-4.0.5.jar=release/modules/ext/jaxb-core-4.0.5.jar
file.reference.jbig2-imageio-3.0.3.jar=release/modules/ext/jbig2-imageio-3.0.3.jar file.reference.jaxb-runtime-4.0.5.jar=release/modules/ext/jaxb-runtime-4.0.5.jar
file.reference.jbig2-imageio-3.0.4.jar=release/modules/ext/jbig2-imageio-3.0.4.jar
file.reference.jcip-annotations-1.0.jar=release/modules/ext/jcip-annotations-1.0.jar file.reference.jcip-annotations-1.0.jar=release/modules/ext/jcip-annotations-1.0.jar
file.reference.jcl-over-slf4j-1.7.36.jar=release/modules/ext/jcl-over-slf4j-1.7.36.jar file.reference.jcl-over-slf4j-2.0.16.jar=release/modules/ext/jcl-over-slf4j-2.0.16.jar
file.reference.jcommander-1.82.jar=release/modules/ext/jcommander-1.82.jar
file.reference.jdom2-2.0.6.1.jar=release/modules/ext/jdom2-2.0.6.1.jar file.reference.jdom2-2.0.6.1.jar=release/modules/ext/jdom2-2.0.6.1.jar
file.reference.jempbox-1.8.16.jar=release/modules/ext/jempbox-1.8.16.jar file.reference.jempbox-1.8.17.jar=release/modules/ext/jempbox-1.8.17.jar
file.reference.jhighlight-1.0.3.jar=release/modules/ext/jhighlight-1.0.3.jar file.reference.jhighlight-1.1.0.jar=release/modules/ext/jhighlight-1.1.0.jar
file.reference.jj2000-5.2.jar=release/modules/ext/jj2000-5.2.jar
file.reference.jmatio-1.5.jar=release/modules/ext/jmatio-1.5.jar file.reference.jmatio-1.5.jar=release/modules/ext/jmatio-1.5.jar
file.reference.jna-5.16.0.jar=release/modules/ext/jna-5.16.0.jar file.reference.jna-5.15.0.jar=release/modules/ext/jna-5.15.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.json-simple-1.1.1.jar=release/modules/ext/json-simple-1.1.1.jar
file.reference.jsr305-3.0.2.jar=release/modules/ext/jsr305-3.0.2.jar file.reference.jsoup-1.18.1.jar=release/modules/ext/jsoup-1.18.1.jar
file.reference.jul-to-slf4j-1.7.36.jar=release/modules/ext/jul-to-slf4j-1.7.36.jar file.reference.juniversalchardet-2.5.0.jar=release/modules/ext/juniversalchardet-2.5.0.jar
file.reference.juniversalchardet-1.0.3.jar=release/modules/ext/juniversalchardet-1.0.3.jar file.reference.junrar-7.5.5.jar=release/modules/ext/junrar-7.5.5.jar
file.reference.junrar-7.4.1.jar=release/modules/ext/junrar-7.4.1.jar file.reference.jwarc-0.30.0.jar=release/modules/ext/jwarc-0.30.0.jar
file.reference.listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar=release/modules/ext/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar file.reference.log4j-api-2.24.3.jar=release/modules/ext/log4j-api-2.24.3.jar
file.reference.mchange-commons-java-0.2.19.jar=release/modules/ext/mchange-commons-java-0.2.19.jar file.reference.metadata-extractor-2.19.0.jar=release/modules/ext/metadata-extractor-2.19.0.jar
file.reference.metadata-extractor-2.15.0.1.jar=release/modules/ext/metadata-extractor-2.15.0.1.jar
file.reference.netcdf4-4.5.5.jar=release/modules/ext/netcdf4-4.5.5.jar file.reference.netcdf4-4.5.5.jar=release/modules/ext/netcdf4-4.5.5.jar
file.reference.ooxml-schemas-1.4.jar=release/modules/ext/ooxml-schemas-1.4.jar file.reference.ooxml-schemas-1.4.jar=release/modules/ext/ooxml-schemas-1.4.jar
file.reference.openjson-1.0.12.jar=release/modules/ext/openjson-1.0.12.jar file.reference.openjson-1.0.13.jar=release/modules/ext/openjson-1.0.13.jar
file.reference.opennlp-tools-1.9.4.jar=release/modules/ext/opennlp-tools-1.9.4.jar
file.reference.parso-2.0.14.jar=release/modules/ext/parso-2.0.14.jar file.reference.parso-2.0.14.jar=release/modules/ext/parso-2.0.14.jar
file.reference.pdfbox-2.0.25.jar=release/modules/ext/pdfbox-2.0.25.jar file.reference.pdfbox-3.0.3.jar=release/modules/ext/pdfbox-3.0.3.jar
file.reference.pdfbox-tools-2.0.25.jar=release/modules/ext/pdfbox-tools-2.0.25.jar file.reference.pdfbox-io-3.0.3.jar=release/modules/ext/pdfbox-io-3.0.3.jar
file.reference.poi-4.1.2.jar=release/modules/ext/poi-4.1.2.jar file.reference.pdfbox-tools-3.0.3.jar=release/modules/ext/pdfbox-tools-3.0.3.jar
file.reference.poi-ooxml-4.1.2.jar=release/modules/ext/poi-ooxml-4.1.2.jar file.reference.picocli-4.7.6.jar=release/modules/ext/picocli-4.7.6.jar
file.reference.poi-ooxml-schemas-4.1.2.jar=release/modules/ext/poi-ooxml-schemas-4.1.2.jar file.reference.poi-5.3.0.jar=release/modules/ext/poi-5.3.0.jar
file.reference.poi-scratchpad-4.1.2.jar=release/modules/ext/poi-scratchpad-4.1.2.jar file.reference.poi-ooxml-5.3.0.jar=release/modules/ext/poi-ooxml-5.3.0.jar
file.reference.preflight-2.0.25.jar=release/modules/ext/preflight-2.0.25.jar file.reference.poi-ooxml-lite-5.3.0.jar=release/modules/ext/poi-ooxml-lite-5.3.0.jar
file.reference.protobuf-java-3.19.4.jar=release/modules/ext/protobuf-java-3.19.4.jar file.reference.poi-scratchpad-5.3.0.jar=release/modules/ext/poi-scratchpad-5.3.0.jar
file.reference.quartz-2.3.2.jar=release/modules/ext/quartz-2.3.2.jar file.reference.protobuf-java-3.25.5.jar=release/modules/ext/protobuf-java-3.25.5.jar
file.reference.rome-1.18.0.jar=release/modules/ext/rome-1.18.0.jar file.reference.rome-2.1.0.jar=release/modules/ext/rome-2.1.0.jar
file.reference.rome-utils-1.18.0.jar=release/modules/ext/rome-utils-1.18.0.jar file.reference.rome-utils-2.1.0.jar=release/modules/ext/rome-utils-2.1.0.jar
file.reference.sentiment-analysis-parser-0.1.jar=release/modules/ext/sentiment-analysis-parser-0.1.jar file.reference.sis-feature-1.4.jar=release/modules/ext/sis-feature-1.4.jar
file.reference.sis-feature-1.1.jar=release/modules/ext/sis-feature-1.1.jar file.reference.sis-metadata-1.4.jar=release/modules/ext/sis-metadata-1.4.jar
file.reference.sis-metadata-1.1.jar=release/modules/ext/sis-metadata-1.1.jar file.reference.sis-netcdf-1.4.jar=release/modules/ext/sis-netcdf-1.4.jar
file.reference.sis-netcdf-1.1.jar=release/modules/ext/sis-netcdf-1.1.jar file.reference.sis-referencing-1.4.jar=release/modules/ext/sis-referencing-1.4.jar
file.reference.sis-referencing-1.1.jar=release/modules/ext/sis-referencing-1.1.jar file.reference.sis-storage-1.4.jar=release/modules/ext/sis-storage-1.4.jar
file.reference.sis-storage-1.1.jar=release/modules/ext/sis-storage-1.1.jar file.reference.sis-utility-1.4.jar=release/modules/ext/sis-utility-1.4.jar
file.reference.sis-utility-1.1.jar=release/modules/ext/sis-utility-1.1.jar file.reference.slf4j-api-2.0.16.jar=release/modules/ext/slf4j-api-2.0.16.jar
file.reference.slf4j-api-1.7.36.jar=release/modules/ext/slf4j-api-1.7.36.jar file.reference.sqlite-jdbc-3.46.1.3.jar=release/modules/ext/sqlite-jdbc-3.46.1.3.jar
file.reference.SparseBitSet-1.2.jar=release/modules/ext/SparseBitSet-1.2.jar
file.reference.stax2-api-4.2.1.jar=release/modules/ext/stax2-api-4.2.1.jar
file.reference.tagsoup-1.2.1.jar=release/modules/ext/tagsoup-1.2.1.jar file.reference.tagsoup-1.2.1.jar=release/modules/ext/tagsoup-1.2.1.jar
file.reference.tika-core-1.28.1.jar=release/modules/ext/tika-core-1.28.1.jar file.reference.tika-core-3.0.0.jar=release/modules/ext/tika-core-3.0.0.jar
file.reference.tika-parsers-1.28.1.jar=release/modules/ext/tika-parsers-1.28.1.jar file.reference.tika-parser-advancedmedia-module-3.0.0.jar=release/modules/ext/tika-parser-advancedmedia-module-3.0.0.jar
file.reference.txw2-2.3.5.jar=release/modules/ext/txw2-2.3.5.jar file.reference.tika-parser-advancedmedia-package-3.0.0.jar=release/modules/ext/tika-parser-advancedmedia-package-3.0.0.jar
file.reference.udunits-4.5.5.jar=release/modules/ext/udunits-4.5.5.jar file.reference.tika-parser-apple-module-3.0.0.jar=release/modules/ext/tika-parser-apple-module-3.0.0.jar
file.reference.unit-api-1.0.jar=release/modules/ext/unit-api-1.0.jar file.reference.tika-parser-audiovideo-module-3.0.0.jar=release/modules/ext/tika-parser-audiovideo-module-3.0.0.jar
file.reference.tika-parser-cad-module-3.0.0.jar=release/modules/ext/tika-parser-cad-module-3.0.0.jar
file.reference.tika-parser-code-module-3.0.0.jar=release/modules/ext/tika-parser-code-module-3.0.0.jar
file.reference.tika-parser-crypto-module-3.0.0.jar=release/modules/ext/tika-parser-crypto-module-3.0.0.jar
file.reference.tika-parser-digest-commons-3.0.0.jar=release/modules/ext/tika-parser-digest-commons-3.0.0.jar
file.reference.tika-parser-font-module-3.0.0.jar=release/modules/ext/tika-parser-font-module-3.0.0.jar
file.reference.tika-parser-html-module-3.0.0.jar=release/modules/ext/tika-parser-html-module-3.0.0.jar
file.reference.tika-parser-image-module-3.0.0.jar=release/modules/ext/tika-parser-image-module-3.0.0.jar
file.reference.tika-parser-jdbc-commons-3.0.0.jar=release/modules/ext/tika-parser-jdbc-commons-3.0.0.jar
file.reference.tika-parser-mail-commons-3.0.0.jar=release/modules/ext/tika-parser-mail-commons-3.0.0.jar
file.reference.tika-parser-mail-module-3.0.0.jar=release/modules/ext/tika-parser-mail-module-3.0.0.jar
file.reference.tika-parser-microsoft-module-3.0.0.jar=release/modules/ext/tika-parser-microsoft-module-3.0.0.jar
file.reference.tika-parser-miscoffice-module-3.0.0.jar=release/modules/ext/tika-parser-miscoffice-module-3.0.0.jar
file.reference.tika-parser-news-module-3.0.0.jar=release/modules/ext/tika-parser-news-module-3.0.0.jar
file.reference.tika-parser-ocr-module-3.0.0.jar=release/modules/ext/tika-parser-ocr-module-3.0.0.jar
file.reference.tika-parser-pdf-module-3.0.0.jar=release/modules/ext/tika-parser-pdf-module-3.0.0.jar
file.reference.tika-parser-pkg-module-3.0.0.jar=release/modules/ext/tika-parser-pkg-module-3.0.0.jar
file.reference.tika-parser-scientific-module-3.0.0.jar=release/modules/ext/tika-parser-scientific-module-3.0.0.jar
file.reference.tika-parser-scientific-package-3.0.0.jar=release/modules/ext/tika-parser-scientific-package-3.0.0.jar
file.reference.tika-parser-sqlite3-module-3.0.0.jar=release/modules/ext/tika-parser-sqlite3-module-3.0.0.jar
file.reference.tika-parser-sqlite3-package-3.0.0.jar=release/modules/ext/tika-parser-sqlite3-package-3.0.0.jar
file.reference.tika-parser-text-module-3.0.0.jar=release/modules/ext/tika-parser-text-module-3.0.0.jar
file.reference.tika-parser-webarchive-module-3.0.0.jar=release/modules/ext/tika-parser-webarchive-module-3.0.0.jar
file.reference.tika-parser-xml-module-3.0.0.jar=release/modules/ext/tika-parser-xml-module-3.0.0.jar
file.reference.tika-parser-xmp-commons-3.0.0.jar=release/modules/ext/tika-parser-xmp-commons-3.0.0.jar
file.reference.tika-parser-zip-commons-3.0.0.jar=release/modules/ext/tika-parser-zip-commons-3.0.0.jar
file.reference.tika-parsers-standard-package-3.0.0.jar=release/modules/ext/tika-parsers-standard-package-3.0.0.jar
file.reference.txw2-4.0.5.jar=release/modules/ext/txw2-4.0.5.jar
file.reference.unit-api-2.2.jar=release/modules/ext/unit-api-2.2.jar
file.reference.vorbis-java-core-0.8.jar=release/modules/ext/vorbis-java-core-0.8.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.vorbis-java-tika-0.8.jar=release/modules/ext/vorbis-java-tika-0.8.jar
file.reference.woodstox-core-6.2.8.jar=release/modules/ext/woodstox-core-6.2.8.jar file.reference.xmlbeans-5.2.1.jar=release/modules/ext/xmlbeans-5.2.1.jar
file.reference.xercesImpl-2.12.2.jar=release/modules/ext/xercesImpl-2.12.2.jar file.reference.xmpbox-3.0.3.jar=release/modules/ext/xmpbox-3.0.3.jar
file.reference.xml-apis-1.4.01.jar=release/modules/ext/xml-apis-1.4.01.jar file.reference.xmpcore-6.1.11.jar=release/modules/ext/xmpcore-6.1.11.jar
file.reference.xmlbeans-3.1.0.jar=release/modules/ext/xmlbeans-3.1.0.jar file.reference.xz-1.10.jar=release/modules/ext/xz-1.10.jar
file.reference.xmlschema-core-2.3.0.jar=release/modules/ext/xmlschema-core-2.3.0.jar javac.compilerargs=-Xlint -Xlint\:-serial
file.reference.xmpbox-2.0.25.jar=release/modules/ext/xmpbox-2.0.25.jar
file.reference.xmpcore-shaded-6.1.11.jar=release/modules/ext/xmpcore-shaded-6.1.11.jar
file.reference.xz-1.9.jar=release/modules/ext/xz-1.9.jar
javac.source=17 javac.source=17
javac.compilerargs=-Xlint -Xlint:-serial

View File

@ -356,308 +356,228 @@
<package>schemaorg_apache_xmlbeans.system.sD023D6490046BA0250A839A9AD24C443</package> <package>schemaorg_apache_xmlbeans.system.sD023D6490046BA0250A839A9AD24C443</package>
</public-packages> </public-packages>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/apache-mime4j-core-0.8.4.jar</runtime-relative-path> <runtime-relative-path>ext/angus-activation-2.0.2.jar</runtime-relative-path>
<binary-origin>release/modules/ext/apache-mime4j-core-0.8.4.jar</binary-origin> <binary-origin>release/modules/ext/angus-activation-2.0.2.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/apache-mime4j-dom-0.8.4.jar</runtime-relative-path> <runtime-relative-path>ext/apache-mime4j-core-0.8.11.jar</runtime-relative-path>
<binary-origin>release/modules/ext/apache-mime4j-dom-0.8.4.jar</binary-origin> <binary-origin>release/modules/ext/apache-mime4j-core-0.8.11.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/asm-9.2.jar</runtime-relative-path> <runtime-relative-path>ext/apache-mime4j-dom-0.8.11.jar</runtime-relative-path>
<binary-origin>release/modules/ext/asm-9.2.jar</binary-origin> <binary-origin>release/modules/ext/apache-mime4j-dom-0.8.11.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/bcmail-jdk15on-1.70.jar</runtime-relative-path> <runtime-relative-path>ext/asm-9.7.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/bcmail-jdk15on-1.70.jar</binary-origin> <binary-origin>release/modules/ext/asm-9.7.1.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/bcpkix-jdk15on-1.70.jar</runtime-relative-path> <runtime-relative-path>ext/bcjmail-jdk18on-1.78.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/bcpkix-jdk15on-1.70.jar</binary-origin> <binary-origin>release/modules/ext/bcjmail-jdk18on-1.78.1.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/bcprov-jdk15on-1.70.jar</runtime-relative-path> <runtime-relative-path>ext/bcpkix-jdk18on-1.79.jar</runtime-relative-path>
<binary-origin>release/modules/ext/bcprov-jdk15on-1.70.jar</binary-origin> <binary-origin>release/modules/ext/bcpkix-jdk18on-1.79.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/bcutil-jdk15on-1.70.jar</runtime-relative-path> <runtime-relative-path>ext/bcprov-jdk18on-1.79.jar</runtime-relative-path>
<binary-origin>release/modules/ext/bcutil-jdk15on-1.70.jar</binary-origin> <binary-origin>release/modules/ext/bcprov-jdk18on-1.79.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/boilerpipe-1.1.0.jar</runtime-relative-path> <runtime-relative-path>ext/bcutil-jdk18on-1.78.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/boilerpipe-1.1.0.jar</binary-origin> <binary-origin>release/modules/ext/bcutil-jdk18on-1.78.1.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/bzip2-0.9.1.jar</runtime-relative-path> <runtime-relative-path>ext/bzip2-0.9.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/bzip2-0.9.1.jar</binary-origin> <binary-origin>release/modules/ext/bzip2-0.9.1.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/c3p0-0.9.5.5.jar</runtime-relative-path> <runtime-relative-path>ext/commons-codec-1.17.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/c3p0-0.9.5.5.jar</binary-origin> <binary-origin>release/modules/ext/commons-codec-1.17.1.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/cdm-4.5.5.jar</runtime-relative-path>
<binary-origin>release/modules/ext/cdm-4.5.5.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/checker-qual-3.33.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/checker-qual-3.33.0.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/commons-codec-1.15.jar</runtime-relative-path>
<binary-origin>release/modules/ext/commons-codec-1.15.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/commons-collections4-4.4.jar</runtime-relative-path> <runtime-relative-path>ext/commons-collections4-4.4.jar</runtime-relative-path>
<binary-origin>release/modules/ext/commons-collections4-4.4.jar</binary-origin> <binary-origin>release/modules/ext/commons-collections4-4.4.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/commons-compress-1.21.jar</runtime-relative-path> <runtime-relative-path>ext/commons-compress-1.27.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/commons-compress-1.21.jar</binary-origin> <binary-origin>release/modules/ext/commons-compress-1.27.1.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/commons-csv-1.9.0.jar</runtime-relative-path> <runtime-relative-path>ext/commons-csv-1.12.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/commons-csv-1.9.0.jar</binary-origin> <binary-origin>release/modules/ext/commons-csv-1.12.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/commons-exec-1.3.jar</runtime-relative-path> <runtime-relative-path>ext/commons-exec-1.4.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/commons-exec-1.3.jar</binary-origin> <binary-origin>release/modules/ext/commons-exec-1.4.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/commons-io-2.11.0.jar</runtime-relative-path> <runtime-relative-path>ext/commons-io-2.17.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/commons-io-2.11.0.jar</binary-origin> <binary-origin>release/modules/ext/commons-io-2.17.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/commons-lang3-3.12.0.jar</runtime-relative-path> <runtime-relative-path>ext/commons-lang3-3.17.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/commons-lang3-3.12.0.jar</binary-origin> <binary-origin>release/modules/ext/commons-lang3-3.17.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/commons-logging-1.2.jar</runtime-relative-path> <runtime-relative-path>ext/commons-logging-1.3.4.jar</runtime-relative-path>
<binary-origin>release/modules/ext/commons-logging-1.2.jar</binary-origin> <binary-origin>release/modules/ext/commons-logging-1.3.4.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/commons-math3-3.6.1.jar</runtime-relative-path> <runtime-relative-path>ext/commons-math3-3.6.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/commons-math3-3.6.1.jar</binary-origin> <binary-origin>release/modules/ext/commons-math3-3.6.1.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/curvesapi-1.06.jar</runtime-relative-path> <runtime-relative-path>ext/curvesapi-1.08.jar</runtime-relative-path>
<binary-origin>release/modules/ext/curvesapi-1.06.jar</binary-origin> <binary-origin>release/modules/ext/curvesapi-1.08.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/cxf-core-3.5.0.jar</runtime-relative-path> <runtime-relative-path>ext/dd-plist-1.28.jar</runtime-relative-path>
<binary-origin>release/modules/ext/cxf-core-3.5.0.jar</binary-origin> <binary-origin>release/modules/ext/dd-plist-1.28.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/cxf-rt-frontend-jaxrs-3.5.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/cxf-rt-frontend-jaxrs-3.5.0.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/cxf-rt-rs-client-3.5.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/cxf-rt-rs-client-3.5.0.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/cxf-rt-security-3.5.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/cxf-rt-security-3.5.0.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/cxf-rt-transports-http-3.5.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/cxf-rt-transports-http-3.5.0.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/dd-plist-1.23.jar</runtime-relative-path>
<binary-origin>release/modules/ext/dd-plist-1.23.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/dec-0.1.2.jar</runtime-relative-path> <runtime-relative-path>ext/dec-0.1.2.jar</runtime-relative-path>
<binary-origin>release/modules/ext/dec-0.1.2.jar</binary-origin> <binary-origin>release/modules/ext/dec-0.1.2.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/ehcache-core-2.6.2.jar</runtime-relative-path> <runtime-relative-path>ext/fontbox-3.0.3.jar</runtime-relative-path>
<binary-origin>release/modules/ext/ehcache-core-2.6.2.jar</binary-origin> <binary-origin>release/modules/ext/fontbox-3.0.3.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/error_prone_annotations-2.18.0.jar</runtime-relative-path> <runtime-relative-path>ext/geoapi-3.0.2.jar</runtime-relative-path>
<binary-origin>release/modules/ext/error_prone_annotations-2.18.0.jar</binary-origin> <binary-origin>release/modules/ext/geoapi-3.0.2.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/failureaccess-1.0.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/failureaccess-1.0.1.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/fontbox-2.0.25.jar</runtime-relative-path>
<binary-origin>release/modules/ext/fontbox-2.0.25.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/geoapi-3.0.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/geoapi-3.0.1.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/grib-4.5.5.jar</runtime-relative-path> <runtime-relative-path>ext/grib-4.5.5.jar</runtime-relative-path>
<binary-origin>release/modules/ext/grib-4.5.5.jar</binary-origin> <binary-origin>release/modules/ext/grib-4.5.5.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/gson-2.9.0.jar</runtime-relative-path> <runtime-relative-path>ext/httpclient-4.5.14.jar</runtime-relative-path>
<binary-origin>release/modules/ext/gson-2.9.0.jar</binary-origin> <binary-origin>release/modules/ext/httpclient-4.5.14.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/guava-32.0.1-jre.jar</runtime-relative-path> <runtime-relative-path>ext/httpcore-4.4.16.jar</runtime-relative-path>
<binary-origin>release/modules/ext/guava-32.0.1-jre.jar</binary-origin> <binary-origin>release/modules/ext/httpcore-4.4.16.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/HikariCP-java7-2.4.13.jar</runtime-relative-path> <runtime-relative-path>ext/httpmime-4.5.14.jar</runtime-relative-path>
<binary-origin>release/modules/ext/HikariCP-java7-2.4.13.jar</binary-origin> <binary-origin>release/modules/ext/httpmime-4.5.14.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/httpclient-4.5.13.jar</runtime-relative-path> <runtime-relative-path>ext/istack-commons-runtime-4.1.2.jar</runtime-relative-path>
<binary-origin>release/modules/ext/httpclient-4.5.13.jar</binary-origin> <binary-origin>release/modules/ext/istack-commons-runtime-4.1.2.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/httpcore-4.4.13.jar</runtime-relative-path> <runtime-relative-path>ext/jackcess-4.0.7.jar</runtime-relative-path>
<binary-origin>release/modules/ext/httpcore-4.4.13.jar</binary-origin> <binary-origin>release/modules/ext/jackcess-4.0.7.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/httpmime-4.5.13.jar</runtime-relative-path> <runtime-relative-path>ext/jackcess-encrypt-4.0.2.jar</runtime-relative-path>
<binary-origin>release/modules/ext/httpmime-4.5.13.jar</binary-origin> <binary-origin>release/modules/ext/jackcess-encrypt-4.0.2.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/httpservices-4.5.5.jar</runtime-relative-path> <runtime-relative-path>ext/jackson-annotations-2.18.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/httpservices-4.5.5.jar</binary-origin> <binary-origin>release/modules/ext/jackson-annotations-2.18.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/isoparser-1.9.41.7.jar</runtime-relative-path> <runtime-relative-path>ext/jackson-core-2.18.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/isoparser-1.9.41.7.jar</binary-origin> <binary-origin>release/modules/ext/jackson-core-2.18.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/istack-commons-runtime-3.0.12.jar</runtime-relative-path> <runtime-relative-path>ext/jackson-databind-2.18.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/istack-commons-runtime-3.0.12.jar</binary-origin> <binary-origin>release/modules/ext/jackson-databind-2.18.0.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/j2objc-annotations-2.8.jar</runtime-relative-path>
<binary-origin>release/modules/ext/j2objc-annotations-2.8.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/jackcess-4.0.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jackcess-4.0.1.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/jackcess-encrypt-4.0.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jackcess-encrypt-4.0.1.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/jackson-annotations-2.15.2.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jackson-annotations-2.15.2.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/jackson-core-2.15.2.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jackson-core-2.15.2.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/jackson-databind-2.15.2.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jackson-databind-2.15.2.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/jai-imageio-core-1.4.0.jar</runtime-relative-path> <runtime-relative-path>ext/jai-imageio-core-1.4.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jai-imageio-core-1.4.0.jar</binary-origin> <binary-origin>release/modules/ext/jai-imageio-core-1.4.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/jakarta.activation-1.2.2.jar</runtime-relative-path> <runtime-relative-path>ext/jakarta.activation-api-2.1.3.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jakarta.activation-1.2.2.jar</binary-origin> <binary-origin>release/modules/ext/jakarta.activation-api-2.1.3.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/jakarta.activation-api-1.2.2.jar</runtime-relative-path> <runtime-relative-path>ext/jakarta.ws.rs-api-3.1.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jakarta.activation-api-1.2.2.jar</binary-origin> <binary-origin>release/modules/ext/jakarta.ws.rs-api-3.1.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/jakarta.annotation-api-1.3.5.jar</runtime-relative-path> <runtime-relative-path>ext/jakarta.xml.bind-api-4.0.2.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jakarta.annotation-api-1.3.5.jar</binary-origin> <binary-origin>release/modules/ext/jakarta.xml.bind-api-4.0.2.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/jakarta.ws.rs-api-2.1.6.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jakarta.ws.rs-api-2.1.6.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/jakarta.xml.bind-api-2.3.3.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jakarta.xml.bind-api-2.3.3.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/java-libpst-0.9.3.jar</runtime-relative-path> <runtime-relative-path>ext/java-libpst-0.9.3.jar</runtime-relative-path>
<binary-origin>release/modules/ext/java-libpst-0.9.3.jar</binary-origin> <binary-origin>release/modules/ext/java-libpst-0.9.3.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/jaxb-runtime-2.3.5.jar</runtime-relative-path> <runtime-relative-path>ext/jaxb-core-4.0.5.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jaxb-runtime-2.3.5.jar</binary-origin> <binary-origin>release/modules/ext/jaxb-core-4.0.5.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/jbig2-imageio-3.0.3.jar</runtime-relative-path> <runtime-relative-path>ext/jaxb-runtime-4.0.5.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jbig2-imageio-3.0.3.jar</binary-origin> <binary-origin>release/modules/ext/jaxb-runtime-4.0.5.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/jbig2-imageio-3.0.4.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jbig2-imageio-3.0.4.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/jcip-annotations-1.0.jar</runtime-relative-path> <runtime-relative-path>ext/jcip-annotations-1.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jcip-annotations-1.0.jar</binary-origin> <binary-origin>release/modules/ext/jcip-annotations-1.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/jcl-over-slf4j-1.7.36.jar</runtime-relative-path> <runtime-relative-path>ext/jcl-over-slf4j-2.0.16.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jcl-over-slf4j-1.7.36.jar</binary-origin> <binary-origin>release/modules/ext/jcl-over-slf4j-2.0.16.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/jcommander-1.82.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jcommander-1.82.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/jdom2-2.0.6.1.jar</runtime-relative-path> <runtime-relative-path>ext/jdom2-2.0.6.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jdom2-2.0.6.1.jar</binary-origin> <binary-origin>release/modules/ext/jdom2-2.0.6.1.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/jempbox-1.8.16.jar</runtime-relative-path> <runtime-relative-path>ext/jempbox-1.8.17.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jempbox-1.8.16.jar</binary-origin> <binary-origin>release/modules/ext/jempbox-1.8.17.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/jhighlight-1.0.3.jar</runtime-relative-path> <runtime-relative-path>ext/jhighlight-1.1.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jhighlight-1.0.3.jar</binary-origin> <binary-origin>release/modules/ext/jhighlight-1.1.0.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/jj2000-5.2.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jj2000-5.2.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/jmatio-1.5.jar</runtime-relative-path> <runtime-relative-path>ext/jmatio-1.5.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jmatio-1.5.jar</binary-origin> <binary-origin>release/modules/ext/jmatio-1.5.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/jna-5.16.0.jar</runtime-relative-path> <runtime-relative-path>ext/jna-5.15.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jna-5.16.0.jar</binary-origin> <binary-origin>release/modules/ext/jna-5.15.0.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/joda-time-2.2.jar</runtime-relative-path>
<binary-origin>release/modules/ext/joda-time-2.2.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/json-simple-1.1.1.jar</runtime-relative-path> <runtime-relative-path>ext/json-simple-1.1.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/json-simple-1.1.1.jar</binary-origin> <binary-origin>release/modules/ext/json-simple-1.1.1.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/jsr305-3.0.2.jar</runtime-relative-path> <runtime-relative-path>ext/jsoup-1.18.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jsr305-3.0.2.jar</binary-origin> <binary-origin>release/modules/ext/jsoup-1.18.1.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/jul-to-slf4j-1.7.36.jar</runtime-relative-path> <runtime-relative-path>ext/juniversalchardet-2.5.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jul-to-slf4j-1.7.36.jar</binary-origin> <binary-origin>release/modules/ext/juniversalchardet-2.5.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/juniversalchardet-1.0.3.jar</runtime-relative-path> <runtime-relative-path>ext/junrar-7.5.5.jar</runtime-relative-path>
<binary-origin>release/modules/ext/juniversalchardet-1.0.3.jar</binary-origin> <binary-origin>release/modules/ext/junrar-7.5.5.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/junrar-7.4.1.jar</runtime-relative-path> <runtime-relative-path>ext/jwarc-0.30.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/junrar-7.4.1.jar</binary-origin> <binary-origin>release/modules/ext/jwarc-0.30.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar</runtime-relative-path> <runtime-relative-path>ext/log4j-api-2.24.3.jar</runtime-relative-path>
<binary-origin>release/modules/ext/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar</binary-origin> <binary-origin>release/modules/ext/log4j-api-2.24.3.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/mchange-commons-java-0.2.19.jar</runtime-relative-path> <runtime-relative-path>ext/metadata-extractor-2.19.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/mchange-commons-java-0.2.19.jar</binary-origin> <binary-origin>release/modules/ext/metadata-extractor-2.19.0.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/metadata-extractor-2.15.0.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/metadata-extractor-2.15.0.1.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/netcdf4-4.5.5.jar</runtime-relative-path> <runtime-relative-path>ext/netcdf4-4.5.5.jar</runtime-relative-path>
@ -668,124 +588,228 @@
<binary-origin>release/modules/ext/ooxml-schemas-1.4.jar</binary-origin> <binary-origin>release/modules/ext/ooxml-schemas-1.4.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/openjson-1.0.12.jar</runtime-relative-path> <runtime-relative-path>ext/openjson-1.0.13.jar</runtime-relative-path>
<binary-origin>release/modules/ext/openjson-1.0.12.jar</binary-origin> <binary-origin>release/modules/ext/openjson-1.0.13.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/opennlp-tools-1.9.4.jar</runtime-relative-path>
<binary-origin>release/modules/ext/opennlp-tools-1.9.4.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/parso-2.0.14.jar</runtime-relative-path> <runtime-relative-path>ext/parso-2.0.14.jar</runtime-relative-path>
<binary-origin>release/modules/ext/parso-2.0.14.jar</binary-origin> <binary-origin>release/modules/ext/parso-2.0.14.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/pdfbox-2.0.25.jar</runtime-relative-path> <runtime-relative-path>ext/pdfbox-3.0.3.jar</runtime-relative-path>
<binary-origin>release/modules/ext/pdfbox-2.0.25.jar</binary-origin> <binary-origin>release/modules/ext/pdfbox-3.0.3.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/pdfbox-tools-2.0.25.jar</runtime-relative-path> <runtime-relative-path>ext/pdfbox-io-3.0.3.jar</runtime-relative-path>
<binary-origin>release/modules/ext/pdfbox-tools-2.0.25.jar</binary-origin> <binary-origin>release/modules/ext/pdfbox-io-3.0.3.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/poi-4.1.2.jar</runtime-relative-path> <runtime-relative-path>ext/pdfbox-tools-3.0.3.jar</runtime-relative-path>
<binary-origin>release/modules/ext/poi-4.1.2.jar</binary-origin> <binary-origin>release/modules/ext/pdfbox-tools-3.0.3.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/poi-ooxml-4.1.2.jar</runtime-relative-path> <runtime-relative-path>ext/picocli-4.7.6.jar</runtime-relative-path>
<binary-origin>release/modules/ext/poi-ooxml-4.1.2.jar</binary-origin> <binary-origin>release/modules/ext/picocli-4.7.6.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/poi-ooxml-schemas-4.1.2.jar</runtime-relative-path> <runtime-relative-path>ext/poi-5.3.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/poi-ooxml-schemas-4.1.2.jar</binary-origin> <binary-origin>release/modules/ext/poi-5.3.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/poi-scratchpad-4.1.2.jar</runtime-relative-path> <runtime-relative-path>ext/poi-ooxml-5.3.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/poi-scratchpad-4.1.2.jar</binary-origin> <binary-origin>release/modules/ext/poi-ooxml-5.3.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/preflight-2.0.25.jar</runtime-relative-path> <runtime-relative-path>ext/poi-ooxml-lite-5.3.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/preflight-2.0.25.jar</binary-origin> <binary-origin>release/modules/ext/poi-ooxml-lite-5.3.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/protobuf-java-3.19.4.jar</runtime-relative-path> <runtime-relative-path>ext/poi-scratchpad-5.3.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/protobuf-java-3.19.4.jar</binary-origin> <binary-origin>release/modules/ext/poi-scratchpad-5.3.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/quartz-2.3.2.jar</runtime-relative-path> <runtime-relative-path>ext/protobuf-java-3.25.5.jar</runtime-relative-path>
<binary-origin>release/modules/ext/quartz-2.3.2.jar</binary-origin> <binary-origin>release/modules/ext/protobuf-java-3.25.5.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/rome-1.18.0.jar</runtime-relative-path> <runtime-relative-path>ext/rome-2.1.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/rome-1.18.0.jar</binary-origin> <binary-origin>release/modules/ext/rome-2.1.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/rome-utils-1.18.0.jar</runtime-relative-path> <runtime-relative-path>ext/rome-utils-2.1.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/rome-utils-1.18.0.jar</binary-origin> <binary-origin>release/modules/ext/rome-utils-2.1.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/sentiment-analysis-parser-0.1.jar</runtime-relative-path> <runtime-relative-path>ext/sis-feature-1.4.jar</runtime-relative-path>
<binary-origin>release/modules/ext/sentiment-analysis-parser-0.1.jar</binary-origin> <binary-origin>release/modules/ext/sis-feature-1.4.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/sis-feature-1.1.jar</runtime-relative-path> <runtime-relative-path>ext/sis-metadata-1.4.jar</runtime-relative-path>
<binary-origin>release/modules/ext/sis-feature-1.1.jar</binary-origin> <binary-origin>release/modules/ext/sis-metadata-1.4.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/sis-metadata-1.1.jar</runtime-relative-path> <runtime-relative-path>ext/sis-netcdf-1.4.jar</runtime-relative-path>
<binary-origin>release/modules/ext/sis-metadata-1.1.jar</binary-origin> <binary-origin>release/modules/ext/sis-netcdf-1.4.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/sis-netcdf-1.1.jar</runtime-relative-path> <runtime-relative-path>ext/sis-referencing-1.4.jar</runtime-relative-path>
<binary-origin>release/modules/ext/sis-netcdf-1.1.jar</binary-origin> <binary-origin>release/modules/ext/sis-referencing-1.4.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/sis-referencing-1.1.jar</runtime-relative-path> <runtime-relative-path>ext/sis-storage-1.4.jar</runtime-relative-path>
<binary-origin>release/modules/ext/sis-referencing-1.1.jar</binary-origin> <binary-origin>release/modules/ext/sis-storage-1.4.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/sis-storage-1.1.jar</runtime-relative-path> <runtime-relative-path>ext/sis-utility-1.4.jar</runtime-relative-path>
<binary-origin>release/modules/ext/sis-storage-1.1.jar</binary-origin> <binary-origin>release/modules/ext/sis-utility-1.4.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/sis-utility-1.1.jar</runtime-relative-path> <runtime-relative-path>ext/slf4j-api-2.0.16.jar</runtime-relative-path>
<binary-origin>release/modules/ext/sis-utility-1.1.jar</binary-origin> <binary-origin>release/modules/ext/slf4j-api-2.0.16.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/slf4j-api-1.7.36.jar</runtime-relative-path> <runtime-relative-path>ext/SparseBitSet-1.3.jar</runtime-relative-path>
<binary-origin>release/modules/ext/slf4j-api-1.7.36.jar</binary-origin> <binary-origin>release/modules/ext/SparseBitSet-1.3.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/SparseBitSet-1.2.jar</runtime-relative-path> <runtime-relative-path>ext/sqlite-jdbc-3.46.1.3.jar</runtime-relative-path>
<binary-origin>release/modules/ext/SparseBitSet-1.2.jar</binary-origin> <binary-origin>release/modules/ext/sqlite-jdbc-3.46.1.3.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/stax2-api-4.2.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/stax2-api-4.2.1.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/tagsoup-1.2.1.jar</runtime-relative-path> <runtime-relative-path>ext/tagsoup-1.2.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/tagsoup-1.2.1.jar</binary-origin> <binary-origin>release/modules/ext/tagsoup-1.2.1.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/tika-core-1.28.1.jar</runtime-relative-path> <runtime-relative-path>ext/tika-core-3.0.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/tika-core-1.28.1.jar</binary-origin> <binary-origin>release/modules/ext/tika-core-3.0.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/tika-parsers-1.28.1.jar</runtime-relative-path> <runtime-relative-path>ext/tika-parser-advancedmedia-module-3.0.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/tika-parsers-1.28.1.jar</binary-origin> <binary-origin>release/modules/ext/tika-parser-advancedmedia-module-3.0.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/txw2-2.3.5.jar</runtime-relative-path> <runtime-relative-path>ext/tika-parser-advancedmedia-package-3.0.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/txw2-2.3.5.jar</binary-origin> <binary-origin>release/modules/ext/tika-parser-advancedmedia-package-3.0.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/udunits-4.5.5.jar</runtime-relative-path> <runtime-relative-path>ext/tika-parser-apple-module-3.0.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/udunits-4.5.5.jar</binary-origin> <binary-origin>release/modules/ext/tika-parser-apple-module-3.0.0.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/unit-api-1.0.jar</runtime-relative-path> <runtime-relative-path>ext/tika-parser-audiovideo-module-3.0.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/unit-api-1.0.jar</binary-origin> <binary-origin>release/modules/ext/tika-parser-audiovideo-module-3.0.0.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/tika-parser-cad-module-3.0.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/tika-parser-cad-module-3.0.0.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/tika-parser-code-module-3.0.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/tika-parser-code-module-3.0.0.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/tika-parser-crypto-module-3.0.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/tika-parser-crypto-module-3.0.0.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/tika-parser-digest-commons-3.0.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/tika-parser-digest-commons-3.0.0.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/tika-parser-font-module-3.0.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/tika-parser-font-module-3.0.0.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/tika-parser-html-module-3.0.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/tika-parser-html-module-3.0.0.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/tika-parser-image-module-3.0.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/tika-parser-image-module-3.0.0.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/tika-parser-jdbc-commons-3.0.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/tika-parser-jdbc-commons-3.0.0.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/tika-parser-mail-commons-3.0.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/tika-parser-mail-commons-3.0.0.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/tika-parser-mail-module-3.0.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/tika-parser-mail-module-3.0.0.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/tika-parser-microsoft-module-3.0.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/tika-parser-microsoft-module-3.0.0.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/tika-parser-miscoffice-module-3.0.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/tika-parser-miscoffice-module-3.0.0.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/tika-parser-news-module-3.0.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/tika-parser-news-module-3.0.0.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/tika-parser-ocr-module-3.0.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/tika-parser-ocr-module-3.0.0.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/tika-parser-pdf-module-3.0.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/tika-parser-pdf-module-3.0.0.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/tika-parser-pkg-module-3.0.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/tika-parser-pkg-module-3.0.0.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/tika-parser-scientific-module-3.0.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/tika-parser-scientific-module-3.0.0.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/tika-parser-scientific-package-3.0.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/tika-parser-scientific-package-3.0.0.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/tika-parser-sqlite3-module-3.0.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/tika-parser-sqlite3-module-3.0.0.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/tika-parser-sqlite3-package-3.0.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/tika-parser-sqlite3-package-3.0.0.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/tika-parser-text-module-3.0.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/tika-parser-text-module-3.0.0.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/tika-parser-webarchive-module-3.0.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/tika-parser-webarchive-module-3.0.0.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/tika-parser-xml-module-3.0.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/tika-parser-xml-module-3.0.0.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/tika-parser-xmp-commons-3.0.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/tika-parser-xmp-commons-3.0.0.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/tika-parser-zip-commons-3.0.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/tika-parser-zip-commons-3.0.0.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/tika-parsers-standard-package-3.0.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/tika-parsers-standard-package-3.0.0.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/txw2-4.0.5.jar</runtime-relative-path>
<binary-origin>release/modules/ext/txw2-4.0.5.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/unit-api-2.2.jar</runtime-relative-path>
<binary-origin>release/modules/ext/unit-api-2.2.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/vorbis-java-core-0.8.jar</runtime-relative-path> <runtime-relative-path>ext/vorbis-java-core-0.8.jar</runtime-relative-path>
@ -796,36 +820,20 @@
<binary-origin>release/modules/ext/vorbis-java-tika-0.8.jar</binary-origin> <binary-origin>release/modules/ext/vorbis-java-tika-0.8.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/woodstox-core-6.2.8.jar</runtime-relative-path> <runtime-relative-path>ext/xmlbeans-5.2.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/woodstox-core-6.2.8.jar</binary-origin> <binary-origin>release/modules/ext/xmlbeans-5.2.1.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/xercesImpl-2.12.2.jar</runtime-relative-path> <runtime-relative-path>ext/xmpbox-3.0.3.jar</runtime-relative-path>
<binary-origin>release/modules/ext/xercesImpl-2.12.2.jar</binary-origin> <binary-origin>release/modules/ext/xmpbox-3.0.3.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/xml-apis-1.4.01.jar</runtime-relative-path> <runtime-relative-path>ext/xmpcore-6.1.11.jar</runtime-relative-path>
<binary-origin>release/modules/ext/xml-apis-1.4.01.jar</binary-origin> <binary-origin>release/modules/ext/xmpcore-6.1.11.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/xmlbeans-3.1.0.jar</runtime-relative-path> <runtime-relative-path>ext/xz-1.10.jar</runtime-relative-path>
<binary-origin>release/modules/ext/xmlbeans-3.1.0.jar</binary-origin> <binary-origin>release/modules/ext/xz-1.10.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/xmlschema-core-2.3.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/xmlschema-core-2.3.0.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/xmpbox-2.0.25.jar</runtime-relative-path>
<binary-origin>release/modules/ext/xmpbox-2.0.25.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/xmpcore-shaded-6.1.11.jar</runtime-relative-path>
<binary-origin>release/modules/ext/xmpcore-shaded-6.1.11.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/xz-1.9.jar</runtime-relative-path>
<binary-origin>release/modules/ext/xz-1.9.jar</binary-origin>
</class-path-extension> </class-path-extension>
</data> </data>
</configuration> </configuration>

View File

@ -6,15 +6,17 @@ cache:
- C:\ProgramData\chocolatey\lib - C:\ProgramData\chocolatey\lib
- '%APPVEYOR_BUILD_FOLDER%\Core\test\qa-functional\data' - '%APPVEYOR_BUILD_FOLDER%\Core\test\qa-functional\data'
image: Visual Studio 2015 image: Visual Studio 2019
platform: x64 platform: x64
environment: environment:
global: global:
TSK_HOME: "C:\\sleuthkit" TSK_HOME: "C:\\sleuthkit"
JDK_HOME: "C:\\Program Files\\Java\\jdk13" JDK_HOME: "C:\\Program Files\\Java\\jdk17"
JAVA_HOME: "C:\\Program Files\\Java\\jdk13" JAVA_HOME: "C:\\Program Files\\Java\\jdk17"
PYTHON: "C:\\Python36-x64" PYTHON: "C:\\Python36-x64"
PLATFORM_REL_DIR: "netbeans-plat/15"
HARNESS_REL_DIR: "netbeans-plat/15/harness"
install: install:
- ps: choco install nuget.commandline - ps: choco install nuget.commandline
@ -27,7 +29,7 @@ install:
- python setupSleuthkitBranch.py - python setupSleuthkitBranch.py
services: services:
- postgresql95 - postgresql96
build_script: build_script:
- cd %TSK_HOME% - cd %TSK_HOME%
@ -41,8 +43,9 @@ build_script:
- cmd: ant -q - cmd: ant -q
- ps: popd - ps: popd
- cd %APPVEYOR_BUILD_FOLDER% - cd %APPVEYOR_BUILD_FOLDER%
- cmd: ant -q build - cmd: ant -q -Dnbplatform.active.dir="%APPVEYOR_BUILD_FOLDER%/%PLATFORM_REL_DIR%" -Dnbplatform.default.harness.dir="%APPVEYOR_BUILD_FOLDER%/%HARNESS_REL_DIR%" build
test_script: test_script:
- cd %APPVEYOR_BUILD_FOLDER% - cd %APPVEYOR_BUILD_FOLDER%
- cmd: ant -q test-no-regression - cmd: ant -f "%APPVEYOR_BUILD_FOLDER%/Core/build.xml" -Dnbplatform.active.dir="%APPVEYOR_BUILD_FOLDER%/%PLATFORM_REL_DIR%" -Dnbplatform.default.harness.dir="%APPVEYOR_BUILD_FOLDER%/%HARNESS_REL_DIR%" test-unit
- cmd: ant -f "%APPVEYOR_BUILD_FOLDER%/KeywordSearch/build.xml" -Dnbplatform.active.dir="%APPVEYOR_BUILD_FOLDER%/%PLATFORM_REL_DIR%" -Dnbplatform.default.harness.dir="%APPVEYOR_BUILD_FOLDER%/%HARNESS_REL_DIR%" test-unit

View File

@ -1,5 +1,5 @@
#Updated by build script #Updated by build script
#Thu, 20 Jul 2023 19:55:04 -0400 #Fri, 03 Jan 2025 17:15:38 -0500
LBL_splash_window_title=Starting Autopsy LBL_splash_window_title=Starting Autopsy
SPLASH_HEIGHT=314 SPLASH_HEIGHT=314
SPLASH_WIDTH=538 SPLASH_WIDTH=538
@ -8,4 +8,4 @@ SplashRunningTextBounds=0,289,538,18
SplashRunningTextColor=0x0 SplashRunningTextColor=0x0
SplashRunningTextFontSize=19 SplashRunningTextFontSize=19
currentVersion=Autopsy 4.20.0 currentVersion=Autopsy 4.21.0

View File

@ -1,4 +1,4 @@
#Updated by build script #Updated by build script
#Thu, 20 Jul 2023 19:55:04 -0400 #Fri, 03 Jan 2025 17:15:38 -0500
CTL_MainWindow_Title=Autopsy 4.20.0 CTL_MainWindow_Title=Autopsy 4.21.0
CTL_MainWindow_Title_No_Project=Autopsy 4.20.0 CTL_MainWindow_Title_No_Project=Autopsy 4.21.0

29
dependency-check.xml Normal file
View File

@ -0,0 +1,29 @@
<project name="AutopsyDependencyCheck">
<!-- after downloading dependency-check from https://jeremylong.github.io/DependencyCheck and building Autopsy, can be run with a command like
`ant dependency-check -f dependency-check.xml -Ddependency-check-dir=/path/to/dir -Ddependency-check-out=/path/to/dir -Djar-dir=%AUTOPSY_SRC_PATH%\build\cluster\modules\ext` -->
<!--set up dependency check: https://jeremylong.github.io/DependencyCheck/dependency-check-ant/ -->
<path id="dependency-check.path">
<pathelement location="${dependency-check-dir}/dependency-check-ant.jar"/>
<fileset dir="${dependency-check-dir}/lib">
<include name="*.jar"/>
</fileset>
</path>
<taskdef resource="dependency-check-taskdefs.properties">
<classpath refid="dependency-check.path" />
</taskdef>
<property name="jar-dir" value="${basedir}/build/cluster/modules/ext"/>
<!--runs dependency check as an ant task: https://jeremylong.github.io/DependencyCheck/dependency-check-ant/configuration.html -->
<target name="dependency-check" description="Dependency-Check Analysis">
<dependency-check projectname="Autopsy"
reportoutputdirectory="${dependency-check-out}"
reportformat="ALL">
<!--<suppressionfile path="${basedir}/path/to/suppression.xml" />-->
<fileset dir="${jar-dir}">
<include name="**/*.jar"/>
</fileset>
</dependency-check>
</target>
</project>

View File

@ -7,9 +7,9 @@
</configurations> </configurations>
<dependencies> <dependencies>
<dependency conf="autopsy->default" org="org.apache.james" name="apache-mime4j-mbox-iterator" rev="0.8.4"/> <dependency conf="autopsy->default" org="org.apache.james" name="apache-mime4j-mbox-iterator" rev="0.8.11"/>
<dependency conf="autopsy->default" org="com.googlecode.ez-vcard" name="ez-vcard" rev="0.11.3"/> <dependency conf="autopsy->default" org="com.googlecode.ez-vcard" name="ez-vcard" rev="0.12.1"/>
<override org="org.jsoup" module="jsoup" rev="1.16.1"/> <!-- <override org="org.jsoup" module="jsoup" rev="1.16.1"/>
<override org="com.fasterxml.jackson.core" module="jackson-core" rev="2.15.2"/> <override org="com.fasterxml.jackson.core" module="jackson-core" rev="2.15.2"/> -->
</dependencies> </dependencies>
</ivy-module> </ivy-module>

View File

@ -1,13 +1,13 @@
file.reference.apache-mime4j-mbox-iterator-0.8.4.jar=release/modules/ext/apache-mime4j-mbox-iterator-0.8.4.jar file.reference.apache-mime4j-mbox-iterator-0.8.11.jar=release/modules/ext/apache-mime4j-mbox-iterator-0.8.11.jar
file.reference.ez-vcard-0.11.3.jar=release/modules/ext/ez-vcard-0.11.3.jar file.reference.ez-vcard-0.12.1.jar=release/modules/ext/ez-vcard-0.12.1.jar
file.reference.freemarker-2.3.31.jar=release/modules/ext/freemarker-2.3.31.jar file.reference.freemarker-2.3.32.jar=release/modules/ext/freemarker-2.3.32.jar
file.reference.jackson-core-2.15.2.jar=release/modules/ext/jackson-core-2.15.2.jar file.reference.jackson-core-2.15.2.jar=release/modules/ext/jackson-core-2.15.2.jar
file.reference.java-libpst-0.9.5-SNAPSHOT.jar=release/modules/ext/java-libpst-0.9.5-SNAPSHOT.jar file.reference.java-libpst-0.9.5-SNAPSHOT.jar=release/modules/ext/java-libpst-0.9.5-SNAPSHOT.jar
file.reference.jsoup-1.16.1.jar=release/modules/ext/jsoup-1.16.1.jar file.reference.jsoup-1.16.1.jar=release/modules/ext/jsoup-1.16.1.jar
file.reference.vinnie-2.0.2.jar=release/modules/ext/vinnie-2.0.2.jar file.reference.vinnie-2.0.2.jar=release/modules/ext/vinnie-2.0.2.jar
javac.compilerargs=-Xlint -Xlint\:-serial
javac.source=17 javac.source=17
javac.compilerargs=-Xlint -Xlint:-serial
license.file=../LICENSE-2.0.txt license.file=../LICENSE-2.0.txt
nbm.homepage=http://www.sleuthkit.org/autopsy/ nbm.homepage=http\://www.sleuthkit.org/autopsy/
nbm.needs.restart=true nbm.needs.restart=true
spec.version.base=4.0 spec.version.base=4.0

View File

@ -78,16 +78,16 @@
</module-dependencies> </module-dependencies>
<public-packages/> <public-packages/>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/apache-mime4j-mbox-iterator-0.8.4.jar</runtime-relative-path> <runtime-relative-path>ext/apache-mime4j-mbox-iterator-0.8.11.jar</runtime-relative-path>
<binary-origin>release/modules/ext/apache-mime4j-mbox-iterator-0.8.4.jar</binary-origin> <binary-origin>release/modules/ext/apache-mime4j-mbox-iterator-0.8.11.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/ez-vcard-0.11.3.jar</runtime-relative-path> <runtime-relative-path>ext/ez-vcard-0.12.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/ez-vcard-0.11.3.jar</binary-origin> <binary-origin>release/modules/ext/ez-vcard-0.12.1.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/freemarker-2.3.31.jar</runtime-relative-path> <runtime-relative-path>ext/freemarker-2.3.32.jar</runtime-relative-path>
<binary-origin>release/modules/ext/freemarker-2.3.31.jar</binary-origin> <binary-origin>release/modules/ext/freemarker-2.3.32.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/jackson-core-2.15.2.jar</runtime-relative-path> <runtime-relative-path>ext/jackson-core-2.15.2.jar</runtime-relative-path>