Author: hlship
Date: Sun Sep  5 22:44:57 2010
New Revision: 992907

URL: http://svn.apache.org/viewvc?rev=992907&view=rev
Log:
TAP5-1297: Remove the code that "optimizes" generated URLs as it is not always 
possible to know what the base URL is

Removed:
    
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/RequestPathOptimizer.java
    
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/RequestPathOptimizerImpl.java
    
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/RequestPathOptimizerImplTest.java
Modified:
    
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/Link.java
    
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/InternalConstants.java
    
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentEventLinkEncoderImpl.java
    
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/InternalModule.java
    
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/LinkImpl.java
    
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PageDocumentGeneratorImpl.java
    
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PageMarkupRendererImpl.java
    
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/StreamPageContentResultProcessor.java
    
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/ComponentEventDispatcherTest.java
    
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/ComponentEventLinkEncoderImplTest.java
    
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/LinkImplTest.java
    
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/test/InternalBaseTestCase.java
    
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/urlrewriter/IntegrationTests.java

Modified: 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/Link.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/Link.java?rev=992907&r1=992906&r2=992907&view=diff
==============================================================================
--- 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/Link.java
 (original)
+++ 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/Link.java
 Sun Sep  5 22:44:57 2010
@@ -84,8 +84,7 @@ public interface Link
 
     /**
      * Returns the URI portion of the link. When the link is created for a 
form, this will not include query parameters.
-     * This is the same value returned from toString(). In some circumstances, 
this may be a relative URI (relative to
-     * the current Request's URI).
+     * This is the same value returned from toString().
      * 
      * @return the URI, ready to be added as an element attribute
      */
@@ -112,9 +111,9 @@ public interface Link
     void setAnchor(String anchor);
 
     /**
-     * Converts the link to an absolute URI, a complete path, starting with a 
leading slash. This is necessary in many
-     * cases for client-side JavaScript that must send a request to 
application via XMLHttpRequest.
+     * Returns the same value as {...@link #toURI()}.
      * 
+     * @deprecated in 5.2 (which removed request path optimization), to be 
removed in 5.3
      * @return the complete URI (not abbreviated relative to the current 
request path)
      */
     String toAbsoluteURI();

Modified: 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/InternalConstants.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/InternalConstants.java?rev=992907&r1=992906&r2=992907&view=diff
==============================================================================
--- 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/InternalConstants.java
 (original)
+++ 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/InternalConstants.java
 Sun Sep  5 22:44:57 2010
@@ -80,13 +80,6 @@ public final class InternalConstants
     public static final String IMMEDIATE_RESPONSE_PAGE_ATTRIBUTE = 
