[jboss-svn-commits] JBL Code SVN: r25793 - in labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src: main/java/org/jboss/labs/clearspace/plugin/hfurl/struts/components and 4 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Mar 24 04:53:08 EDT 2009


Author: lkrzyzanek
Date: 2009-03-24 04:53:08 -0400 (Tue, 24 Mar 2009)
New Revision: 25793

Removed:
   labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/test/java/org/jboss/labs/clearspace/plugin/hfurl/struts/components/HFURLComponentTest.java
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/struts/components/HFURLComponent.java
   labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/main/resources/spring.xml
   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:
converting standard URL to HF URL moved from component to Manager.
added method getHFURL to Manger which is accessible via DWR also

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-23 20:55:44 UTC (rev 25792)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/main/java/org/jboss/labs/clearspace/plugin/hfurl/DbHFURLManager.java	2009-03-24 08:53:08 UTC (rev 25793)
@@ -61,6 +61,8 @@
 
   private String hfULRPrefix;
 
+  private String docIdURLPrefix;
+
   public long getIndexedURLsCount() {
     return hfURLDAO.getIndexedURLsCount();
   }
@@ -134,6 +136,63 @@
     return hfURLTitle;
   }
 
+  public String getHFURL(String standardURL) {
+    String hfURL = standardURL;
+    try {
+      if (standardURL != null && standardURL.contains(docIdURLPrefix + "/")) {
+        final String documentId = getDocumentId(standardURL);
+        final String hfTitle = getHfURLTitle(documentId);
+        hfURL = standardURL.replaceFirst(docIdURLPrefix + "/" + documentId,
+            getHfULRPrefix() + "/" + hfTitle);
+        if (log.isDebugEnabled()) {
+          log.debug("Founded title: " + hfTitle + ", for documentID: "
+              + documentId);
+          log.debug("Transformed URL: " + hfURL);
+        }
+      }
+    } catch (EmptyResultDataAccessException e) {
+      log.debug("HF URL not defined. Returning original URL");
+    } catch (Exception e) {
+      log.error("Error occur while changing URL to Human friendly URL."
+          + " Returning original URL", e);
+      // something wrong - catch it and use original URL
+    }
+    return hfURL;
+  }
+
+  /**
+   * Get Document ID from URL
+   * 
+   * @param url
+   *          URL in standard CS format i.e. /docs/DOC-1234
+   * @return document ID i.e. DOC-1234
+   */
+  protected String getDocumentId(String url) {
+    log.trace("Test of question mark");
+    final int questionMark = url.indexOf('?');
+    if (questionMark != -1) {
+      url = url.substring(0, questionMark);
+    }
+    log.trace("Test of ;jsessionid");
+    final int jsessionid = url.indexOf(";jsessionid");
+    if (jsessionid != -1) {
+      url = url.substring(0, jsessionid);
+    }
+    log.trace("Test of .pdf");
+    if (url.endsWith(".pdf")) {
+      url = url.replace(".pdf", "");
+    }
+
+    final int docIDStart = url.indexOf(docIdURLPrefix + "/")
+        + docIdURLPrefix.length() + 1;
+    int docIDEnd = url.indexOf("/", docIDStart);
+    if (docIDEnd == -1) {
+      docIDEnd = url.length();
+    }
+
+    return url.substring(docIDStart, docIDEnd);
+  }
+
   public List<String> getDocumentID(String hfURLTitle) {
     List<String> docIds = new ArrayList<String>();
     if (hfURLCache.containsValue(hfURLTitle)) {
@@ -294,4 +353,8 @@
     return hfULRPrefix;
   }
 
+  public void setDocIdURLPrefix(String docIdURLPrefix) {
+    this.docIdURLPrefix = docIdURLPrefix;
+  }
+
 }

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-23 20:55:44 UTC (rev 25792)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/main/java/org/jboss/labs/clearspace/plugin/hfurl/HFURLManager.java	2009-03-24 08:53:08 UTC (rev 25793)
@@ -70,6 +70,13 @@
    * @see com.jivesoftware.community.impl.dao.DocumentBean#getDocumentID()
    */
   public List<String> getDocumentID(String hfURLTitle);
