[jira] [Updated] (TAP5-2453) Generic List not fully supported
[ https://issues.apache.org/jira/browse/TAP5-2453?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade updated TAP5-2453: - Labels: desired_for_5.5 generics help-wanted (was: desired_for_5.5 generics) > Generic List not fully supported > --- > > Key: TAP5-2453 > URL: https://issues.apache.org/jira/browse/TAP5-2453 > Project: Tapestry 5 > Issue Type: Bug > Components: tapestry-ioc >Affects Versions: 5.4, 5.3.8 >Reporter: Jan Mynařík > Labels: desired_for_5.5, generics, help-wanted > Attachments: TapestryGenericsTest.java > > > I've created an abstract generic CRUD implementation. When binding > implementations resulting proxies doesn't fully report parametrized type via > reflections. > See attached test. In 5.3.8 it fails in all asserts, in 5.4 only in the last > one. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Closed] (TAP5-2591) TypeScript support
[ https://issues.apache.org/jira/browse/TAP5-2591?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade closed TAP5-2591. Resolution: Fixed Assignee: Jochen Kemnade Fix Version/s: 5.5.0 > TypeScript support > -- > > Key: TAP5-2591 > URL: https://issues.apache.org/jira/browse/TAP5-2591 > Project: Tapestry 5 > Issue Type: Improvement > Components: tapestry-webresources >Reporter: Jochen Kemnade >Assignee: Jochen Kemnade > Labels: desired_for_5.5, help-wanted > Fix For: 5.5.0 > > > We should support TypeScript modules. > This should be pretty straight-forward, similar to what we do for > CoffeeScript. We should only have to add the TypeScript compiler and compile > the modules with the appropriate options > (https://www.typescriptlang.org/docs/handbook/compiler-options.html). -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Created] (TAP5-2591) TypeScript support
Jochen Kemnade created TAP5-2591: Summary: TypeScript support Key: TAP5-2591 URL: https://issues.apache.org/jira/browse/TAP5-2591 Project: Tapestry 5 Issue Type: Improvement Components: tapestry-webresources Reporter: Jochen Kemnade We should support TypeScript modules. This should be pretty straight-forward, similar to what we do for CoffeeScript. We should only have to add the TypeScript compiler and compile the modules with the appropriate options (https://www.typescriptlang.org/docs/handbook/compiler-options.html). -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Updated] (TAP5-2453) Generic List not fully supported
[ https://issues.apache.org/jira/browse/TAP5-2453?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade updated TAP5-2453: - Labels: desired_for_5.5 generics (was: generics) > Generic List not fully supported > --- > > Key: TAP5-2453 > URL: https://issues.apache.org/jira/browse/TAP5-2453 > Project: Tapestry 5 > Issue Type: Bug > Components: tapestry-ioc >Affects Versions: 5.4, 5.3.8 >Reporter: Jan Mynařík > Labels: desired_for_5.5, generics > Attachments: TapestryGenericsTest.java > > > I've created an abstract generic CRUD implementation. When binding > implementations resulting proxies doesn't fully report parametrized type via > reflections. > See attached test. In 5.3.8 it fails in all asserts, in 5.4 only in the last > one. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Updated] (TAP5-2032) GenericsUtils does not handle generics properly when extracting the actual type
[ https://issues.apache.org/jira/browse/TAP5-2032?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade updated TAP5-2032: - Labels: desired_for_5.5 (was: ) > GenericsUtils does not handle generics properly when extracting the actual > type > --- > > Key: TAP5-2032 > URL: https://issues.apache.org/jira/browse/TAP5-2032 > Project: Tapestry 5 > Issue Type: Bug > Components: tapestry-ioc >Affects Versions: 5.3.6, 5.5.0, 5.4.3 >Reporter: DI Florian Hackenberger >Assignee: Thiago H. de Paula Figueiredo > Labels: desired_for_5.5 > > We have the following interfaces / classes > {code:java} > public interface IPersonWithRoleAssociation extends > IEntityAssociationWithInfo { > PersonRole getRole(); > void setRole(PersonRole role); > } > public interface IEntityAssociationWithInfo{ > P getParent(); > void setParent(P parent); > C getChild(); > void setChild(C child); > } > public class Person implements Serializable { > > String name; > public String getName() { > return name; > } > } > {code} > and the page: > {code:java} > public class EditPersonsWithRoles { > @Property(write=false) IPersonWithRoleAssociation personWithRole; > } > {code} > and the template snippet: > {code:html} > > {code} > Leads to the following exception: > {noformat} > Exception generating conduit for expression 'personWithRole.child.name': ... > ... > Caused by: java.lang.ArrayIndexOutOfBoundsException: 1 > at > org.apache.tapestry5.ioc.internal.util.GenericsUtils.resolve(GenericsUtils.java:388) > ~[tapestry-ioc-5.3.6.jar:na] > at > org.apache.tapestry5.ioc.internal.util.GenericsUtils.resolve(GenericsUtils.java:128) > ~[tapestry-ioc-5.3.6.jar:na] > at > org.apache.tapestry5.ioc.internal.util.GenericsUtils.extractActualType(GenericsUtils.java:74) > ~[tapestry-ioc-5.3.6.jar:na] > at > org.apache.tapestry5.internal.services.PropertyConduitSourceImpl$PropertyConduitBuilder.buildGetterMethodAccessTerm(PropertyConduitSourceImpl.java:1119) > ~[tapestry-core-5.3.6.jar:na] > {noformat} > At GenericsUtils.java:388 we have: > {code:java} > resolved = ((ParameterizedType) t).getActualTypeArguments()[i]; > {code} > where: > {code:java} > i = 1 > resolved = C > ((ParameterizedType) t).getActualTypeArguments() = > [org.topfive.entities.IPersonWithRoleAssociation] > {code} > so the problem seems to be that the code assumes that it can find the type > information for C as the second generic parameter for > IPersonWithRoleAssociation, when in fact is is the second generic parameter > for the superclass IEntityAssociationWithInfo which > IPersonWithRoleAssociation extends and passes C explicitly (Person). > Everything is fine, if I use a marker interface for Person (IPerson) and > declare: > {code:java} > public interface IPersonWithRoleAssociation extends > IEntityAssociationWithInfo > {code} -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (TAP5-2032) GenericsUtils does not handle generics properly when extracting the actual type
[ https://issues.apache.org/jira/browse/TAP5-2032?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16237295#comment-16237295 ] Jochen Kemnade commented on TAP5-2032: -- I think I fixed this issue, but we might want to add some argument checks to the {{GenericsUtils}} methods and throw {{IllegalArgumentException}}s early if the parameters don't make sense. > GenericsUtils does not handle generics properly when extracting the actual > type > --- > > Key: TAP5-2032 > URL: https://issues.apache.org/jira/browse/TAP5-2032 > Project: Tapestry 5 > Issue Type: Bug > Components: tapestry-ioc >Affects Versions: 5.3.6, 5.5.0, 5.4.3 >Reporter: DI Florian Hackenberger >Assignee: Thiago H. de Paula Figueiredo >Priority: Major > > We have the following interfaces / classes > {code:java} > public interface IPersonWithRoleAssociation extends > IEntityAssociationWithInfo { > PersonRole getRole(); > void setRole(PersonRole role); > } > public interface IEntityAssociationWithInfo{ > P getParent(); > void setParent(P parent); > C getChild(); > void setChild(C child); > } > public class Person implements Serializable { > > String name; > public String getName() { > return name; > } > } > {code} > and the page: > {code:java} > public class EditPersonsWithRoles { > @Property(write=false) IPersonWithRoleAssociation personWithRole; > } > {code} > and the template snippet: > {code:html} > > {code} > Leads to the following exception: > {noformat} > Exception generating conduit for expression 'personWithRole.child.name': ... > ... > Caused by: java.lang.ArrayIndexOutOfBoundsException: 1 > at > org.apache.tapestry5.ioc.internal.util.GenericsUtils.resolve(GenericsUtils.java:388) > ~[tapestry-ioc-5.3.6.jar:na] > at > org.apache.tapestry5.ioc.internal.util.GenericsUtils.resolve(GenericsUtils.java:128) > ~[tapestry-ioc-5.3.6.jar:na] > at > org.apache.tapestry5.ioc.internal.util.GenericsUtils.extractActualType(GenericsUtils.java:74) > ~[tapestry-ioc-5.3.6.jar:na] > at > org.apache.tapestry5.internal.services.PropertyConduitSourceImpl$PropertyConduitBuilder.buildGetterMethodAccessTerm(PropertyConduitSourceImpl.java:1119) > ~[tapestry-core-5.3.6.jar:na] > {noformat} > At GenericsUtils.java:388 we have: > {code:java} > resolved = ((ParameterizedType) t).getActualTypeArguments()[i]; > {code} > where: > {code:java} > i = 1 > resolved = C > ((ParameterizedType) t).getActualTypeArguments() = > [org.topfive.entities.IPersonWithRoleAssociation] > {code} > so the problem seems to be that the code assumes that it can find the type > information for C as the second generic parameter for > IPersonWithRoleAssociation, when in fact is is the second generic parameter > for the superclass IEntityAssociationWithInfo which > IPersonWithRoleAssociation extends and passes C explicitly (Person). > Everything is fine, if I use a marker interface for Person (IPerson) and > declare: > {code:java} > public interface IPersonWithRoleAssociation extends > IEntityAssociationWithInfo > {code} -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Comment Edited] (TAP5-2032) GenericsUtils does not handle generics properly when extracting the actual type
[ https://issues.apache.org/jira/browse/TAP5-2032?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16237295#comment-16237295 ] Jochen Kemnade edited comment on TAP5-2032 at 11/3/17 8:47 AM: --- I think I fixed this issue, but we might want to add some argument checks to the {{GenericsUtils}} methods and throw an {{IllegalArgumentException}} early if the parameters don't make sense. was (Author: jkemnade): I think I fixed this issue, but we might want to add some argument checks to the {{GenericsUtils}} methods and throw {{IllegalArgumentException}}s early if the parameters don't make sense. > GenericsUtils does not handle generics properly when extracting the actual > type > --- > > Key: TAP5-2032 > URL: https://issues.apache.org/jira/browse/TAP5-2032 > Project: Tapestry 5 > Issue Type: Bug > Components: tapestry-ioc >Affects Versions: 5.3.6, 5.5.0, 5.4.3 >Reporter: DI Florian Hackenberger >Assignee: Thiago H. de Paula Figueiredo >Priority: Major > > We have the following interfaces / classes > {code:java} > public interface IPersonWithRoleAssociation extends > IEntityAssociationWithInfo { > PersonRole getRole(); > void setRole(PersonRole role); > } > public interface IEntityAssociationWithInfo{ > P getParent(); > void setParent(P parent); > C getChild(); > void setChild(C child); > } > public class Person implements Serializable { > > String name; > public String getName() { > return name; > } > } > {code} > and the page: > {code:java} > public class EditPersonsWithRoles { > @Property(write=false) IPersonWithRoleAssociation personWithRole; > } > {code} > and the template snippet: > {code:html} > > {code} > Leads to the following exception: > {noformat} > Exception generating conduit for expression 'personWithRole.child.name': ... > ... > Caused by: java.lang.ArrayIndexOutOfBoundsException: 1 > at > org.apache.tapestry5.ioc.internal.util.GenericsUtils.resolve(GenericsUtils.java:388) > ~[tapestry-ioc-5.3.6.jar:na] > at > org.apache.tapestry5.ioc.internal.util.GenericsUtils.resolve(GenericsUtils.java:128) > ~[tapestry-ioc-5.3.6.jar:na] > at > org.apache.tapestry5.ioc.internal.util.GenericsUtils.extractActualType(GenericsUtils.java:74) > ~[tapestry-ioc-5.3.6.jar:na] > at > org.apache.tapestry5.internal.services.PropertyConduitSourceImpl$PropertyConduitBuilder.buildGetterMethodAccessTerm(PropertyConduitSourceImpl.java:1119) > ~[tapestry-core-5.3.6.jar:na] > {noformat} > At GenericsUtils.java:388 we have: > {code:java} > resolved = ((ParameterizedType) t).getActualTypeArguments()[i]; > {code} > where: > {code:java} > i = 1 > resolved = C > ((ParameterizedType) t).getActualTypeArguments() = > [org.topfive.entities.IPersonWithRoleAssociation] > {code} > so the problem seems to be that the code assumes that it can find the type > information for C as the second generic parameter for > IPersonWithRoleAssociation, when in fact is is the second generic parameter > for the superclass IEntityAssociationWithInfo which > IPersonWithRoleAssociation extends and passes C explicitly (Person). > Everything is fine, if I use a marker interface for Person (IPerson) and > declare: > {code:java} > public interface IPersonWithRoleAssociation extends > IEntityAssociationWithInfo > {code} -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Comment Edited] (TAP5-2032) GenericsUtils does not handle generics properly when extracting the actual type
[ https://issues.apache.org/jira/browse/TAP5-2032?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16211078#comment-16211078 ] Jochen Kemnade edited comment on TAP5-2032 at 11/3/17 7:52 AM: --- I can actually reproduce a variation of this in the 5.5.0 alphas (thanks [~mihasik] for spotting it in the first place). {code:java} public interface IdentifiableEnum, ID extends Number> { ID getId(); } public enum ById implements IdentifiableEnum{ ; public Byte getId() { return null; } } new PropertyAccessImpl().getAdapter(ById.class); {code} produces {noformat} ... Caused by: java.lang.RuntimeException: java.lang.ArrayIndexOutOfBoundsException: 1 at org.apache.tapestry5.ioc.internal.services.PropertyAccessImpl.buildAdapter(PropertyAccessImpl.java:116) at org.apache.tapestry5.ioc.internal.services.PropertyAccessImpl.getAdapter(PropertyAccessImpl.java:80) at ioc.specs.PropertyAccessImplSpec.Build adapter for enum implementing generic interface(PropertyAccessImplSpec.groovy:827) Caused by: java.lang.ArrayIndexOutOfBoundsException: 1 at org.apache.tapestry5.ioc.internal.util.GenericsUtils.resolve(GenericsUtils.java:386) at org.apache.tapestry5.ioc.internal.util.GenericsUtils.resolve(GenericsUtils.java:126) at org.apache.tapestry5.ioc.internal.util.GenericsUtils.extractGenericReturnType(GenericsUtils.java:39) at org.apache.tapestry5.ioc.internal.services.ClassPropertyAdapterImpl.(ClassPropertyAdapterImpl.java:115) at org.apache.tapestry5.ioc.internal.services.PropertyAccessImpl.buildAdapter(PropertyAccessImpl.java:112) ... 2 more {noformat} was (Author: jkemnade): I can actually reproduce a variation of this in the 5.5.0 alphas (thanks [~mihasik] for spotting it in the first place). {code:java} public interface IdentifiableEnum, ID extends Number> { ID getId(); } public enum ById implements IdentifiableEnum { public Byte getId() { return null; } } new PropertyAccessImpl().getAdapter(ById.class) {code} produces {noformat} ... Caused by: java.lang.RuntimeException: java.lang.ArrayIndexOutOfBoundsException: 1 at org.apache.tapestry5.ioc.internal.services.PropertyAccessImpl.buildAdapter(PropertyAccessImpl.java:116) at org.apache.tapestry5.ioc.internal.services.PropertyAccessImpl.getAdapter(PropertyAccessImpl.java:80) at ioc.specs.PropertyAccessImplSpec.Build adapter for enum implementing generic interface(PropertyAccessImplSpec.groovy:827) Caused by: java.lang.ArrayIndexOutOfBoundsException: 1 at org.apache.tapestry5.ioc.internal.util.GenericsUtils.resolve(GenericsUtils.java:386) at org.apache.tapestry5.ioc.internal.util.GenericsUtils.resolve(GenericsUtils.java:126) at org.apache.tapestry5.ioc.internal.util.GenericsUtils.extractGenericReturnType(GenericsUtils.java:39) at org.apache.tapestry5.ioc.internal.services.ClassPropertyAdapterImpl.(ClassPropertyAdapterImpl.java:115) at org.apache.tapestry5.ioc.internal.services.PropertyAccessImpl.buildAdapter(PropertyAccessImpl.java:112) ... 2 more {noformat} > GenericsUtils does not handle generics properly when extracting the actual > type > --- > > Key: TAP5-2032 > URL: https://issues.apache.org/jira/browse/TAP5-2032 > Project: Tapestry 5 > Issue Type: Bug > Components: tapestry-ioc >Affects Versions: 5.3.6, 5.5.0, 5.4.3 >Reporter: DI Florian Hackenberger >Assignee: Thiago H. de Paula Figueiredo >Priority: Major > > We have the following interfaces / classes > {code:java} > public interface IPersonWithRoleAssociation extends > IEntityAssociationWithInfo { > PersonRole getRole(); > void setRole(PersonRole role); > } > public interface IEntityAssociationWithInfo { > P getParent(); > void setParent(P parent); > C getChild(); > void setChild(C child); > } > public class Person implements Serializable { > > String name; > public String getName() { > return name; > } > } > {code} > and the page: > {code:java} > public class EditPersonsWithRoles { > @Property(write=false) IPersonWithRoleAssociation personWithRole; > } > {code} > and the template snippet: > {code:html} > > {code} > Leads to the following exception: > {noformat} > Exception generating conduit for expression 'personWithRole.child.name': ... > ... > Caused by: java.lang.ArrayIndexOutOfBoundsException: 1 > at > org.apache.tapestry5.ioc.internal.util.GenericsUtils.resolve(GenericsUtils.java:388) > ~[tapestry-ioc-5.3.6.jar:na] > at > org.apache.tapestry5.ioc.internal.util.GenericsUtils.resolve(GenericsUtils.java:128) >
[jira] [Updated] (TAP5-2032) GenericsUtils does not handle generics properly when extracting the actual type
[ https://issues.apache.org/jira/browse/TAP5-2032?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade updated TAP5-2032: - Affects Version/s: 5.4.3 > GenericsUtils does not handle generics properly when extracting the actual > type > --- > > Key: TAP5-2032 > URL: https://issues.apache.org/jira/browse/TAP5-2032 > Project: Tapestry 5 > Issue Type: Bug > Components: tapestry-ioc >Affects Versions: 5.3.6, 5.5.0, 5.4.3 >Reporter: DI Florian Hackenberger >Assignee: Thiago H. de Paula Figueiredo >Priority: Major > > We have the following interfaces / classes > {code:java} > public interface IPersonWithRoleAssociation extends > IEntityAssociationWithInfo { > PersonRole getRole(); > void setRole(PersonRole role); > } > public interface IEntityAssociationWithInfo{ > P getParent(); > void setParent(P parent); > C getChild(); > void setChild(C child); > } > public class Person implements Serializable { > > String name; > public String getName() { > return name; > } > } > {code} > and the page: > {code:java} > public class EditPersonsWithRoles { > @Property(write=false) IPersonWithRoleAssociation personWithRole; > } > {code} > and the template snippet: > {code:html} > > {code} > Leads to the following exception: > {noformat} > Exception generating conduit for expression 'personWithRole.child.name': ... > ... > Caused by: java.lang.ArrayIndexOutOfBoundsException: 1 > at > org.apache.tapestry5.ioc.internal.util.GenericsUtils.resolve(GenericsUtils.java:388) > ~[tapestry-ioc-5.3.6.jar:na] > at > org.apache.tapestry5.ioc.internal.util.GenericsUtils.resolve(GenericsUtils.java:128) > ~[tapestry-ioc-5.3.6.jar:na] > at > org.apache.tapestry5.ioc.internal.util.GenericsUtils.extractActualType(GenericsUtils.java:74) > ~[tapestry-ioc-5.3.6.jar:na] > at > org.apache.tapestry5.internal.services.PropertyConduitSourceImpl$PropertyConduitBuilder.buildGetterMethodAccessTerm(PropertyConduitSourceImpl.java:1119) > ~[tapestry-core-5.3.6.jar:na] > {noformat} > At GenericsUtils.java:388 we have: > {code:java} > resolved = ((ParameterizedType) t).getActualTypeArguments()[i]; > {code} > where: > {code:java} > i = 1 > resolved = C > ((ParameterizedType) t).getActualTypeArguments() = > [org.topfive.entities.IPersonWithRoleAssociation] > {code} > so the problem seems to be that the code assumes that it can find the type > information for C as the second generic parameter for > IPersonWithRoleAssociation, when in fact is is the second generic parameter > for the superclass IEntityAssociationWithInfo which > IPersonWithRoleAssociation extends and passes C explicitly (Person). > Everything is fine, if I use a marker interface for Person (IPerson) and > declare: > {code:java} > public interface IPersonWithRoleAssociation extends > IEntityAssociationWithInfo > {code} -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Updated] (TAP5-2032) GenericsUtils does not handle generics properly when extracting the actual type
[ https://issues.apache.org/jira/browse/TAP5-2032?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade updated TAP5-2032: - Labels: (was: bulk-close-candidate) > GenericsUtils does not handle generics properly when extracting the actual > type > --- > > Key: TAP5-2032 > URL: https://issues.apache.org/jira/browse/TAP5-2032 > Project: Tapestry 5 > Issue Type: Bug > Components: tapestry-ioc >Affects Versions: 5.3.6, 5.5.0 >Reporter: DI Florian Hackenberger >Assignee: Thiago H. de Paula Figueiredo > > We have the following interfaces / classes > {code:java} > public interface IPersonWithRoleAssociation extends > IEntityAssociationWithInfo { > PersonRole getRole(); > void setRole(PersonRole role); > } > public interface IEntityAssociationWithInfo{ > P getParent(); > void setParent(P parent); > C getChild(); > void setChild(C child); > } > public class Person implements Serializable { > > String name; > public String getName() { > return name; > } > } > {code} > and the page: > {code:java} > public class EditPersonsWithRoles { > @Property(write=false) IPersonWithRoleAssociation personWithRole; > } > {code} > and the template snippet: > {code:html} > > {code} > Leads to the following exception: > {noformat} > Exception generating conduit for expression 'personWithRole.child.name': ... > ... > Caused by: java.lang.ArrayIndexOutOfBoundsException: 1 > at > org.apache.tapestry5.ioc.internal.util.GenericsUtils.resolve(GenericsUtils.java:388) > ~[tapestry-ioc-5.3.6.jar:na] > at > org.apache.tapestry5.ioc.internal.util.GenericsUtils.resolve(GenericsUtils.java:128) > ~[tapestry-ioc-5.3.6.jar:na] > at > org.apache.tapestry5.ioc.internal.util.GenericsUtils.extractActualType(GenericsUtils.java:74) > ~[tapestry-ioc-5.3.6.jar:na] > at > org.apache.tapestry5.internal.services.PropertyConduitSourceImpl$PropertyConduitBuilder.buildGetterMethodAccessTerm(PropertyConduitSourceImpl.java:1119) > ~[tapestry-core-5.3.6.jar:na] > {noformat} > At GenericsUtils.java:388 we have: > {code:java} > resolved = ((ParameterizedType) t).getActualTypeArguments()[i]; > {code} > where: > {code:java} > i = 1 > resolved = C > ((ParameterizedType) t).getActualTypeArguments() = > [org.topfive.entities.IPersonWithRoleAssociation] > {code} > so the problem seems to be that the code assumes that it can find the type > information for C as the second generic parameter for > IPersonWithRoleAssociation, when in fact is is the second generic parameter > for the superclass IEntityAssociationWithInfo which > IPersonWithRoleAssociation extends and passes C explicitly (Person). > Everything is fine, if I use a marker interface for Person (IPerson) and > declare: > {code:java} > public interface IPersonWithRoleAssociation extends > IEntityAssociationWithInfo > {code} -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Updated] (TAP5-2032) GenericsUtils does not handle generics properly when extracting the actual type
[ https://issues.apache.org/jira/browse/TAP5-2032?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade updated TAP5-2032: - Description: We have the following interfaces / classes {code:java} public interface IPersonWithRoleAssociation extends IEntityAssociationWithInfo { PersonRole getRole(); void setRole(PersonRole role); } public interface IEntityAssociationWithInfo{ P getParent(); void setParent(P parent); C getChild(); void setChild(C child); } public class Person implements Serializable { String name; public String getName() { return name; } } {code} and the page: {code:java} public class EditPersonsWithRoles { @Property(write=false) IPersonWithRoleAssociation personWithRole; } {code} and the template snippet: {code:html} {code} Leads to the following exception: {noformat} Exception generating conduit for expression 'personWithRole.child.name': ... ... Caused by: java.lang.ArrayIndexOutOfBoundsException: 1 at org.apache.tapestry5.ioc.internal.util.GenericsUtils.resolve(GenericsUtils.java:388) ~[tapestry-ioc-5.3.6.jar:na] at org.apache.tapestry5.ioc.internal.util.GenericsUtils.resolve(GenericsUtils.java:128) ~[tapestry-ioc-5.3.6.jar:na] at org.apache.tapestry5.ioc.internal.util.GenericsUtils.extractActualType(GenericsUtils.java:74) ~[tapestry-ioc-5.3.6.jar:na] at org.apache.tapestry5.internal.services.PropertyConduitSourceImpl$PropertyConduitBuilder.buildGetterMethodAccessTerm(PropertyConduitSourceImpl.java:1119) ~[tapestry-core-5.3.6.jar:na] {noformat} At GenericsUtils.java:388 we have: {code:java} resolved = ((ParameterizedType) t).getActualTypeArguments()[i]; {code} where: {code:java} i = 1 resolved = C ((ParameterizedType) t).getActualTypeArguments() = [org.topfive.entities.IPersonWithRoleAssociation] {code} so the problem seems to be that the code assumes that it can find the type information for C as the second generic parameter for IPersonWithRoleAssociation, when in fact is is the second generic parameter for the superclass IEntityAssociationWithInfo which IPersonWithRoleAssociation extends and passes C explicitly (Person). Everything is fine, if I use a marker interface for Person (IPerson) and declare: {code:java} public interface IPersonWithRoleAssociation extends IEntityAssociationWithInfo {code} was: We have the following interfaces / classes public interface IPersonWithRoleAssociation extends IEntityAssociationWithInfo { PersonRole getRole(); void setRole(PersonRole role); } public interface IEntityAssociationWithInfo
{ P getParent(); void setParent(P parent); C getChild(); void setChild(C child); } public class Person implements Serializable { String name; public String getName() { return name; } } and the page: public class EditPersonsWithRoles { @Property(write=false) IPersonWithRoleAssociation personWithRole; } and the template snippet: Leads to the following exception: Exception generating conduit for expression 'personWithRole.child.name': ... ... Caused by: java.lang.ArrayIndexOutOfBoundsException: 1 at org.apache.tapestry5.ioc.internal.util.GenericsUtils.resolve(GenericsUtils.java:388) ~[tapestry-ioc-5.3.6.jar:na] at org.apache.tapestry5.ioc.internal.util.GenericsUtils.resolve(GenericsUtils.java:128) ~[tapestry-ioc-5.3.6.jar:na] at org.apache.tapestry5.ioc.internal.util.GenericsUtils.extractActualType(GenericsUtils.java:74) ~[tapestry-ioc-5.3.6.jar:na] at org.apache.tapestry5.internal.services.PropertyConduitSourceImpl$PropertyConduitBuilder.buildGetterMethodAccessTerm(PropertyConduitSourceImpl.java:1119) ~[tapestry-core-5.3.6.jar:na] At GenericsUtils.java:388 we have: resolved = ((ParameterizedType) t).getActualTypeArguments()[i]; where: i = 1 resolved = C ((ParameterizedType) t).getActualTypeArguments() = [org.topfive.entities.IPersonWithRoleAssociation] so the problem seems to be that the code assumes that it can find the type information for C as the second generic parameter for IPersonWithRoleAssociation, when in fact is is the second generic parameter for the superclass IEntityAssociationWithInfo which IPersonWithRoleAssociation extends and passes C explicitly (Person). Everything is fine, if I use a marker interface for Person (IPerson) and declare: public interface IPersonWithRoleAssociation extends IEntityAssociationWithInfo > GenericsUtils does not handle generics properly when extracting the actual > type > --- > > Key: TAP5-2032 > URL:
[jira] [Reopened] (TAP5-2032) GenericsUtils does not handle generics properly when extracting the actual type
[ https://issues.apache.org/jira/browse/TAP5-2032?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade reopened TAP5-2032: -- I can actually reproduce a variation of this in the 5.5.0 alphas (thanks [~mihasik] for spotting it in the first place). {code:java} public interface IdentifiableEnum, ID extends Number> { ID getId(); } public enum ById implements IdentifiableEnum{ public Byte getId() { return null; } } new PropertyAccessImpl().getAdapter(ById.class) {code} produces {noformat} ... Caused by: java.lang.RuntimeException: java.lang.ArrayIndexOutOfBoundsException: 1 at org.apache.tapestry5.ioc.internal.services.PropertyAccessImpl.buildAdapter(PropertyAccessImpl.java:116) at org.apache.tapestry5.ioc.internal.services.PropertyAccessImpl.getAdapter(PropertyAccessImpl.java:80) at ioc.specs.PropertyAccessImplSpec.Build adapter for enum implementing generic interface(PropertyAccessImplSpec.groovy:827) Caused by: java.lang.ArrayIndexOutOfBoundsException: 1 at org.apache.tapestry5.ioc.internal.util.GenericsUtils.resolve(GenericsUtils.java:386) at org.apache.tapestry5.ioc.internal.util.GenericsUtils.resolve(GenericsUtils.java:126) at org.apache.tapestry5.ioc.internal.util.GenericsUtils.extractGenericReturnType(GenericsUtils.java:39) at org.apache.tapestry5.ioc.internal.services.ClassPropertyAdapterImpl.(ClassPropertyAdapterImpl.java:115) at org.apache.tapestry5.ioc.internal.services.PropertyAccessImpl.buildAdapter(PropertyAccessImpl.java:112) ... 2 more {noformat} > GenericsUtils does not handle generics properly when extracting the actual > type > --- > > Key: TAP5-2032 > URL: https://issues.apache.org/jira/browse/TAP5-2032 > Project: Tapestry 5 > Issue Type: Bug > Components: tapestry-ioc >Affects Versions: 5.3.6, 5.5.0 >Reporter: DI Florian Hackenberger >Assignee: Thiago H. de Paula Figueiredo > Labels: bulk-close-candidate > > We have the following interfaces / classes > public interface IPersonWithRoleAssociation extends > IEntityAssociationWithInfo { > PersonRole getRole(); > void setRole(PersonRole role); > } > public interface IEntityAssociationWithInfo { > P getParent(); > void setParent(P parent); > C getChild(); > void setChild(C child); > } > public class Person implements Serializable { > > String name; > public String getName() { > return name; > } > } > and the page: > public class EditPersonsWithRoles { > @Property(write=false) IPersonWithRoleAssociation personWithRole; > } > and the template snippet: > > Leads to the following exception: > Exception generating conduit for expression 'personWithRole.child.name': ... > ... > Caused by: java.lang.ArrayIndexOutOfBoundsException: 1 > at > org.apache.tapestry5.ioc.internal.util.GenericsUtils.resolve(GenericsUtils.java:388) > ~[tapestry-ioc-5.3.6.jar:na] > at > org.apache.tapestry5.ioc.internal.util.GenericsUtils.resolve(GenericsUtils.java:128) > ~[tapestry-ioc-5.3.6.jar:na] > at > org.apache.tapestry5.ioc.internal.util.GenericsUtils.extractActualType(GenericsUtils.java:74) > ~[tapestry-ioc-5.3.6.jar:na] > at > org.apache.tapestry5.internal.services.PropertyConduitSourceImpl$PropertyConduitBuilder.buildGetterMethodAccessTerm(PropertyConduitSourceImpl.java:1119) > ~[tapestry-core-5.3.6.jar:na] > At GenericsUtils.java:388 we have: > resolved = ((ParameterizedType) t).getActualTypeArguments()[i]; > where: > i = 1 > resolved = C > ((ParameterizedType) t).getActualTypeArguments() = > [org.topfive.entities.IPersonWithRoleAssociation] > so the problem seems to be that the code assumes that it can find the type > information for C as the second generic parameter for > IPersonWithRoleAssociation, when in fact is is the second generic parameter > for the superclass IEntityAssociationWithInfo which > IPersonWithRoleAssociation extends and passes C explicitly (Person). > Everything is fine, if I use a marker interface for Person (IPerson) and > declare: > public interface IPersonWithRoleAssociation extends > IEntityAssociationWithInfo -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Updated] (TAP5-2032) GenericsUtils does not handle generics properly when extracting the actual type
[ https://issues.apache.org/jira/browse/TAP5-2032?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade updated TAP5-2032: - Affects Version/s: 5.5.0 > GenericsUtils does not handle generics properly when extracting the actual > type > --- > > Key: TAP5-2032 > URL: https://issues.apache.org/jira/browse/TAP5-2032 > Project: Tapestry 5 > Issue Type: Bug > Components: tapestry-ioc >Affects Versions: 5.3.6, 5.5.0 >Reporter: DI Florian Hackenberger >Assignee: Thiago H. de Paula Figueiredo > Labels: bulk-close-candidate > > We have the following interfaces / classes > public interface IPersonWithRoleAssociation extends > IEntityAssociationWithInfo { > PersonRole getRole(); > void setRole(PersonRole role); > } > public interface IEntityAssociationWithInfo{ > P getParent(); > void setParent(P parent); > C getChild(); > void setChild(C child); > } > public class Person implements Serializable { > > String name; > public String getName() { > return name; > } > } > and the page: > public class EditPersonsWithRoles { > @Property(write=false) IPersonWithRoleAssociation personWithRole; > } > and the template snippet: > > Leads to the following exception: > Exception generating conduit for expression 'personWithRole.child.name': ... > ... > Caused by: java.lang.ArrayIndexOutOfBoundsException: 1 > at > org.apache.tapestry5.ioc.internal.util.GenericsUtils.resolve(GenericsUtils.java:388) > ~[tapestry-ioc-5.3.6.jar:na] > at > org.apache.tapestry5.ioc.internal.util.GenericsUtils.resolve(GenericsUtils.java:128) > ~[tapestry-ioc-5.3.6.jar:na] > at > org.apache.tapestry5.ioc.internal.util.GenericsUtils.extractActualType(GenericsUtils.java:74) > ~[tapestry-ioc-5.3.6.jar:na] > at > org.apache.tapestry5.internal.services.PropertyConduitSourceImpl$PropertyConduitBuilder.buildGetterMethodAccessTerm(PropertyConduitSourceImpl.java:1119) > ~[tapestry-core-5.3.6.jar:na] > At GenericsUtils.java:388 we have: > resolved = ((ParameterizedType) t).getActualTypeArguments()[i]; > where: > i = 1 > resolved = C > ((ParameterizedType) t).getActualTypeArguments() = > [org.topfive.entities.IPersonWithRoleAssociation] > so the problem seems to be that the code assumes that it can find the type > information for C as the second generic parameter for > IPersonWithRoleAssociation, when in fact is is the second generic parameter > for the superclass IEntityAssociationWithInfo which > IPersonWithRoleAssociation extends and passes C explicitly (Person). > Everything is fine, if I use a marker interface for Person (IPerson) and > declare: > public interface IPersonWithRoleAssociation extends > IEntityAssociationWithInfo -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (TAP5-2453) Generic List not fully supported
[ https://issues.apache.org/jira/browse/TAP5-2453?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16209109#comment-16209109 ] Jochen Kemnade commented on TAP5-2453: -- [~thiagohp], any ideas? The problem is probably that {{org.apache.tapestry5.plastic.MethodDescription.MethodDescription(Method)}} does not extract the generics information. We'd probably have to move {{GenericsUtils}} to from {{commons}} to {{plastic}} and use its methods to retrieve the info. > Generic List not fully supported > --- > > Key: TAP5-2453 > URL: https://issues.apache.org/jira/browse/TAP5-2453 > Project: Tapestry 5 > Issue Type: Bug > Components: tapestry-ioc >Affects Versions: 5.4, 5.3.8 >Reporter: Jan Mynařík > Labels: generics > Attachments: TapestryGenericsTest.java > > > I've created an abstract generic CRUD implementation. When binding > implementations resulting proxies doesn't fully report parametrized type via > reflections. > See attached test. In 5.3.8 it fails in all asserts, in 5.4 only in the last > one. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Closed] (TAP5-2473) Improvements for GridPaginationModel
[ https://issues.apache.org/jira/browse/TAP5-2473?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade closed TAP5-2473. Resolution: Won't Fix > Improvements for GridPaginationModel > > > Key: TAP5-2473 > URL: https://issues.apache.org/jira/browse/TAP5-2473 > Project: Tapestry 5 > Issue Type: Improvement > Components: tapestry-core >Affects Versions: 5.4 >Reporter: Felix Scheffer >Priority: Trivial > Labels: patch > Attachments: 0002-GridPaginationModel-improvements.patch > > > The patch uses primitive types for "current page" and "ascending" in > GridPaginationModel to avoid null checking in the Grid component. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Closed] (TAP5-2545) Reduce lock contention during page loading
[ https://issues.apache.org/jira/browse/TAP5-2545?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade closed TAP5-2545. Resolution: Fixed Fix Version/s: 5.5.0 The sub-tasks are fixed, so I'll close this one too. > Reduce lock contention during page loading > -- > > Key: TAP5-2545 > URL: https://issues.apache.org/jira/browse/TAP5-2545 > Project: Tapestry 5 > Issue Type: Improvement > Components: plastic, tapestry-core >Reporter: Michael Mikhulya > Labels: patch, performance > Fix For: 5.5.0 > > > I investigated lock contention during concurrent page loading > (PageLoader.loadPage). > There are two main producers of lock contention: > ComponentInstantiatorSourceImpl and PlasticClassLoader. > I created a patch for two top issues, see it in attachments. > There is still issue with PlasticClassLoader. I will report separate issue > regarding it. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Closed] (TAP5-2585) Expression Issues (CronExpression.java and GenericsUtils.java)
[ https://issues.apache.org/jira/browse/TAP5-2585?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade closed TAP5-2585. Resolution: Fixed Assignee: Jochen Kemnade Fix Version/s: 5.5.0 Thanks. > Expression Issues (CronExpression.java and GenericsUtils.java) > -- > > Key: TAP5-2585 > URL: https://issues.apache.org/jira/browse/TAP5-2585 > Project: Tapestry 5 > Issue Type: Bug > Components: tapestry-ioc >Affects Versions: 5.4.3 >Reporter: AppChecker >Assignee: Jochen Kemnade > Labels: appchecker > Fix For: 5.5.0 > > > Hi > Please look following fragments of source code: > 1) > [tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/cron/CronExpression.java#L937|https://github.com/apache/tapestry-5/blob/95a548ec488a3c09c16117a0e6f9d3ce28db0322/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/cron/CronExpression.java#L937] > {code:java}for (; i < s.length() && (s.charAt(i) != ' ' || s.charAt(i) != > '\t'); i++) > {code} > Expression (s.charAt\(i) != ' ' || s.charAt\(i) != '\t') is always true. > Probably, is should be: > {code:java} > (s.charAt(i) != ' ' && s.charAt(i) != '\t') > {code} > 2) > [commons/src/main/java/org/apache/tapestry5/ioc/internal/util/GenericsUtils.java#L577|https://github.com/apache/tapestry-5/blob/95a548ec488a3c09c16117a0e6f9d3ce28db0322/commons/src/main/java/org/apache/tapestry5/ioc/internal/util/GenericsUtils.java#L577] > {code:java} > isSuper ? toString(wt.getLowerBounds()) : toString(wt.getLowerBounds())); > {code} > It is strange that the parts of the ternary operator are same. > These possible defect found by > [AppChecker|https://npo-echelon.ru/en/solutions/appchecker.php]. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Closed] (TAP5-2558) Lock contention in PlasticClassPool
[ https://issues.apache.org/jira/browse/TAP5-2558?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade closed TAP5-2558. Resolution: Fixed Assignee: Jochen Kemnade Fix Version/s: 5.5.0 > Lock contention in PlasticClassPool > --- > > Key: TAP5-2558 > URL: https://issues.apache.org/jira/browse/TAP5-2558 > Project: Tapestry 5 > Issue Type: Sub-task > Components: plastic >Reporter: Michael Mikhulya >Assignee: Jochen Kemnade > Labels: patch, performance > Fix For: 5.5.0 > > Attachments: 0002-reduce-lock-contention-during-page-loading-2.patch > > > This is a subtask of TAP5-2545 (Reduce lock contention during page loading). -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (TAP5-2558) Lock contention in PlasticClassPool
[ https://issues.apache.org/jira/browse/TAP5-2558?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16208857#comment-16208857 ] Jochen Kemnade commented on TAP5-2558: -- Patch applied, thanks Michael. > Lock contention in PlasticClassPool > --- > > Key: TAP5-2558 > URL: https://issues.apache.org/jira/browse/TAP5-2558 > Project: Tapestry 5 > Issue Type: Sub-task > Components: plastic >Reporter: Michael Mikhulya >Assignee: Jochen Kemnade > Labels: patch, performance > Fix For: 5.5.0 > > Attachments: 0002-reduce-lock-contention-during-page-loading-2.patch > > > This is a subtask of TAP5-2545 (Reduce lock contention during page loading). -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Closed] (TAP5-2589) Improve Grid implementation for "slow" data sources
[ https://issues.apache.org/jira/browse/TAP5-2589?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade closed TAP5-2589. Resolution: Fixed We'll ship an updated Grid implementation with 5.5. If the default pager is not used, we try to limit the {{count}} queries to the number of rows that we're actually going to show. > Improve Grid implementation for "slow" data sources > --- > > Key: TAP5-2589 > URL: https://issues.apache.org/jira/browse/TAP5-2589 > Project: Tapestry 5 > Issue Type: Improvement > Components: tapestry-core >Reporter: Jochen Kemnade > Fix For: 5.5.0 > > > When using a Grid that's backed by a data source for which performing a count > is expensive, performance is quite bad. > There are some places where Grid (and subcomponents) call > {{getAvailableRows()}} to determine whether the data source is empty or has > (at least) a specific number of results. We should provide (and use) more > specific and efficient methods in {{GridDataSource}}. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Updated] (TAP5-2589) Improve Grid implementation for "slow" data sources
[ https://issues.apache.org/jira/browse/TAP5-2589?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade updated TAP5-2589: - Fix Version/s: 5.5.0 > Improve Grid implementation for "slow" data sources > --- > > Key: TAP5-2589 > URL: https://issues.apache.org/jira/browse/TAP5-2589 > Project: Tapestry 5 > Issue Type: Improvement > Components: tapestry-core >Reporter: Jochen Kemnade > Fix For: 5.5.0 > > > When using a Grid that's backed by a data source for which performing a count > is expensive, performance is quite bad. > There are some places where Grid (and subcomponents) call > {{getAvailableRows()}} to determine whether the data source is empty or has > (at least) a specific number of results. We should provide (and use) more > specific and efficient methods in {{GridDataSource}}. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (TAP5-2588) Does not work with Java 9
[ https://issues.apache.org/jira/browse/TAP5-2588?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16194592#comment-16194592 ] Jochen Kemnade commented on TAP5-2588: -- Probably related to https://gitlab.ow2.org/asm/asm/commit/d214e658675e8c0da8cf72aa0f3788d0442b8b99 > Does not work with Java 9 > - > > Key: TAP5-2588 > URL: https://issues.apache.org/jira/browse/TAP5-2588 > Project: Tapestry 5 > Issue Type: Bug > Components: plastic >Affects Versions: 5.4.3 >Reporter: Jochen Kemnade >Priority: Critical > > You cannot use Tapestry with Java 9 because of an outdated ASM version in > plastic (5.0.4). AFAICT, we'll need to upgrade to 6.0. My attempt do do so > results in a {{ClassCastException}} in > {{org.apache.tapestry5.plastic.ArrayAttributeAnnotations.explicit values for > array attributes}}. > {noformat} > java.lang.ClassCastException: [I cannot be cast to > java.base/[Ljava.lang.Object; > at > org.apache.tapestry5.internal.plastic.AbstractAnnotationBuilder$2.visitEnd(AbstractAnnotationBuilder.java:134) > at > org.apache.tapestry5.internal.plastic.asm.tree.AnnotationNode.accept(AnnotationNode.java:284) > at > org.apache.tapestry5.internal.plastic.asm.tree.AnnotationNode.accept(AnnotationNode.java:251) > at > org.apache.tapestry5.internal.plastic.PlasticClassPool.createAnnotation(PlasticClassPool.java:307) > at > org.apache.tapestry5.internal.plastic.PlasticClassPool$4.buildAnnotation(PlasticClassPool.java:286) > at > org.apache.tapestry5.internal.plastic.PlasticClassPool$4.getAnnotation(PlasticClassPool.java:270) > at > org.apache.tapestry5.internal.plastic.DelegatingAnnotationAccess.getAnnotation(DelegatingAnnotationAccess.java:42) > at > org.apache.tapestry5.internal.plastic.PlasticClassImpl.getAnnotation(PlasticClassImpl.java:342) > at org.apache.tapestry5.plastic.ArrayAttributeAnnotations.explicit > values for array attributes(ArrayAttributeAnnotations.groovy:27) > {noformat} > The {{AbstractAnnotationBuilder}} subclass tries to cast an {{int[]}} to an > {{Object[]}}. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Created] (TAP5-2588) Does not work with Java 9
Jochen Kemnade created TAP5-2588: Summary: Does not work with Java 9 Key: TAP5-2588 URL: https://issues.apache.org/jira/browse/TAP5-2588 Project: Tapestry 5 Issue Type: Bug Components: plastic Affects Versions: 5.4.3 Reporter: Jochen Kemnade Priority: Critical You cannot use Tapestry with Java 9 because of an outdated ASM version in plastic (5.0.4). AFAICT, we'll need to upgrade to 6.0. My attempt do do so results in a {{ClassCastException}} in {{org.apache.tapestry5.plastic.ArrayAttributeAnnotations.explicit values for array attributes}}. {noformat} java.lang.ClassCastException: [I cannot be cast to java.base/[Ljava.lang.Object; at org.apache.tapestry5.internal.plastic.AbstractAnnotationBuilder$2.visitEnd(AbstractAnnotationBuilder.java:134) at org.apache.tapestry5.internal.plastic.asm.tree.AnnotationNode.accept(AnnotationNode.java:284) at org.apache.tapestry5.internal.plastic.asm.tree.AnnotationNode.accept(AnnotationNode.java:251) at org.apache.tapestry5.internal.plastic.PlasticClassPool.createAnnotation(PlasticClassPool.java:307) at org.apache.tapestry5.internal.plastic.PlasticClassPool$4.buildAnnotation(PlasticClassPool.java:286) at org.apache.tapestry5.internal.plastic.PlasticClassPool$4.getAnnotation(PlasticClassPool.java:270) at org.apache.tapestry5.internal.plastic.DelegatingAnnotationAccess.getAnnotation(DelegatingAnnotationAccess.java:42) at org.apache.tapestry5.internal.plastic.PlasticClassImpl.getAnnotation(PlasticClassImpl.java:342) at org.apache.tapestry5.plastic.ArrayAttributeAnnotations.explicit values for array attributes(ArrayAttributeAnnotations.groovy:27) {noformat} The {{AbstractAnnotationBuilder}} tries to cast an {{int[]}} to an {{Object[]}}. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Updated] (TAP5-2588) Does not work with Java 9
[ https://issues.apache.org/jira/browse/TAP5-2588?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade updated TAP5-2588: - Description: You cannot use Tapestry with Java 9 because of an outdated ASM version in plastic (5.0.4). AFAICT, we'll need to upgrade to 6.0. My attempt do do so results in a {{ClassCastException}} in {{org.apache.tapestry5.plastic.ArrayAttributeAnnotations.explicit values for array attributes}}. {noformat} java.lang.ClassCastException: [I cannot be cast to java.base/[Ljava.lang.Object; at org.apache.tapestry5.internal.plastic.AbstractAnnotationBuilder$2.visitEnd(AbstractAnnotationBuilder.java:134) at org.apache.tapestry5.internal.plastic.asm.tree.AnnotationNode.accept(AnnotationNode.java:284) at org.apache.tapestry5.internal.plastic.asm.tree.AnnotationNode.accept(AnnotationNode.java:251) at org.apache.tapestry5.internal.plastic.PlasticClassPool.createAnnotation(PlasticClassPool.java:307) at org.apache.tapestry5.internal.plastic.PlasticClassPool$4.buildAnnotation(PlasticClassPool.java:286) at org.apache.tapestry5.internal.plastic.PlasticClassPool$4.getAnnotation(PlasticClassPool.java:270) at org.apache.tapestry5.internal.plastic.DelegatingAnnotationAccess.getAnnotation(DelegatingAnnotationAccess.java:42) at org.apache.tapestry5.internal.plastic.PlasticClassImpl.getAnnotation(PlasticClassImpl.java:342) at org.apache.tapestry5.plastic.ArrayAttributeAnnotations.explicit values for array attributes(ArrayAttributeAnnotations.groovy:27) {noformat} The {{AbstractAnnotationBuilder}} subclass tries to cast an {{int[]}} to an {{Object[]}}. was: You cannot use Tapestry with Java 9 because of an outdated ASM version in plastic (5.0.4). AFAICT, we'll need to upgrade to 6.0. My attempt do do so results in a {{ClassCastException}} in {{org.apache.tapestry5.plastic.ArrayAttributeAnnotations.explicit values for array attributes}}. {noformat} java.lang.ClassCastException: [I cannot be cast to java.base/[Ljava.lang.Object; at org.apache.tapestry5.internal.plastic.AbstractAnnotationBuilder$2.visitEnd(AbstractAnnotationBuilder.java:134) at org.apache.tapestry5.internal.plastic.asm.tree.AnnotationNode.accept(AnnotationNode.java:284) at org.apache.tapestry5.internal.plastic.asm.tree.AnnotationNode.accept(AnnotationNode.java:251) at org.apache.tapestry5.internal.plastic.PlasticClassPool.createAnnotation(PlasticClassPool.java:307) at org.apache.tapestry5.internal.plastic.PlasticClassPool$4.buildAnnotation(PlasticClassPool.java:286) at org.apache.tapestry5.internal.plastic.PlasticClassPool$4.getAnnotation(PlasticClassPool.java:270) at org.apache.tapestry5.internal.plastic.DelegatingAnnotationAccess.getAnnotation(DelegatingAnnotationAccess.java:42) at org.apache.tapestry5.internal.plastic.PlasticClassImpl.getAnnotation(PlasticClassImpl.java:342) at org.apache.tapestry5.plastic.ArrayAttributeAnnotations.explicit values for array attributes(ArrayAttributeAnnotations.groovy:27) {noformat} The {{AbstractAnnotationBuilder}} tries to cast an {{int[]}} to an {{Object[]}}. > Does not work with Java 9 > - > > Key: TAP5-2588 > URL: https://issues.apache.org/jira/browse/TAP5-2588 > Project: Tapestry 5 > Issue Type: Bug > Components: plastic >Affects Versions: 5.4.3 >Reporter: Jochen Kemnade >Priority: Critical > > You cannot use Tapestry with Java 9 because of an outdated ASM version in > plastic (5.0.4). AFAICT, we'll need to upgrade to 6.0. My attempt do do so > results in a {{ClassCastException}} in > {{org.apache.tapestry5.plastic.ArrayAttributeAnnotations.explicit values for > array attributes}}. > {noformat} > java.lang.ClassCastException: [I cannot be cast to > java.base/[Ljava.lang.Object; > at > org.apache.tapestry5.internal.plastic.AbstractAnnotationBuilder$2.visitEnd(AbstractAnnotationBuilder.java:134) > at > org.apache.tapestry5.internal.plastic.asm.tree.AnnotationNode.accept(AnnotationNode.java:284) > at > org.apache.tapestry5.internal.plastic.asm.tree.AnnotationNode.accept(AnnotationNode.java:251) > at > org.apache.tapestry5.internal.plastic.PlasticClassPool.createAnnotation(PlasticClassPool.java:307) > at > org.apache.tapestry5.internal.plastic.PlasticClassPool$4.buildAnnotation(PlasticClassPool.java:286) > at > org.apache.tapestry5.internal.plastic.PlasticClassPool$4.getAnnotation(PlasticClassPool.java:270) > at > org.apache.tapestry5.internal.plastic.DelegatingAnnotationAccess.getAnnotation(DelegatingAnnotationAccess.java:42) > at > org.apache.tapestry5.internal.plastic.PlasticClassImpl.getAnnotation(PlasticClassImpl.java:342) > at
[jira] [Commented] (TAP5-2579) Quickstart project does not work with maven 3
[ https://issues.apache.org/jira/browse/TAP5-2579?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15978193#comment-15978193 ] Jochen Kemnade commented on TAP5-2579: -- See https://issues.apache.org/jira/browse/ARCHETYPE-438 > Quickstart project does not work with maven 3 > - > > Key: TAP5-2579 > URL: https://issues.apache.org/jira/browse/TAP5-2579 > Project: Tapestry 5 > Issue Type: Bug > Components: quickstart >Affects Versions: 5.4.2 >Reporter: Svein > > Tried maven 3.0.4 and 3.5.0 > mvn archetype:generate -DarchetypeCatalog=http://tapestry.apache.org > [INFO] Scanning for projects... > [INFO] > [INFO] > > [INFO] Building Maven Stub Project (No POM) 1 > [INFO] > > [INFO] > [INFO] >>> maven-archetype-plugin:3.0.1:generate (default-cli) > > generate-sources @ standalone-pom >>> > [INFO] > [INFO] <<< maven-archetype-plugin:3.0.1:generate (default-cli) < > generate-sources @ standalone-pom <<< > [INFO] > [INFO] > [INFO] --- maven-archetype-plugin:3.0.1:generate (default-cli) @ > standalone-pom --- > [INFO] Generating project in Interactive mode > [INFO] > > [INFO] BUILD FAILURE > [INFO] > > [INFO] Total time: 0.965 s > [INFO] Finished at: 2017-04-20T16:03:51+02:00 > [INFO] Final Memory: 15M/368M > [INFO] > > [ERROR] Failed to execute goal > org.apache.maven.plugins:maven-archetype-plugin:3.0.1:generate (default-cli) > on project standalone-pom: archetypeCatalog 'http://tapestry.apache.org' is > not supported anymore. Please read the plugin documentation for details. -> > [Help 1] > [ERROR] > [ERROR] To see the full stack trace of the errors, re-run Maven with the -e > switch. > [ERROR] Re-run Maven using the -X switch to enable full debug logging. > [ERROR] > [ERROR] For more information about the errors and possible solutions, please > read the following articles: > [ERROR] [Help 1] > http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException > Need to use: > mvn org.apache.maven.plugins:maven-archetype-plugin:2.4:generate > -DarchetypeCatalog= http://tapestry.apache.org > Ref: > http://apache-tapestry-mailing-list-archives.1045711.n5.nabble.com/Tapestry-Quickstart-problems-td5733428.html -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (TAP5-2579) Quickstart project does not work with maven 3
[ https://issues.apache.org/jira/browse/TAP5-2579?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15978175#comment-15978175 ] Jochen Kemnade commented on TAP5-2579: -- I think it's related to the version of the {{maven-archetype-plugin}}. On my machine, {code} mvn archetype:generate -DarchetypeCatalog=http://tapestry.apache.org {code} and {code} mvn org.apache.maven.plugins:maven-archetype-plugin:2.4:generate -DarchetypeCatalog=http://tapestry.apache.org {code} work, but {code} mvn org.apache.maven.plugins:maven-archetype-plugin:3.0.1:generate -DarchetypeCatalog=http://tapestry.apache.org {code} fails. > Quickstart project does not work with maven 3 > - > > Key: TAP5-2579 > URL: https://issues.apache.org/jira/browse/TAP5-2579 > Project: Tapestry 5 > Issue Type: Bug > Components: quickstart >Affects Versions: 5.4.2 >Reporter: Svein > > Tried maven 3.0.4 and 3.5.0 > mvn archetype:generate -DarchetypeCatalog=http://tapestry.apache.org > [INFO] Scanning for projects... > [INFO] > [INFO] > > [INFO] Building Maven Stub Project (No POM) 1 > [INFO] > > [INFO] > [INFO] >>> maven-archetype-plugin:3.0.1:generate (default-cli) > > generate-sources @ standalone-pom >>> > [INFO] > [INFO] <<< maven-archetype-plugin:3.0.1:generate (default-cli) < > generate-sources @ standalone-pom <<< > [INFO] > [INFO] > [INFO] --- maven-archetype-plugin:3.0.1:generate (default-cli) @ > standalone-pom --- > [INFO] Generating project in Interactive mode > [INFO] > > [INFO] BUILD FAILURE > [INFO] > > [INFO] Total time: 0.965 s > [INFO] Finished at: 2017-04-20T16:03:51+02:00 > [INFO] Final Memory: 15M/368M > [INFO] > > [ERROR] Failed to execute goal > org.apache.maven.plugins:maven-archetype-plugin:3.0.1:generate (default-cli) > on project standalone-pom: archetypeCatalog 'http://tapestry.apache.org' is > not supported anymore. Please read the plugin documentation for details. -> > [Help 1] > [ERROR] > [ERROR] To see the full stack trace of the errors, re-run Maven with the -e > switch. > [ERROR] Re-run Maven using the -X switch to enable full debug logging. > [ERROR] > [ERROR] For more information about the errors and possible solutions, please > read the following articles: > [ERROR] [Help 1] > http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException > Need to use: > mvn org.apache.maven.plugins:maven-archetype-plugin:2.4:generate > -DarchetypeCatalog= http://tapestry.apache.org > Ref: > http://apache-tapestry-mailing-list-archives.1045711.n5.nabble.com/Tapestry-Quickstart-problems-td5733428.html -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (TAP5-2579) Quickstart project does not work with maven 3
[ https://issues.apache.org/jira/browse/TAP5-2579?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15976829#comment-15976829 ] Jochen Kemnade commented on TAP5-2579: -- Seems to work fine with Maven 3.3.9. A haven't used Maven in ages, any idea what might be the issue here? > Quickstart project does not work with maven 3 > - > > Key: TAP5-2579 > URL: https://issues.apache.org/jira/browse/TAP5-2579 > Project: Tapestry 5 > Issue Type: Bug > Components: quickstart >Affects Versions: 5.4.2 >Reporter: Svein > > Tried maven 3.0.4 and 3.5.0 > mvn archetype:generate -DarchetypeCatalog=http://tapestry.apache.org > [INFO] Scanning for projects... > [INFO] > [INFO] > > [INFO] Building Maven Stub Project (No POM) 1 > [INFO] > > [INFO] > [INFO] >>> maven-archetype-plugin:3.0.1:generate (default-cli) > > generate-sources @ standalone-pom >>> > [INFO] > [INFO] <<< maven-archetype-plugin:3.0.1:generate (default-cli) < > generate-sources @ standalone-pom <<< > [INFO] > [INFO] > [INFO] --- maven-archetype-plugin:3.0.1:generate (default-cli) @ > standalone-pom --- > [INFO] Generating project in Interactive mode > [INFO] > > [INFO] BUILD FAILURE > [INFO] > > [INFO] Total time: 0.965 s > [INFO] Finished at: 2017-04-20T16:03:51+02:00 > [INFO] Final Memory: 15M/368M > [INFO] > > [ERROR] Failed to execute goal > org.apache.maven.plugins:maven-archetype-plugin:3.0.1:generate (default-cli) > on project standalone-pom: archetypeCatalog 'http://tapestry.apache.org' is > not supported anymore. Please read the plugin documentation for details. -> > [Help 1] > [ERROR] > [ERROR] To see the full stack trace of the errors, re-run Maven with the -e > switch. > [ERROR] Re-run Maven using the -X switch to enable full debug logging. > [ERROR] > [ERROR] For more information about the errors and possible solutions, please > read the following articles: > [ERROR] [Help 1] > http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException > Need to use: > mvn org.apache.maven.plugins:maven-archetype-plugin:2.4:generate > -DarchetypeCatalog= http://tapestry.apache.org > Ref: > http://apache-tapestry-mailing-list-archives.1045711.n5.nabble.com/Tapestry-Quickstart-problems-td5733428.html -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Closed] (TAP5-2580) Quickstart project should not set SymbolConstants.MINIFICATION_ENABLED
[ https://issues.apache.org/jira/browse/TAP5-2580?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade closed TAP5-2580. Resolution: Fixed Assignee: Jochen Kemnade Fix Version/s: 5.4.3 5.5.0 Absolutely. The defaults set in {{org.apache.tapestry5.modules.AssetsModule.setupSymbols}} do just that, so there is no need to set a value in the AppModule. > Quickstart project should not set SymbolConstants.MINIFICATION_ENABLED > -- > > Key: TAP5-2580 > URL: https://issues.apache.org/jira/browse/TAP5-2580 > Project: Tapestry 5 > Issue Type: Bug > Components: quickstart >Affects Versions: 5.4.2 >Reporter: Svein >Assignee: Jochen Kemnade > Fix For: 5.5.0, 5.4.3 > > > I have been using it for a new project, but could not debug JavaScript. (I am > using IntelliJ). I could not understand why, but after several hour a found > out that configuration.add(SymbolConstants.MINIFICATION_ENABLED, true); was > set in AppModule.java. I don't understand why this is set. I should not be > set!!! If SymbolConstants.PRODUCTION_MODE= true then > SymbolConstants.MINIFICATION_ENABLED is set to true. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Closed] (TAP5-2578) Changed constructor signature JSONObject(JSONObject, String...)
[ https://issues.apache.org/jira/browse/TAP5-2578?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade closed TAP5-2578. Resolution: Fixed Assignee: Jochen Kemnade Fix Version/s: 5.4.3 5.5.0 > Changed constructor signature JSONObject(JSONObject, String...) > --- > > Key: TAP5-2578 > URL: https://issues.apache.org/jira/browse/TAP5-2578 > Project: Tapestry 5 > Issue Type: Bug > Components: tapestry-json >Affects Versions: 5.4.2 >Reporter: Jochen Kemnade >Assignee: Jochen Kemnade > Labels: regression > Fix For: 5.5.0, 5.4.3 > > > In Tapestry 5.4.2, the constructor {{public JSONObject(JSONObject source, > String... propertyNames)}} changed to {{public JSONObject(JSONObject > copyFrom, String[] names)}}. That means that you can no longer use {code}new > JSONObject(source, "key1"){code}. You can use {code}new JSONObject(source, > new String[]{"key1"}){code} as a workaround. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (TAP5-2578) Changed constructor signature JSONObject(JSONObject, String...)
[ https://issues.apache.org/jira/browse/TAP5-2578?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade updated TAP5-2578: - Description: In Tapestry 5.4.2, the constructor {{public JSONObject(JSONObject source, String... propertyNames)}} changed to {{public JSONObject(JSONObject copyFrom, String[] names)}}. That means that you can no longer use {code}new JSONObject(source, "key1"){code}. You can use {code}new JSONObject(source, new String[]{"key1"}){code} as a workaround. (was: In Tapestry 5.4.2, the constructor {{public JSONObject(JSONObject source, String... propertyNames)}} changed to {{public JSONObject(JSONObject copyFrom, String[] names)}}. That means that you can no longer use {{new JSONObject(source, "key1")}}. You can use {{JSONObject(source, new String[]{"key1"})}} as a workaround.) > Changed constructor signature JSONObject(JSONObject, String...) > --- > > Key: TAP5-2578 > URL: https://issues.apache.org/jira/browse/TAP5-2578 > Project: Tapestry 5 > Issue Type: Bug > Components: tapestry-json >Affects Versions: 5.4.2 >Reporter: Jochen Kemnade > Labels: regression > > In Tapestry 5.4.2, the constructor {{public JSONObject(JSONObject source, > String... propertyNames)}} changed to {{public JSONObject(JSONObject > copyFrom, String[] names)}}. That means that you can no longer use {code}new > JSONObject(source, "key1"){code}. You can use {code}new JSONObject(source, > new String[]{"key1"}){code} as a workaround. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Created] (TAP5-2578) Changed constructor signature JSONObject(JSONObject, String...)
Jochen Kemnade created TAP5-2578: Summary: Changed constructor signature JSONObject(JSONObject, String...) Key: TAP5-2578 URL: https://issues.apache.org/jira/browse/TAP5-2578 Project: Tapestry 5 Issue Type: Bug Components: tapestry-json Affects Versions: 5.4.2 Reporter: Jochen Kemnade In Tapestry 5.4.2, the constructor {{public JSONObject(JSONObject source, String... propertyNames)}} changed to {{public JSONObject(JSONObject copyFrom, String[] names)}}. That means that you can no longer use {{new JSONObject(source, "key1")}}. You can use {{JSONObject(source, new String[]{"key1"})}} as a workaround. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (TAP5-2576) Copying annotations from interface to proxy causing problems with type-introspecting libraries like RESTEasy
[ https://issues.apache.org/jira/browse/TAP5-2576?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15950713#comment-15950713 ] Jochen Kemnade commented on TAP5-2576: -- Probably related to TAP5-2453 > Copying annotations from interface to proxy causing problems with > type-introspecting libraries like RESTEasy > > > Key: TAP5-2576 > URL: https://issues.apache.org/jira/browse/TAP5-2576 > Project: Tapestry 5 > Issue Type: Bug >Affects Versions: 5.4.1 >Reporter: Dmitry Gusev > > If we contribute a tapestry service as a singleton to RESTEasy (how [Tynamo's > tapestry-resteasy integration|https://github.com/tynamo/tapestry-resteasy] is > doing by default) it tries to pick a class (or one of its interfaces) with > {{java.ws.rs.Path}} annotation and uses it as a source for its configuration. > In Tapestry 5.3 the annotation was only attached to an interface, in Tapestry > 5.4 proxy class takes precedence here as it also has the annotation. > The problem is tapestry proxy classes are missing generics information and > RESTEasy can't figure out which type it should use when deserialising > incoming parameters. > I.e. if you have a method {{void foo(Collection ids);}} in your > interface then service proxy class will have erased version of the method, > i.e.: {{void foo(Collection ids)}}. > When RESTEasy tries to deserialise incoming collection its best guess is to > use {{java.lang.Integer}}, because incoming JSON will have numbers. Hence > {{ids}} will be a collection of {{java.lang.Integer}} and if you try to > access its elements as {{Long}} you'll get an error: > {noformat} > java.lang.ClassCastException: java.lang.Integer cannot be cast to > java.lang.Long > {noformat} > I couldn't find any ways how to prevent the annotation copy. > Removing the annotations during class transformation processing would also be > an option, but Tapestry IoC doesn't seem to allow to register custom > {{PlasticClassTransformer}} for services, which came as a surprise to me, > because you have this option for Tapestry components via > {{ComponentClassTransformWorker2}}. > Ideally would be nice if proxy classes somehow preserve generics information > inherited from implementation/interface classes. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (TAP5-2532) Add Object editor to PropertyEditBlocks
[ https://issues.apache.org/jira/browse/TAP5-2532?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15950466#comment-15950466 ] Jochen Kemnade commented on TAP5-2532: -- Thanks! > Add Object editor to PropertyEditBlocks > --- > > Key: TAP5-2532 > URL: https://issues.apache.org/jira/browse/TAP5-2532 > Project: Tapestry 5 > Issue Type: Improvement > Components: tapestry-core >Affects Versions: 5.4 >Reporter: Barry Books >Priority: Minor > Labels: features, patch > Fix For: 5.5.0 > > Attachments: 0001-TAP-2532-Add-property-editor-for-object.patch > > > Create an object edit block in PropertyEditBlocks so BeanEditor can edit an > Object like > class Person { > Name name; > Address address; > ... > } > by just contributing the following > public static void > contributeDefaultDataTypeAnalyzer(@SuppressWarnings("rawtypes") > MappedConfigurationconfiguration) { > configuration.add(Name.class, "name"); > configuration.add(Address.class, "address"); > } > @Contribute(BeanBlockSource.class) > public static void > provideDefaultBeanBlocks(Configuration configuration) { > configuration.add( new EditBlockContribution("Name", > "PropertyEditBlocks", "Object")); > configuration.add( new EditBlockContribution("Address", > "PropertyEditBlocks", "Object")); > } > Patch to follow -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Closed] (TAP5-2532) Add Object editor to PropertyEditBlocks
[ https://issues.apache.org/jira/browse/TAP5-2532?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade closed TAP5-2532. Resolution: Fixed Fix Version/s: 5.5.0 > Add Object editor to PropertyEditBlocks > --- > > Key: TAP5-2532 > URL: https://issues.apache.org/jira/browse/TAP5-2532 > Project: Tapestry 5 > Issue Type: Improvement > Components: tapestry-core >Affects Versions: 5.4 >Reporter: Barry Books >Priority: Minor > Labels: features, patch > Fix For: 5.5.0 > > Attachments: 0001-TAP-2532-Add-property-editor-for-object.patch > > > Create an object edit block in PropertyEditBlocks so BeanEditor can edit an > Object like > class Person { > Name name; > Address address; > ... > } > by just contributing the following > public static void > contributeDefaultDataTypeAnalyzer(@SuppressWarnings("rawtypes") > MappedConfigurationconfiguration) { > configuration.add(Name.class, "name"); > configuration.add(Address.class, "address"); > } > @Contribute(BeanBlockSource.class) > public static void > provideDefaultBeanBlocks(Configuration configuration) { > configuration.add( new EditBlockContribution("Name", > "PropertyEditBlocks", "Object")); > configuration.add( new EditBlockContribution("Address", > "PropertyEditBlocks", "Object")); > } > Patch to follow -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Closed] (TAP5-2546) Parallel class loading
[ https://issues.apache.org/jira/browse/TAP5-2546?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade closed TAP5-2546. Resolution: Fixed Assignee: Jochen Kemnade Fix Version/s: 5.5.0 > Parallel class loading > -- > > Key: TAP5-2546 > URL: https://issues.apache.org/jira/browse/TAP5-2546 > Project: Tapestry 5 > Issue Type: Sub-task > Components: plastic >Reporter: Michael Mikhulya >Assignee: Jochen Kemnade > Fix For: 5.5.0 > > > I would like to improve page loading time by improving its concurrent > execution. > Here is a first patch related to it: TAP5-2545 > Now the worst place from lock contention point of view is synchronization on > {{PlasticClassLoader}}. Actually there are two kind of synchronization: > {{synchronized}} methods in {{PlasticClassLoader}} and {{synchronized > (loader)}} sections in {{PlasticClassPool}}. > Recently most class loaders added support for parallel class loading: > https://bugs.eclipse.org/bugs/show_bug.cgi?id=464442 > https://bz.apache.org/bugzilla/show_bug.cgi?id=57681 > If we would like to split global lock, then we can use following trick for it. > We can substitute code like this: > {code:title=PlasticClassLoader.java} > public synchronized Class defineClassWithBytecode(String className, > byte[] bytecode) > { > return defineClass(className, bytecode, 0, bytecode.length); > } > {code} > with following one: > {code:java} > public Class defineClassWithBytecode(String className, byte[] bytecode) > { > synchronized (className.intern()) > { > return defineClass(className, bytecode, 0, bytecode.length); > } > } > {code} > It is just an idea to quickly check solution. > Can anybody check and discuss idea? Or even better to fix issue. :-) > I'm not an expert in concurrency and afraid making changes in such a critical > place at least before somebody reviewed my idea. So any feedback would be > appreciated. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (TAP5-2546) Parallel class loading
[ https://issues.apache.org/jira/browse/TAP5-2546?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15948475#comment-15948475 ] Jochen Kemnade commented on TAP5-2546: -- The fix should work, but I wonder why the methods are synchronized at all. It was done for TAP5-1650, I'm trying to find out what the actual issue was. > Parallel class loading > -- > > Key: TAP5-2546 > URL: https://issues.apache.org/jira/browse/TAP5-2546 > Project: Tapestry 5 > Issue Type: Sub-task > Components: plastic >Reporter: Michael Mikhulya > > I would like to improve page loading time by improving its concurrent > execution. > Here is a first patch related to it: TAP5-2545 > Now the worst place from lock contention point of view is synchronization on > {{PlasticClassLoader}}. Actually there are two kind of synchronization: > {{synchronized}} methods in {{PlasticClassLoader}} and {{synchronized > (loader)}} sections in {{PlasticClassPool}}. > Recently most class loaders added support for parallel class loading: > https://bugs.eclipse.org/bugs/show_bug.cgi?id=464442 > https://bz.apache.org/bugzilla/show_bug.cgi?id=57681 > If we would like to split global lock, then we can use following trick for it. > We can substitute code like this: > {code:title=PlasticClassLoader.java} > public synchronized Class defineClassWithBytecode(String className, > byte[] bytecode) > { > return defineClass(className, bytecode, 0, bytecode.length); > } > {code} > with following one: > {code:java} > public Class defineClassWithBytecode(String className, byte[] bytecode) > { > synchronized (className.intern()) > { > return defineClass(className, bytecode, 0, bytecode.length); > } > } > {code} > It is just an idea to quickly check solution. > Can anybody check and discuss idea? Or even better to fix issue. :-) > I'm not an expert in concurrency and afraid making changes in such a critical > place at least before somebody reviewed my idea. So any feedback would be > appreciated. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (TAP5-2553) Support pseudo nested JPA transactions, injectable entity listeners and pre/post commit hooks
[ https://issues.apache.org/jira/browse/TAP5-2553?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15948463#comment-15948463 ] Jochen Kemnade commented on TAP5-2553: -- [~kaosko], can we close this? > Support pseudo nested JPA transactions, injectable entity listeners and > pre/post commit hooks > - > > Key: TAP5-2553 > URL: https://issues.apache.org/jira/browse/TAP5-2553 > Project: Tapestry 5 > Issue Type: New Feature > Components: tapestry-jpa >Affects Versions: 5.4.1 >Reporter: Kalle Korhonen >Assignee: Kalle Korhonen > Labels: jpa > Fix For: 5.5.0 > > > Plain JPA does not support nested transaction but by keeping track of > @CommitAfter stack, we can support "pseudo nested" transactions. The concept > was first demonstrated in > https://github.com/satago/tapestry-jpa-transactions. @kaosko started an > effort to merge the codebase to T5 > (https://github.com/satago/tapestry-jpa-transactions/pull/5) but because of > fundamental limitations in the original design (no support for multiple > persistence units, pre/post commit hooks were only available for the last > transaction), @kaosko refactored the implementation for more general use > (https://github.com/kaosko/tapestry-jpa-transactions). The original code was > under Apache license with support from the original authors to merge the > codebase to T5 and the refactored implementation was solely made by @kaosko. > This issue is about merging the refactored implementation to T5.5 and > replacing the existing JPA classes (mainly class workers, advisors) by the > those provided by the new implementation. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (TAP5-2574) No match on Locale nb
[ https://issues.apache.org/jira/browse/TAP5-2574?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15947186#comment-15947186 ] Jochen Kemnade commented on TAP5-2574: -- I'm not sure if that's a good solution after all. I'd feel much better if we actually had a Nynorsk properties file. We wouldn't have to make any complicated exceptions then. > No match on Locale nb > -- > > Key: TAP5-2574 > URL: https://issues.apache.org/jira/browse/TAP5-2574 > Project: Tapestry 5 > Issue Type: Bug > Components: tapestry-core >Affects Versions: 5.4.1 >Reporter: Svein > Labels: desired_for_5.5 > > {code}configuration.add(SymbolConstants.SUPPORTED_LOCALES, "no_NB,en");{code} > {code}org.apache.tapestry5.internal.services.Request.getLocale() for returns > "nb" for Norwegian{code} > No *_no_NB.properties or *_no.properties are used. I think A way to alias > locale is needed. E.g: > {code}configuration.add(SymbolConstants.SUPPORTED_LOCALES, > "no_NB{nb},en);{code} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (TAP5-2574) No match on Locale nb
[ https://issues.apache.org/jira/browse/TAP5-2574?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade updated TAP5-2574: - Labels: desired_for_5.5 (was: ) > No match on Locale nb > -- > > Key: TAP5-2574 > URL: https://issues.apache.org/jira/browse/TAP5-2574 > Project: Tapestry 5 > Issue Type: Bug > Components: tapestry-core >Affects Versions: 5.4.1 >Reporter: Svein > Labels: desired_for_5.5 > > {code}configuration.add(SymbolConstants.SUPPORTED_LOCALES, "no_NB,en");{code} > {code}org.apache.tapestry5.internal.services.Request.getLocale() for returns > "nb" for Norwegian{code} > No *_no_NB.properties or *_no.properties are used. I think A way to alias > locale is needed. E.g: > {code}configuration.add(SymbolConstants.SUPPORTED_LOCALES, > "no_NB{nb},en);{code} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (TAP5-1803) URL encoding in ActivationRequestParameter is very strict
[ https://issues.apache.org/jira/browse/TAP5-1803?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15947090#comment-15947090 ] Jochen Kemnade commented on TAP5-1803: -- I was just about to change {{ActivationRequestParameterWorker}}, but that would break old links, e.g. from the browser history, when people upgrade to 5.5. > URL encoding in ActivationRequestParameter is very strict > - > > Key: TAP5-1803 > URL: https://issues.apache.org/jira/browse/TAP5-1803 > Project: Tapestry 5 > Issue Type: Bug > Components: tapestry-core >Affects Versions: 5.3.1, 5.4 >Reporter: David Canteros > Labels: @ActivationRequestParameter, InvalidaArgumenteException, > URLEncoder,, desired_for_5.5 > > The URLEncoder that perform the URL encoding process does not include the > following "unreserved characters" : > ! ~ * ' ( ) > (see rfc2396 Uniform Resource Identifiers (URI): Generic Syntax, item 2.3) > > Because the fix of TAP5-1768, from v5.3.1 the @ActivationRequestParameter > requires this enconding, which becomes incompatible with the standard. > Thus, any URL which contains those symbols will throw an > InvalidaArgumenteException. Tapestry should consider that the > ActivationRequestParameter is a standar way of parameter sending, and the > parameters sent in this way probably not have the "strict" coding process of > the URLEncoder. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Closed] (TAP5-841) DateField selects wrong date if client is in a different timezone than the server
[ https://issues.apache.org/jira/browse/TAP5-841?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade closed TAP5-841. --- Resolution: Fixed Assignee: Jochen Kemnade Fix Version/s: 5.5.0 > DateField selects wrong date if client is in a different timezone than the > server > - > > Key: TAP5-841 > URL: https://issues.apache.org/jira/browse/TAP5-841 > Project: Tapestry 5 > Issue Type: Bug > Components: tapestry-core >Affects Versions: 5.4, 5.1.0.5 >Reporter: David Rees >Assignee: Jochen Kemnade > Labels: desired_for_5.5 > Fix For: 5.5.0 > > Attachments: T5.3-DateField-Patch.txt > > > This affects 5.0.18 and 5.1.0.5 in my testing. > Situation is that if the server is running in a different timezone than the > client, the DateField chooser will select the wrong date on the calendar. > For example, if the server is running in "Pacific/Auckland" and the client is > running in "America/Los_Angeles", Auckland is a "day ahead" of Los Angeles > for most of the time and the bug is easy to reproduce. > Right now it is 3:40PM Sep 8, 2009 America/Los_Angeles and 10:40AM Sep 9, > 2009 Pacific/Auckland. If the date on the server to be displayed by the > DateField is Sep 9, 2009, when you select the date chooser, Sep 8, 2009 is > selected in the JavaScript calendar dialog. > I found this message which seems to indicate that Howard thought it might be > an issue - looks like he was correct: > http://www.nabble.com/Re%3A-Tapestry-5.0.15-DateField-localization-problem--patch-included--p20033325.html -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Closed] (TAP5-2478) Create getIfExists in SessionApplicationStatePersistenceStrategy
[ https://issues.apache.org/jira/browse/TAP5-2478?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade closed TAP5-2478. Resolution: Fixed Fix Version/s: 5.5.0 > Create getIfExists in SessionApplicationStatePersistenceStrategy > > > Key: TAP5-2478 > URL: https://issues.apache.org/jira/browse/TAP5-2478 > Project: Tapestry 5 > Issue Type: Improvement >Reporter: Maria Fedotova > Labels: patch, perfomance > Fix For: 5.5.0 > > Attachments: > 0001-TAP5-2478-short-circuit-in-getIfExists-if-there-is-n.patch, > TAP5-2478_add.patch, TAP5-2478.patch > > > Instead of this code > {code} > public T getIfExists(Class ssoClass) > { > ApplicationStateAdapter adapter = getAdapter(ssoClass); > return adapter.exists() ? adapter.getOrCreate() : null; > } > {code} > I've create function getIfExists > {code} > public T getIfExists(Class ssoClass) > { > return getAdapter(ssoClass).getIfExists(); > } > {code} > This patch increased requests per second on ~7% (from 24 to 26 on huge pages) > Thank [~mihasik] for the idea. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (TAP5-2551) module t5/core/messages and default locale
[ https://issues.apache.org/jira/browse/TAP5-2551?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15946699#comment-15946699 ] Jochen Kemnade commented on TAP5-2551: -- bq. But in some situations this code exectutes before another code that sets the Locale through LocalizationSetter I think that we need to figure out why that happens. I tried to reproduce this behavior but haven't succeeded so far. > module t5/core/messages and default locale > -- > > Key: TAP5-2551 > URL: https://issues.apache.org/jira/browse/TAP5-2551 > Project: Tapestry 5 > Issue Type: Bug > Components: tapestry-core >Affects Versions: 5.4, 5.4.1 >Reporter: Carlos Montero Canabal > Labels: locale, messages > Attachments: image.jpeg > > > In the js for module messages: > var locale; > locale = document.documentElement.getAttribute("data-locale") || "en"; > define("t5/core/messages", ["./messages/" + locale, > If my webapp is not configured for locale "en" requirejs returns a 404 not > found error because the "t5/core/messages/en" doesn´t exist and the page > doesn´t load (it only shows the mask meanwhile all modules are loading). You > will put the first locale configured into SymbolConstants.SUPPORTED_LOCALES > as the documentation says. > In fact, there is another bug but I don't found the point of code where it > occurs. Yesterday a Google Chrome update force my locale to en_US (i'm > spanish and my locales is es or es_ES) and when I enter on my webpage who > load the messages module, the data-locale attribute was "en_US", but my > webapp only have configured "es". I think there is a missing check between > browser locale and locales supported. I have a webapp store and today any > user can buy because the checkout page (with forms that require messages > module) doesn´t load. I fix it with a workaound (threadLocale.setLocale(new > Locale("es")) in the activate method of pages), but I think that it's a > important bug because many websites as mine can be off. > > UPDATED: As I comment at the bottom, It was a fortuity that my Chrome locale > was the same that the Java VM locale (en_US), so the main bug is in the > default locale who returns ThreadLocaleImpl meanwhile LocalizationSetter is > not called. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Closed] (TAP5-2575) Replace json.org-licensed classes with Apache-compatible versions
[ https://issues.apache.org/jira/browse/TAP5-2575?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade closed TAP5-2575. Resolution: Fixed Assignee: Jochen Kemnade > Replace json.org-licensed classes with Apache-compatible versions > - > > Key: TAP5-2575 > URL: https://issues.apache.org/jira/browse/TAP5-2575 > Project: Tapestry 5 > Issue Type: Task > Components: tapestry-json >Affects Versions: 5.3.8, 5.4.1 >Reporter: Bob Harner >Assignee: Jochen Kemnade > Fix For: 5.5.0, 5.4.2 > > Attachments: 0001-TAP5-2575-base-tapestry-json-on-Jackson.patch, > 0001-TAP5-2575-rewrite-some-of-tapestry-json-based-upon-c.patch > > > Because of [license issues|https://www.apache.org/legal/resolved#json], we > need to replace all json.org-licensed classes with alternative classes having > an Apache-approved license. Apache legal has imposed a deadline of April 30, > 2017. > Tapestry apparently includes 3 classes that are, starting in version 5.2, > "repackaged, improved (and tested) version of code originally from json.org." > These 3 all include D. Crockford's "The Software shall be used for Good, not > Evil" statement in the JSON license at the top. > The 3 classes are: > * JSONArray.java > * JSONTokener.java > * JSONObject.java > Other Apache projects (including Wicket) have successfully switched to > https://github.com/tdunning/open-json, which contains versions of the above 3 > classes that are purported to be mostly compatible with the current versions > from json.org. However, there have been changes to Tapestry's own version > since the original copy was made (May 2008 or possibly earlier), and those > changes would need to be re-applied. Some examples: > * TAP5-1153: When in development mode, Tapestry should pretty-print JSON > content > * TAP5-2209 Make JSONObject and JSONArray implement Serializable > * Make JSONArray.from() not care about what values are stored in Iterable > * Add a new constructor to JSONObject to make it easier to initalize a > JSONObjects key/value pairs (if all strings) > * Change generics signature for JSONArray.putAll() and JSONObject.putAll() > * TAP5-2098: Maintain JSONObject keys & values in the order they were added > * Add a copy() method to JSONObject > * Add JSONArray.toList() > * Add JSONArray.putAll() > * Added remove(int index) to JSONArray > * TAP5-1970: Make it easier to create JSONObject and JSONArray instances > * Add JSONObject.toMap() > * Add JSONObject.in(String) to create (if needed) and return a nested > JSONObject > There are 116 unit tests for the JSON module. A starting point would be to > overlay the open-json classes and see what tests fail. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (TAP5-2575) Replace json.org-licensed classes with Apache-compatible versions
[ https://issues.apache.org/jira/browse/TAP5-2575?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade updated TAP5-2575: - Fix Version/s: 5.4.2 5.5.0 > Replace json.org-licensed classes with Apache-compatible versions > - > > Key: TAP5-2575 > URL: https://issues.apache.org/jira/browse/TAP5-2575 > Project: Tapestry 5 > Issue Type: Task > Components: tapestry-json >Affects Versions: 5.3.8, 5.4.1 >Reporter: Bob Harner > Fix For: 5.5.0, 5.4.2 > > Attachments: 0001-TAP5-2575-base-tapestry-json-on-Jackson.patch, > 0001-TAP5-2575-rewrite-some-of-tapestry-json-based-upon-c.patch > > > Because of [license issues|https://www.apache.org/legal/resolved#json], we > need to replace all json.org-licensed classes with alternative classes having > an Apache-approved license. Apache legal has imposed a deadline of April 30, > 2017. > Tapestry apparently includes 3 classes that are, starting in version 5.2, > "repackaged, improved (and tested) version of code originally from json.org." > These 3 all include D. Crockford's "The Software shall be used for Good, not > Evil" statement in the JSON license at the top. > The 3 classes are: > * JSONArray.java > * JSONTokener.java > * JSONObject.java > Other Apache projects (including Wicket) have successfully switched to > https://github.com/tdunning/open-json, which contains versions of the above 3 > classes that are purported to be mostly compatible with the current versions > from json.org. However, there have been changes to Tapestry's own version > since the original copy was made (May 2008 or possibly earlier), and those > changes would need to be re-applied. Some examples: > * TAP5-1153: When in development mode, Tapestry should pretty-print JSON > content > * TAP5-2209 Make JSONObject and JSONArray implement Serializable > * Make JSONArray.from() not care about what values are stored in Iterable > * Add a new constructor to JSONObject to make it easier to initalize a > JSONObjects key/value pairs (if all strings) > * Change generics signature for JSONArray.putAll() and JSONObject.putAll() > * TAP5-2098: Maintain JSONObject keys & values in the order they were added > * Add a copy() method to JSONObject > * Add JSONArray.toList() > * Add JSONArray.putAll() > * Added remove(int index) to JSONArray > * TAP5-1970: Make it easier to create JSONObject and JSONArray instances > * Add JSONObject.toMap() > * Add JSONObject.in(String) to create (if needed) and return a nested > JSONObject > There are 116 unit tests for the JSON module. A starting point would be to > overlay the open-json classes and see what tests fail. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (TAP5-2391) Field-specific error not shown when AJAX used
[ https://issues.apache.org/jira/browse/TAP5-2391?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15902796#comment-15902796 ] Jochen Kemnade commented on TAP5-2391: -- IIUC, you should set {{simpleids="true"}} on your {{Form}}s. > Field-specific error not shown when AJAX used > - > > Key: TAP5-2391 > URL: https://issues.apache.org/jira/browse/TAP5-2391 > Project: Tapestry 5 > Issue Type: Bug > Components: tapestry-core >Affects Versions: 5.4 >Reporter: Geoff Callender >Assignee: Howard M. Lewis Ship >Priority: Blocker > Labels: 54_release_prerequisite > Fix For: 5.4 > > > Found this bug in 5.4-beta-22. I've confirmed that the bug was not present in > 5.4-beta-6. > When an error is recorded with Form.recordError(Field field, String > errorMessage) or ValidationTracker.recordError(Field field, String > errorMessage) it normally is shown in the UI by decorating the field in error > and displaying the errorMessage below it. > In 5.4-beta-6 and every release ever before that, that was the behaviour > regardless of whether the request is non-AJAX or AJAX. > In 5.4-beta-22, the behaviour changes when the request is AJAX: the field > does not display an error. That is, the field is *not* decorated and the > errorMessage is *not* shown with it. If your Errors component has > globalOnly="true", which is the norm these days, then you won't even see the > error message there! If you set globalOnly="false" then the message *is* > shown, but who would want to set globalOnly="false"??? > Comparing the HTTP responses of beta-22 with beta-6, I see that beta-6 had an > extra entry in the inits, like this: > ["t5/core/fields:showValidationError", "firstName_8cf3108fe0ece9", "First > Name must not be Acme."] -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (TAP5-2391) Field-specific error not shown when AJAX used
[ https://issues.apache.org/jira/browse/TAP5-2391?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15902734#comment-15902734 ] Jochen Kemnade commented on TAP5-2391: -- [~geoffcallender], does your issue also have to do with a {{}} like [~gchristman]'s? I just tried the "Ajax Validation" (https://git-wip-us.apache.org/repos/asf?p=tapestry-5.git;h=f9d6e0a) and "Zone Form Decoration" (https://git-wip-us.apache.org/repos/asf?p=tapestry-5.git;h=db0255c) pages in the test application and they seem to work fine. A patch with a test would still be much appreciated. > Field-specific error not shown when AJAX used > - > > Key: TAP5-2391 > URL: https://issues.apache.org/jira/browse/TAP5-2391 > Project: Tapestry 5 > Issue Type: Bug > Components: tapestry-core >Affects Versions: 5.4 >Reporter: Geoff Callender >Assignee: Howard M. Lewis Ship >Priority: Blocker > Labels: 54_release_prerequisite > Fix For: 5.4 > > > Found this bug in 5.4-beta-22. I've confirmed that the bug was not present in > 5.4-beta-6. > When an error is recorded with Form.recordError(Field field, String > errorMessage) or ValidationTracker.recordError(Field field, String > errorMessage) it normally is shown in the UI by decorating the field in error > and displaying the errorMessage below it. > In 5.4-beta-6 and every release ever before that, that was the behaviour > regardless of whether the request is non-AJAX or AJAX. > In 5.4-beta-22, the behaviour changes when the request is AJAX: the field > does not display an error. That is, the field is *not* decorated and the > errorMessage is *not* shown with it. If your Errors component has > globalOnly="true", which is the norm these days, then you won't even see the > error message there! If you set globalOnly="false" then the message *is* > shown, but who would want to set globalOnly="false"??? > Comparing the HTTP responses of beta-22 with beta-6, I see that beta-6 had an > extra entry in the inits, like this: > ["t5/core/fields:showValidationError", "firstName_8cf3108fe0ece9", "First > Name must not be Acme."] -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (TAP5-2575) Replace json.org-licensed classes with Apache-compatible versions
[ https://issues.apache.org/jira/browse/TAP5-2575?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade updated TAP5-2575: - Attachment: 0001-TAP5-2575-rewrite-some-of-tapestry-json-based-upon-c.patch New patch, I tried to maintain full compatibility including all error messages, at least the ones that are part of the test suite. I'd appreciate every additional pair of eyes. > Replace json.org-licensed classes with Apache-compatible versions > - > > Key: TAP5-2575 > URL: https://issues.apache.org/jira/browse/TAP5-2575 > Project: Tapestry 5 > Issue Type: Task > Components: tapestry-json >Affects Versions: 5.3.8, 5.4.1 >Reporter: Bob Harner > Attachments: 0001-TAP5-2575-base-tapestry-json-on-Jackson.patch, > 0001-TAP5-2575-rewrite-some-of-tapestry-json-based-upon-c.patch > > > Because of [license issues|https://www.apache.org/legal/resolved#json], we > need to replace all json.org-licensed classes with alternative classes having > an Apache-approved license. Apache legal has imposed a deadline of April 30, > 2017. > Tapestry apparently includes 3 classes that are, starting in version 5.2, > "repackaged, improved (and tested) version of code originally from json.org." > These 3 all include D. Crockford's "The Software shall be used for Good, not > Evil" statement in the JSON license at the top. > The 3 classes are: > * JSONArray.java > * JSONTokener.java > * JSONObject.java > Other Apache projects (including Wicket) have successfully switched to > https://github.com/tdunning/open-json, which contains versions of the above 3 > classes that are purported to be mostly compatible with the current versions > from json.org. However, there have been changes to Tapestry's own version > since the original copy was made (May 2008 or possibly earlier), and those > changes would need to be re-applied. Some examples: > * TAP5-1153: When in development mode, Tapestry should pretty-print JSON > content > * TAP5-2209 Make JSONObject and JSONArray implement Serializable > * Make JSONArray.from() not care about what values are stored in Iterable > * Add a new constructor to JSONObject to make it easier to initalize a > JSONObjects key/value pairs (if all strings) > * Change generics signature for JSONArray.putAll() and JSONObject.putAll() > * TAP5-2098: Maintain JSONObject keys & values in the order they were added > * Add a copy() method to JSONObject > * Add JSONArray.toList() > * Add JSONArray.putAll() > * Added remove(int index) to JSONArray > * TAP5-1970: Make it easier to create JSONObject and JSONArray instances > * Add JSONObject.toMap() > * Add JSONObject.in(String) to create (if needed) and return a nested > JSONObject > There are 116 unit tests for the JSON module. A starting point would be to > overlay the open-json classes and see what tests fail. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (TAP5-2575) Replace json.org-licensed classes with Apache-compatible versions
[ https://issues.apache.org/jira/browse/TAP5-2575?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15901001#comment-15901001 ] Jochen Kemnade commented on TAP5-2575: -- Oh, we could of course just copy the code from open-json and adapt it to our needs. I only ever thought of pulling it in as a dependency. > Replace json.org-licensed classes with Apache-compatible versions > - > > Key: TAP5-2575 > URL: https://issues.apache.org/jira/browse/TAP5-2575 > Project: Tapestry 5 > Issue Type: Task > Components: tapestry-json >Affects Versions: 5.3.8, 5.4.1 >Reporter: Bob Harner > Attachments: 0001-TAP5-2575-base-tapestry-json-on-Jackson.patch > > > Because of [license issues|https://www.apache.org/legal/resolved#json], we > need to replace all json.org-licensed classes with alternative classes having > an Apache-approved license. Apache legal has imposed a deadline of April 30, > 2017. > Tapestry apparently includes 3 classes that are, starting in version 5.2, > "repackaged, improved (and tested) version of code originally from json.org." > These 3 all include D. Crockford's "The Software shall be used for Good, not > Evil" statement in the JSON license at the top. > The 3 classes are: > * JSONArray.java > * JSONTokener.java > * JSONObject.java > Other Apache projects (including Wicket) have successfully switched to > https://github.com/tdunning/open-json, which contains versions of the above 3 > classes that are purported to be mostly compatible with the current versions > from json.org. However, there have been changes to Tapestry's own version > since the original copy was made (May 2008 or possibly earlier), and those > changes would need to be re-applied. Some examples: > * TAP5-1153: When in development mode, Tapestry should pretty-print JSON > content > * TAP5-2209 Make JSONObject and JSONArray implement Serializable > * Make JSONArray.from() not care about what values are stored in Iterable > * Add a new constructor to JSONObject to make it easier to initalize a > JSONObjects key/value pairs (if all strings) > * Change generics signature for JSONArray.putAll() and JSONObject.putAll() > * TAP5-2098: Maintain JSONObject keys & values in the order they were added > * Add a copy() method to JSONObject > * Add JSONArray.toList() > * Add JSONArray.putAll() > * Added remove(int index) to JSONArray > * TAP5-1970: Make it easier to create JSONObject and JSONArray instances > * Add JSONObject.toMap() > * Add JSONObject.in(String) to create (if needed) and return a nested > JSONObject > There are 116 unit tests for the JSON module. A starting point would be to > overlay the open-json classes and see what tests fail. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (TAP5-2575) Replace json.org-licensed classes with Apache-compatible versions
[ https://issues.apache.org/jira/browse/TAP5-2575?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15899508#comment-15899508 ] Jochen Kemnade commented on TAP5-2575: -- Yes, me too. If we didn't have to ensure compatibility, my preferred solution would be to ditch {{tapestry-json}} altogether and just use {{javax.json}}/jsonp in Tapestry. > Replace json.org-licensed classes with Apache-compatible versions > - > > Key: TAP5-2575 > URL: https://issues.apache.org/jira/browse/TAP5-2575 > Project: Tapestry 5 > Issue Type: Task > Components: tapestry-json >Affects Versions: 5.3.8, 5.4.1 >Reporter: Bob Harner > Attachments: 0001-TAP5-2575-base-tapestry-json-on-Jackson.patch > > > Because of [license issues|https://www.apache.org/legal/resolved#json], we > need to replace all json.org-licensed classes with alternative classes having > an Apache-approved license. Apache legal has imposed a deadline of April 30, > 2017. > Tapestry apparently includes 3 classes that are, starting in version 5.2, > "repackaged, improved (and tested) version of code originally from json.org." > These 3 all include D. Crockford's "The Software shall be used for Good, not > Evil" statement in the JSON license at the top. > The 3 classes are: > * JSONArray.java > * JSONTokener.java > * JSONObject.java > Other Apache projects (including Wicket) have successfully switched to > https://github.com/tdunning/open-json, which contains versions of the above 3 > classes that are purported to be mostly compatible with the current versions > from json.org. However, there have been changes to Tapestry's own version > since the original copy was made (May 2008 or possibly earlier), and those > changes would need to be re-applied. Some examples: > * TAP5-1153: When in development mode, Tapestry should pretty-print JSON > content > * TAP5-2209 Make JSONObject and JSONArray implement Serializable > * Make JSONArray.from() not care about what values are stored in Iterable > * Add a new constructor to JSONObject to make it easier to initalize a > JSONObjects key/value pairs (if all strings) > * Change generics signature for JSONArray.putAll() and JSONObject.putAll() > * TAP5-2098: Maintain JSONObject keys & values in the order they were added > * Add a copy() method to JSONObject > * Add JSONArray.toList() > * Add JSONArray.putAll() > * Added remove(int index) to JSONArray > * TAP5-1970: Make it easier to create JSONObject and JSONArray instances > * Add JSONObject.toMap() > * Add JSONObject.in(String) to create (if needed) and return a nested > JSONObject > There are 116 unit tests for the JSON module. A starting point would be to > overlay the open-json classes and see what tests fail. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (TAP5-2574) No match on Locale nb
[ https://issues.apache.org/jira/browse/TAP5-2574?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15899313#comment-15899313 ] Jochen Kemnade commented on TAP5-2574: -- I think we should implement something similar to https://sites.google.com/site/openjdklocale/design-notes/resource-bundle-lookup-order#TOC-Special-Case-3:-Norwegian-Locales. If a request comes in a locale that starts with {{nn}} or {{nb}}, we could try {{no}} as a last resort. > No match on Locale nb > -- > > Key: TAP5-2574 > URL: https://issues.apache.org/jira/browse/TAP5-2574 > Project: Tapestry 5 > Issue Type: Bug > Components: tapestry-core >Affects Versions: 5.4.1 >Reporter: Svein > > {code}configuration.add(SymbolConstants.SUPPORTED_LOCALES, "no_NB,en");{code} > {code}org.apache.tapestry5.internal.services.Request.getLocale() for returns > "nb" for Norwegian{code} > No *_no_NB.properties or *_no.properties are used. I think A way to alias > locale is needed. E.g: > {code}configuration.add(SymbolConstants.SUPPORTED_LOCALES, > "no_NB{nb},en);{code} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (TAP5-2575) Replace json.org-licensed classes with Apache-compatible versions
[ https://issues.apache.org/jira/browse/TAP5-2575?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade updated TAP5-2575: - Attachment: 0001-TAP5-2575-base-tapestry-json-on-Jackson.patch > Replace json.org-licensed classes with Apache-compatible versions > - > > Key: TAP5-2575 > URL: https://issues.apache.org/jira/browse/TAP5-2575 > Project: Tapestry 5 > Issue Type: Task > Components: tapestry-json >Affects Versions: 5.3.8, 5.4.1 >Reporter: Bob Harner > Attachments: 0001-TAP5-2575-base-tapestry-json-on-Jackson.patch > > > Because of [license issues|https://www.apache.org/legal/resolved#json], we > need to replace all json.org-licensed classes with alternative classes having > an Apache-approved license. Apache legal has imposed a deadline of April 30, > 2017. > Tapestry apparently includes 3 classes that are, starting in version 5.2, > "repackaged, improved (and tested) version of code originally from json.org." > These 3 all include D. Crockford's "The Software shall be used for Good, not > Evil" statement in the JSON license at the top. > The 3 classes are: > * JSONArray.java > * JSONTokener.java > * JSONObject.java > Other Apache projects (including Wicket) have successfully switched to > https://github.com/tdunning/open-json, which contains versions of the above 3 > classes that are purported to be mostly compatible with the current versions > from json.org. However, there have been changes to Tapestry's own version > since the original copy was made (May 2008 or possibly earlier), and those > changes would need to be re-applied. Some examples: > * TAP5-1153: When in development mode, Tapestry should pretty-print JSON > content > * TAP5-2209 Make JSONObject and JSONArray implement Serializable > * Make JSONArray.from() not care about what values are stored in Iterable > * Add a new constructor to JSONObject to make it easier to initalize a > JSONObjects key/value pairs (if all strings) > * Change generics signature for JSONArray.putAll() and JSONObject.putAll() > * TAP5-2098: Maintain JSONObject keys & values in the order they were added > * Add a copy() method to JSONObject > * Add JSONArray.toList() > * Add JSONArray.putAll() > * Added remove(int index) to JSONArray > * TAP5-1970: Make it easier to create JSONObject and JSONArray instances > * Add JSONObject.toMap() > * Add JSONObject.in(String) to create (if needed) and return a nested > JSONObject > There are 116 unit tests for the JSON module. A starting point would be to > overlay the open-json classes and see what tests fail. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (TAP5-2575) Replace json.org-licensed classes with Apache-compatible versions
[ https://issues.apache.org/jira/browse/TAP5-2575?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15899278#comment-15899278 ] Jochen Kemnade commented on TAP5-2575: -- I've started progress on a Jackson-based implementation. I'll attach a patch in case someone's interested. > Replace json.org-licensed classes with Apache-compatible versions > - > > Key: TAP5-2575 > URL: https://issues.apache.org/jira/browse/TAP5-2575 > Project: Tapestry 5 > Issue Type: Task > Components: tapestry-json >Affects Versions: 5.3.8, 5.4.1 >Reporter: Bob Harner > > Because of [license issues|https://www.apache.org/legal/resolved#json], we > need to replace all json.org-licensed classes with alternative classes having > an Apache-approved license. Apache legal has imposed a deadline of April 30, > 2017. > Tapestry apparently includes 3 classes that are, starting in version 5.2, > "repackaged, improved (and tested) version of code originally from json.org." > These 3 all include D. Crockford's "The Software shall be used for Good, not > Evil" statement in the JSON license at the top. > The 3 classes are: > * JSONArray.java > * JSONTokener.java > * JSONObject.java > Other Apache projects (including Wicket) have successfully switched to > https://github.com/tdunning/open-json, which contains versions of the above 3 > classes that are purported to be mostly compatible with the current versions > from json.org. However, there have been changes to Tapestry's own version > since the original copy was made (May 2008 or possibly earlier), and those > changes would need to be re-applied. Some examples: > * TAP5-1153: When in development mode, Tapestry should pretty-print JSON > content > * TAP5-2209 Make JSONObject and JSONArray implement Serializable > * Make JSONArray.from() not care about what values are stored in Iterable > * Add a new constructor to JSONObject to make it easier to initalize a > JSONObjects key/value pairs (if all strings) > * Change generics signature for JSONArray.putAll() and JSONObject.putAll() > * TAP5-2098: Maintain JSONObject keys & values in the order they were added > * Add a copy() method to JSONObject > * Add JSONArray.toList() > * Add JSONArray.putAll() > * Added remove(int index) to JSONArray > * TAP5-1970: Make it easier to create JSONObject and JSONArray instances > * Add JSONObject.toMap() > * Add JSONObject.in(String) to create (if needed) and return a nested > JSONObject > There are 116 unit tests for the JSON module. A starting point would be to > overlay the open-json classes and see what tests fail. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (TAP5-2575) Replace json.org-licensed classes with Apache-compatible versions
[ https://issues.apache.org/jira/browse/TAP5-2575?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15897411#comment-15897411 ] Jochen Kemnade commented on TAP5-2575: -- {{javax.json}} is meant for immutable JSON, so it's not ideal. And we'd have a hard time supporting {{JSONLiteral}}. That's probably an issue with any specs-compliant JSON library we might decide to pull in. I'm beginning to wonder if we should just rewrite {{tapestry-json}} from scratch. > Replace json.org-licensed classes with Apache-compatible versions > - > > Key: TAP5-2575 > URL: https://issues.apache.org/jira/browse/TAP5-2575 > Project: Tapestry 5 > Issue Type: Task > Components: tapestry-json >Affects Versions: 5.3.8, 5.4.1 >Reporter: Bob Harner > > Because of [license issues|https://www.apache.org/legal/resolved#json], we > need to replace all json.org-licensed classes with alternative classes having > an Apache-approved license. Apache legal has imposed a deadline of April 30, > 2017. > Tapestry apparently includes 3 classes that are, starting in version 5.2, > "repackaged, improved (and tested) version of code originally from json.org." > These 3 all include D. Crockford's "The Software shall be used for Good, not > Evil" statement in the JSON license at the top. > The 3 classes are: > * JSONArray.java > * JSONTokener.java > * JSONObject.java > Other Apache projects (including Wicket) have successfully switched to > https://github.com/tdunning/open-json, which contains versions of the above 3 > classes that are purported to be mostly compatible with the current versions > from json.org. However, there have been changes to Tapestry's own version > since the original copy was made (May 2008 or possibly earlier), and those > changes would need to be re-applied. Some examples: > * TAP5-1153: When in development mode, Tapestry should pretty-print JSON > content > * TAP5-2209 Make JSONObject and JSONArray implement Serializable > * Make JSONArray.from() not care about what values are stored in Iterable > * Add a new constructor to JSONObject to make it easier to initalize a > JSONObjects key/value pairs (if all strings) > * Change generics signature for JSONArray.putAll() and JSONObject.putAll() > * TAP5-2098: Maintain JSONObject keys & values in the order they were added > * Add a copy() method to JSONObject > * Add JSONArray.toList() > * Add JSONArray.putAll() > * Added remove(int index) to JSONArray > * TAP5-1970: Make it easier to create JSONObject and JSONArray instances > * Add JSONObject.toMap() > * Add JSONObject.in(String) to create (if needed) and return a nested > JSONObject > There are 116 unit tests for the JSON module. A starting point would be to > overlay the open-json classes and see what tests fail. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (TAP5-2575) Replace json.org-licensed classes with Apache-compatible versions
[ https://issues.apache.org/jira/browse/TAP5-2575?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15897256#comment-15897256 ] Jochen Kemnade commented on TAP5-2575: -- Thanks [~mgrigorov], that sounds as if we shouldn't use open-json after all since we're looking for a long-term solution and don't have to stay compatible to JSON-java. I'm having a look at https://jsonp.java.net/index.html > Replace json.org-licensed classes with Apache-compatible versions > - > > Key: TAP5-2575 > URL: https://issues.apache.org/jira/browse/TAP5-2575 > Project: Tapestry 5 > Issue Type: Task > Components: tapestry-json >Affects Versions: 5.3.8, 5.4.1 >Reporter: Bob Harner > > Because of [license issues|https://www.apache.org/legal/resolved#json], we > need to replace all json.org-licensed classes with alternative classes having > an Apache-approved license. Apache legal has imposed a deadline of April 30, > 2017. > Tapestry apparently includes 3 classes that are, starting in version 5.2, > "repackaged, improved (and tested) version of code originally from json.org." > These 3 all include D. Crockford's "The Software shall be used for Good, not > Evil" statement in the JSON license at the top. > The 3 classes are: > * JSONArray.java > * JSONTokener.java > * JSONObject.java > Other Apache projects (including Wicket) have successfully switched to > https://github.com/tdunning/open-json, which contains versions of the above 3 > classes that are purported to be mostly compatible with the current versions > from json.org. However, there have been changes to Tapestry's own version > since the original copy was made (May 2008 or possibly earlier), and those > changes would need to be re-applied. Some examples: > * TAP5-1153: When in development mode, Tapestry should pretty-print JSON > content > * TAP5-2209 Make JSONObject and JSONArray implement Serializable > * Make JSONArray.from() not care about what values are stored in Iterable > * Add a new constructor to JSONObject to make it easier to initalize a > JSONObjects key/value pairs (if all strings) > * Change generics signature for JSONArray.putAll() and JSONObject.putAll() > * TAP5-2098: Maintain JSONObject keys & values in the order they were added > * Add a copy() method to JSONObject > * Add JSONArray.toList() > * Add JSONArray.putAll() > * Added remove(int index) to JSONArray > * TAP5-1970: Make it easier to create JSONObject and JSONArray instances > * Add JSONObject.toMap() > * Add JSONObject.in(String) to create (if needed) and return a nested > JSONObject > There are 116 unit tests for the JSON module. A starting point would be to > overlay the open-json classes and see what tests fail. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (TAP5-2575) Replace json.org-licensed classes with Apache-compatible versions
[ https://issues.apache.org/jira/browse/TAP5-2575?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15897115#comment-15897115 ] Jochen Kemnade commented on TAP5-2575: -- If we don't want to break any API, I guess we have to use the delegate pattern anyway, so we don't *need* to pick an implementation that is close to JSON.org. Maybe we should even consider using GSON. However, I played around with {{open-json}} and it might work, I just don't like the fact that it uses the {{org.json}} package. I'm pretty sure that it's going to lead to classpath conflicts if we pulled that in. Another issue is that the {{tapestry-json}} tests make lot of assertions about the error messages. If we want to keep these intact, that's probably going to be a lot of work. Also, do we want/have to do this for 5.5 only or do we want/have to do a 5.4.2 or even a 5.3.9? > Replace json.org-licensed classes with Apache-compatible versions > - > > Key: TAP5-2575 > URL: https://issues.apache.org/jira/browse/TAP5-2575 > Project: Tapestry 5 > Issue Type: Task > Components: tapestry-json >Affects Versions: 5.3.8, 5.4.1 >Reporter: Bob Harner > > Because of [license issues|https://www.apache.org/legal/resolved#json], we > need to replace all json.org-licensed classes with alternative classes having > an Apache-approved license. Apache legal has imposed a deadline of April 30, > 2017. > Tapestry apparently includes 3 classes that are, starting in version 5.2, > "repackaged, improved (and tested) version of code originally from json.org." > These 3 all include D. Crockford's "The Software shall be used for Good, not > Evil" statement in the JSON license at the top. > The 3 classes are: > * JSONArray.java > * JSONTokener.java > * JSONObject.java > Other Apache projects (including Wicket) have successfully switched to > https://github.com/tdunning/open-json, which contains versions of the above 3 > classes that are purported to be mostly compatible with the current versions > from json.org. However, there have been changes to Tapestry's own version > since the original copy was made (May 2008 or possibly earlier), and those > changes would need to be re-applied. Some examples: > * TAP5-1153: When in development mode, Tapestry should pretty-print JSON > content > * TAP5-2209 Make JSONObject and JSONArray implement Serializable > * Make JSONArray.from() not care about what values are stored in Iterable > * Add a new constructor to JSONObject to make it easier to initalize a > JSONObjects key/value pairs (if all strings) > * Change generics signature for JSONArray.putAll() and JSONObject.putAll() > * TAP5-2098: Maintain JSONObject keys & values in the order they were added > * Add a copy() method to JSONObject > * Add JSONArray.toList() > * Add JSONArray.putAll() > * Added remove(int index) to JSONArray > * TAP5-1970: Make it easier to create JSONObject and JSONArray instances > * Add JSONObject.toMap() > * Add JSONObject.in(String) to create (if needed) and return a nested > JSONObject > There are 116 unit tests for the JSON module. A starting point would be to > overlay the open-json classes and see what tests fail. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (TAP5-2574) No match on Locale nb
[ https://issues.apache.org/jira/browse/TAP5-2574?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15894124#comment-15894124 ] Jochen Kemnade commented on TAP5-2574: -- I rather thought about renaming it to {{core_no.properties}} and use it for {{nb*}} and {{nn*}}. Or would a {{nn}} user be confused or irritated if we provided them with a Bokmål translation? > No match on Locale nb > -- > > Key: TAP5-2574 > URL: https://issues.apache.org/jira/browse/TAP5-2574 > Project: Tapestry 5 > Issue Type: Bug > Components: tapestry-core >Affects Versions: 5.4.1 >Reporter: Svein > > {code}configuration.add(SymbolConstants.SUPPORTED_LOCALES, "no_NB,en");{code} > {code}org.apache.tapestry5.internal.services.Request.getLocale() for returns > "nb" for Norwegian{code} > No *_no_NB.properties or *_no.properties are used. I think A way to alias > locale is needed. E.g: > {code}configuration.add(SymbolConstants.SUPPORTED_LOCALES, > "no_NB{nb},en);{code} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (TAP5-2574) No match on Locale nb
[ https://issues.apache.org/jira/browse/TAP5-2574?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15894048#comment-15894048 ] Jochen Kemnade commented on TAP5-2574: -- Then maybe we should use the current properties file for all Norwegian locales until someone does a Nynorsk translation. Would that be acceptable? > No match on Locale nb > -- > > Key: TAP5-2574 > URL: https://issues.apache.org/jira/browse/TAP5-2574 > Project: Tapestry 5 > Issue Type: Bug > Components: tapestry-core >Affects Versions: 5.4.1 >Reporter: Svein > > {code}configuration.add(SymbolConstants.SUPPORTED_LOCALES, "no_NB,en");{code} > {code}org.apache.tapestry5.internal.services.Request.getLocale() for returns > "nb" for Norwegian{code} > No *_no_NB.properties or *_no.properties are used. I think A way to alias > locale is needed. E.g: > {code}configuration.add(SymbolConstants.SUPPORTED_LOCALES, > "no_NB{nb},en);{code} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Closed] (TAP5-2573) Update Closure Compiler version
[ https://issues.apache.org/jira/browse/TAP5-2573?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade closed TAP5-2573. Resolution: Fixed Fix Version/s: 5.5.0 We cannot include a newer version in Tapestry 5.4.x because we need to support Java 6. Tapestry 5.5 will include a more recent Closure Compiler and until it comes out, you can always create a modified version of the {{GoogleClosureMinimizer}} class and use it to override the default compiler: {code:java} @Contribute(ResourceMinimizer.class) @Primary public static void overrideClosureCompiler(final MappedConfigurationconfiguration) { configuration.overrideInstance("text/javascript", YourCustomCompiler.class); } {code} > Update Closure Compiler version > --- > > Key: TAP5-2573 > URL: https://issues.apache.org/jira/browse/TAP5-2573 > Project: Tapestry 5 > Issue Type: Dependency upgrade > Components: tapestry-webresources >Affects Versions: 5.4.1 >Reporter: MihkelJ >Priority: Minor > Fix For: 5.5.0 > > > tapestry-webresources includes closure compiler version v20131014. As of now, > the latest version is v20170124. > The signature for {{CompilerOptions#setOutputCharset}} has changed from > accepting {{String}} to accepting {{Charset}}, which prevents upgrading the > dependency separately from tapestry-webresources. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (TAP5-2573) Update Closure Compiler version
[ https://issues.apache.org/jira/browse/TAP5-2573?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade updated TAP5-2573: - Issue Type: Dependency upgrade (was: Improvement) > Update Closure Compiler version > --- > > Key: TAP5-2573 > URL: https://issues.apache.org/jira/browse/TAP5-2573 > Project: Tapestry 5 > Issue Type: Dependency upgrade > Components: tapestry-webresources >Affects Versions: 5.4.1 >Reporter: MihkelJ >Priority: Minor > > tapestry-webresources includes closure compiler version v20131014. As of now, > the latest version is v20170124. > The signature for {{CompilerOptions#setOutputCharset}} has changed from > accepting {{String}} to accepting {{Charset}}, which prevents upgrading the > dependency separately from tapestry-webresources. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (TAP5-2574) No match on Locale nb
[ https://issues.apache.org/jira/browse/TAP5-2574?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15893797#comment-15893797 ] Jochen Kemnade commented on TAP5-2574: -- See also https://issues.apache.org/jira/browse/TAP5-1824, https://issues.apache.org/jira/browse/TAP5-992, https://sites.google.com/site/openjdklocale/design-notes/resource-bundle-lookup-order#TOC-Special-Case-3:-Norwegian-Locales > No match on Locale nb > -- > > Key: TAP5-2574 > URL: https://issues.apache.org/jira/browse/TAP5-2574 > Project: Tapestry 5 > Issue Type: Bug > Components: tapestry-core >Affects Versions: 5.4.1 >Reporter: Svein > > {code}configuration.add(SymbolConstants.SUPPORTED_LOCALES, "no_NB,en");{code} > {code}org.apache.tapestry5.internal.services.Request.getLocale() for returns > "nb" for Norwegian{code} > No *_no_NB.properties or *_no.properties are used. I think A way to alias > locale is needed. E.g: > {code}configuration.add(SymbolConstants.SUPPORTED_LOCALES, > "no_NB{nb},en);{code} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (TAP5-2574) No match on Locale nb
[ https://issues.apache.org/jira/browse/TAP5-2574?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15893792#comment-15893792 ] Jochen Kemnade commented on TAP5-2574: -- Shouldn't this be {{nb_NO}} instead of {{no_NB}}? > No match on Locale nb > -- > > Key: TAP5-2574 > URL: https://issues.apache.org/jira/browse/TAP5-2574 > Project: Tapestry 5 > Issue Type: Bug > Components: tapestry-core >Affects Versions: 5.4.1 >Reporter: Svein > > {code}configuration.add(SymbolConstants.SUPPORTED_LOCALES, "no_NB,en");{code} > {code}org.apache.tapestry5.internal.services.Request.getLocale() for returns > "nb" for Norwegian{code} > No *_no_NB.properties or *_no.properties are used. I think A way to alias > locale is needed. E.g: > {code}configuration.add(SymbolConstants.SUPPORTED_LOCALES, > "no_NB{nb},en);{code} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (TAP5-2572) Duplicate properties in bean model
[ https://issues.apache.org/jira/browse/TAP5-2572?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15865540#comment-15865540 ] Jochen Kemnade commented on TAP5-2572: -- The {{isBar}} property is added by the Scala property detection algorithm. > Duplicate properties in bean model > -- > > Key: TAP5-2572 > URL: https://issues.apache.org/jira/browse/TAP5-2572 > Project: Tapestry 5 > Issue Type: Bug > Components: beanmodel >Affects Versions: 5.4.1 >Reporter: Jochen Kemnade > > If you create a BeanModel for a class with a private field that has the same > name as a getter method, you end up with two properties: > {code:java} > package org.example; > import java.util.Collections; > import java.util.Locale; > import org.apache.tapestry5.beaneditor.BeanModel; > import org.apache.tapestry5.beaneditor.BeanModelSourceBuilder; > import org.apache.tapestry5.internal.services.MapMessages; > import org.apache.tapestry5.services.BeanModelSource; > public class Foo { > private boolean isBar; > public boolean isBar() { > return isBar; > } > public static void main(final String[] args) { > BeanModelSource bms = new BeanModelSourceBuilder().build(); > BeanModel model = bms.createDisplayModel(Foo.class, new > MapMessages(Locale.US, Collections.emptyMap())); > System.out.println(model.getPropertyNames()); > } > } > {code} > The output is {{ [bar, isBar] }} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Created] (TAP5-2572) Duplicate properties in bean model
Jochen Kemnade created TAP5-2572: Summary: Duplicate properties in bean model Key: TAP5-2572 URL: https://issues.apache.org/jira/browse/TAP5-2572 Project: Tapestry 5 Issue Type: Bug Components: beanmodel Affects Versions: 5.4.1 Reporter: Jochen Kemnade If you create a BeanModel for a class with a private field that has the same name as a getter method, you end up with two properties: {code:java} package org.example; import java.util.Collections; import java.util.Locale; import org.apache.tapestry5.beaneditor.BeanModel; import org.apache.tapestry5.beaneditor.BeanModelSourceBuilder; import org.apache.tapestry5.internal.services.MapMessages; import org.apache.tapestry5.services.BeanModelSource; public class Foo { private boolean isBar; public boolean isBar() { return isBar; } public static void main(final String[] args) { BeanModelSource bms = new BeanModelSourceBuilder().build(); BeanModel model = bms.createDisplayModel(Foo.class, new MapMessages(Locale.US, Collections.emptyMap())); System.out.println(model.getPropertyNames()); } } {code} The output is {{ [bar, isBar] }} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (TAP5-2567) CSSURLRewriter throws RuntimeException if asset not found, instead evaluating strictCssUrlRewriting
[ https://issues.apache.org/jira/browse/TAP5-2567?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15780096#comment-15780096 ] Jochen Kemnade commented on TAP5-2567: -- Ideally, CSSURLRewriter should not try to rewrite URLs in comments. > CSSURLRewriter throws RuntimeException if asset not found, instead evaluating > strictCssUrlRewriting > --- > > Key: TAP5-2567 > URL: https://issues.apache.org/jira/browse/TAP5-2567 > Project: Tapestry 5 > Issue Type: Bug > Components: tapestry-core >Affects Versions: 5.4.1 >Reporter: Robert Hannebauer > Attachments: CSSURLRewriter-TAP5-2567.patch > > > If the css header comment part contains a pattern like 'url(file_not_found)' > the procedure AssetSource.getAsset throws an RuntimeException and prevents > further processing, especially testing for null and evaluating > StrictCSSURLRewriting. > Caused by: java.lang.RuntimeException: Unable to locate asset > 'webjars:META-INF/resources/webjars/jquery-ui/1.12.1/%22images%2Fui-icons_55_256x240.png%22' > (the file does not exist). > at > org.apache.tapestry5.internal.services.AssetSourceImpl.getLocalizedAssetFromResource(AssetSourceImpl.java:390) > at > org.apache.tapestry5.internal.services.AssetSourceImpl.getAssetInLocale(AssetSourceImpl.java:305) > at > org.apache.tapestry5.internal.services.AssetSourceImpl.getAsset(AssetSourceImpl.java:131) > at $AssetSource_25dc8e7415b4a.getAsset(Unknown Source) > at > org.apache.tapestry5.internal.services.assets.CSSURLRewriter.replaceURLs(CSSURLRewriter.java:177) > at > org.apache.tapestry5.internal.services.assets.CSSURLRewriter.access$100(CSSURLRewriter.java:46) > at > org.apache.tapestry5.internal.services.assets.CSSURLRewriter$1.perform(CSSURLRewriter.java:109) > at > org.apache.tapestry5.internal.services.assets.CSSURLRewriter$1.perform(CSSURLRewriter.java:104) > at > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.perform(OperationTrackerImpl.java:110) -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Closed] (TAP5-2564) Unwanted auto-boxing while annotation visiting
[ https://issues.apache.org/jira/browse/TAP5-2564?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade closed TAP5-2564. Resolution: Fixed Alright then, since the bug doesn't affect Tapestry itself, I'll close the issue. > Unwanted auto-boxing while annotation visiting > --- > > Key: TAP5-2564 > URL: https://issues.apache.org/jira/browse/TAP5-2564 > Project: Tapestry 5 > Issue Type: Bug > Components: tapestry-ioc >Affects Versions: 5.3.8 >Reporter: Eugene Vologzhanin > Fix For: 5.4 > > > class org.apache.tapestry5.ioc.internal.services.AnnotationMemberValueVisitor > Line #64: final Object result = method.invoke(value); > If method return boolean, result wil be *java.lang.Boolean* not *boolean*. > In this case in rutime will be Caused by: java.lang.ClassCastException: > java.lang.Boolean cannot be cast to java.lang.Enum. > I fix with: > {code} > MemberValue memberValue; > if (method.getReturnType().isPrimitive()) { > memberValue = Annotation.createMemberValue(this.constPool, > > this.classPool.get(method.getReturnType().getName())); > } else { > memberValue = Annotation.createMemberValue(this.constPool, > this.classPool.get(result.getClass().getName())); > } > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (TAP5-2564) Unwanted auto-boxing while annotation visiting
[ https://issues.apache.org/jira/browse/TAP5-2564?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade updated TAP5-2564: - Fix Version/s: 5.4 > Unwanted auto-boxing while annotation visiting > --- > > Key: TAP5-2564 > URL: https://issues.apache.org/jira/browse/TAP5-2564 > Project: Tapestry 5 > Issue Type: Bug > Components: tapestry-ioc >Affects Versions: 5.3.8 >Reporter: Eugene Vologzhanin > Fix For: 5.4 > > > class org.apache.tapestry5.ioc.internal.services.AnnotationMemberValueVisitor > Line #64: final Object result = method.invoke(value); > If method return boolean, result wil be *java.lang.Boolean* not *boolean*. > In this case in rutime will be Caused by: java.lang.ClassCastException: > java.lang.Boolean cannot be cast to java.lang.Enum. > I fix with: > {code} > MemberValue memberValue; > if (method.getReturnType().isPrimitive()) { > memberValue = Annotation.createMemberValue(this.constPool, > > this.classPool.get(method.getReturnType().getName())); > } else { > memberValue = Annotation.createMemberValue(this.constPool, > this.classPool.get(result.getClass().getName())); > } > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (TAP5-2564) Unwanted auto-boxing while annotation visiting
[ https://issues.apache.org/jira/browse/TAP5-2564?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15525514#comment-15525514 ] Jochen Kemnade commented on TAP5-2564: -- Can you upgrade to 5.4.1 then or do you need a fix for 5.3.x? > Unwanted auto-boxing while annotation visiting > --- > > Key: TAP5-2564 > URL: https://issues.apache.org/jira/browse/TAP5-2564 > Project: Tapestry 5 > Issue Type: Bug > Components: tapestry-ioc >Affects Versions: 5.3.8 >Reporter: Eugene Vologzhanin > > class org.apache.tapestry5.ioc.internal.services.AnnotationMemberValueVisitor > Line #64: final Object result = method.invoke(value); > If method return boolean, result wil be *java.lang.Boolean* not *boolean*. > In this case in rutime will be Caused by: java.lang.ClassCastException: > java.lang.Boolean cannot be cast to java.lang.Enum. > I fix with: > {code} > MemberValue memberValue; > if (method.getReturnType().isPrimitive()) { > memberValue = Annotation.createMemberValue(this.constPool, > > this.classPool.get(method.getReturnType().getName())); > } else { > memberValue = Annotation.createMemberValue(this.constPool, > this.classPool.get(result.getClass().getName())); > } > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (TAP5-2564) Unwanted auto-boxing while annotation visiting
[ https://issues.apache.org/jira/browse/TAP5-2564?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15525423#comment-15525423 ] Jochen Kemnade commented on TAP5-2564: -- Can you reproduce the issue with Tapestry 5.4.1? If so, please provide more details (e.g. some code snippets) to make it possible for us to reproduce it. > Unwanted auto-boxing while annotation visiting > --- > > Key: TAP5-2564 > URL: https://issues.apache.org/jira/browse/TAP5-2564 > Project: Tapestry 5 > Issue Type: Bug > Components: tapestry-ioc >Affects Versions: 5.3.8 >Reporter: Eugene Vologzhanin > > class org.apache.tapestry5.ioc.internal.services.AnnotationMemberValueVisitor > Line #64: final Object result = method.invoke(value); > If method return boolean, result wil be *java.lang.Boolean* not *boolean*. > In this case in rutime will be Caused by: java.lang.ClassCastException: > java.lang.Boolean cannot be cast to java.lang.Enum. > I fix with: > {code} > MemberValue memberValue; > if (method.getReturnType().isPrimitive()) { > memberValue = Annotation.createMemberValue(this.constPool, > > this.classPool.get(method.getReturnType().getName())); > } else { > memberValue = Annotation.createMemberValue(this.constPool, > this.classPool.get(result.getClass().getName())); > } > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (TAP5-2564) Unwanted auto-boxing while annotation visiting
[ https://issues.apache.org/jira/browse/TAP5-2564?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade updated TAP5-2564: - Fix Version/s: (was: 5.5.0) > Unwanted auto-boxing while annotation visiting > --- > > Key: TAP5-2564 > URL: https://issues.apache.org/jira/browse/TAP5-2564 > Project: Tapestry 5 > Issue Type: Bug > Components: tapestry-ioc >Affects Versions: 5.3.8 >Reporter: Eugene Vologzhanin > > class org.apache.tapestry5.ioc.internal.services.AnnotationMemberValueVisitor > Line #64: final Object result = method.invoke(value); > If method return boolean, result wil be *java.lang.Boolean* not *boolean*. > In this case in rutime will be Caused by: java.lang.ClassCastException: > java.lang.Boolean cannot be cast to java.lang.Enum. > I fix with: > {code} > MemberValue memberValue; > if (method.getReturnType().isPrimitive()) { > memberValue = Annotation.createMemberValue(this.constPool, > > this.classPool.get(method.getReturnType().getName())); > } else { > memberValue = Annotation.createMemberValue(this.constPool, > this.classPool.get(result.getClass().getName())); > } > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Closed] (TAP5-2565) Enum <-> String coercion is not symmetric if enum class overrides toString()
[ https://issues.apache.org/jira/browse/TAP5-2565?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade closed TAP5-2565. Resolution: Fixed Backported to 5.4.x branch > Enum <-> String coercion is not symmetric if enum class overrides toString() > > > Key: TAP5-2565 > URL: https://issues.apache.org/jira/browse/TAP5-2565 > Project: Tapestry 5 > Issue Type: Bug >Affects Versions: 5.4.1 >Reporter: Jochen Kemnade >Assignee: Jochen Kemnade > Fix For: 5.5.0, 5.4.2 > > > See TAP5-2496 and TAP5-1331. > If an enum class overrides {{toString()}}, the coercion is not symmetric > because Enum->String uses {{toString()}} and String->Enum uses {{name()}}. > This breaks {{}} when no encoder is specified. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (TAP5-2565) Enum <-> String coercion is not symmetric if enum class overrides toString()
[ https://issues.apache.org/jira/browse/TAP5-2565?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade updated TAP5-2565: - Fix Version/s: 5.4.2 > Enum <-> String coercion is not symmetric if enum class overrides toString() > > > Key: TAP5-2565 > URL: https://issues.apache.org/jira/browse/TAP5-2565 > Project: Tapestry 5 > Issue Type: Bug >Affects Versions: 5.4.1 >Reporter: Jochen Kemnade >Assignee: Jochen Kemnade > Fix For: 5.5.0, 5.4.2 > > > See TAP5-2496 and TAP5-1331. > If an enum class overrides {{toString()}}, the coercion is not symmetric > because Enum->String uses {{toString()}} and String->Enum uses {{name()}}. > This breaks {{}} when no encoder is specified. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Reopened] (TAP5-2565) Enum <-> String coercion is not symmetric if enum class overrides toString()
[ https://issues.apache.org/jira/browse/TAP5-2565?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade reopened TAP5-2565: -- Assignee: Jochen Kemnade > Enum <-> String coercion is not symmetric if enum class overrides toString() > > > Key: TAP5-2565 > URL: https://issues.apache.org/jira/browse/TAP5-2565 > Project: Tapestry 5 > Issue Type: Bug >Affects Versions: 5.4.1 >Reporter: Jochen Kemnade >Assignee: Jochen Kemnade > Fix For: 5.5.0, 5.4.2 > > > See TAP5-2496 and TAP5-1331. > If an enum class overrides {{toString()}}, the coercion is not symmetric > because Enum->String uses {{toString()}} and String->Enum uses {{name()}}. > This breaks {{}} when no encoder is specified. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Closed] (TAP5-2565) Enum <-> String coercion is not symmetric if enum class overrides toString()
[ https://issues.apache.org/jira/browse/TAP5-2565?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade closed TAP5-2565. Resolution: Fixed Fix Version/s: 5.5.0 > Enum <-> String coercion is not symmetric if enum class overrides toString() > > > Key: TAP5-2565 > URL: https://issues.apache.org/jira/browse/TAP5-2565 > Project: Tapestry 5 > Issue Type: Bug >Affects Versions: 5.4.1 >Reporter: Jochen Kemnade > Fix For: 5.5.0 > > > See TAP5-2496 and TAP5-1331. > If an enum class overrides {{toString()}}, the coercion is not symmetric > because Enum->String uses {{toString()}} and String->Enum uses {{name()}}. > This breaks {{}} when no encoder is specified. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (TAP5-2565) Enum <-> String coercion is not symmetric if enum class overrides toString()
[ https://issues.apache.org/jira/browse/TAP5-2565?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade updated TAP5-2565: - Summary: Enum <-> String coercion is not symmetric if enum class overrides toString() (was: Enum <-> String coercion is not symmetric) > Enum <-> String coercion is not symmetric if enum class overrides toString() > > > Key: TAP5-2565 > URL: https://issues.apache.org/jira/browse/TAP5-2565 > Project: Tapestry 5 > Issue Type: Bug >Affects Versions: 5.4.1 >Reporter: Jochen Kemnade > > See TAP5-2496 and TAP5-1331. > If an enum class overrides {{toString()}}, the coercion is not symmetric > because Enum->String uses {{toString()}} and String->Enum uses {{name()}}. > This breaks {{}} when no encoder is specified. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (TAP5-2565) Enum <-> String coercion is not symmetric
Jochen Kemnade created TAP5-2565: Summary: Enum <-> String coercion is not symmetric Key: TAP5-2565 URL: https://issues.apache.org/jira/browse/TAP5-2565 Project: Tapestry 5 Issue Type: Bug Affects Versions: 5.4.1 Reporter: Jochen Kemnade See TAP5-2496 and TAP5-1331. If an enum class overrides {{toString()}}, the coercion is not symmetric because Enum->String uses {{toString()}} and String->Enum uses {{name()}}. This breaks {{}} when no encoder is specified. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (TAP5-2562) remove periodic job from PeriodicExecutor by name
[ https://issues.apache.org/jira/browse/TAP5-2562?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15466945#comment-15466945 ] Jochen Kemnade commented on TAP5-2562: -- Unfortunately, the job name is not necessarily unique. We could however expose the job's ID and add {{removeJob(id)}}, but that would probably require us to break the API. > remove periodic job from PeriodicExecutor by name > - > > Key: TAP5-2562 > URL: https://issues.apache.org/jira/browse/TAP5-2562 > Project: Tapestry 5 > Issue Type: Wish > Components: tapestry-ioc >Affects Versions: 5.4.1 >Reporter: Sven Homburg >Priority: Minor > > it would nice to let us remove a periodic job from executor by the name of > the job. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (TAP5-1474) [GSoC] add out-of-the-box protection against cross-site request forgery (CSRF)
[ https://issues.apache.org/jira/browse/TAP5-1474?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade updated TAP5-1474: - Affects Version/s: 5.4.1 > [GSoC] add out-of-the-box protection against cross-site request forgery (CSRF) > -- > > Key: TAP5-1474 > URL: https://issues.apache.org/jira/browse/TAP5-1474 > Project: Tapestry 5 > Issue Type: New Feature > Components: tapestry-core >Affects Versions: 5.2, 5.4.1 >Reporter: Ulrich Stärk >Assignee: Massimo Lusetti > > There are several approaches to protect against CSRF. A student working on > this task will evaluate the possible solutions, discuss with the community > which to implement and implement and test the chosen approach. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (TAP5-1474) [GSoC] add out-of-the-box protection against cross-site request forgery (CSRF)
[ https://issues.apache.org/jira/browse/TAP5-1474?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade updated TAP5-1474: - Labels: (was: bulk-close-candidate) > [GSoC] add out-of-the-box protection against cross-site request forgery (CSRF) > -- > > Key: TAP5-1474 > URL: https://issues.apache.org/jira/browse/TAP5-1474 > Project: Tapestry 5 > Issue Type: New Feature > Components: tapestry-core >Affects Versions: 5.2, 5.4.1 >Reporter: Ulrich Stärk >Assignee: Massimo Lusetti > > There are several approaches to protect against CSRF. A student working on > this task will evaluate the possible solutions, discuss with the community > which to implement and implement and test the chosen approach. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Reopened] (TAP5-1474) [GSoC] add out-of-the-box protection against cross-site request forgery (CSRF)
[ https://issues.apache.org/jira/browse/TAP5-1474?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade reopened TAP5-1474: -- [~mlusetti], do you still intend to have a look at this? > [GSoC] add out-of-the-box protection against cross-site request forgery (CSRF) > -- > > Key: TAP5-1474 > URL: https://issues.apache.org/jira/browse/TAP5-1474 > Project: Tapestry 5 > Issue Type: New Feature > Components: tapestry-core >Affects Versions: 5.2 >Reporter: Ulrich Stärk >Assignee: Massimo Lusetti > Labels: bulk-close-candidate > > There are several approaches to protect against CSRF. A student working on > this task will evaluate the possible solutions, discuss with the community > which to implement and implement and test the chosen approach. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Reopened] (TAP5-1834) Warn user or disallow zone with randomly generated id
[ https://issues.apache.org/jira/browse/TAP5-1834?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade reopened TAP5-1834: -- > Warn user or disallow zone with randomly generated id > - > > Key: TAP5-1834 > URL: https://issues.apache.org/jira/browse/TAP5-1834 > Project: Tapestry 5 > Issue Type: Improvement > Components: tapestry-core >Affects Versions: 5.3, 5.2.5, 5.4.1 >Reporter: Denis Stepanov > > Zone with an id generated randomly(ajax request) is useless and confusing > developers, is such case there should be a warning or even an exception. > TAP5-1746 > http://www.mail-archive.com/users@tapestry.apache.org/msg57958.html -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (TAP5-1834) Warn user or disallow zone with randomly generated id
[ https://issues.apache.org/jira/browse/TAP5-1834?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade updated TAP5-1834: - Labels: (was: bulk-close-candidate) > Warn user or disallow zone with randomly generated id > - > > Key: TAP5-1834 > URL: https://issues.apache.org/jira/browse/TAP5-1834 > Project: Tapestry 5 > Issue Type: Improvement > Components: tapestry-core >Affects Versions: 5.3, 5.2.5, 5.4.1 >Reporter: Denis Stepanov > > Zone with an id generated randomly(ajax request) is useless and confusing > developers, is such case there should be a warning or even an exception. > TAP5-1746 > http://www.mail-archive.com/users@tapestry.apache.org/msg57958.html -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (TAP5-1834) Warn user or disallow zone with randomly generated id
[ https://issues.apache.org/jira/browse/TAP5-1834?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade updated TAP5-1834: - Affects Version/s: 5.4.1 > Warn user or disallow zone with randomly generated id > - > > Key: TAP5-1834 > URL: https://issues.apache.org/jira/browse/TAP5-1834 > Project: Tapestry 5 > Issue Type: Improvement > Components: tapestry-core >Affects Versions: 5.3, 5.2.5, 5.4.1 >Reporter: Denis Stepanov > > Zone with an id generated randomly(ajax request) is useless and confusing > developers, is such case there should be a warning or even an exception. > TAP5-1746 > http://www.mail-archive.com/users@tapestry.apache.org/msg57958.html -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Closed] (TAP5-1398) Create easier way to create specialized text fields for editing specific data types
[ https://issues.apache.org/jira/browse/TAP5-1398?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade closed TAP5-1398. Resolution: Incomplete We assume this is no longer relevant and therefore close it. If you still have this issue in a recent Tapestry version (such as 5.4.1 or newer), feel free to provide the necessary information and reopen. > Create easier way to create specialized text fields for editing specific data > types > --- > > Key: TAP5-1398 > URL: https://issues.apache.org/jira/browse/TAP5-1398 > Project: Tapestry 5 > Issue Type: New Feature > Components: tapestry-core >Affects Versions: 5.3 >Reporter: Howard M. Lewis Ship >Priority: Minor > Labels: bulk-close-candidate > > I'd like to see a special base class that could be extended to easily provide > server-side logic for editting a field. > My scenario is a drop down list for selecting a country which Ajax-updates a > drop down list for a region within a country and a text field for the city > name (with autocomplete). > City is represented as an entity is my schema; I'd like an easy way to > extract the city.name property as the initial value of the field when > rendered, and then have a way to turn the country/region/city name into a > City entity when the form is submitted. > I've cobbled together a mechanism using mixins, but it is a bit awkward to > use. This seems to cry out for a simple subclass of AbstractTextField, > perhaps EditField. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Closed] (TAP5-1694) Ability to override the default NullFieldStrategy
[ https://issues.apache.org/jira/browse/TAP5-1694?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade closed TAP5-1694. Resolution: Incomplete We assume this is no longer relevant and therefore close it. If you still have this issue in a recent Tapestry version (such as 5.4.1 or newer), feel free to provide the necessary information and reopen. > Ability to override the default NullFieldStrategy > - > > Key: TAP5-1694 > URL: https://issues.apache.org/jira/browse/TAP5-1694 > Project: Tapestry 5 > Issue Type: Wish > Components: tapestry-core >Affects Versions: 5.3 >Reporter: David Sundsskard > Labels: bulk-close-candidate > > My use-case is that I want empty textfields to post an empty String instead > of null. > I have implemented a nullfieldstrategy and it can be set on the textfield, > but components that create textfields on the fly (eg. Grid) use the default > NullFieldStrategy defined in AbstractTextField. > I can't contribute a new "defaults" as that conflicts. > It would be nice to be able to override the strategy defined in > AbstractTextField. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Closed] (TAP5-1943) Tapestry Spring unable to inject interface by name when testing
[ https://issues.apache.org/jira/browse/TAP5-1943?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade closed TAP5-1943. Resolution: Incomplete We assume this is no longer relevant and therefore close it. If you still have this issue in a recent Tapestry version (such as 5.4.1 or newer), feel free to provide the necessary information and reopen. > Tapestry Spring unable to inject interface by name when testing > --- > > Key: TAP5-1943 > URL: https://issues.apache.org/jira/browse/TAP5-1943 > Project: Tapestry 5 > Issue Type: Bug > Components: tapestry-spring >Affects Versions: 5.3.3 >Reporter: Matt Raible > Labels: bulk-close-candidate > > This did work in previous versions of Tapestry, but no longer. Here's the > mailing list thread: > http://tapestry.1045711.n5.nabble.com/Tapestry-5-3-3-Spring-3-1-and-Inject-td5711099.html > Here's a workaround: > http://stackoverflow.com/questions/2684171/tapestry-5-and-spring-beans-with-same-interface > This is only needed for testing, everything works fine at runtime. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Closed] (TAP5-1891) tapestry should include more streamresponse implementations
[ https://issues.apache.org/jira/browse/TAP5-1891?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade closed TAP5-1891. Resolution: Incomplete We assume this is no longer relevant and therefore close it. If you still have this issue in a recent Tapestry version (such as 5.4.1 or newer), feel free to provide the necessary information and reopen. > tapestry should include more streamresponse implementations > --- > > Key: TAP5-1891 > URL: https://issues.apache.org/jira/browse/TAP5-1891 > Project: Tapestry 5 > Issue Type: Improvement > Components: tapestry-core >Affects Versions: 5.3.2 >Reporter: Paul Stanton >Priority: Minor > Labels: bulk-close-candidate > > like TextStreamResponse, tapestry should also include other common usages of > StreamResponse such as AssetStreamResponse and FileStreamResponse etc. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Closed] (TAP5-1947) BigDecimal Validator
[ https://issues.apache.org/jira/browse/TAP5-1947?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade closed TAP5-1947. Resolution: Incomplete We assume this is no longer relevant and therefore close it. If you still have this issue in a recent Tapestry version (such as 5.4.1 or newer), feel free to provide the necessary information and reopen. > BigDecimal Validator > > > Key: TAP5-1947 > URL: https://issues.apache.org/jira/browse/TAP5-1947 > Project: Tapestry 5 > Issue Type: Improvement > Components: tapestry-core >Affects Versions: 5.3.3 >Reporter: George Christman >Priority: Minor > Labels: bulk-close-candidate > > Tapestry should offer the ability to validate BigDecimal max length's for > currency/amounts. I'm donating the following code which validates maxScale > and maxPrecision. Unfortunately, I haven't written anything to handle the > clientside validation. > //app.properties > maximum-precision=You may provide at most %d numbers for %s. > maximum-scale=You may provide at most %d decimal digits for %s. > //MaxScale > public class MaxScale extends AbstractValidator{ > public MaxScale() { > super(Integer.class, BigDecimal.class, "maximum-scale"); > } > @Override > public void validate(Field field, Integer constraintValue, > MessageFormatter formatter, BigDecimal value) > throws ValidationException > { > if (value.scale() > constraintValue) > throw new ValidationException(buildMessage(formatter, field, > constraintValue)); > } > private String buildMessage(MessageFormatter formatter, Field field, > Integer constraintValue) { > return formatter.format(constraintValue, field.getLabel()); > } > > @Override > public void render(Field field, Integer constraintValue, MessageFormatter > formatter, MarkupWriter writer, > FormSupport formSupport) { > formSupport.addValidation(field, "maxscale", buildMessage(formatter, > field, constraintValue), constraintValue); > } > } > //MaxPrecision > public class MaxPrecision extends AbstractValidator { > public MaxPrecision() { > super(Integer.class, BigDecimal.class, "maximum-precision"); > } > @Override > public void validate(Field field, Integer constraintValue, > MessageFormatter formatter, BigDecimal value) > throws ValidationException > { > if (value.precision() > constraintValue) > throw new ValidationException(buildMessage(formatter, field, > constraintValue)); > } > private String buildMessage(MessageFormatter formatter, Field field, > Integer constraintValue) { > return formatter.format(constraintValue, field.getLabel()); > } > > @Override > public void render(Field field, Integer constraintValue, MessageFormatter > formatter, MarkupWriter writer, > FormSupport formSupport) { > formSupport.addValidation(field, "maxprecision", > buildMessage(formatter, field, constraintValue), constraintValue); > } > } > //AppModule > @SuppressWarnings("rawtypes") > public static void > contributeFieldValidatorSource(MappedConfiguration > configuration) { > configuration.add("maxScale", new MaxScale()); > configuration.add("maxPrecision", new MaxPrecision()); > } -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Closed] (TAP5-1924) More complex example in Layout component documentation
[ https://issues.apache.org/jira/browse/TAP5-1924?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade closed TAP5-1924. Resolution: Incomplete We assume this is no longer relevant and therefore close it. If you still have this issue in a recent Tapestry version (such as 5.4.1 or newer), feel free to provide the necessary information and reopen. > More complex example in Layout component documentation > -- > > Key: TAP5-1924 > URL: https://issues.apache.org/jira/browse/TAP5-1924 > Project: Tapestry 5 > Issue Type: Improvement > Components: tapestry-core >Affects Versions: 5.3.3 >Reporter: Lance >Priority: Minor > Labels: bulk-close-candidate > > The documentation here http://tapestry.apache.org/layout-component.html > contains a simple static layout which is the same for each page. I would like > to see a more complex example which has a default block which can be > overridden by a page specific block using the "delegate" component and a > component parameter. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Closed] (TAP5-1834) Warn user or disallow zone with randomly generated id
[ https://issues.apache.org/jira/browse/TAP5-1834?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade closed TAP5-1834. Resolution: Incomplete We assume this is no longer relevant and therefore close it. If you still have this issue in a recent Tapestry version (such as 5.4.1 or newer), feel free to provide the necessary information and reopen. > Warn user or disallow zone with randomly generated id > - > > Key: TAP5-1834 > URL: https://issues.apache.org/jira/browse/TAP5-1834 > Project: Tapestry 5 > Issue Type: Improvement > Components: tapestry-core >Affects Versions: 5.3, 5.2.5 >Reporter: Denis Stepanov > Labels: bulk-close-candidate > > Zone with an id generated randomly(ajax request) is useless and confusing > developers, is such case there should be a warning or even an exception. > TAP5-1746 > http://www.mail-archive.com/users@tapestry.apache.org/msg57958.html -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Closed] (TAP5-1607) Context menu mixin
[ https://issues.apache.org/jira/browse/TAP5-1607?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade closed TAP5-1607. Resolution: Incomplete We assume this is no longer relevant and therefore close it. If you still have this issue in a recent Tapestry version (such as 5.4.1 or newer), feel free to provide the necessary information and reopen. > Context menu mixin > -- > > Key: TAP5-1607 > URL: https://issues.apache.org/jira/browse/TAP5-1607 > Project: Tapestry 5 > Issue Type: New Feature > Components: tapestry-core >Affects Versions: 5.3 >Reporter: Dragan Sahpaski >Priority: Minor > Labels: bulk-close-candidate > Attachments: ContextMenu patch.diff > > > Issue for the work done on Google Summer of Code 2011 > http://www.google-melange.com/gsoc/project/google/gsoc2011/dragansah/5001 > Implements a context menu mixin which is dependent on the EmbeddedMixin > concept. > A demo of the implementation of the context menu can be seen here: > http://dragansah.com/demoapp/ -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Closed] (TAP5-2032) GenericsUtils does not handle generics properly when extracting the actual type
[ https://issues.apache.org/jira/browse/TAP5-2032?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade closed TAP5-2032. Resolution: Incomplete We assume this is no longer relevant and therefore close it. If you still have this issue in a recent Tapestry version (such as 5.4.1 or newer), feel free to provide the necessary information and reopen. > GenericsUtils does not handle generics properly when extracting the actual > type > --- > > Key: TAP5-2032 > URL: https://issues.apache.org/jira/browse/TAP5-2032 > Project: Tapestry 5 > Issue Type: Bug > Components: tapestry-ioc >Affects Versions: 5.3.6 >Reporter: DI Florian Hackenberger >Assignee: Thiago H. de Paula Figueiredo > Labels: bulk-close-candidate > > We have the following interfaces / classes > public interface IPersonWithRoleAssociation extends > IEntityAssociationWithInfo { > PersonRole getRole(); > void setRole(PersonRole role); > } > public interface IEntityAssociationWithInfo{ > P getParent(); > void setParent(P parent); > C getChild(); > void setChild(C child); > } > public class Person implements Serializable { > > String name; > public String getName() { > return name; > } > } > and the page: > public class EditPersonsWithRoles { > @Property(write=false) IPersonWithRoleAssociation personWithRole; > } > and the template snippet: > > Leads to the following exception: > Exception generating conduit for expression 'personWithRole.child.name': ... > ... > Caused by: java.lang.ArrayIndexOutOfBoundsException: 1 > at > org.apache.tapestry5.ioc.internal.util.GenericsUtils.resolve(GenericsUtils.java:388) > ~[tapestry-ioc-5.3.6.jar:na] > at > org.apache.tapestry5.ioc.internal.util.GenericsUtils.resolve(GenericsUtils.java:128) > ~[tapestry-ioc-5.3.6.jar:na] > at > org.apache.tapestry5.ioc.internal.util.GenericsUtils.extractActualType(GenericsUtils.java:74) > ~[tapestry-ioc-5.3.6.jar:na] > at > org.apache.tapestry5.internal.services.PropertyConduitSourceImpl$PropertyConduitBuilder.buildGetterMethodAccessTerm(PropertyConduitSourceImpl.java:1119) > ~[tapestry-core-5.3.6.jar:na] > At GenericsUtils.java:388 we have: > resolved = ((ParameterizedType) t).getActualTypeArguments()[i]; > where: > i = 1 > resolved = C > ((ParameterizedType) t).getActualTypeArguments() = > [org.topfive.entities.IPersonWithRoleAssociation] > so the problem seems to be that the code assumes that it can find the type > information for C as the second generic parameter for > IPersonWithRoleAssociation, when in fact is is the second generic parameter > for the superclass IEntityAssociationWithInfo which > IPersonWithRoleAssociation extends and passes C explicitly (Person). > Everything is fine, if I use a marker interface for Person (IPerson) and > declare: > public interface IPersonWithRoleAssociation extends > IEntityAssociationWithInfo -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Closed] (TAP5-1645) Tapestry should validate that abstract classes only appear in the .base sub-package, not in .components, .mixins or .pages
[ https://issues.apache.org/jira/browse/TAP5-1645?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade closed TAP5-1645. Resolution: Incomplete We assume this is no longer relevant and therefore close it. If you still have this issue in a recent Tapestry version (such as 5.4.1 or newer), feel free to provide the necessary information and reopen. > Tapestry should validate that abstract classes only appear in the .base > sub-package, not in .components, .mixins or .pages > -- > > Key: TAP5-1645 > URL: https://issues.apache.org/jira/browse/TAP5-1645 > Project: Tapestry 5 > Issue Type: Improvement > Components: tapestry-core >Affects Versions: 5.3 >Reporter: Howard M. Lewis Ship > Labels: bulk-close-candidate > > Tapestry has a .base sub-package for base classes for components; although a > non-abstract class may or may not be a base class, an abstract class by > definition is. Tapestry should treat this as an error (but should include a > compatibility setting to turn off the check). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Closed] (TAP5-1897) tapestry-spring does not work with external spring contexts that include parents
[ https://issues.apache.org/jira/browse/TAP5-1897?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade closed TAP5-1897. Resolution: Incomplete We assume this is no longer relevant and therefore close it. If you still have this issue in a recent Tapestry version (such as 5.4.1 or newer), feel free to provide the necessary information and reopen. > tapestry-spring does not work with external spring contexts that include > parents > > > Key: TAP5-1897 > URL: https://issues.apache.org/jira/browse/TAP5-1897 > Project: Tapestry 5 > Issue Type: Bug > Components: tapestry-spring >Affects Versions: 5.3.2 >Reporter: Fernando Padilla >Priority: Blocker > Labels: bulk-close-candidate > > I am using the spring ContextLoaderListener to build my external spring > context, and also using the parentContextKey to bind a parent spring context > to the default one constructed from applicationContext.xml. But it looks > like there was a recent change made to SpringModule that it will ignore beans > that are defined in a parent spring context; which breaks our setup. Could > we please find a solution so we can bring in beans from parent contexts > appropriately as tapestry once used to? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Closed] (TAP5-1590) Provide missing translations for message catalogs
[ https://issues.apache.org/jira/browse/TAP5-1590?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade closed TAP5-1590. Resolution: Incomplete We assume this is no longer relevant and therefore close it. If you still have this issue in a recent Tapestry version (such as 5.4.1 or newer), feel free to provide the necessary information and reopen. > Provide missing translations for message catalogs > - > > Key: TAP5-1590 > URL: https://issues.apache.org/jira/browse/TAP5-1590 > Project: Tapestry 5 > Issue Type: Improvement > Components: tapestry-core >Affects Versions: 5.2 >Reporter: Igor Drobiazko >Assignee: Igor Drobiazko >Priority: Minor > Labels: bulk-close-candidate > Attachments: BeanEditForm_fr_FR.patch, Danish_translations.patch, > DateField_fr_FR.properties, TAP5-1590.patch > > > The translations of the message catalogs are incomplete. The following > translations are missing: > - BeanEditForm.properties (almost all locales) > http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/resources/org/apache/tapestry5/corelib/components/BeanEditForm.properties?view=markup > cancel-label > - DateField.properties (almost all locales) > http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/resources/org/apache/tapestry5/corelib/components/DateField.properties?view=markup > date-value-not-parseable > - ValidationMessages_zh_CN.properties > http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/resources/org/apache/tapestry5/internal/ValidationMessages_zh_CN.properties?view=markup > minimum-string-length > regexp > invalid-email > integer-format-exception > number-format-exception > - ValidationMessages_pt_PT.properties > http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/resources/org/apache/tapestry5/internal/ValidationMessages_pt_PT.properties?view=markup > invalid-email > integer-format-exception > number-format-exception > - ValidationMessages_ru.properties > http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/resources/org/apache/tapestry5/internal/ValidationMessages_ru.properties?view=markup > integer-format-exception > number-format-exception > - ValidationMessages_sv_SE.properties > http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/resources/org/apache/tapestry5/internal/ValidationMessages_sv_SE.properties?view=markup > integer-format-exception > number-format-exception > - ValidationMessages_hr.properties > http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/resources/org/apache/tapestry5/internal/ValidationMessages_hr.properties?view=markup > integer-format-exception > number-format-exception > - ValidationMessages_it.properties > http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/resources/org/apache/tapestry5/internal/ValidationMessages_it.properties?view=markup > integer-format-exception > number-format-exception > -ValidationMessages_da.properties > http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/resources/org/apache/tapestry5/internal/ValidationMessages_da.properties?view=markup > integer-format-exception > number-format-exception > - tapestry-kaptcha.properties (almost for all locales) > http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-kaptcha/src/main/resources/org/apache/tapestry5/kaptcha/tapestry-kaptcha.properties?view=markup > tapestry-incorrect-captcha -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Closed] (TAP5-1474) [GSoC] add out-of-the-box protection against cross-site request forgery (CSRF)
[ https://issues.apache.org/jira/browse/TAP5-1474?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade closed TAP5-1474. Resolution: Incomplete We assume this is no longer relevant and therefore close it. If you still have this issue in a recent Tapestry version (such as 5.4.1 or newer), feel free to provide the necessary information and reopen. > [GSoC] add out-of-the-box protection against cross-site request forgery (CSRF) > -- > > Key: TAP5-1474 > URL: https://issues.apache.org/jira/browse/TAP5-1474 > Project: Tapestry 5 > Issue Type: New Feature > Components: tapestry-core >Affects Versions: 5.2 >Reporter: Ulrich Stärk >Assignee: Massimo Lusetti > Labels: bulk-close-candidate > > There are several approaches to protect against CSRF. A student working on > this task will evaluate the possible solutions, discuss with the community > which to implement and implement and test the chosen approach. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Closed] (TAP5-1910) JPA and JBoss 7 datasources
[ https://issues.apache.org/jira/browse/TAP5-1910?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade closed TAP5-1910. Resolution: Incomplete We assume this is no longer relevant and therefore close it. If you still have this issue in a recent Tapestry version (such as 5.4.1 or newer), feel free to provide the necessary information and reopen. > JPA and JBoss 7 datasources > --- > > Key: TAP5-1910 > URL: https://issues.apache.org/jira/browse/TAP5-1910 > Project: Tapestry 5 > Issue Type: Bug > Components: tapestry-jpa >Affects Versions: 5.3.2 >Reporter: Miguel Figueiredo > Labels: bulk-close-candidate > > Hello, > I am using tapestry 5.3.2 with JBoss 7, and I'm having some problems > when using a JBoss datasource with JPA. > My datasource configuration: > jndi-name="java:jboss/myDatasource" pool-name="mysqlDS" enabled="true" > use-java-context="true" use-ccm="true"> >(...) > > My persistence.xml configuration: >transaction-type="RESOURCE_LOCAL"> >org.hibernate.ejb.HibernatePersistence >java:jboss/myDatasource >(...) > > Looking at the code in the PersistenceUnitInfoImpl of tapestry-jpa > 5.3.2 I found the following: >private DataSource lookupDataSource(final String name) >{ >try >{ >// TODO: Create InitialContext with environment properties? >final Context initContext = new InitialContext(); >final Context envContext = (Context) > initContext.lookup("java:comp/env"); >return (DataSource) envContext.lookup(name); >} catch (final NamingException e) >{ >throw new RuntimeException(e); >} >} > In JBoss 7 the env context should be retrieved from java:jboss, e.g.: >final Context initContext = new InitialContext(); >final Context envContext = > (Context)initContext.lookup("java:jboss"); >return (DataSource) envContext.lookup("myDatasource"); > Maybe a datasource lookup class could be configured here. > Best regards, > Miguel -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Closed] (TAP5-2016) Scala style properties unnecessarily require a field with the same name
[ https://issues.apache.org/jira/browse/TAP5-2016?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade closed TAP5-2016. Resolution: Incomplete We assume this is no longer relevant and therefore close it. If you still have this issue in a recent Tapestry version (such as 5.4.1 or newer), feel free to provide the necessary information and reopen. > Scala style properties unnecessarily require a field with the same name > --- > > Key: TAP5-2016 > URL: https://issues.apache.org/jira/browse/TAP5-2016 > Project: Tapestry 5 > Issue Type: Bug > Components: tapestry-ioc >Affects Versions: 5.3.6, 5.2.5 >Reporter: Henning Petersen > Labels: bulk-close-candidate > Attachments: TAP5-2016.patch > > > The changes introduced with TAP5-1064 allow Scala-style properties to be used > from components without the need for Java-style getters and setters. The > implementation currently requires a field of the same name as the property to > exist on the bean, which is unfortunate. > This works: > var value: String = _ > > This does not: > def value(): String = ... > def value_=(value: String) { ... } > > A class which delegates property access to a backing bean is not recognized > by PropertyAccessImpl as having any valid properties; the same is the case > when the field has a different name than the property. > Possible workarounds include a dead field in the value class to satisfy the > condition in PropertyAccessImpl, and adding Java-style getters and setters > for the property. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Closed] (TAP5-1509) PlasticField should support adding read and write advice to fields that can be used even in conjunction with a field conduit
[ https://issues.apache.org/jira/browse/TAP5-1509?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade closed TAP5-1509. Resolution: Incomplete We assume this is no longer relevant and therefore close it. If you still have this issue in a recent Tapestry version (such as 5.4.1 or newer), feel free to provide the necessary information and reopen. > PlasticField should support adding read and write advice to fields that can > be used even in conjunction with a field conduit > > > Key: TAP5-1509 > URL: https://issues.apache.org/jira/browse/TAP5-1509 > Project: Tapestry 5 > Issue Type: Improvement > Components: plastic >Affects Versions: 5.3 >Reporter: Denis Stepanov > Labels: bulk-close-candidate > > useful for implementing permission checking -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Closed] (TAP5-2398) No way to access raw ByteArrayOutputStream in TestableResponse
[ https://issues.apache.org/jira/browse/TAP5-2398?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jochen Kemnade closed TAP5-2398. Resolution: Incomplete We assume this is no longer relevant and therefore close it. If you still have this issue in a recent Tapestry version (such as 5.4.1 or newer), feel free to provide the necessary information and reopen. > No way to access raw ByteArrayOutputStream in TestableResponse > -- > > Key: TAP5-2398 > URL: https://issues.apache.org/jira/browse/TAP5-2398 > Project: Tapestry 5 > Issue Type: Improvement > Components: tapestry-test >Affects Versions: 5.3.7 >Reporter: Mohammad Sarhan >Priority: Minor > Labels: bulk-close-candidate > > Request: Give access to the underlying ByteArrayOutputStream object in > TestableResponse. > I have a few pages that return raw protocolbuffer. I contribute a > ComponentEventResultProcessor which simply takes the response.getOutput() and > writes the data to it. > So here is the real issue. When i run my test via PageTester, the only way to > get the outputstream data is by calling TestableResponse.getOutput() which > returns a string. This string is malformed. What i really want is to be able > to access the TestableResponse.output field and then call toByteArray() which > i can then feed into my parse method of the protocol buffer object. > Example: > ## This doesn't work > TestableResponse res = tester.renderResponse("api/quote"); > Message.Response messageResponse = > Message.Response.parseFrom(res.getOutput().getBytes()); > ## This would work if i had access to the underlying ByteArrayOutputStream > TestableResponse res = tester.renderResponse("api/quote"); > Message.Response messageResponse = > Message.Response.parseFrom(res.getOutputStream().toByteArray()); > protocolbuffer is tricky. I didn't hit this problem until a value got encoded > that didn't decode properly via the "toString()" with the first example. -- This message was sent by Atlassian JIRA (v6.3.4#6332)