[jboss-svn-commits] JBL Code SVN: r32301 - 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 05:49:38 EDT 2010


Author: lkrzyzanek
Date: 2010-03-30 05:49:37 -0400 (Tue, 30 Mar 2010)
New Revision: 32301

Added:
   labs/jbosslabs/labs-3.0-build/integration/sbs-blogs-migration/trunk/src/main/java/org/jboss/labs/sbs/plugin/bm/struts/RedirectOldBlogPostToSBSAction.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/OldBlogsManager.java
   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
   labs/jbosslabs/labs-3.0-build/integration/sbs-blogs-migration/trunk/src/main/plugin/cache-config.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/main/plugin/struts.xml
Log:
Added action for backward compatibility.
Mappings are loaded one by one instead of all caches in one request.

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:57:12 UTC (rev 32300)
+++ 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 09:49:37 UTC (rev 32301)
@@ -35,6 +35,7 @@
 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.springframework.dao.EmptyResultDataAccessException;
 import org.w3c.dom.Document;
 
 import com.jivesoftware.base.User;
@@ -77,6 +78,9 @@
 
   private Properties oldBlogUsersMap = null;
 
+  /** Cache for old blog posts to SBS URL mapping */
+  private com.jivesoftware.community.cache.Cache<String, String> oldBlogPostsMappings;
+
   /**
    * Filter only directories
    */
@@ -106,6 +110,20 @@
   }
 
   @Override
+  public String getSBSURL(String oldBlogCode) {
+    String url = oldBlogPostsMappings.get(oldBlogCode);
+    if (url == null) {
+      try {
+        url = oldBlogsMappingDAO.getBlogPostMapping(oldBlogCode);
+      } catch (EmptyResultDataAccessException e) {
+        return null;
+      }
+      oldBlogPostsMappings.put(oldBlogCode, url);
+    }
+    return url;
+  }
+
+  @Override
   public String getSBSUsername(String oldBlogUser) {
     return oldBlogUsersMap.getProperty(oldBlogUser);
   }
@@ -317,4 +335,12 @@
     this.oldBlogsMappingDAO = oldBlogsMappingDAO;
   }
 
+  public void setOldBlogPostsMappings(com.jivesoftware.community.cache.Cache<String, String> oldBlogPostsMappings) {
+    this.oldBlogPostsMappings = oldBlogPostsMappings;
+  }
+
+  public com.jivesoftware.community.cache.Cache<String, String> getOldBlogPostsMappings() {
+    return oldBlogPostsMappings;
+  }
+
 }

Modified: labs/jbosslabs/labs-3.0-build/integration/sbs-blogs-migration/trunk/src/main/java/org/jboss/labs/sbs/plugin/bm/OldBlogsManager.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-blogs-migration/trunk/src/main/java/org/jboss/labs/sbs/plugin/bm/OldBlogsManager.java	2010-03-30 08:57:12 UTC (rev 32300)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-blogs-migration/trunk/src/main/java/org/jboss/labs/sbs/plugin/bm/OldBlogsManager.java	2010-03-30 09:49:37 UTC (rev 32301)
@@ -59,4 +59,12 @@
    */
   public String getSBSUsername(String oldBlogUser);
 
+  /**
+   * Gets SBS URL to old blog code
+   * 
+   * @param oldBlogCode
+   * @return
+   */
+  public String getSBSURL(String oldBlogCode);
+
 }

Modified: 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	2010-03-30 08:57:12 UTC (rev 32300)
+++ 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 09:49:37 UTC (rev 32301)
@@ -27,6 +27,7 @@
 import java.util.Map;
 
 import org.springframework.dao.DataAccessException;
+import org.springframework.dao.EmptyResultDataAccessException;
 import org.springframework.jdbc.core.ResultSetExtractor;
 
 import com.jivesoftware.base.database.dao.JiveJdbcDaoSupport;
@@ -38,15 +39,13 @@
  */
 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 SELECT_POST_MAPPING = "SELECT sbs_url FROM oldBlogsPostsMapping WHERE post_code = ?";
 
   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());
+  public String getBlogPostMapping(String blogPostCode)  throws EmptyResultDataAccessException {
+    return this.getSimpleJdbcTemplate().queryForObject(SELECT_POST_MAPPING, String.class, blogPostCode);
   }
 
   @Override

Modified: 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	2010-03-30 08:57:12 UTC (rev 32300)
+++ 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 09:49:37 UTC (rev 32301)
@@ -21,7 +21,7 @@
  */
 package org.jboss.labs.sbs.plugin.bm.dao;
 
-import java.util.Map;
+import org.springframework.dao.EmptyResultDataAccessException;
 
 import com.jivesoftware.community.util.BlogUtils;
 
