From c206a15d762d84c45acc3cd451257a597c829aa0 Mon Sep 17 00:00:00 2001
From: Greg DiCristofaro <gregd@basistech.com>
Date: Mon, 21 Mar 2022 12:34:56 -0400
Subject: [PATCH] moving test dependencies to new package

---
 Core/ivy.xml                                  |  3 --
 Core/nbproject/project.properties             |  4 --
 Core/nbproject/project.xml                    | 21 +++-------
 CoreTestLibs/build.xml                        | 23 ++++++++++
 CoreTestLibs/ivy.xml                          | 13 ++++++
 CoreTestLibs/ivysettings.xml                  |  9 ++++
 CoreTestLibs/manifest.mf                      |  6 +++
 CoreTestLibs/nbproject/build-impl.xml         | 42 +++++++++++++++++++
 CoreTestLibs/nbproject/platform.properties    |  5 +++
 CoreTestLibs/nbproject/project.properties     |  6 +++
 CoreTestLibs/nbproject/project.xml            | 30 +++++++++++++
 .../org.mockito.plugins.MockMaker             |  1 +
 .../autopsy/coretestlibs/Bundle.properties    |  1 +
 nbproject/platform.properties                 |  6 ++-
 14 files changed, 145 insertions(+), 25 deletions(-)
 create mode 100644 CoreTestLibs/build.xml
 create mode 100644 CoreTestLibs/ivy.xml
 create mode 100644 CoreTestLibs/ivysettings.xml
 create mode 100644 CoreTestLibs/manifest.mf
 create mode 100644 CoreTestLibs/nbproject/build-impl.xml
 create mode 100644 CoreTestLibs/nbproject/platform.properties
 create mode 100644 CoreTestLibs/nbproject/project.properties
 create mode 100644 CoreTestLibs/nbproject/project.xml
 create mode 100644 CoreTestLibs/src/mockito-extensions/org.mockito.plugins.MockMaker
 create mode 100644 CoreTestLibs/src/org/sleuthkit/autopsy/coretestlibs/Bundle.properties

diff --git a/Core/ivy.xml b/Core/ivy.xml
index 5173860c32..5763767d74 100644
--- a/Core/ivy.xml
+++ b/Core/ivy.xml
@@ -51,9 +51,6 @@
         <!-- map support for geolocation -->
         <dependency conf="core->default" org="org.jxmapviewer" name="jxmapviewer2" rev="2.4"/>
 
-        <!-- For Discovery testing -->
-        <dependency conf="core->default" org="org.mockito" name="mockito-core" rev="3.5.7"/>
-
         <!-- for handling diffs -->
         <dependency org="io.github.java-diff-utils" name="java-diff-utils" rev="4.8"/>
 
diff --git a/Core/nbproject/project.properties b/Core/nbproject/project.properties
index 5377cc3d82..32d56f9b82 100644
--- a/Core/nbproject/project.properties
+++ b/Core/nbproject/project.properties
@@ -11,8 +11,6 @@ file.reference.bcpkix-jdk15on-1.54.jar=release\\modules\\ext\\bcpkix-jdk15on-1.5
 file.reference.bcprov-ext-jdk15on-1.54.jar=release\\modules\\ext\\bcprov-ext-jdk15on-1.54.jar
 file.reference.bcprov-jdk15on-1.52.jar=release\\modules\\ext\\bcprov-jdk15on-1.52.jar
 file.reference.bcprov-jdk15on-1.54.jar=release\\modules\\ext\\bcprov-jdk15on-1.54.jar
-file.reference.byte-buddy-1.10.13.jar=release\\modules\\ext\\byte-buddy-1.10.13.jar
-file.reference.byte-buddy-agent-1.10.13.jar=release\\modules\\ext\\byte-buddy-agent-1.10.13.jar
 file.reference.c3p0-0.9.5.jar=release\\modules\\ext\\c3p0-0.9.5.jar
 file.reference.checker-compat-qual-2.5.3.jar=release\\modules\\ext\\checker-compat-qual-2.5.3.jar
 file.reference.commons-beanutils-1.9.2.jar=release\\modules\\ext\\commons-beanutils-1.9.2.jar
