From d88ddb9cd3b1a6bcb0450823c3013d3999e031f4 Mon Sep 17 00:00:00 2001 From: William Schaefer Date: Wed, 20 Sep 2017 10:25:10 -0400 Subject: [PATCH 1/6] 3067 changed type of known_status in CR from string to integer --- .../autopsy/centralrepository/datamodel/AbstractSqlEamDb.java | 4 ++-- .../centralrepository/datamodel/PostgresEamDbSettings.java | 4 ++-- .../centralrepository/datamodel/SqliteEamDbSettings.java | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/centralrepository/datamodel/AbstractSqlEamDb.java b/Core/src/org/sleuthkit/autopsy/centralrepository/datamodel/AbstractSqlEamDb.java index 1f5af1104c..fb9662a0ca 100644 --- a/Core/src/org/sleuthkit/autopsy/centralrepository/datamodel/AbstractSqlEamDb.java +++ b/Core/src/org/sleuthkit/autopsy/centralrepository/datamodel/AbstractSqlEamDb.java @@ -1948,7 +1948,7 @@ public abstract class AbstractSqlEamDb implements EamDb { new EamDataSource(resultSet.getString("device_id"), resultSet.getString("name")), resultSet.getString("file_path"), resultSet.getString("comment"), - TskData.FileKnown.valueOf(resultSet.getString("known_status")), + TskData.FileKnown.valueOf(resultSet.getByte("known_status")), EamArtifactInstance.GlobalStatus.LOCAL ); @@ -1996,7 +1996,7 @@ public abstract class AbstractSqlEamDb implements EamDb { resultSet.getInt("id"), resultSet.getInt("reference_set_id"), resultSet.getString("value"), - TskData.FileKnown.valueOf(resultSet.getString("known_status")), + TskData.FileKnown.valueOf(resultSet.getByte("known_status")), resultSet.getString("comment") ); diff --git a/Core/src/org/sleuthkit/autopsy/centralrepository/datamodel/PostgresEamDbSettings.java b/Core/src/org/sleuthkit/autopsy/centralrepository/datamodel/PostgresEamDbSettings.java index e35ba6b026..81a1aadd5e 100755 --- a/Core/src/org/sleuthkit/autopsy/centralrepository/datamodel/PostgresEamDbSettings.java +++ b/Core/src/org/sleuthkit/autopsy/centralrepository/datamodel/PostgresEamDbSettings.java @@ -380,7 +380,7 @@ public final class PostgresEamDbSettings { createReferenceTypesTableTemplate.append("id SERIAL PRIMARY KEY,"); createReferenceTypesTableTemplate.append("reference_set_id integer,"); createReferenceTypesTableTemplate.append("value text NOT NULL,"); - createReferenceTypesTableTemplate.append("known_status text NOT NULL,"); + createReferenceTypesTableTemplate.append("known_status integer NOT NULL,"); createReferenceTypesTableTemplate.append("comment text,"); createReferenceTypesTableTemplate.append("CONSTRAINT %s_multi_unique UNIQUE (reference_set_id, value),"); createReferenceTypesTableTemplate.append("foreign key (reference_set_id) references reference_sets(id) ON UPDATE SET NULL ON DELETE SET NULL"); @@ -408,7 +408,7 @@ public final class PostgresEamDbSettings { createArtifactInstancesTableTemplate.append("data_source_id integer,"); createArtifactInstancesTableTemplate.append("value text NOT NULL,"); createArtifactInstancesTableTemplate.append("file_path text NOT NULL,"); - createArtifactInstancesTableTemplate.append("known_status text NOT NULL,"); + createArtifactInstancesTableTemplate.append("known_status integer NOT NULL,"); createArtifactInstancesTableTemplate.append("comment text,"); createArtifactInstancesTableTemplate.append("CONSTRAINT %s_multi_unique_ UNIQUE (case_id, data_source_id, value, file_path),"); createArtifactInstancesTableTemplate.append("foreign key (case_id) references cases(id) ON UPDATE SET NULL ON DELETE SET NULL,"); diff --git a/Core/src/org/sleuthkit/autopsy/centralrepository/datamodel/SqliteEamDbSettings.java b/Core/src/org/sleuthkit/autopsy/centralrepository/datamodel/SqliteEamDbSettings.java index bfff0dc778..ca3dec0c33 100755 --- a/Core/src/org/sleuthkit/autopsy/centralrepository/datamodel/SqliteEamDbSettings.java +++ b/Core/src/org/sleuthkit/autopsy/centralrepository/datamodel/SqliteEamDbSettings.java @@ -322,7 +322,7 @@ public final class SqliteEamDbSettings { createReferenceTypesTableTemplate.append("id integer primary key autoincrement NOT NULL,"); createReferenceTypesTableTemplate.append("reference_set_id integer,"); createReferenceTypesTableTemplate.append("value text NOT NULL,"); - createReferenceTypesTableTemplate.append("known_status text NOT NULL,"); + createReferenceTypesTableTemplate.append("known_status integer NOT NULL,"); createReferenceTypesTableTemplate.append("comment text,"); createReferenceTypesTableTemplate.append("CONSTRAINT %s_multi_unique UNIQUE(reference_set_id, value) ON CONFLICT IGNORE,"); createReferenceTypesTableTemplate.append("foreign key (reference_set_id) references reference_sets(id) ON UPDATE SET NULL ON DELETE SET NULL"); @@ -350,7 +350,7 @@ public final class SqliteEamDbSettings { createArtifactInstancesTableTemplate.append("data_source_id integer,"); createArtifactInstancesTableTemplate.append("value text NOT NULL,"); createArtifactInstancesTableTemplate.append("file_path text NOT NULL,"); - createArtifactInstancesTableTemplate.append("known_status text NOT NULL,"); + createArtifactInstancesTableTemplate.append("known_status integer NOT NULL,"); createArtifactInstancesTableTemplate.append("comment text,"); createArtifactInstancesTableTemplate.append("CONSTRAINT %s_multi_unique UNIQUE(case_id, data_source_id, value, file_path) ON CONFLICT IGNORE,"); createArtifactInstancesTableTemplate.append("foreign key (case_id) references cases(id) ON UPDATE SET NULL ON DELETE SET NULL,"); From ff2f878572ba7180051c011be00d434289c71b43 Mon Sep 17 00:00:00 2001 From: William Schaefer Date: Wed, 20 Sep 2017 13:34:07 -0400 Subject: [PATCH 2/6] 3067 additional changes to support known_status being integer for postgres --- .../datamodel/AbstractSqlEamDb.java | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/centralrepository/datamodel/AbstractSqlEamDb.java b/Core/src/org/sleuthkit/autopsy/centralrepository/datamodel/AbstractSqlEamDb.java index fb9662a0ca..39c2ec2eb6 100644 --- a/Core/src/org/sleuthkit/autopsy/centralrepository/datamodel/AbstractSqlEamDb.java +++ b/Core/src/org/sleuthkit/autopsy/centralrepository/datamodel/AbstractSqlEamDb.java @@ -570,7 +570,7 @@ public abstract class AbstractSqlEamDb implements EamDb { preparedStatement.setString(2, eamInstance.getEamDataSource().getDeviceID()); preparedStatement.setString(3, eamArtifact.getCorrelationValue()); preparedStatement.setString(4, eamInstance.getFilePath()); - preparedStatement.setString(5, eamInstance.getKnownStatus().name()); + preparedStatement.setByte(5, eamInstance.getKnownStatus().getFileKnownValue()); if ("".equals(eamInstance.getComment())) { preparedStatement.setNull(6, Types.INTEGER); } else { @@ -957,7 +957,7 @@ public abstract class AbstractSqlEamDb implements EamDb { bulkPs.setString(2, eamInstance.getEamDataSource().getDeviceID()); bulkPs.setString(3, eamArtifact.getCorrelationValue()); bulkPs.setString(4, eamInstance.getFilePath()); - bulkPs.setString(5, eamInstance.getKnownStatus().name()); + bulkPs.setByte(5, eamInstance.getKnownStatus().getFileKnownValue()); if ("".equals(eamInstance.getComment())) { bulkPs.setNull(6, Types.INTEGER); } else { @@ -1109,7 +1109,7 @@ public abstract class AbstractSqlEamDb implements EamDb { int instance_id = resultSet.getInt("id"); preparedUpdate = conn.prepareStatement(sqlUpdate.toString()); - preparedUpdate.setString(1, knownStatus.name()); + preparedUpdate.setByte(1, knownStatus.getFileKnownValue()); // NOTE: if the user tags the same instance as BAD multiple times, // the comment from the most recent tagging is the one that will // prevail in the DB. @@ -1184,7 +1184,7 @@ public abstract class AbstractSqlEamDb implements EamDb { try { preparedStatement = conn.prepareStatement(sql.toString()); preparedStatement.setString(1, value); - preparedStatement.setString(2, TskData.FileKnown.BAD.name()); + preparedStatement.setByte(2, TskData.FileKnown.BAD.getFileKnownValue()); resultSet = preparedStatement.executeQuery(); while (resultSet.next()) { artifactInstance = getEamArtifactInstanceFromResultSet(resultSet); @@ -1226,7 +1226,7 @@ public abstract class AbstractSqlEamDb implements EamDb { try { preparedStatement = conn.prepareStatement(sql.toString()); preparedStatement.setString(1, value); - preparedStatement.setString(2, TskData.FileKnown.BAD.name()); + preparedStatement.setByte(2, TskData.FileKnown.BAD.getFileKnownValue()); resultSet = preparedStatement.executeQuery(); resultSet.next(); badInstances = resultSet.getLong(1); @@ -1277,7 +1277,7 @@ public abstract class AbstractSqlEamDb implements EamDb { try { preparedStatement = conn.prepareStatement(sql.toString()); preparedStatement.setString(1, value); - preparedStatement.setString(2, TskData.FileKnown.BAD.name()); + preparedStatement.setByte(2, TskData.FileKnown.BAD.getFileKnownValue()); resultSet = preparedStatement.executeQuery(); while (resultSet.next()) { caseNames.add(resultSet.getString("case_name")); @@ -1319,7 +1319,7 @@ public abstract class AbstractSqlEamDb implements EamDb { try { preparedStatement = conn.prepareStatement(String.format(sql, EamDbUtil.correlationTypeToReferenceTableName(aType))); preparedStatement.setString(1, value); - preparedStatement.setString(2, TskData.FileKnown.BAD.name()); + preparedStatement.setByte(2, TskData.FileKnown.BAD.getFileKnownValue()); resultSet = preparedStatement.executeQuery(); resultSet.next(); badInstances = resultSet.getLong(1); @@ -1532,7 +1532,7 @@ public abstract class AbstractSqlEamDb implements EamDb { preparedStatement = conn.prepareStatement(String.format(sql, EamDbUtil.correlationTypeToReferenceTableName(correlationType))); preparedStatement.setInt(1, eamGlobalFileInstance.getGlobalSetID()); preparedStatement.setString(2, eamGlobalFileInstance.getMD5Hash()); - preparedStatement.setString(3, eamGlobalFileInstance.getKnownStatus().name()); + preparedStatement.setByte(3, eamGlobalFileInstance.getKnownStatus().getFileKnownValue()); preparedStatement.setString(4, eamGlobalFileInstance.getComment()); preparedStatement.executeUpdate(); } catch (SQLException ex) { @@ -1565,7 +1565,7 @@ public abstract class AbstractSqlEamDb implements EamDb { for (EamGlobalFileInstance globalInstance : globalInstances) { bulkPs.setInt(1, globalInstance.getGlobalSetID()); bulkPs.setString(2, globalInstance.getMD5Hash()); - bulkPs.setString(3, globalInstance.getKnownStatus().name()); + bulkPs.setByte(3, globalInstance.getKnownStatus().getFileKnownValue()); bulkPs.setString(4, globalInstance.getComment()); bulkPs.addBatch(); } From 50b57a98867f05238954babec0e8ee39947be8a4 Mon Sep 17 00:00:00 2001 From: millmanorama Date: Thu, 21 Sep 2017 20:45:51 +0200 Subject: [PATCH 3/6] add the @RetainLocation("editor") annotation to DataResultTopComponent; some other minor cleanup --- .../DataResultTopComponent.java | 24 ++++++++----------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultTopComponent.java b/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultTopComponent.java index 702c36e212..e511112536 100755 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultTopComponent.java +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultTopComponent.java @@ -21,18 +21,19 @@ package org.sleuthkit.autopsy.corecomponents; import java.util.ArrayList; import java.util.Collections; import java.util.List; -import org.sleuthkit.autopsy.corecomponentinterfaces.DataResult; import java.util.logging.Level; import javax.swing.JComponent; import org.openide.explorer.ExplorerManager; import org.openide.explorer.ExplorerUtils; -import org.openide.util.NbBundle; -import org.openide.windows.TopComponent; import org.openide.nodes.Node; +import org.openide.util.NbBundle; import org.openide.windows.Mode; +import org.openide.windows.RetainLocation; +import org.openide.windows.TopComponent; import org.openide.windows.WindowManager; import org.sleuthkit.autopsy.actions.AddBookmarkTagAction; import org.sleuthkit.autopsy.casemodule.Case; +import org.sleuthkit.autopsy.corecomponentinterfaces.DataResult; import org.sleuthkit.autopsy.corecomponentinterfaces.DataResultViewer; import org.sleuthkit.autopsy.coreutils.Logger; @@ -55,11 +56,12 @@ import org.sleuthkit.autopsy.coreutils.Logger; * Implements DataResult interface by delegating to the encapsulated * DataResultPanel. */ +@RetainLocation("editor") public class DataResultTopComponent extends TopComponent implements DataResult, ExplorerManager.Provider { private static final Logger logger = Logger.getLogger(DataResultTopComponent.class.getName()); - private ExplorerManager explorerManager = new ExplorerManager(); - private DataResultPanel dataResultPanel; //embedded component with all the logic + private final ExplorerManager explorerManager = new ExplorerManager(); + private final DataResultPanel dataResultPanel; //embedded component with all the logic private boolean isMain; private String customModeName; @@ -86,7 +88,7 @@ public class DataResultTopComponent extends TopComponent implements DataResult, * * @param name unique name of the data result window, also * used as title - * @param customModeName custom mode to dock into + * @param mode custom mode to dock into * @param customContentViewer custom content viewer to send selection events * to */ @@ -255,16 +257,10 @@ public class DataResultTopComponent extends TopComponent implements DataResult, if (customModeName != null) { Mode mode = WindowManager.getDefault().findMode(customModeName); if (mode != null) { - StringBuilder message = new StringBuilder("Found custom mode, setting: "); //NON-NLS - message.append(customModeName); - logger.log(Level.INFO, message.toString()); + logger.log(Level.INFO, "Found custom mode, setting: {0}", customModeName);//NON-NLS mode.dockInto(this); - } else { - StringBuilder message = new StringBuilder("Could not find mode: "); //NON-NLS - message.append(customModeName); - message.append(", will dock into the default one"); //NON-NLS - logger.log(Level.WARNING, message.toString()); + logger.log(Level.WARNING, "Could not find mode: {0}, will dock into the default one", customModeName);//NON-NLS } } } From cd92352db1325a217928ff0e0f140e11835c937f Mon Sep 17 00:00:00 2001 From: Richard Cordovano Date: Thu, 21 Sep 2017 17:46:37 -0400 Subject: [PATCH 4/6] Revert "Add missing snapshot deep copy to auto ingest monitor" This reverts commit 3049f60e0e74f508cfa4957783a96c028afc23a5. --- .../autopsy/experimental/autoingest/AutoIngestMonitor.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/AutoIngestMonitor.java b/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/AutoIngestMonitor.java index 064c4a587c..1469553496 100755 --- a/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/AutoIngestMonitor.java +++ b/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/AutoIngestMonitor.java @@ -221,7 +221,7 @@ public final class AutoIngestMonitor extends Observable implements PropertyChang JobsSnapshot refreshJobsSnapshot() { synchronized (jobsLock) { jobsSnapshot = queryCoordinationService(); - return jobsSnapshot.deepCopy(); + return jobsSnapshot; } } From 5ba6cc2e3ca77171cad77d5f0b92779c47d0e456 Mon Sep 17 00:00:00 2001 From: Richard Cordovano Date: Thu, 21 Sep 2017 17:47:10 -0400 Subject: [PATCH 5/6] Revert "Add deep copying of auto ingest monitor snapshots" This reverts commit 2abb7557032f079c284a6ced62cecc23a24d2eff. --- .../autoingest/AutoIngestJob.java | 47 ------------------- .../autoingest/AutoIngestMonitor.java | 33 +++---------- 2 files changed, 7 insertions(+), 73 deletions(-) diff --git a/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/AutoIngestJob.java b/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/AutoIngestJob.java index d8a46c00d5..b43b00d3fd 100755 --- a/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/AutoIngestJob.java +++ b/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/AutoIngestJob.java @@ -148,37 +148,6 @@ public final class AutoIngestJob implements Comparable, Serializa this.stageDetails = this.getProcessingStageDetails(); } - /** - * Copy constructs an automated ingest job. - * - * @param job The job to be copied. - */ - AutoIngestJob(AutoIngestJob job) { - /* - * Version 0 fields. - */ - this.manifest = job.getManifest(); // Manifest is immutable. - this.nodeName = job.getProcessingHostName(); - this.caseDirectoryPath = job.getCaseDirectoryPath().toString(); - this.priority = job.getPriority(); - this.stage = job.getProcessingStage(); - this.stageStartDate = job.getProcessingStageStartDate(); - this.dataSourceProcessor = job.getDataSourceProcessor(); - this.ingestJob = job.getIngestJob(); - this.cancelled = job.isCanceled(); - this.completed = job.isCompleted(); - this.completedDate = new Date(job.getCompletedDate().getTime()); - this.errorsOccurred = job.getErrorsOccurred(); - - /* - * Version 1 fields. - */ - this.version = job.getVersion(); - this.processingStatus = job.getProcessingStatus(); - this.numberOfCrashes = job.getNumberOfCrashes(); - this.stageDetails = job.getProcessingStageDetails(); // StageDetails is immutable. - } - /** * Gets the job manifest. * @@ -323,13 +292,6 @@ public final class AutoIngestJob implements Comparable, Serializa this.dataSourceProcessor = dataSourceProcessor; } - /** - * Gets the data source processor for the job. - */ - private DataSourceProcessor getDataSourceProcessor() { - return this.dataSourceProcessor; - } - /** * Sets the ingest job for the auto ingest job. Used for obtaining * processing stage details, cancelling the currently running data source @@ -536,15 +498,6 @@ public final class AutoIngestJob implements Comparable, Serializa return -this.getManifest().getDateFileCreated().compareTo(otherJob.getManifest().getDateFileCreated()); } - /** - * gest the version number of the job data. - * - * @return The version number. - */ - private int getVersion() { - return this.version; - } - /** * Comparator that supports doing a descending sort of jobs based on job * completion date. diff --git a/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/AutoIngestMonitor.java b/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/AutoIngestMonitor.java index 1469553496..0c0b3e3823 100755 --- a/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/AutoIngestMonitor.java +++ b/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/AutoIngestMonitor.java @@ -142,7 +142,7 @@ public final class AutoIngestMonitor extends Observable implements PropertyChang jobsSnapshot.removePendingJob(event.getJob()); jobsSnapshot.addOrReplaceRunningJob(event.getJob()); setChanged(); - notifyObservers(jobsSnapshot.deepCopy()); + notifyObservers(jobsSnapshot); } } @@ -160,7 +160,7 @@ public final class AutoIngestMonitor extends Observable implements PropertyChang jobsSnapshot.removePendingJob(job); jobsSnapshot.addOrReplaceRunningJob(job); setChanged(); - notifyObservers(jobsSnapshot.deepCopy()); + notifyObservers(jobsSnapshot); } } @@ -176,7 +176,7 @@ public final class AutoIngestMonitor extends Observable implements PropertyChang jobsSnapshot.removeRunningJob(job); jobsSnapshot.addOrReplaceCompletedJob(job); setChanged(); - notifyObservers(jobsSnapshot.deepCopy()); + notifyObservers(jobsSnapshot); } } @@ -207,7 +207,7 @@ public final class AutoIngestMonitor extends Observable implements PropertyChang */ JobsSnapshot getJobsSnapshot() { synchronized (jobsLock) { - return jobsSnapshot.deepCopy(); + return jobsSnapshot; } } @@ -323,7 +323,7 @@ public final class AutoIngestMonitor extends Observable implements PropertyChang }).start(); } - return jobsSnapshot.deepCopy(); + return jobsSnapshot; } } @@ -345,7 +345,7 @@ public final class AutoIngestMonitor extends Observable implements PropertyChang synchronized (jobsLock) { jobsSnapshot = queryCoordinationService(); setChanged(); - notifyObservers(jobsSnapshot.deepCopy()); + notifyObservers(jobsSnapshot); } } } @@ -468,27 +468,8 @@ public final class AutoIngestMonitor extends Observable implements PropertyChang jobSet.add(job); } - /** - * Creates a deep copy of a jobs snapshot. - * - * @return The deep copy. - */ - private JobsSnapshot deepCopy() { - JobsSnapshot copy = new JobsSnapshot(); - this.pendingJobs.forEach((job) -> { - this.addOrReplacePendingJob(new AutoIngestJob(job)); - }); - this.runningJobs.forEach((job) -> { - this.addOrReplacePendingJob(new AutoIngestJob(job)); - }); - this.completedJobs.forEach((job) -> { - this.addOrReplacePendingJob(new AutoIngestJob(job)); - }); - return copy; - } - } - + /** * Exception type thrown when there is an error completing an auto ingest * monitor operation. From b0845d62418fbbc0722776a3fa7fe45f9e29dd0c Mon Sep 17 00:00:00 2001 From: "U-BASIS\\dgrove" Date: Fri, 22 Sep 2017 14:10:44 -0400 Subject: [PATCH 6/6] Added copyright headers. --- .../datamodel/EamDbUtil.java | 19 ++++++++++++++++--- .../optionspanel/EamDbSettingsDialog.java | 19 ++++++++++++++++--- 2 files changed, 32 insertions(+), 6 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/centralrepository/datamodel/EamDbUtil.java b/Core/src/org/sleuthkit/autopsy/centralrepository/datamodel/EamDbUtil.java index 489f4cb12e..dc43b8ba51 100755 --- a/Core/src/org/sleuthkit/autopsy/centralrepository/datamodel/EamDbUtil.java +++ b/Core/src/org/sleuthkit/autopsy/centralrepository/datamodel/EamDbUtil.java @@ -1,7 +1,20 @@ /* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. + * Central Repository + * + * Copyright 2015-2017 Basis Technology Corp. + * Contact: carrier sleuthkit org + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ package org.sleuthkit.autopsy.centralrepository.datamodel; diff --git a/Core/src/org/sleuthkit/autopsy/centralrepository/optionspanel/EamDbSettingsDialog.java b/Core/src/org/sleuthkit/autopsy/centralrepository/optionspanel/EamDbSettingsDialog.java index f6abcf896d..28b9217bc2 100755 --- a/Core/src/org/sleuthkit/autopsy/centralrepository/optionspanel/EamDbSettingsDialog.java +++ b/Core/src/org/sleuthkit/autopsy/centralrepository/optionspanel/EamDbSettingsDialog.java @@ -1,7 +1,20 @@ /* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. + * Central Repository + * + * Copyright 2015-2017 Basis Technology Corp. + * Contact: carrier sleuthkit org + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ package org.sleuthkit.autopsy.centralrepository.optionspanel;