[gatein-commits] gatein SVN: r2110 - components/wsrp/trunk/consumer/src/main/java/org/gatein/wsrp/consumer.
do-not-reply at jboss.org
do-not-reply at jboss.org
Wed Mar 10 10:04:03 EST 2010
Author: chris.laprun at jboss.com
Date: 2010-03-10 10:04:03 -0500 (Wed, 10 Mar 2010)
New Revision: 2110
Modified:
components/wsrp/trunk/consumer/src/main/java/org/gatein/wsrp/consumer/RenderHandler.java
Log:
- Use constant for URL marking.
- Removed incorrect replacement of - by _. Thought it was needed by JS but it's only needed in identifiers. Plus, the conversion was lossy.
- Use encodeXWWWFormURL instead of safeEncodeForHTMLId to encode URLs.
- Cleaned-up in preparation of reverting to previous handling of resource URLs for release.
Modified: components/wsrp/trunk/consumer/src/main/java/org/gatein/wsrp/consumer/RenderHandler.java
===================================================================
--- components/wsrp/trunk/consumer/src/main/java/org/gatein/wsrp/consumer/RenderHandler.java 2010-03-10 14:55:56 UTC (rev 2109)
+++ components/wsrp/trunk/consumer/src/main/java/org/gatein/wsrp/consumer/RenderHandler.java 2010-03-10 15:04:03 UTC (rev 2110)
@@ -184,18 +184,18 @@
private String processMarkup(String markup, PortletInvocation invocation, boolean needsRewriting)
{
-
if (needsRewriting)
{
// fix-me: how to deal with fragment header? => interceptor?
+
+ // Replace rewrite token by namespace
String prefix = getNamespaceFrom(invocation.getWindowContext());
markup = TextTools.replace(markup, WSRPRewritingConstants.WSRP_REWRITE_TOKEN, prefix);
+
URLFormat format = new URLFormat(invocation.getSecurityContext().isSecure(),
invocation.getSecurityContext().isAuthenticated(), true, true);
- /*WSRPURLRewriter rewriter = new WSRPURLRewriter(invocation.getContext(), format, consumer);
- markup = URLTools.replaceURLsBy(markup, rewriter);*/
-
+ // replace URL marked for rewriting by proper ones
markup = TextTools.replaceBoundedString(markup, WSRPRewritingConstants.BEGIN_WSRP_REWRITE,
WSRPRewritingConstants.END_WSRP_REWRITE, new ResourceURLStringReplacementGenerator(invocation.getContext(), format, consumer), true, false);
}
@@ -265,41 +265,33 @@
WSRPResourceURL resource = (WSRPResourceURL)portletURL;
- // get the parsed URL and add gtnresource to it so that the consumer can know it needs to be intercepted
+ // get the parsed URL and add marker to it so that the consumer can know it needs to be intercepted
URL url = resource.getResourceURL();
+ String query = url.getQuery();
+ if (ParameterValidation.isNullOrEmpty(query))
+ {
+ query = WSRPRewritingConstants.GTNRESOURCE;
+ }
+ else
+ {
+ query = "+" + WSRPRewritingConstants.GTNRESOURCE;
+ }
+
try
{
- String query = url.getQuery();
- if (ParameterValidation.isNullOrEmpty(query))
- {
- query = "gtnresource";
- }
- else
- {
- query = "+gtnresource";
- }
URI uri = new URI(url.getProtocol(), url.getUserInfo(), url.getHost(), url.getPort(),
url.getPath(), query, url.getRef());
// set the resulting URI as the new resource ID, must be encoded as it will be used in URLs
- String s = URLTools.safeEncodeForHTMLId(uri.toString());
- s = s.replace('-', '_');
+ String s = URLTools.encodeXWWWFormURL(uri.toString());
resource.setResourceId(s);
}
catch (Exception e)
{
- e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
+ throw new IllegalArgumentException("Cannot parse specified Resource as a URI: " + url);
}
-
-
- /*// todo: this is a hack to circumvent frameworks that don't properly request resource encoding (icefaces)
- if (resource.getResourceURL().toExternalForm().startsWith(SLASH))
- {
- return info.getEndpointConfigurationInfo().getRemoteHostAddress() + match;
- }*/
}
-
return context.renderURL(portletURL, format);
}
}
More information about the gatein-commits
mailing list