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/centralrepository/persona/Bundle.properties b/Core/src/org/sleuthkit/autopsy/centralrepository/persona/Bundle.properties
index 5a218ba942..0016a075ee 100644
--- a/Core/src/org/sleuthkit/autopsy/centralrepository/persona/Bundle.properties
+++ b/Core/src/org/sleuthkit/autopsy/centralrepository/persona/Bundle.properties
@@ -18,19 +18,18 @@ PersonaDetailsPanel.nameLbl.text=Name:
AddAliasDialog.accountsLbl.text=Account:
AddAliasDialog.okBtn.text=OK
AddAliasDialog.cancelBtn.text=Cancel
-PersonaDetailsPanel.casesLbl.text=Cases found in:
+PersonaDetailsPanel.casesLbl.text=Cases found in
PersonaDetailsPanel.deleteAliasBtn.text=Delete
PersonaDetailsPanel.addAliasBtn.text=Add
-PersonaDetailsPanel.aliasesLabel.text=Aliases:
+PersonaDetailsPanel.aliasesLabel.text=Aliases
PersonaDetailsPanel.deleteMetadataBtn.text=Delete
PersonaDetailsPanel.addMetadataBtn.text=Add
-PersonaDetailsPanel.metadataLabel.text=Metadata:
+PersonaDetailsPanel.metadataLabel.text=Metadata
PersonaDetailsPanel.deleteAccountBtn.text=Delete
PersonaDetailsPanel.addAccountBtn.text=Add
-PersonaDetailsPanel.accountsLbl.text=Accounts:
+PersonaDetailsPanel.accountsLbl.text=Accounts
PersonaDetailsPanel.commentField.text=
PersonaDetailsPanel.commentLbl.text=Comment:
-PersonaDetailsPanel.nameField.text=
PersonaDetailsPanel.nameLbl.text=Name:
PersonaDetailsPanel.examinerLbl.text=Created by:
PersonaDetailsPanel.examinerField.text=
@@ -81,3 +80,4 @@ CreatePersonaAccountDialog.identiferLbl.text=Identifier:
CreatePersonaAccountDialog.okBtn.text=OK
PersonasTopComponent.introText.text=Personas represent an online identity. They span cases and are stored in the Central Repository based on accounts that were found in artifacts. You can create, edit, and delete personas here.
PersonasTopComponent.cbFilterByKeyword.text=Filter personas by keyword
+PersonaDetailsPanel.nameField.text=
diff --git a/Core/src/org/sleuthkit/autopsy/centralrepository/persona/Bundle.properties-MERGED b/Core/src/org/sleuthkit/autopsy/centralrepository/persona/Bundle.properties-MERGED
index e8a7f9718a..a4a041c429 100644
--- a/Core/src/org/sleuthkit/autopsy/centralrepository/persona/Bundle.properties-MERGED
+++ b/Core/src/org/sleuthkit/autopsy/centralrepository/persona/Bundle.properties-MERGED
@@ -52,19 +52,18 @@ PersonaDetailsPanel.nameLbl.text=Name:
AddAliasDialog.accountsLbl.text=Account:
AddAliasDialog.okBtn.text=OK
AddAliasDialog.cancelBtn.text=Cancel
-PersonaDetailsPanel.casesLbl.text=Cases found in:
+PersonaDetailsPanel.casesLbl.text=Cases found in
PersonaDetailsPanel.deleteAliasBtn.text=Delete
PersonaDetailsPanel.addAliasBtn.text=Add
-PersonaDetailsPanel.aliasesLabel.text=Aliases:
+PersonaDetailsPanel.aliasesLabel.text=Aliases
PersonaDetailsPanel.deleteMetadataBtn.text=Delete
PersonaDetailsPanel.addMetadataBtn.text=Add
-PersonaDetailsPanel.metadataLabel.text=Metadata:
+PersonaDetailsPanel.metadataLabel.text=Metadata
PersonaDetailsPanel.deleteAccountBtn.text=Delete
PersonaDetailsPanel.addAccountBtn.text=Add
-PersonaDetailsPanel.accountsLbl.text=Accounts:
+PersonaDetailsPanel.accountsLbl.text=Accounts
PersonaDetailsPanel.commentField.text=
PersonaDetailsPanel.commentLbl.text=Comment:
-PersonaDetailsPanel.nameField.text=
PersonaDetailsPanel.nameLbl.text=Name:
PersonaDetailsPanel.examinerLbl.text=Created by:
PersonaDetailsPanel.examinerField.text=
@@ -127,6 +126,7 @@ CreatePersonaAccountDialog.identiferLbl.text=Identifier:
CreatePersonaAccountDialog.okBtn.text=OK
PersonasTopComponent.introText.text=Personas represent an online identity. They span cases and are stored in the Central Repository based on accounts that were found in artifacts. You can create, edit, and delete personas here.
PersonasTopComponent.cbFilterByKeyword.text=Filter personas by keyword
+PersonaDetailsPanel.nameField.text=
PersonasTopComponent_delete_confirmation_msg=Are you sure you want to delete this persona?
PersonasTopComponent_delete_confirmation_Title=Are you sure?
PersonasTopComponent_delete_exception_msg=Failed to delete persona.
diff --git a/Core/src/org/sleuthkit/autopsy/centralrepository/persona/PersonaDetailsDialog.form b/Core/src/org/sleuthkit/autopsy/centralrepository/persona/PersonaDetailsDialog.form
index 296ad79921..70a0422367 100644
--- a/Core/src/org/sleuthkit/autopsy/centralrepository/persona/PersonaDetailsDialog.form
+++ b/Core/src/org/sleuthkit/autopsy/centralrepository/persona/PersonaDetailsDialog.form
@@ -3,7 +3,6 @@
diff --git a/Core/src/org/sleuthkit/autopsy/centralrepository/persona/PersonaDetailsDialog.java b/Core/src/org/sleuthkit/autopsy/centralrepository/persona/PersonaDetailsDialog.java
index 187e553a8f..94061921c1 100644
--- a/Core/src/org/sleuthkit/autopsy/centralrepository/persona/PersonaDetailsDialog.java
+++ b/Core/src/org/sleuthkit/autopsy/centralrepository/persona/PersonaDetailsDialog.java
@@ -87,10 +87,10 @@ public class PersonaDetailsDialog extends JDialog {
cancelBtn = new javax.swing.JButton();
okBtn = new javax.swing.JButton();
+ jScrollPane1 = new javax.swing.JScrollPane();
pdp = new org.sleuthkit.autopsy.centralrepository.persona.PersonaDetailsPanel();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
- setResizable(false);
org.openide.awt.Mnemonics.setLocalizedText(cancelBtn, org.openide.util.NbBundle.getMessage(PersonaDetailsDialog.class, "PersonaDetailsDialog.cancelBtn.text")); // NOI18N
cancelBtn.setMaximumSize(new java.awt.Dimension(79, 23));
@@ -109,20 +109,20 @@ public class PersonaDetailsDialog extends JDialog {
}
});
+ jScrollPane1.setBorder(null);
+ jScrollPane1.setViewportView(pdp);
+
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
- .addContainerGap()
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
- .addComponent(pdp, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 660, Short.MAX_VALUE)
- .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
- .addGap(0, 0, Short.MAX_VALUE)
- .addComponent(okBtn)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(cancelBtn, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
+ .addGroup(layout.createSequentialGroup()
+ .addContainerGap(470, Short.MAX_VALUE)
+ .addComponent(okBtn)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(cancelBtn, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
+ .addComponent(jScrollPane1)
);
layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {cancelBtn, okBtn});
@@ -130,8 +130,8 @@ public class PersonaDetailsDialog extends JDialog {
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
- .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(pdp, javax.swing.GroupLayout.PREFERRED_SIZE, 564, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addContainerGap()
+ .addComponent(jScrollPane1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(okBtn)
@@ -165,6 +165,7 @@ public class PersonaDetailsDialog extends JDialog {
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton cancelBtn;
+ private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JButton okBtn;
private org.sleuthkit.autopsy.centralrepository.persona.PersonaDetailsPanel pdp;
// End of variables declaration//GEN-END:variables
diff --git a/Core/src/org/sleuthkit/autopsy/centralrepository/persona/PersonaDetailsPanel.form b/Core/src/org/sleuthkit/autopsy/centralrepository/persona/PersonaDetailsPanel.form
index ded4f0f448..ad0a16878f 100644
--- a/Core/src/org/sleuthkit/autopsy/centralrepository/persona/PersonaDetailsPanel.form
+++ b/Core/src/org/sleuthkit/autopsy/centralrepository/persona/PersonaDetailsPanel.form
@@ -45,7 +45,7 @@
-
+
@@ -61,53 +61,18 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -117,6 +82,46 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -125,7 +130,12 @@
-
+
+
+
+
+
+
@@ -137,12 +147,7 @@
-
-
-
-
-
-
+
@@ -152,7 +157,7 @@
-
+
@@ -162,7 +167,7 @@
-
+
@@ -172,7 +177,7 @@
-
+
@@ -229,6 +234,11 @@
+
+
+
+
+
@@ -244,6 +254,11 @@
+
+
+
+
+
@@ -291,6 +306,11 @@
+
+
+
+
+
@@ -338,6 +358,11 @@
+
+
+
+
+
@@ -385,6 +410,11 @@
+
+
+
+
+
diff --git a/Core/src/org/sleuthkit/autopsy/centralrepository/persona/PersonaDetailsPanel.java b/Core/src/org/sleuthkit/autopsy/centralrepository/persona/PersonaDetailsPanel.java
index edcb36c353..bc4f6ec9c3 100644
--- a/Core/src/org/sleuthkit/autopsy/centralrepository/persona/PersonaDetailsPanel.java
+++ b/Core/src/org/sleuthkit/autopsy/centralrepository/persona/PersonaDetailsPanel.java
@@ -399,11 +399,13 @@ public final class PersonaDetailsPanel extends javax.swing.JPanel {
commentField.setEditable(false);
commentField.setText(org.openide.util.NbBundle.getMessage(PersonaDetailsPanel.class, "PersonaDetailsPanel.commentField.text")); // NOI18N
+ nameLbl.setFont(nameLbl.getFont().deriveFont(nameLbl.getFont().getStyle() | java.awt.Font.BOLD));
org.openide.awt.Mnemonics.setLocalizedText(nameLbl, org.openide.util.NbBundle.getMessage(PersonaDetailsPanel.class, "PersonaDetailsPanel.nameLbl.text")); // NOI18N
nameField.setEditable(false);
nameField.setText(org.openide.util.NbBundle.getMessage(PersonaDetailsPanel.class, "PersonaDetailsPanel.nameField.text")); // NOI18N
+ accountsLbl.setFont(accountsLbl.getFont().deriveFont(accountsLbl.getFont().getStyle() | java.awt.Font.BOLD));
org.openide.awt.Mnemonics.setLocalizedText(accountsLbl, org.openide.util.NbBundle.getMessage(PersonaDetailsPanel.class, "PersonaDetailsPanel.accountsLbl.text")); // NOI18N
accountsTable.setModel(new javax.swing.table.DefaultTableModel(
@@ -428,6 +430,7 @@ public final class PersonaDetailsPanel extends javax.swing.JPanel {
org.openide.awt.Mnemonics.setLocalizedText(deleteAccountBtn, org.openide.util.NbBundle.getMessage(PersonaDetailsPanel.class, "PersonaDetailsPanel.deleteAccountBtn.text")); // NOI18N
deleteAccountBtn.setEnabled(false);
+ metadataLabel.setFont(metadataLabel.getFont().deriveFont(metadataLabel.getFont().getStyle() | java.awt.Font.BOLD));
org.openide.awt.Mnemonics.setLocalizedText(metadataLabel, org.openide.util.NbBundle.getMessage(PersonaDetailsPanel.class, "PersonaDetailsPanel.metadataLabel.text")); // NOI18N
metadataTable.setModel(new javax.swing.table.DefaultTableModel(
@@ -452,6 +455,7 @@ public final class PersonaDetailsPanel extends javax.swing.JPanel {
org.openide.awt.Mnemonics.setLocalizedText(deleteMetadataBtn, org.openide.util.NbBundle.getMessage(PersonaDetailsPanel.class, "PersonaDetailsPanel.deleteMetadataBtn.text")); // NOI18N
deleteMetadataBtn.setEnabled(false);
+ aliasesLabel.setFont(aliasesLabel.getFont().deriveFont(aliasesLabel.getFont().getStyle() | java.awt.Font.BOLD));
org.openide.awt.Mnemonics.setLocalizedText(aliasesLabel, org.openide.util.NbBundle.getMessage(PersonaDetailsPanel.class, "PersonaDetailsPanel.aliasesLabel.text")); // NOI18N
aliasesTable.setModel(new javax.swing.table.DefaultTableModel(
@@ -476,6 +480,7 @@ public final class PersonaDetailsPanel extends javax.swing.JPanel {
org.openide.awt.Mnemonics.setLocalizedText(deleteAliasBtn, org.openide.util.NbBundle.getMessage(PersonaDetailsPanel.class, "PersonaDetailsPanel.deleteAliasBtn.text")); // NOI18N
deleteAliasBtn.setEnabled(false);
+ casesLbl.setFont(casesLbl.getFont().deriveFont(casesLbl.getFont().getStyle() | java.awt.Font.BOLD));
org.openide.awt.Mnemonics.setLocalizedText(casesLbl, org.openide.util.NbBundle.getMessage(PersonaDetailsPanel.class, "PersonaDetailsPanel.casesLbl.text")); // NOI18N
casesTable.setModel(new javax.swing.table.DefaultTableModel(
@@ -498,43 +503,14 @@ public final class PersonaDetailsPanel extends javax.swing.JPanel {
.addGroup(detailsPanelLayout.createSequentialGroup()
.addContainerGap()
.addGroup(detailsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(accountsTablePane, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 605, Short.MAX_VALUE)
.addComponent(accountsLbl, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(metadataLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(metadataTablePane, javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(aliasesLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(aliasesTablePane)
.addComponent(casesLbl, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(casesTablePane)
- .addGroup(detailsPanelLayout.createSequentialGroup()
- .addComponent(commentLbl)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(commentField))
.addGroup(detailsPanelLayout.createSequentialGroup()
.addComponent(nameLbl)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(nameField))
- .addGroup(detailsPanelLayout.createSequentialGroup()
- .addGroup(detailsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(detailsPanelLayout.createSequentialGroup()
- .addComponent(addAccountBtn)
- .addGap(18, 18, 18)
- .addComponent(editAccountBtn)
- .addGap(18, 18, 18)
- .addComponent(deleteAccountBtn))
- .addGroup(detailsPanelLayout.createSequentialGroup()
- .addComponent(addMetadataBtn)
- .addGap(18, 18, 18)
- .addComponent(editMetadataBtn)
- .addGap(18, 18, 18)
- .addComponent(deleteMetadataBtn))
- .addGroup(detailsPanelLayout.createSequentialGroup()
- .addComponent(addAliasBtn)
- .addGap(18, 18, 18)
- .addComponent(editAliasBtn)
- .addGap(18, 18, 18)
- .addComponent(deleteAliasBtn)))
- .addGap(0, 0, Short.MAX_VALUE))
.addGroup(detailsPanelLayout.createSequentialGroup()
.addComponent(examinerLbl)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
@@ -542,13 +518,49 @@ public final class PersonaDetailsPanel extends javax.swing.JPanel {
.addGap(18, 18, 18)
.addComponent(creationDateLbl)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(creationDateField)))
+ .addComponent(creationDateField))
+ .addGroup(detailsPanelLayout.createSequentialGroup()
+ .addComponent(commentLbl)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(commentField))
+ .addGroup(detailsPanelLayout.createSequentialGroup()
+ .addGap(10, 10, 10)
+ .addGroup(detailsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(aliasesTablePane, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 595, Short.MAX_VALUE)
+ .addComponent(metadataTablePane, javax.swing.GroupLayout.Alignment.TRAILING)
+ .addComponent(accountsTablePane, javax.swing.GroupLayout.Alignment.TRAILING)
+ .addGroup(detailsPanelLayout.createSequentialGroup()
+ .addGroup(detailsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(detailsPanelLayout.createSequentialGroup()
+ .addComponent(addAliasBtn)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(editAliasBtn)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(deleteAliasBtn))
+ .addGroup(detailsPanelLayout.createSequentialGroup()
+ .addComponent(addMetadataBtn)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(editMetadataBtn)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(deleteMetadataBtn))
+ .addGroup(detailsPanelLayout.createSequentialGroup()
+ .addComponent(addAccountBtn)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(editAccountBtn)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(deleteAccountBtn)))
+ .addGap(0, 0, Short.MAX_VALUE))
+ .addComponent(casesTablePane))))
.addContainerGap())
);
detailsPanelLayout.setVerticalGroup(
detailsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(detailsPanelLayout.createSequentialGroup()
- .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addContainerGap()
+ .addGroup(detailsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(nameLbl)
+ .addComponent(nameField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addGap(18, 18, 18)
.addGroup(detailsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(examinerLbl)
.addComponent(examinerField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
@@ -558,11 +570,7 @@ public final class PersonaDetailsPanel extends javax.swing.JPanel {
.addGroup(detailsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(commentField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(commentLbl))
- .addGap(20, 20, 20)
- .addGroup(detailsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(nameLbl)
- .addComponent(nameField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGap(18, 18, 18)
.addComponent(accountsLbl)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(accountsTablePane, javax.swing.GroupLayout.PREFERRED_SIZE, 56, javax.swing.GroupLayout.PREFERRED_SIZE)
@@ -571,7 +579,7 @@ public final class PersonaDetailsPanel extends javax.swing.JPanel {
.addComponent(addAccountBtn)
.addComponent(deleteAccountBtn)
.addComponent(editAccountBtn))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(metadataLabel)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(metadataTablePane, javax.swing.GroupLayout.PREFERRED_SIZE, 66, javax.swing.GroupLayout.PREFERRED_SIZE)
@@ -580,7 +588,7 @@ public final class PersonaDetailsPanel extends javax.swing.JPanel {
.addComponent(addMetadataBtn)
.addComponent(deleteMetadataBtn)
.addComponent(editMetadataBtn))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(aliasesLabel)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(aliasesTablePane, javax.swing.GroupLayout.PREFERRED_SIZE, 74, javax.swing.GroupLayout.PREFERRED_SIZE)
@@ -589,7 +597,7 @@ public final class PersonaDetailsPanel extends javax.swing.JPanel {
.addComponent(addAliasBtn)
.addComponent(deleteAliasBtn)
.addComponent(editAliasBtn))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(casesLbl)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(casesTablePane, javax.swing.GroupLayout.PREFERRED_SIZE, 63, javax.swing.GroupLayout.PREFERRED_SIZE)
@@ -606,7 +614,7 @@ public final class PersonaDetailsPanel extends javax.swing.JPanel {
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGap(0, 521, Short.MAX_VALUE)
+ .addGap(0, 583, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(detailsPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
diff --git a/Core/src/org/sleuthkit/autopsy/commandlineingest/CommandLineIngestManager.java b/Core/src/org/sleuthkit/autopsy/commandlineingest/CommandLineIngestManager.java
index 442c27acc8..edbcd7a76f 100755
--- a/Core/src/org/sleuthkit/autopsy/commandlineingest/CommandLineIngestManager.java
+++ b/Core/src/org/sleuthkit/autopsy/commandlineingest/CommandLineIngestManager.java
@@ -141,7 +141,7 @@ public class CommandLineIngestManager extends CommandLineManager{
if (commands == null || commands.isEmpty()) {
LOGGER.log(Level.SEVERE, "No command line commands specified");
- System.err.println("No command line commands specified");
+ System.out.println("No command line commands specified");
return;
}
@@ -169,7 +169,7 @@ public class CommandLineIngestManager extends CommandLineManager{
} catch (CaseActionException ex) {
String baseCaseName = command.getInputs().get(CommandLineCommand.InputType.CASE_NAME.name());
LOGGER.log(Level.SEVERE, "Error creating or opening case " + baseCaseName, ex);
- System.err.println("Error creating or opening case " + baseCaseName);
+ System.out.println("Error creating or opening case " + baseCaseName);
// Do not process any other commands
return;
}
@@ -195,7 +195,7 @@ public class CommandLineIngestManager extends CommandLineManager{
} catch (InterruptedException | AutoIngestDataSourceProcessor.AutoIngestDataSourceProcessorException | CaseActionException ex) {
String dataSourcePath = command.getInputs().get(CommandLineCommand.InputType.DATA_SOURCE_PATH.name());
LOGGER.log(Level.SEVERE, "Error adding data source " + dataSourcePath, ex);
- System.err.println("Error adding data source " + dataSourcePath);
+ System.out.println("Error adding data source " + dataSourcePath);
// Do not process any other commands
return;
}
@@ -224,7 +224,7 @@ public class CommandLineIngestManager extends CommandLineManager{
content = Case.getCurrentCaseThrows().getSleuthkitCase().getContentById(dataSourceObjId);
} catch (TskCoreException ex) {
LOGGER.log(Level.SEVERE, "Exception while trying to find data source with object ID " + dataSourceId, ex);
- System.err.println("Exception while trying to find data source with object ID " + dataSourceId);
+ System.out.println("Exception while trying to find data source with object ID " + dataSourceId);
// Do not process any other commands
return;
}
@@ -249,7 +249,7 @@ public class CommandLineIngestManager extends CommandLineManager{
} catch (InterruptedException | CaseActionException ex) {
String dataSourcePath = command.getInputs().get(CommandLineCommand.InputType.DATA_SOURCE_PATH.name());
LOGGER.log(Level.SEVERE, "Error running ingest on data source " + dataSourcePath, ex);
- System.err.println("Error running ingest on data source " + dataSourcePath);
+ System.out.println("Error running ingest on data source " + dataSourcePath);
// Do not process any other commands
return;
}
@@ -272,7 +272,7 @@ public class CommandLineIngestManager extends CommandLineManager{
} catch (CaseActionException ex) {
String caseDirPath = command.getInputs().get(CommandLineCommand.InputType.CASE_FOLDER_PATH.name());
LOGGER.log(Level.SEVERE, "Error opening case in case directory: " + caseDirPath, ex);
- System.err.println("Error opening case in case directory: " + caseDirPath);
+ System.out.println("Error opening case in case directory: " + caseDirPath);
// Do not process any other commands
return;
}
@@ -302,7 +302,7 @@ public class CommandLineIngestManager extends CommandLineManager{
} catch (CaseActionException ex) {
String caseDirPath = command.getInputs().get(CommandLineCommand.InputType.CASE_FOLDER_PATH.name());
LOGGER.log(Level.SEVERE, "Error opening case in case directory: " + caseDirPath, ex);
- System.err.println("Error opening case in case directory: " + caseDirPath);
+ System.out.println("Error opening case in case directory: " + caseDirPath);
// Do not process any other commands
return;
}
@@ -320,14 +320,14 @@ public class CommandLineIngestManager extends CommandLineManager{
* logged.
*/
LOGGER.log(Level.SEVERE, "Unexpected error", ex);
- System.err.println("Unexpected error. Exiting...");
+ System.out.println("Unexpected error. Exiting...");
} finally {
try {
Case.closeCurrentCase();
} catch (CaseActionException ex) {
LOGGER.log(Level.WARNING, "Exception while closing case", ex);
- System.err.println("Exception while closing case");
+ System.out.println("Exception while closing case");
}
}
@@ -507,7 +507,7 @@ public class CommandLineIngestManager extends CommandLineManager{
if (selectedProfile == null) {
// unable to find the user specified profile
LOGGER.log(Level.SEVERE, "Unable to find ingest profile: {0}. Ingest cancelled!", ingestProfileName);
- System.err.println("Unable to find ingest profile: " + ingestProfileName + ". Ingest cancelled!");
+ System.out.println("Unable to find ingest profile: " + ingestProfileName + ". Ingest cancelled!");
return;
}
@@ -516,7 +516,7 @@ public class CommandLineIngestManager extends CommandLineManager{
if (selectedFileSet == null) {
// unable to find the user specified profile
LOGGER.log(Level.SEVERE, "Unable to find file filter {0} for ingest profile: {1}. Ingest cancelled!", new Object[]{selectedProfile.getFileIngestFilter(), ingestProfileName});
- System.err.println("Unable to find file filter " + selectedProfile.getFileIngestFilter() + " for ingest profile: " + ingestProfileName + ". Ingest cancelled!");
+ System.out.println("Unable to find file filter " + selectedProfile.getFileIngestFilter() + " for ingest profile: " + ingestProfileName + ". Ingest cancelled!");
return;
}
}
diff --git a/Core/src/org/sleuthkit/autopsy/commandlineingest/CommandLineOpenCaseManager.java b/Core/src/org/sleuthkit/autopsy/commandlineingest/CommandLineOpenCaseManager.java
index d990f2a1cf..d0a10b7ebb 100755
--- a/Core/src/org/sleuthkit/autopsy/commandlineingest/CommandLineOpenCaseManager.java
+++ b/Core/src/org/sleuthkit/autopsy/commandlineingest/CommandLineOpenCaseManager.java
@@ -68,7 +68,7 @@ public class CommandLineOpenCaseManager extends CommandLineManager {
if (casePath == null || casePath.isEmpty()) {
LOGGER.log(Level.SEVERE, "No command line commands specified");
- System.err.println("No command line commands specified");
+ System.out.println("No command line commands specified");
return;
}
@@ -77,7 +77,7 @@ public class CommandLineOpenCaseManager extends CommandLineManager {
LOGGER.log(Level.INFO, "Opening case at " + casePath);
} catch (CaseActionException ex) {
LOGGER.log(Level.SEVERE, "Error opening case from command line ", ex);
- System.err.println("Error opening case ");
+ System.out.println("Error opening case ");
}
}
diff --git a/Core/src/org/sleuthkit/autopsy/commandlineingest/CommandLineOptionProcessor.java b/Core/src/org/sleuthkit/autopsy/commandlineingest/CommandLineOptionProcessor.java
index 361a32a6ac..5a6f8596b0 100755
--- a/Core/src/org/sleuthkit/autopsy/commandlineingest/CommandLineOptionProcessor.java
+++ b/Core/src/org/sleuthkit/autopsy/commandlineingest/CommandLineOptionProcessor.java
@@ -90,7 +90,7 @@ public class CommandLineOptionProcessor extends OptionProcessor {
|| values.containsKey(generateReportsOption))) {
// not running from command line
logger.log(Level.INFO, "No command line commands passed in as inputs. Not running from command line."); //NON-NLS
- System.err.println("No command line commands passed in as inputs. Not running from command line.");
+ System.out.println("No command line commands passed in as inputs. Not running from command line.");
return;
}
@@ -101,14 +101,14 @@ public class CommandLineOptionProcessor extends OptionProcessor {
argDirs = values.get(caseNameOption);
if (argDirs.length < 1) {
logger.log(Level.SEVERE, "Missing argument 'caseName'");
- System.err.println("Missing argument 'caseName'");
+ System.out.println("Missing argument 'caseName'");
return;
}
inputCaseName = argDirs[0];
if (inputCaseName == null || inputCaseName.isEmpty()) {
logger.log(Level.SEVERE, "'caseName' argument is empty");
- System.err.println("'caseName' argument is empty");
+ System.out.println("'caseName' argument is empty");
return;
}
}
@@ -119,26 +119,26 @@ public class CommandLineOptionProcessor extends OptionProcessor {
if (argDirs.length < 1) {
logger.log(Level.SEVERE, "Missing argument 'caseType'");
- System.err.println("Missing argument 'caseType'");
+ System.out.println("Missing argument 'caseType'");
return;
}
caseType = argDirs[0];
if (caseType == null || caseType.isEmpty()) {
logger.log(Level.SEVERE, "'caseType' argument is empty");
- System.err.println("'caseType' argument is empty");
+ System.out.println("'caseType' argument is empty");
return;
}
if (!caseType.equalsIgnoreCase(CASETYPE_MULTI) && !caseType.equalsIgnoreCase(CASETYPE_SINGLE)) {
logger.log(Level.SEVERE, "'caseType' argument is invalid");
- System.err.println("'caseType' argument is invalid");
+ System.out.println("'caseType' argument is invalid");
return;
}
if (caseType.equalsIgnoreCase(CASETYPE_MULTI) && !FeatureAccessUtils.canCreateMultiUserCases()) {
logger.log(Level.SEVERE, "Unable to create multi user case.");
- System.err.println("Unable to create multi user case. Confirm that multi user settings are configured correctly.");
+ System.out.println("Unable to create multi user case. Confirm that multi user settings are configured correctly.");
return;
}
}
@@ -148,20 +148,20 @@ public class CommandLineOptionProcessor extends OptionProcessor {
argDirs = values.get(caseBaseDirOption);
if (argDirs.length < 1) {
logger.log(Level.SEVERE, "Missing argument 'caseBaseDir'");
- System.err.println("Missing argument 'caseBaseDir'");
+ System.out.println("Missing argument 'caseBaseDir'");
return;
}
caseBaseDir = argDirs[0];
if (caseBaseDir == null || caseBaseDir.isEmpty()) {
- logger.log(Level.SEVERE, "Missing argument 'caseBaseDir'");
- System.err.println("Missing argument 'caseBaseDir'");
+ logger.log(Level.SEVERE, "Missing argument 'caseBaseDir' option");
+ System.out.println("Missing argument 'caseBaseDir' option");
return;
}
if (!(new File(caseBaseDir).exists()) || !(new File(caseBaseDir).isDirectory())) {
- logger.log(Level.SEVERE, "''caseBaseDir'' {0} directory doesn''t exist or is not a directory", caseBaseDir);
- System.err.println("'caseBaseDir' directory doesn't exist or is not a directory: " + caseBaseDir);
+ logger.log(Level.SEVERE, "'caseBaseDir' {0} directory doesn''t exist or is not a directory", caseBaseDir);
+ System.out.println("'caseBaseDir' directory doesn't exist or is not a directory: " + caseBaseDir);
return;
}
}
@@ -172,7 +172,7 @@ public class CommandLineOptionProcessor extends OptionProcessor {
argDirs = values.get(dataSourcePathOption);
if (argDirs.length < 1) {
logger.log(Level.SEVERE, "Missing argument 'dataSourcePath'");
- System.err.println("Missing argument 'dataSourcePath'");
+ System.out.println("Missing argument 'dataSourcePath'");
return;
}
dataSourcePath = argDirs[0];
@@ -180,13 +180,13 @@ public class CommandLineOptionProcessor extends OptionProcessor {
// verify inputs
if (dataSourcePath == null || dataSourcePath.isEmpty()) {
logger.log(Level.SEVERE, "Missing argument 'dataSourcePath'");
- System.err.println("Missing argument 'dataSourcePath'");
+ System.out.println("Missing argument 'dataSourcePath'");
return;
}
if (!(new File(dataSourcePath).exists())) {
logger.log(Level.SEVERE, "Input data source file {0} doesn''t exist", dataSourcePath);
- System.err.println("Input data source file " + dataSourcePath + " doesn't exist");
+ System.out.println("Input data source file " + dataSourcePath + " doesn't exist");
return;
}
}
@@ -197,7 +197,7 @@ public class CommandLineOptionProcessor extends OptionProcessor {
argDirs = values.get(dataSourceObjectIdOption);
if (argDirs.length < 1) {
logger.log(Level.SEVERE, "Missing argument 'dataSourceObjectIdOption'");
- System.err.println("Missing argument 'dataSourceObjectIdOption'");
+ System.out.println("Missing argument 'dataSourceObjectIdOption'");
return;
}
dataSourceId = argDirs[0];
@@ -205,7 +205,7 @@ public class CommandLineOptionProcessor extends OptionProcessor {
// verify inputs
if (dataSourceId == null || dataSourceId.isEmpty()) {
logger.log(Level.SEVERE, "Input data source id is empty");
- System.err.println("Input data source id is empty");
+ System.out.println("Input data source id is empty");
return;
}
}
@@ -215,22 +215,22 @@ public class CommandLineOptionProcessor extends OptionProcessor {
argDirs = values.get(caseDirOption);
if (argDirs.length < 1) {
- logger.log(Level.SEVERE, "Missing argument 'caseDirOption'");
- System.err.println("Missing argument 'caseDirOption'");
+ logger.log(Level.SEVERE, "Argument missing from 'caseDir' option");
+ System.out.println("Argument missing from 'caseDir' option");
return;
}
caseDir = argDirs[0];
// verify inputs
if (caseDir == null || caseDir.isEmpty()) {
- logger.log(Level.SEVERE, "Missing argument 'caseDirOption'");
- System.err.println("Missing argument 'caseDirOption'");
+ logger.log(Level.SEVERE, "Argument missing from 'caseDir'");
+ System.out.println("Argument missing from 'caseDir'");
return;
}
if (!(new File(caseDir).exists()) || !(new File(caseDir).isDirectory())) {
- logger.log(Level.SEVERE, "Case directory {0} doesn''t exist or is not a directory", caseDir);
- System.err.println("Case directory " + caseDir + " doesn't exist or is not a directory");
+ logger.log(Level.SEVERE, "Case directory {0} does not exist or is not a directory", caseDir);
+ System.out.println("Case directory " + caseDir + " does not exist or is not a directory");
return;
}
}
@@ -240,8 +240,8 @@ public class CommandLineOptionProcessor extends OptionProcessor {
argDirs = values.get(ingestProfileOption);
if (argDirs.length < 1) {
- logger.log(Level.SEVERE, "Missing argument 'ingestProfile'");
- System.err.println("Missing argument 'ingestProfile'");
+ logger.log(Level.SEVERE, "Argument missing from 'ingestProfile' option");
+ System.out.println("Argument missing from 'ingestProfile' option");
return;
}
ingestProfile = argDirs[0];
@@ -249,7 +249,7 @@ public class CommandLineOptionProcessor extends OptionProcessor {
// verify inputs
if (ingestProfile == null || ingestProfile.isEmpty()) {
logger.log(Level.SEVERE, "Missing argument 'ingestProfile'");
- System.err.println("Missing argument 'ingestProfile'");
+ System.out.println("Missing argument 'ingestProfile'");
return;
}
}
@@ -269,7 +269,7 @@ public class CommandLineOptionProcessor extends OptionProcessor {
// 'caseBaseDir' must always be specified for "CREATE_CASE" command
if (caseBaseDir.isEmpty()) {
logger.log(Level.SEVERE, "'caseBaseDir' argument is empty");
- System.err.println("'caseBaseDir' argument is empty");
+ System.out.println("'caseBaseDir' argument is empty");
runFromCommandLine = false;
return;
}
@@ -289,7 +289,7 @@ public class CommandLineOptionProcessor extends OptionProcessor {
if (!values.containsKey(createCaseCommandOption) && caseDir.isEmpty()) {
// new case is not being created during this run, so 'caseDir' should have been specified
logger.log(Level.SEVERE, "'caseDir' argument is empty");
- System.err.println("'caseDir' argument is empty");
+ System.out.println("'caseDir' argument is empty");
runFromCommandLine = false;
return;
}
@@ -297,7 +297,7 @@ public class CommandLineOptionProcessor extends OptionProcessor {
// 'dataSourcePath' must always be specified for "ADD_DATA_SOURCE" command
if (dataSourcePath.isEmpty()) {
logger.log(Level.SEVERE, "'dataSourcePath' argument is empty");
- System.err.println("'dataSourcePath' argument is empty");
+ System.out.println("'dataSourcePath' argument is empty");
runFromCommandLine = false;
return;
}
@@ -316,7 +316,7 @@ public class CommandLineOptionProcessor extends OptionProcessor {
if (!values.containsKey(createCaseCommandOption) && caseDir.isEmpty()) {
// new case is not being created during this run, so 'caseDir' should have been specified
logger.log(Level.SEVERE, "'caseDir' argument is empty");
- System.err.println("'caseDir' argument is empty");
+ System.out.println("'caseDir' argument is empty");
runFromCommandLine = false;
return;
}
@@ -325,7 +325,7 @@ public class CommandLineOptionProcessor extends OptionProcessor {
if (!values.containsKey(addDataSourceCommandOption) && dataSourceId.isEmpty()) {
// data source is not being added during this run, so 'dataSourceId' should have been specified
logger.log(Level.SEVERE, "'dataSourceId' argument is empty");
- System.err.println("'dataSourceId' argument is empty");
+ System.out.println("'dataSourceId' argument is empty");
runFromCommandLine = false;
return;
}
@@ -345,7 +345,7 @@ public class CommandLineOptionProcessor extends OptionProcessor {
if (!values.containsKey(createCaseCommandOption) && caseDir.isEmpty()) {
// new case is not being created during this run, so 'caseDir' should have been specified
logger.log(Level.SEVERE, "'caseDir' argument is empty");
- System.err.println("'caseDir' argument is empty");
+ System.out.println("'caseDir' argument is empty");
runFromCommandLine = false;
return;
}
@@ -364,7 +364,7 @@ public class CommandLineOptionProcessor extends OptionProcessor {
if (!values.containsKey(createCaseCommandOption) && caseDir.isEmpty()) {
// new case is not being created during this run, so 'caseDir' should have been specified
logger.log(Level.SEVERE, "'caseDir' argument is empty");
- System.err.println("'caseDir' argument is empty");
+ System.out.println("'caseDir' argument is empty");
runFromCommandLine = false;
return;
}
@@ -379,7 +379,7 @@ public class CommandLineOptionProcessor extends OptionProcessor {
// something is not right.
if (reportProfile != null && reportProfile.isEmpty()) {
logger.log(Level.SEVERE, "'generateReports' argument is empty");
- System.err.println("'generateReports' argument is empty");
+ System.out.println("'generateReports' argument is empty");
runFromCommandLine = false;
return;
}
diff --git a/Core/src/org/sleuthkit/autopsy/core/Installer.java b/Core/src/org/sleuthkit/autopsy/core/Installer.java
index d527f48244..0612729b61 100644
--- a/Core/src/org/sleuthkit/autopsy/core/Installer.java
+++ b/Core/src/org/sleuthkit/autopsy/core/Installer.java
@@ -164,50 +164,23 @@ public class Installer extends ModuleInstall {
} catch (UnsatisfiedLinkError e) {
logger.log(Level.SEVERE, "Error loading VHDI library, ", e); //NON-NLS
}
+
+ // Only attempt to load OpenSSL if we're in 64 bit mode
+ if(System.getProperty("sun.arch.data.model").contains("64")) {
+ // libcrypto must be loaded before libssl to make sure it's the correct version
+ try {
+ System.loadLibrary("libcrypto-1_1-x64"); //NON-NLS
+ logger.log(Level.INFO, "Crypto library loaded"); //NON-NLS
+ } catch (UnsatisfiedLinkError e) {
+ logger.log(Level.SEVERE, "Error loading Crypto library, ", e); //NON-NLS
+ }
- /*
- * PostgreSQL
- */
- try {
- System.loadLibrary("msvcr120"); //NON-NLS
- logger.log(Level.INFO, "MSVCR 120 library loaded"); //NON-NLS
- } catch (UnsatisfiedLinkError e) {
- logger.log(Level.SEVERE, "Error loading MSVCR120 library, ", e); //NON-NLS
- }
-
- try {
- System.loadLibrary("libeay32"); //NON-NLS
- logger.log(Level.INFO, "LIBEAY32 library loaded"); //NON-NLS
- } catch (UnsatisfiedLinkError e) {
- logger.log(Level.SEVERE, "Error loading LIBEAY32 library, ", e); //NON-NLS
- }
-
- try {
- System.loadLibrary("ssleay32"); //NON-NLS
- logger.log(Level.INFO, "SSLEAY32 library loaded"); //NON-NLS
- } catch (UnsatisfiedLinkError e) {
- logger.log(Level.SEVERE, "Error loading SSLEAY32 library, ", e); //NON-NLS
- }
-
- try {
- System.loadLibrary("libiconv-2"); //NON-NLS
- logger.log(Level.INFO, "libiconv-2 library loaded"); //NON-NLS
- } catch (UnsatisfiedLinkError e) {
- logger.log(Level.SEVERE, "Error loading libiconv-2 library, ", e); //NON-NLS
- }
-
- try {
- System.loadLibrary("libintl-8"); //NON-NLS
- logger.log(Level.INFO, "libintl-8 library loaded"); //NON-NLS
- } catch (UnsatisfiedLinkError e) {
- logger.log(Level.SEVERE, "Error loading libintl-8 library, ", e); //NON-NLS
- }
-
- try {
- System.loadLibrary("libpq"); //NON-NLS
- logger.log(Level.INFO, "LIBPQ library loaded"); //NON-NLS
- } catch (UnsatisfiedLinkError e) {
- logger.log(Level.SEVERE, "Error loading LIBPQ library, ", e); //NON-NLS
+ try {
+ System.loadLibrary("libssl-1_1-x64"); //NON-NLS
+ logger.log(Level.INFO, "OpenSSL library loaded"); //NON-NLS
+ } catch (UnsatisfiedLinkError e) {
+ logger.log(Level.SEVERE, "Error loading OpenSSL library, ", e); //NON-NLS
+ }
}
}
}
diff --git a/Core/src/org/sleuthkit/autopsy/report/infrastructure/ReportVisualPanel1.java b/Core/src/org/sleuthkit/autopsy/report/infrastructure/ReportVisualPanel1.java
index 79680178e1..e98f0b7984 100644
--- a/Core/src/org/sleuthkit/autopsy/report/infrastructure/ReportVisualPanel1.java
+++ b/Core/src/org/sleuthkit/autopsy/report/infrastructure/ReportVisualPanel1.java
@@ -59,11 +59,13 @@ final class ReportVisualPanel1 extends JPanel implements ListSelectionListener {
private PortableCaseReportModule portableCaseModule;
private Map moduleConfigs;
private Integer selectedIndex;
+ private final boolean displayCaseSpecificData;
/**
* Creates new form ReportVisualPanel1
*/
- public ReportVisualPanel1(ReportWizardPanel1 wizPanel, Map moduleConfigs) {
+ ReportVisualPanel1(ReportWizardPanel1 wizPanel, Map moduleConfigs, boolean displayCaseSpecificData) {
+ this.displayCaseSpecificData = displayCaseSpecificData;
this.wizPanel = wizPanel;
this.moduleConfigs = moduleConfigs;
initComponents();
@@ -371,7 +373,7 @@ final class ReportVisualPanel1 extends JPanel implements ListSelectionListener {
// General modules that support data source selection will be presented
// a data source selection panel, so they should not be finished immediately.
- boolean generalModuleSelected = (module instanceof GeneralReportModule) && !((GeneralReportModule)module).supportsDataSourceSelection();
+ boolean generalModuleSelected = (module instanceof GeneralReportModule) && (!((GeneralReportModule)module).supportsDataSourceSelection() || !displayCaseSpecificData);
wizPanel.setNext(!generalModuleSelected);
wizPanel.setFinish(generalModuleSelected);
diff --git a/Core/src/org/sleuthkit/autopsy/report/infrastructure/ReportWizardIterator.java b/Core/src/org/sleuthkit/autopsy/report/infrastructure/ReportWizardIterator.java
index 59e66a36a2..92de2926bc 100644
--- a/Core/src/org/sleuthkit/autopsy/report/infrastructure/ReportWizardIterator.java
+++ b/Core/src/org/sleuthkit/autopsy/report/infrastructure/ReportWizardIterator.java
@@ -72,12 +72,12 @@ final class ReportWizardIterator implements WizardDescriptor.Iterator moduleConfigs;
private final JButton nextButton;
private final JButton finishButton;
+ private final boolean displayCaseSpecificData;
- ReportWizardPanel1(Map moduleConfigs) {
+ ReportWizardPanel1(Map moduleConfigs, boolean displayCaseSpecificData) {
this.moduleConfigs = moduleConfigs;
+ this.displayCaseSpecificData = displayCaseSpecificData;
nextButton = new JButton(NbBundle.getMessage(this.getClass(), "ReportWizardPanel1.nextButton.text"));
finishButton = new JButton(NbBundle.getMessage(this.getClass(), "ReportWizardPanel1.finishButton.text"));
finishButton.setEnabled(false);
@@ -63,7 +65,7 @@ class ReportWizardPanel1 implements WizardDescriptor.FinishablePanel
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build.xml b/build.xml
index 740f8b82ad..a7c64ef4ba 100644
--- a/build.xml
+++ b/build.xml
@@ -4,11 +4,11 @@
Builds the module suite Autopsy 4.
-
+
-
+
diff --git a/docs/doxygen-user/images/Personas/persona_edit.png b/docs/doxygen-user/images/Personas/persona_edit.png
index 1dc07c01d8..2f2bde865f 100644
Binary files a/docs/doxygen-user/images/Personas/persona_edit.png and b/docs/doxygen-user/images/Personas/persona_edit.png differ
diff --git a/docs/doxygen-user/images/Personas/personas_create.png b/docs/doxygen-user/images/Personas/personas_create.png
index bacfb9e7c6..5da750d572 100644
Binary files a/docs/doxygen-user/images/Personas/personas_create.png and b/docs/doxygen-user/images/Personas/personas_create.png differ
diff --git a/docs/doxygen-user/images/Personas/personas_main.png b/docs/doxygen-user/images/Personas/personas_main.png
index 071ba57227..b5aa67bd5b 100644
Binary files a/docs/doxygen-user/images/Personas/personas_main.png and b/docs/doxygen-user/images/Personas/personas_main.png differ
diff --git a/docs/doxygen-user/personas.dox b/docs/doxygen-user/personas.dox
index 839df4b828..a443955445 100644
--- a/docs/doxygen-user/personas.dox
+++ b/docs/doxygen-user/personas.dox
@@ -37,10 +37,10 @@ By default, when the Personas Editor is launched, all the personas in the Centra
To create a new persona, click the "New Persona" button. A "Create Persona" dialog box will pop up. The following is a description of each field:
+- Name: The name of the persona
- Created by: Will be automatically filled in with the current user
- Created on: Will be automatically filled in after saving the persona
- Comment: A description of the persona
-
- Name: The name of the persona
- Accounts: At least one account belonging to the persona
- Metadata: (Optional) Name/value pairs of data related to the persona
- Aliases: (Optional) Any aliases for this persona
diff --git a/nbproject/platform.properties b/nbproject/platform.properties
index b03c3b5199..7a61a6e1b6 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=https://netbeans-vm.apache.org/uc/${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=https://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