[jira] [Commented] (TAP5-1624) Add support for overriding default TypeCoercer's coercions
[ https://issues.apache.org/jira/browse/TAP5-1624?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13789223#comment-13789223 ] Denis Stepanov commented on TAP5-1624: -- I don't need it anymore, there are some votes so maybe someone needs it. Add support for overriding default TypeCoercer's coercions -- Key: TAP5-1624 URL: https://issues.apache.org/jira/browse/TAP5-1624 Project: Tapestry 5 Issue Type: Improvement Components: tapestry-core Reporter: Denis Stepanov Right now it is imposible to implement TAP5-1446 without changes in Tapestry. It will probably require to add new service TypeCoercerOverride, TyprCoercerImpl will use it to override all tuples with equal sourceType and targetType. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (TAP5-1759) Property expressions: exception when calling static method
[ https://issues.apache.org/jira/browse/TAP5-1759?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13719422#comment-13719422 ] Denis Stepanov commented on TAP5-1759: -- java: public Object getVal() { return java.math.RoundingMode.DOWN; } tml: ${val.valueOf('test')} Property expressions: exception when calling static method -- Key: TAP5-1759 URL: https://issues.apache.org/jira/browse/TAP5-1759 Project: Tapestry 5 Issue Type: Bug Components: tapestry-core Affects Versions: 5.3 Reporter: Denis Stepanov Assignee: Howard M. Lewis Ship Exception when calling static method valueOf on the enum instance: java.lang.IncompatibleClassChangeError: Expecting non-static method com.MyEnum.valueOf(Ljava/lang/String;)Lcom/MyEnum; Static method call used to work in 5.2, this should throw an exception on page init or be a valid method call -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (TAP5-2112) Support autoloading modules from app.war/META-INF/MANIFEST.MF
[ https://issues.apache.org/jira/browse/TAP5-2112?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Denis Stepanov updated TAP5-2112: - Priority: Minor (was: Major) Issue Type: Improvement (was: Bug) Support autoloading modules from app.war/META-INF/MANIFEST.MF - Key: TAP5-2112 URL: https://issues.apache.org/jira/browse/TAP5-2112 Project: Tapestry 5 Issue Type: Improvement Components: tapestry-core Affects Versions: 5.3.6 Reporter: Denis Stepanov Priority: Minor Attachments: 0001-TAP5-2112-Autoload-should-load-MANIFEST.MF-from-the-.patch Correct manifest location for WAR is .war/META-INF/MANIFEST.MF Use-case is to support manifest generated by gradle: task customWar(type: War) { manifest { attributes 'Tapestry-Module-Classes': x.y.z.TapModule } } -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (TAP5-2112) Support autoloading modules from app.war/META-INF/MANIFEST.MF
[ https://issues.apache.org/jira/browse/TAP5-2112?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13716623#comment-13716623 ] Denis Stepanov commented on TAP5-2112: -- Main use-case is to build WARs for different environments just by including a new module. task customWar1(type: War) { manifest { attributes 'Tapestry-Module-Classes': x.y.z.CustomModule1 } } task customWar2(type: War) { manifest { attributes 'Tapestry-Module-Classes': x.y.z.CustomModule2 } } Support autoloading modules from app.war/META-INF/MANIFEST.MF - Key: TAP5-2112 URL: https://issues.apache.org/jira/browse/TAP5-2112 Project: Tapestry 5 Issue Type: Improvement Components: tapestry-core Affects Versions: 5.3.6 Reporter: Denis Stepanov Priority: Minor Attachments: 0001-TAP5-2112-Autoload-should-load-MANIFEST.MF-from-the-.patch Correct manifest location for WAR is .war/META-INF/MANIFEST.MF Use-case is to support manifest generated by gradle: task customWar(type: War) { manifest { attributes 'Tapestry-Module-Classes': x.y.z.TapModule } } -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Created] (TAP5-2112) Autoload should load MANIFEST.MF from the servlet context
Denis Stepanov created TAP5-2112: Summary: Autoload should load MANIFEST.MF from the servlet context Key: TAP5-2112 URL: https://issues.apache.org/jira/browse/TAP5-2112 Project: Tapestry 5 Issue Type: Bug Components: tapestry-core Affects Versions: 5.3.6 Reporter: Denis Stepanov Correct manifest location for WAR is .war/META-INF/MANIFEST.MF Use-case is to support manifest generated by gradle: task customWar(type: War) { manifest { attributes 'Tapestry-Module-Classes': x.y.z.TapModule } } -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (TAP5-2112) Support autoloading modules from app.war/META-INF/MANIFEST.MF
[ https://issues.apache.org/jira/browse/TAP5-2112?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Denis Stepanov updated TAP5-2112: - Summary: Support autoloading modules from app.war/META-INF/MANIFEST.MF (was: Autoload should load MANIFEST.MF from the servlet context) Support autoloading modules from app.war/META-INF/MANIFEST.MF - Key: TAP5-2112 URL: https://issues.apache.org/jira/browse/TAP5-2112 Project: Tapestry 5 Issue Type: Bug Components: tapestry-core Affects Versions: 5.3.6 Reporter: Denis Stepanov Attachments: 0001-TAP5-2112-Autoload-should-load-MANIFEST.MF-from-the-.patch Correct manifest location for WAR is .war/META-INF/MANIFEST.MF Use-case is to support manifest generated by gradle: task customWar(type: War) { manifest { attributes 'Tapestry-Module-Classes': x.y.z.TapModule } } -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (TAP5-2112) Autoload should load MANIFEST.MF from the servlet context
[ https://issues.apache.org/jira/browse/TAP5-2112?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Denis Stepanov updated TAP5-2112: - Attachment: 0001-TAP5-2112-Autoload-should-load-MANIFEST.MF-from-the-.patch Patch Autoload should load MANIFEST.MF from the servlet context - Key: TAP5-2112 URL: https://issues.apache.org/jira/browse/TAP5-2112 Project: Tapestry 5 Issue Type: Bug Components: tapestry-core Affects Versions: 5.3.6 Reporter: Denis Stepanov Attachments: 0001-TAP5-2112-Autoload-should-load-MANIFEST.MF-from-the-.patch Correct manifest location for WAR is .war/META-INF/MANIFEST.MF Use-case is to support manifest generated by gradle: task customWar(type: War) { manifest { attributes 'Tapestry-Module-Classes': x.y.z.TapModule } } -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (TAP5-2084) Form should decode its link parameters
[ https://issues.apache.org/jira/browse/TAP5-2084?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13631289#comment-13631289 ] Denis Stepanov commented on TAP5-2084: -- Thanks! Is there any way it could make into the 5.3.7? Form should decode its link parameters -- Key: TAP5-2084 URL: https://issues.apache.org/jira/browse/TAP5-2084 Project: Tapestry 5 Issue Type: Bug Affects Versions: 5.3 Reporter: Denis Stepanov Assignee: Kalle Korhonen Fix For: 5.3.7, 5.4 Attachments: 0001-TAP5-2084-Form-should-decode-its-link-parameters.patch The Form component will add all its action event link parameters as hidden inputs, but link parameter's value is encoded and hidden input field value is not, because of that parameter's value will be encoded on arrival. simple request: //add parameter to the link link.addParameter (abc, URLDecoder.encode(abcValue, UTF-8)) on event: request.getParameter(abc) is equals to abcValue form request: // add parameter to the form action link using the LinkCreationHub link.addParameter (abc, URLDecoder.encode(value, UTF-8)) on event: request.getParameter(abc) is not equals to abcValue, parameter's value is encoded It could be fixed by decoding parameter's value at line: writer.element(input, type, hidden, name, parameterName, value, value); -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (TAP5-2084) Form should decode its link parameters
[ https://issues.apache.org/jira/browse/TAP5-2084?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Denis Stepanov updated TAP5-2084: - Attachment: 0001-TAP5-2084-Form-should-decode-its-link-parameters.patch Git patch with tests Form should decode its link parameters -- Key: TAP5-2084 URL: https://issues.apache.org/jira/browse/TAP5-2084 Project: Tapestry 5 Issue Type: Bug Affects Versions: 5.3 Reporter: Denis Stepanov Attachments: 0001-TAP5-2084-Form-should-decode-its-link-parameters.patch The Form component will add all its action event link parameters as hidden inputs, but link parameter's value is encoded and hidden input field value is not, because of that parameter's value will be encoded on arrival. simple request: //add parameter to the link link.addParameter (abc, URLDecoder.encode(abcValue, UTF-8)) on event: request.getParameter(abc) is equals to abcValue form request: // add parameter to the form action link using the LinkCreationHub link.addParameter (abc, URLDecoder.encode(value, UTF-8)) on event: request.getParameter(abc) is not equals to abcValue, parameter's value is encoded It could be fixed by decoding parameter's value at line: writer.element(input, type, hidden, name, parameterName, value, value); -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Created] (TAP5-2084) Form should decode its link parameters
Denis Stepanov created TAP5-2084: Summary: Form should decode its link parameters Key: TAP5-2084 URL: https://issues.apache.org/jira/browse/TAP5-2084 Project: Tapestry 5 Issue Type: Bug Affects Versions: 5.3 Reporter: Denis Stepanov The Form component will add all its action event link parameters as hidden inputs, but link parameter's value is encoded and hidden input field value is not, because of that parameter's value will be encoded on arrival. simple request: //add parameter to the link link.addParameter (abc, URLDecoder.encode(abcValue, UTF-8)) on event: request.getParameter(abc) is equals to abcValue form request: // add parameter to the form action link using the LinkCreationHub link.addParameter (abc, URLDecoder.encode(value, UTF-8)) on event: request.getParameter(abc) is not equals to abcValue, parameter's value is encoded It could be fixed by decoding parameter's value at line: writer.element(input, type, hidden, name, parameterName, value, value); -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (TAP5-2049) Tapestry should provide locking semantics for attributes stored in the session, to prevent multiple simultaneous requests (due to Ajax) from conflicting
[ https://issues.apache.org/jira/browse/TAP5-2049?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13552018#comment-13552018 ] Denis Stepanov commented on TAP5-2049: -- Obviously, exclusive session access is a bad idea: - We have many concurrent ajax request, this change means major performance issue for us! - This will not work in a clustered environment, the clustered session class shouldn't inherit the locks functionality. - Tapestry should not do this by default, any kind of synchronization between the requests is bad idea and should be avoided at any cost. Please do not force every Tapestry user to have this, if you want it in your apps just advice the session factory and return exclusive session delegate. Tapestry should provide locking semantics for attributes stored in the session, to prevent multiple simultaneous requests (due to Ajax) from conflicting Key: TAP5-2049 URL: https://issues.apache.org/jira/browse/TAP5-2049 Project: Tapestry 5 Issue Type: Bug Components: tapestry-core Affects Versions: 5.4 Reporter: Howard M. Lewis Ship Assignee: Howard M. Lewis Ship Labels: session, thread-safety Fix For: 5.4 Currently, multiple threads may be processing requests, due to Ajax. If they all access state stored in the HttpSession, the rsult can be invalid. Tapestry should maintain a lock object inside the session, and automatically acquire a read lock the first time a request thread reads values from the session, and upgrade to a write lock when writing values to the session. The lock can be released at the end of the request. A reentrant read/write lock may be insufficient, as values inside the session are mutable; it is possible that the lock should be exclusive. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (TAP5-2049) Tapestry should provide locking semantics for attributes stored in the session, to prevent multiple simultaneous requests (due to Ajax) from conflicting
[ https://issues.apache.org/jira/browse/TAP5-2049?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13551491#comment-13551491 ] Denis Stepanov commented on TAP5-2049: -- Why would you do this? This should be handled by some service not by the session. One long running could lock the session, it could mean performance issue. Also, storing ReentrantLock in the session is not a good idea, what if it is clustered? How would you prevent multiple simultaneous requests in the cluster environment? It doesn't makes sense at all. Tapestry should provide locking semantics for attributes stored in the session, to prevent multiple simultaneous requests (due to Ajax) from conflicting Key: TAP5-2049 URL: https://issues.apache.org/jira/browse/TAP5-2049 Project: Tapestry 5 Issue Type: Bug Components: tapestry-core Affects Versions: 5.4 Reporter: Howard M. Lewis Ship Assignee: Howard M. Lewis Ship Labels: session, thread-safety Fix For: 5.4 Currently, multiple threads may be processing requests, due to Ajax. If they all access state stored in the HttpSession, the rsult can be invalid. Tapestry should maintain a lock object inside the session, and automatically acquire a read lock the first time a request thread reads values from the session, and upgrade to a write lock when writing values to the session. The lock can be released at the end of the request. A reentrant read/write lock may be insufficient, as values inside the session are mutable; it is possible that the lock should be exclusive. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Created] (TAP5-2051) Fix Plastic objects memory leaks
Denis Stepanov created TAP5-2051: Summary: Fix Plastic objects memory leaks Key: TAP5-2051 URL: https://issues.apache.org/jira/browse/TAP5-2051 Project: Tapestry 5 Issue Type: Improvement Components: tapestry-core Affects Versions: 5.3.6 Reporter: Denis Stepanov Memory leaks caused by anonymous inner class' strong reference to the parent -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (TAP5-2051) Fix Plastic objects memory leaks
[ https://issues.apache.org/jira/browse/TAP5-2051?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Denis Stepanov updated TAP5-2051: - Attachment: 0001-Fix-Plastic-objects-memory-leaks.patch After applying the patch memory drops by 50MB Fix Plastic objects memory leaks Key: TAP5-2051 URL: https://issues.apache.org/jira/browse/TAP5-2051 Project: Tapestry 5 Issue Type: Improvement Components: tapestry-core Affects Versions: 5.3.6 Reporter: Denis Stepanov Attachments: 0001-Fix-Plastic-objects-memory-leaks.patch Memory leaks caused by anonymous inner class' strong reference to the parent -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Created] (TAP5-2001) Race condition while loading javascript file via ajax
Denis Stepanov created TAP5-2001: Summary: Race condition while loading javascript file via ajax Key: TAP5-2001 URL: https://issues.apache.org/jira/browse/TAP5-2001 Project: Tapestry 5 Issue Type: Bug Components: tapestry-core Affects Versions: 5.3.5 Reporter: Denis Stepanov Two or more concurrent AJAX requests requires 'example.js' javascript to load: First request: Adds script tag with src 'example.js' ... waits script to load Second request: Finds script 'example.js', thinks its already loaded and continues to process request - causes error because script is not loaded yet -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (TAP5-2001) Race condition while loading javascript file via ajax
[ https://issues.apache.org/jira/browse/TAP5-2001?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13455756#comment-13455756 ] Denis Stepanov commented on TAP5-2001: -- Yes! Race condition while loading javascript file via ajax - Key: TAP5-2001 URL: https://issues.apache.org/jira/browse/TAP5-2001 Project: Tapestry 5 Issue Type: Bug Components: tapestry-core Affects Versions: 5.3.5 Reporter: Denis Stepanov Two or more concurrent AJAX requests requires 'example.js' javascript to load: First request: Adds script tag with src 'example.js' ... waits script to load Second request: Finds script 'example.js', thinks its already loaded and continues to process request - causes error because script is not loaded yet -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Created] (TAP5-1974) Better API for retrieving application messages by locale
Denis Stepanov created TAP5-1974: Summary: Better API for retrieving application messages by locale Key: TAP5-1974 URL: https://issues.apache.org/jira/browse/TAP5-1974 Project: Tapestry 5 Issue Type: Improvement Components: tapestry-core Affects Versions: 5.3 Reporter: Denis Stepanov ComponentMessagesSource has method getApplicationCatalog(Locale locale), but it would be better to have separate service for that without component in its name. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (TAP5-1654) Support null as JSONObject value
[ https://issues.apache.org/jira/browse/TAP5-1654?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13113546#comment-13113546 ] Denis Stepanov commented on TAP5-1654: -- Why just not to add simple if to replace null with JSONObject.NULL in the put method? Now every nullable object must have additional nullcheck and some users like me get confused. Support null as JSONObject value Key: TAP5-1654 URL: https://issues.apache.org/jira/browse/TAP5-1654 Project: Tapestry 5 Issue Type: Bug Components: tapestry-json Reporter: Denis Stepanov Assignee: Howard M. Lewis Ship List of possible values (json.org): string number object array true false null now org.apache.tapestry5.json.JSONObject.printValue throws NPE -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Created] (TAP5-1654) Support null as JSONObject value
Support null as JSONObject value Key: TAP5-1654 URL: https://issues.apache.org/jira/browse/TAP5-1654 Project: Tapestry 5 Issue Type: Bug Components: tapestry-json Reporter: Denis Stepanov List of possible values (json.org): string number object array true false null -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Created] (TAP5-1624) Add support for overriding default TypeCoercer's coercions
Add support for overriding default TypeCoercer's coercions -- Key: TAP5-1624 URL: https://issues.apache.org/jira/browse/TAP5-1624 Project: Tapestry 5 Issue Type: Improvement Components: tapestry-core Reporter: Denis Stepanov Right now it is imposible to implement TAP5-1446 without changes in Tapestry. It will probably require to add new service TypeCoercerOverride, TyprCoercerImpl will use it to override all tuples with equal sourceType and targetType. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Created] (TAP5-1620) Tml parsing expression error
Tml parsing expression error Key: TAP5-1620 URL: https://issues.apache.org/jira/browse/TAP5-1620 Project: Tapestry 5 Issue Type: Bug Components: tapestry-core Affects Versions: 5.3 Reporter: Denis Stepanov script jQuery(function(){ registerAutorefresh(${refresh}); }); /script Caused by: java.lang.RuntimeException: Error parsing property expression 'refresh});': Unable to parse input at character position 10. at org.apache.tapestry5.internal.services.PropertyConduitSourceImpl.parse(PropertyConduitSourceImpl.java:1441) ~[tapestry-core-5.3-alpha-13.jar:na] at org.apache.tapestry5.internal.services.PropertyConduitSourceImpl.build(PropertyConduitSourceImpl.java:1309) ~[tapestry-core-5.3-alpha-13.jar:na] at org.apache.tapestry5.internal.services.PropertyConduitSourceImpl.create(PropertyConduitSourceImpl.java:1274) ~[tapestry-core-5.3-alpha-13.jar:na] at $PropertyConduitSource_123d98bd5e9eaa20.create(Unknown Source) ~[na:na] at org.apache.tapestry5.internal.bindings.PropBindingFactory.newBinding(PropBindingFactory.java:49) ~[tapestry-core-5.3-alpha-13.jar:na] at $BindingFactory_123d98bd5e9eaa21.newBinding(Unknown Source) ~[na:na] at $BindingFactory_123d98bd5e9eaa18.newBinding(Unknown Source) ~[na:na] at org.apache.tapestry5.internal.services.BindingSourceImpl.newBinding(BindingSourceImpl.java:78) ~[tapestry-core-5.3-alpha-13.jar:na] ... 94 common frames omitted Caused by: java.lang.RuntimeException: Unable to parse input at character position 10 at org.apache.tapestry5.internal.antlr.BaseLexer.reportError(BaseLexer.java:50) ~[tapestry-core-5.3-alpha-13.jar:na] at org.antlr.runtime.Lexer.nextToken(Lexer.java:94) ~[antlr.jar:na] at org.antlr.runtime.CommonTokenStream.fillBuffer(CommonTokenStream.java:119) ~[antlr.jar:na] at org.antlr.runtime.CommonTokenStream.LT(CommonTokenStream.java:238) ~[antlr.jar:na] at org.apache.tapestry5.internal.antlr.PropertyExpressionParser.start(PropertyExpressionParser.java:98) ~[tapestry-core-5.3-alpha-13.jar:na] at org.apache.tapestry5.internal.services.PropertyConduitSourceImpl.parse(PropertyConduitSourceImpl.java:1437) ~[tapestry-core-5.3-alpha-13.jar:na] ... 101 common frames omitted Caused by: org.antlr.runtime.NoViableAltException: null at org.antlr.runtime.DFA.noViableAlt(DFA.java:158) ~[antlr.jar:na] at org.antlr.runtime.DFA.predict(DFA.java:116) ~[antlr.jar:na] at org.apache.tapestry5.internal.antlr.PropertyExpressionLexer.mTokens(PropertyExpressionLexer.java:1273) ~[tapestry-core-5.3-alpha-13.jar:na] at org.antlr.runtime.Lexer.nextToken(Lexer.java:84) ~[antlr.jar:na] ... 105 common frames omitted -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (TAP5-1615) Add not null check expression syntax
[ https://issues.apache.org/jira/browse/TAP5-1615?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Denis Stepanov updated TAP5-1615: - Attachment: tapestry-notnull.patch SVN patch with tests Add not null check expression syntax Key: TAP5-1615 URL: https://issues.apache.org/jira/browse/TAP5-1615 Project: Tapestry 5 Issue Type: New Feature Components: tapestry-core Reporter: Denis Stepanov Attachments: tapestry-notnull.patch New sytax will allow to check if expression result is not null value=prop? - returns true if prop is not null value=prop.a.b.c? returns true if c is not null value=prop?.a?.b?.c? returns true if c is not null value=m()? returns true if result of the method m is not null -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (TAP5-1615) Add not null check expression syntax
[ https://issues.apache.org/jira/browse/TAP5-1615?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13090230#comment-13090230 ] Denis Stepanov commented on TAP5-1615: -- There is no workaround! - null is converted to false - unknown not null object is converted to a string by calling toString metod and then string is converted to a boolean ToString method is usually implemented for debug purposes and can be slow. Use case is implementing a logic related to a case when object is a null or not. Please accept the patch. Add not null check expression syntax Key: TAP5-1615 URL: https://issues.apache.org/jira/browse/TAP5-1615 Project: Tapestry 5 Issue Type: New Feature Components: tapestry-core Reporter: Denis Stepanov Priority: Minor Attachments: tapestry-notnull.patch New sytax will allow to check if expression result is not null value=prop? - returns true if prop is not null value=prop.a.b.c? returns true if c is not null value=prop?.a?.b?.c? returns true if c is not null value=m()? returns true if result of the method m is not null -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Created] (TAP5-1602) Add Zone parameter to Checkbox component
Add Zone parameter to Checkbox component Key: TAP5-1602 URL: https://issues.apache.org/jira/browse/TAP5-1602 Project: Tapestry 5 Issue Type: New Feature Components: tapestry-core Reporter: Denis Stepanov Attachments: checkboxZonePatch.patch Sometimes it's better to use zone update rather than formfragment trigger. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (TAP5-1602) Add Zone parameter to Checkbox component
[ https://issues.apache.org/jira/browse/TAP5-1602?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Denis Stepanov updated TAP5-1602: - Attachment: checkboxZonePatch.patch SVN patch Add Zone parameter to Checkbox component Key: TAP5-1602 URL: https://issues.apache.org/jira/browse/TAP5-1602 Project: Tapestry 5 Issue Type: New Feature Components: tapestry-core Reporter: Denis Stepanov Attachments: checkboxZonePatch.patch Sometimes it's better to use zone update rather than formfragment trigger. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Resolved] (TAP5-1532) MarkupWriterImpl listeners improvement
[ https://issues.apache.org/jira/browse/TAP5-1532?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Denis Stepanov resolved TAP5-1532. -- Resolution: Duplicate Already fixed by TAP5-1581 MarkupWriterImpl listeners improvement -- Key: TAP5-1532 URL: https://issues.apache.org/jira/browse/TAP5-1532 Project: Tapestry 5 Issue Type: Improvement Components: tapestry-core Reporter: Denis Stepanov Priority: Minor Attachments: 0001-MarkupWriterImpl-improvement.patch New listeners collection is created every start/end element event, probably to prevent CME, better solution is to create new collection when modifying it -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (TAP5-1532) MarkupWriterImpl listeners improvement
[ https://issues.apache.org/jira/browse/TAP5-1532?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Denis Stepanov updated TAP5-1532: - Attachment: 0001-MarkupWriterImpl-improvement.patch MarkupWriterImpl listeners improvement -- Key: TAP5-1532 URL: https://issues.apache.org/jira/browse/TAP5-1532 Project: Tapestry 5 Issue Type: Improvement Components: tapestry-core Reporter: Denis Stepanov Priority: Minor Attachments: 0001-MarkupWriterImpl-improvement.patch New listeners collection is created every start/end element event, probably to prevent CME, better solution is to create new collection when modifying it -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Created] (TAP5-1532) MarkupWriterImpl listeners improvement
MarkupWriterImpl listeners improvement -- Key: TAP5-1532 URL: https://issues.apache.org/jira/browse/TAP5-1532 Project: Tapestry 5 Issue Type: Improvement Components: tapestry-core Reporter: Denis Stepanov Priority: Minor Attachments: 0001-MarkupWriterImpl-improvement.patch New listeners collection is created every start/end element event, probably to prevent CME, better solution is to create new collection when modifying it -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (TAP5-1532) MarkupWriterImpl listeners improvement
[ https://issues.apache.org/jira/browse/TAP5-1532?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13039689#comment-13039689 ] Denis Stepanov commented on TAP5-1532: -- Eclipse messed up imports in patch, ignore it. MarkupWriterImpl listeners improvement -- Key: TAP5-1532 URL: https://issues.apache.org/jira/browse/TAP5-1532 Project: Tapestry 5 Issue Type: Improvement Components: tapestry-core Reporter: Denis Stepanov Priority: Minor Attachments: 0001-MarkupWriterImpl-improvement.patch New listeners collection is created every start/end element event, probably to prevent CME, better solution is to create new collection when modifying it -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (TAP5-1446) Improve coercion List - SelectModel
[ https://issues.apache.org/jira/browse/TAP5-1446?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Denis Stepanov updated TAP5-1446: - Description: It should use SelectModelFactory. Labels are extracted from objects using strategy pattern. Users can contribute providers for their own objects. (was: It should use SelectModelFactory with default property label?. If there is no such property it should have current toString value. There is probably a bug in SelectModelFactoryImpl: options.add(new OptionModelImpl(encoder.toClient(label), object)); toClient should be called with object) Summary: Improve coercion List - SelectModel (was: Improve coercion Collection, Map - SelectModel) Improve coercion List - SelectModel Key: TAP5-1446 URL: https://issues.apache.org/jira/browse/TAP5-1446 Project: Tapestry 5 Issue Type: Improvement Components: tapestry-core Affects Versions: 5.2.4 Reporter: Denis Stepanov It should use SelectModelFactory. Labels are extracted from objects using strategy pattern. Users can contribute providers for their own objects. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (TAP5-1446) Improve coercion List - SelectModel
[ https://issues.apache.org/jira/browse/TAP5-1446?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Denis Stepanov updated TAP5-1446: - Attachment: TAP5-1446.patch Improve coercion List - SelectModel Key: TAP5-1446 URL: https://issues.apache.org/jira/browse/TAP5-1446 Project: Tapestry 5 Issue Type: Improvement Components: tapestry-core Affects Versions: 5.2.4 Reporter: Denis Stepanov Attachments: TAP5-1446.patch It should use SelectModelFactory. Labels are extracted from objects using strategy pattern. Users can contribute providers for their own objects. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (TAP5-1446) Improve coercion List - SelectModel
[ https://issues.apache.org/jira/browse/TAP5-1446?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13022696#comment-13022696 ] Denis Stepanov commented on TAP5-1446: -- Please see the patch Improve coercion List - SelectModel Key: TAP5-1446 URL: https://issues.apache.org/jira/browse/TAP5-1446 Project: Tapestry 5 Issue Type: Improvement Components: tapestry-core Affects Versions: 5.2.4 Reporter: Denis Stepanov Attachments: TAP5-1446.patch It should use SelectModelFactory. Labels are extracted from objects using strategy pattern. Users can contribute providers for their own objects. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Created] (TAP5-1509) TransformField should support access advice
TransformField should support access advice Key: TAP5-1509 URL: https://issues.apache.org/jira/browse/TAP5-1509 Project: Tapestry 5 Issue Type: Improvement Components: tapestry-core Reporter: Denis Stepanov useful for implementing permission checking -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Created] (TAP5-1506) Add ability to assemble pages and components at startup
Add ability to assemble pages and components at startup --- Key: TAP5-1506 URL: https://issues.apache.org/jira/browse/TAP5-1506 Project: Tapestry 5 Issue Type: New Feature Reporter: Denis Stepanov Users are experiencing slowness after application deployment. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Created] (TAP5-1507) Persist: Provide option to choose how value should be stored
Persist: Provide option to choose how value should be stored Key: TAP5-1507 URL: https://issues.apache.org/jira/browse/TAP5-1507 Project: Tapestry 5 Issue Type: Improvement Components: tapestry-core Reporter: Denis Stepanov Serialize, PrimaryKey... Hibernate module has entity persist mode, which is basically a session with different storing strategy. It makes sense to store only client value on client persist strategy rather than serializing it to the binary stream. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] Created: (TAP5-1445) Add clientId parameter to the Zone component
Add clientId parameter to the Zone component Key: TAP5-1445 URL: https://issues.apache.org/jira/browse/TAP5-1445 Project: Tapestry 5 Issue Type: Improvement Components: tapestry-core Affects Versions: 5.2.4 Reporter: Denis Stepanov Priority: Minor It will solve dynamic zone id problem, when clientId is null it will use the previous approach. Now we are forced to have a copy of the zone component with a similar solution. Also, it would be nice if a generated id is available before rendering, in a case when someone calls getClient on a zone before it have been rendered. -- This message is automatically generated by JIRA. - For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] Created: (TAP5-1446) Improve coercion Collection, Map - SelectModel
Improve coercion Collection, Map - SelectModel --- Key: TAP5-1446 URL: https://issues.apache.org/jira/browse/TAP5-1446 Project: Tapestry 5 Issue Type: Improvement Components: tapestry-core Affects Versions: 5.2.4 Reporter: Denis Stepanov It should use SelectModelFactory with default property label?. If there is no such property it should have current toString value. There is probably a bug in SelectModelFactoryImpl: options.add(new OptionModelImpl(encoder.toClient(label), object)); toClient should be called with object -- This message is automatically generated by JIRA. - For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] Reopened: (TAP5-1445) Add clientId parameter to the Zone component
[ https://issues.apache.org/jira/browse/TAP5-1445?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Denis Stepanov reopened TAP5-1445: -- yes, but you can't have a dynamic id - t:id=user_${user.id} Add clientId parameter to the Zone component Key: TAP5-1445 URL: https://issues.apache.org/jira/browse/TAP5-1445 Project: Tapestry 5 Issue Type: Improvement Components: tapestry-core Affects Versions: 5.2.4 Reporter: Denis Stepanov Assignee: Howard M. Lewis Ship Priority: Minor It will solve dynamic zone id problem, when clientId is null it will use the previous approach. Now we are forced to have a copy of the zone component with a similar solution. Also, it would be nice if a generated id is available before rendering, in a case when someone calls getClient on a zone before it have been rendered. -- This message is automatically generated by JIRA. - For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] Commented: (TAP5-1445) Add clientId parameter to the Zone component
[ https://issues.apache.org/jira/browse/TAP5-1445?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12995335#comment-12995335 ] Denis Stepanov commented on TAP5-1445: -- Guys, I know that there is a parameter id, it is also used for defining component id so it can't be dynamic like myZone_${inLoopItem.id}, you know that right? Because of that there are issues like TAP5-255 Solution: Make clientId a parameter: @Parameter(defaultPrefix = BindingConstants.LITERAL) private String clientId; and correct setup render: clientId = clientId != null ? clientId : resources.isBound(id) ? idParameter : javascriptSupport.allocateClientId(resources); Add clientId parameter to the Zone component Key: TAP5-1445 URL: https://issues.apache.org/jira/browse/TAP5-1445 Project: Tapestry 5 Issue Type: Improvement Components: tapestry-core Affects Versions: 5.2.4 Reporter: Denis Stepanov Assignee: Howard M. Lewis Ship Priority: Minor It will solve dynamic zone id problem, when clientId is null it will use the previous approach. Now we are forced to have a copy of the zone component with a similar solution. Also, it would be nice if a generated id is available before rendering, in a case when someone calls getClient on a zone before it have been rendered. -- This message is automatically generated by JIRA. - For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] Commented: (TAP5-1445) Add clientId parameter to the Zone component
[ https://issues.apache.org/jira/browse/TAP5-1445?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12995397#comment-12995397 ] Denis Stepanov commented on TAP5-1445: -- Thanks, I forgot about it Add clientId parameter to the Zone component Key: TAP5-1445 URL: https://issues.apache.org/jira/browse/TAP5-1445 Project: Tapestry 5 Issue Type: Improvement Components: tapestry-core Affects Versions: 5.2.4 Reporter: Denis Stepanov Priority: Minor It will solve dynamic zone id problem, when clientId is null it will use the previous approach. Now we are forced to have a copy of the zone component with a similar solution. Also, it would be nice if a generated id is available before rendering, in a case when someone calls getClient on a zone before it have been rendered. -- This message is automatically generated by JIRA. - For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] Commented: (TAP5-726) Grid should determine the class row type from a field when there is no BeanModel and GridDataSource
[ https://issues.apache.org/jira/browse/TAP5-726?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12788295#action_12788295 ] Denis Stepanov commented on TAP5-726: - I know, you can close it if you want, in all cases we are using our own GridSource and BeanModel Grid should determine the class row type from a field when there is no BeanModel and GridDataSource --- Key: TAP5-726 URL: https://issues.apache.org/jira/browse/TAP5-726 Project: Tapestry 5 Issue Type: Bug Components: tapestry-core Affects Versions: 5.1.0.5 Reporter: Denis Stepanov Priority: Minor CollectionGridDataSource uses first collection item to determine the class type, but in situation when collection contains different hierarchy implementation there is a ClassCastException -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.