any plans to port to trunk also?

-igor

On Wed, May 13, 2009 at 7:04 AM,  <[email protected]> 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;
>        }
>
>        /**
>
>
>

Reply via email to