@@ -34,11 +34,13 @@
 public interface OldBlogsMappingDAO {
 
   /**
-   * Get all blog posts mappings
+   * Gets blog post mapping
    * 
-   * @return map where key is Blog post code and value is URL
+   * @param blogPostCode
+   * @return URL in SBS
+   * @throws EmptyResultDataAccessException
    */
-  public Map<String, String> getAllBlogsMappings();
+  public String getBlogPostMapping(String blogPostCode) throws EmptyResultDataAccessException;
 
   /**
    * Insert new blog post mapping

Added: labs/jbosslabs/labs-3.0-build/integration/sbs-blogs-migration/trunk/src/main/java/org/jboss/labs/sbs/plugin/bm/struts/RedirectOldBlogPostToSBSAction.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-blogs-migration/trunk/src/main/java/org/jboss/labs/sbs/plugin/bm/struts/RedirectOldBlogPostToSBSAction.java	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-blogs-migration/trunk/src/main/java/org/jboss/labs/sbs/plugin/bm/struts/RedirectOldBlogPostToSBSAction.java	2010-03-30 09:49:37 UTC (rev 32301)
@@ -0,0 +1,81 @@
+/*
+ * 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.struts;
+
+import org.jboss.labs.sbs.plugin.bm.OldBlogsManager;
+
+import com.jivesoftware.community.action.JiveActionSupport;
+
+/**
+ * Action redirects from Old Blogs to SBS based on mapping between those systems
+ * 
+ * @author <a href="mailto:lkrzyzan at redhat.com">Libor Krzyzanek</a>
+ * 
+ */
+public class RedirectOldBlogPostToSBSAction extends JiveActionSupport {
+
+  /** URL to redirect */
+  private String urlToRedirect = null;
+
+  /** Old Blog code */
+  private String blogCode = null;
+
+  private OldBlogsManager oldBlogsManager;
+
+  public static final String URL_NOT_DEFINED = "urlNotDefined";
+
+  @Override
+  public String execute() {
+    if (blogCode == null || blogCode.length() == 0) {
+      return URL_NOT_DEFINED;
+    }
+
+    urlToRedirect = oldBlogsManager.getSBSURL(blogCode);
+
+    if (urlToRedirect == null) {
+      return NOTFOUND;
+    }
+
+    return SUCCESS;
+  }
+
+  public String getUrlToRedirect() {
+    return urlToRedirect;
+  }
+
+  public void setUrlToRedirect(String urlToRedirect) {
+    this.urlToRedirect = urlToRedirect;
+  }
+
+  public String getBlogCode() {
+    return blogCode;
+  }
+
+  public void setBlogCode(String blogCode) {
+    this.blogCode = blogCode;
+  }
+
+  public void setOldBlogsManager(OldBlogsManager oldBlogsManager) {
+    this.oldBlogsManager = oldBlogsManager;
+  }
+
+}


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

Modified: labs/jbosslabs/labs-3.0-build/integration/sbs-blogs-migration/trunk/src/main/plugin/cache-config.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-blogs-migration/trunk/src/main/plugin/cache-config.xml	2010-03-30 08:57:12 UTC (rev 32300)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-blogs-migration/trunk/src/main/plugin/cache-config.xml	2010-03-30 09:49:37 UTC (rev 32301)
@@ -1,6 +1,6 @@
 <cache-config>
   <cache-mapping>
-    <cache-name>Old Blogs mapping</cache-name>
+    <cache-name>Old Blogs posts mapping</cache-name>
     <scheme-name>default-near</scheme-name>
     <init-params>
       <init-param>

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:57:12 UTC (rev 32300)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-blogs-migration/trunk/src/main/plugin/spring.xml	2010-03-30 09:49:37 UTC (rev 32301)
@@ -6,14 +6,15 @@
 http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.5.xsd">
 
 
-  <bean id="blogMappings" parent="cacheBean" depends-on="cacheFactoryManager">
-    <constructor-arg value="Old Blogs mapping" />
+  <bean id="oldBlogPostsMappings" parent="cacheBean" depends-on="cacheFactoryManager">
+    <constructor-arg value="Old Blogs posts mapping" />
   </bean>
 
   <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="oldBlogPostsMappings" ref="oldBlogPostsMappings" />
 
     <property name="oldBlogUsersMap">
       <bean

Modified: labs/jbosslabs/labs-3.0-build/integration/sbs-blogs-migration/trunk/src/main/plugin/struts.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-blogs-migration/trunk/src/main/plugin/struts.xml	2010-03-30 08:57:12 UTC (rev 32300)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-blogs-migration/trunk/src/main/plugin/struts.xml	2010-03-30 09:49:37 UTC (rev 32301)
@@ -25,4 +25,18 @@
     </action>
   </package>
 
+  <package name="bm-actions" namespace="/bm" extends="community-actions">
+    <action name="redirect-to-sbs"
+      class="org.jboss.labs.sbs.plugin.bm.struts.RedirectOldBlogPostToSBSAction">
+      <result name="success" type="httpheader">
+        <param name="status">301</param>
+        <param name="headers.Location">${urlToRedirect}</param>
+        <param name="parse">true</param>
+      </result>
+      <result name="input" type="redirect">/blogs</result>
+      <result name="urlNotDefined" type="redirect">/blogs</result>
+    </action>
+  </package>
+
+
 </struts>



More information about the jboss-svn-commits mailing list