You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@wicket.apache.org by Igor Vaynberg <ig...@gmail.com> on 2009/05/13 18:32:38 UTC
Re: svn commit: r774373 - in /wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/request/urlcompressing:
UrlCompressingWebCodingStrategy.java UrlCompressor.java
any plans to port to trunk also?
-igor
On Wed, May 13, 2009 at 7:04 AM, <jc...@apache.org> wrote:
> Author: jcompagner
> Date: Wed May 13 14:04:48 2009
> New Revision: 774373
>
> URL: http://svn.apache.org/viewvc?rev=774373&view=rev
> Log:
> url compressing fix incombination with BookmarkableListenerInterfaceRequestTarget
>
> Modified:
> wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/request/urlcompressing/UrlCompressingWebCodingStrategy.java
> wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/request/urlcompressing/UrlCompressor.java
>
> Modified: wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/request/urlcompressing/UrlCompressingWebCodingStrategy.java
> URL: http://svn.apache.org/viewvc/wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/request/urlcompressing/UrlCompressingWebCodingStrategy.java?rev=774373&r1=774372&r2=774373&view=diff
> ==============================================================================
> --- wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/request/urlcompressing/UrlCompressingWebCodingStrategy.java (original)
> +++ wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/request/urlcompressing/UrlCompressingWebCodingStrategy.java Wed May 13 14:04:48 2009
> @@ -26,8 +26,11 @@
> import org.apache.wicket.markup.html.WebPage;
> import org.apache.wicket.protocol.http.request.WebRequestCodingStrategy;
> import org.apache.wicket.request.RequestParameters;
> +import org.apache.wicket.request.target.component.BookmarkableListenerInterfaceRequestTarget;
> +import org.apache.wicket.request.target.component.IBookmarkablePageRequestTarget;
> import org.apache.wicket.request.target.component.listener.IListenerInterfaceRequestTarget;
> import org.apache.wicket.util.string.AppendingStringBuffer;
> +import org.apache.wicket.util.string.Strings;
>
>
> /**
> @@ -138,4 +141,67 @@
> }
> return requestCycle.getOriginalResponse().encodeURL(url);
> }
> +
> + protected CharSequence encode(RequestCycle requestCycle,
> + IBookmarkablePageRequestTarget requestTarget)
> + {
> + if (requestTarget instanceof BookmarkableListenerInterfaceRequestTarget &&
> + requestTarget.getPageParameters().containsKey(
> + WebRequestCodingStrategy.INTERFACE_PARAMETER_NAME))
> + {
> + BookmarkableListenerInterfaceRequestTarget t = (BookmarkableListenerInterfaceRequestTarget)requestTarget;
> + Page page = t.getPage();
> + int version = page.getCurrentVersionNumber();
> + String componentPath = t.getComponentPath();
> + String interfaceName = t.getInterfaceName();
> + String pageMapName = t.getPageMapName();
> +
> + // add the wicket:interface param to the params.
> + // pagemap:(pageid:componenta:componentb:...):version:interface:behavior:urlDepth
> + AppendingStringBuffer param = new AppendingStringBuffer(4 + componentPath.length() +
> + interfaceName.length());
> + if (pageMapName != null)
> + {
> + param.append(pageMapName);
> + }
> + param.append(Component.PATH_SEPARATOR);
> + // Add path to component
> + if (page instanceof WebPage && !"IResourceListener".equals(interfaceName))
> + {
> + param.append(page.getId());
> + Component comp = page.get(Strings.afterFirstPathComponent(componentPath,
> + Component.PATH_SEPARATOR));
> + param.append(Component.PATH_SEPARATOR);
> + param.append(((WebPage)page).getUrlCompressor().getUIDForComponentAndInterface(
> + comp, interfaceName));
> + interfaceName = null;
> + }
> + else
> + {
> + param.append(componentPath);
> + }
> + param.append(Component.PATH_SEPARATOR);
> + if (version != 0)
> + {
> + param.append(version);
> + }
> + // Interface
> + param.append(Component.PATH_SEPARATOR);
> + // Add listener interface
> + if (interfaceName != null &&
> + !IRedirectListener.INTERFACE.getName().equals(interfaceName))
> + {
> + param.append(interfaceName);
> + }
> +
> + // Behavior (none)
> + param.append(Component.PATH_SEPARATOR);
> +
> + // URL depth (not required)
> + param.append(Component.PATH_SEPARATOR);
> + t.getPageParameters().put(WebRequestCodingStrategy.INTERFACE_PARAMETER_NAME,
> + param.toString());
> + }
> + return super.encode(requestCycle, requestTarget);
> + }
> }
>
> Modified: wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/request/urlcompressing/UrlCompressor.java
> URL: http://svn.apache.org/viewvc/wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/request/urlcompressing/UrlCompressor.java?rev=774373&r1=774372&r2=774373&view=diff
> ==============================================================================
> --- wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/request/urlcompressing/UrlCompressor.java (original)
> +++ wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/request/urlcompressing/UrlCompressor.java Wed May 13 14:04:48 2009
> @@ -25,6 +25,8 @@
> import org.apache.wicket.IClusterable;
> import org.apache.wicket.util.collections.IntHashMap;
> import org.apache.wicket.util.collections.IntHashMap.Entry;
> +import org.slf4j.Logger;
> +import org.slf4j.LoggerFactory;
>
>
> /**
> @@ -49,6 +51,9 @@
> */
> public class UrlCompressor implements IClusterable
> {
> + /** Log. */
> + private static final Logger log = LoggerFactory.getLogger(UrlCompressor.class);
> +
> /**
> * @author jcompagner
> */
> @@ -119,9 +124,17 @@
> {
> directComponentRefs.remove(ref.uid);
> }
> - int uid = Integer.parseInt(uidString);
> - ComponentAndInterface cai = (ComponentAndInterface)directComponentRefs.get(uid);
> - return cai;
> + try
> + {
> + int uid = Integer.parseInt(uidString);
> + ComponentAndInterface cai = (ComponentAndInterface)directComponentRefs.get(uid);
> + return cai;
> + }
> + catch (Exception e)
> + {
> + log.warn("cant decompress Component/Interface from '" + uidString + "'", e);
> + }
> + return null;
> }
>
> /**
>
>
>