+  
+  /**
+   * Get human friendly URL from standard CS URL
+   * @param standardURL i.e. /docs/DOC-1234
+   * @return i.e. /wiki/humanFriendlyURL
+   */
+  public String getHFURL(String standardURL);
 
   /**
    * Get HF URL Title for document ID

Modified: labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/main/java/org/jboss/labs/clearspace/plugin/hfurl/struts/components/HFURLComponent.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/main/java/org/jboss/labs/clearspace/plugin/hfurl/struts/components/HFURLComponent.java	2009-03-23 20:55:44 UTC (rev 25792)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/main/java/org/jboss/labs/clearspace/plugin/hfurl/struts/components/HFURLComponent.java	2009-03-24 08:53:08 UTC (rev 25793)
@@ -33,7 +33,6 @@
 import org.apache.struts2.StrutsException;
 import org.apache.struts2.components.URL;
 import org.jboss.labs.clearspace.plugin.hfurl.HFURLManager;
-import org.springframework.dao.EmptyResultDataAccessException;
 
 import com.opensymphony.xwork2.util.ValueStack;
 
@@ -47,8 +46,6 @@
 
   private HFURLManager hfURLManager;
 
-  private final static String DOCID_PREFIX = "/docs/";
-
   public HFURLComponent(ValueStack stack, HttpServletRequest req,
       HttpServletResponse res) {
     super(stack, req, res);
@@ -69,26 +66,7 @@
       log.debug("original URL: " + url);
     }
 
-    try {
-      if (url != null && url.contains(DOCID_PREFIX)) {
-        final String documentId = getDocumentId(url);
-        final String hfTitle = hfURLManager.getHfURLTitle(documentId);
-        url = url.replaceFirst(DOCID_PREFIX + documentId, hfURLManager
-            .getHfULRPrefix()
-            + "/" + hfTitle);
-        if (log.isDebugEnabled()) {
-          log.debug("Founded title: " + hfTitle + ", for documentID: "
-              + documentId);
-          log.debug("Transformed URL: " + url);
-        }
-      }
-    } catch (EmptyResultDataAccessException e) {
-      log.debug("HF URL not defined. Returning original URL");
-    } catch (Exception e) {
-      log.error("Error occur while changing URL to Human friendly URL."
-          + " Returning original URL", e);
-      // something wrong - catch it and use original URL
-    }
+    url = hfURLManager.getHFURL(url);
 
     try {
       writer.write(url);
@@ -98,38 +76,6 @@
     return result;
   }
 
-  /**
-   * Get Document ID from URL
-   * 
-   * @param url
-   *          URL in standard CS format i.e. /docs/DOC-1234
-   * @return document ID i.e. DOC-1234
-   */
-  protected static String getDocumentId(String url) {
-    log.trace("Test of question mark");
-    final int questionMark = url.indexOf('?');
-    if (questionMark != -1) {
-      url = url.substring(0, questionMark);
-    }
-    log.trace("Test of ;jsessionid");
-    final int jsessionid = url.indexOf(";jsessionid");
-    if (jsessionid != -1) {
-      url = url.substring(0, jsessionid);
-    }
-    log.trace("Test of .pdf");
-    if (url.endsWith(".pdf")) {
-      url = url.replace(".pdf", "");
-    }
-
-    final int docIDStart = url.indexOf(DOCID_PREFIX) + DOCID_PREFIX.length();
-    int docIDEnd = url.indexOf("/", docIDStart);
-    if (docIDEnd == -1) {
-      docIDEnd = url.length();
-    }
-
-    return url.substring(docIDStart, docIDEnd);
-  }
-
   public void setHfURLManager(HFURLManager hfURLManager) {
     this.hfURLManager = hfURLManager;
   }

Modified: labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/main/resources/spring.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/main/resources/spring.xml	2009-03-23 20:55:44 UTC (rev 25792)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/main/resources/spring.xml	2009-03-24 08:53:08 UTC (rev 25793)
@@ -26,9 +26,10 @@
     </property>
     <property name="hfURLDAO" ref="hfURLDAO" />
     <property name="hfULRPrefix" value="/wiki" />
+    <property name="docIdURLPrefix" value="/docs" />
 
     <dwr:remote javascript="HFURLManager">
-      <dwr:include method="getHfURLTitle" />
+      <dwr:include method="getHFURL" />
     </dwr:remote>
   </bean>
 

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-23 20:55:44 UTC (rev 25792)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/test/java/org/jboss/labs/clearspace/plugin/hfurl/DbHFURLManagerTest.java	2009-03-24 08:53:08 UTC (rev 25793)
@@ -50,6 +50,8 @@
   @Before
   public void setupHFURLManager() {
     hfURLManager = new DbHFURLManager();
+    hfURLManager.setDocIdURLPrefix("/docs");
+    hfURLManager.setHfULRPrefix("/wiki");
 
     hfURLCache = new CoherenceCache();
 
@@ -139,4 +141,35 @@
     assertEquals(0, hfURLManager.getDocumentID("not-existing").size());
   }
 
