Author: rich
Date: Mon Dec 6 16:49:16 2004
New Revision: 110061
URL: http://svn.apache.org/viewcvs?view=rev&rev=110061
Log:
This is a contribution from Carlin Rogers:
- Remove obsolete class,
org.apache.beehive.netui.pageflow.util.PageflowTagUtils
- Moved the new PageFlowTagUtils class from the package,
org.apache.beehive.netui.tags, to the package,
org.apache.beehive.netui.tags.internal, to indicate that
this is used internally by tags and not really intended
as part of an external API.
- Added a new method to PageFlowTagUtils, rewriteHrefURL(),
to ensure that the url type is action rather than resource
for the rewriting.
- Modified abstract base URLRewriter class to allow a
rewriter to be defined as exclusive within the chain of
rewriters. (I.E. Not allow other rewriters when registered)."
Thanks Carlin!
DRT: netui (WinXP)
BB: self (linux)
Added:
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/internal/
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/internal/PageFlowTagUtils.java
- copied, changed from r110053,
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/PageFlowTagUtils.java
Removed:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/util/PageflowTagUtils.java
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/PageFlowTagUtils.java
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowPageFilter.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowRequestProcessor.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/util/URLRewriterService.java
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/util/JspUtil.java
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/AnchorBase.java
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Button.java
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Form.java
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Image.java
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/ImageAnchor.java
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/ImageButton.java
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/RewriteURL.java
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/Tree.java
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeItem.java
incubator/beehive/trunk/netui/src/util/org/apache/beehive/netui/core/urls/URLRewriter.java
incubator/beehive/trunk/netui/src/util/org/apache/beehive/netui/core/urls/URLRewriterService.java
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowPageFilter.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowPageFilter.java?view=diff&rev=110061&p1=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowPageFilter.java&r1=110060&p2=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowPageFilter.java&r2=110061
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowPageFilter.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowPageFilter.java
Mon Dec 6 16:49:16 2004
@@ -155,7 +155,7 @@
//
// Register the default URLRewriter
//
- URLRewriterService.registerURLRewriter( request, new
DefaultURLRewriter() );
+ URLRewriterService.registerURLRewriter( 0, request, new
DefaultURLRewriter() );
try
{
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowRequestProcessor.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowRequestProcessor.java?view=diff&rev=110061&p1=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowRequestProcessor.java&r1=110060&p2=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowRequestProcessor.java&r2=110061
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowRequestProcessor.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowRequestProcessor.java
Mon Dec 6 16:49:16 2004
@@ -740,7 +740,7 @@
//
// Register the default URLRewriter
//
- URLRewriterService.registerURLRewriter( request, new
DefaultURLRewriter() );
+ URLRewriterService.registerURLRewriter( 0, request, new
DefaultURLRewriter() );
try
{
Deleted:
/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/util/PageflowTagUtils.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/util/PageflowTagUtils.java?view=auto&rev=110060
==============================================================================
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/util/URLRewriterService.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/util/URLRewriterService.java?view=diff&rev=110061&p1=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/util/URLRewriterService.java&r1=110060&p2=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/util/URLRewriterService.java&r2=110061
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/util/URLRewriterService.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/util/URLRewriterService.java
Mon Dec 6 16:49:16 2004
@@ -159,6 +159,13 @@
{
request.setAttribute(URL_REWRITER_KEY, rewriter);
org.apache.beehive.netui.core.urls.URLRewriter rewriterWrapper = new
OldURLRewriterWrapper(rewriter);
+
+ //
+ // Note that the old URLRewriterService behavior only registered a
single rewriter.
+ // We need to remove all the existing rewriters to avoid side effects.
+ //
+ rewriterWrapper.setAllowOtherRewriters( false );
+
org.apache.beehive.netui.core.urls.URLRewriterService.unregisterAllURLRewriters(request);
org.apache.beehive.netui.core.urls.URLRewriterService.registerURLRewriter(request,
rewriterWrapper);
}
Modified:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/util/JspUtil.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/util/JspUtil.java?view=diff&rev=110061&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/util/JspUtil.java&r1=110060&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/util/JspUtil.java&r2=110061
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/util/JspUtil.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/util/JspUtil.java
Mon Dec 6 16:49:16 2004
@@ -27,7 +27,7 @@
import org.apache.beehive.netui.core.urls.MutableURI;
import org.apache.beehive.netui.util.logging.Logger;
import org.apache.beehive.netui.pageflow.scoping.ScopedServletUtils;
-import org.apache.beehive.netui.tags.PageFlowTagUtils;
+import org.apache.beehive.netui.tags.internal.PageFlowTagUtils;
public class JspUtil
{
@@ -72,8 +72,7 @@
}
else if(href != null)
{
- //TODO... OK to use rewrittenResourceURL implying type=RESOURCE
for rewriting?
- uri = PageFlowTagUtils.rewriteResourceURL(pageContext, href,
params, location);
+ uri = PageFlowTagUtils.rewriteHrefURL(pageContext, href, params,
location);
}
assert uri != null;
Deleted:
/incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/PageFlowTagUtils.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/PageFlowTagUtils.java?view=auto&rev=110060
==============================================================================
Modified:
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/AnchorBase.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/AnchorBase.java?view=diff&rev=110061&p1=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/AnchorBase.java&r1=110060&p2=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/AnchorBase.java&r2=110061
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/AnchorBase.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/AnchorBase.java
Mon Dec 6 16:49:16 2004
@@ -5,7 +5,7 @@
import org.apache.beehive.netui.tags.ByRef;
import org.apache.beehive.netui.tags.IScriptReporter;
import org.apache.beehive.netui.tags.HtmlUtils;
-import org.apache.beehive.netui.tags.PageFlowTagUtils;
+import org.apache.beehive.netui.tags.internal.PageFlowTagUtils;
import org.apache.beehive.netui.util.Bundle;
import org.apache.beehive.netui.util.ParamHelper;
import org.apache.beehive.netui.util.logging.Logger;
@@ -368,8 +368,7 @@
uri = PageFlowTagUtils.rewriteActionURL(pageContext,
_action, _params, _location);
}
else if (_href != null) {
- //TODO... OK to use rewrittenResourceURL implying
type=RESOURCE for rewriting?
- uri = PageFlowTagUtils.rewriteResourceURL(pageContext,
_href, _params, _location);
+ uri = PageFlowTagUtils.rewriteHrefURL(pageContext, _href,
_params, _location);
}
}
catch (URISyntaxException e) {
Modified:
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Button.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Button.java?view=diff&rev=110061&p1=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Button.java&r1=110060&p2=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Button.java&r2=110061
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Button.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Button.java
Mon Dec 6 16:49:16 2004
@@ -20,7 +20,7 @@
import org.apache.beehive.netui.core.urls.URLRewriterService;
import org.apache.beehive.netui.tags.HtmlUtils;
import org.apache.beehive.netui.tags.IHtmlAccessable;
-import org.apache.beehive.netui.tags.PageFlowTagUtils;
+import org.apache.beehive.netui.tags.internal.PageFlowTagUtils;
import org.apache.beehive.netui.tags.rendering.AbstractHtmlState;
import org.apache.beehive.netui.tags.rendering.InputSubmitTag;
import org.apache.beehive.netui.tags.rendering.TagRenderingBase;
Modified:
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Form.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Form.java?view=diff&rev=110061&p1=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Form.java&r1=110060&p2=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Form.java&r2=110061
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Form.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Form.java
Mon Dec 6 16:49:16 2004
@@ -24,7 +24,7 @@
import org.apache.beehive.netui.pageflow.internal.InternalUtils;
import org.apache.beehive.netui.script.common.ImplicitObjectUtil;
import org.apache.beehive.netui.tags.IHtmlIdWriter;
-import org.apache.beehive.netui.tags.PageFlowTagUtils;
+import org.apache.beehive.netui.tags.internal.PageFlowTagUtils;
import org.apache.beehive.netui.tags.rendering.*;
import org.apache.beehive.netui.util.Bundle;
import org.apache.beehive.netui.util.logging.Logger;
Modified:
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Image.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Image.java?view=diff&rev=110061&p1=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Image.java&r1=110060&p2=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Image.java&r2=110061
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Image.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Image.java
Mon Dec 6 16:49:16 2004
@@ -18,7 +18,7 @@
package org.apache.beehive.netui.tags.html;
import org.apache.beehive.netui.core.urls.MutableURI;
-import org.apache.beehive.netui.tags.PageFlowTagUtils;
+import org.apache.beehive.netui.tags.internal.PageFlowTagUtils;
import org.apache.beehive.netui.tags.rendering.AbstractHtmlState;
import org.apache.beehive.netui.tags.rendering.ImageTag;
import org.apache.beehive.netui.tags.rendering.TagRenderingBase;
Modified:
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/ImageAnchor.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/ImageAnchor.java?view=diff&rev=110061&p1=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/ImageAnchor.java&r1=110060&p2=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/ImageAnchor.java&r2=110061
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/ImageAnchor.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/ImageAnchor.java
Mon Dec 6 16:49:16 2004
@@ -20,7 +20,7 @@
import org.apache.beehive.netui.core.urls.MutableURI;
import org.apache.beehive.netui.tags.IHtmlAccessable;
import org.apache.beehive.netui.tags.ByRef;
-import org.apache.beehive.netui.tags.PageFlowTagUtils;
+import org.apache.beehive.netui.tags.internal.PageFlowTagUtils;
import org.apache.beehive.netui.tags.rendering.*;
import org.apache.beehive.netui.util.Bundle;
Modified:
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/ImageButton.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/ImageButton.java?view=diff&rev=110061&p1=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/ImageButton.java&r1=110060&p2=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/ImageButton.java&r2=110061
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/ImageButton.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/ImageButton.java
Mon Dec 6 16:49:16 2004
@@ -19,7 +19,7 @@
import org.apache.beehive.netui.core.urls.MutableURI;
import org.apache.beehive.netui.tags.IHtmlAccessable;
-import org.apache.beehive.netui.tags.PageFlowTagUtils;
+import org.apache.beehive.netui.tags.internal.PageFlowTagUtils;
import org.apache.beehive.netui.tags.rendering.AbstractHtmlState;
import org.apache.beehive.netui.tags.rendering.InputImageTag;
import org.apache.beehive.netui.tags.rendering.TagRenderingBase;
Modified:
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/RewriteURL.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/RewriteURL.java?view=diff&rev=110061&p1=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/RewriteURL.java&r1=110060&p2=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/RewriteURL.java&r2=110061
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/RewriteURL.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/RewriteURL.java
Mon Dec 6 16:49:16 2004
@@ -21,7 +21,7 @@
import org.apache.beehive.netui.core.urls.URLRewriter;
import org.apache.beehive.netui.core.urls.URLRewriterService;
import org.apache.beehive.netui.tags.AbstractClassicTag;
-import org.apache.beehive.netui.tags.PageFlowTagUtils;
+import org.apache.beehive.netui.tags.internal.PageFlowTagUtils;
import org.apache.beehive.netui.util.Bundle;
import java.net.URISyntaxException;
Copied:
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/internal/PageFlowTagUtils.java
(from r110053,
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/PageFlowTagUtils.java)
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/internal/PageFlowTagUtils.java?view=diff&rev=110061&p1=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/PageFlowTagUtils.java&r1=110053&p2=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/internal/PageFlowTagUtils.java&r2=110061
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/PageFlowTagUtils.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/internal/PageFlowTagUtils.java
Mon Dec 6 16:49:16 2004
@@ -15,7 +15,7 @@
*
* $Header:$
*/
-package org.apache.beehive.netui.tags;
+package org.apache.beehive.netui.tags.internal;
import org.apache.beehive.netui.core.urls.MutableURI;
import org.apache.beehive.netui.core.urls.URLRewriter;
@@ -27,6 +27,7 @@
import org.apache.beehive.netui.pageflow.SecurityProtocol;
import org.apache.beehive.netui.pageflow.internal.InternalUtils;
+import java.net.URISyntaxException;
import java.util.Map;
import javax.servlet.jsp.PageContext;
import javax.servlet.ServletContext;
@@ -34,14 +35,28 @@
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletRequest;
-
/**
- * @exclude
+ * This is a utility class for the beehive tags with routines for helping with
URL rewriting.
+ *
+ * <p> Includes methods to create a mutable url objects based on an initial
url with query
+ * parameters and an anchor (location on page), checking if it needs to be
secure and
+ * rewriting. There's also a method to check if if a url is an action.
*/
public class PageFlowTagUtils
{
+ /**
+ * Create a mutable url object from an initial action url with query
parameters
+ * and an anchor (location on page), checking if it needs to be secure
then call
+ * the rewriter service using a type of [EMAIL PROTECTED]
URLRewriter.Type.ACTION}.
+ *
+ * @param pageContext the current PageContext.
+ * @param action the action url to rewrite.
+ * @param params the query parameters for this url.
+ * @param location the location (anchor or fragment) for this url.
+ * @return a mutable uri that has been run through the URL rewriter
service.
+ */
public static MutableURI rewriteActionURL( PageContext pageContext, String
action, Map params, String location )
- throws java.net.URISyntaxException
+ throws URISyntaxException
{
ServletContext servletContext = pageContext.getServletContext();
ServletRequest request = pageContext.getRequest();
@@ -65,8 +80,43 @@
return uri;
}
+ /**
+ * Create a mutable url object from an initial href url with query
parameters
+ * and an anchor (location on page), checking if it needs to be secure
then call
+ * the rewriter service using a type of [EMAIL PROTECTED]
URLRewriter.Type.ACTION}.
+ *
+ * @param pageContext the current PageContext.
+ * @param url the href url to rewrite.
+ * @param params the query parameters for this url.
+ * @param location the location (anchor or fragment) for this url.
+ * @return a mutable uri that has been run through the URL rewriter
service.
+ */
+ public static MutableURI rewriteHrefURL( PageContext pageContext, String
url, Map params, String location )
+ throws URISyntaxException
+ {
+ return rewriteResourceOrHrefURL( pageContext, url, params, location,
URLRewriter.Type.ACTION );
+ }
+
+ /**
+ * Create a mutable url object from an initial resource url with query
parameters
+ * and an anchor (location on page), checking if it needs to be secure
then call
+ * the rewriter service using a type of [EMAIL PROTECTED]
URLRewriter.Type.RESOURCE}.
+ *
+ * @param pageContext the current PageContext.
+ * @param url the resource url to rewrite.
+ * @param params the query parameters for this url.
+ * @param location the location (anchor or fragment) for this url.
+ * @return a mutable uri that has been run through the URL rewriter
service.
+ */
public static MutableURI rewriteResourceURL( PageContext pageContext,
String url, Map params, String location )
- throws java.net.URISyntaxException
+ throws URISyntaxException
+ {
+ return rewriteResourceOrHrefURL( pageContext, url, params, location,
URLRewriter.Type.RESOURCE );
+ }
+
+ private static MutableURI rewriteResourceOrHrefURL( PageContext
pageContext, String url, Map params,
+ String location,
URLRewriter.Type type )
+ throws URISyntaxException
{
HttpServletResponse response = ( HttpServletResponse )
pageContext.getResponse();
MutableURI uri = new MutableURI( url );
@@ -91,11 +141,21 @@
ServletContext servletContext = pageContext.getServletContext();
boolean needsToBeSecure = needsSecure( servletContext, request, url,
true );
URLRewriterService.rewriteURL( servletContext, request, response, uri,
- URLRewriter.Type.RESOURCE,
needsToBeSecure );
+ type, needsToBeSecure );
return uri;
}
+ /**
+ * Determine whether a given URI is an Action.
+ *
+ * @param request the current HttpServletRequest.
+ * @param response the current HttpServletResponse.
+ * @param servletContext the current ServletContext.
+ * @param action the URI to check.
+ * @return <code>true</code> if the action is defined in the current page
flow
+ * or in a shared flow. Otherwise, return <code>false</code>.
+ */
public static boolean isAction( HttpServletRequest request,
HttpServletResponse response,
ServletContext servletContext, String
action )
{
@@ -139,7 +199,7 @@
* @return <code>true</code> when:
* <ul>
* <li>the given URI is configured in the deployment descriptor to
be secure (according to
- * [EMAIL PROTECTED]
org.apache.beehive.netui.core.SecurityProtocol}), or
+ * [EMAIL PROTECTED]
org.apache.beehive.netui.pageflow.SecurityProtocol}), or
* <li>the given URI is not configured in the deployment
descriptor, and the current request
* is secure ([EMAIL PROTECTED]
javax.servlet.http.HttpServletRequest#isSecure} returns
* <code>true</code>).
@@ -147,7 +207,7 @@
* <code>false</code> when:
* <ul>
* <li>the given URI is configured explicitly in the deployment
descriptor to be unsecure
- * (according to [EMAIL PROTECTED]
org.apache.beehive.netui.core.SecurityProtocol}), or
+ * (according to [EMAIL PROTECTED]
org.apache.beehive.netui.pageflow.SecurityProtocol}), or
* <li>the given URI is not configured in the deployment
descriptor, and the current request
* is unsecure ([EMAIL PROTECTED]
javax.servlet.http.HttpServletRequest#isSecure} returns
* <code>false</code>).
Modified:
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/Tree.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/Tree.java?view=diff&rev=110061&p1=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/Tree.java&r1=110060&p2=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/Tree.java&r2=110061
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/Tree.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/Tree.java
Mon Dec 6 16:49:16 2004
@@ -26,6 +26,7 @@
import org.apache.beehive.netui.tags.*;
import org.apache.beehive.netui.tags.html.HtmlConstants;
import org.apache.beehive.netui.tags.html.JavaScriptUtils;
+import org.apache.beehive.netui.tags.internal.PageFlowTagUtils;
import org.apache.beehive.netui.tags.rendering.*;
import org.apache.beehive.netui.util.Bundle;
Modified:
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeItem.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeItem.java?view=diff&rev=110061&p1=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeItem.java&r1=110060&p2=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeItem.java&r2=110061
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeItem.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeItem.java
Mon Dec 6 16:49:16 2004
@@ -18,7 +18,7 @@
package org.apache.beehive.netui.tags.tree;
import org.apache.beehive.netui.tags.AbstractSimpleTag;
-import org.apache.beehive.netui.tags.PageFlowTagUtils;
+import org.apache.beehive.netui.tags.internal.PageFlowTagUtils;
import org.apache.beehive.netui.util.Bundle;
import javax.servlet.http.HttpServletRequest;
Modified:
incubator/beehive/trunk/netui/src/util/org/apache/beehive/netui/core/urls/URLRewriter.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/util/org/apache/beehive/netui/core/urls/URLRewriter.java?view=diff&rev=110061&p1=incubator/beehive/trunk/netui/src/util/org/apache/beehive/netui/core/urls/URLRewriter.java&r1=110060&p2=incubator/beehive/trunk/netui/src/util/org/apache/beehive/netui/core/urls/URLRewriter.java&r2=110061
==============================================================================
---
incubator/beehive/trunk/netui/src/util/org/apache/beehive/netui/core/urls/URLRewriter.java
(original)
+++
incubator/beehive/trunk/netui/src/util/org/apache/beehive/netui/core/urls/URLRewriter.java
Mon Dec 6 16:49:16 2004
@@ -28,12 +28,29 @@
public abstract class URLRewriter
{
/**
- * Passed to [EMAIL PROTECTED] #rewriteURL} for normal (non-resource) and
resource, non-secure and
+ * Passed to [EMAIL PROTECTED] URLRewriter#rewriteURL} for normal
(non-resource) and resource, non-secure and
* secure URLs.
*/
public enum Type { ACTION, RESOURCE }
/**
+ * Flag indicating that other rewriters are allowed to be used in the
chain.
+ * The URLRewriterService API will not allow more than one URLRewriter in
+ * the chain with this property equal to false.
+ */
+ private boolean _allowOtherRewriters = true;
+
+ public void setAllowOtherRewriters( boolean allowOtherRewriters )
+ {
+ _allowOtherRewriters = allowOtherRewriters;
+ }
+
+ public boolean allowOtherRewriters()
+ {
+ return _allowOtherRewriters;
+ }
+
+ /**
* Rewrite the given query parameter name.
*
* @param servletContext the current ServletContext.
@@ -65,7 +82,6 @@
* Tell whether rewritten form actions should be allowed to have query
parameters. If this returns
* <code>false</code>, then a form-tag implementation should render query
parameters into hidden
* fields on the form instead of allowing them to remain in the URL.
- * @exclude
*/
public boolean allowParamsOnFormAction( ServletContext servletContext,
ServletRequest request )
{
Modified:
incubator/beehive/trunk/netui/src/util/org/apache/beehive/netui/core/urls/URLRewriterService.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/util/org/apache/beehive/netui/core/urls/URLRewriterService.java?view=diff&rev=110061&p1=incubator/beehive/trunk/netui/src/util/org/apache/beehive/netui/core/urls/URLRewriterService.java&r1=110060&p2=incubator/beehive/trunk/netui/src/util/org/apache/beehive/netui/core/urls/URLRewriterService.java&r2=110061
==============================================================================
---
incubator/beehive/trunk/netui/src/util/org/apache/beehive/netui/core/urls/URLRewriterService.java
(original)
+++
incubator/beehive/trunk/netui/src/util/org/apache/beehive/netui/core/urls/URLRewriterService.java
Mon Dec 6 16:49:16 2004
@@ -49,9 +49,19 @@
if ( rewriters != null )
{
- for ( URLRewriter rewriter : rewriters )
+ URLRewriter exclusiveRewriter = getExclusiveRewriter( rewriters );
+ if ( exclusiveRewriter == null )
{
- name = rewriter.rewriteName( servletContext, request, name );
+ // No exclusive rewriters registered. Run through the chain.
+ for ( URLRewriter rewriter : rewriters )
+ {
+ name = rewriter.rewriteName( servletContext, request, name
);
+ }
+ }
+ else
+ {
+ // Use just the exclusive rewriter that was registered
+ name = exclusiveRewriter.rewriteName( servletContext, request,
name );
}
}
@@ -81,9 +91,19 @@
if ( rewriters != null )
{
- for ( URLRewriter rewriter : rewriters )
+ URLRewriter exclusiveRewriter = getExclusiveRewriter( rewriters );
+ if ( exclusiveRewriter == null )
+ {
+ // No exclusive rewriters registered. Run through the chain.
+ for ( URLRewriter rewriter : rewriters )
+ {
+ rewriter.rewriteURL( servletContext, request, response,
url, type, needsToBeSecure );
+ }
+ }
+ else
{
- rewriter.rewriteURL( servletContext, request, response, url,
type, needsToBeSecure );
+ // Use just the exclusive rewriter that was registered
+ exclusiveRewriter.rewriteURL( servletContext, request,
response, url, type, needsToBeSecure );
}
}
}
@@ -119,7 +139,10 @@
}
else
{
- if ( !rewriters.contains( rewriter ) ) { rewriters.add( rewriter
); }
+ if ( otherRewritersAllowed( rewriters ) )
+ {
+ if ( !rewriters.contains( rewriter ) ) { rewriters.add(
rewriter ); }
+ }
}
}
@@ -144,7 +167,10 @@
}
else
{
- if ( !rewriters.contains( rewriter ) ) { rewriters.add( index,
rewriter ); }
+ if ( otherRewritersAllowed( rewriters ) )
+ {
+ if ( !rewriters.contains( rewriter ) ) { rewriters.add( index,
rewriter ); }
+ }
}
}
@@ -153,6 +179,32 @@
return ( ArrayList< URLRewriter > )
ScopedServletUtils.getScopedRequestAttribute( URL_REWRITERS_KEY, request );
}
+ private static boolean otherRewritersAllowed( ArrayList< URLRewriter >
rewriters )
+ {
+ for ( URLRewriter rewriter : rewriters )
+ {
+ if ( !rewriter.allowOtherRewriters() )
+ {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ private static URLRewriter getExclusiveRewriter( ArrayList< URLRewriter >
rewriters )
+ {
+ for ( URLRewriter rewriter : rewriters )
+ {
+ if ( !rewriter.allowOtherRewriters() )
+ {
+ return rewriter;
+ }
+ }
+
+ return null;
+ }
+
/**
* Unregister the URLRewriter (remove from the list) from the request.
*
@@ -179,6 +231,16 @@
request.removeAttribute( URL_REWRITERS_KEY );
}
}
+ }
+
+ /**
+ * Unregister the URLRewriter (remove from the list) from the request.
+ *
+ * @param request the current ServletRequest.
+ */
+ public static void unregisterAllURLRewriters( ServletRequest request )
+ {
+ request.removeAttribute( URL_REWRITERS_KEY );
}
/**