[jboss-svn-commits] JBL Code SVN: r26824 - in labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main: java/org/jboss/labs/clearspace/plugin/nfm/dao and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Jun 4 09:39:50 EDT 2009


Author: lkrzyzanek
Date: 2009-06-04 09:39:50 -0400 (Thu, 04 Jun 2009)
New Revision: 26824

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/dao/DbNukesForumsDAOImpl.java
   labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/dao/NukesForumsDAO.java
   labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/dao/NukesForumsPostBean.java
   labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/resources/spring.xml
Log:
added watches and creating post by nukes users.

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-04 00:15:51 UTC (rev 26823)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/DbNukesForumsManager.java	2009-06-04 13:39:50 UTC (rev 26824)
@@ -53,6 +53,7 @@
 import com.jivesoftware.community.JiveConstants;
 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.stats.ViewCountManager;
 import com.jivesoftware.community.web.JiveResourceResolver;
@@ -84,11 +85,15 @@
 
   private ViewCountManager viewCountManager;
 
+  private WatchManager watchManager;
+
   /**
    * Application context. Default = "/community"
    */
   private String appContext = "/community";
 
+  private String unknownMigrationUser;
+
   private Map<Long, Long> categoryMappings = null;
 
   private Map<Long, Long> forumMappings = null;
@@ -130,9 +135,9 @@
 
   public Map<String, Long> migrateForums2Clearspace() {
     final long start = System.currentTimeMillis();
-    log.info("Migration of forums to clearspace started");
+    log.error("INFO: Migration of forums to clearspace started");
 
-    log.info("Clearing all caches to have as much as possible free memory.");
+    log.error("INFO: Clearing all caches to have as much as possible free memory.");
     CacheFactory.clearCaches();
 
     Map<String, Long> result = new HashMap<String, Long>();
@@ -141,9 +146,16 @@
     long topicsCount = 0;
     long postsCount = 0;
     for (Long forumID : forumMapping.keySet()) {
-      log.info("Migrate topics for forum with ID: " + forumID);
+      log.error("INFO: Migrate topics for forum with ID: " + forumID);
       Long communityID = forumMapping.get(forumID);
 
+      Community community;
+      try {
+        community = communityManager.getCommunity(communityID);
+      } catch (CommunityNotFoundException e) {
+        throw new RuntimeException(e);
+      }
+
       List<NukesForumsTopicBean> topics = nukesForumsDAO
           .getAllTopicsByForumID(forumID);
 
@@ -188,18 +200,18 @@
 
         User rootMessageUser = null;
         try {
-          rootMessageUser = userManager.getUser("lkrzyzanek");
+          rootMessageUser = userManager.getUser(topicPost.getPosterUsername());
         } catch (UserNotFoundException e) {
-          log.error(e);
+          log.error("Unknkown user for topic_id: " + topic.getTopicID()
+              + " username: " + topicPost.getPosterUsername());
+          try {
+            rootMessageUser = userManager.getUser(unknownMigrationUser);
+          } catch (UserNotFoundException e1) {
+            throw new RuntimeException("User: " + unknownMigrationUser
+                + " doesn't exists.");
+          }
         }
 
-        Community community;
-        try {
-          community = communityManager.getCommunity(communityID);
-        } catch (CommunityNotFoundException e) {
-          throw new RuntimeException(e);
-        }
-
         ForumMessage rootMessage = forumManager.createMessage(community,
             rootMessageUser);
         // creationDate taken from first post.
@@ -238,9 +250,16 @@
         for (NukesForumsPostBean reply : replies) {
           User replyUser = null;
           try {
-            replyUser = userManager.getUser("lkrzyzanek");
+            replyUser = userManager.getUser(reply.getPosterUsername());
           } catch (UserNotFoundException e) {
-            log.error(e);
+            log.error("Unknkown user for topic_id: " + topic.getTopicID()
+                + " username: " + topicPost.getPosterUsername());
+            try {
+              rootMessageUser = userManager.getUser(unknownMigrationUser);
+            } catch (UserNotFoundException e1) {
+              throw new RuntimeException("User: " + unknownMigrationUser
+                  + " doesn't exists.");
+            }
           }
           ForumMessage replyMessage = forumManager.createMessage(community,
               replyUser);
@@ -279,20 +298,49 @@
 
         topicsCount++;
       }
+
+      migrateForumWatches(forumID, community);
+
     }
 
     result.put("topicsCount", topicsCount);
     result.put("postsCount", postsCount);
 
-    log.info("Clearing all caches.");
+    log.error("INFO: Clearing all caches.");
     CacheFactory.clearCaches();
 
     final long timeConsumed = (System.currentTimeMillis() - start) / 1000;
-    log.info("Migration completed, time taken: " + timeConsumed + " sec.");
+    log.error("INFO: Migration completed, time taken: " + (long)timeConsumed / 60 + " minutes.");
 
     return result;
   }
 
