[jira] [Commented] (TAP5-2316) Support for message catalogs for JS modules

2014-04-16 Thread Jochen Kemnade (JIRA)

[ 
https://issues.apache.org/jira/browse/TAP5-2316?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13970514#comment-13970514
 ] 

Jochen Kemnade commented on TAP5-2316:
--

I think this in not entirely invalid. I wasn't aware of the possibility to 
contribute to the {{ComponentMessagesSource}} and indeed, that would solve a 
lot of the use-cases I can think of.
However, if an application consists of different parts with different access 
restrictions, I don't want the messages that show up in one part of the 
application to be exposed to a user who isn't permitted to access that section. 
For example, I don't want regular users to see messages from the admin section.
But I think I can solve that using virtual resources if you think this isn't 
something that Tapestry should be able to do out of the box.

 Support for message catalogs for JS modules
 ---

 Key: TAP5-2316
 URL: https://issues.apache.org/jira/browse/TAP5-2316
 Project: Tapestry 5
  Issue Type: Improvement
  Components: tapestry-core
Affects Versions: 5.4
Reporter: Jochen Kemnade
  Labels: i18n, javascript

 Content that is rendered in the client from JavaScript modules is quite hard 
 to internationalize.
 Either you can manually create a messages JSON object and pass it to the 
 client via data attributes or the init function or you can add all the 
 strings to the core message catalog and require that.
 The latter is not possible for component libraries though as they do not have 
 a message catalog.
 The former is not possible for utility modules that do not have an 
 associated Java class.
 This could be solved by creating a virtual message module for every 
 JavaScript module that has a corresponding .properties file next to it.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (TAP5-2236) It should be possible to determine when there are active Ajax requests

2014-04-16 Thread Jochen Kemnade (JIRA)

[ 
https://issues.apache.org/jira/browse/TAP5-2236?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13970551#comment-13970551
 ] 

Jochen Kemnade commented on TAP5-2236:
--

This is was fixed 0ef56e79b254bc730de04586236bbe7f1ea94b62 on 2013-11-25.

 It should be possible to determine when there are active Ajax requests
 --

 Key: TAP5-2236
 URL: https://issues.apache.org/jira/browse/TAP5-2236
 Project: Tapestry 5
  Issue Type: Bug
  Components: tapestry-core
Affects Versions: 5.4
Reporter: Howard M. Lewis Ship
  Labels: testing

 Often, for testing, it is necessary to know when an Ajax request has 
 completed. This is currently accomplished via sleeps and such (in Tapestry's 
 built-in test suite).  For Ajax requests via the t5/core/dom:ajaxRequest API, 
 Tapestry can track how many Ajax requests are active, and set an attribute on 
 the body element to indicate if there are any active requests.
 The body attribute data-ajax-active will be true when there is at least 
 one Ajax request and will revert to false when all requests have completed 
 succesfully, or failed with an error or exception.
 This is similar to the data-page-initialized attribute; it is on the body 
 element to make it easier to query it using CSS.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Created] (TAP5-2319) Add a streaming API to tapestry-json

2014-04-16 Thread Jochen Kemnade (JIRA)
Jochen Kemnade created TAP5-2319:


 Summary: Add a streaming API to tapestry-json
 Key: TAP5-2319
 URL: https://issues.apache.org/jira/browse/TAP5-2319
 Project: Tapestry 5
  Issue Type: Improvement
  Components: tapestry-json
Affects Versions: 5.4
Reporter: Jochen Kemnade


tapestry-json should offer a streaming API. It should be possible to read a 
JSONObject/Array from a stream or Reader and output it to a stream or Writer.
When working with large objects, it is often not desirable to have the whole 
JSON string in memory.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (TAP5-2201) Serious issue with assets and checksums - different for same file

2014-04-16 Thread Dragan Sahpaski (JIRA)

[ 
https://issues.apache.org/jira/browse/TAP5-2201?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13970555#comment-13970555
 ] 

Dragan Sahpaski commented on TAP5-2201:
---

Thanks.

 Serious issue with assets and checksums - different for same file
 -

 Key: TAP5-2201
 URL: https://issues.apache.org/jira/browse/TAP5-2201
 Project: Tapestry 5
  Issue Type: Bug
  Components: tapestry-core
Affects Versions: 5.4
Reporter: Magnus Kvalheim
Assignee: Howard M. Lewis Ship
  Labels: 5.4.22
 Attachments: bootstrap.server2.css, bootstrap.server3.css, 
 server2.png, server3.png


 Hi everybody.
 Today we've launched a website based on 5.4. We're very exited about the 
 upcoming release(5.4) and I'll post separately about our experiences (mostly 
 great).
 Post release we've identified a potential serious issue related to assets and 
 their checksums.
 What we see is that a handful of the assets generate different hashes for the 
 same file.
 =Example: bootstrap.css=
 Server 1: 
 /asset.gz/meta/92ffb14a/tapestry5/bootstrap_3_0_0/css/bootstrap.css
 Server 2:
 /asset.gz/meta/5787e482/tapestry5/bootstrap_3_0_0/css/bootstrap.css
 Server 3:
 /asset.gz/meta/f5e7c535/tapestry5/bootstrap_3_0_0/css/bootstrap.css
 Server 3 - restart:
 /asset.gz/meta/219ee41e/tapestry5/bootstrap_3_0_0/css/bootstrap.css
 We also see the same behaviour for the non gzip version of bootstrap.css.
 It is not only for /meta/
 =JCarouselWrapper.css=
 /asset/app/f59da774/mixins/ui/JCarouselWrapper.css
 /asset/app/6ddc92ee/mixins/ui/JCarouselWrapper.css
 As you can see - we're load balanced with app served from several nodes.
 Normally I'd serve these through CloudFront on a cookieless domain (with 
 tapestry as origin), but it's not possible as load balanced assets could hit 
 'wrong' server and get the 404 instead.
 So for now they are served through website domain with sticky sessions - and 
 pray that it don't cause us problems... :)
 All are served with same web container: 
 Apache Tomcat/7.0.39
 JDK 1.7.0_11



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (TAP5-2219) XML-Parsing broken if system encoding is not UTF-8