@@ -91,9 +89,7 @@ file.reference.listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar=re
 file.reference.log4j-1.2.16.jar=release\\modules\\ext\\log4j-1.2.16.jar
 file.reference.mchange-commons-java-0.2.9.jar=release\\modules\\ext\\mchange-commons-java-0.2.9.jar
 file.reference.metadata-extractor-2.11.0.jar=release\\modules\\ext\\metadata-extractor-2.11.0.jar
-file.reference.mockito-core-3.5.7.jar=release\\modules\\ext\\mockito-core-3.5.7.jar
 file.reference.netty-3.7.0.Final.jar=release\\modules\\ext\\netty-3.7.0.Final.jar
-file.reference.objenesis-3.1.jar=release\\modules\\ext\\objenesis-3.1.jar
 file.reference.okhttp-2.7.5.jar=release\\modules\\ext\\okhttp-2.7.5.jar
 file.reference.okio-1.6.0.jar=release\\modules\\ext\\okio-1.6.0.jar
 file.reference.opencensus-api-0.19.2.jar=release\\modules\\ext\\opencensus-api-0.19.2.jar
diff --git a/Core/nbproject/project.xml b/Core/nbproject/project.xml
index 67d26d0cb7..6b4135b384 100644
--- a/Core/nbproject/project.xml
+++ b/Core/nbproject/project.xml
@@ -269,6 +269,11 @@
                         <code-name-base>org.netbeans.modules.nbjunit</code-name-base>
                         <compile-dependency/>
                     </test-dependency>
+                    <test-dependency>
+                        <code-name-base>org.sleuthkit.autopsy.coretestlibs</code-name-base>
+                        <recursive/>
+                        <compile-dependency/>
+                    </test-dependency>
                 </test-type>
                 <test-type>
                     <name>qa-functional</name>
@@ -405,10 +410,6 @@
                 <runtime-relative-path>ext/proto-google-cloud-translate-v3beta1-0.53.0.jar</runtime-relative-path>
                 <binary-origin>release\modules\ext\proto-google-cloud-translate-v3beta1-0.53.0.jar</binary-origin>
             </class-path-extension>
-            <class-path-extension>
-                <runtime-relative-path>ext/byte-buddy-1.10.13.jar</runtime-relative-path>
-                <binary-origin>release\modules\ext\byte-buddy-1.10.13.jar</binary-origin>
-            </class-path-extension>
             <class-path-extension>
                 <runtime-relative-path>ext/error_prone_annotations-2.3.2.jar</runtime-relative-path>
                 <binary-origin>release\modules\ext\error_prone_annotations-2.3.2.jar</binary-origin>
@@ -605,10 +606,6 @@
                 <runtime-relative-path>ext/decodetect-core-0.3.jar</runtime-relative-path>
                 <binary-origin>release\modules\ext\decodetect-core-0.3.jar</binary-origin>
             </class-path-extension>
-            <class-path-extension>
-                <runtime-relative-path>ext/mockito-core-3.5.7.jar</runtime-relative-path>
-                <binary-origin>release\modules\ext\mockito-core-3.5.7.jar</binary-origin>
-            </class-path-extension>
             <class-path-extension>
                 <runtime-relative-path>ext/httpclient-4.5.5.jar</runtime-relative-path>
                 <binary-origin>release\modules\ext\httpclient-4.5.5.jar</binary-origin>
@@ -621,10 +618,6 @@
                 <runtime-relative-path>ext/jackson-annotations-2.9.0.jar</runtime-relative-path>
                 <binary-origin>release\modules\ext\jackson-annotations-2.9.0.jar</binary-origin>
             </class-path-extension>
-            <class-path-extension>
-                <runtime-relative-path>ext/objenesis-3.1.jar</runtime-relative-path>
-                <binary-origin>release\modules\ext\objenesis-3.1.jar</binary-origin>
-            </class-path-extension>
             <class-path-extension>
                 <runtime-relative-path>ext/jackson-core-2.9.7.jar</runtime-relative-path>
                 <binary-origin>release\modules\ext\jackson-core-2.9.7.jar</binary-origin>
