[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