Update of
/var/cvs/contributions/CMSContainer_Modules/alias/src/java/com/finalist/cmsc/alias
In directory
james.mmbase.org:/tmp/cvs-serv24748/alias/src/java/com/finalist/cmsc/alias
Modified Files:
AliasNavigationRenderer.java AliasNavigationItemManager.java
Log Message:
CMSC-639 Add virtual page functionality - Alias
See also:
http://cvs.mmbase.org/viewcvs/contributions/CMSContainer_Modules/alias/src/java/com/finalist/cmsc/alias
See also: http://www.mmbase.org/jira/browse/CMSC-639
Index: AliasNavigationRenderer.java
===================================================================
RCS file:
/var/cvs/contributions/CMSContainer_Modules/alias/src/java/com/finalist/cmsc/alias/AliasNavigationRenderer.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- AliasNavigationRenderer.java 1 Feb 2008 12:18:57 -0000 1.5
+++ AliasNavigationRenderer.java 1 Feb 2008 16:25:35 -0000 1.6
@@ -1,8 +1,14 @@
package com.finalist.cmsc.alias;
+import java.io.IOException;
+
import javax.servlet.ServletConfig;
import javax.servlet.http.*;
+import org.apache.commons.lang.StringUtils;
+import org.mmbase.util.logging.Logger;
+import org.mmbase.util.logging.Logging;
+
import com.finalist.cmsc.alias.beans.om.Alias;
import com.finalist.cmsc.beans.om.NavigationItem;
import com.finalist.cmsc.navigation.*;
@@ -13,6 +19,9 @@
public class AliasNavigationRenderer implements NavigationItemRenderer {
+ /** MMbase logging system */
+ private static Logger log =
Logging.getLoggerInstance(AliasNavigationRenderer.class.getName());
+
protected static String CONTENT_TYPE = "text/html";
public void render(NavigationItem item, HttpServletRequest request,
HttpServletResponse response,
@@ -40,10 +49,22 @@
registry.setScreen(oldScreen);
}
else {
+ String url = alias.getUrl();
+ if (!StringUtils.isBlank(url)) {
+ String redirect = response.encodeRedirectURL(url);
+ try {
+ response.sendRedirect(redirect);
+ }
+ catch (IOException e) {
+ log.debug("" + e.getMessage(), e);
+ }
+ }
+ else {
throw new IllegalArgumentException(
"Trying to resolve Alias without related pages
id:"+item.getId());
}
}
+ }
else {
throw new IllegalArgumentException(
"Got a wrong type in the AliasNavigationRenderer (only wants
Alias), was" + item.getClass());
Index: AliasNavigationItemManager.java
===================================================================
RCS file:
/var/cvs/contributions/CMSContainer_Modules/alias/src/java/com/finalist/cmsc/alias/AliasNavigationItemManager.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- AliasNavigationItemManager.java 28 Jan 2008 21:16:09 -0000 1.4
+++ AliasNavigationItemManager.java 1 Feb 2008 16:25:35 -0000 1.5
@@ -39,12 +39,18 @@
}
Alias alias = MMBaseNodeMapper.copyNode(node, Alias.class);
- NodeList relatedNodes = node.getRelatedNodes("page", "related",
"destination");
- if(relatedNodes.size() > 0) {
- Node page = relatedNodes.getNode(0);
+ NodeList relatedPages = node.getRelatedNodes("page", "related",
"destination");
+ if(relatedPages.size() > 0) {
+ Node page = relatedPages.getNode(0);
alias.setPage(page.getNumber());
}
+ NodeList relatedUrls = node.getRelatedNodes("urls", "related",
"destination");
+ if(relatedUrls.size() > 0) {
+ Node url = relatedUrls.getNode(0);
+ alias.setUrl(url.getStringValue("url"));
+ }
+
return alias;
}
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs