[jboss-svn-commits] JBL Code SVN: r32300 - in labs/jbosslabs/labs-3.0-build/integration/sbs-blogs-migration/trunk/src: main/java/org/jboss/labs/sbs/plugin/bm/dao and 2 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Mar 30 04:57:14 EDT 2010


Author: lkrzyzanek
Date: 2010-03-30 04:57:12 -0400 (Tue, 30 Mar 2010)
New Revision: 32300

Added:
   labs/jbosslabs/labs-3.0-build/integration/sbs-blogs-migration/trunk/src/main/java/org/jboss/labs/sbs/plugin/bm/dao/DbOldBlogsMappingDAO.java
   labs/jbosslabs/labs-3.0-build/integration/sbs-blogs-migration/trunk/src/main/java/org/jboss/labs/sbs/plugin/bm/dao/OldBlogsMappingDAO.java
Modified:
   labs/jbosslabs/labs-3.0-build/integration/sbs-blogs-migration/trunk/src/main/java/org/jboss/labs/sbs/plugin/bm/DbOldBlogsManager.java
   labs/jbosslabs/labs-3.0-build/integration/sbs-blogs-migration/trunk/src/main/java/org/jboss/labs/sbs/plugin/bm/dao/OldBlogEntryBean.java
   labs/jbosslabs/labs-3.0-build/integration/sbs-blogs-migration/trunk/src/main/plugin/schema.xml
   labs/jbosslabs/labs-3.0-build/integration/sbs-blogs-migration/trunk/src/main/plugin/spring.xml
   labs/jbosslabs/labs-3.0-build/integration/sbs-blogs-migration/trunk/src/test/java/org/jboss/labs/sbs/plugin/bm/DbOldBlogsManagerTest.java
Log:
Added URL backward compatibility - DAO/Schema

Modified: labs/jbosslabs/labs-3.0-build/integration/sbs-blogs-migration/trunk/src/main/java/org/jboss/labs/sbs/plugin/bm/DbOldBlogsManager.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-blogs-migration/trunk/src/main/java/org/jboss/labs/sbs/plugin/bm/DbOldBlogsManager.java	2010-03-30 08:13:33 UTC (rev 32299)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-blogs-migration/trunk/src/main/java/org/jboss/labs/sbs/plugin/bm/DbOldBlogsManager.java	2010-03-30 08:57:12 UTC (rev 32300)
@@ -34,6 +34,7 @@
 import org.apache.log4j.LogManager;
 import org.apache.log4j.Logger;
 import org.jboss.labs.sbs.plugin.bm.dao.OldBlogEntryBean;
+import org.jboss.labs.sbs.plugin.bm.dao.OldBlogsMappingDAO;
 import org.w3c.dom.Document;
 
 import com.jivesoftware.base.User;
@@ -45,6 +46,7 @@
 import com.jivesoftware.community.BlogPost;
 import com.jivesoftware.community.renderer.impl.v2.HtmlRenderUtils;
 import com.jivesoftware.community.renderer.impl.v2.JAXPUtils;