2014-04-16 Thread Jochen Kemnade (JIRA)

[ 
https://issues.apache.org/jira/browse/TAP5-2219?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13971383#comment-13971383
 ] 

Jochen Kemnade commented on TAP5-2219:
--

This is actually the same problem as in TAP5-1741.

 XML-Parsing broken if system encoding is not UTF-8
 --

 Key: TAP5-2219
 URL: https://issues.apache.org/jira/browse/TAP5-2219
 Project: Tapestry 5
  Issue Type: Bug
  Components: tapestry-core
Affects Versions: 5.4
 Environment: Windows (probably linux too but most systems run with 
 utf-8)
Reporter: Michael Wyraz
 Attachments: XMLTokenStreamTests.java

   Original Estimate: 0.5h
  Remaining Estimate: 0.5h

 Tapestry reads tml files in XMLTokenStream.openStream(), does some doctype 
 magic and writes all the file content's into a ByteOutputStream. On T5.3 
 reading/writing was done using the system's caracter encoding. With T5.4 that 
 was changed for the reader but not for the writer. This messes up all 
 non-ascii characters if system encoding is not utf-8.
 Solution: Change
 PrintWriter writer = new PrintWriter(bos);
 To
 PrintWriter writer = new PrintWriter(new OutputStreamWriter(bos, 
 UTF8));
 in XMLTokenStream.openStream().
 TODO: Unit test for XMLTokenStream (follows soon)



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Comment Edited] (TAP5-2219) XML-Parsing broken if system encoding is not UTF-8

2014-04-16 Thread Jochen Kemnade (JIRA)

[ 
https://issues.apache.org/jira/browse/TAP5-2219?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13971383#comment-13971383
 ] 

Jochen Kemnade edited comment on TAP5-2219 at 4/16/14 1:12 PM:
---

This is actually the same problem as in TAP5-1741 and TAP5-1778.


was (Author: jkemnade):
This is actually the same problem as in TAP5-1741.

 XML-Parsing broken if system encoding is not UTF-8
 --

 Key: TAP5-2219
 URL: https://issues.apache.org/jira/browse/TAP5-2219
 Project: Tapestry 5
  Issue Type: Bug
  Components: tapestry-core
Affects Versions: 5.4
 Environment: Windows (probably linux too but most systems run with 
 utf-8)
Reporter: Michael Wyraz
 Attachments: XMLTokenStreamTests.java

   Original Estimate: 0.5h
  Remaining Estimate: 0.5h

 Tapestry reads tml files in XMLTokenStream.openStream(), does some doctype 
 magic and writes all the file content's into a ByteOutputStream. On T5.3 
 reading/writing was done using the system's caracter encoding. With T5.4 that 
 was changed for the reader but not for the writer. This messes up all 
 non-ascii characters if system encoding is not utf-8.
 Solution: Change
 PrintWriter writer = new PrintWriter(bos);
 To
 PrintWriter writer = new PrintWriter(new OutputStreamWriter(bos, 
 UTF8));
 in XMLTokenStream.openStream().
 TODO: Unit test for XMLTokenStream (follows soon)



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Closed] (TAP5-2236) It should be possible to determine when there are active Ajax requests