+  @Test
+  public void testGetHFURL() {
+    assertEquals("/wiki/documentwithfriendlyurl", hfURLManager
+        .getHFURL("/docs/DOC-1234"));
+    assertEquals("/wiki/documentwithfriendlyurl.pdf", hfURLManager
+        .getHFURL("/docs/DOC-1234.pdf"));
+  }
+
+  @Test
+  public void testGetDocumentId() {
+    assertEquals("DOC-1234", hfURLManager
+        .getDocumentId("/community/docs/DOC-1234"));
+    assertEquals("DOC-1234", hfURLManager
+        .getDocumentId("/community/docs/DOC-1234.pdf"));
+    assertEquals("DOC-10350", hfURLManager
+        .getDocumentId("/community/docs/DOC-10350"));
+    assertEquals("DOC-1234", hfURLManager
+        .getDocumentId("/community/docs/DOC-1234/edit"));
+
+    assertEquals("DOC-1234", hfURLManager
+        .getDocumentId("/community/docs/DOC-1234?decorator=print"));
+    assertEquals("DOC-1234", hfURLManager
+        .getDocumentId("/community/docs/DOC-1234/edit?decorator=print"));
+
+    assertEquals(
+        "DOC-1234",
+        hfURLManager
+            .getDocumentId("/community/docs/DOC-1234;jsessionid=4666CC84E4D942F30DA3A5C3142D1DA4"));
+
+  }
+
 }

Deleted: labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/test/java/org/jboss/labs/clearspace/plugin/hfurl/struts/components/HFURLComponentTest.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/test/java/org/jboss/labs/clearspace/plugin/hfurl/struts/components/HFURLComponentTest.java	2009-03-23 20:55:44 UTC (rev 25792)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/test/java/org/jboss/labs/clearspace/plugin/hfurl/struts/components/HFURLComponentTest.java	2009-03-24 08:53:08 UTC (rev 25793)
@@ -1,49 +0,0 @@
-/*
- * JBoss.org http://jboss.org/
- *
- * Copyright (c) 2009  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.clearspace.plugin.hfurl.struts.components;
-
-import static org.junit.Assert.assertEquals;
-import org.junit.Test;
-
-/**
- * Test of HF URL Component
- * 
- * @author <a href="mailto:lkrzyzan at redhat.com">Libor Krzyzanek</a>
- * 
- */
-public class HFURLComponentTest {
-
-  @Test
-  public void testGetDocumentId() {
-    assertEquals("DOC-1234", HFURLComponent.getDocumentId("/community/docs/DOC-1234"));
-    assertEquals("DOC-1234", HFURLComponent.getDocumentId("/community/docs/DOC-1234.pdf"));
-    assertEquals("DOC-10350", HFURLComponent.getDocumentId("/community/docs/DOC-10350"));
-    assertEquals("DOC-1234", HFURLComponent.getDocumentId("/community/docs/DOC-1234/edit"));
-
-    assertEquals("DOC-1234", HFURLComponent.getDocumentId("/community/docs/DOC-1234?decorator=print"));
-    assertEquals("DOC-1234", HFURLComponent.getDocumentId("/community/docs/DOC-1234/edit?decorator=print"));
-
-    assertEquals("DOC-1234", HFURLComponent.getDocumentId("/community/docs/DOC-1234;jsessionid=4666CC84E4D942F30DA3A5C3142D1DA4"));
-
-  }
-
-}

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-23 20:55:44 UTC (rev 25792)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/test/java/org/jboss/labs/clearspace/plugin/hfurl/struts/mapping/HFURLMappingTest.java	2009-03-24 08:53:08 UTC (rev 25793)
@@ -50,6 +50,10 @@
   public void setupHFURLMapping() {
     actionMapping = new HFURLMapping();
     actionMapping.setHfURLManager(new HFURLManager() {
+      public String getHFURL(String standardURL) {
+        return null;
+      }
+      
       public boolean isHFLinksEnabled() {
         return false;
       }




More information about the jboss-svn-commits mailing list