+import com.jivesoftware.community.util.BlogUtils;
 import com.jivesoftware.util.StringUtils;
 
 /**
@@ -71,6 +73,8 @@
 
   private BlogManager blogManager;
 
+  private OldBlogsMappingDAO oldBlogsMappingDAO;
+
   private Properties oldBlogUsersMap = null;
 
   /**
@@ -108,6 +112,9 @@
 
   @Override
   public long migrateBlogs(String repositoryPath) {
+    log.info("Old Blogs migration started.");
+    // TODO remove recent activity listener
+
     File repo = new File(repositoryPath);
 
     // categories in blogs.jboss.org is used for authors name
@@ -122,6 +129,7 @@
         File category = categories[i];
 
         final String authorName = category.getName();
+        log.info("Migrating user: " + authorName + " (" + (i + 1) + "/" + categories.length + ")");
         Blog userBlog;
         try {
           userBlog = createUserBlog(authorName);
@@ -145,8 +153,10 @@
               oldBlogEntry.setCreated(new Date(entry.lastModified()));
             }
 
-            insertBlogEntry(userBlog, oldBlogEntry);
+            BlogPost post = insertBlogEntry(userBlog, oldBlogEntry);
 
+            oldBlogsMappingDAO.saveBlogMapping(oldBlogEntry.getCode(), BlogUtils.getRelativePostLink(post));
+
             count++;
           } catch (Exception e) {
             log.error("Cannot process blog entry: " + entry.getAbsolutePath(), e);
@@ -155,6 +165,8 @@
       }
     }
 
+    log.info("Old Blogs migration finished. Count of migrated posts: " + count);
+
     return count;
   }
 
@@ -169,7 +181,7 @@
     return b;
   }
 
-  private void insertBlogEntry(Blog b, OldBlogEntryBean oldBlogEntry) {
+  private BlogPost insertBlogEntry(Blog b, OldBlogEntryBean oldBlogEntry) {
     if (log.isDebugEnabled()) {
       log.debug("Insert Blog entry '" + oldBlogEntry.getTitle() + "' from author: " + oldBlogEntry.getAuthor());
     }
@@ -181,6 +193,7 @@
     post.setPublishDate(oldBlogEntry.getCreated());
 
     b.addBlogPost(post);
+    return post;
   }
 
   /**
@@ -201,7 +214,7 @@
       }
       Document document = JAXPUtils.toBodyXml(html);
       // Following lines are commented because messages are not Wiki articles.
-      
+
       // List<org.w3c.dom.Element> elementList =
       // JAXPUtils.selectAllNodes(document, "div");
       // elementList.addAll(JAXPUtils.selectAllNodes(document, "span"));
@@ -243,7 +256,8 @@
 
   @Override
   public OldBlogEntryBean loadOldBlogPost(File data, File meta, String encoding) throws IOException {
-    OldBlogEntryBean bean = new OldBlogEntryBean();
+    String fileName = data.getName();
+    OldBlogEntryBean bean = new OldBlogEntryBean(fileName.substring(0, fileName.length() - 4));
 
     boolean hasLoadedTitle = false;
 
@@ -299,4 +313,8 @@
     this.oldBlogUsersMap = oldBlogUsersMap;
   }
 
+  public void setOldBlogsMappingDAO(OldBlogsMappingDAO oldBlogsMappingDAO) {
+    this.oldBlogsMappingDAO = oldBlogsMappingDAO;
+  }
+
 }

Added: labs/jbosslabs/labs-3.0-build/integration/sbs-blogs-migration/trunk/src/main/java/org/jboss/labs/sbs/plugin/bm/dao/DbOldBlogsMappingDAO.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-blogs-migration/trunk/src/main/java/org/jboss/labs/sbs/plugin/bm/dao/DbOldBlogsMappingDAO.java	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-blogs-migration/trunk/src/main/java/org/jboss/labs/sbs/plugin/bm/dao/DbOldBlogsMappingDAO.java	2010-03-30 08:57:12 UTC (rev 32300)
@@ -0,0 +1,72 @@
+/*
+ * JBoss Community http://jboss.org/
+ *
+ * Copyright (c) 2010 Red Hat Middleware, LLC. All rights reserved.
+ *
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT A WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License, v.2.1 along with this distribution; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ *
+ * Red Hat Author(s): Libor Krzyzanek
+ */
+package org.jboss.labs.sbs.plugin.bm.dao;
+
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.springframework.dao.DataAccessException;
+import org.springframework.jdbc.core.ResultSetExtractor;
+
+import com.jivesoftware.base.database.dao.JiveJdbcDaoSupport;
+
+/**
+ * 
+ * 
+ * @author <a href="mailto:lkrzyzan at redhat.com">Libor Krzyzanek</a>
+ */
+public class DbOldBlogsMappingDAO extends JiveJdbcDaoSupport implements OldBlogsMappingDAO {
+
+  private static final String SELECT_ALL_POSTS_MAPPINGS = "SELECT post_code, sbs_url FROM oldBlogsPostsMapping";
+
+  private static final String INSERT_POST_MAPPING = "INSERT INTO oldBlogsPostsMapping (post_code, sbs_url) VALUES (?, ?)";
+
+  @SuppressWarnings("unchecked")
+  @Override
+  public Map<String, String> getAllBlogsMappings() {
+    return (Map<String, String>) this.getJdbcTemplate()
+        .query(SELECT_ALL_POSTS_MAPPINGS, new TwoColumnsAsMapExtractor());
+  }
+
+  @Override
+  public void saveBlogMapping(String blogPostCode, String sbsURL) {
+    this.getSimpleJdbcTemplate().update(INSERT_POST_MAPPING, blogPostCode, sbsURL);
+  }
+
+  /**
+   * Common extractor for result set which contains two columns as {@link Long}
+   * type
+   * 
+   * @author <a href="mailto:lkrzyzan at redhat.com">Libor Krzyzanek</a>
+   */
+  class TwoColumnsAsMapExtractor implements ResultSetExtractor {
+    public Map<String, String> extractData(ResultSet rs) throws SQLException, DataAccessException {
+      Map<String, String> result = new HashMap<String, String>();
+      while (rs.next()) {
+        result.put(rs.getString(1), rs.getString(2));
+      }
+      return result;
+    }
+  }
+}


