Scarab commit: svn commit: r10617 - trunk/src: java/org/tigris/scarab/notification java/org/tigris/scarab/util schema

[email protected]
Newsgroups gmane.comp.java.scarab.cvs
Message-ID <[email protected]>
Author: hair
Date: 2008-08-23 11:00:48-0700
New Revision: 10617

Modified:
   trunk/src/java/org/tigris/scarab/notification/ScarabNewNotificationManager.java
   trunk/src/java/org/tigris/scarab/util/Email.java
   trunk/src/java/org/tigris/scarab/util/EmailContext.java
   trunk/src/schema/scarab-schema.xml

Log:
Issue SCB845:  ( All emails from one issue belonging to same mail thread) 
 take2.


Modified: trunk/src/java/org/tigris/scarab/notification/ScarabNewNotificationManager.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/notification/ScarabNewNotificationManager.java?view=diff&rev=10617&p1=trunk/src/java/org/tigris/scarab/notification/ScarabNewNotificationManager.java&p2=trunk/src/java/org/tigris/scarab/notification/ScarabNewNotificationManager.java&r1=10616&r2=10617
==============================================================================
--- trunk/src/java/org/tigris/scarab/notification/ScarabNewNotificationManager.java	(original)
+++ trunk/src/java/org/tigris/scarab/notification/ScarabNewNotificationManager.java	2008-08-23 11:00:48-0700
@@ -310,24 +310,6 @@
                     ectx.put("firstNotification", firstNotification);
                     ectx.put("lastNotification", lastNotification);
                     ectx.put("changedStatus",changedStatusAttributeValue);
-                    // Message-ID & References headers
-                    try{
-                        if(issue.getCreatedDate().before(firstNotification.getCreationDate()))
-                        {
-                            ectx.setMessageID('<' + firstNotification.getCreationDate().getTime()
-                                    + issueId + '@' + issue.getIdDomain() + '>');
-
-                            ectx.addReference('<' + issueId + '@' + issue.getIdDomain() + '>');
-                        }
-                        else
-                        {
-                            ectx.setMessageID('<' + issueId + '@' + issue.getIdDomain() + '>');
-                        }
-                    }
-                    catch(TorqueException te)
-                    {
-                        Log.get().warn("Unable to set Message-Id/References headers");
-                    }
 
                     Map groupedActivities = (Map) issueActivities.get(user);
                     if(groupedActivities == null)

Modified: trunk/src/java/org/tigris/scarab/util/Email.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/util/Email.java?view=diff&rev=10617&p1=trunk/src/java/org/tigris/scarab/util/Email.java&p2=trunk/src/java/org/tigris/scarab/util/Email.java&r1=10616&r2=10617
==============================================================================
--- trunk/src/java/org/tigris/scarab/util/Email.java	(original)
+++ trunk/src/java/org/tigris/scarab/util/Email.java	2008-08-23 11:00:48-0700
@@ -252,20 +252,34 @@
             }
         }
 
-        // Email threading
-        if(null!=context.getMessageID())
+        // Email threading -- applicable to issue related notifications
+        final Issue issue = (Issue) context.get("issue");
+        String emailReferences = null;
+        if(null!=issue)
         {
-            te.addHeader("Message-ID", context.getMessageID());
-        }
-        if(null!=context.getReferences())
-        {
-            te.addHeader("References", context.getReferences());
+            emailReferences = issue.getEmailReferences();
+            te.addHeader("References", emailReferences);
         }
 
         try
         {
             log.debug("Sending email ...");
-            te.send();
+            final String newEmailReference = te.send();
+            log.debug("... sent " + newEmailReference);
+
+            if(null!=emailReferences)
+            {
+                // we record, within the varchar(2000) limit,
+                //  the MessageID of every mail sent if it's related to an issue change 
+                if(emailReferences.length() + newEmailReference.length() > 2000)
+                {
+                    // truncate emailReferences so it (& newEmailReferences) will fit
+                    emailReferences = emailReferences.substring(
+                            emailReferences.indexOf('<', newEmailReference.length()));
+                }
+                issue.setEmailReferences(emailReferences + ' ' + newEmailReference);
+                issue.save();
+            }
         }
         catch(EmailException me)
         {

Modified: trunk/src/java/org/tigris/scarab/util/EmailContext.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/util/EmailContext.java?view=diff&rev=10617&p1=trunk/src/java/org/tigris/scarab/util/EmailContext.java&p2=trunk/src/java/org/tigris/scarab/util/EmailContext.java&r1=10616&r2=10617
==============================================================================
--- trunk/src/java/org/tigris/scarab/util/EmailContext.java	(original)
+++ trunk/src/java/org/tigris/scarab/util/EmailContext.java	2008-08-23 11:00:48-0700
@@ -109,24 +109,5 @@
     {
         return subjectTemplate;
     }
-
-    public String getMessageID()
-    {
-        return (String) get("Message-ID");
-    }
-
-    public void setMessageID(final String messageId)
-    {
-        put("Message-ID", messageId);
-    }
-
-    public String getReferences()
-    {
-        return (String) get("References");
-    }
-
-    public void addReference(final String reference)
-    {
-        put("References", (null!=getReferences() ? getReferences() : "") + reference + ' ');
-    }    
+   
 }

Modified: trunk/src/schema/scarab-schema.xml
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/schema/scarab-schema.xml?view=diff&rev=10617&p1=trunk/src/schema/scarab-schema.xml&p2=trunk/src/schema/scarab-schema.xml&r1=10616&r2=10617
==============================================================================
--- trunk/src/schema/scarab-schema.xml	(original)
+++ trunk/src/schema/scarab-schema.xml	2008-08-23 11:00:48-0700
@@ -281,6 +281,7 @@
 		<column name="LAST_TRANS_ID" required="false" type="BIGINT"/>
 		<column name="DELETED" required="false" type="BOOLEANINT" default="0" javaType="primitive" description="Flag, which marks that issue has been deleted."/>
 		<column name="MOVED" required="false" type="BOOLEANINT" default="0" javaType="primitive" description="Flag, which marks that issue has been moved (and so its uniqueId  changed)"/>
+		<column name="EMAIL_REFERENCES" required="false" type="VARCHAR" size="2000" description="Message-IDs of all email notifications sent"/>
 		<foreign-key foreignTable="SCARAB_MODULE">
 			<reference local="MODULE_ID" foreign="MODULE_ID"/>
 		</foreign-key>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.