diff --git a/BUILDING.txt b/BUILDING.txt index a77d6c8add..8b09ad5d3f 100644 --- a/BUILDING.txt +++ b/BUILDING.txt @@ -1,4 +1,4 @@ - Last Updated: 1 February 2019 + Last Updated: 5 August 2020 This file outlines what it takes to build Autopsy from source. @@ -15,14 +15,13 @@ STEPS: that we use, you'll need 1.8.0_66 or greater. You can now use 32-bit or 64-bit, but special work is needed to get The Sleuth Kit to compile as 64-bit. -Autopsy has been used and tested with Oracle JavaSE and the included JavaFX support -(http://www.oracle.com/technetwork/java/javase/downloads/index.html). +Autopsy has been used and tested with the following OpenJDK build +(https://github.com/ojdkbuild/ojdkbuild/releases/tag/java-1.8.0-openjdk-1.8.0.222-1.b10). -OpenJDK and OpenJFX might work, but they are not fully tested with Autopsy. 1b) Ensure that JDK_HOME is set to the root JDK directory. -1c) (optional) Download and install Netbeans IDE (http://netbeans.org/) +1c) (optional) Download and install Netbeans IDE (https://netbeans.apache.org/download/index.html) Note: Netbeans IDE is not required to build and run Autopsy, but it is a recommended IDE to use for development of Autopsy modules. diff --git a/Core/nbproject/project.xml b/Core/nbproject/project.xml index 3b6c247424..19c863e6b7 100644 --- a/Core/nbproject/project.xml +++ b/Core/nbproject/project.xml @@ -6,24 +6,6 @@ org.sleuthkit.autopsy.core - - org.jdesktop.beansbinding - - - - 1 - 1.27.1.121 - - - - org.jdesktop.layout - - - - 1 - 1.33.1 - - org.netbeans.api.progress @@ -581,6 +563,14 @@ ext/sleuthkit-caseuco-4.10.0.jar release\modules\ext\sleuthkit-caseuco-4.10.0.jar + + ext/sleuthkit-4.10.0.jar + release/modules/ext/sleuthkit-4.10.0.jar + + + ext/sleuthkit-caseuco-4.10.0.jar + release/modules/ext/sleuthkit-caseuco-4.10.0.jar + ext/gax-1.44.0.jar release\modules\ext\gax-1.44.0.jar diff --git a/Core/src/org/sleuthkit/autopsy/communications/VisualizationPanel.java b/Core/src/org/sleuthkit/autopsy/communications/VisualizationPanel.java index 51005878ec..cae5b85549 100644 --- a/Core/src/org/sleuthkit/autopsy/communications/VisualizationPanel.java +++ b/Core/src/org/sleuthkit/autopsy/communications/VisualizationPanel.java @@ -78,6 +78,7 @@ import javafx.embed.swing.JFXPanel; import javafx.scene.Scene; import javafx.scene.layout.Pane; import javax.swing.AbstractAction; +import javax.swing.GroupLayout; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JLabel; @@ -93,7 +94,6 @@ import javax.swing.SwingUtilities; import javax.swing.SwingWorker; import org.apache.commons.lang3.StringUtils; import org.controlsfx.control.Notifications; -import org.jdesktop.layout.GroupLayout; import org.openide.util.NbBundle; import org.openide.windows.WindowManager; import org.sleuthkit.autopsy.casemodule.Case; @@ -162,7 +162,9 @@ final public class VisualizationPanel extends JPanel { this.relationshipBrowser = relationshipBrowser; initComponents(); //initialize invisible JFXPanel that is used to show JFXNotifications over this window. - notificationsJFXPanel.setScene(new Scene(new Pane())); + Platform.runLater(() -> { + notificationsJFXPanel.setScene(new Scene(new Pane())); + }); graph = new CommunicationsGraph(pinnedAccountModel, lockedVertexModel); @@ -403,16 +405,16 @@ final public class VisualizationPanel extends JPanel { GroupLayout placeHolderPanelLayout = new GroupLayout(placeHolderPanel); placeHolderPanel.setLayout(placeHolderPanelLayout); - placeHolderPanelLayout.setHorizontalGroup(placeHolderPanelLayout.createParallelGroup(GroupLayout.LEADING) - .add(placeHolderPanelLayout.createSequentialGroup() + placeHolderPanelLayout.setHorizontalGroup(placeHolderPanelLayout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(placeHolderPanelLayout.createSequentialGroup() .addContainerGap(316, Short.MAX_VALUE) - .add(jTextArea1, GroupLayout.PREFERRED_SIZE, 424, GroupLayout.PREFERRED_SIZE) + .addComponent(jTextArea1, GroupLayout.PREFERRED_SIZE, 424, GroupLayout.PREFERRED_SIZE) .addContainerGap(481, Short.MAX_VALUE)) ); - placeHolderPanelLayout.setVerticalGroup(placeHolderPanelLayout.createParallelGroup(GroupLayout.LEADING) - .add(placeHolderPanelLayout.createSequentialGroup() + placeHolderPanelLayout.setVerticalGroup(placeHolderPanelLayout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(placeHolderPanelLayout.createSequentialGroup() .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .add(jTextArea1, GroupLayout.PREFERRED_SIZE, 47, GroupLayout.PREFERRED_SIZE) + .addComponent(jTextArea1, GroupLayout.PREFERRED_SIZE, 47, GroupLayout.PREFERRED_SIZE) .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); diff --git a/Core/src/org/sleuthkit/autopsy/coreutils/ExecUtil.java b/Core/src/org/sleuthkit/autopsy/coreutils/ExecUtil.java index fc02b0e9f4..469cb24d04 100644 --- a/Core/src/org/sleuthkit/autopsy/coreutils/ExecUtil.java +++ b/Core/src/org/sleuthkit/autopsy/coreutils/ExecUtil.java @@ -18,7 +18,6 @@ */ package org.sleuthkit.autopsy.coreutils; -import com.sun.javafx.PlatformUtil; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; @@ -28,6 +27,7 @@ import java.util.Date; import java.util.List; import java.util.concurrent.TimeUnit; import java.util.logging.Level; +import org.apache.commons.lang3.SystemUtils; import org.sleuthkit.autopsy.core.UserPreferences; /** @@ -238,7 +238,7 @@ public final class ExecUtil { } try { - if (PlatformUtil.isWindows()) { + if (SystemUtils.IS_OS_WINDOWS) { Win32Process parentProcess = new Win32Process(process); List children = parentProcess.getChildren(); diff --git a/Core/src/org/sleuthkit/autopsy/modules/dataSourceIntegrity/DataSourceIntegrityIngestModule.java b/Core/src/org/sleuthkit/autopsy/modules/dataSourceIntegrity/DataSourceIntegrityIngestModule.java index 8fd2bc331a..63d47a2b38 100644 --- a/Core/src/org/sleuthkit/autopsy/modules/dataSourceIntegrity/DataSourceIntegrityIngestModule.java +++ b/Core/src/org/sleuthkit/autopsy/modules/dataSourceIntegrity/DataSourceIntegrityIngestModule.java @@ -25,6 +25,7 @@ import java.util.List; import java.util.logging.Level; import javax.xml.bind.DatatypeConverter; import java.util.Arrays; +import org.apache.commons.codec.binary.Hex; import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.autopsy.ingest.DataSourceIngestModule; import org.sleuthkit.autopsy.ingest.DataSourceIngestModuleProgress; @@ -252,7 +253,7 @@ public class DataSourceIntegrityIngestModule implements DataSourceIngestModule { // Produce the final hashes for(HashData hashData:hashDataList) { - hashData.calculatedHash = DatatypeConverter.printHexBinary(hashData.digest.digest()).toLowerCase(); + hashData.calculatedHash = Hex.encodeHexString(hashData.digest.digest()).toLowerCase(); logger.log(Level.INFO, "Hash calculated from {0}: {1}", new Object[]{imgName, hashData.calculatedHash}); //NON-NLS } diff --git a/Core/src/org/sleuthkit/autopsy/modules/filetypeid/CustomFileTypesManager.java b/Core/src/org/sleuthkit/autopsy/modules/filetypeid/CustomFileTypesManager.java index 0a933fe53b..ed52cc0fb0 100644 --- a/Core/src/org/sleuthkit/autopsy/modules/filetypeid/CustomFileTypesManager.java +++ b/Core/src/org/sleuthkit/autopsy/modules/filetypeid/CustomFileTypesManager.java @@ -26,8 +26,9 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.DatatypeConverter; import javax.xml.parsers.ParserConfigurationException; +import org.apache.commons.codec.DecoderException; +import org.apache.commons.codec.binary.Hex; import org.openide.util.io.NbObjectInputStream; import org.openide.util.io.NbObjectOutputStream; import org.sleuthkit.autopsy.coreutils.PlatformUtil; @@ -166,7 +167,7 @@ final class CustomFileTypesManager { /* * Add type for gzip. */ - byteArray = DatatypeConverter.parseHexBinary("1F8B"); //NON-NLS + byteArray = Hex.decodeHex("1F8B"); //NON-NLS signatureList.clear(); signatureList.add(new Signature(byteArray, 0L)); fileType = new FileType("application/x-gzip", signatureList); //NON-NLS @@ -175,7 +176,7 @@ final class CustomFileTypesManager { /* * Add type for wk1. */ - byteArray = DatatypeConverter.parseHexBinary("0000020006040600080000000000"); //NON-NLS + byteArray = Hex.decodeHex("0000020006040600080000000000"); //NON-NLS signatureList.clear(); signatureList.add(new Signature(byteArray, 0L)); fileType = new FileType("application/x-123", signatureList); //NON-NLS @@ -184,7 +185,7 @@ final class CustomFileTypesManager { /* * Add type for Radiance images. */ - byteArray = DatatypeConverter.parseHexBinary("233F52414449414E43450A");//NON-NLS + byteArray = Hex.decodeHex("233F52414449414E43450A");//NON-NLS signatureList.clear(); signatureList.add(new Signature(byteArray, 0L)); fileType = new FileType("image/vnd.radiance", signatureList); //NON-NLS @@ -193,7 +194,7 @@ final class CustomFileTypesManager { /* * Add type for dcx images. */ - byteArray = DatatypeConverter.parseHexBinary("B168DE3A"); //NON-NLS + byteArray = Hex.decodeHex("B168DE3A"); //NON-NLS signatureList.clear(); signatureList.add(new Signature(byteArray, 0L)); fileType = new FileType("image/x-dcx", signatureList); //NON-NLS @@ -210,7 +211,7 @@ final class CustomFileTypesManager { /* * Add type for pict images. */ - byteArray = DatatypeConverter.parseHexBinary("001102FF"); //NON-NLS + byteArray = Hex.decodeHex("001102FF"); //NON-NLS signatureList.clear(); signatureList.add(new Signature(byteArray, 522L)); fileType = new FileType("image/x-pict", signatureList); //NON-NLS @@ -251,7 +252,7 @@ final class CustomFileTypesManager { /* * Add type for tga. */ - byteArray = DatatypeConverter.parseHexBinary("54525545564953494F4E2D5846494C452E00"); //NON-NLS + byteArray = Hex.decodeHex("54525545564953494F4E2D5846494C452E00"); //NON-NLS signatureList.clear(); signatureList.add(new Signature(byteArray, 17, false)); fileType = new FileType("image/x-tga", signatureList); //NON-NLS @@ -311,7 +312,7 @@ final class CustomFileTypesManager { * Add type for .tec files with leading End Of Image marker (JFIF * JPEG) */ - byteArray = DatatypeConverter.parseHexBinary("FFD9FFD8"); //NON-NLS + byteArray = Hex.decodeHex("FFD9FFD8"); //NON-NLS signatureList.clear(); signatureList.add(new Signature(byteArray, 0L)); fileType = new FileType("image/jpeg", signatureList); //NON-NLS @@ -321,13 +322,13 @@ final class CustomFileTypesManager { * Add type for Windows NT registry files with leading End Of Image marker (JFIF * JPEG) */ - byteArray = DatatypeConverter.parseHexBinary("72656766"); //NON-NLS + byteArray = Hex.decodeHex("72656766"); //NON-NLS signatureList.clear(); signatureList.add(new Signature(byteArray, 0L)); fileType = new FileType("application/x.windows-registry", signatureList); //NON-NLS autopsyDefinedFileTypes.add(fileType); - } catch (IllegalArgumentException ex) { + } catch (DecoderException ex) { /* * parseHexBinary() throws this if the argument passed in is not hex */ @@ -424,7 +425,7 @@ final class CustomFileTypesManager { } } return fileTypes; - } catch (IOException | ParserConfigurationException | SAXException ex) { + } catch (IOException | ParserConfigurationException | SAXException | DecoderException ex) { throw new CustomFileTypesException(String.format("Failed to read ssettings from %s", filePath), ex); //NON-NLS } } @@ -441,7 +442,7 @@ final class CustomFileTypesManager { * @throws NumberFormatException if there is a problem parsing the file * type. */ - private static FileType parseFileType(Element fileTypeElem) throws IllegalArgumentException, NumberFormatException { + private static FileType parseFileType(Element fileTypeElem) throws DecoderException, NumberFormatException { String mimeType = parseMimeType(fileTypeElem); Signature signature = parseSignature(fileTypeElem); // File type definitions in the XML file were written prior to the @@ -469,7 +470,7 @@ final class CustomFileTypesManager { * * @return The signature. */ - private static Signature parseSignature(Element fileTypeElem) throws IllegalArgumentException, NumberFormatException { + private static Signature parseSignature(Element fileTypeElem) throws DecoderException, NumberFormatException { NodeList signatureElems = fileTypeElem.getElementsByTagName(SIGNATURE_TAG_NAME); Element signatureElem = (Element) signatureElems.item(0); @@ -477,18 +478,18 @@ final class CustomFileTypesManager { Signature.Type signatureType = Signature.Type.valueOf(sigTypeAttribute); String sigBytesString = getChildElementTextContent(signatureElem, BYTES_TAG_NAME); - byte[] signatureBytes = DatatypeConverter.parseHexBinary(sigBytesString); + byte[] signatureBytes = Hex.decodeHex(sigBytesString); Element offsetElem = (Element) signatureElem.getElementsByTagName(OFFSET_TAG_NAME).item(0); String offsetString = offsetElem.getTextContent(); - long offset = DatatypeConverter.parseLong(offsetString); + long offset = Long.parseLong(offsetString); boolean isRelativeToStart; String relativeString = offsetElem.getAttribute(RELATIVE_ATTRIBUTE); if (null == relativeString || relativeString.equals("")) { isRelativeToStart = true; } else { - isRelativeToStart = DatatypeConverter.parseBoolean(relativeString); + isRelativeToStart = Boolean.parseBoolean(relativeString); } return new Signature(signatureBytes, offset, signatureType, isRelativeToStart); diff --git a/Core/src/org/sleuthkit/autopsy/timeline/utils/MappedList.java b/Core/src/org/sleuthkit/autopsy/timeline/utils/MappedList.java index 9e2ab30ddd..c40b0c4d26 100755 --- a/Core/src/org/sleuthkit/autopsy/timeline/utils/MappedList.java +++ b/Core/src/org/sleuthkit/autopsy/timeline/utils/MappedList.java @@ -112,4 +112,9 @@ public class MappedList extends TransformationList { }); } + @Override + public int getViewIndex(int index) { + throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + } + } diff --git a/CoreLibs/src/org/sleuthkit/autopsy/corelibs/SigarLoader.java b/CoreLibs/src/org/sleuthkit/autopsy/corelibs/SigarLoader.java index 12a135c6e1..4995943097 100644 --- a/CoreLibs/src/org/sleuthkit/autopsy/corelibs/SigarLoader.java +++ b/CoreLibs/src/org/sleuthkit/autopsy/corelibs/SigarLoader.java @@ -18,7 +18,7 @@ */ package org.sleuthkit.autopsy.corelibs; -import com.sun.javafx.PlatformUtil; +import org.apache.commons.lang3.SystemUtils; import org.hyperic.sigar.Sigar; import org.openide.util.NbBundle; @@ -43,7 +43,7 @@ public class SigarLoader { if (sigar == null) { try { //rely on netbeans / jna to locate the lib variation for architecture/OS - if (PlatformUtil.isWindows()) { + if (SystemUtils.IS_OS_WINDOWS) { System.loadLibrary("libsigar"); //NON-NLS } else { System.loadLibrary("sigar"); //NON-NLS diff --git a/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/FileExporterSettingsPanel.java b/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/FileExporterSettingsPanel.java index 001ad7271d..0fa181ebb5 100644 --- a/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/FileExporterSettingsPanel.java +++ b/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/FileExporterSettingsPanel.java @@ -80,6 +80,7 @@ import java.time.Instant; import java.time.LocalDateTime; import java.time.ZoneId; import javax.swing.DefaultListModel; +import javax.swing.tree.TreeNode; import org.apache.commons.codec.DecoderException; import org.apache.commons.codec.binary.Hex; import org.sleuthkit.autopsy.casemodule.NoCurrentCaseException; @@ -1322,10 +1323,10 @@ public final class FileExporterSettingsPanel extends JPanel { */ private TreePath findTreePathByRuleAndArtifactClauseName(String ruleName, String clauseName) { @SuppressWarnings("unchecked") - Enumeration enumeration = rootNode.preorderEnumeration(); + Enumeration enumeration = rootNode.preorderEnumeration(); boolean insideRule = false; while (enumeration.hasMoreElements()) { - DefaultMutableTreeNode node = enumeration.nextElement(); + DefaultMutableTreeNode node = (DefaultMutableTreeNode) enumeration.nextElement(); Item item = (Item) node.getUserObject(); if (item.getItemType() == ItemType.RULE) { insideRule = node.toString().equalsIgnoreCase(ruleName); @@ -1349,9 +1350,9 @@ public final class FileExporterSettingsPanel extends JPanel { */ private TreePath findTreePathByRuleName(String ruleName) { @SuppressWarnings("unchecked") - Enumeration enumeration = rootNode.depthFirstEnumeration(); + Enumeration enumeration = rootNode.depthFirstEnumeration(); while (enumeration.hasMoreElements()) { - DefaultMutableTreeNode node = enumeration.nextElement(); + DefaultMutableTreeNode node = (DefaultMutableTreeNode) enumeration.nextElement(); if (node.toString().equalsIgnoreCase(ruleName)) { return new TreePath(node.getPath()); } diff --git a/README.txt b/README.txt index 7917b66382..37da8d3028 100644 --- a/README.txt +++ b/README.txt @@ -46,9 +46,9 @@ JRE (Java Runtime Environment) 1.8 - Web page: http://www.oracle.com/technetwork/java/index.html - License: http://www.oracle.com/technetwork/java/javase/terms/license/index.html -Netbeans 8.0.2 RCP platform and .jar files bundled with the platform -- Web page: http://netbeans.org/features/platform/ -- License: https://netbeans.org/downloads/jdk-bundle/8.0.2/nb802-LICENSE.txt +Netbeans 11.3 RCP platform and .jar files bundled with the platform +- Web page: https://netbeans.apache.org/ +- License: https://www.apache.org/licenses/LICENSE-2.0 Sleuth Kit for analyzing disk images. - Web page: http://www.sleuthkit.org/sleuthkit/ diff --git a/build.xml b/build.xml index 740f8b82ad..b85c3255fe 100644 --- a/build.xml +++ b/build.xml @@ -4,26 +4,23 @@ Builds the module suite Autopsy 4. - + - + - - - - - + + diff --git a/nbproject/platform.properties b/nbproject/platform.properties index b03c3b5199..69cd01d052 100644 --- a/nbproject/platform.properties +++ b/nbproject/platform.properties @@ -1,136 +1,341 @@ branding.token=autopsy # Version of platform that is automatically downloaded # IMPORTANT: autopsy/build.xml has a netbeans-plat-version property that MUST be kept in sync (manually) -netbeans-plat-version=8.2 +netbeans-plat-version=11.3 suite.dir=${basedir} + +nbplatform.active=download nbplatform.active.dir=${suite.dir}/netbeans-plat/${netbeans-plat-version} harness.dir=${nbplatform.active.dir}/harness -bootstrap.url=http://bits.netbeans.org/dev/nbms-and-javadoc/lastSuccessfulBuild/artifact/nbbuild/netbeans/harness/tasks.jar +bootstrap.url=http://netbeans.apache.org/nb/updates/${netbeans-plat-version}/tasks.jar # Where we get the platform from. To see what versions are available, open URL in browser up to the .../updates part of the URL -autoupdate.catalog.url=https://updates.netbeans.org/netbeans/updates/${netbeans-plat-version}/uc/final/distribution/catalog.xml.gz +autoupdate.catalog.url=http://netbeans-vm.apache.org/uc/${netbeans-plat-version}/updates.xml.gz cluster.path=\ ${nbplatform.active.dir}/harness:\ ${nbplatform.active.dir}/java:\ ${nbplatform.active.dir}/platform:\ ${nbplatform.active.dir}/cluster disabled.modules=\ - org.netbeans.modules.hudson.ant,\ - org.netbeans.libs.cglib,\ - org.netbeans.modules.maven.graph,\ - org.netbeans.modules.java.hints.declarative.test,\ - org.netbeans.libs.javacapi,\ - org.netbeans.modules.nashorn.execution,\ - org.netbeans.modules.java.metrics,\ - org.netbeans.modules.debugger.jpda.js,\ - org.netbeans.api.java,\ - org.netbeans.modules.debugger.jpda.ant,\ - org.netbeans.modules.java.source.ant,\ - org.netbeans.modules.maven.refactoring,\ - org.netbeans.modules.ant.debugger,\ - org.netbeans.modules.hibernatelib,\ - org.netbeans.modules.hibernate,\ - org.netbeans.lib.nbjavac,\ - org.netbeans.modules.debugger.jpda.kit,\ - org.netbeans.modules.maven.persistence,\ - org.netbeans.modules.javaee.injection,\ - org.netbeans.modules.maven,\ - org.netbeans.modules.performance,\ - org.netbeans.spi.java.hints,\ - org.netbeans.modules.spellchecker.bindings.java,\ - org.netbeans.modules.java.j2seproject,\ - org.netbeans.modules.javawebstart,\ - org.netbeans.modules.debugger.jpda,\ - org.netbeans.modules.ant.grammar,\ - org.netbeans.modules.maven.checkstyle,\ - org.netbeans.modules.java.source.queries,\ - org.netbeans.modules.refactoring.java,\ - org.netbeans.modules.java.examples,\ - org.netbeans.modules.j2ee.jpa.verification,\ - org.netbeans.modules.j2ee.jpa.refactoring,\ - org.netbeans.modules.j2ee.metadata.model.support,\ - org.netbeans.modules.classfile,\ - org.netbeans.modules.maven.coverage,\ - org.netbeans.modules.debugger.jpda.ui,\ - org.netbeans.modules.java.guards,\ - org.netbeans.modules.xml.jaxb,\ - org.netbeans.modules.java.preprocessorbridge,\ - org.netbeans.modules.debugger.jpda.jsui,\ + org.eclipse.core.contenttype,\ + org.eclipse.core.jobs,\ + org.eclipse.core.net,\ + org.eclipse.core.runtime,\ + org.eclipse.core.runtime.compatibility.auth,\ + org.eclipse.equinox.app,\ + org.eclipse.equinox.common,\ + org.eclipse.equinox.preferences,\ + org.eclipse.equinox.registry,\ + org.eclipse.equinox.security,\ + org.eclipse.jgit,\ + org.eclipse.jgit.java7,\ + org.eclipse.mylyn.bugzilla.core,\ + org.eclipse.mylyn.commons.core,\ + org.eclipse.mylyn.commons.net,\ + org.eclipse.mylyn.commons.repositories.core,\ + org.eclipse.mylyn.commons.xmlrpc,\ + org.eclipse.mylyn.tasks.core,\ + org.eclipse.mylyn.wikitext.confluence.core,\ + org.eclipse.mylyn.wikitext.core,\ + org.eclipse.mylyn.wikitext.markdown.core,\ + org.eclipse.mylyn.wikitext.textile.core,\ + org.netbeans.api.debugger,\ org.netbeans.api.debugger.jpda,\ - org.netbeans.modules.ant.freeform,\ - org.netbeans.modules.java.sourceui,\ - org.netbeans.modules.projectimport.eclipse.j2se,\ - org.netbeans.modules.form,\ - org.netbeans.modules.junit,\ - org.netbeans.modules.j2ee.persistence.kit,\ - org.netbeans.modules.j2ee.metadata,\ - org.netbeans.modules.java.j2seplatform,\ - org.netbeans.modules.javadoc,\ - org.netbeans.modules.debugger.jpda.projects,\ - org.netbeans.modules.java.source,\ - org.netbeans.modules.maven.spring,\ - org.netbeans.modules.maven.search,\ - org.netbeans.modules.java.debug,\ - org.netbeans.modules.maven.grammar,\ - org.netbeans.modules.java.kit,\ - org.netbeans.modules.testng,\ - org.netbeans.modules.spring.beans,\ - org.netbeans.modules.websvc.saas.codegen.java,\ - org.netbeans.modules.java.editor.lib,\ - org.netbeans.modules.java.testrunner,\ - org.netbeans.modules.java.source.queriesimpl,\ - org.netbeans.modules.maven.junit,\ - org.netbeans.modules.maven.hints,\ - org.netbeans.modules.xml.tools.java,\ - org.netbeans.modules.j2ee.persistenceapi,\ - org.netbeans.modules.java.j2seprofiles,\ - org.netbeans.modules.form.kit,\ - org.netbeans.modules.projectimport.eclipse.core,\ - org.netbeans.modules.form.refactoring,\ - org.apache.tools.ant.module,\ - org.netbeans.modules.testng.maven,\ - org.netbeans.modules.java.hints.test,\ - org.netbeans.modules.i18n.form,\ - org.netbeans.modules.maven.kit,\ - org.netbeans.modules.beans,\ - org.netbeans.modules.java.platform,\ - org.netbeans.modules.java.hints.legacy.spi,\ - org.netbeans.modules.java.lexer,\ - org.netbeans.modules.java.hints,\ - org.netbeans.modules.java.j2seembedded,\ - org.netbeans.modules.java.hints.ui,\ - org.netbeans.modules.java.editor,\ - org.netbeans.modules.websvc.jaxws21,\ - org.netbeans.modules.hudson.maven,\ - org.netbeans.modules.java.j2sedeploy,\ - org.netbeans.libs.javacimpl,\ - org.netbeans.modules.java.helpset,\ - org.netbeans.modules.i18n,\ - org.netbeans.modules.dbschema,\ + org.netbeans.api.htmlui,\ + org.netbeans.api.java,\ org.netbeans.api.maven,\ - org.netbeans.modules.findbugs.installer,\ - org.netbeans.modules.j2ee.eclipselinkmodelgen,\ - org.netbeans.modules.form.nb,\ - org.netbeans.modules.debugger.jpda.visual,\ - org.netbeans.modules.form.j2ee,\ - org.netbeans.modules.java.project,\ - org.netbeans.modules.java.api.common,\ - org.netbeans.modules.j2ee.persistence,\ - org.netbeans.modules.java.freeform,\ - org.netbeans.modules.whitelist,\ + org.netbeans.core.browser,\ + org.netbeans.core.browser.webview,\ + org.netbeans.core.multitabs,\ + org.netbeans.core.multitabs.project,\ + org.netbeans.core.nativeaccess,\ + org.netbeans.core.netigso,\ + org.netbeans.core.network,\ + org.netbeans.core.osgi,\ + org.netbeans.html.ko4j,\ + org.netbeans.html.xhr4j,\ + org.netbeans.lib.terminalemulator,\ + org.netbeans.lib.uihandler,\ + org.netbeans.libs.antlr3.runtime,\ + org.netbeans.libs.bytelist,\ + org.netbeans.libs.cglib,\ + org.netbeans.libs.commons_compress,\ + org.netbeans.libs.commons_net,\ + org.netbeans.libs.felix,\ + org.netbeans.libs.git,\ + org.netbeans.libs.graalsdk,\ + org.netbeans.libs.ini4j,\ + org.netbeans.libs.javafx,\ + org.netbeans.libs.jaxb,\ + org.netbeans.libs.jna,\ + org.netbeans.libs.jna.platform,\ + org.netbeans.libs.jsch.agentproxy,\ + org.netbeans.libs.json_simple,\ + org.netbeans.libs.jsr223,\ + org.netbeans.libs.junit5,\ + org.netbeans.libs.jvyamlb,\ + org.netbeans.libs.osgi,\ + org.netbeans.libs.smack,\ org.netbeans.libs.springframework,\ - org.netbeans.modules.maven.embedder,\ - org.netbeans.modules.ant.kit,\ - org.netbeans.modules.java.hints.declarative,\ - org.netbeans.modules.testng.ant,\ - org.netbeans.modules.form.binding,\ + org.netbeans.libs.svnClientAdapter,\ + org.netbeans.libs.svnClientAdapter.javahl,\ + org.netbeans.libs.testng,\ + org.netbeans.libs.xerces,\ org.netbeans.modules.ant.browsetask,\ + org.netbeans.modules.ant.debugger,\ + org.netbeans.modules.ant.freeform,\ + org.netbeans.modules.ant.grammar,\ + org.netbeans.modules.ant.kit,\ + org.netbeans.modules.beans,\ + org.netbeans.modules.bugtracking,\ + org.netbeans.modules.bugtracking.bridge,\ + org.netbeans.modules.bugtracking.commons,\ + org.netbeans.modules.bugzilla,\ + org.netbeans.modules.core.kit,\ + org.netbeans.modules.css.editor,\ + org.netbeans.modules.css.lib,\ + org.netbeans.modules.css.model,\ + org.netbeans.modules.css.prep,\ + org.netbeans.modules.css.visual,\ + org.netbeans.modules.db,\ + org.netbeans.modules.db.core,\ + org.netbeans.modules.db.dataview,\ + org.netbeans.modules.db.drivers,\ + org.netbeans.modules.db.kit,\ + org.netbeans.modules.db.metadata.model,\ + org.netbeans.modules.db.mysql,\ + org.netbeans.modules.db.sql.editor,\ + org.netbeans.modules.db.sql.visualeditor,\ + org.netbeans.modules.dbapi,\ + org.netbeans.modules.dbschema,\ + org.netbeans.modules.debugger.jpda,\ + org.netbeans.modules.debugger.jpda.ant,\ + org.netbeans.modules.debugger.jpda.js,\ + org.netbeans.modules.debugger.jpda.jsui,\ + org.netbeans.modules.debugger.jpda.kit,\ + org.netbeans.modules.debugger.jpda.projects,\ + org.netbeans.modules.debugger.jpda.projectsui,\ + org.netbeans.modules.debugger.jpda.truffle,\ + org.netbeans.modules.debugger.jpda.trufflenode,\ + org.netbeans.modules.debugger.jpda.ui,\ + org.netbeans.modules.debugger.jpda.visual,\ + org.netbeans.modules.derby,\ + org.netbeans.modules.dlight.nativeexecution,\ + org.netbeans.modules.dlight.nativeexecution.nb,\ + org.netbeans.modules.dlight.terminal,\ + org.netbeans.modules.docker.api,\ + org.netbeans.modules.docker.editor,\ + org.netbeans.modules.docker.ui,\ + org.netbeans.modules.editor.bookmarks,\ + org.netbeans.modules.editor.htmlui,\ + org.netbeans.modules.editor.kit,\ + org.netbeans.modules.editor.macros,\ + org.netbeans.modules.editor.structure,\ + org.netbeans.modules.extexecution.impl,\ + org.netbeans.modules.extexecution.process,\ + org.netbeans.modules.extexecution.process.jdk9,\ + org.netbeans.modules.findbugs.installer,\ + org.netbeans.modules.form,\ + org.netbeans.modules.form.kit,\ + org.netbeans.modules.form.nb,\ + org.netbeans.modules.form.refactoring,\ + org.netbeans.modules.git,\ + org.netbeans.modules.gsf.codecoverage,\ + org.netbeans.modules.html,\ + org.netbeans.modules.html.custom,\ + org.netbeans.modules.html.editor,\ + org.netbeans.modules.html.editor.lib,\ + org.netbeans.modules.html.lexer,\ + org.netbeans.modules.html.parser,\ + org.netbeans.modules.html.validation,\ + org.netbeans.modules.hudson,\ + org.netbeans.modules.hudson.ant,\ + org.netbeans.modules.hudson.git,\ + org.netbeans.modules.hudson.maven,\ + org.netbeans.modules.hudson.mercurial,\ + org.netbeans.modules.hudson.subversion,\ + org.netbeans.modules.hudson.tasklist,\ + org.netbeans.modules.hudson.ui,\ + org.netbeans.modules.i18n,\ + org.netbeans.modules.i18n.form,\ + org.netbeans.modules.ide.kit,\ org.netbeans.modules.j2ee.core.utilities,\ - org.netbeans.modules.performance.java,\ - org.netbeans.modules.websvc.jaxws21api,\ - org.netbeans.modules.maven.repository,\ org.netbeans.modules.j2ee.eclipselink,\ - org.netbeans.modules.maven.model,\ - org.netbeans.modules.hibernate4lib,\ + org.netbeans.modules.j2ee.eclipselinkmodelgen,\ + org.netbeans.modules.j2ee.jpa.refactoring,\ + org.netbeans.modules.j2ee.jpa.verification,\ + org.netbeans.modules.j2ee.metadata,\ + org.netbeans.modules.j2ee.metadata.model.support,\ + org.netbeans.modules.j2ee.persistence,\ + org.netbeans.modules.j2ee.persistence.kit,\ + org.netbeans.modules.j2ee.persistenceapi,\ + org.netbeans.modules.java.api.common,\ + org.netbeans.modules.java.completion,\ + org.netbeans.modules.java.debug,\ + org.netbeans.modules.java.editor,\ + org.netbeans.modules.java.editor.base,\ + org.netbeans.modules.java.editor.lib,\ + org.netbeans.modules.java.examples,\ + org.netbeans.modules.java.freeform,\ + org.netbeans.modules.java.graph,\ + org.netbeans.modules.java.hints,\ + org.netbeans.modules.java.hints.declarative,\ + org.netbeans.modules.java.hints.declarative.test,\ + org.netbeans.modules.java.hints.legacy.spi,\ + org.netbeans.modules.java.hints.test,\ + org.netbeans.modules.java.hints.ui,\ + org.netbeans.modules.java.j2sedeploy,\ + org.netbeans.modules.java.j2seembedded,\ + org.netbeans.modules.java.j2semodule,\ + org.netbeans.modules.java.j2seplatform,\ + org.netbeans.modules.java.j2seprofiles,\ + org.netbeans.modules.java.j2seproject,\ + org.netbeans.modules.java.kit,\ + org.netbeans.modules.java.lexer,\ + org.netbeans.modules.java.lsp.server,\ + org.netbeans.modules.java.metrics,\ + org.netbeans.modules.java.module.graph,\ org.netbeans.modules.java.navigation,\ + org.netbeans.modules.java.openjdk.project,\ + org.netbeans.modules.java.platform,\ + org.netbeans.modules.java.project.ui,\ + org.netbeans.modules.java.preprocessorbridge,\ + org.netbeans.modules.java.project,\ + org.netbeans.modules.java.source,\ + org.netbeans.modules.java.source.ant,\ + org.netbeans.modules.java.source.base,\ + org.netbeans.modules.java.source.compat8,\ + org.netbeans.modules.java.source.nbjavac,\ + org.netbeans.modules.java.sourceui,\ + org.netbeans.modules.java.testrunner,\ + org.netbeans.modules.java.testrunner.ant,\ + org.netbeans.modules.java.testrunner.ui,\ + org.netbeans.modules.javadoc,\ + org.netbeans.modules.javaee.injection,\ + org.netbeans.modules.javascript2.debug,\ + org.netbeans.modules.javascript2.debug.ui,\ + org.netbeans.modules.javawebstart,\ + org.netbeans.modules.jellytools.ide,\ + org.netbeans.modules.jshell.support,\ + org.netbeans.modules.junit,\ + org.netbeans.modules.junit.ant,\ + org.netbeans.modules.junit.ant.ui,\ + org.netbeans.modules.junit.ui,\ + org.netbeans.modules.junitlib,\ + org.netbeans.modules.keyring.fallback,\ + org.netbeans.modules.keyring.impl,\ + org.netbeans.modules.kotlin.editor,\ + org.netbeans.modules.languages,\ + org.netbeans.modules.languages.diff,\ + org.netbeans.modules.languages.manifest,\ + org.netbeans.modules.languages.yaml,\ + org.netbeans.modules.localhistory,\ + org.netbeans.modules.localtasks,\ + org.netbeans.modules.lsp.client,\ + org.netbeans.modules.masterfs.linux,\ + org.netbeans.modules.masterfs.macosx,\ + org.netbeans.modules.masterfs.windows,\ + org.netbeans.modules.maven,\ + org.netbeans.modules.maven.checkstyle,\ + org.netbeans.modules.maven.coverage,\ + org.netbeans.modules.maven.embedder,\ + org.netbeans.modules.maven.grammar,\ + org.netbeans.modules.maven.graph,\ + org.netbeans.modules.maven.hints,\ + org.netbeans.modules.maven.htmlui,\ org.netbeans.modules.maven.indexer,\ - org.netbeans.modules.maven.osgi + org.netbeans.modules.maven.indexer.ui,\ + org.netbeans.modules.maven.junit,\ + org.netbeans.modules.maven.junit.ui,\ + org.netbeans.modules.maven.kit,\ + org.netbeans.modules.maven.model,\ + org.netbeans.modules.maven.osgi,\ + org.netbeans.modules.maven.persistence,\ + org.netbeans.modules.maven.refactoring,\ + org.netbeans.modules.maven.repository,\ + org.netbeans.modules.maven.search,\ + org.netbeans.modules.maven.spring,\ + org.netbeans.modules.mercurial,\ + org.netbeans.modules.mylyn.util,\ + org.netbeans.modules.nashorn.execution,\ + org.netbeans.modules.netbinox,\ + org.netbeans.modules.notifications,\ + org.netbeans.modules.performance,\ + org.netbeans.modules.performance.java,\ + org.netbeans.modules.project.ant.compat8,\ + org.netbeans.modules.projectimport.eclipse.core,\ + org.netbeans.modules.projectimport.eclipse.j2se,\ + org.netbeans.modules.properties,\ + org.netbeans.modules.properties.syntax,\ + org.netbeans.modules.refactoring.java,\ + org.netbeans.modules.schema2beans,\ + org.netbeans.modules.selenium2,\ + org.netbeans.modules.selenium2.java,\ + org.netbeans.modules.selenium2.maven,\ + org.netbeans.modules.selenium2.server,\ + org.netbeans.modules.server,\ + org.netbeans.modules.spellchecker,\ + org.netbeans.modules.spellchecker.apimodule,\ + org.netbeans.modules.spellchecker.bindings.htmlxml,\ + org.netbeans.modules.spellchecker.bindings.java,\ + org.netbeans.modules.spellchecker.bindings.properties,\ + org.netbeans.modules.spellchecker.dictionary_en,\ + org.netbeans.modules.spellchecker.kit,\ + org.netbeans.modules.spring.beans,\ + org.netbeans.modules.subversion,\ + org.netbeans.modules.swing.validation,\ + org.netbeans.modules.target.iterator,\ + org.netbeans.modules.tasklist.kit,\ + org.netbeans.modules.tasklist.projectint,\ + org.netbeans.modules.tasklist.todo,\ + org.netbeans.modules.tasklist.ui,\ + org.netbeans.modules.team.commons,\ + org.netbeans.modules.team.ide,\ + org.netbeans.modules.templatesui,\ + org.netbeans.modules.terminal,\ + org.netbeans.modules.terminal.nb,\ + org.netbeans.modules.testng,\ + org.netbeans.modules.testng.ant,\ + org.netbeans.modules.testng.maven,\ + org.netbeans.modules.testng.ui,\ + org.netbeans.modules.textmate.lexer,\ + org.netbeans.modules.uihandler,\ + org.netbeans.modules.usersguide,\ + org.netbeans.modules.versioning,\ + org.netbeans.modules.versioning.core,\ + org.netbeans.modules.versioning.indexingbridge,\ + org.netbeans.modules.versioning.masterfs,\ + org.netbeans.modules.versioning.system.cvss.installer,\ + org.netbeans.modules.versioning.ui,\ + org.netbeans.modules.versioning.util,\ + org.netbeans.modules.web.browser.api,\ + org.netbeans.modules.web.common,\ + org.netbeans.modules.web.common.ui,\ + org.netbeans.modules.web.indent,\ + org.netbeans.modules.web.webkit.debugging,\ + org.netbeans.modules.websvc.jaxws21,\ + org.netbeans.modules.websvc.jaxws21api,\ + org.netbeans.modules.websvc.saas.codegen.java,\ + org.netbeans.modules.whitelist,\ + org.netbeans.modules.xml,\ + org.netbeans.modules.xml.axi,\ + org.netbeans.modules.xml.jaxb,\ + org.netbeans.modules.xml.jaxb.api,\ + org.netbeans.modules.xml.multiview,\ + org.netbeans.modules.xml.retriever,\ + org.netbeans.modules.xml.schema.completion,\ + org.netbeans.modules.xml.schema.model,\ + org.netbeans.modules.xml.tax,\ + org.netbeans.modules.xml.text,\ + org.netbeans.modules.xml.text.obsolete90,\ + org.netbeans.modules.xml.tools,\ + org.netbeans.modules.xml.tools.java,\ + org.netbeans.modules.xml.wsdl.model,\ + org.netbeans.modules.xsl,\ + org.netbeans.spi.debugger.jpda.ui,\ + org.netbeans.spi.debugger.ui,\ + org.netbeans.spi.java.hints,\ + org.openide.compat,\ + org.openide.execution.compat8,\ + org.openide.options,\ + org.openide.util.enumerations,\ + org.openidex.util \ No newline at end of file diff --git a/thirdparty/junit/11.3/junit.zip b/thirdparty/junit/11.3/junit.zip new file mode 100644 index 0000000000..db1b83aea2 Binary files /dev/null and b/thirdparty/junit/11.3/junit.zip differ