Property changes on: labs/jbosslabs/labs-3.0-build/integration/sbs-blogs-migration/trunk/src/main/java/org/jboss/labs/sbs/plugin/bm/dao/DbOldBlogsMappingDAO.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Modified: labs/jbosslabs/labs-3.0-build/integration/sbs-blogs-migration/trunk/src/main/java/org/jboss/labs/sbs/plugin/bm/dao/OldBlogEntryBean.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-blogs-migration/trunk/src/main/java/org/jboss/labs/sbs/plugin/bm/dao/OldBlogEntryBean.java	2010-03-30 08:13:33 UTC (rev 32299)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-blogs-migration/trunk/src/main/java/org/jboss/labs/sbs/plugin/bm/dao/OldBlogEntryBean.java	2010-03-30 08:57:12 UTC (rev 32300)
@@ -29,16 +29,16 @@
  * @author <a href="mailto:lkrzyzan at redhat.com">Libor Krzyzanek</a>
  */
 public class OldBlogEntryBean {
-  /**
-   * Entry Meta Data Key for author
-   */
+
+  /** Entry Meta Data Key for author. */
   public static final String BLOG_ENTRY_METADATA_AUTHOR = "blog-entry-author";
 
-  /**
-   * Entry meta-data key for entry time
-   */
+  /** Entry meta-data key for entry time. */
   public static final String BLOG_ENTRY_METADATA_TIMESTAMP = "blog-entry-metadata-timestamp";
 
+  /** Blog entry code (Name of file without .txt extension) */
+  private String code;
+
   /** Title of blog entry. */
   private String title;
 
@@ -51,6 +51,11 @@
   /** Author of this blog entry. */
   private String author;
 
+  public OldBlogEntryBean(String code) {
+    super();
+    this.code = code;
+  }
+
   /**
    * Gets the title of blog entry.
    * 
@@ -123,4 +128,22 @@
     return author;
   }
 
+  /**
+   * Sets the blog entry code (Name of file without .
+   * 
+   * @param code the new blog entry code (Name of file without
+   */
+  public void setCode(String code) {
+    this.code = code;
+  }
+
+  /**
+   * Gets the blog entry code (Name of file without .
+   * 
+   * @return the blog entry code (Name of file without
+   */
+  public String getCode() {
+    return code;
+  }
+
 }

Added: labs/jbosslabs/labs-3.0-build/integration/sbs-blogs-migration/trunk/src/main/java/org/jboss/labs/sbs/plugin/bm/dao/OldBlogsMappingDAO.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-blogs-migration/trunk/src/main/java/org/jboss/labs/sbs/plugin/bm/dao/OldBlogsMappingDAO.java	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-blogs-migration/trunk/src/main/java/org/jboss/labs/sbs/plugin/bm/dao/OldBlogsMappingDAO.java	2010-03-30 08:57:12 UTC (rev 32300)
@@ -0,0 +1,52 @@
+/*
+ * JBoss.org http://jboss.org/
+ *
+ * Copyright (c) 2010  Red Hat Middleware, LLC. All rights reserved.
+ *
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT A WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License, v.2.1 along with this distribution; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ *
+ * Red Hat Author(s): Libor Krzyzanek
+ */
+package org.jboss.labs.sbs.plugin.bm.dao;
+
+import java.util.Map;
+
+import com.jivesoftware.community.util.BlogUtils;
+
+/**
+ * Interface for old blogs mapping to SBS content
+ * 
+ * @author <a href="mailto:lkrzyzan at redhat.com">Libor Krzyzanek</a>
+ * 
+ */
+public interface OldBlogsMappingDAO {
+
+  /**
+   * Get all blog posts mappings
+   * 
+   * @return map where key is Blog post code and value is URL
+   */
+  public Map<String, String> getAllBlogsMappings();
+
+  /**
+   * Insert new blog post mapping
+   * 
+   * @param blogPostCode
+   * @param sbsURL
+   * @see BlogUtils#getRelativePostLink(com.jivesoftware.community.BlogPost)
+   */
+  public void saveBlogMapping(String blogPostCode, String sbsURL);
+
+}


