Author: jkuhnert
Date: Sun Mar 18 14:49:50 2007
New Revision: 519705

URL: http://svn.apache.org/viewvc?view=rev&rev=519705
Log:
Fixes TAPESTRY-872. 

The documented usage of PageAttachListener stated that page properties should 
be restored before the listener is called. Modified logic so that RequestCycle 
calls firePageAttached directly and removed the firePageAttached call within 
AbstractPage.attach

Removed:
    tapestry/tapestry4/trunk/tapestry-annotations/.cvsignore
Modified:
    
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/AbstractPage.java
    
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/binding/ExpressionBinding.java
    
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/engine/RequestCycle.java
    
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/pageload/PageLoader.java
    
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/binding/TestExpressionBinding.java
    
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/html/TestPageEvents.java
    tapestry/tapestry4/trunk/tapestry-framework/tapestry-framework.iml
    tapestry/tapestry4/trunk/tapestry.ipr
    tapestry/tapestry4/trunk/tapestry.iws

Modified: 
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/AbstractPage.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/AbstractPage.java?view=diff&rev=519705&r1=519704&r2=519705
==============================================================================
--- 
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/AbstractPage.java
 (original)
+++ 
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/AbstractPage.java
 Sun Mar 18 14:49:50 2007
@@ -14,25 +14,18 @@
 
 package org.apache.tapestry;
 
-import java.util.EventListener;
-import java.util.Locale;
-
-import javax.swing.event.EventListenerList;
-
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hivemind.ApplicationRuntimeException;
 import org.apache.tapestry.engine.NullWriter;
-import org.apache.tapestry.event.ChangeObserver;
-import org.apache.tapestry.event.PageAttachListener;
-import org.apache.tapestry.event.PageBeginRenderListener;
-import org.apache.tapestry.event.PageDetachListener;
-import org.apache.tapestry.event.PageEndRenderListener;
-import org.apache.tapestry.event.PageEvent;
-import org.apache.tapestry.event.PageValidateListener;
+import org.apache.tapestry.event.*;
 import org.apache.tapestry.services.ResponseBuilder;
 import org.apache.tapestry.util.StringSplitter;
 
+import javax.swing.event.EventListenerList;
+import java.util.EventListener;
+import java.util.Locale;
+
 /**
  * Abstract base class implementing the [EMAIL PROTECTED] IPage}interface.
  * 
@@ -207,7 +200,7 @@
     /**
      * Called by the [EMAIL PROTECTED] IEngine engine}to attach the page to 
itself. Does <em>not</em> change
      * the locale, but since a page is selected from the
-     * [EMAIL PROTECTED] org.apache.tapestry.engine.IPageSource}pool based on 
its locale matching the engine's
+     * [EMAIL PROTECTED] org.apache.tapestry.engine.IPageSource} pool based on 
its locale matching the engine's
      * locale, they should match anyway.
      */
 
@@ -218,8 +211,6 @@
 
         _engine = engine;
         _requestCycle = cycle;
