[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