Property changes on: labs/jbosslabs/labs-3.0-build/integration/sbs-blogs-migration/trunk/src/main/java/org/jboss/labs/sbs/plugin/bm/dao/OldBlogsMappingDAO.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Modified: labs/jbosslabs/labs-3.0-build/integration/sbs-blogs-migration/trunk/src/main/plugin/schema.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-blogs-migration/trunk/src/main/plugin/schema.xml	2010-03-30 08:13:33 UTC (rev 32299)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-blogs-migration/trunk/src/main/plugin/schema.xml	2010-03-30 08:57:12 UTC (rev 32300)
@@ -1,13 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <schema name="blogsMigration">
 
-<!-- 
-  <table name="blogsMapping" description="Mapping of Blogs IDs to Clearspace community IDs">
-    <column name="cat_id" type="bigint" nullable="false"
-      description="Primary key - Category ID" />
-    <column name="communityID" type="bigint" nullable="false"
-      description="Community ID" />
-    <index type="primary" name="nfCategoryMapping_pk" column="cat_id" />
+  <table name="oldBlogsPostsMapping" description="Mapping of old Blogs Posts codes to SBS URLs">
+    <column name="post_code" type="varchar" size="255" nullable="false"
+      description="Primary key - Blog post code" />
+    <column name="sbs_url" type="varchar" size="255" nullable="false"
+      description="SBS relative URL" />
+    <index type="primary" name="oldBlogsPostsMapping_pk" column="post_code" />
   </table>
- -->
+
 </schema>

Modified: labs/jbosslabs/labs-3.0-build/integration/sbs-blogs-migration/trunk/src/main/plugin/spring.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-blogs-migration/trunk/src/main/plugin/spring.xml	2010-03-30 08:13:33 UTC (rev 32299)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-blogs-migration/trunk/src/main/plugin/spring.xml	2010-03-30 08:57:12 UTC (rev 32300)
@@ -13,6 +13,7 @@
   <bean id="oldBlogsManager" class="org.jboss.labs.sbs.plugin.bm.DbOldBlogsManager">
     <property name="userManager" ref="userManager" />
     <property name="blogManager" ref="blogManager" />
+    <property name="oldBlogsMappingDAO" ref="oldBlogsMappingDAO" />
 
     <property name="oldBlogUsersMap">
       <bean
@@ -22,7 +23,13 @@
         </property>
       </bean>
     </property>
+  </bean>
 
+  <bean id="oldBlogsMappingDAO"
+    class="org.jboss.labs.sbs.plugin.bm.dao.DbOldBlogsMappingDAO">
+    <property name="dataSource">
+      <util:property-path path="dataSourceFactory.dataSource" />
+    </property>
   </bean>
 
 </beans>

Modified: labs/jbosslabs/labs-3.0-build/integration/sbs-blogs-migration/trunk/src/test/java/org/jboss/labs/sbs/plugin/bm/DbOldBlogsManagerTest.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-blogs-migration/trunk/src/test/java/org/jboss/labs/sbs/plugin/bm/DbOldBlogsManagerTest.java	2010-03-30 08:13:33 UTC (rev 32299)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-blogs-migration/trunk/src/test/java/org/jboss/labs/sbs/plugin/bm/DbOldBlogsManagerTest.java	2010-03-30 08:57:12 UTC (rev 32300)
@@ -53,6 +53,7 @@
     assertEquals("Title of blog entry", bean.getTitle());
     assertEquals("<p>Data</p>" + DbOldBlogsManager.LINE_SEPARATOR + "<p>other line</p>"
         + DbOldBlogsManager.LINE_SEPARATOR + "etc." + DbOldBlogsManager.LINE_SEPARATOR, bean.getBody());
+    assertEquals("entry1", bean.getCode());
 
     bean = manager.loadOldBlogPost(new File(repoPath + "user1/entry1.txt"), new File(repoPath
         + "user1/entry1-nonexisting.meta"), "UTF-8");



More information about the jboss-svn-commits mailing list