-
-        firePageAttached();
     }
 
     /**

Modified: 
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/binding/ExpressionBinding.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/binding/ExpressionBinding.java?view=diff&rev=519705&r1=519704&r2=519705
==============================================================================
--- 
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/binding/ExpressionBinding.java
 (original)
+++ 
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/binding/ExpressionBinding.java
 Sun Mar 18 14:49:50 2007
@@ -208,7 +208,6 @@
         StringBuffer buffer = new StringBuffer();
 
         buffer.append("ExpressionBinding[");
-        buffer.append(_root.getId());
         buffer.append(_root.getExtendedId());
 
         if (_expression != null)

Modified: 
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/engine/RequestCycle.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/engine/RequestCycle.java?view=diff&rev=519705&r1=519704&r2=519705
==============================================================================
--- 
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/engine/RequestCycle.java
 (original)
+++ 
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/engine/RequestCycle.java
 Sun Mar 18 14:49:50 2007
@@ -14,11 +14,6 @@
 
 package org.apache.tapestry.engine;
 
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Stack;
-
 import org.apache.commons.fileupload.RequestContext;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -27,17 +22,7 @@
 import org.apache.hivemind.impl.ErrorLogImpl;
 import org.apache.hivemind.util.Defense;
 import org.apache.hivemind.util.ToStringBuilder;
-import org.apache.tapestry.IComponent;
-import org.apache.tapestry.IEngine;
-import org.apache.tapestry.IForm;
-import org.apache.tapestry.IMarkupWriter;
-import org.apache.tapestry.IPage;
-import org.apache.tapestry.IRender;
-import org.apache.tapestry.IRequestCycle;
-import org.apache.tapestry.RedirectException;
-import org.apache.tapestry.RenderRewoundException;
-import org.apache.tapestry.StaleLinkException;
-import org.apache.tapestry.Tapestry;
+import org.apache.tapestry.*;
 import org.apache.tapestry.record.PageRecorderImpl;
 import org.apache.tapestry.record.PropertyPersistenceStrategySource;
 import org.apache.tapestry.services.AbsoluteURLBuilder;
@@ -46,6 +31,11 @@
 import org.apache.tapestry.util.IdAllocator;
 import org.apache.tapestry.util.QueryParameterMap;
 
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Stack;
+
 /**
  * Provides the logic for processing a single request cycle. Provides access 
to the
  * [EMAIL PROTECTED] IEngine engine} and the [EMAIL PROTECTED] RequestContext}.
@@ -264,8 +254,11 @@
 
         result.setChangeObserver(recorder);
 
-        return result;
+        // fire off pageAttached now that properties have been restored
+
+        result.firePageAttached();
 
+        return result;
     }
 
     /**
@@ -379,8 +372,7 @@
 
         // Woops. Mismatch.
 
-        throw new StaleLinkException(component, 
Integer.toHexString(_targetActionId),
-                _targetComponent.getExtendedId());
+        throw new StaleLinkException(component, 
Integer.toHexString(_targetActionId), _targetComponent.getExtendedId());
     }
 
     public void removeAttribute(String name)
@@ -463,8 +455,7 @@
             // Shouldn't get this far, because the form should
             // throw the RenderRewoundException.
 
-            throw new 
StaleLinkException(Tapestry.format("RequestCycle.form-rewind-failure", form
-                    .getExtendedId()), form);
+            throw new 
StaleLinkException(Tapestry.format("RequestCycle.form-rewind-failure", 
form.getExtendedId()), form);
         }
         catch (RenderRewoundException ex)
         {

Modified: 
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/pageload/PageLoader.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/pageload/PageLoader.java?view=diff&rev=519705&r1=519704&r2=519705
==============================================================================
--- 
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/pageload/PageLoader.java
 (original)
+++ 
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/pageload/PageLoader.java
 Sun Mar 18 14:49:50 2007
@@ -14,28 +14,11 @@
 
 package org.apache.tapestry.pageload;
 
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Locale;
-
 import org.apache.commons.logging.Log;
-import org.apache.hivemind.ApplicationRuntimeException;
-import org.apache.hivemind.ClassResolver;
-import org.apache.hivemind.HiveMind;
-import org.apache.hivemind.Location;
-import org.apache.hivemind.Resource;
+import org.apache.hivemind.*;
 import org.apache.hivemind.service.ThreadLocale;
 import org.apache.hivemind.util.ContextResource;
-import org.apache.tapestry.BaseComponent;
-import org.apache.tapestry.IAsset;
-import org.apache.tapestry.IBinding;
-import org.apache.tapestry.IComponent;
-import org.apache.tapestry.INamespace;
-import org.apache.tapestry.IPage;
-import org.apache.tapestry.IRequestCycle;
-import org.apache.tapestry.ITemplateComponent;
-import org.apache.tapestry.TapestryConstants;
+import org.apache.tapestry.*;
 import org.apache.tapestry.asset.AssetSource;
 import org.apache.tapestry.binding.BindingSource;
 import org.apache.tapestry.engine.IPageLoader;
@@ -44,15 +27,14 @@
 import org.apache.tapestry.services.ComponentConstructorFactory;
 import org.apache.tapestry.services.ComponentPropertySource;
 import org.apache.tapestry.services.ComponentTemplateLoader;
-import org.apache.tapestry.spec.BindingType;
-import org.apache.tapestry.spec.ContainedComponent;
-import org.apache.tapestry.spec.IAssetSpecification;
-import org.apache.tapestry.spec.IBindingSpecification;
-import org.apache.tapestry.spec.IComponentSpecification;
-import org.apache.tapestry.spec.IContainedComponent;
-import org.apache.tapestry.spec.IParameterSpecification;
+import org.apache.tapestry.spec.*;
 import org.apache.tapestry.web.WebContextResource;
 
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Locale;
+
 /**
  * Implementation of tapestry.page.PageLoader. Runs the process of building the
  * component hierarchy for an entire page.
@@ -183,15 +165,15 @@
      * checking and eror checking in the final version.
      * 
      * @param container
-     *            The containing component. For a dynamic binding ([EMAIL 
PROTECTED] ExpressionBinding})
+     *            The containing component. For a dynamic binding ([EMAIL 
PROTECTED] org.apache.tapestry.binding.ExpressionBinding})
      *            the property name is evaluated with the container as the 
root.
      * @param component
      *            The contained component being bound.
-     * @param spec
-     *            The specification of the contained component.
      * @param contained
      *            The contained component specification (from the container's
      *            [EMAIL PROTECTED] IComponentSpecification}).
+     * @param defaultBindingPrefix
+     *            The default binding prefix to be used with the component.
      */
 
     void bind(IComponent container, IComponent component,
@@ -355,8 +337,8 @@
      *            The component to be set up.
      * @param containerSpec
      *            The specification for the container.
-     * @param the
-     *            namespace of the container
+     * @param namespace
+     *            The namespace of the container
      */
 
     private void constructComponent(IRequestCycle cycle, IPage page,
@@ -484,7 +466,7 @@
      * Instantiates a component from its specification. We instantiate the
      * component object, then set its specification, page, container and id.
      * 
-     * @see AbstractComponent
+     * @see org.apache.tapestry.AbstractComponent
      */
 
     private IComponent instantiateComponent(IPage page, IComponent container,
@@ -540,8 +522,8 @@
      * @param spec
      *            the page's specification We instantiate the page object, then
      *            set its specification, names and locale.
-     * @see IEngine
-     * @see ChangeObserver
+     * @see org.apache.tapestry.IEngine
+     * @see org.apache.tapestry.event.ChangeObserver
      */
 
     private IPage instantiatePage(String name, INamespace namespace,
@@ -609,12 +591,6 @@
             // Walk through the complete component tree to ensure that required
             // parameters are bound
             _verifyRequiredParametersWalker.walkComponentTree(page);
-
-            // Now that the page has been properly constructed, the page
-            // or any components on the page will have been registered as
-            // page attach listeners.
-
-            page.firePageAttached();
         }
         finally
         {

Modified: 
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/binding/TestExpressionBinding.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/binding/TestExpressionBinding.java?view=diff&rev=519705&r1=519704&r2=519705
==============================================================================
--- 
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/binding/TestExpressionBinding.java
 (original)
+++ 
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/binding/TestExpressionBinding.java
 Sun Mar 18 14:49:50 2007
@@ -14,18 +14,16 @@
 
 package org.apache.tapestry.binding;
 
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.expectLastCall;
-
 import ognl.Node;
 import ognl.enhance.ExpressionAccessor;
-
 import org.apache.hivemind.Location;
 import org.apache.tapestry.BindingException;
 import org.apache.tapestry.IComponent;
 import org.apache.tapestry.coerce.ValueConverter;
 import org.apache.tapestry.services.ExpressionCache;
 import org.apache.tapestry.services.ExpressionEvaluator;
+import static org.easymock.EasyMock.expect;
+import static org.easymock.EasyMock.expectLastCall;
 import org.testng.annotations.Test;
 
 /**
@@ -62,12 +60,11 @@
         
         expect(ev.readCompiled(component, 
compiled)).andReturn(expressionValue);
         
-        expect(component.getId()).andReturn("Foo/bar.baz");
-        
+        expect(component.getExtendedId()).andReturn("Foo/bar");
+
         replay();
         
-        ExpressionBinding b = new ExpressionBinding("param", l, vc, component,
-                "exp", ev, ec);
+        ExpressionBinding b = new ExpressionBinding("param", l, vc, component, 
"exp", ev, ec);
         
         assertEquals(true, b.isInvariant());
         
@@ -82,7 +79,7 @@
         
         assertSame(component, b.getComponent());
 
-        assertEquals(b.toString(), "ExpressionBinding[Foo/bar.baz exp]");
+        assertEquals(b.toString(), "ExpressionBinding[Foo/bar exp]");
 
         verify();
     }
@@ -177,8 +174,8 @@
         
         expect(ev.isConstant("exp")).andReturn(true);
 
-        expect(component.getId()).andReturn("Foo/bar.baz");
-        
+        expect(component.getExtendedId()).andReturn("Foo/bar.baz");
+
         replay();
 
         ExpressionBinding b = new ExpressionBinding("parameter foo", l, vc, 
component,

Modified: 
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/html/TestPageEvents.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/html/TestPageEvents.java?view=diff&rev=519705&r1=519704&r2=519705
==============================================================================
--- 
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/html/TestPageEvents.java
 (original)
+++ 
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/html/TestPageEvents.java
 Sun Mar 18 14:49:50 2007
@@ -14,14 +14,13 @@
 
 package org.apache.tapestry.html;
 
-import static org.easymock.EasyMock.expect;
-
 import org.apache.tapestry.BaseComponentTestCase;
 import org.apache.tapestry.IPage;
 import org.apache.tapestry.IRequestCycle;
 import org.apache.tapestry.engine.NullWriter;
 import org.apache.tapestry.services.ResponseBuilder;
 import org.apache.tapestry.test.Creator;
+import static org.easymock.EasyMock.expect;
 import org.testng.annotations.Test;
 
 /**
@@ -77,7 +76,11 @@
 
         page.attach(null, null);
 
-        assertEquals("pageAttached", l.getMethod());
+        assertEquals(l.getMethod(), null);
+
+        page.firePageAttached();
+
+        assertEquals(l.getMethod(), "pageAttached");
 
         l.reset();
 

Modified: tapestry/tapestry4/trunk/tapestry-framework/tapestry-framework.iml
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/tapestry-framework.iml?view=diff&rev=519705&r1=519704&r2=519705
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/tapestry-framework.iml 
(original)
+++ tapestry/tapestry4/trunk/tapestry-framework/tapestry-framework.iml Sun Mar 
18 14:49:50 2007
@@ -355,6 +355,7 @@
         </SOURCES>
       </library>
     </orderEntry>
+    <orderEntry type="module" module-name="tapestry-annotations" />
     <orderEntryProperties />
   </component>
 </module>

Modified: tapestry/tapestry4/trunk/tapestry.ipr
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry.ipr?view=diff&rev=519705&r1=519704&r2=519705
==============================================================================
--- tapestry/tapestry4/trunk/tapestry.ipr (original)
+++ tapestry/tapestry4/trunk/tapestry.ipr Sun Mar 18 14:49:50 2007
@@ -112,7 +112,7 @@
   </component>
   <component name="JavacSettings">
     <option name="DEBUGGING_INFO" value="true" />
-    <option name="GENERATE_NO_WARNINGS" value="false" />
+    <option name="GENERATE_NO_WARNINGS" value="true" />
     <option name="DEPRECATION" value="false" />
     <option name="ADDITIONAL_OPTIONS_STRING" value="" />
     <option name="MAXIMUM_HEAP_SIZE" value="128" />

Modified: tapestry/tapestry4/trunk/tapestry.iws
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry.iws?view=diff&rev=519705&r1=519704&r2=519705
==============================================================================
--- tapestry/tapestry4/trunk/tapestry.iws (original)
+++ tapestry/tapestry4/trunk/tapestry.iws Sun Mar 18 14:49:50 2007
@@ -18,14 +18,15 @@
   <component name="ChangeListManager">
     <list default="true" name="Default" comment="">
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/tapestry.iws" 
afterPath="$PROJECT_DIR$/tapestry.iws" />
+      <change type="MODIFICATION" 
beforePath="$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/pageload/PageLoader.java"
 
afterPath="$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/pageload/PageLoader.java"
 />
       <change type="MODIFICATION" 
beforePath="$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/binding/ExpressionBinding.java"
 
afterPath="$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/binding/ExpressionBinding.java"
 />
-      <change type="MODIFICATION" 
beforePath="$PROJECT_DIR$/tapestry-examples/Workbench/src/java/org/apache/tapestry/workbench/palette/Palette.java"
 
afterPath="$PROJECT_DIR$/tapestry-examples/Workbench/src/java/org/apache/tapestry/workbench/palette/Palette.java"
 />
-      <change type="MODIFICATION" 
beforePath="$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/services/impl/ExpressionEvaluatorImpl.java"
 
afterPath="$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/services/impl/ExpressionEvaluatorImpl.java"
 />
-      <change type="MODIFICATION" 
beforePath="$PROJECT_DIR$/tapestry-examples/Workbench/src/java/org/apache/tapestry/workbench/palette/PaletteResults.java"
 
afterPath="$PROJECT_DIR$/tapestry-examples/Workbench/src/java/org/apache/tapestry/workbench/palette/PaletteResults.java"
 />
-      <change type="MODIFICATION" 
beforePath="$PROJECT_DIR$/tapestry-examples/TimeTracker/TimeTracker.iml" 
afterPath="$PROJECT_DIR$/tapestry-examples/TimeTracker/TimeTracker.iml" />
-      <change type="MODIFICATION" 
beforePath="$PROJECT_DIR$/tapestry-contrib/src/site/xdoc/componentreference/palette.xml"
 
afterPath="$PROJECT_DIR$/tapestry-contrib/src/site/xdoc/componentreference/palette.xml"
 />
-      <change type="MODIFICATION" 
beforePath="$PROJECT_DIR$/tapestry-examples/Workbench/Workbench.iml" 
afterPath="$PROJECT_DIR$/tapestry-examples/Workbench/Workbench.iml" />
-      <change type="DELETED" 
beforePath="$PROJECT_DIR$/tapestry-examples/Workbench/src/config/jetty.xml" 
afterPath="" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/tapestry.ipr" 
afterPath="$PROJECT_DIR$/tapestry.ipr" />
+      <change type="MODIFICATION" 
beforePath="$PROJECT_DIR$/tapestry-framework/tapestry-framework.iml" 
afterPath="$PROJECT_DIR$/tapestry-framework/tapestry-framework.iml" />
+      <change type="MODIFICATION" 
beforePath="$PROJECT_DIR$/tapestry-framework/src/test/org/apache/tapestry/html/TestPageEvents.java"
 
afterPath="$PROJECT_DIR$/tapestry-framework/src/test/org/apache/tapestry/html/TestPageEvents.java"
 />
+      <change type="MODIFICATION" 
beforePath="$PROJECT_DIR$/tapestry-framework/src/test/org/apache/tapestry/binding/TestExpressionBinding.java"
 
afterPath="$PROJECT_DIR$/tapestry-framework/src/test/org/apache/tapestry/binding/TestExpressionBinding.java"
 />
+      <change type="MODIFICATION" 
beforePath="$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/AbstractPage.java"
 
afterPath="$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/AbstractPage.java"
 />
+      <change type="MODIFICATION" 
beforePath="$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/engine/RequestCycle.java"
 
afterPath="$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/engine/RequestCycle.java"
 />
+      <change type="DELETED" 
beforePath="$PROJECT_DIR$/tapestry-annotations/.cvsignore" afterPath="" />
     </list>
   </component>
   <component name="ChangesViewManager" flattened_view="true" />
@@ -236,26 +237,26 @@
   </component>
   <component name="RecentsManager" />
   <component name="RestoreUpdateTree" />
-  <component name="RunManager" selected="TestNG.TestListenerMethodBinding">
-    <tempConfiguration default="false" name="TestListenerMethodBinding" 
type="TestNG" factoryName="TestNG" enabled="false" merge="false">
+  <component name="RunManager" selected="TestNG.TestPageEvents">
+    <tempConfiguration default="false" name="TestPageEvents" type="TestNG" 
factoryName="TestNG" enabled="false" merge="false">
       <module name="tapestry-framework" />
       <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
-      <option name="ALTERNATIVE_JRE_PATH" value="" />
-      <option name="SUITE_NAME" value="" />
-      <option name="PACKAGE_NAME" value="org.apache.tapestry.binding" />
-      <option name="MAIN_CLASS_NAME" 
value="org.apache.tapestry.binding.TestListenerMethodBinding" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <option name="SUITE_NAME" />
+      <option name="PACKAGE_NAME" value="org.apache.tapestry.html" />
+      <option name="MAIN_CLASS_NAME" 
value="org.apache.tapestry.html.TestPageEvents" />
       <option name="METHOD_NAME" />
-      <option name="GROUP_NAME" value="" />
+      <option name="GROUP_NAME" />
       <option name="TEST_OBJECT" value="CLASS" />
-      <option name="VM_PARAMETERS" value="" />
-      <option name="PARAMETERS" value="" />
-      <option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
-      <option name="OUTPUT_DIRECTORY" value="" />
+      <option name="VM_PARAMETERS" />
+      <option name="PARAMETERS" />
+      <option name="WORKING_DIRECTORY" />
+      <option name="OUTPUT_DIRECTORY" />
       <option name="ADDITIONAL_CLASS_PATH" />
       <option name="TEST_SEARCH_SCOPE">
-        <value defaultName="singleModule" />
+        <value defaultName="wholeProject" />
       </option>
-      <option name="PROPERTIES_FILE" value="" />
+      <option name="PROPERTIES_FILE" />
       <properties />
       <RunnerSettings RunnerId="Run" />
       <ConfigurationWrapper RunnerId="Run" />
@@ -410,7 +411,7 @@
       <window_info id="Changes" active="false" anchor="bottom" 
auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" 
weight="0.20563847" order="8" />
       <window_info id="Palette" active="false" anchor="right" 
auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" 
weight="0.33" order="3" />
       <window_info id="Ant Build" active="false" anchor="right" 
auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" 
weight="0.25" order="1" />
-      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" 
internal_type="DOCKED" type="DOCKED" visible="false" weight="0.28713694" 
order="1" />
+      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" 
internal_type="DOCKED" type="DOCKED" visible="false" weight="0.23568465" 
order="1" />
       <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" 
internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" order="3" />
       <window_info id="Version Control" active="false" anchor="bottom" 
auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" 
weight="0.32974318" order="8" />
       <window_info id="Messages" active="false" anchor="bottom" 
auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" 
weight="0.20829876" order="8" />
@@ -425,7 +426,7 @@
       <window_info id="Project" active="true" anchor="left" auto_hide="false" 
internal_type="DOCKED" type="DOCKED" visible="true" weight="0.1932814" 
order="0" />
       <window_info id="Hierarchy" active="false" anchor="right" 
auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" 
weight="0.25" order="2" />
       <window_info id="Inspection" active="false" anchor="bottom" 
auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" 
weight="0.4" order="6" />
-      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" 
internal_type="DOCKED" type="DOCKED" visible="false" weight="0.22323652" 
order="2" />
+      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" 
internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25892118" 
order="2" />
       <window_info id="SVN Repositories" active="true" anchor="bottom" 
auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" 
weight="0.27219918" order="8" />
       <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" 
internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" order="5" />
       <window_info id="Message" active="false" anchor="bottom" 
auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" 
weight="0.33" order="0" />
@@ -447,7 +448,7 @@
     <option name="PERFORM_COMMIT_IN_BACKGROUND" value="false" />
     <option name="PUT_FOCUS_INTO_COMMENT" value="false" />
     <option name="FORCE_NON_EMPTY_COMMENT" value="false" />
-    <option name="LAST_COMMIT_MESSAGE" value="Minor code cleanup. 
&#10;&#10;Fixed Palette documentation by removing funky character causing td 
definitions." />
+    <option name="LAST_COMMIT_MESSAGE" value="Fixes TAPESTRY-872. 
&#10;&#10;The documented usage of PageAttachListener stated that page 
properties should be restored before the listener is called. Modified logic so 
that RequestCycle calls firePageAttached directly and removed the 
firePageAttached call within AbstractPage.attach" />
     <option name="SAVE_LAST_COMMIT_MESSAGE" value="true" />
     <option name="CHECKIN_DIALOG_SPLITTER_PROPORTION" value="0.8" />
     <option name="OPTIMIZE_IMPORTS_BEFORE_PROJECT_COMMIT" value="true" />
@@ -464,6 +465,7 @@
     <MESSAGE value="Minor code cleanup, removal of old .cvsignore properties." 
/>
     <MESSAGE value="Fixes for TAPESTRY-838. &#10;&#10;Exposed listener method 
name targeted for invocation in IActionListener / ListenerInvoker." />
     <MESSAGE value="Minor code cleanup. &#10;&#10;Fixed Palette documentation 
by removing funky character causing td definitions." />
+    <MESSAGE value="Fixes TAPESTRY-872. &#10;&#10;The documented usage of 
PageAttachListener stated that page properties should be restored before the 
listener is called. Modified logic so that RequestCycle calls firePageAttached 
directly and removed the firePageAttached call within AbstractPage.attach" />
   </component>
   <component name="antWorkspaceConfiguration">
     <option name="IS_AUTOSCROLL_TO_SOURCE" value="false" />
@@ -474,113 +476,113 @@
   </component>
   <component 
name="com.intellij.openapi.roots.ui.configuration.projectRoot.ProjectRootMasterDetailsConfigurable"
 proportions="0.22673559,0.5" version="1">
     <option name="myPlainMode" value="false" />
-    <option name="myLastEditedConfigurable" value="Workbench" />
+    <option name="myLastEditedConfigurable" value="tapestry" />
   </component>
   <component name="com.intellij.profile.ui.ErrorOptionsConfigurable" 
proportions="0.16666667,0.5642857" version="1">
     <option name="myLastEditedConfigurable" value="Project Default" />
   </component>
   <component name="editorHistoryManager">
-    <entry 
file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/IActionListener.java">
+    <entry 
file="file://$PROJECT_DIR$/tapestry-framework/src/test/org/apache/tapestry/pageload/PageLoaderTest.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="46" column="27" selection-start="1428" 
selection-end="1593" vertical-scroll-proportion="0.43441227">
+        <state line="63" column="9" selection-start="2304" 
selection-end="2304" vertical-scroll-proportion="0.42163545">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry 
file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/listener/ListenerMethodInvoker.java">
+    <entry 
file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/enhance/AbstractPropertyWorker.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="37" column="0" selection-start="1421" 
selection-end="1421" vertical-scroll-proportion="0.31942078">
+        <state line="40" column="0" selection-start="1456" 
selection-end="1456" vertical-scroll-proportion="0.23274854">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry 
file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/listener/ListenerMethodInvokerImpl.java">
+    <entry 
file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/enhance/SpecifiedPropertyWorker.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="174" column="43" selection-start="6327" 
selection-end="6327" vertical-scroll-proportion="0.36115843">
+        <state line="192" column="8" selection-start="7637" 
selection-end="7637" vertical-scroll-proportion="1.671345">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry 
file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/binding/ListenerMethodBinding.java">
+    <entry 
file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/engine/RequestCycle.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="42" column="0" selection-start="1663" 
selection-end="1663" vertical-scroll-proportion="0.3157277">
+        <state line="259" column="0" selection-start="6952" 
selection-end="6952" vertical-scroll-proportion="0.52982455">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry 
file="file://$PROJECT_DIR$/tapestry-framework/src/test/org/apache/tapestry/binding/TestListenerMethodBinding.java">
+    <entry 
file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/pageload/PageSource.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="201" column="0" selection-start="6137" 
selection-end="6137" vertical-scroll-proportion="0.83390117">
+        <state line="117" column="0" selection-start="3854" 
selection-end="3854" vertical-scroll-proportion="0.451462">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry 
file="file://$PROJECT_DIR$/tapestry-examples/Workbench/src/config/jetty.xml">
+    <entry 
file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/enhance/EnhanceUtils.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="24" column="35" selection-start="980" selection-end="980" 
vertical-scroll-proportion="0.28449744">
+        <state line="45" column="0" selection-start="1670" 
selection-end="1670" vertical-scroll-proportion="0.2982456">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/tapestry-examples/Workbench/pom.xml">
+    <entry 
file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/IComponent.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="48" column="0" selection-start="1741" 
selection-end="1741" vertical-scroll-proportion="0.36115843">
+        <state line="145" column="11" selection-start="4555" 
selection-end="4555" vertical-scroll-proportion="0.33333334">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry 
file="file://$PROJECT_DIR$/tapestry-contrib/src/site/xdoc/componentreference/palette.xml">
+    <entry 
file="file://$PROJECT_DIR$/tapestry-framework/src/test/org/apache/tapestry/binding/TestExpressionBinding.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="209" column="38" selection-start="9608" 
selection-end="9608" vertical-scroll-proportion="0.4471891">
+        <state line="177" column="0" selection-start="5771" 
selection-end="5771" vertical-scroll-proportion="0.4471891">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry 
file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/binding/OGNLBindingFactory.java">
+    <entry 
file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/AbstractComponent.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="25" column="3" selection-start="1034" 
selection-end="1034" vertical-scroll-proportion="0.11499148">
+        <state line="442" column="12" selection-start="11900" 
selection-end="11900" vertical-scroll-proportion="0.39608178">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry 
file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/binding/ExpressionBinding.java">
+    <entry 
file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/AbstractPage.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="199" column="0" selection-start="5140" 
selection-end="5140" vertical-scroll-proportion="1.3577513">
+        <state line="326" column="0" selection-start="8300" 
selection-end="8300" vertical-scroll-proportion="0.23764907">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry 
file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/coerce/TypeConverter.java">
+    <entry 
file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/pageload/PageLoader.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="34" column="0" selection-start="1183" 
selection-end="1183" vertical-scroll-proportion="0.2810903">
+        <state line="593" column="9" selection-start="20705" 
selection-end="20705" vertical-scroll-proportion="0.2427598">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry 
file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/services/impl/ExpressionEvaluatorImpl.java">
+    <entry 
file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/binding/ExpressionBinding.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="48" column="0" selection-start="1577" 
selection-end="1577" vertical-scroll-proportion="0.18228279">
+        <state line="208" column="0" selection-start="5513" 
selection-end="5513" vertical-scroll-proportion="0.65502554">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry 
file="file://$PROJECT_DIR$/tapestry-contrib/src/java/org/apache/tapestry/contrib/palette/Palette.java">
+    <entry 
file="file://$PROJECT_DIR$/tapestry-framework/src/test/org/apache/tapestry/html/ListenerFixture.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="512" column="5" selection-start="16668" 
selection-end="16668" vertical-scroll-proportion="0.5144804">
+        <state line="40" column="0" selection-start="1318" 
selection-end="1318" vertical-scroll-proportion="0.40350878">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry 
file="file://$PROJECT_DIR$/tapestry-examples/Workbench/src/java/org/apache/tapestry/workbench/palette/PaletteResults.java">
+    <entry 
file="file://$PROJECT_DIR$/tapestry-framework/src/test/org/apache/tapestry/html/TestPageEvents.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="31" column="0" selection-start="899" selection-end="899" 
vertical-scroll-proportion="0.21720614">
+        <state line="74" column="0" selection-start="1957" 
selection-end="1957" vertical-scroll-proportion="0.3321976">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry 
file="file://$PROJECT_DIR$/tapestry-examples/Workbench/src/java/org/apache/tapestry/workbench/palette/Palette.java">
+    <entry 
file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/event/PageAttachListener.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="41" column="0" selection-start="1439" 
selection-end="1439" vertical-scroll-proportion="0.25553662">
+        <state line="30" column="39" selection-start="1193" 
selection-end="1193" vertical-scroll-proportion="0.22998296">
           <folding />
         </state>
       </provider>


Reply via email to