2014-04-16 Thread Howard M. Lewis Ship (JIRA)

 [ 
https://issues.apache.org/jira/browse/TAP5-2236?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Howard M. Lewis Ship closed TAP5-2236.
--

   Resolution: Fixed
Fix Version/s: 5.4
 Assignee: Howard M. Lewis Ship

 It should be possible to determine when there are active Ajax requests
 --

 Key: TAP5-2236
 URL: https://issues.apache.org/jira/browse/TAP5-2236
 Project: Tapestry 5
  Issue Type: Bug
  Components: tapestry-core
Affects Versions: 5.4
Reporter: Howard M. Lewis Ship
Assignee: Howard M. Lewis Ship
  Labels: testing
 Fix For: 5.4


 Often, for testing, it is necessary to know when an Ajax request has 
 completed. This is currently accomplished via sleeps and such (in Tapestry's 
 built-in test suite).  For Ajax requests via the t5/core/dom:ajaxRequest API, 
 Tapestry can track how many Ajax requests are active, and set an attribute on 
 the body element to indicate if there are any active requests.
 The body attribute data-ajax-active will be true when there is at least 
 one Ajax request and will revert to false when all requests have completed 
 succesfully, or failed with an error or exception.
 This is similar to the data-page-initialized attribute; it is on the body 
 element to make it easier to query it using CSS.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[1/3] git commit: TAP5-2201: Mark all image/* content types as non-compressable

2014-04-16 Thread hlship
Repository: tapestry-5
Updated Branches:
  refs/heads/master 24534b3dd - 401b29e73


TAP5-2201: Mark all image/* content types as non-compressable


Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/39d9aba1
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/39d9aba1
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/39d9aba1

Branch: refs/heads/master
Commit: 39d9aba1e161f3a50c0531a58256c11723123961
Parents: 24534b3
Author: Howard M. Lewis Ship hls...@apache.org
Authored: Tue Apr 15 15:21:20 2014 -0700
Committer: Howard M. Lewis Ship hls...@apache.org
Committed: Tue Apr 15 15:21:20 2014 -0700

--
 .../assets/CompressionAnalyzerImpl.java | 14 ++-
 .../apache/tapestry5/modules/AssetsModule.java  |  6 +--
 .../services/assets/CompressionAnalyzer.java| 13 ---
 .../assets/CompressionAnalyzerImplTests.groovy  | 41 
 4 files changed, 61 insertions(+), 13 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/39d9aba1/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/assets/CompressionAnalyzerImpl.java
--
diff --git 
a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/assets/CompressionAnalyzerImpl.java
 
b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/assets/CompressionAnalyzerImpl.java
index 66b1fe0..bca9404 100644
--- 
a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/assets/CompressionAnalyzerImpl.java
+++ 
b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/assets/CompressionAnalyzerImpl.java
@@ -1,5 +1,3 @@
-// Copyright 2011 The Apache Software Foundation
-//
 // Licensed under the Apache License, Version 2.0 (the License);
 // you may not use this file except in compliance with the License.
 // You may obtain a copy of the License at
@@ -37,6 +35,18 @@ public class CompressionAnalyzerImpl implements 
CompressionAnalyzer
 
 Boolean result = configuration.get(key);
 
+if (result != null) {
+return result.booleanValue();
+}
+
+// Now look for a wild card.
+
+x = contentType.indexOf('/');
+
+String wildKey = contentType.substring(0, x) + /*;
+
+result = configuration.get(wildKey);
+
 return result == null ? true : result.booleanValue();
 }
 }

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/39d9aba1/tapestry-core/src/main/java/org/apache/tapestry5/modules/AssetsModule.java
--
diff --git 
a/tapestry-core/src/main/java/org/apache/tapestry5/modules/AssetsModule.java 
b/tapestry-core/src/main/java/org/apache/tapestry5/modules/AssetsModule.java
index 90190b1..a97683d 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/modules/AssetsModule.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/modules/AssetsModule.java
@@ -1,5 +1,3 @@
-// Copyright 2011, 2012, 2013 The Apache Software Foundation
-//
 // Licensed under the Apache License, Version 2.0 (the License);
 // you may not use this file except in compliance with the License.
 // You may obtain a copy of the License at
@@ -196,9 +194,7 @@ public class AssetsModule
 @Contribute(CompressionAnalyzer.class)
 public void disableCompressionForImageTypes(MappedConfigurationString, 
Boolean configuration)
 {
-configuration.add(image/jpeg, false);
-configuration.add(image/gif, false);
-configuration.add(image/png, false);
+configuration.add(image/*, false);
 configuration.add(application/x-shockwave-flash, false);
 configuration.add(application/font-woff, false);
 configuration.add(application/x-font-ttf, false);

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/39d9aba1/tapestry-core/src/main/java/org/apache/tapestry5/services/assets/CompressionAnalyzer.java
--
diff --git 
a/tapestry-core/src/main/java/org/apache/tapestry5/services/assets/CompressionAnalyzer.java
 
b/tapestry-core/src/main/java/org/apache/tapestry5/services/assets/CompressionAnalyzer.java
index 41f54d8..4f060ff 100644
--- 
a/tapestry-core/src/main/java/org/apache/tapestry5/services/assets/CompressionAnalyzer.java
+++ 
b/tapestry-core/src/main/java/org/apache/tapestry5/services/assets/CompressionAnalyzer.java
@@ -1,5 +1,3 @@
-// Copyright 2011 The Apache Software Foundation
-//
 // Licensed under the Apache License, Version 2.0 (the License);
 // you may not use this file except in compliance with the License.
 // You may obtain a copy of the License at
@@ -19,9 +17,12 @@ import 
org.apache.tapestry5.ioc.annotations.UsesMappedConfiguration;
 /**
  * 

[2/3] git commit: TAP5-2306: Identify templates that should use strict mixin parameters

2014-04-16 Thread hlship
TAP5-2306: Identify templates that should use strict mixin parameters


Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/1f0c7464
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/1f0c7464
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/1f0c7464

Branch: refs/heads/master
Commit: 1f0c7464c80e415a19825c612ca6b8139db6ba1e
Parents: 39d9aba
Author: Howard M. Lewis Ship hls...@apache.org
Authored: Tue Apr 15 16:13:03 2014 -0700
Committer: Howard M. Lewis Ship hls...@apache.org
Committed: Tue Apr 15 16:13:03 2014 -0700

--
 .../internal/parser/ComponentTemplate.java  | 13 ++--
 .../internal/parser/ComponentTemplateImpl.java  | 31 ++--
 .../services/ComponentTemplateSourceImpl.java   |  7 +++--
 .../internal/services/SaxTemplateParser.java| 30 +--
 .../ComponentTemplateSourceImplTest.java|  4 ---
 .../services/TemplateParserImplTest.java| 10 +--
 .../internal/services/instrumented_element.tml  |  2 +-
 7 files changed, 68 insertions(+), 29 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/1f0c7464/tapestry-core/src/main/java/org/apache/tapestry5/internal/parser/ComponentTemplate.java
--
diff --git 
a/tapestry-core/src/main/java/org/apache/tapestry5/internal/parser/ComponentTemplate.java
 
b/tapestry-core/src/main/java/org/apache/tapestry5/internal/parser/ComponentTemplate.java
index a016614..704da05 100644
--- 
a/tapestry-core/src/main/java/org/apache/tapestry5/internal/parser/ComponentTemplate.java
+++ 
b/tapestry-core/src/main/java/org/apache/tapestry5/internal/parser/ComponentTemplate.java
@@ -1,5 +1,3 @@
-// Copyright 2006, 2008, 2009 The Apache Software Foundation
-//
 // Licensed under the Apache License, Version 2.0 (the License);
 // you may not use this file except in compliance with the License.
 // You may obtain a copy of the License at
@@ -38,6 +36,17 @@ public interface ComponentTemplate
 boolean isExtension();
 
 /**
+ * Indicates whether lax (the old default) or strict (the new default) 
mixin parameters are used.
+ * In strict mode, introduced with the 5.4 template DTD, mixin parameters 
must be qualified with the mixin name.
+ * In prior releases, Tapestry would attempt a search for a fit, and this 
causes ambiguities
+ * that can't be addressed.
+ *
+ * @since 5.4
+ * @return true if a 5.4 or later DTD
+ */
+boolean usesStrictMixinParameters();
+
+/**
  * Returns a list of tokens associated with an extension point, or null if 
this template neither defines the
  * extension point nor overrides it.
  *

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/1f0c7464/tapestry-core/src/main/java/org/apache/tapestry5/internal/parser/ComponentTemplateImpl.java
--
diff --git 
a/tapestry-core/src/main/java/org/apache/tapestry5/internal/parser/ComponentTemplateImpl.java
 
b/tapestry-core/src/main/java/org/apache/tapestry5/internal/parser/ComponentTemplateImpl.java
index efc4aff..318da4c 100644
--- 
a/tapestry-core/src/main/java/org/apache/tapestry5/internal/parser/ComponentTemplateImpl.java
+++ 
b/tapestry-core/src/main/java/org/apache/tapestry5/internal/parser/ComponentTemplateImpl.java
@@ -1,5 +1,3 @@
-// Copyright 2006, 2008, 2009 The Apache Software Foundation
-//
 // Licensed under the Apache License, Version 2.0 (the License);
 // you may not use this file except in compliance with the License.
 // You may obtain a copy of the License at
@@ -17,12 +15,13 @@ package org.apache.tapestry5.internal.parser;
 import org.apache.tapestry5.ioc.Location;
 import org.apache.tapestry5.ioc.Resource;
 import org.apache.tapestry5.ioc.internal.util.CollectionFactory;
-import static org.apache.tapestry5.ioc.internal.util.CollectionFactory.newList;
 import org.apache.tapestry5.ioc.internal.util.InternalUtils;
 
 import java.util.List;
 import java.util.Map;
 
+import static org.apache.tapestry5.ioc.internal.util.CollectionFactory.newList;
+
 public class ComponentTemplateImpl implements ComponentTemplate
 {
 private final Resource resource;
@@ -31,23 +30,32 @@ public class ComponentTemplateImpl implements 
ComponentTemplate
 
 private final MapString, Location componentIds;
 
-private final boolean extension;
+private final boolean extension, strictMixinParameters;
 
 private final MapString, ListTemplateToken overrides;
 
 /**
- * @param resource the resource from which the template was parsed
- * @param tokens   the tokens of the template, a copy of this list 
will be made
- * @param componentIds ids of components defined in the template
+ * @param 

[3/3] git commit: TAP5-2306: Change the logic to not create aliases for mixin parameters when the template is strict

2014-04-16 Thread hlship
TAP5-2306: Change the logic to not create aliases for mixin parameters when the 
template is strict


Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/401b29e7
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/401b29e7
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/401b29e7

Branch: refs/heads/master
Commit: 401b29e7356a150059f96f7dc18a30d7d9a86291
Parents: 1f0c746
Author: Howard M. Lewis Ship hls...@apache.org
Authored: Wed Apr 16 09:46:59 2014 -0700
Committer: Howard M. Lewis Ship hls...@apache.org
Committed: Wed Apr 16 09:46:59 2014 -0700

--
 .../internal/pageload/AssemblerContext.java |  8 ++-
 .../pageload/ComponentAssemblerImpl.java| 14 ++---
 .../EmbeddedComponentAssemblerImpl.java | 58 +---
 .../internal/pageload/PageLoaderImpl.java   |  6 +-
 .../internal/services/SaxTemplateParser.java|  2 +-
 .../tapestry5/integration/app1/MiscTests.groovy | 22 
 .../tapestry5/integration/app1/pages/Index.java |  4 +-
 .../app1/pages/MixinParameters54.java   | 20 +++
 .../app1/pages/MixinParameters54.tml| 14 +
 9 files changed, 112 insertions(+), 36 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/401b29e7/tapestry-core/src/main/java/org/apache/tapestry5/internal/pageload/AssemblerContext.java
--
diff --git 
a/tapestry-core/src/main/java/org/apache/tapestry5/internal/pageload/AssemblerContext.java
 
b/tapestry-core/src/main/java/org/apache/tapestry5/internal/pageload/AssemblerContext.java
index 1ee3f29..705e1e0 100644
--- 
a/tapestry-core/src/main/java/org/apache/tapestry5/internal/pageload/AssemblerContext.java
+++ 
b/tapestry-core/src/main/java/org/apache/tapestry5/internal/pageload/AssemblerContext.java
@@ -1,5 +1,3 @@
-// Copyright 2009 The Apache Software Foundation
-//
 // Licensed under the Apache License, Version 2.0 (the License);
 // you may not use this file except in compliance with the License.
 // You may obtain a copy of the License at
@@ -34,12 +32,16 @@ class AssemblerContext implements TokenStream
 
 final TokenStream stream;
 
+// Set based on the use of the 5.4 DTD (or better) in the template.
+final boolean strictMixinParameters;
+
 private final ListRenderCommand composable = CollectionFactory.newList();
 
-AssemblerContext(ComponentAssembler assembler, TokenStream stream)
+AssemblerContext(ComponentAssembler assembler, TokenStream stream, boolean 
strictMixinParameters)
 {
 this.assembler = assembler;
 this.stream = stream;
+this.strictMixinParameters = strictMixinParameters;
 }
 
 public boolean more()

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/401b29e7/tapestry-core/src/main/java/org/apache/tapestry5/internal/pageload/ComponentAssemblerImpl.java
--
diff --git 
a/tapestry-core/src/main/java/org/apache/tapestry5/internal/pageload/ComponentAssemblerImpl.java
 
b/tapestry-core/src/main/java/org/apache/tapestry5/internal/pageload/ComponentAssemblerImpl.java
index 5e952cd..dcfcb03 100644
--- 
a/tapestry-core/src/main/java/org/apache/tapestry5/internal/pageload/ComponentAssemblerImpl.java
+++ 
b/tapestry-core/src/main/java/org/apache/tapestry5/internal/pageload/ComponentAssemblerImpl.java
@@ -1,5 +1,3 @@
-// Copyright 2009-2014 The Apache Software Foundation
-//
 // Licensed under the Apache License, Version 2.0 (the License);
 // you may not use this file except in compliance with the License.
 // You may obtain a copy of the License at
@@ -54,13 +52,15 @@ class ComponentAssemblerImpl implements ComponentAssembler
 
 private final OperationTracker tracker;
 
+private final boolean strictMixinParameters;
+
 private MapString, String publishedParameterToEmbeddedId;
 
 private MapString, EmbeddedComponentAssembler embeddedIdToAssembler;
 
 public ComponentAssemblerImpl(ComponentAssemblerSource assemblerSource,
   ComponentInstantiatorSource 
instantiatorSource, ComponentClassResolver componentClassResolver,
-  Instantiator instantiator, 
ComponentPageElementResources resources, OperationTracker tracker)
+  Instantiator instantiator, 
ComponentPageElementResources resources, OperationTracker tracker, boolean 
strictMixinParameters)
 {
 this.assemblerSource = assemblerSource;
 this.instantiatorSource = instantiatorSource;
@@ -68,6 +68,7 @@ class ComponentAssemblerImpl implements ComponentAssembler
 this.instantiator = instantiator;
 this.resources = resources;
 this.tracker = tracker;
+

[jira] [Commented] (TAP5-2201) Serious issue with assets and checksums - different for same file

2014-04-16 Thread ASF subversion and git services (JIRA)

[ 
https://issues.apache.org/jira/browse/TAP5-2201?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13971633#comment-13971633
 ] 

ASF subversion and git services commented on TAP5-2201:
---

Commit 39d9aba1e161f3a50c0531a58256c11723123961 in tapestry-5's branch 
refs/heads/master from [~hlship]
[ https://git-wip-us.apache.org/repos/asf?p=tapestry-5.git;h=39d9aba ]

TAP5-2201: Mark all image/* content types as non-compressable


 Serious issue with assets and checksums - different for same file
 -

 Key: TAP5-2201
 URL: https://issues.apache.org/jira/browse/TAP5-2201
 Project: Tapestry 5
  Issue Type: Bug
  Components: tapestry-core
Affects Versions: 5.4
Reporter: Magnus Kvalheim
Assignee: Howard M. Lewis Ship
  Labels: 5.4.22
 Attachments: bootstrap.server2.css, bootstrap.server3.css, 
 server2.png, server3.png


 Hi everybody.
 Today we've launched a website based on 5.4. We're very exited about the 
 upcoming release(5.4) and I'll post separately about our experiences (mostly 
 great).
 Post release we've identified a potential serious issue related to assets and 
 their checksums.
 What we see is that a handful of the assets generate different hashes for the 
 same file.
 =Example: bootstrap.css=
 Server 1: 
 /asset.gz/meta/92ffb14a/tapestry5/bootstrap_3_0_0/css/bootstrap.css
 Server 2:
 /asset.gz/meta/5787e482/tapestry5/bootstrap_3_0_0/css/bootstrap.css
 Server 3:
 /asset.gz/meta/f5e7c535/tapestry5/bootstrap_3_0_0/css/bootstrap.css
 Server 3 - restart:
 /asset.gz/meta/219ee41e/tapestry5/bootstrap_3_0_0/css/bootstrap.css
 We also see the same behaviour for the non gzip version of bootstrap.css.
 It is not only for /meta/
 =JCarouselWrapper.css=
 /asset/app/f59da774/mixins/ui/JCarouselWrapper.css
 /asset/app/6ddc92ee/mixins/ui/JCarouselWrapper.css
 As you can see - we're load balanced with app served from several nodes.
 Normally I'd serve these through CloudFront on a cookieless domain (with 
 tapestry as origin), but it's not possible as load balanced assets could hit 
 'wrong' server and get the 404 instead.
 So for now they are served through website domain with sticky sessions - and 
 pray that it don't cause us problems... :)
 All are served with same web container: 
 Apache Tomcat/7.0.39
 JDK 1.7.0_11



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (TAP5-2306) Mixin parameters should be qualified (with the new 5.4 DTD)

2014-04-16 Thread ASF subversion and git services (JIRA)

[ 
https://issues.apache.org/jira/browse/TAP5-2306?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13971635#comment-13971635
 ] 

ASF subversion and git services commented on TAP5-2306:
---

Commit 401b29e7356a150059f96f7dc18a30d7d9a86291 in tapestry-5's branch 
refs/heads/master from [~hlship]
[ https://git-wip-us.apache.org/repos/asf?p=tapestry-5.git;h=401b29e ]

TAP5-2306: Change the logic to not create aliases for mixin parameters when the 
template is strict


 Mixin parameters should be qualified (with the new 5.4 DTD)
 ---

 Key: TAP5-2306
 URL: https://issues.apache.org/jira/browse/TAP5-2306
 Project: Tapestry 5
  Issue Type: Bug
  Components: tapestry-core
Affects Versions: 5.3, 5.4
Reporter: Howard M. Lewis Ship
Assignee: Howard M. Lewis Ship
  Labels: parameters, template
 Fix For: 5.4


 Tapestry's current behavior, with the 5.3 DTD (and the current 5.4 DTD) is 
 that parameters are matched against any mixin, or the component, with a 
 formal parameter.
 A problem exists when a mixin has a formal parameter and the component (or 
 other mixin) supports informal parameters; the mixin will take the 
 unqualified attribute as a parameter.
 I think a better solution would be to require that mixin parameter names be 
 fully qualified, always.
 Of course, there's more ambiguity in the Component annotations's parameters 
 parameter.  
 I would suggest that parameters be added to the Mixin annotation, and it 
 should be used inside a Mixins annotation.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (TAP5-2306) Mixin parameters should be qualified (with the new 5.4 DTD)

2014-04-16 Thread ASF subversion and git services (JIRA)

[ 
https://issues.apache.org/jira/browse/TAP5-2306?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13971634#comment-13971634
 ] 

ASF subversion and git services commented on TAP5-2306:
---

Commit 1f0c7464c80e415a19825c612ca6b8139db6ba1e in tapestry-5's branch 
refs/heads/master from [~hlship]
[ https://git-wip-us.apache.org/repos/asf?p=tapestry-5.git;h=1f0c746 ]

TAP5-2306: Identify templates that should use strict mixin parameters


 Mixin parameters should be qualified (with the new 5.4 DTD)
 ---

 Key: TAP5-2306
 URL: https://issues.apache.org/jira/browse/TAP5-2306
 Project: Tapestry 5
  Issue Type: Bug
  Components: tapestry-core
Affects Versions: 5.3, 5.4
Reporter: Howard M. Lewis Ship
Assignee: Howard M. Lewis Ship
  Labels: parameters, template
 Fix For: 5.4


 Tapestry's current behavior, with the 5.3 DTD (and the current 5.4 DTD) is 
 that parameters are matched against any mixin, or the component, with a 
 formal parameter.
 A problem exists when a mixin has a formal parameter and the component (or 
 other mixin) supports informal parameters; the mixin will take the 
 unqualified attribute as a parameter.
 I think a better solution would be to require that mixin parameter names be 
 fully qualified, always.
 Of course, there's more ambiguity in the Component annotations's parameters 
 parameter.  
 I would suggest that parameters be added to the Mixin annotation, and it 
 should be used inside a Mixins annotation.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Closed] (TAP5-2306) Mixin parameters should be qualified (with the new 5.4 DTD)

2014-04-16 Thread Howard M. Lewis Ship (JIRA)

 [ 
https://issues.apache.org/jira/browse/TAP5-2306?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Howard M. Lewis Ship closed TAP5-2306.
--

   Resolution: Fixed
Fix Version/s: 5.4

 Mixin parameters should be qualified (with the new 5.4 DTD)
 ---

 Key: TAP5-2306
 URL: https://issues.apache.org/jira/browse/TAP5-2306
 Project: Tapestry 5
  Issue Type: Bug
  Components: tapestry-core
Affects Versions: 5.3, 5.4
Reporter: Howard M. Lewis Ship
Assignee: Howard M. Lewis Ship
  Labels: parameters, template
 Fix For: 5.4


 Tapestry's current behavior, with the 5.3 DTD (and the current 5.4 DTD) is 
 that parameters are matched against any mixin, or the component, with a 
 formal parameter.
 A problem exists when a mixin has a formal parameter and the component (or 
 other mixin) supports informal parameters; the mixin will take the 
 unqualified attribute as a parameter.
 I think a better solution would be to require that mixin parameter names be 
 fully qualified, always.
 Of course, there's more ambiguity in the Component annotations's parameters 
 parameter.  
 I would suggest that parameters be added to the Mixin annotation, and it 
 should be used inside a Mixins annotation.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Comment Edited] (TAP5-2214) Make tapestry5 java8 compatible

2014-04-16 Thread Jigar Joshi (JIRA)

[ 
https://issues.apache.org/jira/browse/TAP5-2214?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13971688#comment-13971688
 ] 

Jigar Joshi edited comment on TAP5-2214 at 4/16/14 5:23 PM:


Any tentative date around when this would be available to 5.4 release ?

Thanks


was (Author: jigarjm):
Any tentative dates around when this would be available to 5.4 release ?

Thanks

 Make tapestry5 java8 compatible
 ---

 Key: TAP5-2214
 URL: https://issues.apache.org/jira/browse/TAP5-2214
 Project: Tapestry 5
  Issue Type: Improvement
  Components: plastic
Affects Versions: 5.4
Reporter: Joachim Van der Auwera
Assignee: Kalle Korhonen
 Attachments: 0001-use-asm-5.0_BETA-for-java8.patch, 
 0002-TAP5-2214-use-ASM-5.0_BETA-for-java8-compatibility.patch, 
 plastic-5.3.7-mint-asm5-java8.jar


 As it stands Tapestry does not work on java8. This seems to be caused by ASM. 
 Updating the enclosed asm to 5.0_Bet seems to do the trick.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (TAP5-2214) Make tapestry5 java8 compatible

2014-04-16 Thread Jigar Joshi (JIRA)

[ 
https://issues.apache.org/jira/browse/TAP5-2214?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13971688#comment-13971688
 ] 

Jigar Joshi commented on TAP5-2214:
---

Any tentative dates around when this would be available to 5.4 release ?

Thanks

 Make tapestry5 java8 compatible
 ---

 Key: TAP5-2214
 URL: https://issues.apache.org/jira/browse/TAP5-2214
 Project: Tapestry 5
  Issue Type: Improvement
  Components: plastic
Affects Versions: 5.4
Reporter: Joachim Van der Auwera
Assignee: Kalle Korhonen
 Attachments: 0001-use-asm-5.0_BETA-for-java8.patch, 
 0002-TAP5-2214-use-ASM-5.0_BETA-for-java8-compatibility.patch, 
 plastic-5.3.7-mint-asm5-java8.jar


 As it stands Tapestry does not work on java8. This seems to be caused by ASM. 
 Updating the enclosed asm to 5.0_Bet seems to do the trick.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Closed] (TAP5-2214) Make tapestry5 java8 compatible

2014-04-16 Thread Howard M. Lewis Ship (JIRA)

 [ 
https://issues.apache.org/jira/browse/TAP5-2214?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Howard M. Lewis Ship closed TAP5-2214.
--


 Make tapestry5 java8 compatible
 ---

 Key: TAP5-2214
 URL: https://issues.apache.org/jira/browse/TAP5-2214
 Project: Tapestry 5
  Issue Type: Improvement
  Components: plastic
Affects Versions: 5.4
Reporter: Joachim Van der Auwera
Assignee: Kalle Korhonen
 Attachments: 0001-use-asm-5.0_BETA-for-java8.patch, 
 0002-TAP5-2214-use-ASM-5.0_BETA-for-java8-compatibility.patch, 
 plastic-5.3.7-mint-asm5-java8.jar


 As it stands Tapestry does not work on java8. This seems to be caused by ASM. 
 Updating the enclosed asm to 5.0_Bet seems to do the trick.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (TAP5-2214) Make tapestry5 java8 compatible

2014-04-16 Thread Howard M. Lewis Ship (JIRA)

[ 
https://issues.apache.org/jira/browse/TAP5-2214?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13971755#comment-13971755
 ] 

Howard M. Lewis Ship commented on TAP5-2214:


It should be present in 5.4-beta-4, a preview release.

 Make tapestry5 java8 compatible
 ---

 Key: TAP5-2214
 URL: https://issues.apache.org/jira/browse/TAP5-2214
 Project: Tapestry 5
  Issue Type: Improvement
  Components: plastic
Affects Versions: 5.4
Reporter: Joachim Van der Auwera
Assignee: Kalle Korhonen
 Attachments: 0001-use-asm-5.0_BETA-for-java8.patch, 
 0002-TAP5-2214-use-ASM-5.0_BETA-for-java8-compatibility.patch, 
 plastic-5.3.7-mint-asm5-java8.jar


 As it stands Tapestry does not work on java8. This seems to be caused by ASM. 
 Updating the enclosed asm to 5.0_Bet seems to do the trick.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Created] (TAP5-2321) Tapestry 5.3.7 does not run with Java 8

2014-04-16 Thread Lenny Primak (JIRA)
Lenny Primak created TAP5-2321:
--

 Summary: Tapestry 5.3.7 does not run with Java 8
 Key: TAP5-2321
 URL: https://issues.apache.org/jira/browse/TAP5-2321
 Project: Tapestry 5
  Issue Type: Bug
  Components: plastic
Affects Versions: 5.3.7
Reporter: Lenny Primak
Priority: Critical


Tapestry 5.3.7 does not run on Java 8 due to ASM issues.
The same fix applied to Tapestry 5.4 should be applied to Tapestry 5.3
and 5.3.8 should be release.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Created] (TAP5-2320) Tapestry 5.3.7 does not run with Java 8

2014-04-16 Thread Lenny Primak (JIRA)
Lenny Primak created TAP5-2320:
--

 Summary: Tapestry 5.3.7 does not run with Java 8
 Key: TAP5-2320
 URL: https://issues.apache.org/jira/browse/TAP5-2320
 Project: Tapestry 5
  Issue Type: Bug
  Components: plastic
Affects Versions: 5.3.7
Reporter: Lenny Primak
Priority: Critical


Tapestry 5.3.7 does not run on Java 8 due to ASM issues.
The same fix applied to Tapestry 5.4 should be applied to Tapestry 5.3
and 5.3.8 should be release.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (TAP5-2321) Tapestry 5.3.7 does not run with Java 8

2014-04-16 Thread Lenny Primak (JIRA)

[ 
https://issues.apache.org/jira/browse/TAP5-2321?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13971760#comment-13971760
 ] 

Lenny Primak commented on TAP5-2321:


Related Ticket: 
https://issues.apache.org/jira/browse/TAP5-2214

 Tapestry 5.3.7 does not run with Java 8
 ---

 Key: TAP5-2321
 URL: https://issues.apache.org/jira/browse/TAP5-2321
 Project: Tapestry 5
  Issue Type: Bug
  Components: plastic
Affects Versions: 5.3.7
Reporter: Lenny Primak
Priority: Critical

 Tapestry 5.3.7 does not run on Java 8 due to ASM issues.
 The same fix applied to Tapestry 5.4 should be applied to Tapestry 5.3
 and 5.3.8 should be release.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (TAP5-2214) Make tapestry5 java8 compatible

2014-04-16 Thread Jigar Joshi (JIRA)

[ 
https://issues.apache.org/jira/browse/TAP5-2214?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13971761#comment-13971761
 ] 

Jigar Joshi commented on TAP5-2214:
---

Thanks!  [~hlship],  I read here as well: 
http://java.dzone.com/articles/closing-tapestry-54

any tentative date for {{5.4-release}} ?

 Make tapestry5 java8 compatible
 ---

 Key: TAP5-2214
 URL: https://issues.apache.org/jira/browse/TAP5-2214
 Project: Tapestry 5
  Issue Type: Improvement
  Components: plastic
Affects Versions: 5.4
Reporter: Joachim Van der Auwera
Assignee: Kalle Korhonen
 Attachments: 0001-use-asm-5.0_BETA-for-java8.patch, 
 0002-TAP5-2214-use-ASM-5.0_BETA-for-java8-compatibility.patch, 
 plastic-5.3.7-mint-asm5-java8.jar


 As it stands Tapestry does not work on java8. This seems to be caused by ASM. 
 Updating the enclosed asm to 5.0_Bet seems to do the trick.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Resolved] (TAP5-2321) Tapestry 5.3.7 does not run with Java 8

2014-04-16 Thread Kalle Korhonen (JIRA)

 [ 
https://issues.apache.org/jira/browse/TAP5-2321?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kalle Korhonen resolved TAP5-2321.
--

Resolution: Duplicate
  Assignee: Kalle Korhonen

TAP5-2214 Was merged to 5.3 branch:
commit a0ac605dbd89f543b0396d747f5909e1ba38205b
Author: kaosko kao...@apache.org
Date:   Tue Mar 25 11:29:43 2014 -0700

FIXED - TAP5-2214: Make tapestry5 java8 compatible
- update ASM source to 5.0.1, should be jdk 1.5 compatible, see ASM bug
317132 ASM 5.0 do not supported JDK 1.5?

 Tapestry 5.3.7 does not run with Java 8
 ---

 Key: TAP5-2321
 URL: https://issues.apache.org/jira/browse/TAP5-2321
 Project: Tapestry 5
  Issue Type: Bug
  Components: plastic
Affects Versions: 5.3.7
Reporter: Lenny Primak
Assignee: Kalle Korhonen
Priority: Critical

 Tapestry 5.3.7 does not run on Java 8 due to ASM issues.
 The same fix applied to Tapestry 5.4 should be applied to Tapestry 5.3
 and 5.3.8 should be release.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Closed] (TAP5-2321) Tapestry 5.3.7 does not run with Java 8

2014-04-16 Thread Kalle Korhonen (JIRA)

 [ 
https://issues.apache.org/jira/browse/TAP5-2321?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kalle Korhonen closed TAP5-2321.



 Tapestry 5.3.7 does not run with Java 8
 ---

 Key: TAP5-2321
 URL: https://issues.apache.org/jira/browse/TAP5-2321
 Project: Tapestry 5
  Issue Type: Bug
  Components: plastic
Affects Versions: 5.3.7
Reporter: Lenny Primak
Assignee: Kalle Korhonen
Priority: Critical

 Tapestry 5.3.7 does not run on Java 8 due to ASM issues.
 The same fix applied to Tapestry 5.4 should be applied to Tapestry 5.3
 and 5.3.8 should be release.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (TAP5-375) Provide some way to bind services without explicit binder.bind() calls or builder methods

2014-04-16 Thread Basile Chandesris (JIRA)

[ 
https://issues.apache.org/jira/browse/TAP5-375?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13971888#comment-13971888
 ] 

Basile Chandesris commented on TAP5-375:


It seems already available via a module: 
https://github.com/anjlab/anjlab-tapestry-commons/tree/master/anjlab-tapestry-commons

 Provide some way to bind services without explicit binder.bind() calls or 
 builder methods
 -

 Key: TAP5-375
 URL: https://issues.apache.org/jira/browse/TAP5-375
 Project: Tapestry 5
  Issue Type: New Feature
Affects Versions: 5.0.16
Reporter: Thiago H. de Paula Figueiredo
Priority: Minor
  Labels: tapestry5-review-for-closing

 Full discussion at 
 http://www.nabble.com/Tapestry-IoC%3A-binding-service-without-code%2C-just-convention-over-configuration-td20585891.html.
 I have been wondering about some ways to write even less configuration with 
 Tapestry-IoC and yet more convention over configuration.
  
 At first we had:
  
 public static void bind(ServiceBinder binder) {
   binder.bind(Service.class, ServiceImplementation.class);
 }
  
 Then, if ServiceImplementation is in the same package, we can write:
  
 public static void bind(ServiceBinder binder) {
   binder.bind(Service.class);
 }
  
 I'm thinking of not even have that binder.bind() call, automatically binding 
 services located in packages defined by some convention. How could I 
 implement that? Can we add services to a Registry or use ServiceBinder just 
 like we can use add objects to a service distributed configuration? I spent 
 some time looking at the Tapestry sources, but I couldn't find an answer.
  
 Another related funcionality I was thinking was to automatically provide some 
 well-know service implementations when no one was explicitly providaded. 
 Example: suppose we have the convention that every entity class must a 
 corresponding controller class. Then I want to provide a default controller 
 implementation for it if none is provided, because some components and pages 
 expect one controller instance for each entity class. How could I do that?
  
 My goal is to to have non-trivial zero configuration (or almost zero 
 configuration) applications in Tapestry, provided that they follow the 
 conventions.
 Em Wed, 19 Nov 2008 15:31:16 -0300, Howard Lewis Ship hlship@...   
 escreveu: 
  Interesting idea.  You could probably put something together around 
  ClassNameLocator, i.e., a wrapper that given package names, find 
  interfaces inside those packages that have matching Impl classes. i.e. 
  
  public static void bind(ServiceBinder binder) 
  { 
new AutoServiceBinder(my.package.root).bind(binder); 
  } 
 How can I get a ClassNameLocator instance in bind(ServiceBinder binder)? 
 Trying to inject through public static void bind(ServiceBinder binder,   
 ClassNameLocator classNameLocator) does not work (method is never   
 invoked). It must be static, so I cannot use a constructor in my module   
 class. 
 And what about the creation of default implementation for unbound services?



--
This message was sent by Atlassian JIRA
(v6.2#6252)