Cometd will be backed up by WebSocket right?
On Tue, Apr 16, 2013 at 12:47 PM, Howard Lewis Ship <hls...@gmail.com>wrote: > Thanks! > > I wanted a nice clean build before I started in on adding cometd support. > I have some exciting ideas that leverage options made available through > Plastic. > > > On Tue, Apr 16, 2013 at 4:44 AM, Kalle Korhonen > <kalle.o.korho...@gmail.com>wrote: > > > 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 > > > > > > > > > -- > 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 > -- Massimo http://meridio.blogspot.com