+  private void migrateForumWatches(Long forumID, Community community) {
+    List<String> users = nukesForumsDAO.getForumWatchingUses(forumID);
+    for (String username : users) {
+      try {
+        User user = userManager.getUser(username);
+        watchManager.createWatch(user, community);
+      } catch (UserNotFoundException e) {
+        log.error("Unknown user for watching forum " + forumID + " username: "
+            + username);
+      }
+    }
+  }
+
+  // private void migrateTopicWatches(Long topicID, Community community) {
+  // List<String> users = nukesForumsDAO.getForumWatchingUses(forumID);
+  // for (String username : users) {
+  // try {
+  // User user = userManager.getUser(username);
+  // watchManager.createWatch(user, community);
+  // } catch (UserNotFoundException e) {
+  // log.error("Unknown user for watching forum " + forumID + " username: "
+  // + username);
+  // }
+  // }
+  // }
+
   /**
    * Create document from string. body of document is converted via converters
    * 
@@ -499,4 +547,12 @@
     this.converters = converters;
   }
 
+  public void setWatchManager(WatchManager watchManager) {
+    this.watchManager = watchManager;
+  }
+
+  public void setUnknownMigrationUser(String unknownMigrationUser) {
+    this.unknownMigrationUser = unknownMigrationUser;
+  }
+
 }

Modified: labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/dao/DbNukesForumsDAOImpl.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/dao/DbNukesForumsDAOImpl.java	2009-06-04 00:15:51 UTC (rev 26823)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/dao/DbNukesForumsDAOImpl.java	2009-06-04 13:39:50 UTC (rev 26824)
@@ -46,7 +46,8 @@
   private static final String SELECT_TOPICS_BY_FORUMID = "SELECT topic_id, topic_title, topic_poster, CASE WHEN topic_time = \"0000-00-00 00:00:00\" THEN null ELSE topic_time END as topic_time, topic_status, topic_first_post_id, topic_views"
       + " FROM phpbb_topics WHERE forum_id = ?";
 
-  private static final String SELECT_FROM_POST = "SELECT post_id, topic_id, forum_id, poster_id, poster_id, CASE WHEN post_time = \"0000-00-00 00:00:00\" THEN null ELSE post_time END as post_time, post_subject, post_text FROM phpbb_posts";
+  private static final String SELECT_FROM_POST = "SELECT p.post_id, p.topic_id, p.forum_id, nu.pn_uname, CASE WHEN post_time = \"0000-00-00 00:00:00\" THEN null ELSE post_time END as post_time, post_subject, post_text " +
+  		"FROM phpbb_posts p join nuke_users nu on p.poster_id = nu.pn_uid";
 
   private static final String SELECT_POST_BY_ID = SELECT_FROM_POST
       + " WHERE post_id = ?";
@@ -54,6 +55,10 @@
   private static final String SELECT_POSTS_BY_TOPICID = SELECT_FROM_POST
       + " WHERE topic_id = ?";
 
+  private static final String SELECT_WATCHING_FORUM_USERS_BY_FORUMID = "select u.pn_uname "
+      + "from phpbb_forums_watch w join nuke_users u on u.pn_uid = w.user_id "
+      + "where forum_id = ?";
+
   public List<NukesForumsForumBean> getAllForumsByCategoryID(Long categoryID) {
     return getSimpleJdbcTemplate().query(SELECT_FORUMS_BY_CATEGORYID,
         new NukesForumsForumBeanMapper(categoryID), categoryID);
@@ -81,6 +86,16 @@
     }
   }
 
+  public List<String> getForumWatchingUses(Long forumID) {
+    return getSimpleJdbcTemplate().query(
+        SELECT_WATCHING_FORUM_USERS_BY_FORUMID,
+        new ParameterizedRowMapper<String>() {
+          public String mapRow(ResultSet rs, int rowNum) throws SQLException {
+            return rs.getString(1);
+          };
+        }, forumID);
+  }
+
   class NukesForumsPostBeanMapper implements
       ParameterizedRowMapper<NukesForumsPostBean> {
 
@@ -90,7 +105,7 @@
       bean.setPostID(rs.getLong("post_id"));
       bean.setTopicID(rs.getLong("topic_id"));
       bean.setForumID(rs.getLong("forum_id"));
-      bean.setPosterID(rs.getLong("poster_id"));
+      bean.setPosterUsername(rs.getString("pn_uname"));
       bean.setTime(rs.getTimestamp("post_time"));
       bean.setSubject(rs.getString("post_subject"));
       bean.setBody(rs.getString("post_text"));

Modified: labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/dao/NukesForumsDAO.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/dao/NukesForumsDAO.java	2009-06-04 00:15:51 UTC (rev 26823)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/dao/NukesForumsDAO.java	2009-06-04 13:39:50 UTC (rev 26824)
@@ -66,4 +66,12 @@
   public List<NukesForumsPostBean> getAllPostsByTopicID(Long topicID,
       Long exceptPostID);
 
+  /**
+   * Get forum watching users for specified forum_id
+   * 
+   * @param forumID
+   * @return list of username
+   */
+  public List<String> getForumWatchingUses(Long forumID);
+
 }

Modified: labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/dao/NukesForumsPostBean.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/dao/NukesForumsPostBean.java	2009-06-04 00:15:51 UTC (rev 26823)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/dao/NukesForumsPostBean.java	2009-06-04 13:39:50 UTC (rev 26824)
@@ -39,7 +39,7 @@
 
   private Long forumID;
 
-  private Long posterID;
+  private String posterUsername;
 
   private Date time;
 
@@ -76,12 +76,12 @@
     this.forumID = forumID;
   }
 
-  public Long getPosterID() {
-    return posterID;
+  public void setPosterUsername(String posterUsername) {
+    this.posterUsername = posterUsername;
   }
 
-  public void setPosterID(Long posterID) {
-    this.posterID = posterID;
+  public String getPosterUsername() {
+    return posterUsername;
   }
 
   public Date getTime() {

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-04 00:15:51 UTC (rev 26823)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/resources/spring.xml	2009-06-04 13:39:50 UTC (rev 26824)
@@ -30,6 +30,8 @@
     <property name="topicMappings" ref="topicMappings" />
     <property name="postMappings" ref="postMappings" />
 
+    <property name="unknownMigrationUser" value="unknownForumsMigrationUser" />
+
     <property name="converters">
       <list>
         <ref local="bbCodeConverter" />




More information about the jboss-svn-commits mailing list