[jira] [Updated] (TAP5-2453) Generic List not fully supported

2017-11-27 Thread Jochen Kemnade (JIRA)

 [ 
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

2017-11-27 Thread Jochen Kemnade (JIRA)

 [ 
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

2017-11-27 Thread Jochen Kemnade (JIRA)
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

2017-11-06 Thread Jochen Kemnade (JIRA)

 [ 
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

2017-11-06 Thread Jochen Kemnade (JIRA)

 [ 
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

2017-11-03 Thread Jochen Kemnade (JIRA)

[ 
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

2017-11-03 Thread Jochen Kemnade (JIRA)

[ 
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

2017-11-03 Thread Jochen Kemnade (JIRA)

[ 
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

2017-11-03 Thread Jochen Kemnade (JIRA)

 [ 
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

2017-10-19 Thread Jochen Kemnade (JIRA)

 [ 
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

2017-10-19 Thread Jochen Kemnade (JIRA)

 [ 
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

2017-10-19 Thread Jochen Kemnade (JIRA)

 [ 
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

2017-10-19 Thread Jochen Kemnade (JIRA)

 [ 
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

2017-10-18 Thread Jochen Kemnade (JIRA)

[ 
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

2017-10-18 Thread Jochen Kemnade (JIRA)

 [ 
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

2017-10-18 Thread Jochen Kemnade (JIRA)

 [ 
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)

2017-10-18 Thread Jochen Kemnade (JIRA)

 [ 
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

2017-10-18 Thread Jochen Kemnade (JIRA)

 [ 
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

2017-10-18 Thread Jochen Kemnade (JIRA)

[ 
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

2017-10-13 Thread Jochen Kemnade (JIRA)

 [ 
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

2017-10-13 Thread Jochen Kemnade (JIRA)

 [ 
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

2017-10-06 Thread Jochen Kemnade (JIRA)

[ 
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

2017-10-06 Thread Jochen Kemnade (JIRA)
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

2017-10-06 Thread Jochen Kemnade (JIRA)

 [ 
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

2017-04-21 Thread Jochen Kemnade (JIRA)

[ 
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

2017-04-21 Thread Jochen Kemnade (JIRA)

[ 
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

2017-04-20 Thread Jochen Kemnade (JIRA)

[ 
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

2017-04-20 Thread Jochen Kemnade (JIRA)

 [ 
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...)

2017-04-19 Thread Jochen Kemnade (JIRA)

 [ 
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...)

2017-04-19 Thread Jochen Kemnade (JIRA)

 [ 
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...)

2017-04-19 Thread Jochen Kemnade (JIRA)
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

2017-03-31 Thread Jochen Kemnade (JIRA)

[ 
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

2017-03-31 Thread Jochen Kemnade (JIRA)

[ 
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") 
> MappedConfiguration configuration) {
>   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

2017-03-31 Thread Jochen Kemnade (JIRA)

 [ 
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") 
> MappedConfiguration configuration) {
>   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

2017-03-31 Thread Jochen Kemnade (JIRA)

 [ 
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

2017-03-30 Thread Jochen Kemnade (JIRA)

[ 
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

2017-03-29 Thread Jochen Kemnade (JIRA)

[ 
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

2017-03-29 Thread Jochen Kemnade (JIRA)

[ 
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

2017-03-29 Thread Jochen Kemnade (JIRA)

 [ 
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

2017-03-29 Thread Jochen Kemnade (JIRA)

[ 
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

2017-03-29 Thread Jochen Kemnade (JIRA)

 [ 
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

2017-03-29 Thread Jochen Kemnade (JIRA)

 [ 
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

2017-03-29 Thread Jochen Kemnade (JIRA)

[ 
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

2017-03-20 Thread Jochen Kemnade (JIRA)

 [ 
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

2017-03-09 Thread Jochen Kemnade (JIRA)

 [ 
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

2017-03-09 Thread Jochen Kemnade (JIRA)

[ 
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

2017-03-09 Thread Jochen Kemnade (JIRA)

[ 
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

2017-03-08 Thread Jochen Kemnade (JIRA)

 [ 
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

2017-03-08 Thread Jochen Kemnade (JIRA)

[ 
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

2017-03-07 Thread Jochen Kemnade (JIRA)

[ 
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

2017-03-07 Thread Jochen Kemnade (JIRA)

[ 
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

2017-03-07 Thread Jochen Kemnade (JIRA)

 [ 
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

2017-03-07 Thread Jochen Kemnade (JIRA)

[ 
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

2017-03-06 Thread Jochen Kemnade (JIRA)

[ 
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

2017-03-06 Thread Jochen Kemnade (JIRA)

[ 
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

2017-03-06 Thread Jochen Kemnade (JIRA)

[ 
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

2017-03-03 Thread Jochen Kemnade (JIRA)

[ 
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

2017-03-03 Thread Jochen Kemnade (JIRA)

[ 
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

2017-03-02 Thread Jochen Kemnade (JIRA)

 [ 
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 MappedConfiguration configuration) {
  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

2017-03-02 Thread Jochen Kemnade (JIRA)

 [ 
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

2017-03-02 Thread Jochen Kemnade (JIRA)

[ 
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

2017-03-02 Thread Jochen Kemnade (JIRA)

[ 
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

2017-02-14 Thread Jochen Kemnade (JIRA)

[ 
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

2017-02-14 Thread Jochen Kemnade (JIRA)
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

2016-12-27 Thread Jochen Kemnade (JIRA)

[ 
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

2016-09-27 Thread Jochen Kemnade (JIRA)

 [ 
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

2016-09-27 Thread Jochen Kemnade (JIRA)

 [ 
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

2016-09-27 Thread Jochen Kemnade (JIRA)

[ 
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

2016-09-27 Thread Jochen Kemnade (JIRA)

[ 
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

2016-09-27 Thread Jochen Kemnade (JIRA)

 [ 
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()

2016-09-22 Thread Jochen Kemnade (JIRA)

 [ 
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()

2016-09-22 Thread Jochen Kemnade (JIRA)

 [ 
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()

2016-09-22 Thread Jochen Kemnade (JIRA)

 [ 
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()

2016-09-22 Thread Jochen Kemnade (JIRA)

 [ 
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()

2016-09-22 Thread Jochen Kemnade (JIRA)

 [ 
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

2016-09-22 Thread Jochen Kemnade (JIRA)
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

2016-09-06 Thread Jochen Kemnade (JIRA)

[ 
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)

2016-08-23 Thread Jochen Kemnade (JIRA)

 [ 
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)

2016-08-23 Thread Jochen Kemnade (JIRA)

 [ 
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)

2016-08-23 Thread Jochen Kemnade (JIRA)

 [ 
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

2016-08-23 Thread Jochen Kemnade (JIRA)

 [ 
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

2016-08-23 Thread Jochen Kemnade (JIRA)

 [ 
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

2016-08-23 Thread Jochen Kemnade (JIRA)

 [ 
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

2016-08-22 Thread Jochen Kemnade (JIRA)

 [ 
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

2016-08-22 Thread Jochen Kemnade (JIRA)

 [ 
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

2016-08-22 Thread Jochen Kemnade (JIRA)

 [ 
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

2016-08-22 Thread Jochen Kemnade (JIRA)

 [ 
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

2016-08-22 Thread Jochen Kemnade (JIRA)

 [ 
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

2016-08-22 Thread Jochen Kemnade (JIRA)

 [ 
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

2016-08-22 Thread Jochen Kemnade (JIRA)

 [ 
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

2016-08-22 Thread Jochen Kemnade (JIRA)

 [ 
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

2016-08-22 Thread Jochen Kemnade (JIRA)

 [ 
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

2016-08-22 Thread Jochen Kemnade (JIRA)

 [ 
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

2016-08-22 Thread Jochen Kemnade (JIRA)

 [ 
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

2016-08-22 Thread Jochen Kemnade (JIRA)

 [ 
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)

2016-08-22 Thread Jochen Kemnade (JIRA)

 [ 
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

2016-08-22 Thread Jochen Kemnade (JIRA)

 [ 
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

2016-08-22 Thread Jochen Kemnade (JIRA)

 [ 
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

2016-08-22 Thread Jochen Kemnade (JIRA)

 [ 
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

2016-08-22 Thread Jochen Kemnade (JIRA)

 [ 
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)


  1   2   3   4   5   6   7   8   9   10   >