[jboss-svn-commits] JBL Code SVN: r26953 - in labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main: resources and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Jun 12 09:04:34 EDT 2009


Author: lkrzyzanek
Date: 2009-06-12 09:04:34 -0400 (Fri, 12 Jun 2009)
New Revision: 26953

Modified:
   labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/DbNukesForumsManager.java
   labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/resources/spring.xml
Log:
added handling adding activity by hand due to bad creationDate in default implementation

Modified: labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/DbNukesForumsManager.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/DbNukesForumsManager.java	2009-06-12 13:01:01 UTC (rev 26952)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/DbNukesForumsManager.java	2009-06-12 13:04:34 UTC (rev 26953)
@@ -23,11 +23,13 @@
 
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
+import java.util.Collection;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.concurrent.LinkedBlockingQueue;
 
 import org.apache.log4j.LogManager;
 import org.apache.log4j.Logger;
@@ -47,6 +49,8 @@
 import com.jivesoftware.base.UserNotFoundException;
 import com.jivesoftware.base.UserTemplate;
 import com.jivesoftware.base.wiki.WikiContentHelper;
+import com.jivesoftware.community.Activity;
+import com.jivesoftware.community.ActivityBean;
 import com.jivesoftware.community.Community;
 import com.jivesoftware.community.CommunityManager;
 import com.jivesoftware.community.CommunityNotFoundException;
@@ -54,10 +58,15 @@
 import com.jivesoftware.community.ForumMessage;
 import com.jivesoftware.community.ForumThread;
 import com.jivesoftware.community.JiveConstants;
+import com.jivesoftware.community.JiveObject;
 import com.jivesoftware.community.QuestionManager;
 import com.jivesoftware.community.RejectedException;
 import com.jivesoftware.community.WatchManager;
 import com.jivesoftware.community.cache.CacheFactory;
+import com.jivesoftware.community.event.MessageEventDispatcher;
+import com.jivesoftware.community.event.ThreadEventDispatcher;
+import com.jivesoftware.community.impl.ActivityListener;
+import com.jivesoftware.community.impl.dao.ActivityDAO;
 import com.jivesoftware.community.stats.ViewCountManager;
 import com.jivesoftware.community.web.JiveResourceResolver;
 
@@ -90,6 +99,10 @@
 
   private WatchManager watchManager;
 
+  private ActivityDAO activityDAO;
+
+  private ActivityListener activityListener;
+
   private NukesUserManager nukesUserManager;
 
   /**
@@ -150,8 +163,15 @@
     long topicsCount = 0;
     long postsCount = 0;
     int newUsersCount = 0;
+
+    log.trace("Unregistering activity listeners. "
+        + "Activities are handled by hand.");
+    ThreadEventDispatcher.getInstance().removeListener(activityListener);
+    MessageEventDispatcher.getInstance().removeListener(activityListener);
+
     for (Long forumID : forumMapping.keySet()) {
       log.error("INFO: Migrate topics for forum with ID: " + forumID);
+      Collection<ActivityBean> activitiesFromMigration = new LinkedBlockingQueue<ActivityBean>();
       Long communityID = forumMapping.get(forumID);
 
       Community community;
@@ -258,6 +278,13 @@
             questionManager.createQuestion(thread);
           }
 
+          // add activity
+          ActivityBean activity = createActivity(thread, thread
+              .getJiveContainer(), thread.getUser(), Activity.Type.created,
+              thread.getCreationDate());
+
+          activitiesFromMigration.add(activity);
+
           postsCount++;
         } catch (RejectedException e) {
           throw new RuntimeException(e);
@@ -303,6 +330,15 @@
 
             nukesForumsMappingDAO.savePostMapping(reply.getPostID(),
                 replyMessage.getID());
+
+            // add activity
+            ActivityBean activity = createActivity(replyMessage
+                .getForumThread(), replyMessage.getJiveContainer(),
+                replyMessage.getUser(), Activity.Type.replied, replyMessage
+                    .getCreationDate());
+
+            activitiesFromMigration.add(activity);
+
           } catch (RejectedException e) {
             throw new RuntimeException(e);
           }
@@ -322,6 +358,7 @@
 
       migrateForumWatches(forumID, community);
 
+      activityDAO.create(activitiesFromMigration);
     }
 
     result.put("topicsCount", topicsCount);
@@ -331,6 +368,10 @@
     log.error("INFO: Clearing all caches.");
     CacheFactory.clearCaches();
 
+    log.trace("Registering back activity listener to event dispatchers.");
+    ThreadEventDispatcher.getInstance().addListener(activityListener);
+    MessageEventDispatcher.getInstance().addListener(activityListener);
+
     final long timeConsumed = (System.currentTimeMillis() - start) / 1000;
     log.error("INFO: Migration completed, time taken: " + (long) timeConsumed
         / 60 + " minutes.");
@@ -341,6 +382,24 @@
     return result;
   }
 
+  private ActivityBean createActivity(JiveObject object, JiveObject parent,
+      User user, Activity.Type activityType, Date creationDate) {
+    ActivityBean bean = new ActivityBean();
+    bean.setTargetObjectID(object.getID());
+    bean.setTargetObjectType(object.getObjectType());
+    if (user != null) {
+      bean.setUserID(user.getID());
+    }
+    if (parent != null) {
+      bean.setContainerObjectID(parent.getID());
+      bean.setContainerObjectType(parent.getObjectType());
+    }
+    bean.setType(activityType);
+    bean.setCreationDate(creationDate);
+
+    return bean;
+  }
+
   private User findUser(String username, String email) {
     UserTemplate userTemplate = new UserTemplate(username);
     userTemplate.setEmail(email);
@@ -611,4 +670,12 @@
     this.nukesUserManager = nukesUserManager;
   }
 
+  public void setActivityListener(ActivityListener activityListener) {
+    this.activityListener = activityListener;
+  }
+
+  public void setActivityDAO(ActivityDAO activityDAO) {
+    this.activityDAO = activityDAO;
+  }
+
 }

Modified: labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/resources/spring.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/resources/spring.xml	2009-06-12 13:01:01 UTC (rev 26952)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/resources/spring.xml	2009-06-12 13:04:34 UTC (rev 26953)
@@ -32,6 +32,9 @@
     <property name="postMappings" ref="postMappings" />
 
     <property name="nukesUserManager" ref="nukesUserManager" />
+    
+    <property name="activityDAO" ref="activityDAO" />
+    <property name="activityListener" ref="activityListener" />
 
     <property name="converters">
       <list>




More information about the jboss-svn-commits mailing list