diff --git a/Core/src/org/sleuthkit/autopsy/coreutils/PlatformUtil.java b/Core/src/org/sleuthkit/autopsy/coreutils/PlatformUtil.java index 13d574bc673925f4a1a815af1a2f8ea76e8b6953..22a976545f62b8f80ec521ea5390160829ac042b 100644 --- a/Core/src/org/sleuthkit/autopsy/coreutils/PlatformUtil.java +++ b/Core/src/org/sleuthkit/autopsy/coreutils/PlatformUtil.java @@ -32,13 +32,16 @@ import java.lang.management.MemoryMXBean; import java.lang.management.MemoryUsage; import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; import java.nio.file.Path; import java.nio.file.Paths; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.stream.Stream; import javax.swing.filechooser.FileSystemView; import org.apache.commons.io.FilenameUtils; +import org.apache.commons.io.IOUtils; import org.openide.modules.InstalledFileLocator; import org.openide.modules.Places; import org.openide.util.NbBundle; @@ -535,16 +538,12 @@ public static synchronized long getJavaPID(String sigarSubQuery) { public static synchronized long[] getJavaPIDs(String argsSubQuery) { try { if (isWindowsOS()) { - Process process = Runtime.getRuntime().exec("wmic process where \"name='java.exe' AND commandline LIKE '%" + argsSubQuery + "%'\" get ProcessID"); - BufferedReader reader - = new BufferedReader(new InputStreamReader(process.getInputStream())); - List<String> lines = new ArrayList<>(); - String line = null; - while ((line = reader.readLine()) != null) { - lines.add(line); - } - return lines.stream().skip(1).map(ln -> { + ProcessBuilder pb = new ProcessBuilder("wmic process where \"name='java.exe' AND commandline LIKE '%" + argsSubQuery + "%'\" get ProcessID"); + String output = IOUtils.toString(pb.start().getInputStream(), StandardCharsets.UTF_8); + String[] lines = output.split("\\r?\\n"); + + return Stream.of(lines).skip(1).map(ln -> { if (ln == null || ln.trim().isEmpty()) { return null; } @@ -561,14 +560,9 @@ public static synchronized long[] getJavaPIDs(String argsSubQuery) { } else { String sigarRegexQuery = argsSubQuery == null ? "" : argsSubQuery.replaceAll("_", ".").replaceAll("%", ".*"); - Process process = Runtime.getRuntime().exec("ps -ef | grep -E 'java.*" + sigarRegexQuery + "'"); - BufferedReader reader - = new BufferedReader(new InputStreamReader(process.getInputStream())); - List<String> lines = new ArrayList<>(); - String line = null; - while ((line = reader.readLine()) != null) { - lines.add(line); - } + ProcessBuilder pb = new ProcessBuilder("ps -ef | grep -E 'java.*" + sigarRegexQuery + "'"); + String output = IOUtils.toString(pb.start().getInputStream(), StandardCharsets.UTF_8); + List<String> lines = Arrays.asList(output.split("\\r?\\n")); if (lines.size() > 0) { // ignore last one as it will be the same as this command diff --git a/CoreLibs/build-mac.xml b/CoreLibs/build-mac.xml index 3bf78e62442b7924d8c2715febea7b8d711bd9eb..fa1e769dc418b2af305ff09b21dcc0f7be3043ba 100644 --- a/CoreLibs/build-mac.xml +++ b/CoreLibs/build-mac.xml @@ -1,13 +1,7 @@ <project name="NativeCoreLibs"> <target name="build-native-libs" description="build native library dependencies"> - <!-- sigar: note, matching jar is pulled with ivy --> <mkdir dir="${lib.dir}"/> - <unzip src="${thirdparty.dir}/sigar/1.6.4/sigar-native.zip" dest="${lib.dir}" > - <!-- get all, rely on jna to locate <patternset> - <include name="**/*.dylib"/> - </patternset> --> - </unzip> </target> </project> diff --git a/CoreLibs/build-unix.xml b/CoreLibs/build-unix.xml index 2cf1d3442f5f8a7e948e3ff056efceae35b4d25f..fa1e769dc418b2af305ff09b21dcc0f7be3043ba 100644 --- a/CoreLibs/build-unix.xml +++ b/CoreLibs/build-unix.xml @@ -1,13 +1,7 @@ <project name="NativeCoreLibs"> <target name="build-native-libs" description="build native library dependencies"> - <!-- sigar: note, matching jar is pulled with ivy --> <mkdir dir="${lib.dir}"/> - <unzip src="${thirdparty.dir}/sigar/1.6.4/sigar-native.zip" dest="${lib.dir}" > - <!-- get all, rely on jna to locate <patternset> - <include name="**/*.so"/> - </patternset> --> - </unzip> </target> </project> diff --git a/CoreLibs/build-windows.xml b/CoreLibs/build-windows.xml index ab033b730fcacb318f59660dcda33fee96f44352..fa1e769dc418b2af305ff09b21dcc0f7be3043ba 100644 --- a/CoreLibs/build-windows.xml +++ b/CoreLibs/build-windows.xml @@ -1,13 +1,7 @@ <project name="NativeCoreLibs"> <target name="build-native-libs" description="build native library dependencies"> - <!-- sigar: note, matching jar is pulled with ivy --> <mkdir dir="${lib.dir}"/> - <unzip src="${thirdparty.dir}/sigar/1.6.4/sigar-native.zip" dest="${lib.dir}" > - <!-- get all, rely on jna to locate <patternset> - <include name="**/*.dll"/> - </patternset> --> - </unzip> </target> </project> diff --git a/CoreLibs/ivy.xml b/CoreLibs/ivy.xml index 779fb52ea37d113ce5cfb34eeb1a92e5cc0489de..9c90bbc3047c2cbce913f3448999372e39c91d36 100644 --- a/CoreLibs/ivy.xml +++ b/CoreLibs/ivy.xml @@ -41,9 +41,6 @@ <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="2.13.2"/> - - <!-- process and system monitoring, note: matching native libs pulled from thirdparty --> - <dependency conf="autopsy_core->default" org="org.fusesource" name="sigar" rev="1.6.4" /> <!-- better image resizing --> <dependency conf="autopsy_core->default" org="org.imgscalr" name="imgscalr-lib" rev="4.2" /> diff --git a/CoreLibs/nbproject/project.properties b/CoreLibs/nbproject/project.properties index 1d686d5951d38e91a69b795e73ac833ae7fd7a61..7c3b3fc496b8f31ead06905a135fc92a49991bfb 100644 --- a/CoreLibs/nbproject/project.properties +++ b/CoreLibs/nbproject/project.properties @@ -109,7 +109,6 @@ file.reference.protobuf-java-3.19.4.jar=release/modules/ext/protobuf-java-3.19.4 file.reference.protobuf-java-util-3.19.4.jar=release/modules/ext/protobuf-java-util-3.19.4.jar file.reference.re2j-1.5.jar=release/modules/ext/re2j-1.5.jar file.reference.reload4j-1.2.19.jar=release/modules/ext/reload4j-1.2.19.jar -file.reference.sigar-1.6.4.jar=release/modules/ext/sigar-1.6.4.jar file.reference.slf4j-api-1.7.36.jar=release/modules/ext/slf4j-api-1.7.36.jar file.reference.slf4j-reload4j-1.7.36.jar=release/modules/ext/slf4j-reload4j-1.7.36.jar file.reference.threetenbp-1.5.2.jar=release/modules/ext/threetenbp-1.5.2.jar diff --git a/CoreLibs/nbproject/project.xml b/CoreLibs/nbproject/project.xml index 0432fa14766b1ab179ed5e05370aefe36fb28fd9..8b0f52600daf41a7993ee064f11883635b76fcdb 100644 --- a/CoreLibs/nbproject/project.xml +++ b/CoreLibs/nbproject/project.xml @@ -445,17 +445,6 @@ <package>org.freedesktop.gstreamer.message</package> <package>org.freedesktop.gstreamer.query</package> <package>org.freedesktop.gstreamer.webrtc</package> - <package>org.hyperic.jni</package> - <package>org.hyperic.sigar</package> - <package>org.hyperic.sigar.cmd</package> - <package>org.hyperic.sigar.jmx</package> - <package>org.hyperic.sigar.pager</package> - <package>org.hyperic.sigar.ptql</package> - <package>org.hyperic.sigar.shell</package> - <package>org.hyperic.sigar.test</package> - <package>org.hyperic.sigar.util</package> - <package>org.hyperic.sigar.vmware</package> - <package>org.hyperic.sigar.win32</package> <package>org.imgscalr</package> <package>org.joda.time</package> <package>org.joda.time.base</package> @@ -926,10 +915,6 @@ <runtime-relative-path>ext/reload4j-1.2.19.jar</runtime-relative-path> <binary-origin>release/modules/ext/reload4j-1.2.19.jar</binary-origin> </class-path-extension> - <class-path-extension> - <runtime-relative-path>ext/sigar-1.6.4.jar</runtime-relative-path> - <binary-origin>release/modules/ext/sigar-1.6.4.jar</binary-origin> - </class-path-extension> <class-path-extension> <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> diff --git a/CoreLibs/src/org/sleuthkit/autopsy/corelibs/Bundle.properties b/CoreLibs/src/org/sleuthkit/autopsy/corelibs/Bundle.properties index 6c4bc4b0d3ee29b053f933773543a913e8afa194..3a47d181451e889e1e080bfd5af16439180e77a1 100644 --- a/CoreLibs/src/org/sleuthkit/autopsy/corelibs/Bundle.properties +++ b/CoreLibs/src/org/sleuthkit/autopsy/corelibs/Bundle.properties @@ -4,4 +4,3 @@ OpenIDE-Module-Long-Description=\ The libraries can also be imported by other modules. OpenIDE-Module-Name=Autopsy-CoreLibs OpenIDE-Module-Short-Description=Autopsy Core module external libraries -SigarLoader.linkErr.msg=Could not load sigar library for your environment (non-critical), OS-level metrics will be unavailable. diff --git a/build.xml b/build.xml index 7280526dd8469c7bd075215b9a1344993b1891ea..405d8b6db949ac4e5786946d0b4bae3e1daf48a7 100644 --- a/build.xml +++ b/build.xml @@ -88,25 +88,13 @@ <!-- This target is similar to the regular test target that calls test on all nbm's, but this target excludes the Testing nbm which runs the regression tests --> <target name="test-no-regression" depends="build" description="Runs tests for all modules in the suite excluding the regression tests of the Testing NBM."> - <!--taken from https://stackoverflow.com/a/10859103; remove "Testing" from the modules and provide 'modulesNoTesting' as result. --> - <property name="modulesBeforeChange" value="${modules}"/> - <script language="javascript"> - <![CDATA[ - var before = project.getProperty("modulesBeforeChange"); - var separator = ":"; - var testingNbm = "Testing"; - var beforeSplit = before.split(separator); - var items = []; - for (var i = 0; i < beforeSplit.length; i++) { - if (beforeSplit[i].toUpperCase() !== testingNbm.toUpperCase()) { - items.push(beforeSplit[i]); - } - } - var itemsJoined = items.join(separator); - project.setNewProperty("modulesNoTesting", itemsJoined); - ]]> - </script> - + <!--taken from https://stackoverflow.com/a/1176101/2375948 ; remove "Testing" from the modules and provide 'modulesNoTesting' as result. --> + <propertyregex property="modulesNoTesting" + input="${modules}" + regexp="Testing[;:]?" + replace="" + global="true" /> + <sortsuitemodules unsortedmodules="${modulesNoTesting}" sortedmodulesproperty="modules.test.sorted" sorttests="true"/> <!-- continue on fail --> <property name="continue.after.failing.tests" value="true"/> diff --git a/thirdparty/sigar/1.6.4/sigar-native.zip b/thirdparty/sigar/1.6.4/sigar-native.zip deleted file mode 100644 index b87e9b1d93ba6af70074c339d9eb0cd01a9b66b9..0000000000000000000000000000000000000000 Binary files a/thirdparty/sigar/1.6.4/sigar-native.zip and /dev/null differ