[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