@@ -809,10 +802,6 @@
                 <runtime-relative-path>ext/jutf7-1.0.0.jar</runtime-relative-path>
                 <binary-origin>release\modules\ext\jutf7-1.0.0.jar</binary-origin>
             </class-path-extension>
-            <class-path-extension>
-                <runtime-relative-path>ext/byte-buddy-agent-1.10.13.jar</runtime-relative-path>
-                <binary-origin>release\modules\ext\byte-buddy-agent-1.10.13.jar</binary-origin>
-            </class-path-extension>
             <class-path-extension>
                 <runtime-relative-path>ext/batik-awt-util-1.6.jar</runtime-relative-path>
                 <binary-origin>release\modules\ext\batik-awt-util-1.6.jar</binary-origin>
diff --git a/CoreTestLibs/build.xml b/CoreTestLibs/build.xml
new file mode 100644
index 0000000000..50fa43ef1a
--- /dev/null
+++ b/CoreTestLibs/build.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- You may freely edit this file. See harness/README in the NetBeans platform -->
+<!-- for some information on what you could do (e.g. targets to override). -->
+<!-- If you delete this file and reopen the project it will be recreated. -->
+<project name="org.sleuthkit.autopsy.coretestlibs" default="netbeans" basedir="." xmlns:ivy="antlib:org.apache.ivy.ant">
+    <description>Builds, tests, and runs the project org.sleuthkit.autopsy.coretestlibs.</description>
+    <import file="nbproject/build-impl.xml"/>
+    <import file="../BootstrapIvy.xml"/>
+    
+    <property name="modules.dir" value="${basedir}/release/modules/" />
+    <property name="ext.dir" value="${modules.dir}/ext" />
+    
+    <target name="run-ivy">
+        <ivy:resolve log="quiet"/>
+        <ivy:retrieve conf="coretestlibs" pattern="${ext.dir}/[artifact]-[revision](-[classifier]).[ext]" />
+    </target>
+
+    <target name="init" depends="init-ivy, run-ivy, harness.init"/>
+    <target name="clean" depends="projectized-common.clean">
+        <!-- Clean out all jars downloaded by Ivy -->
+        <delete dir="${basedir}/release/"/>
+    </target>
+</project>
diff --git a/CoreTestLibs/ivy.xml b/CoreTestLibs/ivy.xml
new file mode 100644
index 0000000000..c5c044041d
--- /dev/null
+++ b/CoreTestLibs/ivy.xml
@@ -0,0 +1,13 @@
+<ivy-module version="2.0">
+    <info organisation="org.sleuthkit.autopsy" module="coretestlibs"/>
+    <configurations >
+        <conf name="coretestlibs"/>
+    </configurations>
+    <dependencies >
+        <dependency conf="coretestlibs->default" org="org.mockito" name="mockito-core" rev="3.5.7"/>
+        <dependency conf="coretestlibs->default" org="net.bytebuddy" name="byte-buddy" rev="1.10.3"/>
+        <dependency conf="coretestlibs->default" org="net.bytebuddy" name="byte-buddy-agent" rev="1.10.3"/>
+        <dependency conf="coretestlibs->default" org="org.objenesis" name="objenesis" rev="3.1"/>
+
+    </dependencies>
+</ivy-module>
\ No newline at end of file
diff --git a/CoreTestLibs/ivysettings.xml b/CoreTestLibs/ivysettings.xml
new file mode 100644
index 0000000000..9c3b496314
--- /dev/null
+++ b/CoreTestLibs/ivysettings.xml
@@ -0,0 +1,9 @@
+<ivysettings>
+  <settings defaultResolver="main"/>
+  <resolvers>
+    <chain name="main">
+        <ibiblio name="central" root="https://repo1.maven.org/maven2" m2compatible="true"/>
+        <ibiblio name="maven.restlet.org" root="http://maven.restlet.com" m2compatible="true" />  
+    </chain>
+  </resolvers>
+</ivysettings>
diff --git a/CoreTestLibs/manifest.mf b/CoreTestLibs/manifest.mf
new file mode 100644
index 0000000000..16a872ce8e
--- /dev/null
+++ b/CoreTestLibs/manifest.mf
@@ -0,0 +1,6 @@
+Manifest-Version: 1.0
+AutoUpdate-Show-In-Client: true
+OpenIDE-Module: org.sleuthkit.autopsy.coretestlibs
+OpenIDE-Module-Localizing-Bundle: org/sleuthkit/autopsy/coretestlibs/Bundle.properties
+OpenIDE-Module-Specification-Version: 1.0
+
diff --git a/CoreTestLibs/nbproject/build-impl.xml b/CoreTestLibs/nbproject/build-impl.xml
new file mode 100644
index 0000000000..8a342001d9
--- /dev/null
+++ b/CoreTestLibs/nbproject/build-impl.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+*** GENERATED FROM project.xml - DO NOT EDIT  ***
+***         EDIT ../build.xml INSTEAD         ***
+-->
+<project name="org.sleuthkit.autopsy.coretestlibs-impl" basedir="..">
+    <fail message="Please build using Ant 1.7.1 or higher.">
+        <condition>
+            <not>
+                <antversion atleast="1.7.1"/>
+            </not>
+        </condition>
+    </fail>
+    <property file="nbproject/private/platform-private.properties"/>
+    <property file="nbproject/platform.properties"/>
+    <macrodef name="property" uri="http://www.netbeans.org/ns/nb-module-project/2">
+        <attribute name="name"/>
+        <attribute name="value"/>
+        <sequential>
+            <property name="@{name}" value="${@{value}}"/>
+        </sequential>
+    </macrodef>
+    <macrodef name="evalprops" uri="http://www.netbeans.org/ns/nb-module-project/2">
+        <attribute name="property"/>
+        <attribute name="value"/>
+        <sequential>
+            <property name="@{property}" value="@{value}"/>
+        </sequential>
+    </macrodef>
+    <property file="${user.properties.file}"/>
+    <nbmproject2:property name="harness.dir" value="nbplatform.${nbplatform.active}.harness.dir" xmlns:nbmproject2="http://www.netbeans.org/ns/nb-module-project/2"/>
+    <nbmproject2:property name="nbplatform.active.dir" value="nbplatform.${nbplatform.active}.netbeans.dest.dir" xmlns:nbmproject2="http://www.netbeans.org/ns/nb-module-project/2"/>
+    <nbmproject2:evalprops property="cluster.path.evaluated" value="${cluster.path}" xmlns:nbmproject2="http://www.netbeans.org/ns/nb-module-project/2"/>
+    <fail message="Path to 'platform' cluster missing in $${cluster.path} property or using corrupt Netbeans Platform (missing harness).">
+        <condition>
+            <not>
+                <contains string="${cluster.path.evaluated}" substring="platform"/>
+            </not>
+        </condition>
+    </fail>
+    <import file="${harness.dir}/build.xml"/>
+</project>
diff --git a/CoreTestLibs/nbproject/platform.properties b/CoreTestLibs/nbproject/platform.properties
new file mode 100644
index 0000000000..b6989617a7
--- /dev/null
+++ b/CoreTestLibs/nbproject/platform.properties
@@ -0,0 +1,5 @@
+cluster.path=\
+    ${nbplatform.active.dir}/harness:\
+    ${nbplatform.active.dir}/java:\
+    ${nbplatform.active.dir}/platform
+nbplatform.active=default
diff --git a/CoreTestLibs/nbproject/project.properties b/CoreTestLibs/nbproject/project.properties
new file mode 100644
index 0000000000..e87abb328e
--- /dev/null
+++ b/CoreTestLibs/nbproject/project.properties
@@ -0,0 +1,6 @@
+file.reference.byte-buddy-1.10.13.jar=C:\\Users\\gregd\\Documents\\Source\\autopsy\\CoreTestLibs\\release\\modules\\ext\\byte-buddy-1.10.13.jar
+file.reference.byte-buddy-agent-1.10.13.jar=C:\\Users\\gregd\\Documents\\Source\\autopsy\\CoreTestLibs\\release\\modules\\ext\\byte-buddy-agent-1.10.13.jar
+file.reference.mockito-core-3.5.7.jar=release\\modules\\ext\\mockito-core-3.5.7.jar
+file.reference.objenesis-3.1.jar=C:\\Users\\gregd\\Documents\\Source\\autopsy\\CoreTestLibs\\release\\modules\\ext\\objenesis-3.1.jar
+javac.source=1.8
+javac.compilerargs=-Xlint -Xlint:-serial
diff --git a/CoreTestLibs/nbproject/project.xml b/CoreTestLibs/nbproject/project.xml
new file mode 100644
index 0000000000..c9fde41955
--- /dev/null
+++ b/CoreTestLibs/nbproject/project.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://www.netbeans.org/ns/project/1">
+    <type>org.netbeans.modules.apisupport.project</type>
+    <configuration>
+        <data xmlns="http://www.netbeans.org/ns/nb-module-project/3">
+            <code-name-base>org.sleuthkit.autopsy.coretestlibs</code-name-base>
+            <standalone/>
+            <module-dependencies/>
+            <public-packages>
+                <package>org.mockito</package>
+            </public-packages>
+            <class-path-extension>
+                <runtime-relative-path>ext/mockito-core-3.5.7.jar</runtime-relative-path>
+                <binary-origin>release\modules\ext\mockito-core-3.5.7.jar</binary-origin>
+            </class-path-extension>
+            <class-path-extension>
+                <runtime-relative-path>ext/byte-buddy-1.10.13.jar</runtime-relative-path>
+                <binary-origin>release\modules\ext\byte-buddy-1.10.13.jar</binary-origin>
+            </class-path-extension>
+            <class-path-extension>
+                <runtime-relative-path>ext/byte-buddy-agent-1.10.13.jar</runtime-relative-path>
+                <binary-origin>release\modules\ext\byte-buddy-agent-1.10.13.jar</binary-origin>
+            </class-path-extension>
+            <class-path-extension>
+                <runtime-relative-path>ext/objenesis-3.1.jar</runtime-relative-path>
+                <binary-origin>release\modules\ext\objenesis-3.1.jar</binary-origin>
+            </class-path-extension>
+        </data>
+    </configuration>
+</project>
diff --git a/CoreTestLibs/src/mockito-extensions/org.mockito.plugins.MockMaker b/CoreTestLibs/src/mockito-extensions/org.mockito.plugins.MockMaker
new file mode 100644
index 0000000000..ca6ee9cea8
--- /dev/null
+++ b/CoreTestLibs/src/mockito-extensions/org.mockito.plugins.MockMaker
@@ -0,0 +1 @@
+mock-maker-inline
\ No newline at end of file
diff --git a/CoreTestLibs/src/org/sleuthkit/autopsy/coretestlibs/Bundle.properties b/CoreTestLibs/src/org/sleuthkit/autopsy/coretestlibs/Bundle.properties
new file mode 100644
index 0000000000..3fc2d5ec56
--- /dev/null
+++ b/CoreTestLibs/src/org/sleuthkit/autopsy/coretestlibs/Bundle.properties
@@ -0,0 +1 @@
+OpenIDE-Module-Name=Autopsy-CoreTestLibs
diff --git a/nbproject/platform.properties b/nbproject/platform.properties
index 32e681b3af..a27e7dfd12 100644
--- a/nbproject/platform.properties
+++ b/nbproject/platform.properties
@@ -14,7 +14,7 @@ cluster.path=\
     ${nbplatform.active.dir}/harness:\
     ${nbplatform.active.dir}/java:\
     ${nbplatform.active.dir}/platform:\
-    ${nbplatform.active.dir}/cluster
+    CoreTestLibs/build/cluster
 disabled.modules=\
     org.eclipse.core.contenttype,\
     org.eclipse.core.jobs,\
@@ -338,4 +338,6 @@ disabled.modules=\
     org.openide.execution.compat8,\
     org.openide.options,\
     org.openide.util.enumerations,\
-    org.openidex.util
\ No newline at end of file
+    org.openidex.util
+    org.netbeans.modules.junit,\
+    org.netbeans.modules.junitlib
-- 
GitLab