You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@wicket.apache.org by Martin Grigorov <mg...@apache.org> on 2011/09/20 09:10:18 UTC

Re: svn commit: r1172909 - in /wicket/trunk/wicket-core/src: main/java/org/apache/wicket/ main/java/org/apache/wicket/behavior/ test/java/org/apache/wicket/behavior/

On Tue, Sep 20, 2011 at 3:02 AM,  <iv...@apache.org> wrote:
> Author: ivaynberg
> Date: Tue Sep 20 00:02:06 2011
> New Revision: 1172909
>
> URL: http://svn.apache.org/viewvc?rev=1172909&view=rev
> Log: (empty)
>
> Modified:
>    wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Behaviors.java
>    wicket/trunk/wicket-core/src/main/java/org/apache/wicket/behavior/Behavior.java
>    wicket/trunk/wicket-core/src/main/java/org/apache/wicket/behavior/InvalidBehaviorIdException.java
>    wicket/trunk/wicket-core/src/test/java/org/apache/wicket/behavior/ImmutableBehaviorIdsTest.java
>
> Modified: wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Behaviors.java
> URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Behaviors.java?rev=1172909&r1=1172908&r2=1172909&view=diff
> ==============================================================================
> --- wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Behaviors.java (original)
> +++ wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Behaviors.java Tue Sep 20 00:02:06 2011
> @@ -70,7 +70,7 @@ final class Behaviors implements IDetach
>        private void internalAdd(final Behavior behavior)
>        {
>                component.data_add(behavior);
> -               if (behavior.getStatelessHint(component))
> +               if (!behavior.getStatelessHint(component))
This change breaks jolira's wicket-stateless behaviors.

I reverted it with r1173003 and fixed the expected behavior ids in the tests.
Please re-work it if you think my change is not correct.
>                {
>                        getBehaviorId(behavior);
>                }
>
> Modified: wicket/trunk/wicket-core/src/main/java/org/apache/wicket/behavior/Behavior.java
> URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/behavior/Behavior.java?rev=1172909&r1=1172908&r2=1172909&view=diff
> ==============================================================================
> --- wicket/trunk/wicket-core/src/main/java/org/apache/wicket/behavior/Behavior.java (original)
> +++ wicket/trunk/wicket-core/src/main/java/org/apache/wicket/behavior/Behavior.java Tue Sep 20 00:02:06 2011
> @@ -133,6 +133,11 @@ public abstract class Behavior
>         */
>        public boolean getStatelessHint(Component component)
>        {
> +               if (this instanceof IBehaviorListener)
> +               {
> +                       // this behavior implements a callback interface, so it cannot be stateless
> +                       return false;
> +               }
>                return true;
>        }
>
>
> Modified: wicket/trunk/wicket-core/src/main/java/org/apache/wicket/behavior/InvalidBehaviorIdException.java
> URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/behavior/InvalidBehaviorIdException.java?rev=1172909&r1=1172908&r2=1172909&view=diff
> ==============================================================================
> --- wicket/trunk/wicket-core/src/main/java/org/apache/wicket/behavior/InvalidBehaviorIdException.java (original)
> +++ wicket/trunk/wicket-core/src/main/java/org/apache/wicket/behavior/InvalidBehaviorIdException.java Tue Sep 20 00:02:06 2011
> @@ -39,7 +39,13 @@ public class InvalidBehaviorIdException
>         */
>        public InvalidBehaviorIdException(Component component, int behaviorId)
>        {
> -               super("Cannot find behavior with id: " + behaviorId + " on component: " + component);
> +               super(
> +                       "Cannot find behavior with id: " +
> +                               behaviorId +
> +                               " on component: " +
> +                               component +
> +                               ". Perhaps the behavior did not properly implement getStatelessHint() and returned 'true' " +
> +                               "to indicate that it is stateless instead of returning 'false' to indicate that it is stateful.");
>                this.component = component;
>                this.behaviorId = behaviorId;
>        }
>
> Modified: wicket/trunk/wicket-core/src/test/java/org/apache/wicket/behavior/ImmutableBehaviorIdsTest.java
> URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/behavior/ImmutableBehaviorIdsTest.java?rev=1172909&r1=1172908&r2=1172909&view=diff
> ==============================================================================
> --- wicket/trunk/wicket-core/src/test/java/org/apache/wicket/behavior/ImmutableBehaviorIdsTest.java (original)
> +++ wicket/trunk/wicket-core/src/test/java/org/apache/wicket/behavior/ImmutableBehaviorIdsTest.java Tue Sep 20 00:02:06 2011
> @@ -63,13 +63,16 @@ public class ImmutableBehaviorIdsTest ex
>                tester.startPage(page);
>
>                String output = tester.getLastResponseAsString();
> -               System.out.println(output);
> +               // System.out.println(output);
>                assertTrue(output.contains("class=\"border\""));
>                assertTrue(output.contains("autocomplete=\"off\""));
>                assertTrue(output.contains("class2=\"border\""));
>                assertTrue(output.contains("autocomplete2=\"off\""));
> -               assertTrue(output.contains("IBehaviorListener.2"));
> -               assertTrue(output.contains("IBehaviorListener.4"));
> +               assertTrue(output.contains("IBehaviorListener.0"));
> +               assertTrue(output.contains("IBehaviorListener.1"));
> +               assertEquals(link, page.getContainer().getBehaviorById(0));
> +               assertEquals(link2, page.getContainer().getBehaviorById(1));
> +
>
>                // if we remove a behavior that is before the ibehaviorlistener its url index should not
>                // change
> @@ -80,9 +83,11 @@ public class ImmutableBehaviorIdsTest ex
>                page.getContainer().remove(auto2);
>                tester.startPage(page);
>                output = tester.getLastResponseAsString();
> -               System.out.println(output);
> -               assertTrue(output.contains("IBehaviorListener.2"));
> -               assertTrue(output.contains("IBehaviorListener.4"));
> +               // System.out.println(output);
> +               assertTrue(output.contains("IBehaviorListener.0"));
> +               assertTrue(output.contains("IBehaviorListener.1"));
> +               assertEquals(link, page.getContainer().getBehaviorById(0));
> +               assertEquals(link2, page.getContainer().getBehaviorById(1));
>        }
>
>        /**
>
>
>



-- 
Martin Grigorov
jWeekend
Training, Consulting, Development
http://jWeekend.com