"tapestry.immediate-response-page";
 
     /**
-     * Request attribute that forces {...@link 
org.apache.tapestry5.internal.services.RequestPathOptimizer} to use not
-     * optimize URLs (this is necessitated by {...@link 
org.apache.tapestry5.services.PageDocumentGenerator}). Any non-null
-     * value will force the URLs to be non-optimized.
-     */
-    public static final String GENERATING_RENDERED_PAGE = 
"tapestry.generating-rendered-page";
-
-    /**
      * Required MIME type for JSON responses. If this MIME type is not used, 
the client-side
      * Prototype code will not
      * recognize the response as JSON, and the Ajax.Response.responseJSON 
property will be null.

Modified: 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentEventLinkEncoderImpl.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentEventLinkEncoderImpl.java?rev=992907&r1=992906&r2=992907&view=diff
==============================================================================
--- 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentEventLinkEncoderImpl.java
 (original)
+++ 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentEventLinkEncoderImpl.java
 Sun Sep  5 22:44:57 2010
@@ -4,7 +4,7 @@
 // you may not use this file except in compliance with the License.
 // You may obtain a copy of the License at
 //
-//     http://www.apache.org/licenses/LICENSE-2.0
+// http://www.apache.org/licenses/LICENSE-2.0
 //
 // Unless required by applicable law or agreed to in writing, software
 // distributed under the License is distributed on an "AS IS" BASIS,
@@ -14,6 +14,10 @@
 
 package org.apache.tapestry5.internal.services;
 
+import java.util.Locale;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
 import org.apache.tapestry5.EventConstants;
 import org.apache.tapestry5.EventContext;
 import org.apache.tapestry5.Link;
@@ -22,11 +26,15 @@ import org.apache.tapestry5.TapestryCons
 import org.apache.tapestry5.internal.InternalConstants;
 import org.apache.tapestry5.ioc.annotations.Symbol;
 import org.apache.tapestry5.ioc.internal.util.InternalUtils;
-import org.apache.tapestry5.services.*;
-
-import java.util.Locale;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
+import org.apache.tapestry5.services.ComponentClassResolver;
+import org.apache.tapestry5.services.ComponentEventLinkEncoder;
+import org.apache.tapestry5.services.ComponentEventRequestParameters;
+import org.apache.tapestry5.services.ContextPathEncoder;
+import org.apache.tapestry5.services.LocalizationSetter;
+import org.apache.tapestry5.services.PageRenderRequestParameters;
+import org.apache.tapestry5.services.PersistentLocale;
+import org.apache.tapestry5.services.Request;
+import org.apache.tapestry5.services.Response;
 
 public class ComponentEventLinkEncoderImpl implements ComponentEventLinkEncoder
 {
@@ -42,8 +50,6 @@ public class ComponentEventLinkEncoderIm
 
     private final RequestSecurityManager requestSecurityManager;
 
-    private final RequestPathOptimizer optimizer;
-
     private final PersistentLocale persistentLocale;
 
     private final boolean encodeLocaleIntoPath;
@@ -80,10 +86,8 @@ public class ComponentEventLinkEncoderIm
     private static final int CONTEXT = 11;
 
     public ComponentEventLinkEncoderImpl(ComponentClassResolver 
componentClassResolver,
-            ContextPathEncoder contextPathEncoder, LocalizationSetter 
localizationSetter,
-            Request request, Response response, RequestSecurityManager 
requestSecurityManager,
-            RequestPathOptimizer optimizer, PersistentLocale persistentLocale,
-
+            ContextPathEncoder contextPathEncoder, LocalizationSetter 
localizationSetter, Request request,
+            Response response, RequestSecurityManager requestSecurityManager, 
PersistentLocale persistentLocale,
             @Symbol(SymbolConstants.ENCODE_LOCALE_INTO_PATH)
             boolean encodeLocaleIntoPath)
     {
@@ -93,7 +97,6 @@ public class ComponentEventLinkEncoderIm
         this.request = request;
         this.response = response;
         this.requestSecurityManager = requestSecurityManager;
-        this.optimizer = optimizer;
         this.persistentLocale = persistentLocale;
         this.encodeLocaleIntoPath = encodeLocaleIntoPath;
     }
@@ -123,7 +126,7 @@ public class ComponentEventLinkEncoderIm
 
         appendContext(encodedPageName.length() > 0, 
parameters.getActivationContext(), builder);
 
-        Link link = new LinkImpl(builder.toString(), baseURL == null, false, 
response, optimizer);
+        Link link = new LinkImpl(builder.toString(), false, response);
 
         if (parameters.isLoopback())
             link.addParameter(TapestryConstants.PAGE_LOOPBACK_PARAMETER_NAME, 
"t");
@@ -197,8 +200,7 @@ public class ComponentEventLinkEncoderIm
 
         appendContext(true, parameters.getEventContext(), builder);
 
-        Link result = new LinkImpl(builder.toString(), baseURL == null, 
forForm, response,
-                optimizer);
+        Link result = new LinkImpl(builder.toString(), forForm, response);
 
         EventContext pageActivationContext = 
parameters.getPageActivationContext();
 
@@ -216,8 +218,7 @@ public class ComponentEventLinkEncoderIm
         // need to differentiate that.
 
         if (!containingPageName.equalsIgnoreCase(activePageName))
-            result.addParameter(InternalConstants.CONTAINER_PAGE_NAME,
-                    encodePageName(containingPageName));
+            result.addParameter(InternalConstants.CONTAINER_PAGE_NAME, 
encodePageName(containingPageName));
 
         return result;
     }
@@ -270,8 +271,8 @@ public class ComponentEventLinkEncoderIm
         else
             containingPageName = 
componentClassResolver.canonicalizePageName(containingPageName);
 
-        return new ComponentEventRequestParameters(activePageName, 
containingPageName,
-                nestedComponentId, eventType, activationContext, eventContext);
+        return new ComponentEventRequestParameters(activePageName, 
containingPageName, nestedComponentId, eventType,
+                activationContext, eventContext);
     }
 
     public PageRenderRequestParameters decodePageRenderRequest(Request request)
@@ -316,8 +317,7 @@ public class ComponentEventLinkEncoderIm
             String pageName = extendedName.substring(0, slashx);
             String pageActivationContext = atEnd ? "" : 
extendedName.substring(slashx + 1);
 
-            PageRenderRequestParameters parameters = checkIfPage(request, 
pageName,
-                    pageActivationContext);
+            PageRenderRequestParameters parameters = checkIfPage(request, 
pageName, pageActivationContext);
 
             if (parameters != null)
                 return parameters;
@@ -333,8 +333,7 @@ public class ComponentEventLinkEncoderIm
         return checkIfPage(request, "", extendedName);
     }
 
-    private PageRenderRequestParameters checkIfPage(Request request, String 
pageName,
-            String pageActivationContext)
+    private PageRenderRequestParameters checkIfPage(Request request, String 
pageName, String pageActivationContext)
     {
         if (!componentClassResolver.isPageName(pageName))
             return null;

Modified: 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/InternalModule.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/InternalModule.java?rev=992907&r1=992906&r2=992907&view=diff
==============================================================================
--- 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/InternalModule.java
 (original)
+++ 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/InternalModule.java
 Sun Sep  5 22:44:57 2010
@@ -82,7 +82,6 @@ public class InternalModule
         binder.bind(PageRenderQueue.class, PageRenderQueueImpl.class);
         binder.bind(AjaxPartialResponseRenderer.class, 
AjaxPartialResponseRendererImpl.class);
         binder.bind(PageContentTypeAnalyzer.class, 
PageContentTypeAnalyzerImpl.class);
-        binder.bind(RequestPathOptimizer.class, 
RequestPathOptimizerImpl.class);
         binder.bind(ComponentPageElementResourcesSource.class, 
ComponentPageElementResourcesSourceImpl.class);
         binder.bind(RequestSecurityManager.class, 
RequestSecurityManagerImpl.class);
         binder.bind(InternalRequestGlobals.class, 
InternalRequestGlobalsImpl.class);

Modified: 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/LinkImpl.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/LinkImpl.java?rev=992907&r1=992906&r2=992907&view=diff
==============================================================================
--- 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/LinkImpl.java
 (original)
+++ 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/LinkImpl.java
 Sun Sep  5 22:44:57 2010
@@ -28,30 +28,24 @@ public class LinkImpl implements Link
 
     private final String basePath;
 
-    private final boolean optimizable;
-
     private final boolean forForm;
 
     private final Response response;
 
-    private final RequestPathOptimizer optimizer;
-
     private String anchor;
 
-    public LinkImpl(String basePath, boolean optimizable, boolean forForm, 
Response response,
-            RequestPathOptimizer optimizer)
+    public LinkImpl(String basePath, boolean forForm, Response response)
     {
         this.basePath = basePath;
-        this.optimizable = optimizable;
         this.forForm = forForm;
         this.response = response;
-        this.optimizer = optimizer;
     }
 
     public Link copyWithBasePath(String basePath)
     {
         assert basePath != null;
-        LinkImpl copy = new LinkImpl(basePath, optimizable, forForm, response, 
optimizer);
+
+        LinkImpl copy = new LinkImpl(basePath, forForm, response);
 
         copy.anchor = anchor;
 
@@ -107,7 +101,7 @@ public class LinkImpl implements Link
 
     public String toAbsoluteURI()
     {
-        return appendAnchor(response.encodeURL(buildURI()));
+        return toURI();
     }
 
     public String toRedirectURI()
@@ -117,12 +111,7 @@ public class LinkImpl implements Link
 
     public String toURI()
     {
-        String path = buildURI();
-
-        if (optimizable)
-            path = optimizer.optimizePath(path);
-
-        return appendAnchor(response.encodeURL(path));
+        return appendAnchor(response.encodeURL(buildURI()));
     }
 
     private String appendAnchor(String path)

Modified: 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PageDocumentGeneratorImpl.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PageDocumentGeneratorImpl.java?rev=992907&r1=992906&r2=992907&view=diff
==============================================================================
--- 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PageDocumentGeneratorImpl.java
 (original)
+++ 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PageDocumentGeneratorImpl.java
 Sun Sep  5 22:44:57 2010
@@ -1,10 +1,10 @@
-// Copyright 2008 The Apache Software Foundation
+// Copyright 2008, 2010 The Apache Software Foundation
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
 // You may obtain a copy of the License at
 //
-//     http://www.apache.org/licenses/LICENSE-2.0
+// http://www.apache.org/licenses/LICENSE-2.0
 //
 // Unless required by applicable law or agreed to in writing, software
 // distributed under the License is distributed on an "AS IS" BASIS,
@@ -16,11 +16,9 @@ package org.apache.tapestry5.internal.se
 
 import org.apache.tapestry5.MarkupWriter;
 import org.apache.tapestry5.dom.Document;
-import org.apache.tapestry5.internal.InternalConstants;
 import org.apache.tapestry5.internal.structure.Page;
 import org.apache.tapestry5.services.MarkupWriterFactory;
 import org.apache.tapestry5.services.PageDocumentGenerator;
-import org.apache.tapestry5.services.Request;
 
 public class PageDocumentGeneratorImpl implements PageDocumentGenerator
 {
@@ -30,16 +28,12 @@ public class PageDocumentGeneratorImpl i
 
     private final MarkupWriterFactory markupWriterFactory;
 
-    private final Request request;
-
     public PageDocumentGeneratorImpl(RequestPageCache pageCache, 
PageMarkupRenderer markupRenderer,
-                                     MarkupWriterFactory markupWriterFactory,
-                                     Request request)
+            MarkupWriterFactory markupWriterFactory)
     {
         this.markupRenderer = markupRenderer;
         this.markupWriterFactory = markupWriterFactory;
         this.pageCache = pageCache;
-        this.request = request;
     }
 
     public Document render(String logicalPageName)
@@ -48,21 +42,7 @@ public class PageDocumentGeneratorImpl i
 
         MarkupWriter writer = 
markupWriterFactory.newMarkupWriter(logicalPageName);
 
-        // value will almost certainly be null, unless a page that is being 
rendered to a document
-        // itself decides to render another page to a document.
-
-        Object value = 
request.getAttribute(InternalConstants.GENERATING_RENDERED_PAGE);
-
-        try
-        {
-            request.setAttribute(InternalConstants.GENERATING_RENDERED_PAGE, 
true);
-
-            markupRenderer.renderPageMarkup(page, writer);
-        }
-        finally
-        {
-            request.setAttribute(InternalConstants.GENERATING_RENDERED_PAGE, 
value);
-        }
+        markupRenderer.renderPageMarkup(page, writer);
 
         return writer.getDocument();
     }

Modified: 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PageMarkupRendererImpl.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PageMarkupRendererImpl.java?rev=992907&r1=992906&r2=992907&view=diff
==============================================================================
--- 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PageMarkupRendererImpl.java
 (original)
+++ 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PageMarkupRendererImpl.java
 Sun Sep  5 22:44:57 2010
@@ -1,10 +1,10 @@
-// Copyright 2006, 2007, 2008 The Apache Software Foundation
+// Copyright 2006, 2007, 2008, 2010 The Apache Software Foundation
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
 // You may obtain a copy of the License at
 //
-//     http://www.apache.org/licenses/LICENSE-2.0
+// http://www.apache.org/licenses/LICENSE-2.0
 //
 // Unless required by applicable law or agreed to in writing, software
 // distributed under the License is distributed on an "AS IS" BASIS,
@@ -15,46 +15,29 @@
 package org.apache.tapestry5.internal.services;
 
 import org.apache.tapestry5.MarkupWriter;
-import org.apache.tapestry5.internal.InternalConstants;
 import org.apache.tapestry5.internal.structure.Page;
-import org.apache.tapestry5.services.Environment;
 import org.apache.tapestry5.services.MarkupRenderer;
-import org.apache.tapestry5.services.Request;
 
 public class PageMarkupRendererImpl implements PageMarkupRenderer
 {
-    private final Environment environment;
-
     private final PageRenderQueue pageRenderQueue;
 
     private final MarkupRenderer markupRendererPipeline;
 
-    private final Request request;
-
-    public PageMarkupRendererImpl(MarkupRenderer markupRendererPipeline, 
PageRenderQueue pageRenderQueue,
-                                  Environment environment, Request request)
+    public PageMarkupRendererImpl(MarkupRenderer markupRendererPipeline, 
PageRenderQueue pageRenderQueue)
     {
         // We have to go through some awkward tricks here:
         // - MarkupRenderer and MarkupRendererFilter are PUBLIC
         // - Page, PageMarkupRenderer, PageRenderQueue are PRIVATE
         // - This service is the bridge between public and private
 
-
         this.pageRenderQueue = pageRenderQueue;
-        this.environment = environment;
 
         this.markupRendererPipeline = markupRendererPipeline;
-        this.request = request;
     }
 
     public void renderPageMarkup(Page page, MarkupWriter writer)
     {
-        // Don't clear the environment when rendering a page to a document as 
we may be doing so when in the middle
-        // of another render.
-
-        if (request.getAttribute(InternalConstants.GENERATING_RENDERED_PAGE) 
== null)
-            environment.clear();
-
         // This is why the PRQ is scope perthread; we tell it what to render 
here ...
 
         pageRenderQueue.initializeForCompletePage(page);

Modified: 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/StreamPageContentResultProcessor.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/StreamPageContentResultProcessor.java?rev=992907&r1=992906&r2=992907&view=diff
==============================================================================
--- 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/StreamPageContentResultProcessor.java
 (original)
+++ 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/StreamPageContentResultProcessor.java
 Sun Sep  5 22:44:57 2010
@@ -4,7 +4,7 @@
 // you may not use this file except in compliance with the License.
 // You may obtain a copy of the License at
 //
-//     http://www.apache.org/licenses/LICENSE-2.0
+// http://www.apache.org/licenses/LICENSE-2.0
 //
 // Unless required by applicable law or agreed to in writing, software
 // distributed under the License is distributed on an "AS IS" BASIS,
@@ -45,7 +45,7 @@ public class StreamPageContentResultProc
 
     @Inject
     private TypeCoercer typeCoercer;
-    
+
     @Inject
     private Request request;
 
@@ -57,21 +57,9 @@ public class StreamPageContentResultProc
 
         final String pageName = 
this.resolver.resolvePageClassNameToPageName(pageClass.getName());
 
-        final EventContext context = activationContext == null ? new 
EmptyEventContext()
-                : new ArrayEventContext(this.typeCoercer, activationContext);
-        
-        Object generatingRederedPage = 
request.getAttribute(InternalConstants.GENERATING_RENDERED_PAGE);
-
-        try
-        {
-            // This is needed otherwise PageMarkupRendererImpl would clear the 
environment
-            request.setAttribute(InternalConstants.GENERATING_RENDERED_PAGE, 
true);
-            
-            this.handler.handle(new PageRenderRequestParameters(pageName, 
context, false));
-        }
-        finally
-        {
-            request.setAttribute(InternalConstants.GENERATING_RENDERED_PAGE, 
generatingRederedPage);
-        }
+        final EventContext context = activationContext == null ? new 
EmptyEventContext() : new ArrayEventContext(
+                this.typeCoercer, activationContext);
+
+        this.handler.handle(new PageRenderRequestParameters(pageName, context, 
false));
     }
 }

Modified: 
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/ComponentEventDispatcherTest.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/ComponentEventDispatcherTest.java?rev=992907&r1=992906&r2=992907&view=diff
==============================================================================
--- 
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/ComponentEventDispatcherTest.java
 (original)
+++ 
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/ComponentEventDispatcherTest.java
 Sun Sep  5 22:44:57 2010
@@ -50,7 +50,7 @@ public class ComponentEventDispatcherTes
 
         Dispatcher dispatcher = new ComponentEventDispatcher(null,
                 new ComponentEventLinkEncoderImpl(null, contextPathEncoder, 
null, request,
-                        response, null, null, null, true));
+                        response, null, null, true));
 
         assertFalse(dispatcher.dispatch(request, response));
 
@@ -160,7 +160,7 @@ public class ComponentEventDispatcherTes
 
         Dispatcher dispatcher = new ComponentEventDispatcher(handler,
                 new ComponentEventLinkEncoderImpl(resolver, 
contextPathEncoder, ls, request,
-                        response, null, null, null, true));
+                        response, null, null, true));
 
         assertTrue(dispatcher.dispatch(request, response));
 
@@ -200,7 +200,7 @@ public class ComponentEventDispatcherTes
 
         Dispatcher dispatcher = new ComponentEventDispatcher(handler,
                 new ComponentEventLinkEncoderImpl(resolver, 
contextPathEncoder, ls, request,
-                        response, null, null, null, true));
+                        response, null, null, true));
 
         assertTrue(dispatcher.dispatch(request, response));
 
@@ -224,7 +224,7 @@ public class ComponentEventDispatcherTes
 
         Dispatcher dispatcher = new ComponentEventDispatcher(null,
                 new ComponentEventLinkEncoderImpl(resolver, 
contextPathEncoder, ls, request,
-                        response, null, null, null, true));
+                        response, null, null, true));
 
         assertFalse(dispatcher.dispatch(request, response));
 
@@ -262,7 +262,7 @@ public class ComponentEventDispatcherTes
 
         Dispatcher dispatcher = new ComponentEventDispatcher(handler,
                 new ComponentEventLinkEncoderImpl(resolver, 
contextPathEncoder, localizationSetter,
-                        request, response, null, null, null, true));
+                        request, response, null, null, true));
 
         assertTrue(dispatcher.dispatch(request, response));
 

Modified: 
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/ComponentEventLinkEncoderImplTest.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/ComponentEventLinkEncoderImplTest.java?rev=992907&r1=992906&r2=992907&view=diff
==============================================================================
--- 
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/ComponentEventLinkEncoderImplTest.java
 (original)
+++ 
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/ComponentEventLinkEncoderImplTest.java
 Sun Sep  5 22:44:57 2010
@@ -53,7 +53,6 @@ public class ComponentEventLinkEncoderIm
         RequestSecurityManager manager = mockRequestSecurityManager();
         Request request = mockRequest();
         Response response = mockResponse();
-        RequestPathOptimizer optimizer = mockRequestPathOptimizer();
         ContextPathEncoder contextPathEncoder = 
getService(ContextPathEncoder.class);
 
         expect(manager.getBaseURL("MyPage")).andReturn(null);
@@ -64,7 +63,7 @@ public class ComponentEventLinkEncoderIm
         replay();
 
         ComponentEventLinkEncoder encoder = new 
ComponentEventLinkEncoderImpl(null, contextPathEncoder, null, request,
-                response, manager, optimizer, null, false);
+                response, manager, null, false);
 
         PageRenderRequestParameters parameters = new 
PageRenderRequestParameters("MyPage", new EmptyEventContext());
 
@@ -81,7 +80,6 @@ public class ComponentEventLinkEncoderIm
         RequestSecurityManager manager = mockRequestSecurityManager();
         Request request = mockRequest();
         Response response = mockResponse();
-        RequestPathOptimizer optimizer = mockRequestPathOptimizer();
         ContextPathEncoder contextPathEncoder = 
getService(ContextPathEncoder.class);
 
         expect(manager.getBaseURL("admin/Index")).andReturn(null);
@@ -92,7 +90,7 @@ public class ComponentEventLinkEncoderIm
         replay();
 
         ComponentEventLinkEncoder encoder = new 
ComponentEventLinkEncoderImpl(null, contextPathEncoder, null, request,
-                response, manager, optimizer, null, false);
+                response, manager, null, false);
 
         PageRenderRequestParameters parameters = new 
PageRenderRequestParameters("admin/Index", new ArrayEventContext(
                 typeCoercer, "abc"));
@@ -110,7 +108,6 @@ public class ComponentEventLinkEncoderIm
         RequestSecurityManager manager = mockRequestSecurityManager();
         Request request = mockRequest();
         Response response = mockResponse();
-        RequestPathOptimizer optimizer = mockRequestPathOptimizer();
         ContextPathEncoder contextPathEncoder = 
getService(ContextPathEncoder.class);
 
         expect(manager.getBaseURL("Index")).andReturn(null);
@@ -121,7 +118,7 @@ public class ComponentEventLinkEncoderIm
         replay();
 
         ComponentEventLinkEncoder encoder = new 
ComponentEventLinkEncoderImpl(null, contextPathEncoder, null, request,
-                response, manager, optimizer, null, false);
+                response, manager, null, false);
 
         PageRenderRequestParameters parameters = new 
PageRenderRequestParameters("Index", new EmptyEventContext());
 
@@ -149,7 +146,7 @@ public class ComponentEventLinkEncoderIm
         replay();
 
         ComponentEventLinkEncoderImpl linkEncoder = new 
ComponentEventLinkEncoderImpl(resolver, contextPathEncoder, ls,
-                request, response, null, null, null, true);
+                request, response, null, null, true);
 
         PageRenderRequestParameters parameters = 
linkEncoder.decodePageRenderRequest(request);
 
@@ -174,7 +171,7 @@ public class ComponentEventLinkEncoderIm
         replay();
 
         ComponentEventLinkEncoderImpl linkEncoder = new 
ComponentEventLinkEncoderImpl(resolver, contextPathEncoder, ls,
-                request, response, null, null, null, true);
+                request, response, null, null, true);
 
         PageRenderRequestParameters parameters = 
linkEncoder.decodePageRenderRequest(request);
 
@@ -200,7 +197,7 @@ public class ComponentEventLinkEncoderIm
         replay();
 
         ComponentEventLinkEncoderImpl linkEncoder = new 
ComponentEventLinkEncoderImpl(resolver, contextPathEncoder, ls,
-                request, response, null, null, null, true);
+                request, response, null, null, true);
 
         PageRenderRequestParameters parameters = 
linkEncoder.decodePageRenderRequest(request);
 
@@ -241,7 +238,7 @@ public class ComponentEventLinkEncoderIm
         replay();
 
         ComponentEventLinkEncoderImpl linkEncoder = new 
ComponentEventLinkEncoderImpl(resolver, contextPathEncoder, ls,
-                request, null, null, null, null, true);
+                request, null, null, null, true);
 
         PageRenderRequestParameters parameters = 
linkEncoder.decodePageRenderRequest(request);
 
@@ -282,7 +279,7 @@ public class ComponentEventLinkEncoderIm
         replay();
 
         ComponentEventLinkEncoderImpl linkEncoder = new 
ComponentEventLinkEncoderImpl(resolver, contextPathEncoder, ls,
-                request, null, null, null, null, true);
+                request, null, null, null, true);
 
         PageRenderRequestParameters parameters = 
linkEncoder.decodePageRenderRequest(request);
 
@@ -327,7 +324,7 @@ public class ComponentEventLinkEncoderIm
         replay();
 
         ComponentEventLinkEncoderImpl linkEncoder = new 
ComponentEventLinkEncoderImpl(resolver, contextPathEncoder, ls,
-                request, null, null, null, null, true);
+                request, null, null, null, true);
 
         PageRenderRequestParameters parameters = 
linkEncoder.decodePageRenderRequest(request);
 

Modified: 
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/LinkImplTest.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/LinkImplTest.java?rev=992907&r1=992906&r2=992907&view=diff
==============================================================================
--- 
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/LinkImplTest.java
 (original)
+++ 
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/LinkImplTest.java
 Sun Sep  5 22:44:57 2010
@@ -30,7 +30,6 @@ public class LinkImplTest extends Intern
     @Test
     public void simple_redirect()
     {
-        RequestPathOptimizer optimizer = mockRequestPathOptimizer();
         Response response = mockResponse();
 
         String URI = "/base/context/" + RAW_PATH;
@@ -39,7 +38,7 @@ public class LinkImplTest extends Intern
 
         replay();
 
-        Link link = new LinkImpl(URI, true, false, response, optimizer);
+        Link link = new LinkImpl(URI, false, response);
 
         assertEquals(link.toRedirectURI(), ENCODED);
 
@@ -49,15 +48,15 @@ public class LinkImplTest extends Intern
     @Test
     public void to_string_same_as_to_uri()
     {
-        RequestPathOptimizer optimizer = mockRequestPathOptimizer();
         Response response = mockResponse();
 
-        train_optimizePath(optimizer, "/bar/" + RAW_PATH, OPTIMIZED);
-        train_encodeURL(response, OPTIMIZED, ENCODED);
+        String url = "/bar/" + RAW_PATH;
+
+        train_encodeURL(response, url, ENCODED);
 
         replay();
 
-        Link link = new LinkImpl("/bar/" + RAW_PATH, true, false, response, 
optimizer);
+        Link link = new LinkImpl(url, false, response);
 
         assertEquals(link.toString(), ENCODED);
 
@@ -67,12 +66,11 @@ public class LinkImplTest extends Intern
     @Test
     public void retrieve_parameter_values()
     {
-        RequestPathOptimizer optimizer = mockRequestPathOptimizer();
         Response response = mockResponse();
 
         replay();
 
-        Link link = new LinkImpl("/foo/bar", true, false, response, optimizer);
+        Link link = new LinkImpl("/foo/bar", false, response);
 
         link.addParameter("fred", "flintstone");
 
@@ -84,15 +82,15 @@ public class LinkImplTest extends Intern
     @Test
     public void url_with_anchor()
     {
-        RequestPathOptimizer optimizer = mockRequestPathOptimizer();
         Response response = mockResponse();
 
-        train_optimizePath(optimizer, "/foo/bar", OPTIMIZED);
-        train_encodeURL(response, OPTIMIZED, ENCODED);
+        String url = "/foo/bar";
+
+        train_encodeURL(response, url, ENCODED);
 
         replay();
 
-        Link link = new LinkImpl("/foo/bar", true, false, response, optimizer);
+        Link link = new LinkImpl(url, false, response);
         link.setAnchor("wilma");
 
         assertSame(link.getAnchor(), "wilma");
@@ -105,14 +103,13 @@ public class LinkImplTest extends Intern
     @Test
     public void force_absolute_uri()
     {
-        RequestPathOptimizer optimizer = mockRequestPathOptimizer();
         Response response = mockResponse();
 
         train_encodeURL(response, "/ctx/foo", ENCODED);
 
         replay();
 
-        Link link = new LinkImpl("/ctx/foo", true, false, response, optimizer);
+        Link link = new LinkImpl("/ctx/foo", false, response);
 
         assertEquals(link.toAbsoluteURI(), ENCODED);
 
@@ -122,7 +119,6 @@ public class LinkImplTest extends Intern
     @Test
     public void to_uri_with_added_parameters_and_on_construction_uri()
     {
-        RequestPathOptimizer optimizer = mockRequestPathOptimizer();
         Response response = mockResponse();
 
         String expectedURI = "/ctx/foo?foo=bar&baz=barney";
@@ -130,7 +126,7 @@ public class LinkImplTest extends Intern
 
         replay();
 
-        Link link = new LinkImpl("/ctx/foo?foo=bar", false, false, response, 
optimizer);
+        Link link = new LinkImpl("/ctx/foo?foo=bar", false, response);
         link.addParameter("baz", "barney");
 
         assertEquals(link.toURI(), expectedURI);
@@ -141,7 +137,6 @@ public class LinkImplTest extends Intern
     @Test
     public void new_base_uri()
     {
-        RequestPathOptimizer optimizer = mockRequestPathOptimizer();
         Response response = mockResponse();
 
         String expectedURI = "/ctx/baz?baz=barney";
@@ -149,7 +144,7 @@ public class LinkImplTest extends Intern
 
         replay();
 
-        Link link = new LinkImpl("/ctx/foo", false, false, response, 
optimizer);
+        Link link = new LinkImpl("/ctx/foo", false, response);
         link.addParameter("baz", "barney");
         link.setAnchor("jacob");
 
@@ -163,7 +158,7 @@ public class LinkImplTest extends Intern
     @Test
     public void remove_parameter()
     {
-        Link link = new LinkImpl("/baseURI", false, false, null, null);
+        Link link = new LinkImpl("/baseURI", false, null);
 
         link.addParameter("fred", "flintstone");
         link.addParameter("barney", "rubble");

Modified: 
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/test/InternalBaseTestCase.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/test/InternalBaseTestCase.java?rev=992907&r1=992906&r2=992907&view=diff
==============================================================================
--- 
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/test/InternalBaseTestCase.java
 (original)
+++ 
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/test/InternalBaseTestCase.java
 Sun Sep  5 22:44:57 2010
@@ -517,16 +517,6 @@ public class InternalBaseTestCase extend
         return newMock(PageContentTypeAnalyzer.class);
     }
 
-    protected final RequestPathOptimizer mockRequestPathOptimizer()
-    {
-        return newMock(RequestPathOptimizer.class);
-    }
-
-    protected final void train_optimizePath(RequestPathOptimizer optimizer, 
String path, String optimizedPath)
-    {
-        expect(optimizer.optimizePath(path)).andReturn(optimizedPath);
-    }
-
     protected final ActionRenderResponseGenerator 
mockActionRenderResponseGenerator()
     {
         return newMock(ActionRenderResponseGenerator.class);

Modified: 
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/urlrewriter/IntegrationTests.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/urlrewriter/IntegrationTests.java?rev=992907&r1=992906&r2=992907&view=diff
==============================================================================
--- 
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/urlrewriter/IntegrationTests.java
 (original)
+++ 
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/urlrewriter/IntegrationTests.java
 Sun Sep  5 22:44:57 2010
@@ -69,9 +69,9 @@ public class IntegrationTests extends Ta
     public void test_url_rewriter_using_context() throws InterruptedException
     {
         open("/RewriteWithContext");
-        assertAttribute("//a...@class='page']/@href","rpage/2sseccusetirwer");
-        assertAttribute("//a...@class='event']/@href", 
"cevent/txetnochtiwetirwer:kcilc");
-        
assertAttribute("//a...@class='action']/@href","cevent/txetnochtiwetirwer.knilgnitcaeht");
+        assertAttribute("//a...@class='page']/@href","/rpage/2sseccusetirwer");
+        assertAttribute("//a...@class='event']/@href", 
"/cevent/txetnochtiwetirwer:kcilc");
+        
assertAttribute("//a...@class='action']/@href","/cevent/txetnochtiwetirwer.knilgnitcaeht");
 
         open("/RewriteWithContext");
         clickAndWait("//a...@class='page']");


Reply via email to