On it.. meant to take a look at the test failures anyway.

Kalle


On Mon, Apr 15, 2013 at 7:51 PM, Howard Lewis Ship <hls...@gmail.com> wrote:

> looks like tests related to this change are failing on jenkins
>
> On Sunday, April 14, 2013, wrote:
>
> > Updated Branches:
> >   refs/heads/master d3e9f1d95 -> cb95e2236
> >
> >
> > FIXED - TAP5-2101: BeanEditor should always provide a new
> > BeanValidationContext (JSR-303)
> > - apply Luca Menegus' patch with minor changes
> >
> >
> > Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
> > Commit:
> http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/cb95e223
> > Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/cb95e223
> > Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/cb95e223
> >
> > Branch: refs/heads/master
> > Commit: cb95e2236873b497211427e89f96e54282919e19
> > Parents: d3e9f1d
> > Author: kaosko <kao...@apache.org <javascript:;>>
> > Authored: Sat Apr 13 22:11:33 2013 -0700
> > Committer: kaosko <kao...@apache.org <javascript:;>>
> > Committed: Sat Apr 13 22:11:33 2013 -0700
> >
> > ----------------------------------------------------------------------
> >  .../TapestryBeanValidationIntegrationTests.java    |   14 +++++
> >  .../org/example/testapp/entities/ComplexBean.java  |   44
> +++++++++++++++
> >  .../testapp/entities/SomeOtherSimpleBean.java      |   21 +++++++
> >  .../example/testapp/entities/SomeSimpleBean.java   |   21 +++++++
> >  .../org/example/testapp/pages/ComplexBeanDemo.java |   14 +++++
> >  .../src/test/webapp/ComplexBeanDemo.tml            |   19 ++++++
> >  tapestry-beanvalidator/src/test/webapp/Index.tml   |    3 +
> >  .../tapestry5/corelib/components/BeanEditor.java   |   24 ++++----
> >  8 files changed, 148 insertions(+), 12 deletions(-)
> > ----------------------------------------------------------------------
> >
> >
> >
> >
> http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/cb95e223/tapestry-beanvalidator/src/test/java/org/apache/tapestry5/beanvalidator/integration/TapestryBeanValidationIntegrationTests.java
> > ----------------------------------------------------------------------
> > diff --git
> >
> a/tapestry-beanvalidator/src/test/java/org/apache/tapestry5/beanvalidator/integration/TapestryBeanValidationIntegrationTests.java
> >
> b/tapestry-beanvalidator/src/test/java/org/apache/tapestry5/beanvalidator/integration/TapestryBeanValidationIntegrationTests.java
> > index 29b50bf..248c24e 100644
> > ---
> >
> a/tapestry-beanvalidator/src/test/java/org/apache/tapestry5/beanvalidator/integration/TapestryBeanValidationIntegrationTests.java
> > +++
> >
> b/tapestry-beanvalidator/src/test/java/org/apache/tapestry5/beanvalidator/integration/TapestryBeanValidationIntegrationTests.java
> > @@ -216,4 +216,18 @@ public class TapestryBeanValidationIntegrationTests
> > extends SeleniumTestCase
> >          assertTextPresent("Login Name size must be between 7 and 10",
> > "Login Name must match \"[0-9]+\"");
> >      }
> >
> > +    @Test
> > +    public void beaneditor_validation() throws Exception
> > +    {
> > +        openLinks("ComplexBean Demo");
> > +
> > +        // Test JSR-303 validator
> > +
> > +        clickAndWait(SUBMIT);
> > +
> > +        assertTextPresent("Simple Not Null Property may not be null",
> > +                "Min Value must be greater than or equal to 6", "Not
> Null
> > String may not be null");
> > +    }
> > +
> > +
> >  }
> > \ No newline at end of file
> >
> >
> >
> http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/cb95e223/tapestry-beanvalidator/src/test/java/org/example/testapp/entities/ComplexBean.java
> > ----------------------------------------------------------------------
> > diff --git
> >
> a/tapestry-beanvalidator/src/test/java/org/example/testapp/entities/ComplexBean.java
> >
> b/tapestry-beanvalidator/src/test/java/org/example/testapp/entities/ComplexBean.java
> > new file mode 100644
> > index 0000000..beaa840
> > --- /dev/null
> > +++
> >
> b/tapestry-beanvalidator/src/test/java/org/example/testapp/entities/ComplexBean.java
> > @@ -0,0 +1,44 @@
> > +package org.example.testapp.entities;
> > +
> > +import javax.validation.constraints.NotNull;
> > +
> > +public class ComplexBean
> > +{
> > +
> > +    private SomeSimpleBean someSimpleBean;
> > +    private SomeOtherSimpleBean someOtherSimpleBean;
> > +
> > +    @NotNull
> > +    private String simpleNotNullProperty;
> > +
> > +    public SomeSimpleBean getSomeSimpleBean()
> > +    {
> > +        return someSimpleBean;
> > +    }
> > +
> > +    public void setSomeSimpleBean(SomeSimpleBean someSimpleBean)
> > +    {
> > +        this.someSimpleBean = someSimpleBean;
> > +    }
> > +
> > +    public SomeOtherSimpleBean getSomeOtherSimpleBean()
> > +    {
> > +        return someOtherSimpleBean;
> > +    }
> > +
> > +    public void setSomeOtherSimpleBean(SomeOtherSimpleBean
> > someOtherSimpleBean)
> > +    {
> > +        this.someOtherSimpleBean = someOtherSimpleBean;
> > +    }
> > +
> > +    public String getSimpleNotNullProperty()
> > +    {
> > +        return simpleNotNullProperty;
> > +    }
> > +
> > +    public void setSimpleNotNullProperty(String simpleNotNullProperty)
> > +    {
> > +        this.simpleNotNullProperty = simpleNotNullProperty;
> > +    }
> > +
> > +}
> >
> >
> >
> http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/cb95e223/tapestry-beanvalidator/src/test/java/org/example/testapp/entities/SomeOtherSimpleBean.java
> > ----------------------------------------------------------------------
> > diff --git
> >
> a/tapestry-beanvalidator/src/test/java/org/example/testapp/entities/SomeOtherSimpleBean.java
> >
> b/tapestry-beanvalidator/src/test/java/org/example/testapp/entities/SomeOtherSimpleBean.java
> > new file mode 100644
> > index 0000000..9a262f3
> > --- /dev/null
> > +++
> >
> b/tapestry-beanvalidator/src/test/java/org/example/testapp/entities/SomeOtherSimpleBean.java
> > @@ -0,0 +1,21 @@
> > +package org.example.testapp.entities;
> > +
> > +import javax.validation.constraints.NotNull;
> > +
> > +public class SomeOtherSimpleBean
> > +{
> > +
> > +    @NotNull
> > +    private String notNullString;
> > +
> > +    public String getNotNullString()
> > +    {
> > +        return notNullString;
> > +    }
> > +
> > +    public void setNotNullString(String notNullString)
> > +    {
> > +        this.notNullString = notNullString;
> > +    }
> > +
> > +}
> >
> >
> >
> http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/cb95e223/tapestry-beanvalidator/src/test/java/org/example/testapp/entities/SomeSimpleBean.java
> > ----------------------------------------------------------------------
> > diff --git
> >
> a/tapestry-beanvalidator/src/test/java/org/example/testapp/entities/SomeSimpleBean.java
> >
> b/tapestry-beanvalidator/src/test/java/org/example/testapp/entities/SomeSimpleBean.java
> > new file mode 100644
> > index 0000000..1564112
> > --- /dev/null
> > +++
> >
> b/tapestry-beanvalidator/src/test/java/org/example/testapp/entities/SomeSimpleBean.java
> > @@ -0,0 +1,21 @@
> > +package org.example.testapp.entities;
> > +
> > +import javax.validation.constraints.Min;
> > +
> > +public class SomeSimpleBean
> > +{
> > +
> > +    @Min(6)
> > +    private int minValue;
> > +
> > +    public int getMinValue()
> > +    {
> > +        return minValue;
> > +    }
> > +
> > +    public void setMinValue(int minValue)
> > +    {
> > +        this.minValue = minValue;
> > +    }
> > +
> > +}
> >
> >
> >
> http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/cb95e223/tapestry-beanvalidator/src/test/java/org/example/testapp/pages/ComplexBeanDemo.java
> > ----------------------------------------------------------------------
> > diff --git
> >
> a/tapestry-beanvalidator/src/test/java/org/example/testapp/pages/ComplexBeanDemo.java
> >
> b/tapestry-beanvalidator/src/test/java/org/example/testapp/pages/ComplexBeanDemo.java
> > new file mode 100644
> > index 0000000..f7b2623
> > --- /dev/null
> > +++
> >
> b/tapestry-beanvalidator/src/test/java/org/example/testapp/pages/ComplexBeanDemo.java
> > @@ -0,0 +1,14 @@
> > +package org.example.testapp.pages;
> > +
> > +import org.apache.tapestry5.annotations.Persist;
> > +import org.apache.tapestry5.annotations.Property;
> > +import org.example.testapp.entities.ComplexBean;
> > +
> > +public class ComplexBeanDemo
> > +{
> > +
> > +    @Property
> > +    @Persist
> > +    private ComplexBean complexBean;
> > +
> > +}
> >
> >
> >
> http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/cb95e223/tapestry-beanvalidator/src/test/webapp/ComplexBeanDemo.tml
> > ----------------------------------------------------------------------
> > diff --git a/tapestry-beanvalidator/src/test/webapp/ComplexBeanDemo.tml
> > b/tapestry-beanvalidator/src/test/webapp/ComplexBeanDemo.tml
> > new file mode 100644
> > index 0000000..fd20eab
> > --- /dev/null
> > +++ b/tapestry-beanvalidator/src/test/webapp/ComplexBeanDemo.tml
> > @@ -0,0 +1,19 @@
> > +<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd";>
> > +    <body>
> > +        <t:form clientValidation="none" validate="complexBean">
> > +               <t:errors/>
> > +
> > +               <br/>
> > +               <t:BeanEditor object="complexBean" />
> > +
> > +               <br/>
> > +               <t:BeanEditor object="complexBean.someSimpleBean" />
> > +
> > +               <br/>
> > +               <t:BeanEditor object="complexBean.someOtherSimpleBean" />
> > +
> > +               <br/>
> > +               <input type="submit" value="Go"/>
> > +        </t:form>
> > +     </body>
> > +</html>
> > \ No newline at end of file
> >
> >
> >
> http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/cb95e223/tapestry-beanvalidator/src/test/webapp/Index.tml
> > ----------------------------------------------------------------------
> > diff --git a/tapestry-beanvalidator/src/test/webapp/Index.tml
> > b/tapestry-beanvalidator/src/test/webapp/Index.tml
> > index da8978e..0970c96 100644
> > --- a/tapestry-beanvalidator/src/test/webapp/Index.tml
> > +++ b/tapestry-beanvalidator/src/test/webapp/Index.tml
> > @@ -24,6 +24,9 @@
> >              <li>
> >                  <t:pagelink page="OnPrepareDemo">OnPrepare
> > Demo</t:pagelink>
> >              </li>
> > +            <li>
> > +                <t:pagelink page="ComplexBeanDemo">ComplexBean
> > Demo</t:pagelink>
> > +            </li>
> >          </ul>
> >      </body>
> >  </html>
> >
> >
> >
> http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/cb95e223/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/BeanEditor.java
> > ----------------------------------------------------------------------
> > diff --git
> >
> a/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/BeanEditor.java
> >
> b/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/BeanEditor.java
> > index 1d7ed6c..94c37b9 100644
> > ---
> >
> a/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/BeanEditor.java
> > +++
> >
> b/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/BeanEditor.java
> > @@ -166,6 +166,8 @@ public class BeanEditor
> >       */
> >      private Object cachedObject;
> >
> > +    private BeanValidationContext originalBeanValidationContext;
> > +
> >      // Needed for testing as well
> >
> >      public Object getObject()
> > @@ -213,10 +215,6 @@ public class BeanEditor
> >                          PlasticUtils.toTypeName(model.getBeanType()),
> > resources.getCompleteId(), ex);
> >                  throw new TapestryException(message,
> > resources.getLocation(), ex);
> >              }
> > -
> > -            // If 'object' parameter is bound to a null-value
> > BeanValidationContext is empty.
> > -            // This prevents JSR-303 javascript validators to be
> rendered
> > properly .
> > -            refreshBeanValidationContext();
> >          }
> >
> >          BeanEditContext context = new BeanEditContext()
> > @@ -235,20 +233,22 @@ public class BeanEditor
> >          cachedObject = object;
> >
> >          environment.push(BeanEditContext.class, context);
> > +        // Always provide a new BeanValidationContext
> > +        originalBeanValidationContext =
> > environment.push(BeanValidationContext.class,
> > +                new BeanValidationContextImpl(object));
> > +
> >      }
> >
> >      void cleanupEnvironment()
> >      {
> >          environment.pop(BeanEditContext.class);
> > -    }
> > -
> > -    private void refreshBeanValidationContext()
> > -    {
> > -        if (environment.peek(BeanValidationContext.class) != null)
> > +        environment.pop(BeanValidationContext.class);
> > +        // Restore the original BeanValidationContext as it might still
> > be useful to the enclosing
> > +        // form
> > +        if (originalBeanValidationContext != null)
> >          {
> > -            environment.pop(BeanValidationContext.class);
> > -
> > -            environment.push(BeanValidationContext.class, new
> > BeanValidationContextImpl(object));
> > +            environment.push(BeanValidationContext.class,
> > originalBeanValidationContext);
> > +            originalBeanValidationContext = null;
> >          }
> >      }
> >
> >
> >
>
> --
> Howard M. Lewis Ship
>
> Creator of Apache Tapestry
>
> The source for Tapestry training, mentoring and support. Contact me to
> learn how I can get you up and productive in Tapestry fast!
>
> (971) 678-5210
> http://howardlewisship.com
>

Reply via email to