[jboss-svn-commits] JBL Code SVN: r25664 - labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/main/java/org/jboss/labs/clearspace/plugin/hfurl/dao.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Mar 16 11:00:42 EDT 2009


Author: lkrzyzanek
Date: 2009-03-16 11:00:42 -0400 (Mon, 16 Mar 2009)
New Revision: 25664

Modified:
   labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/main/java/org/jboss/labs/clearspace/plugin/hfurl/dao/DbHFURLDAOImpl.java
   labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/main/java/org/jboss/labs/clearspace/plugin/hfurl/dao/HFURLDAO.java
Log:
added implementation of updateIndex

Modified: labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/main/java/org/jboss/labs/clearspace/plugin/hfurl/dao/DbHFURLDAOImpl.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/main/java/org/jboss/labs/clearspace/plugin/hfurl/dao/DbHFURLDAOImpl.java	2009-03-16 14:59:59 UTC (rev 25663)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/main/java/org/jboss/labs/clearspace/plugin/hfurl/dao/DbHFURLDAOImpl.java	2009-03-16 15:00:42 UTC (rev 25664)
@@ -26,6 +26,12 @@
 import java.util.HashMap;
 import java.util.List;
 
+import org.apache.log4j.LogManager;
+import org.apache.log4j.Logger;
+import org.jboss.labs.clearspace.plugin.hfurl.DbHFURLManager;
+import org.springframework.dao.DataAccessException;
+import org.springframework.dao.EmptyResultDataAccessException;
+import org.springframework.jdbc.core.ResultSetExtractor;
 import org.springframework.jdbc.core.simple.ParameterizedRowMapper;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -41,10 +47,16 @@
  */
 public class DbHFURLDAOImpl extends JiveJdbcDaoSupport implements HFURLDAO {
 
+  private static final Logger log = LogManager.getLogger(DbHFURLDAOImpl.class);
+
   public static final int HFURL_MAP_SEQ = 5000;
 
   private static final String SELECT_FIELDS = "SELECT id, hfTitle, documentID ";
 
+  private static final String SELECT_ALL_DOCUMENTS = "SELECT d.documentID, v.title "
+      + "FROM jiveDocument d, jiveDocVersion v "
+      + "WHERE d.internalDocID = v.internalDocID AND v.state='published'";
+
   private static final String COUNT_ROWS = "SELECT COUNT(*) FROM humanFriendlyURLMap";
 
   private static final String LOAD_HFURL_BY_HFTITLE = SELECT_FIELDS
@@ -57,39 +69,74 @@
 
   private static final String UPDATE_HFURL_ENTRY = "UPDATE humanFriendlyURLMap SET hfTitle=?, documentID=? WHERE id=?";
 
+  private static final String DELETE_HFURL_ALL = "DELETE FROM humanFriendlyURLMap";
+
   private static final String DELETE_HFURL_ENTRY_BY_ID = "DELETE FROM humanFriendlyURLMap WHERE id=?";
 
   private static final String DELETE_HFURL_ENTRY_BY_DOCUMENT_ID = "DELETE FROM humanFriendlyURLMap WHERE documentID=?";
 
   private static final HfURLMapMapper mapper = new HfURLMapMapper();
 
+  @Transactional
+  public void updateIndex() {
+    log.debug("update index called");
+
+    log.debug("Delete all HF URL entries");
+    getJdbcTemplate().update(DELETE_HFURL_ALL);
+
+    log.debug("Go throw each document and create new HF URL entry");
+    getJdbcTemplate().query(SELECT_ALL_DOCUMENTS, new ResultSetExtractor() {
+      public Object extractData(ResultSet rs) throws SQLException,
+          DataAccessException {
+
+        while (rs.next()) {
+          String documentId = rs.getString(1);
+          String documentTitle = rs.getString(2);
+
+          String hfTitle = DbHFURLManager.createHFURLTitle(documentTitle);
+
+          HFURLBean bean = new HFURLBean(documentId, hfTitle);
+          createHFURL(bean);
+        }
+        return null;
+      }
+    });
+
+  }
+
   @SuppressWarnings("unchecked")
   public long getIndexedURLsCount() {
     return this.getSimpleJdbcTemplate().queryForLong(COUNT_ROWS, new HashMap());
   }
 
-  public List<HFURLBean> getByHfURLTitle(String hfURLTitle) throws DAOException {
+  public List<HFURLBean> getByHfURLTitle(String hfURLTitle)
+      throws EmptyResultDataAccessException {
     return this.getSimpleJdbcTemplate().query(LOAD_HFURL_BY_HFTITLE, mapper,
         hfURLTitle);
   }
 
-  public HFURLBean getByDocumentId(String documentId) throws DAOException {
+  public HFURLBean getByDocumentId(String documentId)
+      throws EmptyResultDataAccessException {
     return this.getSimpleJdbcTemplate().queryForObject(
         LOAD_HFURL_BY_DOCUMENT_ID, mapper, documentId);
   }
 
-  @Transactional
   public HFURLBean createHFURL(HFURLBean bean) throws DAOException {
+    log.debug("Create HF URL map");
     bean.setId(SequenceManager.nextID(HFURL_MAP_SEQ));
 
+    if (log.isDebugEnabled()) {
+      log.debug("bean: " + bean);
+    }
+
     getSimpleJdbcTemplate().update(INSERT_HFURL_ENTRY, bean.getId(),
         bean.getHfTitle(), bean.getDocumentID());
 
     return bean;
   }
 
-  @Transactional
   public HFURLBean updateHFURL(HFURLBean bean) throws DAOException {
+    log.debug("Update HF URL map");
     getSimpleJdbcTemplate().update(UPDATE_HFURL_ENTRY, bean.getHfTitle(),
         bean.getDocumentID(), bean.getId());
 
@@ -97,6 +144,7 @@
   }
 
   public void deleteHFURL(Long id) throws DAOException {
+    log.debug("Delete HF URL map");
     getSimpleJdbcTemplate().update(DELETE_HFURL_ENTRY_BY_ID, id);
   }
 

Modified: labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/main/java/org/jboss/labs/clearspace/plugin/hfurl/dao/HFURLDAO.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/main/java/org/jboss/labs/clearspace/plugin/hfurl/dao/HFURLDAO.java	2009-03-16 14:59:59 UTC (rev 25663)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/main/java/org/jboss/labs/clearspace/plugin/hfurl/dao/HFURLDAO.java	2009-03-16 15:00:42 UTC (rev 25664)
@@ -35,6 +35,11 @@
 public interface HFURLDAO {
 
   /**
+   * Update index of HF URLs. Go through articles and add missing HF URLs
+   */
+  public void updateIndex();
+  
+  /**
    * Get count of indexed URLs
    * 
    * @return




More information about the jboss-svn-commits mailing list