[jboss-svn-commits] JBL Code SVN: r25610 - in labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src: main/java/org/jboss/labs/clearspace/plugin/hfurl/dao and 3 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Mar 12 06:28:41 EDT 2009
Author: lkrzyzanek
Date: 2009-03-12 06:28:40 -0400 (Thu, 12 Mar 2009)
New Revision: 25610
Modified:
labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/main/java/org/jboss/labs/clearspace/plugin/hfurl/DbHFURLManager.java
labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/main/java/org/jboss/labs/clearspace/plugin/hfurl/HFURLManager.java
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
labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/main/java/org/jboss/labs/clearspace/plugin/hfurl/struts/mapping/HFURLMapping.java
labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/test/java/org/jboss/labs/clearspace/plugin/hfurl/DbHFURLManagerTest.java
labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/test/java/org/jboss/labs/clearspace/plugin/hfurl/struts/mapping/HFURLMappingTest.java
Log:
changed getDocumentID return type to List.
for one HF title can be more then one document.
Modified: labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/main/java/org/jboss/labs/clearspace/plugin/hfurl/DbHFURLManager.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/main/java/org/jboss/labs/clearspace/plugin/hfurl/DbHFURLManager.java 2009-03-12 09:46:57 UTC (rev 25609)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/main/java/org/jboss/labs/clearspace/plugin/hfurl/DbHFURLManager.java 2009-03-12 10:28:40 UTC (rev 25610)
@@ -21,7 +21,9 @@
*/
package org.jboss.labs.clearspace.plugin.hfurl;
+import java.util.ArrayList;
import java.util.Iterator;
+import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
@@ -31,7 +33,6 @@
import org.jboss.labs.clearspace.plugin.hfurl.dao.HFURLDAO;
import org.springframework.dao.EmptyResultDataAccessException;
-import com.jivesoftware.base.database.dao.DAOException;
import com.jivesoftware.community.Document;
import com.jivesoftware.community.DocumentState;
import com.jivesoftware.community.event.DocumentEvent;
@@ -85,30 +86,30 @@
return hfURLTitle;
}
- public String getDocumentID(String hfURLTitle) {
- String documentID = null;
+ public List<String> getDocumentID(String hfURLTitle) {
+ List<String> docIds = new ArrayList<String>();
if (hfURLCache.containsValue(hfURLTitle)) {
Iterator<Entry<String, String>> it = hfURLCache.entrySet().iterator();
while (it.hasNext()) {
Entry<String, String> pairs = it.next();
if (hfURLTitle.equals(pairs.getValue())) {
- documentID = pairs.getKey();
- break;
+ docIds.add(pairs.getKey());
}
}
} else {
- HFURLBean bean;
try {
- bean = hfURLDAO.getByHfURLTitle(hfURLTitle);
- documentID = bean.getDocumentID();
- hfURLCache.put(documentID, hfURLTitle);
+ List<HFURLBean> beans = hfURLDAO.getByHfURLTitle(hfURLTitle);
+ for (HFURLBean dbbean : beans) {
+ docIds.add(dbbean.getDocumentID());
+ hfURLCache.put(dbbean.getDocumentID(), hfURLTitle);
+ }
} catch (EmptyResultDataAccessException e) {
- documentID = "DOC-"; // non existing document
+ docIds.add("DOC-"); // non existing document
}
}
- return documentID;
+ return docIds;
}
// DOCUMENT LISTENER METHODS
@@ -160,6 +161,7 @@
bean.setHfTitle(hfURLTitle);
hfURLDAO.updateHFURL(bean);
+ hfURLCache.put(doc.getDocumentID(), hfURLTitle);
}
// User delete - it's not Administrator delete that fire documentDeleted
@@ -195,7 +197,7 @@
log.debug("documentUndeleted: " + event.getDocument().getDocumentID());
}
Document doc = event.getDocument();
-
+
try {
hfURLDAO.getByDocumentId(doc.getDocumentID());
// document HF URL founded - should not happen but rather check it
Modified: labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/main/java/org/jboss/labs/clearspace/plugin/hfurl/HFURLManager.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/main/java/org/jboss/labs/clearspace/plugin/hfurl/HFURLManager.java 2009-03-12 09:46:57 UTC (rev 25609)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/main/java/org/jboss/labs/clearspace/plugin/hfurl/HFURLManager.java 2009-03-12 10:28:40 UTC (rev 25610)
@@ -21,6 +21,8 @@
*/
package org.jboss.labs.clearspace.plugin.hfurl;
+import java.util.List;
+
/**
* Manager for handling with Human friendly URLs.
*
@@ -33,11 +35,11 @@
*
* @param hfURLTitle
* HF URL title.
- * @return ID of document i.e. DOC-1234 or null if document is not founded
+ * @return set of ID of document i.e. DOC-1234 or empty set if no document is founded
* @see #createHFURLTitle(String)
* @see com.jivesoftware.community.impl.dao.DocumentBean#getDocumentID()
*/
- public String getDocumentID(String hfURLTitle);
+ public List<String> getDocumentID(String hfURLTitle);
/**
* Create HF URL title
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-12 09:46:57 UTC (rev 25609)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/main/java/org/jboss/labs/clearspace/plugin/hfurl/dao/DbHFURLDAOImpl.java 2009-03-12 10:28:40 UTC (rev 25610)
@@ -23,6 +23,7 @@
import java.sql.ResultSet;
import java.sql.SQLException;
+import java.util.List;
import org.springframework.jdbc.core.simple.ParameterizedRowMapper;
import org.springframework.transaction.annotation.Transactional;
@@ -45,30 +46,29 @@
private static final String LOAD_HFURL_BY_HFTITLE = SELECT_FIELDS
+ " FROM humanFriendlyURLMap WHERE hfTitle=?";
-
+
private static final String LOAD_HFURL_BY_DOCUMENT_ID = SELECT_FIELDS
- + " FROM humanFriendlyURLMap WHERE documentID=?";
+ + " FROM humanFriendlyURLMap WHERE documentID=?";
private static final String INSERT_HFURL_ENTRY = "INSERT INTO humanFriendlyURLMap (id, hfTitle, documentID) VALUES (?, ?, ?)";
private static final String UPDATE_HFURL_ENTRY = "UPDATE humanFriendlyURLMap SET hfTitle=?, documentID=? WHERE id=?";
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();
- public HFURLBean getByHfURLTitle(String hfURLTitle) throws DAOException {
- return this.getSimpleJdbcTemplate().queryForObject(LOAD_HFURL_BY_HFTITLE,
- mapper, hfURLTitle);
+ public List<HFURLBean> getByHfURLTitle(String hfURLTitle) throws DAOException {
+ return this.getSimpleJdbcTemplate().query(LOAD_HFURL_BY_HFTITLE, mapper,
+ hfURLTitle);
}
-
+
public HFURLBean getByDocumentId(String documentId) throws DAOException {
- return this.getSimpleJdbcTemplate().queryForObject(LOAD_HFURL_BY_DOCUMENT_ID,
- mapper, documentId);
+ return this.getSimpleJdbcTemplate().queryForObject(
+ LOAD_HFURL_BY_DOCUMENT_ID, mapper, documentId);
}
-
@Transactional
public HFURLBean createHFURL(HFURLBean bean) throws DAOException {
@@ -93,9 +93,10 @@
}
public void deleteHFURL(String documentId) throws DAOException {
- getSimpleJdbcTemplate().update(DELETE_HFURL_ENTRY_BY_DOCUMENT_ID, documentId);
+ getSimpleJdbcTemplate().update(DELETE_HFURL_ENTRY_BY_DOCUMENT_ID,
+ documentId);
}
-
+
static final class HfURLMapMapper implements
ParameterizedRowMapper<HFURLBean> {
public HFURLBean mapRow(ResultSet rs, int rowNum) throws SQLException {
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-12 09:46:57 UTC (rev 25609)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/main/java/org/jboss/labs/clearspace/plugin/hfurl/dao/HFURLDAO.java 2009-03-12 10:28:40 UTC (rev 25610)
@@ -21,6 +21,8 @@
*/
package org.jboss.labs.clearspace.plugin.hfurl.dao;
+import java.util.List;
+
import org.springframework.dao.EmptyResultDataAccessException;
import com.jivesoftware.base.database.dao.DAOException;
@@ -36,10 +38,10 @@
* Get by HF URL Title
*
* @param hfURLTitle
- * @return HF URL Bean
+ * @return set of HF URL Bean
* @throws EmptyResultDataAccessException if document HF URL not found
*/
- public HFURLBean getByHfURLTitle(String hfURLTitle) throws EmptyResultDataAccessException;
+ public List<HFURLBean> getByHfURLTitle(String hfURLTitle) throws EmptyResultDataAccessException;
/**
* Get by documentId
Modified: labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/main/java/org/jboss/labs/clearspace/plugin/hfurl/struts/mapping/HFURLMapping.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/main/java/org/jboss/labs/clearspace/plugin/hfurl/struts/mapping/HFURLMapping.java 2009-03-12 09:46:57 UTC (rev 25609)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/main/java/org/jboss/labs/clearspace/plugin/hfurl/struts/mapping/HFURLMapping.java 2009-03-12 10:28:40 UTC (rev 25610)
@@ -21,6 +21,10 @@
*/
package org.jboss.labs.clearspace.plugin.hfurl.struts.mapping;
+import java.util.List;
+
+import org.apache.log4j.LogManager;
+import org.apache.log4j.Logger;
import org.apache.struts2.dispatcher.mapper.ActionMapping;
import org.jboss.labs.clearspace.plugin.hfurl.HFURLManager;
@@ -35,8 +39,10 @@
*/
public class HFURLMapping extends DocURLMapping {
+ private static final Logger log = LogManager.getLogger(HFURLMapping.class);
+
private HFURLManager hfURLManager;
-
+
public void process(String uri, ActionMapping mapping) {
uri = convertHFURL2StandardURL(uri);
super.process(uri, mapping);
@@ -44,6 +50,7 @@
/**
* Converts HF URL to standard CS URL
+ *
* @param uri
* @return
*/
@@ -58,21 +65,27 @@
} else {
hfURLTitle = uriElements[2];
}
- String documentID = hfURLManager.getDocumentID(hfURLTitle);
+ List<String> documentIDs = hfURLManager.getDocumentID(hfURLTitle);
- if (documentID == null) {
- // TODO document not found
- } else {
- final int hfURLTitleEndIndex = uri.indexOf(hfURLTitle) + hfURLTitle.length();
+ if (documentIDs.size() == 1) {
+ final int hfURLTitleEndIndex = uri.indexOf(hfURLTitle)
+ + hfURLTitle.length();
StringBuilder sb = new StringBuilder("/docs/");
- sb.append(documentID);
-
+ sb.append(documentIDs.get(0));
+
if (hfURLTitleEndIndex < uri.length()) {
sb.append(uri.substring(hfURLTitleEndIndex, uri.length()));
}
uri = sb.toString();
+ } else {
+ if (log.isDebugEnabled()) {
+ log.debug("More than one page is founded for title: " + hfURLTitle);
+ }
+ // TODO redirect to page with links to each document
+
+ // at now non existing page is returned.
+ uri = "/docs/DOC-";
}
-
}
return uri;
}
Modified: labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/test/java/org/jboss/labs/clearspace/plugin/hfurl/DbHFURLManagerTest.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/test/java/org/jboss/labs/clearspace/plugin/hfurl/DbHFURLManagerTest.java 2009-03-12 09:46:57 UTC (rev 25609)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/test/java/org/jboss/labs/clearspace/plugin/hfurl/DbHFURLManagerTest.java 2009-03-12 10:28:40 UTC (rev 25610)
@@ -24,6 +24,7 @@
import static org.junit.Assert.assertEquals;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import org.jboss.labs.clearspace.plugin.hfurl.dao.HFURLBean;
@@ -76,7 +77,7 @@
return null;
}
- public HFURLBean getByHfURLTitle(String hfURLTitle)
+ public List<HFURLBean> getByHfURLTitle(String hfURLTitle)
throws EmptyResultDataAccessException {
if ("not-existing".equals(hfURLTitle)) {
throw new EmptyResultDataAccessException("non existing document", 1);
@@ -93,7 +94,6 @@
/**
* Test method for
* {@link org.jboss.labs.clearspace.plugin.hfurl.DbHFURLManager#createHFURLTitle(java.lang.String)}
- * .
*/
@Test
public void testCreateHFURLTitle() {
@@ -121,16 +121,15 @@
/**
* Test method for
* {@link org.jboss.labs.clearspace.plugin.hfurl.DbHFURLManager#getDocumentID(java.lang.String)}
- * .
*/
@Test
public void testGetDocumentID() {
- assertEquals("DOC-1234", hfURLManager
- .getDocumentID("documentwithfriendlyurl"));
- assertEquals("DOC-2345", hfURLManager
- .getDocumentID("documentwithfriendlyurl2"));
+ assertEquals("DOC-1234", hfURLManager.getDocumentID(
+ "documentwithfriendlyurl").get(0));
+ assertEquals("DOC-2345", hfURLManager.getDocumentID(
+ "documentwithfriendlyurl2").get(0));
- assertEquals("DOC-", hfURLManager.getDocumentID("not-existing"));
+ assertEquals("DOC-", hfURLManager.getDocumentID("not-existing").get(0));
}
}
Modified: labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/test/java/org/jboss/labs/clearspace/plugin/hfurl/struts/mapping/HFURLMappingTest.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/test/java/org/jboss/labs/clearspace/plugin/hfurl/struts/mapping/HFURLMappingTest.java 2009-03-12 09:46:57 UTC (rev 25609)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/test/java/org/jboss/labs/clearspace/plugin/hfurl/struts/mapping/HFURLMappingTest.java 2009-03-12 10:28:40 UTC (rev 25610)
@@ -21,21 +21,25 @@
*/
package org.jboss.labs.clearspace.plugin.hfurl.struts.mapping;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import java.util.ArrayList;
+import java.util.List;
+
import org.jboss.labs.clearspace.plugin.hfurl.HFURLManager;
import org.junit.Before;
import org.junit.Test;
/**
* Tests of HFURLMapping
+ *
* @author <a href="mailto:lkrzyzan at redhat.com">Libor Krzyzanek</a>
- *
+ *
*/
public class HFURLMappingTest {
private HFURLMapping actionMapping;
-
+
@Before
public void setupHFURLMapping() {
actionMapping = new HFURLMapping();
@@ -45,32 +49,49 @@
return null;
}
- public String getDocumentID(String hfURLTitle) {
- return "DOC-1234";
+ public List<String> getDocumentID(String hfURLTitle) {
+ List<String> docIds = new ArrayList<String>();
+ docIds.add("DOC-1234");
+ return docIds;
}
-
+
});
}
-
+
/**
- * Test method for {@link org.jboss.labs.clearspace.plugin.hfurl.struts.mapping.HFURLMapping#convertHFURL2StandardURL(java.lang.String)}.
+ * Test method for
+ * {@link org.jboss.labs.clearspace.plugin.hfurl.struts.mapping.HFURLMapping#convertHFURL2StandardURL(java.lang.String)}
+ * .
*/
@Test
public void testConvertHFURL2StandardURL() {
- assertEquals("/docs/DOC-1234", actionMapping.convertHFURL2StandardURL("/doc/JDKs"));
- assertEquals("/docs/DOC-1234.pdf", actionMapping.convertHFURL2StandardURL("/doc/JDKs.pdf"));
-
- assertEquals("/docs/DOC-1234/collaborate", actionMapping.convertHFURL2StandardURL("/doc/JDKs/collaborate"));
- assertEquals("/docs/DOC-1234/edit", actionMapping.convertHFURL2StandardURL("/doc/JDKs/edit"));
- assertEquals("/docs/DOC-1234/upload", actionMapping.convertHFURL2StandardURL("/doc/JDKs/upload"));
- assertEquals("/docs/DOC-1234/diff", actionMapping.convertHFURL2StandardURL("/doc/JDKs/diff"));
- assertEquals("/docs/DOC-1234/restore", actionMapping.convertHFURL2StandardURL("/doc/JDKs/restore"));
- assertEquals("/docs/DOC-1234/deleteVersion", actionMapping.convertHFURL2StandardURL("/doc/JDKs/deleteVersion"));
- assertEquals("/docs/DOC-1234/authors", actionMapping.convertHFURL2StandardURL("/doc/JDKs/authors"));
- assertEquals("/docs/DOC-1234/version", actionMapping.convertHFURL2StandardURL("/doc/JDKs/version"));
- assertEquals("/docs/DOC-1234/version/5", actionMapping.convertHFURL2StandardURL("/doc/JDKs/version/5"));
- assertEquals("/docs/DOC-1234/diff/", actionMapping.convertHFURL2StandardURL("/doc/JDKs/diff/"));
- assertEquals("/docs/DOC-1234/delete", actionMapping.convertHFURL2StandardURL("/doc/JDKs/delete"));
+ assertEquals("/docs/DOC-1234", actionMapping
+ .convertHFURL2StandardURL("/doc/JDKs"));
+ assertEquals("/docs/DOC-1234.pdf", actionMapping
+ .convertHFURL2StandardURL("/doc/JDKs.pdf"));
+
+ assertEquals("/docs/DOC-1234/collaborate", actionMapping
+ .convertHFURL2StandardURL("/doc/JDKs/collaborate"));
+ assertEquals("/docs/DOC-1234/edit", actionMapping
+ .convertHFURL2StandardURL("/doc/JDKs/edit"));
+ assertEquals("/docs/DOC-1234/upload", actionMapping
+ .convertHFURL2StandardURL("/doc/JDKs/upload"));
+ assertEquals("/docs/DOC-1234/diff", actionMapping
+ .convertHFURL2StandardURL("/doc/JDKs/diff"));
+ assertEquals("/docs/DOC-1234/restore", actionMapping
+ .convertHFURL2StandardURL("/doc/JDKs/restore"));
+ assertEquals("/docs/DOC-1234/deleteVersion", actionMapping
+ .convertHFURL2StandardURL("/doc/JDKs/deleteVersion"));
+ assertEquals("/docs/DOC-1234/authors", actionMapping
+ .convertHFURL2StandardURL("/doc/JDKs/authors"));
+ assertEquals("/docs/DOC-1234/version", actionMapping
+ .convertHFURL2StandardURL("/doc/JDKs/version"));
+ assertEquals("/docs/DOC-1234/version/5", actionMapping
+ .convertHFURL2StandardURL("/doc/JDKs/version/5"));
+ assertEquals("/docs/DOC-1234/diff/", actionMapping
+ .convertHFURL2StandardURL("/doc/JDKs/diff/"));
+ assertEquals("/docs/DOC-1234/delete", actionMapping
+ .convertHFURL2StandardURL("/doc/JDKs/delete"));
}
}
More information about the jboss-svn-commits
mailing list