[jboss-svn-commits] JBL Code SVN: r25621 - in labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src: main/java/org/jboss/labs/clearspace/plugin/hfurl/struts/mapping and 3 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Mar 12 12:01:16 EDT 2009
Author: lkrzyzanek
Date: 2009-03-12 12:01:16 -0400 (Thu, 12 Mar 2009)
New Revision: 25621
Added:
labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/main/java/org/jboss/labs/clearspace/plugin/hfurl/struts/NavigationAction.java
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/resources/struts.xml
labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/main/web/navigation.ftl
labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/test/java/org/jboss/labs/clearspace/plugin/hfurl/struts/mapping/HFURLMappingTest.java
Log:
added navigation of more then one matching documents
Added: labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/main/java/org/jboss/labs/clearspace/plugin/hfurl/struts/NavigationAction.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/main/java/org/jboss/labs/clearspace/plugin/hfurl/struts/NavigationAction.java (rev 0)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/main/java/org/jboss/labs/clearspace/plugin/hfurl/struts/NavigationAction.java 2009-03-12 16:01:16 UTC (rev 25621)
@@ -0,0 +1,110 @@
+/*
+ * 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;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.log4j.LogManager;
+import org.apache.log4j.Logger;
+import org.jboss.labs.clearspace.plugin.hfurl.struts.mapping.HFURLMapping;
+
+import com.jivesoftware.community.Community;
+import com.jivesoftware.community.CommunityManager;
+import com.jivesoftware.community.CommunityNotFoundException;
+import com.jivesoftware.community.Document;
+import com.jivesoftware.community.DocumentAlreadyExistsException;
+import com.jivesoftware.community.DocumentManager;
+import com.jivesoftware.community.DocumentObjectNotFoundException;
+import com.jivesoftware.community.action.JiveActionSupport;
+
+/**
+ * @author <a href="mailto:lkrzyzan at redhat.com">Libor Krzyzanek</a>
+ *
+ */
+public class NavigationAction extends JiveActionSupport {
+
+ private static final Logger log = LogManager.getLogger(HFURLMapping.class);
+
+ List<String> docIds;
+
+ List<Document> documents = new ArrayList<Document>();
+
+ protected DocumentManager documentManager;
+
+ private CommunityManager communityManager;
+
+ @Override
+ public String execute() {
+ log.debug(docIds);
+
+ for (String docId : docIds) {
+ try {
+ Document doc = documentManager.getDocument(docId);
+
+ String wholeTitle = doc.getSubject();
+
+ Community currentCommunity = communityManager.getCommunity(doc
+ .getContainerID());
+
+ wholeTitle = currentCommunity.getDisplayName() + ">" + wholeTitle;
+
+ documents.add(doc);
+ } catch (DocumentObjectNotFoundException e) {
+ log.error("Document not found for HF URL", e);
+ // TODO Probably we can remove record from HF URL Map
+ } catch (CommunityNotFoundException e) {
+
+ }
+ // TODO Catch and handle UnauthorizedException
+
+ }
+ log.debug(documents);
+
+ return SUCCESS;
+ }
+
+ public List<String> getDocIds() {
+ return docIds;
+ }
+
+ public void setDocIds(List<String> docIds) {
+ this.docIds = docIds;
+ }
+
+ public List<Document> getDocuments() {
+ return documents;
+ }
+
+ public void setDocuments(List<Document> documents) {
+ this.documents = documents;
+ }
+
+ public void setDocumentManager(DocumentManager documentManager) {
+ this.documentManager = documentManager;
+ }
+
+ public void setCommunityManager(CommunityManager communityManager) {
+ this.communityManager = communityManager;
+ }
+
+}
Property changes on: labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/main/java/org/jboss/labs/clearspace/plugin/hfurl/struts/NavigationAction.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
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 16:00:13 UTC (rev 25620)
+++ 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 16:01:16 UTC (rev 25621)
@@ -21,7 +21,9 @@
*/
package org.jboss.labs.clearspace.plugin.hfurl.struts.mapping;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
@@ -48,7 +50,12 @@
private HFURLManager hfURLManager;
public void process(String uri, ActionMapping mapping) {
- uri = convertHFURL2StandardURL(uri);
+ Map<String, String> params = mapping.getParams();
+ if (null == params) {
+ params = new HashMap<String, String>();
+ }
+ uri = convertHFURL2StandardURL(uri, params);
+ mapping.setParams(params);
if (DOC_NOT_FOUND.equals(uri)) {
mapping.setName("wikiNotFound");
mapping.setNamespace("/hfurl");
@@ -64,10 +71,13 @@
* Converts HF URL to standard CS URL
*
* @param uri
+ * @param params
+ * action params
* @return /docs/DOC-XXXX or value of {@link #DOC_NOT_FOUND} or
* {@link #DOC_MORE_THAN_ONE}
*/
- protected String convertHFURL2StandardURL(String uri) {
+ protected String convertHFURL2StandardURL(String uri,
+ Map<String, String> params) {
String[] uriElements = uri.split("/");
if (uriElements.length > 2) {
// in this case try to switch from HF URL to standard CS URL
@@ -97,7 +107,11 @@
} else {
if (log.isDebugEnabled()) {
log.debug("More than one page is founded for title: " + hfURLTitle);
+ log.debug("docIds: " + documentIDs);
}
+ for (int i = 0; i < documentIDs.size(); i++) {
+ params.put("docIds[" + i + "]", documentIDs.get(i));
+ }
uri = DOC_MORE_THAN_ONE;
}
}
Modified: labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/main/resources/struts.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/main/resources/struts.xml 2009-03-12 16:00:13 UTC (rev 25620)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/main/resources/struts.xml 2009-03-12 16:01:16 UTC (rev 25621)
@@ -8,7 +8,7 @@
to HF URL then show this page
-->
<action name="wikiNavigation"
- class="com.jivesoftware.community.action.JiveActionSupport">
+ class="org.jboss.labs.clearspace.plugin.hfurl.struts.NavigationAction">
<result name="success">/plugins/human-friendly-urls/navigation.ftl
</result>
</action>
Modified: labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/main/web/navigation.ftl
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/main/web/navigation.ftl 2009-03-12 16:00:13 UTC (rev 25620)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-hfurl/src/main/web/navigation.ftl 2009-03-12 16:01:16 UTC (rev 25621)
@@ -8,5 +8,12 @@
<body>
<h1>${title}</h1>
<p><@s.text name="plugin.hfurl.navigation.description" /></p>
+ <ul>
+ <#list documents as doc>
+ <li>
+ <a href="<@s.url value='/docs/${doc.documentID}' includeParams='none'/>">${doc.jiveContainer.name} - ${doc.subject}</a>
+ </li>
+ </#list>
+ </ul>
</body>
</html>
\ No newline at end of file
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 16:00:13 UTC (rev 25620)
+++ 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 16:01:16 UTC (rev 25621)
@@ -21,10 +21,13 @@
*/
package org.jboss.labs.clearspace.plugin.hfurl.struts.mapping;
-import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.*;
-import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.LinkedList;
import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
import org.jboss.labs.clearspace.plugin.hfurl.HFURLManager;
import org.junit.Before;
@@ -40,6 +43,9 @@
private HFURLMapping actionMapping;
+ private final String DOC1 = "DOC-1234";
+ private final String DOC2 = "DOC-2345";
+
@Before
public void setupHFURLMapping() {
actionMapping = new HFURLMapping();
@@ -50,13 +56,13 @@
}
public List<String> getDocumentID(String hfURLTitle) {
- List<String> docIds = new ArrayList<String>();
+ List<String> docIds = new LinkedList<String>();
if (hfURLTitle.equals("nonExisting")) {
} else if (hfURLTitle.equals("duplicate")) {
- docIds.add("DOC-1234");
- docIds.add("DOC-2345");
+ docIds.add(DOC1);
+ docIds.add(DOC2);
} else {
- docIds.add("DOC-1234");
+ docIds.add(DOC1);
}
return docIds;
}
@@ -71,39 +77,44 @@
*/
@Test
public void testConvertHFURL2StandardURL() {
- assertEquals("/docs/DOC-1234", actionMapping
- .convertHFURL2StandardURL("/doc/JDKs"));
- assertEquals("/docs/DOC-1234.pdf", actionMapping
- .convertHFURL2StandardURL("/doc/JDKs.pdf"));
+ Map<String, String> params = new HashMap<String, String>();
+ assertEquals("/docs/DOC-1234", actionMapping.convertHFURL2StandardURL(
+ "/doc/JDKs", params));
+ assertEquals("/docs/DOC-1234.pdf", actionMapping.convertHFURL2StandardURL(
+ "/doc/JDKs.pdf", params));
+
assertEquals("/docs/DOC-1234/collaborate", actionMapping
- .convertHFURL2StandardURL("/doc/JDKs/collaborate"));
- assertEquals("/docs/DOC-1234/edit", actionMapping
- .convertHFURL2StandardURL("/doc/JDKs/edit"));
+ .convertHFURL2StandardURL("/doc/JDKs/collaborate", params));
+ assertEquals("/docs/DOC-1234/edit", actionMapping.convertHFURL2StandardURL(
+ "/doc/JDKs/edit", params));
assertEquals("/docs/DOC-1234/upload", actionMapping
- .convertHFURL2StandardURL("/doc/JDKs/upload"));
- assertEquals("/docs/DOC-1234/diff", actionMapping
- .convertHFURL2StandardURL("/doc/JDKs/diff"));
+ .convertHFURL2StandardURL("/doc/JDKs/upload", params));
+ assertEquals("/docs/DOC-1234/diff", actionMapping.convertHFURL2StandardURL(
+ "/doc/JDKs/diff", params));
assertEquals("/docs/DOC-1234/restore", actionMapping
- .convertHFURL2StandardURL("/doc/JDKs/restore"));
+ .convertHFURL2StandardURL("/doc/JDKs/restore", params));
assertEquals("/docs/DOC-1234/deleteVersion", actionMapping
- .convertHFURL2StandardURL("/doc/JDKs/deleteVersion"));
+ .convertHFURL2StandardURL("/doc/JDKs/deleteVersion", params));
assertEquals("/docs/DOC-1234/authors", actionMapping
- .convertHFURL2StandardURL("/doc/JDKs/authors"));
+ .convertHFURL2StandardURL("/doc/JDKs/authors", params));
assertEquals("/docs/DOC-1234/version", actionMapping
- .convertHFURL2StandardURL("/doc/JDKs/version"));
+ .convertHFURL2StandardURL("/doc/JDKs/version", params));
assertEquals("/docs/DOC-1234/version/5", actionMapping
- .convertHFURL2StandardURL("/doc/JDKs/version/5"));
+ .convertHFURL2StandardURL("/doc/JDKs/version/5", params));
assertEquals("/docs/DOC-1234/diff/", actionMapping
- .convertHFURL2StandardURL("/doc/JDKs/diff/"));
+ .convertHFURL2StandardURL("/doc/JDKs/diff/", params));
assertEquals("/docs/DOC-1234/delete", actionMapping
- .convertHFURL2StandardURL("/doc/JDKs/delete"));
+ .convertHFURL2StandardURL("/doc/JDKs/delete", params));
assertEquals(HFURLMapping.DOC_NOT_FOUND, actionMapping
- .convertHFURL2StandardURL("/doc/nonExisting"));
+ .convertHFURL2StandardURL("/doc/nonExisting", params));
+
+ Map<String, String> duplicateParams = new HashMap<String, String>();
assertEquals(HFURLMapping.DOC_MORE_THAN_ONE, actionMapping
- .convertHFURL2StandardURL("/doc/duplicate"));
-
+ .convertHFURL2StandardURL("/doc/duplicate", duplicateParams));
+ assertEquals(DOC1, duplicateParams.get("docIds[0]"));
+ assertEquals(DOC2, duplicateParams.get("docIds[1]"));
}
}
More information about the jboss-svn-commits
mailing list