diff --git a/Core/nbproject/project.xml b/Core/nbproject/project.xml
index b2e17a7e32..743b58e965 100644
--- a/Core/nbproject/project.xml
+++ b/Core/nbproject/project.xml
@@ -346,6 +346,7 @@
org.sleuthkit.autopsy.texttranslation
org.sleuthkit.datamodel
org.sleuthkit.datamodel.blackboardutils
+ org.sleuthkit.datamodel.blackboardutils.attributes
ext/commons-lang3-3.8.1.jar
diff --git a/Core/src/org/sleuthkit/autopsy/communications/relationships/AccountSummary.java b/Core/src/org/sleuthkit/autopsy/communications/relationships/AccountSummary.java
index 5c14125d87..0888a105a3 100755
--- a/Core/src/org/sleuthkit/autopsy/communications/relationships/AccountSummary.java
+++ b/Core/src/org/sleuthkit/autopsy/communications/relationships/AccountSummary.java
@@ -1,7 +1,7 @@
/*
* Autopsy Forensic Browser
*
- * Copyright 2019 Basis Technology Corp.
+ * Copyright 2019-2020 Basis Technology Corp.
* Contact: carrier sleuthkit org
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -31,8 +31,8 @@ import org.sleuthkit.datamodel.BlackboardArtifact;
import org.sleuthkit.datamodel.BlackboardAttribute;
import org.sleuthkit.datamodel.Content;
import org.sleuthkit.datamodel.TskCoreException;
-import org.sleuthkit.datamodel.blackboardutils.FileAttachment;
-import org.sleuthkit.datamodel.blackboardutils.MessageAttachments;
+import org.sleuthkit.datamodel.blackboardutils.attributes.MessageAttachments.FileAttachment;
+import org.sleuthkit.datamodel.blackboardutils.attributes.MessageAttachments;
/**
*
diff --git a/Core/src/org/sleuthkit/autopsy/communications/relationships/AttachmentThumbnailsChildren.java b/Core/src/org/sleuthkit/autopsy/communications/relationships/AttachmentThumbnailsChildren.java
index 816eb05d75..74ee109b6f 100755
--- a/Core/src/org/sleuthkit/autopsy/communications/relationships/AttachmentThumbnailsChildren.java
+++ b/Core/src/org/sleuthkit/autopsy/communications/relationships/AttachmentThumbnailsChildren.java
@@ -1,7 +1,7 @@
/*
* Autopsy Forensic Browser
*
- * Copyright 2019 Basis Technology Corp.
+ * Copyright 2019-2020 Basis Technology Corp.
* Contact: carrier sleuthkit org
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -38,8 +38,8 @@ import org.sleuthkit.datamodel.BlackboardArtifact;
import org.sleuthkit.datamodel.BlackboardAttribute;
import org.sleuthkit.datamodel.Content;
import org.sleuthkit.datamodel.TskCoreException;
-import org.sleuthkit.datamodel.blackboardutils.FileAttachment;
-import org.sleuthkit.datamodel.blackboardutils.MessageAttachments;
+import org.sleuthkit.datamodel.blackboardutils.attributes.MessageAttachments.FileAttachment;
+import org.sleuthkit.datamodel.blackboardutils.attributes.MessageAttachments;
/**
* Factory for creating thumbnail children nodes.
diff --git a/Core/src/org/sleuthkit/autopsy/communications/relationships/MessageNode.java b/Core/src/org/sleuthkit/autopsy/communications/relationships/MessageNode.java
index aad258ed0f..038452dcd7 100755
--- a/Core/src/org/sleuthkit/autopsy/communications/relationships/MessageNode.java
+++ b/Core/src/org/sleuthkit/autopsy/communications/relationships/MessageNode.java
@@ -1,7 +1,7 @@
/*
* Autopsy Forensic Browser
*
- * Copyright 2019 Basis Technology Corp.
+ * Copyright 2019-2020 Basis Technology Corp.
* Contact: carrier sleuthkit org
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -40,7 +40,7 @@ import org.sleuthkit.autopsy.datamodel.BlackboardArtifactNode;
import static org.sleuthkit.datamodel.BlackboardArtifact.ARTIFACT_TYPE.TSK_EMAIL_MSG;
import static org.sleuthkit.datamodel.BlackboardArtifact.ARTIFACT_TYPE.TSK_MESSAGE;
import org.sleuthkit.datamodel.BlackboardAttribute;
-import org.sleuthkit.datamodel.blackboardutils.MessageAttachments;
+import org.sleuthkit.datamodel.blackboardutils.attributes.MessageAttachments;
/**
* Wraps a BlackboardArtifact as an AbstractNode for use in an OutlookView
diff --git a/Core/src/org/sleuthkit/autopsy/contentviewers/MessageContentViewer.java b/Core/src/org/sleuthkit/autopsy/contentviewers/MessageContentViewer.java
index d93a46ab0a..cadd311f70 100644
--- a/Core/src/org/sleuthkit/autopsy/contentviewers/MessageContentViewer.java
+++ b/Core/src/org/sleuthkit/autopsy/contentviewers/MessageContentViewer.java
@@ -1,7 +1,7 @@
/*
* Autopsy Forensic Browser
*
- * Copyright 2017-2019 Basis Technology Corp.
+ * Copyright 2017-2020 Basis Technology Corp.
* Contact: carrier sleuthkit org
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -72,10 +72,10 @@ import static org.sleuthkit.datamodel.BlackboardAttribute.ATTRIBUTE_TYPE.TSK_TEX
import org.sleuthkit.datamodel.Content;
import org.sleuthkit.datamodel.SleuthkitCase;
import org.sleuthkit.datamodel.TskCoreException;
-import org.sleuthkit.datamodel.blackboardutils.FileAttachment;
-import org.sleuthkit.datamodel.blackboardutils.MessageAttachments;
-import org.sleuthkit.datamodel.blackboardutils.Attachment;
-import org.sleuthkit.datamodel.blackboardutils.URLAttachment;
+import org.sleuthkit.datamodel.blackboardutils.attributes.MessageAttachments;
+import org.sleuthkit.datamodel.blackboardutils.attributes.MessageAttachments.FileAttachment;
+import org.sleuthkit.datamodel.blackboardutils.attributes.MessageAttachments.Attachment;
+import org.sleuthkit.datamodel.blackboardutils.attributes.MessageAttachments.URLAttachment;
/**
* Shows SMS/MMS/EMail messages
diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/AttachmentNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/AttachmentNode.java
index c095f48fee..e2161a14df 100644
--- a/Core/src/org/sleuthkit/autopsy/datamodel/AttachmentNode.java
+++ b/Core/src/org/sleuthkit/autopsy/datamodel/AttachmentNode.java
@@ -1,7 +1,7 @@
/*
* Autopsy Forensic Browser
*
- * Copyright 2017-2019 Basis Technology Corp.
+ * Copyright 2017-2020 Basis Technology Corp.
* Contact: carrier sleuthkit org
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -49,9 +49,9 @@ import org.sleuthkit.autopsy.directorytree.ViewContextAction;
import org.sleuthkit.autopsy.timeline.actions.ViewFileInTimelineAction;
import org.sleuthkit.datamodel.AbstractFile;
import org.sleuthkit.datamodel.TskException;
-import org.sleuthkit.datamodel.blackboardutils.Attachment;
-import org.sleuthkit.datamodel.blackboardutils.FileAttachment;
-import org.sleuthkit.datamodel.blackboardutils.URLAttachment;
+import org.sleuthkit.datamodel.blackboardutils.attributes.MessageAttachments.Attachment;
+import org.sleuthkit.datamodel.blackboardutils.attributes.MessageAttachments.FileAttachment;
+import org.sleuthkit.datamodel.blackboardutils.attributes.MessageAttachments.URLAttachment;
/**
* Node for a message attachment.
diff --git a/InternalPythonModules/android/fbmessenger.py b/InternalPythonModules/android/fbmessenger.py
index e3514e2b17..86dc9cd474 100644
--- a/InternalPythonModules/android/fbmessenger.py
+++ b/InternalPythonModules/android/fbmessenger.py
@@ -1,7 +1,7 @@
"""
Autopsy Forensic Browser
-Copyright 2019 Basis Technology Corp.
+Copyright 2019-2020 Basis Technology Corp.
Contact: carrier sleuthkit org
Licensed under the Apache License, Version 2.0 (the "License");
@@ -48,9 +48,9 @@ from org.sleuthkit.datamodel import TskCoreException
from org.sleuthkit.datamodel.Blackboard import BlackboardException
from org.sleuthkit.datamodel import Account
from org.sleuthkit.datamodel.blackboardutils import CommunicationArtifactsHelper
-from org.sleuthkit.datamodel.blackboardutils import MessageAttachments
-from org.sleuthkit.datamodel.blackboardutils import URLAttachment
-from org.sleuthkit.datamodel.blackboardutils import FileAttachment
+from org.sleuthkit.datamodel.blackboardutils.attributes import MessageAttachments
+from org.sleuthkit.datamodel.blackboardutils.attributes.MessageAttachments import FileAttachment
+from org.sleuthkit.datamodel.blackboardutils.attributes.MessageAttachments import URLAttachment
from org.sleuthkit.datamodel.blackboardutils.CommunicationArtifactsHelper import MessageReadStatus
from org.sleuthkit.datamodel.blackboardutils.CommunicationArtifactsHelper import CommunicationDirection
from org.sleuthkit.datamodel.blackboardutils.CommunicationArtifactsHelper import CallMediaType
diff --git a/InternalPythonModules/android/imo.py b/InternalPythonModules/android/imo.py
index 5a1bd89778..6898e3693f 100644
--- a/InternalPythonModules/android/imo.py
+++ b/InternalPythonModules/android/imo.py
@@ -1,7 +1,7 @@
"""
Autopsy Forensic Browser
-Copyright 2019 Basis Technology Corp.
+Copyright 2019-2020 Basis Technology Corp.
Contact: carrier sleuthkit org
Licensed under the Apache License, Version 2.0 (the "License");
@@ -43,9 +43,9 @@ from org.sleuthkit.datamodel import Content
from org.sleuthkit.datamodel import TskCoreException
from org.sleuthkit.datamodel.Blackboard import BlackboardException
from org.sleuthkit.datamodel import Account
-from org.sleuthkit.datamodel.blackboardutils import FileAttachment
-from org.sleuthkit.datamodel.blackboardutils import URLAttachment
-from org.sleuthkit.datamodel.blackboardutils import MessageAttachments
+from org.sleuthkit.datamodel.blackboardutils.attributes import MessageAttachments
+from org.sleuthkit.datamodel.blackboardutils.attributes.MessageAttachments import FileAttachment
+from org.sleuthkit.datamodel.blackboardutils.attributes.MessageAttachments import URLAttachment
from org.sleuthkit.datamodel.blackboardutils import CommunicationArtifactsHelper
from org.sleuthkit.datamodel.blackboardutils.CommunicationArtifactsHelper import MessageReadStatus
from org.sleuthkit.datamodel.blackboardutils.CommunicationArtifactsHelper import CommunicationDirection
diff --git a/InternalPythonModules/android/line.py b/InternalPythonModules/android/line.py
index 80e9a51b1d..7409f28945 100644
--- a/InternalPythonModules/android/line.py
+++ b/InternalPythonModules/android/line.py
@@ -1,7 +1,7 @@
"""
Autopsy Forensic Browser
-Copyright 2019 Basis Technology Corp.
+Copyright 2019-2020 Basis Technology Corp.
Contact: carrier sleuthkit org
Licensed under the Apache License, Version 2.0 (the "License");
@@ -43,8 +43,8 @@ from org.sleuthkit.datamodel.Blackboard import BlackboardException
from org.sleuthkit.autopsy.casemodule import NoCurrentCaseException
from org.sleuthkit.datamodel import Account
from org.sleuthkit.datamodel.blackboardutils import CommunicationArtifactsHelper
-from org.sleuthkit.datamodel.blackboardutils import FileAttachment
-from org.sleuthkit.datamodel.blackboardutils import MessageAttachments
+from org.sleuthkit.datamodel.blackboardutils.attributes import MessageAttachments
+from org.sleuthkit.datamodel.blackboardutils.attributes.MessageAttachments import FileAttachment
from org.sleuthkit.datamodel.blackboardutils.CommunicationArtifactsHelper import MessageReadStatus
from org.sleuthkit.datamodel.blackboardutils.CommunicationArtifactsHelper import CommunicationDirection
from TskContactsParser import TskContactsParser
@@ -439,4 +439,4 @@ class LineMessagesParser(TskMessagesParser):
return None
else:
return self.result_set.getString("attachement_local_uri")
-
\ No newline at end of file
+
diff --git a/InternalPythonModules/android/shareit.py b/InternalPythonModules/android/shareit.py
index c80dbaec10..dc9c549f23 100644
--- a/InternalPythonModules/android/shareit.py
+++ b/InternalPythonModules/android/shareit.py
@@ -1,7 +1,7 @@
"""
Autopsy Forensic Browser
-Copyright 2019 Basis Technology Corp.
+Copyright 2019-2020 Basis Technology Corp.
Contact: carrier sleuthkit org
Licensed under the Apache License, Version 2.0 (the "License");
@@ -43,8 +43,8 @@ from org.sleuthkit.datamodel import TskCoreException
from org.sleuthkit.datamodel.Blackboard import BlackboardException
from org.sleuthkit.datamodel import Account
from org.sleuthkit.datamodel.blackboardutils import CommunicationArtifactsHelper
-from org.sleuthkit.datamodel.blackboardutils import FileAttachment
-from org.sleuthkit.datamodel.blackboardutils import MessageAttachments
+from org.sleuthkit.datamodel.blackboardutils.attributes import MessageAttachments
+from org.sleuthkit.datamodel.blackboardutils.attributes.MessageAttachments import FileAttachment
from org.sleuthkit.datamodel.blackboardutils.CommunicationArtifactsHelper import MessageReadStatus
from org.sleuthkit.datamodel.blackboardutils.CommunicationArtifactsHelper import CommunicationDirection
diff --git a/InternalPythonModules/android/skype.py b/InternalPythonModules/android/skype.py
index 721fc92421..908a7da451 100644
--- a/InternalPythonModules/android/skype.py
+++ b/InternalPythonModules/android/skype.py
@@ -1,7 +1,7 @@
"""
Autopsy Forensic Browser
-Copyright 2019 Basis Technology Corp.
+Copyright 2019-2020 Basis Technology Corp.
Contact: carrier sleuthkit org
Licensed under the Apache License, Version 2.0 (the "License");
@@ -46,8 +46,8 @@ from org.sleuthkit.datamodel import Account
from org.sleuthkit.datamodel.blackboardutils import CommunicationArtifactsHelper
from org.sleuthkit.datamodel.blackboardutils.CommunicationArtifactsHelper import MessageReadStatus
from org.sleuthkit.datamodel.blackboardutils.CommunicationArtifactsHelper import CommunicationDirection
-from org.sleuthkit.datamodel.blackboardutils import FileAttachment
-from org.sleuthkit.datamodel.blackboardutils import MessageAttachments
+from org.sleuthkit.datamodel.blackboardutils.attributes import MessageAttachments
+from org.sleuthkit.datamodel.blackboardutils.attributes.MessageAttachments import FileAttachment
from TskMessagesParser import TskMessagesParser
from TskContactsParser import TskContactsParser
from TskCallLogsParser import TskCallLogsParser
diff --git a/InternalPythonModules/android/textnow.py b/InternalPythonModules/android/textnow.py
index 071cdcb137..49ab3325c2 100644
--- a/InternalPythonModules/android/textnow.py
+++ b/InternalPythonModules/android/textnow.py
@@ -1,7 +1,7 @@
"""
Autopsy Forensic Browser
-Copyright 2019 Basis Technology Corp.
+Copyright 2019-2020 Basis Technology Corp.
Contact: carrier sleuthkit org
Licensed under the Apache License, Version 2.0 (the "License");
@@ -44,8 +44,8 @@ from org.sleuthkit.datamodel.Blackboard import BlackboardException
from org.sleuthkit.autopsy.casemodule import NoCurrentCaseException
from org.sleuthkit.datamodel import Account
from org.sleuthkit.datamodel.blackboardutils import CommunicationArtifactsHelper
-from org.sleuthkit.datamodel.blackboardutils import FileAttachment
-from org.sleuthkit.datamodel.blackboardutils import MessageAttachments
+from org.sleuthkit.datamodel.blackboardutils.attributes import MessageAttachments
+from org.sleuthkit.datamodel.blackboardutils.attributes.MessageAttachments import FileAttachment
from org.sleuthkit.datamodel.blackboardutils.CommunicationArtifactsHelper import MessageReadStatus
from org.sleuthkit.datamodel.blackboardutils.CommunicationArtifactsHelper import CommunicationDirection
diff --git a/InternalPythonModules/android/viber.py b/InternalPythonModules/android/viber.py
index 4f4f8dd3f8..a5edef4ce9 100644
--- a/InternalPythonModules/android/viber.py
+++ b/InternalPythonModules/android/viber.py
@@ -1,7 +1,7 @@
"""
Autopsy Forensic Browser
-Copyright 2019 Basis Technology Corp.
+Copyright 2019-2020 Basis Technology Corp.
Contact: carrier sleuthkit org
Licensed under the Apache License, Version 2.0 (the "License");
@@ -43,8 +43,8 @@ from org.sleuthkit.datamodel.Blackboard import BlackboardException
from org.sleuthkit.autopsy.casemodule import NoCurrentCaseException
from org.sleuthkit.datamodel import Account
from org.sleuthkit.datamodel.blackboardutils import CommunicationArtifactsHelper
-from org.sleuthkit.datamodel.blackboardutils import FileAttachment
-from org.sleuthkit.datamodel.blackboardutils import MessageAttachments
+from org.sleuthkit.datamodel.blackboardutils.attributes import MessageAttachments
+from org.sleuthkit.datamodel.blackboardutils.attributes.MessageAttachments import FileAttachment
from org.sleuthkit.datamodel.blackboardutils.CommunicationArtifactsHelper import MessageReadStatus
from org.sleuthkit.datamodel.blackboardutils.CommunicationArtifactsHelper import CommunicationDirection
from TskMessagesParser import TskMessagesParser
diff --git a/InternalPythonModules/android/whatsapp.py b/InternalPythonModules/android/whatsapp.py
index a91c21375b..85d71983d2 100644
--- a/InternalPythonModules/android/whatsapp.py
+++ b/InternalPythonModules/android/whatsapp.py
@@ -1,7 +1,7 @@
"""
Autopsy Forensic Browser
-Copyright 2019 Basis Technology Corp.
+Copyright 2019-2020 Basis Technology Corp.
Contact: carrier sleuthkit org
Licensed under the Apache License, Version 2.0 (the "License");
@@ -45,9 +45,9 @@ from org.sleuthkit.datamodel import Account
from org.sleuthkit.datamodel.blackboardutils import CommunicationArtifactsHelper
from org.sleuthkit.datamodel.blackboardutils.CommunicationArtifactsHelper import MessageReadStatus
from org.sleuthkit.datamodel.blackboardutils.CommunicationArtifactsHelper import CommunicationDirection
-from org.sleuthkit.datamodel.blackboardutils import FileAttachment
-from org.sleuthkit.datamodel.blackboardutils import URLAttachment
-from org.sleuthkit.datamodel.blackboardutils import MessageAttachments
+from org.sleuthkit.datamodel.blackboardutils.attributes import MessageAttachments
+from org.sleuthkit.datamodel.blackboardutils.attributes.MessageAttachments import FileAttachment
+from org.sleuthkit.datamodel.blackboardutils.attributes.MessageAttachments import URLAttachment
from TskMessagesParser import TskMessagesParser
from TskContactsParser import TskContactsParser
from TskCallLogsParser import TskCallLogsParser
diff --git a/InternalPythonModules/android/xender.py b/InternalPythonModules/android/xender.py
index e8c2b3d74f..2ca86d2045 100644
--- a/InternalPythonModules/android/xender.py
+++ b/InternalPythonModules/android/xender.py
@@ -1,7 +1,7 @@
"""
Autopsy Forensic Browser
-Copyright 2019 Basis Technology Corp.
+Copyright 2019-2020 Basis Technology Corp.
Contact: carrier sleuthkit org
Licensed under the Apache License, Version 2.0 (the "License");
@@ -42,9 +42,9 @@ from org.sleuthkit.datamodel import Content
from org.sleuthkit.datamodel import TskCoreException
from org.sleuthkit.datamodel.Blackboard import BlackboardException
from org.sleuthkit.datamodel import Account
+from org.sleuthkit.datamodel.blackboardutils.attributes import MessageAttachments
+from org.sleuthkit.datamodel.blackboardutils.attributes.MessageAttachments import FileAttachment
from org.sleuthkit.datamodel.blackboardutils import CommunicationArtifactsHelper
-from org.sleuthkit.datamodel.blackboardutils import FileAttachment
-from org.sleuthkit.datamodel.blackboardutils import MessageAttachments
from org.sleuthkit.datamodel.blackboardutils.CommunicationArtifactsHelper import MessageReadStatus
from org.sleuthkit.datamodel.blackboardutils.CommunicationArtifactsHelper import CommunicationDirection
import traceback
diff --git a/InternalPythonModules/android/zapya.py b/InternalPythonModules/android/zapya.py
index 8843e772c7..2801b17b68 100644
--- a/InternalPythonModules/android/zapya.py
+++ b/InternalPythonModules/android/zapya.py
@@ -1,7 +1,7 @@
"""
Autopsy Forensic Browser
-Copyright 2019 Basis Technology Corp.
+Copyright 2019-2020 Basis Technology Corp.
Contact: carrier sleuthkit org
Licensed under the Apache License, Version 2.0 (the "License");
@@ -42,9 +42,9 @@ from org.sleuthkit.datamodel import Content
from org.sleuthkit.datamodel import TskCoreException
from org.sleuthkit.datamodel.Blackboard import BlackboardException
from org.sleuthkit.datamodel import Account
+from org.sleuthkit.datamodel.blackboardutils.attributes import MessageAttachments
+from org.sleuthkit.datamodel.blackboardutils.attributes.MessageAttachments import FileAttachment
from org.sleuthkit.datamodel.blackboardutils import CommunicationArtifactsHelper
-from org.sleuthkit.datamodel.blackboardutils import FileAttachment
-from org.sleuthkit.datamodel.blackboardutils import MessageAttachments
from org.sleuthkit.datamodel.blackboardutils.CommunicationArtifactsHelper import MessageReadStatus
from org.sleuthkit.datamodel.blackboardutils.CommunicationArtifactsHelper import CommunicationDirection
diff --git a/thunderbirdparser/src/org/sleuthkit/autopsy/thunderbirdparser/ThunderbirdMboxFileIngestModule.java b/thunderbirdparser/src/org/sleuthkit/autopsy/thunderbirdparser/ThunderbirdMboxFileIngestModule.java
index d69f2f6988..e9db7287e8 100644
--- a/thunderbirdparser/src/org/sleuthkit/autopsy/thunderbirdparser/ThunderbirdMboxFileIngestModule.java
+++ b/thunderbirdparser/src/org/sleuthkit/autopsy/thunderbirdparser/ThunderbirdMboxFileIngestModule.java
@@ -1,7 +1,7 @@
/*
* Autopsy Forensic Browser
*
- * Copyright 2011-2019 Basis Technology Corp.
+ * Copyright 2011-2020 Basis Technology Corp.
* Contact: carrier sleuthkit org
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -60,8 +60,8 @@ import org.sleuthkit.datamodel.TskData;
import org.sleuthkit.datamodel.TskDataException;
import org.sleuthkit.datamodel.TskException;
import org.sleuthkit.datamodel.blackboardutils.CommunicationArtifactsHelper;
-import org.sleuthkit.datamodel.blackboardutils.FileAttachment;
-import org.sleuthkit.datamodel.blackboardutils.MessageAttachments;
+import org.sleuthkit.datamodel.blackboardutils.attributes.MessageAttachments;
+import org.sleuthkit.datamodel.blackboardutils.attributes.MessageAttachments.FileAttachment;
/**
* File-level ingest module that detects MBOX, PST, and vCard files based on