mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-17 10:17:41 +00:00
Merge branch 'iwFixes' into iwUpdatePath
This commit is contained in:
commit
c405c6659e
@ -1,7 +1,7 @@
|
||||
/*
|
||||
* Autopsy Forensic Browser
|
||||
*
|
||||
* Copyright 2013-2016 Basis Technology Corp.
|
||||
* Copyright 2013-2017 Basis Technology Corp.
|
||||
* Contact: carrier <at> sleuthkit <dot> org
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
@ -39,9 +39,9 @@ import org.sleuthkit.autopsy.framework.AutoIngestDataSourceProcessor;
|
||||
* wizard. It also provides a run method overload to allow it to be used
|
||||
* independently of the wizard.
|
||||
*/
|
||||
@ServiceProviders(value={
|
||||
@ServiceProvider(service=DataSourceProcessor.class),
|
||||
@ServiceProvider(service=AutoIngestDataSourceProcessor.class)}
|
||||
@ServiceProviders(value = {
|
||||
@ServiceProvider(service = DataSourceProcessor.class),
|
||||
@ServiceProvider(service = AutoIngestDataSourceProcessor.class)}
|
||||
)
|
||||
public class LocalDiskDSProcessor implements DataSourceProcessor, AutoIngestDataSourceProcessor {
|
||||
|
||||
@ -103,7 +103,7 @@ public class LocalDiskDSProcessor implements DataSourceProcessor, AutoIngestData
|
||||
*/
|
||||
@Override
|
||||
public JPanel getPanel() {
|
||||
configPanel.select();
|
||||
configPanel.refreshTable();
|
||||
return configPanel;
|
||||
}
|
||||
|
||||
@ -140,7 +140,7 @@ public class LocalDiskDSProcessor implements DataSourceProcessor, AutoIngestData
|
||||
drivePath = configPanel.getContentPaths();
|
||||
timeZone = configPanel.getTimeZone();
|
||||
ignoreFatOrphanFiles = configPanel.getNoFatOrphans();
|
||||
if(configPanel.getImageWriterEnabled()){
|
||||
if (configPanel.getImageWriterEnabled()) {
|
||||
imageWriterPath = configPanel.getImageWriterPath();
|
||||
imageWriterSettings = new ImageWriterSettings(imageWriterPath, true);
|
||||
}
|
||||
@ -195,7 +195,6 @@ public class LocalDiskDSProcessor implements DataSourceProcessor, AutoIngestData
|
||||
*/
|
||||
@Override
|
||||
public void reset() {
|
||||
configPanel.reset();
|
||||
deviceId = null;
|
||||
drivePath = null;
|
||||
timeZone = null;
|
||||
@ -205,22 +204,22 @@ public class LocalDiskDSProcessor implements DataSourceProcessor, AutoIngestData
|
||||
|
||||
@Override
|
||||
public int canProcess(Path dataSourcePath) throws AutoIngestDataSourceProcessorException {
|
||||
|
||||
|
||||
// verify that the data source is not a file or a directory
|
||||
File file = dataSourcePath.toFile();
|
||||
// ELTODO this needs to be tested more. should I keep isDirectory or just test for isFile?
|
||||
if (file.isFile() || file.isDirectory()) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
// check whether data source is an existing disk or partition
|
||||
// ELTODO this needs to be tested more. do these methods actually work correctly?
|
||||
// or should I use PlatformUtil.getPhysicalDrives() and PlatformUtil.getPartitions() instead?
|
||||
String path = dataSourcePath.toString();
|
||||
if ( (DriveUtils.isPhysicalDrive(path) || DriveUtils.isPartition(path)) && DriveUtils.driveExists(path) ) {
|
||||
if ((DriveUtils.isPhysicalDrive(path) || DriveUtils.isPartition(path)) && DriveUtils.driveExists(path)) {
|
||||
return 90;
|
||||
}
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -230,7 +229,7 @@ public class LocalDiskDSProcessor implements DataSourceProcessor, AutoIngestData
|
||||
this.drivePath = dataSourcePath.toString();
|
||||
this.timeZone = Calendar.getInstance().getTimeZone().getID();
|
||||
this.ignoreFatOrphanFiles = false;
|
||||
setDataSourceOptionsCalled = true;
|
||||
setDataSourceOptionsCalled = true;
|
||||
run(deviceId, drivePath, timeZone, ignoreFatOrphanFiles, progressMonitor, callBack);
|
||||
}
|
||||
|
||||
@ -255,5 +254,5 @@ public class LocalDiskDSProcessor implements DataSourceProcessor, AutoIngestData
|
||||
this.ignoreFatOrphanFiles = ignoreFatOrphanFiles;
|
||||
setDataSourceOptionsCalled = true;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
|
||||
<Form version="1.5" maxVersion="1.8" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
|
||||
<Form version="1.6" maxVersion="1.8" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
|
||||
<Properties>
|
||||
<Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
||||
<Dimension value="[0, 420]"/>
|
||||
@ -26,38 +26,40 @@
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Group type="102" attributes="0">
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Group type="102" alignment="0" attributes="0">
|
||||
<Group type="103" groupAlignment="1" attributes="0">
|
||||
<Component id="pathTextField" alignment="1" min="-2" pref="362" max="-2" attributes="0"/>
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Component id="diskLabel" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="diskComboBox" min="-2" pref="345" max="-2" attributes="0"/>
|
||||
<Component id="errorLabel" min="-2" max="-2" attributes="0"/>
|
||||
<Group type="102" attributes="0">
|
||||
<Component id="timeZoneLabel" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace type="unrelated" max="-2" attributes="0"/>
|
||||
<Component id="timeZoneComboBox" min="-2" pref="215" max="-2" attributes="0"/>
|
||||
</Group>
|
||||
<Component id="noFatOrphansCheckbox" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="diskLabel" min="-2" max="-2" attributes="0"/>
|
||||
<Group type="102" attributes="0">
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
<Group type="103" groupAlignment="0" max="-2" attributes="0">
|
||||
<Component id="errorLabel" min="-2" max="-2" attributes="0"/>
|
||||
<Group type="102" alignment="0" attributes="0">
|
||||
<Component id="timeZoneLabel" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace type="unrelated" max="-2" attributes="0"/>
|
||||
<Component id="timeZoneComboBox" max="32767" attributes="0"/>
|
||||
</Group>
|
||||
<Component id="noFatOrphansCheckbox" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="jScrollPane1" alignment="0" min="-2" pref="461" max="-2" attributes="0"/>
|
||||
<Group type="103" alignment="0" groupAlignment="1" attributes="0">
|
||||
<Component id="copyImageCheckbox" min="-2" max="-2" attributes="0"/>
|
||||
<Group type="102" attributes="0">
|
||||
<EmptySpace min="21" pref="21" max="-2" attributes="0"/>
|
||||
<Component id="descLabel" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="descLabel" min="-2" max="-2" attributes="0"/>
|
||||
</Group>
|
||||
<Group type="102" alignment="0" attributes="0">
|
||||
<EmptySpace min="21" pref="21" max="-2" attributes="0"/>
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Component id="imageWriterErrorLabel" min="-2" max="-2" attributes="0"/>
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Component id="jLabel1" min="-2" max="-2" attributes="0"/>
|
||||
<Group type="102" attributes="0">
|
||||
<Component id="pathTextField" min="-2" pref="342" max="-2" attributes="0"/>
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
<Component id="browseButton" pref="0" max="32767" attributes="0"/>
|
||||
</Group>
|
||||
</Group>
|
||||
</Group>
|
||||
</Group>
|
||||
</Group>
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
<Component id="browseButton" min="-2" max="-2" attributes="0"/>
|
||||
</Group>
|
||||
<Group type="102" alignment="0" attributes="0">
|
||||
<EmptySpace min="-2" pref="21" max="-2" attributes="0"/>
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Component id="jLabel1" min="-2" pref="423" max="-2" attributes="0"/>
|
||||
<Component id="imageWriterErrorLabel" min="-2" max="-2" attributes="0"/>
|
||||
</Group>
|
||||
</Group>
|
||||
</Group>
|
||||
<EmptySpace min="0" pref="29" max="32767" attributes="0"/>
|
||||
<EmptySpace max="32767" attributes="0"/>
|
||||
</Group>
|
||||
</Group>
|
||||
</DimensionLayout>
|
||||
@ -66,8 +68,8 @@
|
||||
<Group type="102" alignment="0" attributes="0">
|
||||
<Component id="diskLabel" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
<Component id="diskComboBox" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace min="-2" pref="13" max="-2" attributes="0"/>
|
||||
<Component id="jScrollPane1" min="-2" pref="100" max="-2" attributes="0"/>
|
||||
<EmptySpace type="unrelated" max="-2" attributes="0"/>
|
||||
<Component id="errorLabel" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace type="unrelated" max="-2" attributes="0"/>
|
||||
<Group type="103" groupAlignment="3" attributes="0">
|
||||
@ -81,15 +83,15 @@
|
||||
<EmptySpace type="unrelated" max="-2" attributes="0"/>
|
||||
<Component id="copyImageCheckbox" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
<Group type="103" groupAlignment="3" attributes="0">
|
||||
<Component id="pathTextField" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="browseButton" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||
<Group type="103" groupAlignment="1" attributes="0">
|
||||
<Component id="browseButton" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="pathTextField" min="-2" pref="23" max="-2" attributes="0"/>
|
||||
</Group>
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
<Component id="jLabel1" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
<Component id="imageWriterErrorLabel" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace pref="170" max="32767" attributes="0"/>
|
||||
<EmptySpace max="32767" attributes="0"/>
|
||||
</Group>
|
||||
</Group>
|
||||
</DimensionLayout>
|
||||
@ -107,22 +109,6 @@
|
||||
</Property>
|
||||
</Properties>
|
||||
</Component>
|
||||
<Component class="javax.swing.JComboBox" name="diskComboBox">
|
||||
<Properties>
|
||||
<Property name="font" type="java.awt.Font" editor="org.netbeans.modules.form.editors2.FontEditor">
|
||||
<FontInfo relative="true">
|
||||
<Font bold="false" component="diskComboBox" property="font" relativeSize="false" size="11"/>
|
||||
</FontInfo>
|
||||
</Property>
|
||||
<Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
|
||||
<StringArray count="0"/>
|
||||
</Property>
|
||||
</Properties>
|
||||
<AuxValues>
|
||||
<AuxValue name="JavaCodeGenerator_CreateCodeCustom" type="java.lang.String" value="new javax.swing.JComboBox<>()"/>
|
||||
<AuxValue name="JavaCodeGenerator_TypeParameters" type="java.lang.String" value="<LocalDisk>"/>
|
||||
</AuxValues>
|
||||
</Component>
|
||||
<Component class="javax.swing.JLabel" name="errorLabel">
|
||||
<Properties>
|
||||
<Property name="font" type="java.awt.Font" editor="org.netbeans.modules.form.editors2.FontEditor">
|
||||
@ -193,6 +179,22 @@
|
||||
</Property>
|
||||
</Properties>
|
||||
</Component>
|
||||
<Container class="javax.swing.JScrollPane" name="jScrollPane1">
|
||||
|
||||
<Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
|
||||
<SubComponents>
|
||||
<Component class="javax.swing.JTable" name="diskTable">
|
||||
<Properties>
|
||||
<Property name="model" type="javax.swing.table.TableModel" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
|
||||
<Connection code="model" type="code"/>
|
||||
</Property>
|
||||
<Property name="selectionModel" type="javax.swing.ListSelectionModel" editor="org.netbeans.modules.form.editors2.JTableSelectionModelEditor">
|
||||
<JTableSelectionModel selectionMode="0"/>
|
||||
</Property>
|
||||
</Properties>
|
||||
</Component>
|
||||
</SubComponents>
|
||||
</Container>
|
||||
<Component class="javax.swing.JCheckBox" name="copyImageCheckbox">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||
@ -203,6 +205,33 @@
|
||||
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="copyImageCheckboxActionPerformed"/>
|
||||
</Events>
|
||||
</Component>
|
||||
<Component class="javax.swing.JTextField" name="pathTextField">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||
<ResourceString bundle="org/sleuthkit/autopsy/casemodule/Bundle.properties" key="LocalDiskPanel.pathTextField.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||
</Property>
|
||||
</Properties>
|
||||
<Events>
|
||||
<EventHandler event="keyReleased" listener="java.awt.event.KeyListener" parameters="java.awt.event.KeyEvent" handler="pathTextFieldKeyReleased"/>
|
||||
</Events>
|
||||
</Component>
|
||||
<Component class="javax.swing.JButton" name="browseButton">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||
<ResourceString bundle="org/sleuthkit/autopsy/casemodule/Bundle.properties" key="LocalDiskPanel.browseButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||
</Property>
|
||||
</Properties>
|
||||
<Events>
|
||||
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="browseButtonActionPerformed"/>
|
||||
</Events>
|
||||
</Component>
|
||||
<Component class="javax.swing.JLabel" name="jLabel1">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||
<ResourceString bundle="org/sleuthkit/autopsy/casemodule/Bundle.properties" key="LocalDiskPanel.jLabel1.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||
</Property>
|
||||
</Properties>
|
||||
</Component>
|
||||
<Component class="javax.swing.JLabel" name="imageWriterErrorLabel">
|
||||
<Properties>
|
||||
<Property name="font" type="java.awt.Font" editor="org.netbeans.modules.form.editors2.FontEditor">
|
||||
@ -218,33 +247,5 @@
|
||||
</Property>
|
||||
</Properties>
|
||||
</Component>
|
||||
<Component class="javax.swing.JLabel" name="jLabel1">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||
<ResourceString bundle="org/sleuthkit/autopsy/casemodule/Bundle.properties" key="LocalDiskPanel.jLabel1.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||
</Property>
|
||||
</Properties>
|
||||
</Component>
|
||||
<Component class="javax.swing.JTextField" name="pathTextField">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||
<ResourceString bundle="org/sleuthkit/autopsy/casemodule/Bundle.properties" key="LocalDiskPanel.pathTextField.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||
</Property>
|
||||
</Properties>
|
||||
<Events>
|
||||
<EventHandler event="keyReleased" listener="java.awt.event.KeyListener" parameters="java.awt.event.KeyEvent" handler="pathTextFieldKeyReleased"/>
|
||||
<EventHandler event="keyTyped" listener="java.awt.event.KeyListener" parameters="java.awt.event.KeyEvent" handler="pathTextFieldKeyTyped"/>
|
||||
</Events>
|
||||
</Component>
|
||||
<Component class="javax.swing.JButton" name="browseButton">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||
<ResourceString bundle="org/sleuthkit/autopsy/casemodule/Bundle.properties" key="LocalDiskPanel.browseButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||
</Property>
|
||||
</Properties>
|
||||
<Events>
|
||||
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="browseButtonActionPerformed"/>
|
||||
</Events>
|
||||
</Component>
|
||||
</SubComponents>
|
||||
</Form>
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*
|
||||
* Autopsy Forensic Browser
|
||||
*
|
||||
* Copyright 2011-2016 Basis Technology Corp.
|
||||
* Copyright 2011-2017 Basis Technology Corp.
|
||||
* Contact: carrier <at> sleuthkit <dot> org
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
@ -18,10 +18,6 @@
|
||||
*/
|
||||
package org.sleuthkit.autopsy.casemodule;
|
||||
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.Color;
|
||||
import java.awt.Component;
|
||||
import java.awt.Font;
|
||||
import java.io.File;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.ArrayList;
|
||||
@ -31,16 +27,13 @@ import java.util.SimpleTimeZone;
|
||||
import java.util.TimeZone;
|
||||
import java.util.concurrent.CancellationException;
|
||||
import java.util.logging.Level;
|
||||
import javax.swing.ComboBoxModel;
|
||||
import javax.swing.JFileChooser;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JList;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JSeparator;
|
||||
import javax.swing.ListCellRenderer;
|
||||
import javax.swing.SwingWorker;
|
||||
import javax.swing.border.EmptyBorder;
|
||||
import javax.swing.event.ListDataListener;
|
||||
import javax.swing.event.ListSelectionEvent;
|
||||
import javax.swing.event.ListSelectionListener;
|
||||
import javax.swing.event.TableModelListener;
|
||||
import javax.swing.table.TableModel;
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.corecomponentinterfaces.DataSourceProcessor;
|
||||
import org.sleuthkit.autopsy.coreutils.LocalDisk;
|
||||
@ -58,25 +51,45 @@ final class LocalDiskPanel extends JPanel {
|
||||
private static LocalDiskPanel instance;
|
||||
private static final long serialVersionUID = 1L;
|
||||
private List<LocalDisk> disks;
|
||||
private LocalDiskModel model;
|
||||
private boolean enableNext = false;
|
||||
private final LocalDiskModel model;
|
||||
private final JFileChooser fc = new JFileChooser();
|
||||
|
||||
/**
|
||||
* Creates new form LocalDiskPanel
|
||||
*/
|
||||
public LocalDiskPanel() {
|
||||
LocalDiskPanel() {
|
||||
this.model = new LocalDiskModel();
|
||||
|
||||
this.disks = new ArrayList<>();
|
||||
initComponents();
|
||||
customInit();
|
||||
|
||||
createTimeZoneList();
|
||||
refreshTable();
|
||||
diskTable.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
|
||||
@Override
|
||||
public void valueChanged(ListSelectionEvent e) {
|
||||
if (diskTable.getSelectedRow() >= 0 && diskTable.getSelectedRow() < disks.size()) {
|
||||
enableNext = true;
|
||||
setPotentialImageWriterPath(disks.get(diskTable.getSelectedRow()));
|
||||
try {
|
||||
firePropertyChange(DataSourceProcessor.DSP_PANEL_EVENT.UPDATE_UI.toString(), false, true);
|
||||
} catch (Exception ex) {
|
||||
logger.log(Level.SEVERE, "LocalDiskPanel listener threw exception", e); //NON-NLS
|
||||
MessageNotifyUtil.Notify.show(NbBundle.getMessage(this.getClass(), "LocalDiskPanel.moduleErr"),
|
||||
NbBundle.getMessage(this.getClass(), "LocalDiskPanel.moduleErr.msg"),
|
||||
MessageNotifyUtil.MessageType.ERROR);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the default instance of this panel.
|
||||
*/
|
||||
public static synchronized LocalDiskPanel getDefault() {
|
||||
static synchronized LocalDiskPanel getDefault() {
|
||||
if (instance == null) {
|
||||
instance = new LocalDiskPanel();
|
||||
}
|
||||
@ -85,14 +98,10 @@ final class LocalDiskPanel extends JPanel {
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
private void customInit() {
|
||||
model = new LocalDiskModel();
|
||||
diskComboBox.setModel(model);
|
||||
diskComboBox.setRenderer(model);
|
||||
|
||||
errorLabel.setVisible(false);
|
||||
errorLabel.setText("");
|
||||
diskComboBox.setEnabled(false);
|
||||
imageWriterErrorLabel.setOpaque(true);
|
||||
diskTable.setEnabled(false);
|
||||
imageWriterErrorLabel.setVisible(false);
|
||||
imageWriterErrorLabel.setText("");
|
||||
pathTextField.setEnabled(copyImageCheckbox.isSelected());
|
||||
browseButton.setEnabled(copyImageCheckbox.isSelected());
|
||||
@ -108,17 +117,18 @@ final class LocalDiskPanel extends JPanel {
|
||||
private void initComponents() {
|
||||
|
||||
diskLabel = new javax.swing.JLabel();
|
||||
diskComboBox = new javax.swing.JComboBox<>();
|
||||
errorLabel = new javax.swing.JLabel();
|
||||
timeZoneLabel = new javax.swing.JLabel();
|
||||
timeZoneComboBox = new javax.swing.JComboBox<>();
|
||||
noFatOrphansCheckbox = new javax.swing.JCheckBox();
|
||||
descLabel = new javax.swing.JLabel();
|
||||
jScrollPane1 = new javax.swing.JScrollPane();
|
||||
diskTable = new javax.swing.JTable();
|
||||
copyImageCheckbox = new javax.swing.JCheckBox();
|
||||
imageWriterErrorLabel = new javax.swing.JLabel();
|
||||
jLabel1 = new javax.swing.JLabel();
|
||||
pathTextField = new javax.swing.JTextField();
|
||||
browseButton = new javax.swing.JButton();
|
||||
jLabel1 = new javax.swing.JLabel();
|
||||
imageWriterErrorLabel = new javax.swing.JLabel();
|
||||
|
||||
setMinimumSize(new java.awt.Dimension(0, 420));
|
||||
setPreferredSize(new java.awt.Dimension(485, 410));
|
||||
@ -126,8 +136,6 @@ final class LocalDiskPanel extends JPanel {
|
||||
diskLabel.setFont(diskLabel.getFont().deriveFont(diskLabel.getFont().getStyle() & ~java.awt.Font.BOLD, 11));
|
||||
org.openide.awt.Mnemonics.setLocalizedText(diskLabel, org.openide.util.NbBundle.getMessage(LocalDiskPanel.class, "LocalDiskPanel.diskLabel.text")); // NOI18N
|
||||
|
||||
diskComboBox.setFont(diskComboBox.getFont().deriveFont(diskComboBox.getFont().getStyle() & ~java.awt.Font.BOLD, 11));
|
||||
|
||||
errorLabel.setFont(errorLabel.getFont().deriveFont(errorLabel.getFont().getStyle() & ~java.awt.Font.BOLD, 11));
|
||||
errorLabel.setForeground(new java.awt.Color(255, 0, 0));
|
||||
org.openide.awt.Mnemonics.setLocalizedText(errorLabel, org.openide.util.NbBundle.getMessage(LocalDiskPanel.class, "LocalDiskPanel.errorLabel.text")); // NOI18N
|
||||
@ -145,6 +153,10 @@ final class LocalDiskPanel extends JPanel {
|
||||
descLabel.setFont(descLabel.getFont().deriveFont(descLabel.getFont().getStyle() & ~java.awt.Font.BOLD, 11));
|
||||
org.openide.awt.Mnemonics.setLocalizedText(descLabel, org.openide.util.NbBundle.getMessage(LocalDiskPanel.class, "LocalDiskPanel.descLabel.text")); // NOI18N
|
||||
|
||||
diskTable.setModel(model);
|
||||
diskTable.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
|
||||
jScrollPane1.setViewportView(diskTable);
|
||||
|
||||
org.openide.awt.Mnemonics.setLocalizedText(copyImageCheckbox, org.openide.util.NbBundle.getMessage(LocalDiskPanel.class, "LocalDiskPanel.copyImageCheckbox.text")); // NOI18N
|
||||
copyImageCheckbox.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
@ -152,20 +164,11 @@ final class LocalDiskPanel extends JPanel {
|
||||
}
|
||||
});
|
||||
|
||||
imageWriterErrorLabel.setFont(imageWriterErrorLabel.getFont().deriveFont(imageWriterErrorLabel.getFont().getStyle() & ~java.awt.Font.BOLD, 11));
|
||||
imageWriterErrorLabel.setForeground(new java.awt.Color(255, 0, 0));
|
||||
org.openide.awt.Mnemonics.setLocalizedText(imageWriterErrorLabel, org.openide.util.NbBundle.getMessage(LocalDiskPanel.class, "LocalDiskPanel.imageWriterErrorLabel.text")); // NOI18N
|
||||
|
||||
org.openide.awt.Mnemonics.setLocalizedText(jLabel1, org.openide.util.NbBundle.getMessage(LocalDiskPanel.class, "LocalDiskPanel.jLabel1.text")); // NOI18N
|
||||
|
||||
pathTextField.setText(org.openide.util.NbBundle.getMessage(LocalDiskPanel.class, "LocalDiskPanel.pathTextField.text")); // NOI18N
|
||||
pathTextField.addKeyListener(new java.awt.event.KeyAdapter() {
|
||||
public void keyReleased(java.awt.event.KeyEvent evt) {
|
||||
pathTextFieldKeyReleased(evt);
|
||||
}
|
||||
public void keyTyped(java.awt.event.KeyEvent evt) {
|
||||
pathTextFieldKeyTyped(evt);
|
||||
}
|
||||
});
|
||||
|
||||
org.openide.awt.Mnemonics.setLocalizedText(browseButton, org.openide.util.NbBundle.getMessage(LocalDiskPanel.class, "LocalDiskPanel.browseButton.text")); // NOI18N
|
||||
@ -175,44 +178,51 @@ final class LocalDiskPanel extends JPanel {
|
||||
}
|
||||
});
|
||||
|
||||
org.openide.awt.Mnemonics.setLocalizedText(jLabel1, org.openide.util.NbBundle.getMessage(LocalDiskPanel.class, "LocalDiskPanel.jLabel1.text")); // NOI18N
|
||||
|
||||
imageWriterErrorLabel.setFont(imageWriterErrorLabel.getFont().deriveFont(imageWriterErrorLabel.getFont().getStyle() & ~java.awt.Font.BOLD, 11));
|
||||
imageWriterErrorLabel.setForeground(new java.awt.Color(255, 0, 0));
|
||||
org.openide.awt.Mnemonics.setLocalizedText(imageWriterErrorLabel, org.openide.util.NbBundle.getMessage(LocalDiskPanel.class, "LocalDiskPanel.imageWriterErrorLabel.text")); // NOI18N
|
||||
|
||||
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
|
||||
this.setLayout(layout);
|
||||
layout.setHorizontalGroup(
|
||||
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(layout.createSequentialGroup()
|
||||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(diskLabel)
|
||||
.addGroup(layout.createSequentialGroup()
|
||||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
|
||||
.addComponent(pathTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 362, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(diskLabel)
|
||||
.addComponent(diskComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, 345, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(errorLabel)
|
||||
.addGroup(layout.createSequentialGroup()
|
||||
.addComponent(timeZoneLabel)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
||||
.addComponent(timeZoneComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, 215, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
.addComponent(noFatOrphansCheckbox)
|
||||
.addContainerGap()
|
||||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
|
||||
.addComponent(errorLabel)
|
||||
.addGroup(layout.createSequentialGroup()
|
||||
.addComponent(timeZoneLabel)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
||||
.addComponent(timeZoneComboBox, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||
.addComponent(noFatOrphansCheckbox)
|
||||
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 461, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
|
||||
.addComponent(copyImageCheckbox)
|
||||
.addGroup(layout.createSequentialGroup()
|
||||
.addGap(21, 21, 21)
|
||||
.addComponent(descLabel))))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(browseButton))
|
||||
.addGroup(layout.createSequentialGroup()
|
||||
.addGap(21, 21, 21)
|
||||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 423, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(imageWriterErrorLabel))))
|
||||
.addGap(0, 29, Short.MAX_VALUE))
|
||||
.addComponent(descLabel))
|
||||
.addGroup(layout.createSequentialGroup()
|
||||
.addGap(21, 21, 21)
|
||||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(imageWriterErrorLabel)
|
||||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(jLabel1)
|
||||
.addGroup(layout.createSequentialGroup()
|
||||
.addComponent(pathTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 342, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(browseButton, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE))))))))
|
||||
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||
);
|
||||
layout.setVerticalGroup(
|
||||
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(layout.createSequentialGroup()
|
||||
.addComponent(diskLabel)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(diskComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addGap(13, 13, 13)
|
||||
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
||||
.addComponent(errorLabel)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
||||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
@ -225,63 +235,60 @@ final class LocalDiskPanel extends JPanel {
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
||||
.addComponent(copyImageCheckbox)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(pathTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(browseButton))
|
||||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
|
||||
.addComponent(browseButton)
|
||||
.addComponent(pathTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(jLabel1)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(imageWriterErrorLabel)
|
||||
.addContainerGap(170, Short.MAX_VALUE))
|
||||
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||
);
|
||||
}// </editor-fold>//GEN-END:initComponents
|
||||
|
||||
private void browseButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_browseButtonActionPerformed
|
||||
String oldText = pathTextField.getText();
|
||||
// set the current directory of the FileChooser if the ImagePath Field is valid
|
||||
File currentFile = new File(oldText);
|
||||
if ((currentFile.getParentFile() != null) && (currentFile.getParentFile().exists())) {
|
||||
fc.setCurrentDirectory(currentFile.getParentFile());
|
||||
}
|
||||
|
||||
int retval = fc.showOpenDialog(this);
|
||||
if (retval == JFileChooser.APPROVE_OPTION) {
|
||||
String path = fc.getSelectedFile().getPath();
|
||||
pathTextField.setText(path);
|
||||
}
|
||||
fireUpdateEvent();
|
||||
}//GEN-LAST:event_browseButtonActionPerformed
|
||||
|
||||
private void copyImageCheckboxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_copyImageCheckboxActionPerformed
|
||||
pathTextField.setEnabled(copyImageCheckbox.isSelected());
|
||||
browseButton.setEnabled(copyImageCheckbox.isSelected());
|
||||
fireUpdateEvent();
|
||||
}//GEN-LAST:event_copyImageCheckboxActionPerformed
|
||||
|
||||
private void pathTextFieldKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_pathTextFieldKeyTyped
|
||||
|
||||
}//GEN-LAST:event_pathTextFieldKeyTyped
|
||||
|
||||
private void pathTextFieldKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_pathTextFieldKeyReleased
|
||||
fireUpdateEvent();
|
||||
}//GEN-LAST:event_pathTextFieldKeyReleased
|
||||
|
||||
private void browseButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_browseButtonActionPerformed
|
||||
String oldText = pathTextField.getText();
|
||||
// set the current directory of the FileChooser if the ImagePath Field is valid
|
||||
File currentFile = new File(oldText);
|
||||
if ((currentFile.getParentFile() != null) && (currentFile.getParentFile().exists())) {
|
||||
fc.setSelectedFile(currentFile);
|
||||
}
|
||||
|
||||
int retval = fc.showOpenDialog(this);
|
||||
if (retval == JFileChooser.APPROVE_OPTION) {
|
||||
String path = fc.getSelectedFile().getPath();
|
||||
pathTextField.setText(path);
|
||||
}
|
||||
fireUpdateEvent();
|
||||
}//GEN-LAST:event_browseButtonActionPerformed
|
||||
|
||||
// Variables declaration - do not modify//GEN-BEGIN:variables
|
||||
private javax.swing.JButton browseButton;
|
||||
private javax.swing.JCheckBox copyImageCheckbox;
|
||||
private javax.swing.JLabel descLabel;
|
||||
private javax.swing.JComboBox<LocalDisk> diskComboBox;
|
||||
private javax.swing.JLabel diskLabel;
|
||||
private javax.swing.JTable diskTable;
|
||||
private javax.swing.JLabel errorLabel;
|
||||
private javax.swing.JLabel imageWriterErrorLabel;
|
||||
private javax.swing.JLabel jLabel1;
|
||||
private javax.swing.JScrollPane jScrollPane1;
|
||||
private javax.swing.JCheckBox noFatOrphansCheckbox;
|
||||
private javax.swing.JTextField pathTextField;
|
||||
private javax.swing.JComboBox<String> timeZoneComboBox;
|
||||
private javax.swing.JLabel timeZoneLabel;
|
||||
// End of variables declaration//GEN-END:variables
|
||||
|
||||
private void fireUpdateEvent(){
|
||||
private void fireUpdateEvent() {
|
||||
try {
|
||||
firePropertyChange(DataSourceProcessor.DSP_PANEL_EVENT.UPDATE_UI.toString(), false, true);
|
||||
} catch (Exception e) {
|
||||
@ -291,33 +298,23 @@ final class LocalDiskPanel extends JPanel {
|
||||
MessageNotifyUtil.MessageType.ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Return the currently selected disk path.
|
||||
*
|
||||
* @return String selected disk path
|
||||
*/
|
||||
public String getContentPaths() {
|
||||
String getContentPaths() {
|
||||
if (disks.size() > 0) {
|
||||
LocalDisk selected = (LocalDisk) diskComboBox.getSelectedItem();
|
||||
int selectedRow = diskTable.getSelectedRow();
|
||||
LocalDisk selected = disks.get(selectedRow);
|
||||
return selected.getPath();
|
||||
} else {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the selected disk.
|
||||
*/
|
||||
public void setContentPath(String s) {
|
||||
for (int i = 0; i < disks.size(); i++) {
|
||||
if (disks.get(i).getPath().equals(s)) {
|
||||
diskComboBox.setSelectedIndex(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public String getTimeZone() {
|
||||
String getTimeZone() {
|
||||
String tz = timeZoneComboBox.getSelectedItem().toString();
|
||||
return tz.substring(tz.indexOf(")") + 2).trim();
|
||||
|
||||
@ -326,54 +323,74 @@ final class LocalDiskPanel extends JPanel {
|
||||
boolean getNoFatOrphans() {
|
||||
return noFatOrphansCheckbox.isSelected();
|
||||
}
|
||||
|
||||
private static String getDefaultImageWriterFolder(){
|
||||
|
||||
private static String getDefaultImageWriterFolder() {
|
||||
return Paths.get(Case.getCurrentCase().getModuleDirectory(), "Image Writer").toString();
|
||||
}
|
||||
|
||||
private void setPotentialImageWriterPath(LocalDisk disk){
|
||||
|
||||
|
||||
private void setPotentialImageWriterPath(LocalDisk disk) {
|
||||
|
||||
File subDirectory = Paths.get(getDefaultImageWriterFolder()).toFile();
|
||||
if (!subDirectory.exists()) {
|
||||
subDirectory.mkdirs();
|
||||
}
|
||||
|
||||
String path = disk.getName();
|
||||
|
||||
// Remove all non-ASCII characters
|
||||
path = path.replaceAll("[^\\p{ASCII}]", ""); //NON-NLS
|
||||
|
||||
// Remove all control characters
|
||||
path = path.replaceAll("[\\p{Cntrl}]", ""); //NON-NLS
|
||||
|
||||
// Remove / \ : ? ' "
|
||||
path = path.replaceAll("[/?:'\"\\\\]", ""); //NON-NLS
|
||||
|
||||
String path = disk.getName().replaceAll("[:]", "");
|
||||
path += " " + System.currentTimeMillis();
|
||||
path += ".vhd";
|
||||
pathTextField.setText(Paths.get(getDefaultImageWriterFolder(), path).toString());
|
||||
}
|
||||
|
||||
private boolean imageWriterPathIsValid(){
|
||||
if(pathTextField.getText().isEmpty()){
|
||||
|
||||
private boolean imageWriterPathIsValid() {
|
||||
if((! copyImageCheckbox.isSelected()) || ! (diskTable.getSelectedRow() >= 0 && diskTable.getSelectedRow() < disks.size())){
|
||||
imageWriterErrorLabel.setVisible(false);
|
||||
imageWriterErrorLabel.setText("");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (pathTextField.getText().isEmpty()) {
|
||||
imageWriterErrorLabel.setVisible(true);
|
||||
imageWriterErrorLabel.setText(NbBundle.getMessage(this.getClass(), "LocalDiskPanel.imageWriterEmptyPathError.text"));
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
File f = new File(pathTextField.getText());
|
||||
if(((f.getParentFile() != null) && (! f.getParentFile().exists())) ||
|
||||
(f.getParentFile() == null)) {
|
||||
if (((f.getParentFile() != null) && (!f.getParentFile().exists()))
|
||||
|| (f.getParentFile() == null)) {
|
||||
imageWriterErrorLabel.setVisible(true);
|
||||
imageWriterErrorLabel.setText(NbBundle.getMessage(this.getClass(), "LocalDiskPanel.imageWriterDirError.text"));
|
||||
return false;
|
||||
}
|
||||
if(f.isDirectory()){
|
||||
if (f.isDirectory()) {
|
||||
imageWriterErrorLabel.setVisible(true);
|
||||
imageWriterErrorLabel.setText(NbBundle.getMessage(this.getClass(), "LocalDiskPanel.imageWriterIsDirError.text"));
|
||||
return false;
|
||||
}
|
||||
if(f.exists()){
|
||||
if (f.exists()) {
|
||||
imageWriterErrorLabel.setVisible(true);
|
||||
imageWriterErrorLabel.setText(NbBundle.getMessage(this.getClass(), "LocalDiskPanel.imageWriterFileExistsError.text"));
|
||||
return false;
|
||||
}
|
||||
|
||||
imageWriterErrorLabel.setVisible(false);
|
||||
imageWriterErrorLabel.setText("");
|
||||
return true;
|
||||
}
|
||||
|
||||
boolean getImageWriterEnabled(){
|
||||
|
||||
boolean getImageWriterEnabled() {
|
||||
return copyImageCheckbox.isSelected();
|
||||
}
|
||||
|
||||
String getImageWriterPath(){
|
||||
|
||||
String getImageWriterPath() {
|
||||
return pathTextField.getText();
|
||||
}
|
||||
|
||||
@ -383,24 +400,17 @@ final class LocalDiskPanel extends JPanel {
|
||||
*
|
||||
* @return true if panel is valid
|
||||
*/
|
||||
public boolean validatePanel() {
|
||||
if(copyImageCheckbox.isSelected() &&
|
||||
! imageWriterPathIsValid()){
|
||||
boolean validatePanel() {
|
||||
if (!imageWriterPathIsValid()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return enableNext;
|
||||
}
|
||||
|
||||
public void reset() {
|
||||
//nothing to reset
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the focus to the diskComboBox and refreshes the list of disks.
|
||||
* Refreshes the list of disks in the table.
|
||||
*/
|
||||
public void select() {
|
||||
diskComboBox.requestFocusInWindow();
|
||||
public void refreshTable() {
|
||||
model.loadDisks();
|
||||
}
|
||||
|
||||
@ -440,24 +450,21 @@ final class LocalDiskPanel extends JPanel {
|
||||
timeZoneComboBox.setSelectedItem(formatted);
|
||||
}
|
||||
|
||||
@SuppressWarnings("rawtypes")
|
||||
private class LocalDiskModel implements ComboBoxModel, ListCellRenderer {
|
||||
|
||||
private Object selected;
|
||||
/**
|
||||
* Table model for displaing information from LocalDisk Objects in a table.
|
||||
*/
|
||||
private class LocalDiskModel implements TableModel {
|
||||
|
||||
private List<LocalDisk> physicalDrives = new ArrayList<>();
|
||||
private List<LocalDisk> partitions = new ArrayList<>();
|
||||
private LocalDiskThread worker = null;
|
||||
private boolean ready = false;
|
||||
|
||||
private volatile boolean loadingDisks = false;
|
||||
|
||||
List<LocalDisk> physicalDrives = new ArrayList<>();
|
||||
List<LocalDisk> partitions = new ArrayList<>();
|
||||
|
||||
//private String SELECT = "Select a local disk:";
|
||||
private final String LOADING = NbBundle.getMessage(this.getClass(), "LocalDiskPanel.localDiskModel.loading.msg");
|
||||
private final String NO_DRIVES = NbBundle.getMessage(this.getClass(), "LocalDiskPanel.localDiskModel.nodrives.msg");
|
||||
|
||||
LocalDiskThread worker = null;
|
||||
|
||||
private void loadDisks() {
|
||||
|
||||
// if there is a worker already building the lists, then cancel it first.
|
||||
@ -467,105 +474,92 @@ final class LocalDiskPanel extends JPanel {
|
||||
|
||||
// Clear the lists
|
||||
errorLabel.setText("");
|
||||
disks = new ArrayList<>();
|
||||
physicalDrives = new ArrayList<>();
|
||||
partitions = new ArrayList<>();
|
||||
diskComboBox.setEnabled(false);
|
||||
diskTable.setEnabled(false);
|
||||
ready = false;
|
||||
enableNext = false;
|
||||
loadingDisks = true;
|
||||
|
||||
worker = new LocalDiskThread();
|
||||
worker.execute();
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setSelectedItem(Object anItem) {
|
||||
if (ready) {
|
||||
selected = (LocalDisk) anItem;
|
||||
enableNext = true;
|
||||
setPotentialImageWriterPath((LocalDisk) selected);
|
||||
fireUpdateEvent();
|
||||
public int getRowCount() {
|
||||
if (disks.isEmpty()) {
|
||||
return 0;
|
||||
}
|
||||
return disks.size();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getColumnCount() {
|
||||
return 2;
|
||||
|
||||
}
|
||||
|
||||
@NbBundle.Messages({"LocalDiskPanel.diskTable.column1.title=Disk Name",
|
||||
"LocalDiskPanel.diskTable.column2.title=Disk Size"
|
||||
})
|
||||
|
||||
@Override
|
||||
public String getColumnName(int columnIndex) {
|
||||
switch (columnIndex) {
|
||||
case 0:
|
||||
return NbBundle.getMessage(this.getClass(), "LocalDiskPanel.diskTable.column1.title");
|
||||
case 1:
|
||||
return NbBundle.getMessage(this.getClass(), "LocalDiskPanel.diskTable.column2.title");
|
||||
default:
|
||||
return "Unnamed"; //NON-NLS
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getSelectedItem() {
|
||||
public Class<?> getColumnClass(int columnIndex) {
|
||||
return String.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isCellEditable(int rowIndex, int columnIndex) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getValueAt(int rowIndex, int columnIndex) {
|
||||
if (ready) {
|
||||
if (disks.isEmpty()) {
|
||||
return NO_DRIVES;
|
||||
}
|
||||
return selected;
|
||||
switch (columnIndex) {
|
||||
case 0:
|
||||
return disks.get(rowIndex).getName();
|
||||
case 1:
|
||||
return disks.get(rowIndex).getReadableSize();
|
||||
default:
|
||||
return disks.get(rowIndex).getPath();
|
||||
}
|
||||
} else {
|
||||
return LOADING;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSize() {
|
||||
if (ready) {
|
||||
if (disks.isEmpty()) {
|
||||
return 1;
|
||||
}
|
||||
return disks.size();
|
||||
} else {
|
||||
return 1;
|
||||
}
|
||||
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
|
||||
//setter does nothing they should not be able to modify table
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getElementAt(int index) {
|
||||
if (ready) {
|
||||
if (disks.isEmpty()) {
|
||||
return NO_DRIVES;
|
||||
}
|
||||
return disks.get(index);
|
||||
} else {
|
||||
return LOADING;
|
||||
}
|
||||
public void addTableModelListener(TableModelListener l) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addListDataListener(ListDataListener l) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeListDataListener(ListDataListener l) {
|
||||
}
|
||||
|
||||
@SuppressWarnings("rawtypes")
|
||||
@Override
|
||||
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
|
||||
JPanel panel = new JPanel(new BorderLayout());
|
||||
JLabel label = new JLabel();
|
||||
if ((index == physicalDrives.size() - 1) && (physicalDrives.size() > 0)) {
|
||||
panel.add(new JSeparator(JSeparator.HORIZONTAL), BorderLayout.SOUTH);
|
||||
}
|
||||
|
||||
if (isSelected) {
|
||||
label.setBackground(list.getSelectionBackground());
|
||||
label.setForeground(list.getSelectionForeground());
|
||||
} else {
|
||||
label.setBackground(list.getBackground());
|
||||
label.setForeground(list.getForeground());
|
||||
}
|
||||
|
||||
if (value != null) {
|
||||
String localDiskString = value.toString();
|
||||
label.setText(value.toString());
|
||||
if ((localDiskString.equals(LOADING)) || (localDiskString.equals(NO_DRIVES))) {
|
||||
label.setFont(label.getFont().deriveFont(Font.ITALIC));
|
||||
label.setBackground(Color.GRAY);
|
||||
}
|
||||
}
|
||||
label.setOpaque(true);
|
||||
label.setBorder(new EmptyBorder(2, 2, 2, 2));
|
||||
|
||||
panel.add(label, BorderLayout.CENTER);
|
||||
return panel;
|
||||
public void removeTableModelListener(TableModelListener l) {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the lists of physical drives and partitions and combines them
|
||||
* into a list of disks.
|
||||
*/
|
||||
class LocalDiskThread extends SwingWorker<Object, Void> {
|
||||
|
||||
private final Logger logger = Logger.getLogger(LocalDiskThread.class.getName());
|
||||
@ -573,12 +567,17 @@ final class LocalDiskPanel extends JPanel {
|
||||
@Override
|
||||
protected Object doInBackground() throws Exception {
|
||||
// Populate the lists
|
||||
physicalDrives = new ArrayList<>();
|
||||
partitions = new ArrayList<>();
|
||||
physicalDrives = PlatformUtil.getPhysicalDrives();
|
||||
partitions = PlatformUtil.getPartitions();
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Display any error messages that might of occurred when getting
|
||||
* the lists of physical drives or partitions.
|
||||
*/
|
||||
private void displayErrors() {
|
||||
if (physicalDrives.isEmpty() && partitions.isEmpty()) {
|
||||
if (PlatformUtil.isWindowsOS()) {
|
||||
@ -592,7 +591,7 @@ final class LocalDiskPanel extends JPanel {
|
||||
errorLabel.setToolTipText(NbBundle.getMessage(this.getClass(),
|
||||
"LocalDiskPanel.errLabel.drivesNotDetected.toolTipText"));
|
||||
}
|
||||
diskComboBox.setEnabled(false);
|
||||
diskTable.setEnabled(false);
|
||||
} else if (physicalDrives.isEmpty()) {
|
||||
errorLabel.setText(
|
||||
NbBundle.getMessage(this.getClass(), "LocalDiskPanel.errLabel.someDisksNotDetected.text"));
|
||||
@ -615,17 +614,19 @@ final class LocalDiskPanel extends JPanel {
|
||||
if (!this.isCancelled()) {
|
||||
enableNext = false;
|
||||
displayErrors();
|
||||
|
||||
worker = null;
|
||||
loadingDisks = false;
|
||||
|
||||
disks = new ArrayList<>();
|
||||
disks.addAll(physicalDrives);
|
||||
disks.addAll(partitions);
|
||||
|
||||
if (disks.size() > 0) {
|
||||
diskComboBox.setEnabled(true);
|
||||
diskComboBox.setSelectedIndex(0);
|
||||
diskTable.setEnabled(true);
|
||||
diskTable.clearSelection();
|
||||
}
|
||||
pathTextField.setText("");
|
||||
errorLabel.setText("");
|
||||
errorLabel.setVisible(false);
|
||||
fireUpdateEvent();
|
||||
ready = true;
|
||||
} else {
|
||||
logger.log(Level.INFO, "Loading local disks was canceled, which should not be possible."); //NON-NLS
|
||||
|
@ -12,7 +12,7 @@ AbstractAbstractFileNode.modeColLbl=Mode
|
||||
AbstractAbstractFileNode.useridColLbl=UserID
|
||||
AbstractAbstractFileNode.groupidColLbl=GroupID
|
||||
AbstractAbstractFileNode.metaAddrColLbl=Meta Addr.
|
||||
AbstractAbstractFileNode.attrAddrColLbl=Attr. Addr.ArtifactStringContent.getStr.err
|
||||
AbstractAbstractFileNode.attrAddrColLbl=Attr. Addr.
|
||||
AbstractAbstractFileNode.typeDirColLbl=Type(Dir)
|
||||
AbstractAbstractFileNode.typeMetaColLbl=Type(Meta)
|
||||
AbstractAbstractFileNode.knownColLbl=Known
|
||||
|
@ -28,6 +28,7 @@ import org.openide.nodes.Node;
|
||||
import org.openide.util.NbBundle;
|
||||
import org.openide.util.lookup.Lookups;
|
||||
import org.openide.util.lookup.ProxyLookup;
|
||||
import org.sleuthkit.autopsy.core.UserPreferences;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
import org.sleuthkit.autopsy.datamodel.AbstractContentNode;
|
||||
import org.sleuthkit.autopsy.ingest.runIngestModuleWizard.RunIngestModulesAction;
|
||||
@ -36,6 +37,7 @@ import org.sleuthkit.datamodel.Content;
|
||||
import org.sleuthkit.datamodel.Directory;
|
||||
import org.sleuthkit.datamodel.Image;
|
||||
import org.sleuthkit.datamodel.TskCoreException;
|
||||
import org.sleuthkit.datamodel.TskData;
|
||||
import org.sleuthkit.datamodel.VirtualDirectory;
|
||||
|
||||
/**
|
||||
@ -77,13 +79,14 @@ class DirectoryTreeFilterNode extends FilterNode {
|
||||
AbstractFile file = getLookup().lookup(AbstractFile.class);
|
||||
if (file != null) {
|
||||
try {
|
||||
final int numChildren = file.getChildrenCount();
|
||||
int numVisibleChildren = getVisibleChildCount(file);
|
||||
|
||||
/*
|
||||
* Left-to-right marks here are necessary to keep the count
|
||||
* and parens together for mixed right-to-left and
|
||||
* left-to-right names.
|
||||
*/
|
||||
name = name + " \u200E(\u200E" + numChildren + ")\u200E"; //NON-NLS
|
||||
name = name + " \u200E(\u200E" + numVisibleChildren + ")\u200E"; //NON-NLS
|
||||
|
||||
} catch (TskCoreException ex) {
|
||||
logger.log(Level.SEVERE, "Error getting children count to display for file: " + file, ex); //NON-NLS
|
||||
@ -92,6 +95,35 @@ class DirectoryTreeFilterNode extends FilterNode {
|
||||
}
|
||||
return name;
|
||||
}
|
||||
|
||||
/**
|
||||
* This method gets the number of visible children. Depending on the user
|
||||
* preferences, slack files will either be included or purged in the count.
|
||||
*
|
||||
* @param file The AbstractFile object whose children will be counted.
|
||||
*
|
||||
* @return The number of visible children.
|
||||
*/
|
||||
private int getVisibleChildCount(AbstractFile file) throws TskCoreException {
|
||||
int numVisibleChildren = 0;
|
||||
List<Content> childList = file.getChildren();
|
||||
|
||||
if(UserPreferences.hideSlackFilesInDataSourcesTree()) {
|
||||
// Purge slack files from the file count
|
||||
for(int i=0; i < childList.size(); i++) {
|
||||
AbstractFile childFile = (AbstractFile)childList.get(i);
|
||||
if(childFile.getType() != TskData.TSK_DB_FILES_TYPE_ENUM.SLACK) {
|
||||
numVisibleChildren++;
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
// Include slack files in the file count
|
||||
numVisibleChildren = file.getChildrenCount();
|
||||
}
|
||||
|
||||
return numVisibleChildren;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the context mneu (right click menu) actions for the node.
|
||||
|
@ -19,8 +19,8 @@
|
||||
<dependency conf="autopsy->*" org="org.apache.solr" name="solr-solrj" rev="6.2.1"/>
|
||||
<dependency conf="autopsy->*" org="commons-lang" name="commons-lang" rev="2.4"/>
|
||||
<dependency conf="autopsy->*" org="commons-validator" name="commons-validator" rev="1.5.1"/>
|
||||
<dependency conf="autopsy->*" org="org.apache.tika" name="tika-parsers" rev="1.5"/>
|
||||
|
||||
<dependency conf="autopsy->*" org="org.apache.tika" name="tika-parsers" rev="1.14"/>
|
||||
|
||||
<!-- metadata-extractor is required by Tika but it depends on version 2.6.2 which suffers
|
||||
from an XMP library issue. -->
|
||||
<dependency conf="autopsy->*" org="com.drewnoakes" name="metadata-extractor" rev="2.7.2" />
|
||||
@ -37,6 +37,10 @@
|
||||
<dependency conf="slf4j-libs->default" org="org.slf4j" name="slf4j-log4j12" rev="1.7.10"/>
|
||||
<dependency conf="slf4j-libs->default" org="org.slf4j" name="jcl-over-slf4j" rev="1.7.10"/>
|
||||
<dependency conf="slf4j-libs->default" org="org.slf4j" name="jul-to-slf4j" rev="1.7.10"/>
|
||||
|
||||
|
||||
<!-- Tika 1.4 seems to declare a (transitive?) dependency on cleartk-util 3.2.2, but the most recent
|
||||
version available is 2.0.0 Overriding the version worked-->
|
||||
<override org="org.cleartk" module="cleartk-util" rev="2.0.0"/>
|
||||
|
||||
</dependencies>
|
||||
</ivy-module>
|
||||
|
@ -1,70 +1,173 @@
|
||||
file.reference.aopalliance-1.0.jar=release/modules/ext/aopalliance-1.0.jar
|
||||
file.reference.apache-mime4j-core-0.7.2.jar=release/modules/ext/apache-mime4j-core-0.7.2.jar
|
||||
file.reference.apache-mime4j-dom-0.7.2.jar=release/modules/ext/apache-mime4j-dom-0.7.2.jar
|
||||
file.reference.asm-5.0.4.jar=release/modules/ext/asm-5.0.4.jar
|
||||
file.reference.asm-all-3.1.jar=release/modules/ext/asm-all-3.1.jar
|
||||
file.reference.aspectjrt-1.6.11.jar=release/modules/ext/aspectjrt-1.6.11.jar
|
||||
file.reference.bcmail-jdk15-1.45.jar=release/modules/ext/bcmail-jdk15-1.45.jar
|
||||
file.reference.bcprov-jdk15-1.45.jar=release/modules/ext/bcprov-jdk15-1.45.jar
|
||||
file.reference.commons-codec-1.5.jar=release/modules/ext/commons-codec-1.5.jar
|
||||
file.reference.commons-compress-1.5.jar=release/modules/ext/commons-compress-1.5.jar
|
||||
file.reference.bcmail-jdk15on-1.54.jar=release/modules/ext/bcmail-jdk15on-1.54.jar
|
||||
file.reference.bcpkix-jdk15on-1.54.jar=release/modules/ext/bcpkix-jdk15on-1.54.jar
|
||||
file.reference.bcprov-jdk15on-1.54.jar=release/modules/ext/bcprov-jdk15on-1.54.jar
|
||||
file.reference.boilerpipe-1.1.0.jar=release/modules/ext/boilerpipe-1.1.0.jar
|
||||
file.reference.bzip2-0.9.1.jar=release/modules/ext/bzip2-0.9.1.jar
|
||||
file.reference.c3p0-0.9.1.1.jar=release/modules/ext/c3p0-0.9.1.1.jar
|
||||
file.reference.cdm-4.5.5.jar=release/modules/ext/cdm-4.5.5.jar
|
||||
file.reference.cleartk-util-2.0.0.jar=release/modules/ext/cleartk-util-2.0.0.jar
|
||||
file.reference.commons-beanutils-1.9.2.jar=release/modules/ext/commons-beanutils-1.9.2.jar
|
||||
file.reference.commons-codec-1.10.jar=release/modules/ext/commons-codec-1.10.jar
|
||||
file.reference.commons-collections-3.2.2.jar=release/modules/ext/commons-collections-3.2.2.jar
|
||||
file.reference.commons-collections4-4.1.jar=release/modules/ext/commons-collections4-4.1.jar
|
||||
file.reference.commons-compress-1.12.jar=release/modules/ext/commons-compress-1.12.jar
|
||||
file.reference.commons-csv-1.0.jar=release/modules/ext/commons-csv-1.0.jar
|
||||
file.reference.commons-digester-1.8.1.jar=release/modules/ext/commons-digester-1.8.1.jar
|
||||
file.reference.commons-exec-1.3.jar=release/modules/ext/commons-exec-1.3.jar
|
||||
file.reference.commons-io-2.3.jar=release/modules/ext/commons-io-2.3.jar
|
||||
file.reference.commons-io-2.5.jar=release/modules/ext/commons-io-2.5.jar
|
||||
file.reference.commons-lang-2.4-javadoc.jar=release/modules/ext/commons-lang-2.4-javadoc.jar
|
||||
file.reference.commons-lang-2.4-sources.jar=release/modules/ext/commons-lang-2.4-sources.jar
|
||||
file.reference.commons-lang-2.4.jar=release/modules/ext/commons-lang-2.4.jar
|
||||
file.reference.commons-lang-2.6.jar=release/modules/ext/commons-lang-2.6.jar
|
||||
file.reference.commons-logging-1.2.jar=release/modules/ext/commons-logging-1.2.jar
|
||||
file.reference.commons-logging-api-1.1.jar=release/modules/ext/commons-logging-api-1.1.jar
|
||||
file.reference.dom4j-1.6.1.jar=release/modules/ext/dom4j-1.6.1.jar
|
||||
file.reference.fontbox-1.8.4.jar=release/modules/ext/fontbox-1.8.4.jar
|
||||
file.reference.geronimo-stax-api_1.0_spec-1.0.1.jar=release/modules/ext/geronimo-stax-api_1.0_spec-1.0.1.jar
|
||||
file.reference.commons-validator-1.5.1-javadoc.jar=release/modules/ext/commons-validator-1.5.1-javadoc.jar
|
||||
file.reference.commons-validator-1.5.1-sources.jar=release/modules/ext/commons-validator-1.5.1-sources.jar
|
||||
file.reference.commons-validator-1.5.1.jar=release/modules/ext/commons-validator-1.5.1.jar
|
||||
file.reference.commons-vfs2-2.0.jar=release/modules/ext/commons-vfs2-2.0.jar
|
||||
file.reference.ctakes-core-3.2.2.jar=release/modules/ext/ctakes-core-3.2.2.jar
|
||||
file.reference.ctakes-core-res-3.2.2.jar=release/modules/ext/ctakes-core-res-3.2.2.jar
|
||||
file.reference.ctakes-type-system-3.2.2.jar=release/modules/ext/ctakes-type-system-3.2.2.jar
|
||||
file.reference.ctakes-utils-3.2.2.jar=release/modules/ext/ctakes-utils-3.2.2.jar
|
||||
file.reference.curvesapi-1.04.jar=release/modules/ext/curvesapi-1.04.jar
|
||||
file.reference.cxf-core-3.0.3.jar=release/modules/ext/cxf-core-3.0.3.jar
|
||||
file.reference.cxf-rt-frontend-jaxrs-3.0.3.jar=release/modules/ext/cxf-rt-frontend-jaxrs-3.0.3.jar
|
||||
file.reference.cxf-rt-rs-client-3.0.3.jar=release/modules/ext/cxf-rt-rs-client-3.0.3.jar
|
||||
file.reference.cxf-rt-transports-http-3.0.3.jar=release/modules/ext/cxf-rt-transports-http-3.0.3.jar
|
||||
file.reference.ehcache-core-2.6.2.jar=release/modules/ext/ehcache-core-2.6.2.jar
|
||||
file.reference.findstructapi-0.0.1.jar=release/modules/ext/findstructapi-0.0.1.jar
|
||||
file.reference.fontbox-2.0.3.jar=release/modules/ext/fontbox-2.0.3.jar
|
||||
file.reference.geoapi-3.0.0.jar=release/modules/ext/geoapi-3.0.0.jar
|
||||
file.reference.grib-4.5.5.jar=release/modules/ext/grib-4.5.5.jar
|
||||
file.reference.gson-2.2.4.jar=release/modules/ext/gson-2.2.4.jar
|
||||
file.reference.guava-17.0.jar=release/modules/ext/guava-17.0.jar
|
||||
file.reference.hamcrest-core-1.3.jar=release/modules/ext/hamcrest-core-1.3.jar
|
||||
file.reference.httpclient-4.3.1.jar=release/modules/ext/httpclient-4.3.1.jar
|
||||
file.reference.httpclient-4.4.1.jar=release/modules/ext/httpclient-4.4.1.jar
|
||||
file.reference.httpcore-4.3.jar=release/modules/ext/httpcore-4.3.jar
|
||||
file.reference.httpcore-4.4.1.jar=release/modules/ext/httpcore-4.4.1.jar
|
||||
file.reference.httpmime-4.3.1.jar=release/modules/ext/httpmime-4.3.1.jar
|
||||
file.reference.httpmime-4.4.1.jar=release/modules/ext/httpmime-4.4.1.jar
|
||||
file.reference.httpservices-4.5.5.jar=release/modules/ext/httpservices-4.5.5.jar
|
||||
file.reference.icu4j-3.8.jar=release/modules/ext/icu4j-3.8.jar
|
||||
file.reference.isoparser-1.0-RC-1.jar=release/modules/ext/isoparser-1.0-RC-1.jar
|
||||
file.reference.isoparser-1.1.18.jar=release/modules/ext/isoparser-1.1.18.jar
|
||||
file.reference.jackcess-2.1.4.jar=release/modules/ext/jackcess-2.1.4.jar
|
||||
file.reference.jackcess-encrypt-2.1.1.jar=release/modules/ext/jackcess-encrypt-2.1.1.jar
|
||||
file.reference.jackson-annotations-2.5.4.jar=release/modules/ext/jackson-annotations-2.5.4.jar
|
||||
file.reference.jackson-core-2.8.1.jar=release/modules/ext/jackson-core-2.8.1.jar
|
||||
file.reference.jackson-databind-2.5.4.jar=release/modules/ext/jackson-databind-2.5.4.jar
|
||||
file.reference.jakarta-regexp-1.4.jar=release/modules/ext/jakarta-regexp-1.4.jar
|
||||
file.reference.java-libpst-0.8.1.jar=release/modules/ext/java-libpst-0.8.1.jar
|
||||
file.reference.javax.annotation-api-1.2.jar=release/modules/ext/javax.annotation-api-1.2.jar
|
||||
file.reference.javax.ws.rs-api-2.0.1.jar=release/modules/ext/javax.ws.rs-api-2.0.1.jar
|
||||
file.reference.jcip-annotations-1.0.jar=release/modules/ext/jcip-annotations-1.0.jar
|
||||
file.reference.jcl-over-slf4j-1.7.7.jar=release/modules/ext/jcl-over-slf4j-1.7.7.jar
|
||||
file.reference.jcommander-1.35.jar=release/modules/ext/jcommander-1.35.jar
|
||||
file.reference.jdom-1.0.jar=release/modules/ext/jdom-1.0.jar
|
||||
file.reference.jempbox-1.8.4.jar=release/modules/ext/jempbox-1.8.4.jar
|
||||
file.reference.jdom2-2.0.4.jar=release/modules/ext/jdom2-2.0.4.jar
|
||||
file.reference.jempbox-1.8.12.jar=release/modules/ext/jempbox-1.8.12.jar
|
||||
file.reference.jericho-html-3.3-javadoc.jar=release/modules/ext/jericho-html-3.3-javadoc.jar
|
||||
file.reference.jericho-html-3.3-sources.jar=release/modules/ext/jericho-html-3.3-sources.jar
|
||||
file.reference.jericho-html-3.3.jar=release/modules/ext/jericho-html-3.3.jar
|
||||
file.reference.jhighlight-1.0.2.jar=release/modules/ext/jhighlight-1.0.2.jar
|
||||
file.reference.jj2000-5.2.jar=release/modules/ext/jj2000-5.2.jar
|
||||
file.reference.jmatio-1.2.jar=release/modules/ext/jmatio-1.2.jar
|
||||
file.reference.jna-4.1.0.jar=release/modules/ext/jna-4.1.0.jar
|
||||
file.reference.joda-time-2.2.jar=release/modules/ext/joda-time-2.2.jar
|
||||
file.reference.json-20140107.jar=release/modules/ext/json-20140107.jar
|
||||
file.reference.json-simple-1.1.1.jar=release/modules/ext/json-simple-1.1.1.jar
|
||||
file.reference.jsoup-1.7.2.jar=release/modules/ext/jsoup-1.7.2.jar
|
||||
file.reference.jsr-275-0.9.3.jar=release/modules/ext/jsr-275-0.9.3.jar
|
||||
file.reference.junit-4.11.jar=release/modules/ext/junit-4.11.jar
|
||||
file.reference.juniversalchardet-1.0.3.jar=release/modules/ext/juniversalchardet-1.0.3.jar
|
||||
file.reference.junrar-0.7.jar=release/modules/ext/junrar-0.7.jar
|
||||
file.reference.jVinci-2.6.0.jar=release/modules/ext/jVinci-2.6.0.jar
|
||||
file.reference.jwnl-1.3.3.jar=release/modules/ext/jwnl-1.3.3.jar
|
||||
file.reference.libsvm-3.1.jar=release/modules/ext/libsvm-3.1.jar
|
||||
file.reference.log4j-1.2.17.jar=release/modules/ext/log4j-1.2.17.jar
|
||||
file.reference.metadata-extractor-2.7.2.jar=release/modules/ext/metadata-extractor-2.7.2.jar
|
||||
file.reference.netcdf-4.2-min.jar=release/modules/ext/netcdf-4.2-min.jar
|
||||
file.reference.lucene-analyzers-common-4.0.0.jar=release/modules/ext/lucene-analyzers-common-4.0.0.jar
|
||||
file.reference.lucene-core-4.0.0.jar=release/modules/ext/lucene-core-4.0.0.jar
|
||||
file.reference.lucene-queries-4.0.0.jar=release/modules/ext/lucene-queries-4.0.0.jar
|
||||
file.reference.lucene-queryparser-4.0.0.jar=release/modules/ext/lucene-queryparser-4.0.0.jar
|
||||
file.reference.lucene-sandbox-4.0.0.jar=release/modules/ext/lucene-sandbox-4.0.0.jar
|
||||
file.reference.maven-scm-api-1.4.jar=release/modules/ext/maven-scm-api-1.4.jar
|
||||
file.reference.maven-scm-provider-svn-commons-1.4.jar=release/modules/ext/maven-scm-provider-svn-commons-1.4.jar
|
||||
file.reference.maven-scm-provider-svnexe-1.4.jar=release/modules/ext/maven-scm-provider-svnexe-1.4.jar
|
||||
file.reference.metadata-extractor-2.9.1.jar=release/modules/ext/metadata-extractor-2.9.1.jar
|
||||
file.reference.netcdf4-4.5.5.jar=release/modules/ext/netcdf4-4.5.5.jar
|
||||
file.reference.noggit-0.5.jar=release/modules/ext/noggit-0.5.jar
|
||||
file.reference.noggit-0.6.jar=release/modules/ext/noggit-0.6.jar
|
||||
file.reference.openaifsm-0.0.1.jar=release/modules/ext/openaifsm-0.0.1.jar
|
||||
file.reference.opennlp-maxent-3.0.3.jar=release/modules/ext/opennlp-maxent-3.0.3.jar
|
||||
file.reference.opennlp-tools-1.5.3.jar=release/modules/ext/opennlp-tools-1.5.3.jar
|
||||
file.reference.org.apache.felix.scr.annotations-1.6.0.jar=release/modules/ext/org.apache.felix.scr.annotations-1.6.0.jar
|
||||
file.reference.org.apache.felix.scr.generator-1.1.2.jar=release/modules/ext/org.apache.felix.scr.generator-1.1.2.jar
|
||||
file.reference.org.osgi.compendium-4.0.0.jar=release/modules/ext/org.osgi.compendium-4.0.0.jar
|
||||
file.reference.org.osgi.core-4.0.0.jar=release/modules/ext/org.osgi.core-4.0.0.jar
|
||||
file.reference.pdfbox-1.8.4.jar=release/modules/ext/pdfbox-1.8.4.jar
|
||||
file.reference.poi-3.10-beta2.jar=release/modules/ext/poi-3.10-beta2.jar
|
||||
file.reference.poi-ooxml-3.10-beta2.jar=release/modules/ext/poi-ooxml-3.10-beta2.jar
|
||||
file.reference.poi-ooxml-schemas-3.10-beta2.jar=release/modules/ext/poi-ooxml-schemas-3.10-beta2.jar
|
||||
file.reference.poi-scratchpad-3.10-beta2.jar=release/modules/ext/poi-scratchpad-3.10-beta2.jar
|
||||
file.reference.pdfbox-2.0.3.jar=release/modules/ext/pdfbox-2.0.3.jar
|
||||
file.reference.pdfbox-debugger-2.0.3.jar=release/modules/ext/pdfbox-debugger-2.0.3.jar
|
||||
file.reference.pdfbox-tools-2.0.3.jar=release/modules/ext/pdfbox-tools-2.0.3.jar
|
||||
file.reference.plexus-utils-1.5.6.jar=release/modules/ext/plexus-utils-1.5.6.jar
|
||||
file.reference.poi-3.15.jar=release/modules/ext/poi-3.15.jar
|
||||
file.reference.poi-ooxml-3.15.jar=release/modules/ext/poi-ooxml-3.15.jar
|
||||
file.reference.poi-ooxml-schemas-3.15.jar=release/modules/ext/poi-ooxml-schemas-3.15.jar
|
||||
file.reference.poi-scratchpad-3.15.jar=release/modules/ext/poi-scratchpad-3.15.jar
|
||||
file.reference.protobuf-java-2.5.0.jar=release/modules/ext/protobuf-java-2.5.0.jar
|
||||
file.reference.qdox-1.12.jar=release/modules/ext/qdox-1.12.jar
|
||||
file.reference.rome-0.9.jar=release/modules/ext/rome-0.9.jar
|
||||
file.reference.quartz-2.2.0.jar=release/modules/ext/quartz-2.2.0.jar
|
||||
file.reference.regexp-1.3.jar=release/modules/ext/regexp-1.3.jar
|
||||
file.reference.rome-1.5.1.jar=release/modules/ext/rome-1.5.1.jar
|
||||
file.reference.rome-utils-1.5.1.jar=release/modules/ext/rome-utils-1.5.1.jar
|
||||
file.reference.sis-metadata-0.6.jar=release/modules/ext/sis-metadata-0.6.jar
|
||||
file.reference.sis-netcdf-0.6.jar=release/modules/ext/sis-netcdf-0.6.jar
|
||||
file.reference.sis-referencing-0.6.jar=release/modules/ext/sis-referencing-0.6.jar
|
||||
file.reference.sis-storage-0.6.jar=release/modules/ext/sis-storage-0.6.jar
|
||||
file.reference.sis-utility-0.6.jar=release/modules/ext/sis-utility-0.6.jar
|
||||
file.reference.slf4j-api-1.7.12.jar=release/modules/ext/slf4j-api-1.7.12.jar
|
||||
file.reference.solr-solrj-4.9.1-javadoc.jar=release/modules/ext/solr-solrj-4.9.1-javadoc.jar
|
||||
file.reference.solr-solrj-4.9.1-sources.jar=release/modules/ext/solr-solrj-4.9.1-sources.jar
|
||||
file.reference.solr-solrj-4.9.1.jar=release/modules/ext/solr-solrj-4.9.1.jar
|
||||
file.reference.solr-solrj-6.2.1-javadoc.jar=release/modules/ext/solr-solrj-6.2.1-javadoc.jar
|
||||
file.reference.solr-solrj-6.2.1-sources.jar=release/modules/ext/solr-solrj-6.2.1-sources.jar
|
||||
file.reference.solr-solrj-6.2.1.jar=release/modules/ext/solr-solrj-6.2.1.jar
|
||||
file.reference.spring-aop-3.1.2.RELEASE.jar=release/modules/ext/spring-aop-3.1.2.RELEASE.jar
|
||||
file.reference.spring-asm-3.1.2.RELEASE.jar=release/modules/ext/spring-asm-3.1.2.RELEASE.jar
|
||||
file.reference.spring-beans-3.1.2.RELEASE.jar=release/modules/ext/spring-beans-3.1.2.RELEASE.jar
|
||||
file.reference.spring-context-3.1.2.RELEASE.jar=release/modules/ext/spring-context-3.1.2.RELEASE.jar
|
||||
file.reference.spring-core-3.1.2.RELEASE.jar=release/modules/ext/spring-core-3.1.2.RELEASE.jar
|
||||
file.reference.spring-expression-3.1.2.RELEASE.jar=release/modules/ext/spring-expression-3.1.2.RELEASE.jar
|
||||
file.reference.sqlite-jdbc-3.8.11.2.jar=release/modules/ext/sqlite-jdbc-3.8.11.2.jar
|
||||
file.reference.sqlwrapper-0.0.1.jar=release/modules/ext/sqlwrapper-0.0.1.jar
|
||||
file.reference.stax2-api-3.1.4.jar=release/modules/ext/stax2-api-3.1.4.jar
|
||||
file.reference.tagsoup-1.2.1.jar=release/modules/ext/tagsoup-1.2.1.jar
|
||||
file.reference.tika-core-1.5.jar=release/modules/ext/tika-core-1.5.jar
|
||||
file.reference.tika-parsers-1.5.jar=release/modules/ext/tika-parsers-1.5.jar
|
||||
file.reference.vorbis-java-core-0.1-tests.jar=release/modules/ext/vorbis-java-core-0.1-tests.jar
|
||||
file.reference.vorbis-java-tika-0.1.jar=release/modules/ext/vorbis-java-tika-0.1.jar
|
||||
file.reference.xmlbeans-2.3.0.jar=release/modules/ext/xmlbeans-2.3.0.jar
|
||||
file.reference.xmpcore-5.1.2.jar=release/modules/ext/xmpcore-5.1.2.jar
|
||||
file.reference.tika-core-1.14.jar=release/modules/ext/tika-core-1.14.jar
|
||||
file.reference.tika-parsers-1.14-javadoc.jar=release/modules/ext/tika-parsers-1.14-javadoc.jar
|
||||
file.reference.tika-parsers-1.14-sources.jar=release/modules/ext/tika-parsers-1.14-sources.jar
|
||||
file.reference.tika-parsers-1.14.jar=release/modules/ext/tika-parsers-1.14.jar
|
||||
file.reference.udunits-4.5.5.jar=release/modules/ext/udunits-4.5.5.jar
|
||||
file.reference.uimafit-core-2.1.0.jar=release/modules/ext/uimafit-core-2.1.0.jar
|
||||
file.reference.uimaj-adapter-vinci-2.6.0.jar=release/modules/ext/uimaj-adapter-vinci-2.6.0.jar
|
||||
file.reference.uimaj-core-2.5.0.jar=release/modules/ext/uimaj-core-2.5.0.jar
|
||||
file.reference.uimaj-cpe-2.6.0.jar=release/modules/ext/uimaj-cpe-2.6.0.jar
|
||||
file.reference.uimaj-document-annotation-2.5.0.jar=release/modules/ext/uimaj-document-annotation-2.5.0.jar
|
||||
file.reference.uimaj-examples-2.4.0.jar=release/modules/ext/uimaj-examples-2.4.0.jar
|
||||
file.reference.uimaj-tools-2.6.0.jar=release/modules/ext/uimaj-tools-2.6.0.jar
|
||||
file.reference.vorbis-java-core-0.8.jar=release/modules/ext/vorbis-java-core-0.8.jar
|
||||
file.reference.vorbis-java-tika-0.8.jar=release/modules/ext/vorbis-java-tika-0.8.jar
|
||||
file.reference.woodstox-core-asl-4.4.1.jar=release/modules/ext/woodstox-core-asl-4.4.1.jar
|
||||
file.reference.xmlbeans-2.6.0.jar=release/modules/ext/xmlbeans-2.6.0.jar
|
||||
file.reference.xmlschema-core-2.1.0.jar=release/modules/ext/xmlschema-core-2.1.0.jar
|
||||
file.reference.xmpcore-5.1.2.jar=release/modules/ext/xmpcore-5.1.2.jar
|
||||
file.reference.xz-1.5.jar=release/modules/ext/xz-1.5.jar
|
||||
file.reference.zookeeper-3.4.6.jar=release/modules/ext/zookeeper-3.4.6.jar
|
||||
javac.source=1.8
|
||||
javac.compilerargs=-Xlint -Xlint:-serial
|
||||
javadoc.reference.commons-validator-1.5.1.jar=release/modules/ext/commons-validator-1.5.1-javadoc.jar
|
||||
license.file=../LICENSE-2.0.txt
|
||||
nbm.homepage=http://www.sleuthkit.org/autopsy/
|
||||
nbm.needs.restart=true
|
||||
spec.version.base=6.3
|
||||
javadoc.reference.commons-validator-1.5.1.jar=release/modules/ext/commons-validator-1.5.1-javadoc.jar
|
||||
file.reference.commons-validator-1.5.1.jar=release/modules/ext/commons-validator-1.5.1.jar
|
||||
source.reference.commons-validator-1.5.1.jar=release/modules/ext/commons-validator-1.5.1-sources.jar
|
||||
spec.version.base=6.3
|
||||
|
@ -133,169 +133,129 @@
|
||||
</dependency>
|
||||
</module-dependencies>
|
||||
<public-packages>
|
||||
<package>org.apache.commons.lang</package>
|
||||
<package>org.apache.commons.lang.builder</package>
|
||||
<package>org.apache.commons.lang.enums</package>
|
||||
<package>org.apache.commons.lang.exception</package>
|
||||
<package>org.apache.commons.lang.math</package>
|
||||
<package>org.apache.commons.lang.mutable</package>
|
||||
<package>org.apache.commons.lang.text</package>
|
||||
<package>org.apache.commons.lang.time</package>
|
||||
<package>org.apache.commons.logging.impl</package>
|
||||
<package>org.apache.tika</package>
|
||||
<package>org.apache.tika.config</package>
|
||||
<package>org.apache.tika.detect</package>
|
||||
<package>org.apache.tika.exception</package>
|
||||
<package>org.apache.tika.extractor</package>
|
||||
<package>org.apache.tika.fork</package>
|
||||
<package>org.apache.tika.io</package>
|
||||
<package>org.apache.tika.language</package>
|
||||
<package>org.apache.tika.metadata</package>
|
||||
<package>org.apache.tika.mime</package>
|
||||
<package>org.apache.tika.parser</package>
|
||||
<package>org.apache.tika.parser.asm</package>
|
||||
<package>org.apache.tika.parser.audio</package>
|
||||
<package>org.apache.tika.parser.chm</package>
|
||||
<package>org.apache.tika.parser.chm.accessor</package>
|
||||
<package>org.apache.tika.parser.chm.assertion</package>
|
||||
<package>org.apache.tika.parser.chm.core</package>
|
||||
<package>org.apache.tika.parser.chm.exception</package>
|
||||
<package>org.apache.tika.parser.chm.lzx</package>
|
||||
<package>org.apache.tika.parser.crypto</package>
|
||||
<package>org.apache.tika.parser.dwg</package>
|
||||
<package>org.apache.tika.parser.epub</package>
|
||||
<package>org.apache.tika.parser.executable</package>
|
||||
<package>org.apache.tika.parser.external</package>
|
||||
<package>org.apache.tika.parser.feed</package>
|
||||
<package>org.apache.tika.parser.font</package>
|
||||
<package>org.apache.tika.parser.hdf</package>
|
||||
<package>org.apache.tika.parser.html</package>
|
||||
<package>org.apache.tika.parser.image</package>
|
||||
<package>org.apache.tika.parser.image.xmp</package>
|
||||
<package>org.apache.tika.parser.internal</package>
|
||||
<package>org.apache.tika.parser.iptc</package>
|
||||
<package>org.apache.tika.parser.iwork</package>
|
||||
<package>org.apache.tika.parser.jpeg</package>
|
||||
<package>org.apache.tika.parser.mail</package>
|
||||
<package>org.apache.tika.parser.mbox</package>
|
||||
<package>org.apache.tika.parser.microsoft</package>
|
||||
<package>org.apache.tika.parser.microsoft.ooxml</package>
|
||||
<package>org.apache.tika.parser.mp3</package>
|
||||
<package>org.apache.tika.parser.mp4</package>
|
||||
<package>org.apache.tika.parser.netcdf</package>
|
||||
<package>org.apache.tika.parser.odf</package>
|
||||
<package>org.apache.tika.parser.opendocument</package>
|
||||
<package>org.apache.tika.parser.pdf</package>
|
||||
<package>org.apache.tika.parser.pkg</package>
|
||||
<package>org.apache.tika.parser.prt</package>
|
||||
<package>org.apache.tika.parser.rtf</package>
|
||||
<package>org.apache.tika.parser.txt</package>
|
||||
<package>org.apache.tika.parser.video</package>
|
||||
<package>org.apache.tika.parser.xml</package>
|
||||
<package>org.apache.tika.sax</package>
|
||||
<package>org.apache.tika.sax.xpath</package>
|
||||
<package>org.apache.tika.utils</package>
|
||||
<package>org.sleuthkit.autopsy.keywordsearch</package>
|
||||
</public-packages>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/bcmail-jdk15-1.45.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/bcmail-jdk15-1.45.jar</binary-origin>
|
||||
<runtime-relative-path>ext/commons-validator-1.5.1-sources.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/commons-validator-1.5.1-sources.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/solr-solrj-6.2.1-javadoc.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/solr-solrj-6.2.1-javadoc.jar</binary-origin>
|
||||
<runtime-relative-path>ext/commons-digester-1.8.1.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/commons-digester-1.8.1.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/jwnl-1.3.3.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/jwnl-1.3.3.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/tika-core-1.14.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/tika-core-1.14.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/httpmime-4.4.1.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/httpmime-4.4.1.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/tika-parsers-1.5.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/tika-parsers-1.5.jar</binary-origin>
|
||||
<runtime-relative-path>ext/lucene-queryparser-4.0.0.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/lucene-queryparser-4.0.0.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/jericho-html-3.3.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/jericho-html-3.3.jar</binary-origin>
|
||||
<runtime-relative-path>ext/uimaj-examples-2.4.0.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/uimaj-examples-2.4.0.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/cdm-4.5.5.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/cdm-4.5.5.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/gson-2.2.4.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/gson-2.2.4.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/org.osgi.compendium-4.0.0.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/org.osgi.compendium-4.0.0.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/xmlbeans-2.3.0.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/xmlbeans-2.3.0.jar</binary-origin>
|
||||
<runtime-relative-path>ext/geoapi-3.0.0.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/geoapi-3.0.0.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/jempbox-1.8.4.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/jempbox-1.8.4.jar</binary-origin>
|
||||
<runtime-relative-path>ext/hamcrest-core-1.3.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/hamcrest-core-1.3.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/poi-ooxml-3.10-beta2.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/poi-ooxml-3.10-beta2.jar</binary-origin>
|
||||
<runtime-relative-path>ext/boilerpipe-1.1.0.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/boilerpipe-1.1.0.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/commons-logging-api-1.1.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/commons-logging-api-1.1.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/asm-all-3.1.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/asm-all-3.1.jar</binary-origin>
|
||||
<runtime-relative-path>ext/jakarta-regexp-1.4.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/jakarta-regexp-1.4.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/poi-3.10-beta2.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/poi-3.10-beta2.jar</binary-origin>
|
||||
<runtime-relative-path>ext/xmlbeans-2.6.0.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/xmlbeans-2.6.0.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/icu4j-3.8.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/icu4j-3.8.jar</binary-origin>
|
||||
<runtime-relative-path>ext/maven-scm-api-1.4.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/maven-scm-api-1.4.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/fontbox-1.8.4.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/fontbox-1.8.4.jar</binary-origin>
|
||||
<runtime-relative-path>ext/quartz-2.2.0.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/quartz-2.2.0.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/xmpcore-5.1.2.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/xmpcore-5.1.2.jar</binary-origin>
|
||||
<runtime-relative-path>ext/jackcess-2.1.4.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/jackcess-2.1.4.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/metadata-extractor-2.7.2.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/metadata-extractor-2.7.2.jar</binary-origin>
|
||||
<runtime-relative-path>ext/slf4j-api-1.7.12.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/slf4j-api-1.7.12.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/tagsoup-1.2.1.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/tagsoup-1.2.1.jar</binary-origin>
|
||||
<runtime-relative-path>ext/guava-17.0.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/guava-17.0.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/commons-compress-1.5.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/commons-compress-1.5.jar</binary-origin>
|
||||
<runtime-relative-path>ext/opennlp-maxent-3.0.3.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/opennlp-maxent-3.0.3.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/commons-lang-2.4-javadoc.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/commons-lang-2.4-javadoc.jar</binary-origin>
|
||||
<runtime-relative-path>ext/jVinci-2.6.0.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/jVinci-2.6.0.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/org.osgi.core-4.0.0.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/org.osgi.core-4.0.0.jar</binary-origin>
|
||||
<runtime-relative-path>ext/json-simple-1.1.1.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/json-simple-1.1.1.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/isoparser-1.0-RC-1.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/isoparser-1.0-RC-1.jar</binary-origin>
|
||||
<runtime-relative-path>ext/sis-utility-0.6.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/sis-utility-0.6.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/jj2000-5.2.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/jj2000-5.2.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/jhighlight-1.0.2.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/jhighlight-1.0.2.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/uimaj-cpe-2.6.0.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/uimaj-cpe-2.6.0.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/log4j-1.2.17.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/log4j-1.2.17.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/commons-lang-2.4-sources.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/commons-lang-2.4-sources.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/tika-core-1.5.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/tika-core-1.5.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/jericho-html-3.3-javadoc.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/jericho-html-3.3-javadoc.jar</binary-origin>
|
||||
<runtime-relative-path>ext/ctakes-utils-3.2.2.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/ctakes-utils-3.2.2.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/solr-solrj-6.2.1.jar</runtime-relative-path>
|
||||
@ -305,13 +265,345 @@
|
||||
<runtime-relative-path>ext/apache-mime4j-dom-0.7.2.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/apache-mime4j-dom-0.7.2.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/commons-compress-1.12.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/commons-compress-1.12.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/openaifsm-0.0.1.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/openaifsm-0.0.1.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/stax2-api-3.1.4.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/stax2-api-3.1.4.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/commons-collections4-4.1.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/commons-collections4-4.1.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/cxf-rt-rs-client-3.0.3.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/cxf-rt-rs-client-3.0.3.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/jackson-annotations-2.5.4.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/jackson-annotations-2.5.4.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/findstructapi-0.0.1.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/findstructapi-0.0.1.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/jcommander-1.35.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/jcommander-1.35.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/sis-metadata-0.6.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/sis-metadata-0.6.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/isoparser-1.1.18.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/isoparser-1.1.18.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/vorbis-java-core-0.8.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/vorbis-java-core-0.8.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/jdom2-2.0.4.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/jdom2-2.0.4.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/java-libpst-0.8.1.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/java-libpst-0.8.1.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/commons-codec-1.10.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/commons-codec-1.10.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/lucene-queries-4.0.0.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/lucene-queries-4.0.0.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/bcprov-jdk15on-1.54.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/bcprov-jdk15on-1.54.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/poi-ooxml-schemas-3.15.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/poi-ooxml-schemas-3.15.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/poi-scratchpad-3.15.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/poi-scratchpad-3.15.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/commons-vfs2-2.0.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/commons-vfs2-2.0.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/jcl-over-slf4j-1.7.7.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/jcl-over-slf4j-1.7.7.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/tika-parsers-1.14.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/tika-parsers-1.14.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/jackcess-encrypt-2.1.1.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/jackcess-encrypt-2.1.1.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/spring-expression-3.1.2.RELEASE.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/spring-expression-3.1.2.RELEASE.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/lucene-analyzers-common-4.0.0.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/lucene-analyzers-common-4.0.0.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/tika-parsers-1.14-sources.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/tika-parsers-1.14-sources.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/javax.ws.rs-api-2.0.1.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/javax.ws.rs-api-2.0.1.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/junrar-0.7.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/junrar-0.7.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/libsvm-3.1.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/libsvm-3.1.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/xmlschema-core-2.1.0.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/xmlschema-core-2.1.0.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/jna-4.1.0.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/jna-4.1.0.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/xz-1.5.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/xz-1.5.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/qdox-1.12.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/qdox-1.12.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/bcpkix-jdk15on-1.54.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/bcpkix-jdk15on-1.54.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/bzip2-0.9.1.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/bzip2-0.9.1.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/grib-4.5.5.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/grib-4.5.5.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/maven-scm-provider-svn-commons-1.4.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/maven-scm-provider-svn-commons-1.4.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/poi-3.15.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/poi-3.15.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/spring-aop-3.1.2.RELEASE.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/spring-aop-3.1.2.RELEASE.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/json-20140107.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/json-20140107.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/uimaj-core-2.5.0.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/uimaj-core-2.5.0.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/pdfbox-2.0.3.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/pdfbox-2.0.3.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/jmatio-1.2.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/jmatio-1.2.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/metadata-extractor-2.9.1.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/metadata-extractor-2.9.1.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/commons-csv-1.0.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/commons-csv-1.0.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/commons-validator-1.5.1-javadoc.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/commons-validator-1.5.1-javadoc.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/solr-solrj-6.2.1-javadoc.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/solr-solrj-6.2.1-javadoc.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/lucene-sandbox-4.0.0.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/lucene-sandbox-4.0.0.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/jericho-html-3.3.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/jericho-html-3.3.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/jsr-275-0.9.3.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/jsr-275-0.9.3.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/httpservices-4.5.5.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/httpservices-4.5.5.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/plexus-utils-1.5.6.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/plexus-utils-1.5.6.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/fontbox-2.0.3.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/fontbox-2.0.3.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/bcmail-jdk15on-1.54.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/bcmail-jdk15on-1.54.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/spring-beans-3.1.2.RELEASE.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/spring-beans-3.1.2.RELEASE.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/asm-all-3.1.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/asm-all-3.1.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/tika-parsers-1.14-javadoc.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/tika-parsers-1.14-javadoc.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/icu4j-3.8.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/icu4j-3.8.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/curvesapi-1.04.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/curvesapi-1.04.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/xmpcore-5.1.2.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/xmpcore-5.1.2.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/sis-referencing-0.6.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/sis-referencing-0.6.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/ctakes-core-res-3.2.2.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/ctakes-core-res-3.2.2.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/joda-time-2.2.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/joda-time-2.2.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/tagsoup-1.2.1.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/tagsoup-1.2.1.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/lucene-core-4.0.0.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/lucene-core-4.0.0.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/asm-5.0.4.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/asm-5.0.4.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/commons-logging-1.2.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/commons-logging-1.2.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/jackson-core-2.8.1.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/jackson-core-2.8.1.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/org.osgi.core-4.0.0.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/org.osgi.core-4.0.0.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/c3p0-0.9.1.1.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/c3p0-0.9.1.1.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/sqlwrapper-0.0.1.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/sqlwrapper-0.0.1.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/jericho-html-3.3-javadoc.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/jericho-html-3.3-javadoc.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/udunits-4.5.5.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/udunits-4.5.5.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/aopalliance-1.0.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/aopalliance-1.0.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/commons-collections-3.2.2.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/commons-collections-3.2.2.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/cxf-rt-frontend-jaxrs-3.0.3.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/cxf-rt-frontend-jaxrs-3.0.3.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/uimaj-document-annotation-2.5.0.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/uimaj-document-annotation-2.5.0.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/woodstox-core-asl-4.4.1.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/woodstox-core-asl-4.4.1.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/poi-ooxml-3.15.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/poi-ooxml-3.15.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/org.apache.felix.scr.generator-1.1.2.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/org.apache.felix.scr.generator-1.1.2.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/poi-scratchpad-3.10-beta2.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/poi-scratchpad-3.10-beta2.jar</binary-origin>
|
||||
<runtime-relative-path>ext/zookeeper-3.4.6.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/zookeeper-3.4.6.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/cxf-rt-transports-http-3.0.3.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/cxf-rt-transports-http-3.0.3.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/pdfbox-debugger-2.0.3.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/pdfbox-debugger-2.0.3.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/jackson-databind-2.5.4.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/jackson-databind-2.5.4.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/spring-core-3.1.2.RELEASE.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/spring-core-3.1.2.RELEASE.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/netcdf4-4.5.5.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/netcdf4-4.5.5.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/httpclient-4.4.1.jar</runtime-relative-path>
|
||||
@ -325,17 +617,29 @@
|
||||
<runtime-relative-path>ext/solr-solrj-6.2.1-sources.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/solr-solrj-6.2.1-sources.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/spring-asm-3.1.2.RELEASE.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/spring-asm-3.1.2.RELEASE.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/commons-io-2.5.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/commons-io-2.5.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/netcdf-4.2-min.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/netcdf-4.2-min.jar</binary-origin>
|
||||
<runtime-relative-path>ext/junit-4.11.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/junit-4.11.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/vorbis-java-core-0.1-tests.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/vorbis-java-core-0.1-tests.jar</binary-origin>
|
||||
<runtime-relative-path>ext/protobuf-java-2.5.0.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/protobuf-java-2.5.0.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/sis-netcdf-0.6.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/sis-netcdf-0.6.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/javax.annotation-api-1.2.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/javax.annotation-api-1.2.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/httpcore-4.4.1.jar</runtime-relative-path>
|
||||
@ -354,60 +658,112 @@
|
||||
<binary-origin>release/modules/ext/org.apache.felix.scr.annotations-1.6.0.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/commons-codec-1.5.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/commons-codec-1.5.jar</binary-origin>
|
||||
<runtime-relative-path>ext/commons-lang-2.6.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/commons-lang-2.6.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/sqlite-jdbc-3.8.11.2.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/sqlite-jdbc-3.8.11.2.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/jempbox-1.8.12.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/jempbox-1.8.12.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/maven-scm-provider-svnexe-1.4.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/maven-scm-provider-svnexe-1.4.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/opennlp-tools-1.5.3.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/opennlp-tools-1.5.3.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/apache-mime4j-core-0.7.2.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/apache-mime4j-core-0.7.2.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/qdox-1.12.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/qdox-1.12.jar</binary-origin>
|
||||
<runtime-relative-path>ext/rome-utils-1.5.1.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/rome-utils-1.5.1.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/pdfbox-tools-2.0.3.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/pdfbox-tools-2.0.3.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/sis-storage-0.6.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/sis-storage-0.6.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/jcip-annotations-1.0.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/jcip-annotations-1.0.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/commons-validator-1.5.1.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/commons-validator-1.5.1.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/commons-lang-2.4.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/commons-lang-2.4.jar</binary-origin>
|
||||
<runtime-relative-path>ext/uimafit-core-2.1.0.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/uimafit-core-2.1.0.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/rome-0.9.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/rome-0.9.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/geronimo-stax-api_1.0_spec-1.0.1.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/geronimo-stax-api_1.0_spec-1.0.1.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/vorbis-java-tika-0.1.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/vorbis-java-tika-0.1.jar</binary-origin>
|
||||
<runtime-relative-path>ext/cleartk-util-2.0.0.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/cleartk-util-2.0.0.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/jdom-1.0.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/jdom-1.0.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/poi-ooxml-schemas-3.10-beta2.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/poi-ooxml-schemas-3.10-beta2.jar</binary-origin>
|
||||
<runtime-relative-path>ext/cxf-core-3.0.3.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/cxf-core-3.0.3.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/pdfbox-1.8.4.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/pdfbox-1.8.4.jar</binary-origin>
|
||||
<runtime-relative-path>ext/regexp-1.3.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/regexp-1.3.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/aspectjrt-1.6.11.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/aspectjrt-1.6.11.jar</binary-origin>
|
||||
<runtime-relative-path>ext/commons-beanutils-1.9.2.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/commons-beanutils-1.9.2.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/dom4j-1.6.1.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/dom4j-1.6.1.jar</binary-origin>
|
||||
<runtime-relative-path>ext/ehcache-core-2.6.2.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/ehcache-core-2.6.2.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/bcprov-jdk15-1.45.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/bcprov-jdk15-1.45.jar</binary-origin>
|
||||
<runtime-relative-path>ext/spring-context-3.1.2.RELEASE.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/spring-context-3.1.2.RELEASE.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/ctakes-type-system-3.2.2.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/ctakes-type-system-3.2.2.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/rome-1.5.1.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/rome-1.5.1.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/uimaj-adapter-vinci-2.6.0.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/uimaj-adapter-vinci-2.6.0.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/ctakes-core-3.2.2.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/ctakes-core-3.2.2.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/jsoup-1.7.2.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/jsoup-1.7.2.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/commons-exec-1.3.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/commons-exec-1.3.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/uimaj-tools-2.6.0.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/uimaj-tools-2.6.0.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
<class-path-extension>
|
||||
<runtime-relative-path>ext/vorbis-java-tika-0.8.jar</runtime-relative-path>
|
||||
<binary-origin>release/modules/ext/vorbis-java-tika-0.8.jar</binary-origin>
|
||||
</class-path-extension>
|
||||
</data>
|
||||
</configuration>
|
||||
|
@ -47,9 +47,7 @@ class KeywordSearchUtil {
|
||||
return query;
|
||||
}
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("\"").append(query).append("\"");
|
||||
return sb.toString();
|
||||
return "\""+query+"\"";
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -33,12 +33,9 @@ import org.apache.solr.client.solrj.response.QueryResponse;
|
||||
import org.apache.solr.common.SolrDocument;
|
||||
import org.apache.solr.common.SolrDocumentList;
|
||||
import org.apache.solr.common.params.CursorMarkParams;
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.coreutils.EscapeUtil;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
import org.sleuthkit.autopsy.coreutils.MessageNotifyUtil;
|
||||
import org.sleuthkit.autopsy.coreutils.Version;
|
||||
import static org.sleuthkit.autopsy.keywordsearch.RegexQuery.LOGGER;
|
||||
import org.sleuthkit.datamodel.BlackboardArtifact;
|
||||
import org.sleuthkit.datamodel.BlackboardArtifact.ARTIFACT_TYPE;
|
||||
import org.sleuthkit.datamodel.BlackboardAttribute;
|
||||
@ -53,11 +50,10 @@ import org.sleuthkit.datamodel.TskException;
|
||||
class LuceneQuery implements KeywordSearchQuery {
|
||||
|
||||
private static final Logger logger = Logger.getLogger(LuceneQuery.class.getName());
|
||||
private final String keywordString; //original unescaped query
|
||||
private String keywordStringEscaped;
|
||||
private boolean isEscaped;
|
||||
private Keyword originalKeyword = null;
|
||||
private KeywordList keywordList = null;
|
||||
private final Keyword originalKeyword ;
|
||||
private final KeywordList keywordList ;
|
||||
private final List<KeywordQueryFilter> filters = new ArrayList<>();
|
||||
private String field = null;
|
||||
private static final int MAX_RESULTS_PER_CURSOR_MARK = 512;
|
||||
@ -74,11 +70,7 @@ class LuceneQuery implements KeywordSearchQuery {
|
||||
LuceneQuery(KeywordList keywordList, Keyword keyword) {
|
||||
this.keywordList = keywordList;
|
||||
this.originalKeyword = keyword;
|
||||
|
||||
// @@@ BC: Long-term, we should try to get rid of this string and use only the
|
||||
// keyword object. Refactoring did not make its way through this yet.
|
||||
this.keywordString = keyword.getSearchTerm();
|
||||
this.keywordStringEscaped = this.keywordString;
|
||||
this.keywordStringEscaped = this.originalKeyword.getSearchTerm();
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -100,7 +92,7 @@ class LuceneQuery implements KeywordSearchQuery {
|
||||
|
||||
@Override
|
||||
public void escape() {
|
||||
keywordStringEscaped = KeywordSearchUtil.escapeLuceneQuery(keywordString);
|
||||
keywordStringEscaped = KeywordSearchUtil.escapeLuceneQuery(originalKeyword.getSearchTerm());
|
||||
isEscaped = true;
|
||||
}
|
||||
|
||||
@ -121,22 +113,82 @@ class LuceneQuery implements KeywordSearchQuery {
|
||||
|
||||
@Override
|
||||
public String getQueryString() {
|
||||
return this.keywordString;
|
||||
return this.originalKeyword.getSearchTerm();
|
||||
}
|
||||
|
||||
@Override
|
||||
public KeywordList getKeywordList() {
|
||||
return keywordList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public QueryResults performQuery() throws KeywordSearchModuleException, NoOpenCoreException {
|
||||
|
||||
final Server solrServer = KeywordSearch.getServer();
|
||||
double indexSchemaVersion = NumberUtils.toDouble(solrServer.getIndexInfo().getSchemaVersion());
|
||||
|
||||
SolrQuery solrQuery = createAndConfigureSolrQuery(KeywordSearchSettings.getShowSnippets());
|
||||
|
||||
final String strippedQueryString = StringUtils.strip(getQueryString(), "\"");
|
||||
|
||||
String cursorMark = CursorMarkParams.CURSOR_MARK_START;
|
||||
boolean allResultsProcessed = false;
|
||||
List<KeywordHit> matches = new ArrayList<>();
|
||||
while (!allResultsProcessed) {
|
||||
solrQuery.set(CursorMarkParams.CURSOR_MARK_PARAM, cursorMark);
|
||||
QueryResponse response = solrServer.query(solrQuery, SolrRequest.METHOD.POST);
|
||||
SolrDocumentList resultList = response.getResults();
|
||||
// objectId_chunk -> "text" -> List of previews
|
||||
Map<String, Map<String, List<String>>> highlightResponse = response.getHighlighting();
|
||||
|
||||
for (SolrDocument resultDoc : resultList) {
|
||||
try {
|
||||
/*
|
||||
* for each result doc, check that the first occurence of
|
||||
* that term is before the window. if all the ocurences
|
||||
* start within the window, don't record them for this
|
||||
* chunk, they will get picked up in the next one.
|
||||
*/
|
||||
final String docId = resultDoc.getFieldValue(Server.Schema.ID.toString()).toString();
|
||||
final Integer chunkSize = (Integer) resultDoc.getFieldValue(Server.Schema.CHUNK_SIZE.toString());
|
||||
final Collection<Object> content = resultDoc.getFieldValues(Server.Schema.CONTENT_STR.toString());
|
||||
|
||||
if (indexSchemaVersion < 2.0) {
|
||||
//old schema versions don't support chunk_size or the content_str fields, so just accept hits
|
||||
matches.add(createKeywordtHit(highlightResponse, docId));
|
||||
} else {
|
||||
//check against file name and actual content seperately.
|
||||
for (Object content_obj : content) {
|
||||
String content_str = (String) content_obj;
|
||||
//for new schemas, check that the hit is before the chunk/window boundary.
|
||||
int firstOccurence = StringUtils.indexOfIgnoreCase(content_str, strippedQueryString);
|
||||
//there is no chunksize field for "parent" entries in the index
|
||||
if (chunkSize == null || chunkSize == 0 || (firstOccurence > -1 && firstOccurence < chunkSize)) {
|
||||
matches.add(createKeywordtHit(highlightResponse, docId));
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (TskException ex) {
|
||||
throw new KeywordSearchModuleException(ex);
|
||||
}
|
||||
}
|
||||
String nextCursorMark = response.getNextCursorMark();
|
||||
if (cursorMark.equals(nextCursorMark)) {
|
||||
allResultsProcessed = true;
|
||||
}
|
||||
cursorMark = nextCursorMark;
|
||||
}
|
||||
|
||||
QueryResults results = new QueryResults(this);
|
||||
//in case of single term literal query there is only 1 term
|
||||
results.addResult(new Keyword(keywordString, true),
|
||||
performLuceneQuery(KeywordSearchSettings.getShowSnippets()));
|
||||
results.addResult(new Keyword(originalKeyword.getSearchTerm(), true), matches);
|
||||
|
||||
return results;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean validate() {
|
||||
return StringUtils.isNotBlank(keywordString);
|
||||
return StringUtils.isNotBlank(originalKeyword.getSearchTerm());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -149,7 +201,7 @@ class LuceneQuery implements KeywordSearchQuery {
|
||||
try {
|
||||
bba = hit.getContent().newArtifact(ARTIFACT_TYPE.TSK_KEYWORD_HIT);
|
||||
writeResult = new KeywordCachedArtifact(bba);
|
||||
} catch (Exception e) {
|
||||
} catch (TskCoreException e) {
|
||||
logger.log(Level.WARNING, "Error adding bb artifact for keyword hit", e); //NON-NLS
|
||||
return null;
|
||||
}
|
||||
@ -158,13 +210,10 @@ class LuceneQuery implements KeywordSearchQuery {
|
||||
attributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_KEYWORD_PREVIEW, MODULE_NAME, snippet));
|
||||
}
|
||||
attributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_KEYWORD, MODULE_NAME, foundKeyword.getSearchTerm()));
|
||||
if ((listName != null) && (listName.equals("") == false)) {
|
||||
if (StringUtils.isNotBlank(listName)) {
|
||||
attributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_SET_NAME, MODULE_NAME, listName));
|
||||
}
|
||||
|
||||
//bogus - workaround the dir tree table issue
|
||||
//attributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_KEYWORD_REGEXP.getTypeID(), MODULE_NAME, "", ""));
|
||||
//selector
|
||||
if (originalKeyword != null) {
|
||||
BlackboardAttribute.ATTRIBUTE_TYPE selType = originalKeyword.getArtifactAttributeType();
|
||||
if (selType != null) {
|
||||
@ -188,78 +237,10 @@ class LuceneQuery implements KeywordSearchQuery {
|
||||
return writeResult;
|
||||
} catch (TskCoreException e) {
|
||||
logger.log(Level.WARNING, "Error adding bb attributes to artifact", e); //NON-NLS
|
||||
return null;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Perform the query and return results of unique files.
|
||||
*
|
||||
* @param snippets True if results should have a snippet
|
||||
*
|
||||
* @return list of KeywordHit objects. One per file with hit (ignores
|
||||
* multiple hits of the word in the same doc)
|
||||
*
|
||||
*/
|
||||
private List<KeywordHit> performLuceneQuery(boolean snippets) throws KeywordSearchModuleException, NoOpenCoreException {
|
||||
List<KeywordHit> matches = new ArrayList<>();
|
||||
final Server solrServer = KeywordSearch.getServer();
|
||||
double indexSchemaVersion = NumberUtils.toDouble(solrServer.getIndexInfo().getSchemaVersion());
|
||||
|
||||
SolrQuery solrQuery = createAndConfigureSolrQuery(snippets);
|
||||
|
||||
final String strippedQueryString = StringUtils.strip(getQueryString(), "\"");
|
||||
|
||||
String cursorMark = CursorMarkParams.CURSOR_MARK_START;
|
||||
boolean allResultsProcessed = false;
|
||||
|
||||
while (!allResultsProcessed) {
|
||||
solrQuery.set(CursorMarkParams.CURSOR_MARK_PARAM, cursorMark);
|
||||
QueryResponse response = solrServer.query(solrQuery, SolrRequest.METHOD.POST);
|
||||
SolrDocumentList resultList = response.getResults();
|
||||
// objectId_chunk -> "text" -> List of previews
|
||||
Map<String, Map<String, List<String>>> highlightResponse = response.getHighlighting();
|
||||
|
||||
for (SolrDocument resultDoc : resultList) {
|
||||
try {
|
||||
/*
|
||||
* for each result, check that the first occurence of that
|
||||
* term is before the window. if all the ocurences start
|
||||
* within the window, don't record them for this chunk, they
|
||||
* will get picked up in the next one.
|
||||
*/
|
||||
final String docId = resultDoc.getFieldValue(Server.Schema.ID.toString()).toString();
|
||||
final Integer chunkSize = (Integer) resultDoc.getFieldValue(Server.Schema.CHUNK_SIZE.toString());
|
||||
final Collection<Object> content = resultDoc.getFieldValues(Server.Schema.CONTENT_STR.toString());
|
||||
|
||||
if (indexSchemaVersion < 2.0) {
|
||||
//old schema versions don't support chunk_size or the content_str fields, so just accept hits
|
||||
matches.add(createKeywordtHit(highlightResponse, docId));
|
||||
} else {
|
||||
//check against file name and actual content seperately.
|
||||
for (Object content_obj : content) {
|
||||
String content_str = (String) content_obj;
|
||||
//for new schemas, check that the hit is before the chunk/window boundary.
|
||||
int firstOccurence = StringUtils.indexOfIgnoreCase(content_str, strippedQueryString);
|
||||
//there is no chunksize field for "parent" entries in the index
|
||||
if (chunkSize == null || chunkSize == 0 || (firstOccurence > -1 && firstOccurence < chunkSize)) {
|
||||
matches.add(createKeywordtHit(highlightResponse, docId));
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (TskException ex) {
|
||||
return matches;
|
||||
}
|
||||
}
|
||||
String nextCursorMark = response.getNextCursorMark();
|
||||
if (cursorMark.equals(nextCursorMark)) {
|
||||
allResultsProcessed = true;
|
||||
}
|
||||
cursorMark = nextCursorMark;
|
||||
|
||||
}
|
||||
return matches;
|
||||
}
|
||||
|
||||
/*
|
||||
* Create the query object for the stored keyword
|
||||
@ -272,15 +253,15 @@ class LuceneQuery implements KeywordSearchQuery {
|
||||
SolrQuery q = new SolrQuery();
|
||||
q.setShowDebugInfo(DEBUG); //debug
|
||||
// Wrap the query string in quotes if this is a literal search term.
|
||||
String theQueryStr = originalKeyword.searchTermIsLiteral()
|
||||
String queryStr = originalKeyword.searchTermIsLiteral()
|
||||
? KeywordSearchUtil.quoteQuery(keywordStringEscaped) : keywordStringEscaped;
|
||||
|
||||
// Run the query against an optional alternative field.
|
||||
if (field != null) {
|
||||
//use the optional field
|
||||
theQueryStr = field + ":" + theQueryStr;
|
||||
queryStr = field + ":" + queryStr;
|
||||
}
|
||||
q.setQuery(theQueryStr);
|
||||
q.setQuery(queryStr);
|
||||
q.setRows(MAX_RESULTS_PER_CURSOR_MARK);
|
||||
// Setting the sort order is necessary for cursor based paging to work.
|
||||
q.setSort(SolrQuery.SortClause.asc(Server.Schema.ID.toString()));
|
||||
@ -294,29 +275,37 @@ class LuceneQuery implements KeywordSearchQuery {
|
||||
}
|
||||
|
||||
if (snippets) {
|
||||
q.addHighlightField(Server.Schema.TEXT.toString());
|
||||
//q.setHighlightSimplePre("«"); //original highlighter only
|
||||
//q.setHighlightSimplePost("»"); //original highlighter only
|
||||
q.setHighlightSnippets(1);
|
||||
q.setHighlightFragsize(SNIPPET_LENGTH);
|
||||
|
||||
//tune the highlighter
|
||||
q.setParam("hl.useFastVectorHighlighter", "on"); //fast highlighter scales better than standard one NON-NLS
|
||||
q.setParam("hl.tag.pre", "«"); //makes sense for FastVectorHighlighter only NON-NLS
|
||||
q.setParam("hl.tag.post", "«"); //makes sense for FastVectorHighlighter only NON-NLS
|
||||
q.setParam("hl.fragListBuilder", "simple"); //makes sense for FastVectorHighlighter only NON-NLS
|
||||
|
||||
//Solr bug if fragCharSize is smaller than Query string, StringIndexOutOfBoundsException is thrown.
|
||||
q.setParam("hl.fragCharSize", Integer.toString(theQueryStr.length())); //makes sense for FastVectorHighlighter only NON-NLS
|
||||
|
||||
//docs says makes sense for the original Highlighter only, but not really
|
||||
//analyze all content SLOW! consider lowering
|
||||
q.setParam("hl.maxAnalyzedChars", Server.HL_ANALYZE_CHARS_UNLIMITED); //NON-NLS
|
||||
configurwQueryForHighlighting(q);
|
||||
}
|
||||
|
||||
return q;
|
||||
}
|
||||
|
||||
/**
|
||||
* Configure the given query to return highlighting information. Must be
|
||||
* called after setQuery() has been invoked on q.
|
||||
*
|
||||
* @param q The SolrQuery to configure.
|
||||
*/
|
||||
private static void configurwQueryForHighlighting(SolrQuery q) {
|
||||
q.addHighlightField(HIGHLIGHT_FIELD);
|
||||
q.setHighlightSnippets(1);
|
||||
q.setHighlightFragsize(SNIPPET_LENGTH);
|
||||
|
||||
//tune the highlighter
|
||||
q.setParam("hl.useFastVectorHighlighter", "on"); //fast highlighter scales better than standard one NON-NLS
|
||||
q.setParam("hl.tag.pre", "«"); //makes sense for FastVectorHighlighter only NON-NLS
|
||||
q.setParam("hl.tag.post", "«"); //makes sense for FastVectorHighlighter only NON-NLS
|
||||
q.setParam("hl.fragListBuilder", "simple"); //makes sense for FastVectorHighlighter only NON-NLS
|
||||
|
||||
//Solr bug if fragCharSize is smaller than Query string, StringIndexOutOfBoundsException is thrown.
|
||||
q.setParam("hl.fragCharSize", Integer.toString(q.getQuery().length())); //makes sense for FastVectorHighlighter only NON-NLS
|
||||
|
||||
//docs says makes sense for the original Highlighter only, but not really
|
||||
//analyze all content SLOW! consider lowering
|
||||
q.setParam("hl.maxAnalyzedChars", Server.HL_ANALYZE_CHARS_UNLIMITED); //NON-NLS
|
||||
}
|
||||
|
||||
private KeywordHit createKeywordtHit(Map<String, Map<String, List<String>>> highlightResponse, String docId) throws TskException {
|
||||
/**
|
||||
* Get the first snippet from the document if keyword search is
|
||||
@ -331,7 +320,7 @@ class LuceneQuery implements KeywordSearchQuery {
|
||||
}
|
||||
}
|
||||
|
||||
return new KeywordHit(docId, snippet, keywordString);
|
||||
return new KeywordHit(docId, snippet, originalKeyword.getSearchTerm());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -348,7 +337,7 @@ class LuceneQuery implements KeywordSearchQuery {
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public static String querySnippet(String query, long solrObjectId, boolean isRegex, boolean group) throws NoOpenCoreException {
|
||||
static String querySnippet(String query, long solrObjectId, boolean isRegex, boolean group) throws NoOpenCoreException {
|
||||
return querySnippet(query, solrObjectId, 0, isRegex, group);
|
||||
}
|
||||
|
||||
@ -367,62 +356,33 @@ class LuceneQuery implements KeywordSearchQuery {
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public static String querySnippet(String query, long solrObjectId, int chunkID, boolean isRegex, boolean group) throws NoOpenCoreException {
|
||||
Server solrServer = KeywordSearch.getServer();
|
||||
|
||||
static String querySnippet(String query, long solrObjectId, int chunkID, boolean isRegex, boolean group) throws NoOpenCoreException {
|
||||
SolrQuery q = new SolrQuery();
|
||||
q.setShowDebugInfo(DEBUG); //debug
|
||||
|
||||
String queryStr;
|
||||
|
||||
if (isRegex) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append(LuceneQuery.HIGHLIGHT_FIELD).append(":");
|
||||
if (group) {
|
||||
sb.append("\"");
|
||||
}
|
||||
sb.append(query);
|
||||
if (group) {
|
||||
sb.append("\"");
|
||||
}
|
||||
|
||||
queryStr = sb.toString();
|
||||
queryStr = HIGHLIGHT_FIELD + ":"
|
||||
+ (group ? KeywordSearchUtil.quoteQuery(query)
|
||||
: query);
|
||||
} else {
|
||||
//simplify query/escaping and use default field
|
||||
//always force grouping/quotes
|
||||
/*
|
||||
* simplify query/escaping and use default field always force
|
||||
* grouping/quotes
|
||||
*/
|
||||
queryStr = KeywordSearchUtil.quoteQuery(query);
|
||||
}
|
||||
|
||||
q.setQuery(queryStr);
|
||||
|
||||
String contentIDStr;
|
||||
|
||||
if (chunkID == 0) {
|
||||
contentIDStr = Long.toString(solrObjectId);
|
||||
} else {
|
||||
contentIDStr = Server.getChunkIdString(solrObjectId, chunkID);
|
||||
}
|
||||
|
||||
String contentIDStr = (chunkID == 0)
|
||||
? Long.toString(solrObjectId)
|
||||
: Server.getChunkIdString(solrObjectId, chunkID);
|
||||
String idQuery = Server.Schema.ID.toString() + ":" + KeywordSearchUtil.escapeLuceneQuery(contentIDStr);
|
||||
q.setShowDebugInfo(DEBUG); //debug
|
||||
q.addFilterQuery(idQuery);
|
||||
q.addHighlightField(LuceneQuery.HIGHLIGHT_FIELD);
|
||||
//q.setHighlightSimplePre("«"); //original highlighter only
|
||||
//q.setHighlightSimplePost("»"); //original highlighter only
|
||||
q.setHighlightSnippets(1);
|
||||
q.setHighlightFragsize(SNIPPET_LENGTH);
|
||||
|
||||
//tune the highlighter
|
||||
q.setParam("hl.useFastVectorHighlighter", "on"); //fast highlighter scales better than standard one NON-NLS
|
||||
q.setParam("hl.tag.pre", "«"); //makes sense for FastVectorHighlighter only NON-NLS
|
||||
q.setParam("hl.tag.post", "«"); //makes sense for FastVectorHighlighter only NON-NLS
|
||||
q.setParam("hl.fragListBuilder", "simple"); //makes sense for FastVectorHighlighter only NON-NLS
|
||||
configurwQueryForHighlighting(q);
|
||||
|
||||
//Solr bug if fragCharSize is smaller than Query string, StringIndexOutOfBoundsException is thrown.
|
||||
q.setParam("hl.fragCharSize", Integer.toString(queryStr.length())); //makes sense for FastVectorHighlighter only NON-NLS
|
||||
|
||||
//docs says makes sense for the original Highlighter only, but not really
|
||||
//analyze all content SLOW! consider lowering
|
||||
q.setParam("hl.maxAnalyzedChars", Server.HL_ANALYZE_CHARS_UNLIMITED); //NON-NLS
|
||||
Server solrServer = KeywordSearch.getServer();
|
||||
|
||||
try {
|
||||
QueryResponse response = solrServer.query(q, METHOD.POST);
|
||||
@ -446,42 +406,4 @@ class LuceneQuery implements KeywordSearchQuery {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public KeywordList getKeywordList() {
|
||||
return keywordList;
|
||||
}
|
||||
|
||||
/**
|
||||
* Compares SolrDocuments based on their ID's. Two SolrDocuments with
|
||||
* different chunk numbers are considered equal.
|
||||
*/
|
||||
static class SolrDocumentComparatorIgnoresChunkId implements Comparator<SolrDocument> {
|
||||
|
||||
@Override
|
||||
public int compare(SolrDocument left, SolrDocument right) {
|
||||
// ID is in the form of ObjectId_Chunk
|
||||
|
||||
final String idName = Server.Schema.ID.toString();
|
||||
|
||||
// get object id of left doc
|
||||
String leftID = left.getFieldValue(idName).toString();
|
||||
int index = leftID.indexOf(Server.CHUNK_ID_SEPARATOR);
|
||||
if (index != -1) {
|
||||
leftID = leftID.substring(0, index);
|
||||
}
|
||||
|
||||
// get object id of right doc
|
||||
String rightID = right.getFieldValue(idName).toString();
|
||||
index = rightID.indexOf(Server.CHUNK_ID_SEPARATOR);
|
||||
if (index != -1) {
|
||||
rightID = rightID.substring(0, index);
|
||||
}
|
||||
|
||||
Long leftLong = new Long(leftID);
|
||||
Long rightLong = new Long(rightID);
|
||||
return leftLong.compareTo(rightLong);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -50,12 +50,14 @@ import org.netbeans.jemmy.operators.JListOperator;
|
||||
import org.netbeans.jemmy.operators.JTabbedPaneOperator;
|
||||
import org.netbeans.jemmy.operators.JTableOperator;
|
||||
import org.netbeans.jemmy.operators.JTextFieldOperator;
|
||||
import org.netbeans.jemmy.operators.JToggleButtonOperator;
|
||||
import org.sleuthkit.autopsy.ingest.IngestManager;
|
||||
|
||||
public class AutopsyTestCases {
|
||||
|
||||
private static final Logger logger = Logger.getLogger(AutopsyTestCases.class.getName());
|
||||
private long start;
|
||||
|
||||
/**
|
||||
* This method is used to escape file/directory path. Example:
|
||||
* \\NetworkLocation\foo\bar get escaped to \\\\NetworkLocation\foo\bar so
|
||||
@ -79,7 +81,7 @@ public class AutopsyTestCases {
|
||||
public AutopsyTestCases () {
|
||||
start = 0;
|
||||
}
|
||||
|
||||
|
||||
public void testNewCaseWizardOpen(String title) {
|
||||
logger.info("New Case");
|
||||
NbDialogOperator nbdo = new NbDialogOperator(title);
|
||||
@ -102,15 +104,19 @@ public class AutopsyTestCases {
|
||||
start = System.currentTimeMillis();
|
||||
wo.btFinish().clickMouse();
|
||||
}
|
||||
|
||||
|
||||
public void testStartAddImageFileDataSource() {
|
||||
logger.info("Starting Add Image process");
|
||||
WizardOperator wo = new WizardOperator("Add Data");
|
||||
//select the toggle button for Disk Image or VM File it will be the first button created and proceed to next panel
|
||||
JToggleButtonOperator jtbo = new JToggleButtonOperator(wo, 0);
|
||||
jtbo.clickMouse();
|
||||
wo.btNext().clickMouse();
|
||||
JTextFieldOperator jtfo0 = new JTextFieldOperator(wo, 0);
|
||||
String img_path = getEscapedPath(System.getProperty("img_path"));
|
||||
String imageDir = img_path;
|
||||
((JTextComponent) jtfo0.getSource()).setText(imageDir);
|
||||
JComboBoxOperator comboBoxOperator = new JComboBoxOperator(wo, 1);
|
||||
JComboBoxOperator comboBoxOperator = new JComboBoxOperator(wo, 0);
|
||||
comboBoxOperator.setSelectedItem("(GMT-5:00) America/New_York");
|
||||
wo.btNext().clickMouse();
|
||||
}
|
||||
@ -118,9 +124,10 @@ public class AutopsyTestCases {
|
||||
public void testStartAddLogicalFilesDataSource() {
|
||||
logger.info("Starting Add Logical Files process");
|
||||
WizardOperator wo = new WizardOperator("Add Data");
|
||||
JComboBoxOperator comboBoxOperator = new JComboBoxOperator(wo);
|
||||
// select the item indexed 2 (Logical Files) from the drop-down list.
|
||||
comboBoxOperator.selectItem(2);
|
||||
//select the toggle button for Logical Files it will be the third button created and proceed to next panel
|
||||
JToggleButtonOperator jtbo = new JToggleButtonOperator(wo, 2);
|
||||
jtbo.clickMouse();
|
||||
wo.btNext().clickMouse();
|
||||
JButtonOperator addButtonOperator = new JButtonOperator(wo, "Add");
|
||||
addButtonOperator.pushNoBlock();
|
||||
JFileChooserOperator fileChooserOperator = new JFileChooserOperator();
|
||||
|
@ -15,6 +15,7 @@ cluster.path=\
|
||||
disabled.modules=\
|
||||
org.apache.tools.ant.module,\
|
||||
org.netbeans.api.debugger.jpda,\
|
||||
org.netbeans.modules.debugger.jpda.jsui,\
|
||||
org.netbeans.api.java,\
|
||||
org.netbeans.api.maven,\
|
||||
org.netbeans.lib.nbjavac,\
|
||||
|
Loading…
x
Reference in New Issue
Block a user