svn commit: r1783739 - in /velocity/engine/trunk/velocity-engine-core/src: main/java/org/apache/velocity/runtime/ main/java/org/apache/velocity/runtime/parser/node/ main/java/org/apache/velocity/util/

2017-02-20 Thread cbrisson
Author: cbrisson
Date: Mon Feb 20 10:58:58 2017
New Revision: 1783739

URL: http://svn.apache.org/viewvc?rev=1783739=rev
Log:
[engine] implements new strategy for reference boolean evaluation

1) return false for a null object

2) return its value for a Boolean object, or the result of the getAsBoolean() 
method if it exists.

3) If directive.if.emptycheck = false (true by default), stop here and return 
true.

4) check for emptiness:
  - return whether an array is empty.
  - return whether isEmpty() is false (covers String and all Collection 
classes).
  - return whether length() is zero (covers CharSequence classes other than 
String).
  - returns whether size() is zero.
  - return whether a Number *strictly* equals zero.

5) check for emptiness after explicit conversion methods:
  - return whether the result of getAsString() is empty (and false for a null 
result) if it exists.
  - return whether the result of getAsNumber() *strictly* equals zero (and 
false for a null result) if it exists. 




Modified:

velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/RuntimeConstants.java

velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTReference.java

velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/util/DuckType.java

velocity/engine/trunk/velocity-engine-core/src/main/resources/org/apache/velocity/runtime/defaults/velocity.properties

velocity/engine/trunk/velocity-engine-core/src/test/java/org/apache/velocity/test/IfEmptyTestCase.java

Modified: 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/RuntimeConstants.java
URL: 
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/RuntimeConstants.java?rev=1783739=1783738=1783739=diff
==
--- 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/RuntimeConstants.java
 (original)
+++ 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/RuntimeConstants.java
 Mon Feb 20 10:58:58 2017
@@ -76,6 +76,12 @@ public interface RuntimeConstants
 String SKIP_INVALID_ITERATOR = "directive.foreach.skip.invalid";
 
 /**
+ * An empty object (string, collection) or zero number is false.
+ * @since 2.0
+ */
+String CHECK_EMPTY_OBJECTS = "directive.if.emptycheck";
+
+/**
  * Starting tag for error messages triggered by passing a parameter not 
allowed in the #include directive. Only string literals,
  * and references are allowed.
  */
@@ -98,7 +104,7 @@ public interface RuntimeConstants
  * @since 1.7
  */
 String PROVIDE_SCOPE_CONTROL = "provide.scope.control";
-
+
 /*
  * --
  *  R E S O U R C E   M A N A G E R   C O N F I G U R A T I O N

Modified: 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTReference.java
URL: 
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTReference.java?rev=1783739=1783738=1783739=diff
==
--- 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTReference.java
 (original)
+++ 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTReference.java
 Mon Feb 20 10:58:58 2017
@@ -579,7 +579,7 @@ public class ASTReference extends Simple
 }
 try
 {
-return DuckType.asBoolean(value);
+return DuckType.asBoolean(value, 
rsvc.getBoolean(RuntimeConstants.CHECK_EMPTY_OBJECTS, true));
 }
 catch(Exception e)
 {

Modified: 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/util/DuckType.java
URL: 
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/util/DuckType.java?rev=1783739=1783738=1783739=diff
==
--- 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/util/DuckType.java
 (original)
+++ 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/util/DuckType.java
 Mon Feb 20 10:58:58 2017
@@ -23,9 +23,12 @@ import java.lang.reflect.Array;
 import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
 import java.math.BigDecimal;
+import java.math.BigInteger;
 import java.util.HashMap;
 import java.util.Map;
 
+import static org.apache.velocity.runtime.parser.node.MathUtils.isZero;
+
 /**
  * Support for getAs() convention for rendering (String), evaluating 
(Boolean)
  * or doing math with 

svn commit: r1783746 - in /velocity/engine/trunk/velocity-engine-core/src: main/java/org/apache/velocity/runtime/parser/node/ test/java/org/apache/velocity/test/

2017-02-20 Thread cbrisson
Author: cbrisson
Date: Mon Feb 20 11:51:14 2017
New Revision: 1783746

URL: http://svn.apache.org/viewvc?rev=1783746=rev
Log:
[engine] testcase and literals behavior for emptycheck=false; reference should 
cache emptycheck for speed

Added:

velocity/engine/trunk/velocity-engine-core/src/test/java/org/apache/velocity/test/IfEmptyNoEmptyCheckTestCase.java
  - copied, changed from r1783739, 
velocity/engine/trunk/velocity-engine-core/src/test/java/org/apache/velocity/test/IfEmptyTestCase.java
Modified:

velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTFloatingPointLiteral.java

velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTIntegerLiteral.java

velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTMap.java

velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTObjectArray.java

velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTReference.java

velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTStringLiteral.java

Modified: 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTFloatingPointLiteral.java
URL: 
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTFloatingPointLiteral.java?rev=1783746=1783745=1783746=diff
==
--- 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTFloatingPointLiteral.java
 (original)
+++ 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTFloatingPointLiteral.java
 Mon Feb 20 11:51:14 2017
@@ -21,6 +21,7 @@ package org.apache.velocity.runtime.pars
 
 import org.apache.velocity.context.InternalContextAdapter;
 import org.apache.velocity.exception.TemplateInitException;
+import org.apache.velocity.runtime.RuntimeConstants;
 import org.apache.velocity.runtime.parser.Parser;
 
 import java.math.BigDecimal;
@@ -115,7 +116,7 @@ public class ASTFloatingPointLiteral ext
  */
 public boolean evaluate( InternalContextAdapter context)
 {
-return !MathUtils.isZero(value);
+return !rsvc.getBoolean(RuntimeConstants.CHECK_EMPTY_OBJECTS, true) || 
!MathUtils.isZero(value);
 }
 
 }

Modified: 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTIntegerLiteral.java
URL: 
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTIntegerLiteral.java?rev=1783746=1783745=1783746=diff
==
--- 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTIntegerLiteral.java
 (original)
+++ 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTIntegerLiteral.java
 Mon Feb 20 11:51:14 2017
@@ -21,6 +21,7 @@ package org.apache.velocity.runtime.pars
 
 import org.apache.velocity.context.InternalContextAdapter;
 import org.apache.velocity.exception.TemplateInitException;
+import org.apache.velocity.runtime.RuntimeConstants;
 import org.apache.velocity.runtime.parser.Parser;
 
 import java.math.BigInteger;
@@ -112,6 +113,6 @@ public class ASTIntegerLiteral extends S
  */
 public boolean evaluate( InternalContextAdapter context)
 {
-return !MathUtils.isZero(value);
+return !rsvc.getBoolean(RuntimeConstants.CHECK_EMPTY_OBJECTS, true) || 
!MathUtils.isZero(value);
 }
 }

Modified: 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTMap.java
URL: 
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTMap.java?rev=1783746=1783745=1783746=diff
==
--- 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTMap.java
 (original)
+++ 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTMap.java
 Mon Feb 20 11:51:14 2017
@@ -22,6 +22,7 @@ package org.apache.velocity.runtime.pars
 import org.apache.velocity.context.InternalContextAdapter;
 import org.apache.velocity.exception.MethodInvocationException;
 import org.apache.velocity.exception.TemplateInitException;
+import org.apache.velocity.runtime.RuntimeConstants;
 import org.apache.velocity.runtime.parser.Parser;
 
 import java.util.LinkedHashMap;
@@ -102,6 +103,6 @@ public class ASTMap extends SimpleNode
  */
 public 

svn commit: r1783744 - in /velocity/engine/trunk/velocity-engine-core/src: main/java/org/apache/velocity/runtime/parser/node/ test/java/org/apache/velocity/test/

2017-02-20 Thread cbrisson
Author: cbrisson
Date: Mon Feb 20 11:32:31 2017
New Revision: 1783744

URL: http://svn.apache.org/viewvc?rev=1783744=rev
Log:
[engine] literals should follow the same rules

Modified:

velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTFloatingPointLiteral.java

velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTIntegerLiteral.java

velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTMap.java

velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTObjectArray.java

velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTStringLiteral.java

velocity/engine/trunk/velocity-engine-core/src/test/java/org/apache/velocity/test/IfEmptyTestCase.java

Modified: 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTFloatingPointLiteral.java
URL: 
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTFloatingPointLiteral.java?rev=1783744=1783743=1783744=diff
==
--- 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTFloatingPointLiteral.java
 (original)
+++ 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTFloatingPointLiteral.java
 Mon Feb 20 11:32:31 2017
@@ -110,5 +110,12 @@ public class ASTFloatingPointLiteral ext
 return value;
 }
 
+/**
+ * @see 
org.apache.velocity.runtime.parser.node.SimpleNode#evaluate(org.apache.velocity.context.InternalContextAdapter)
+ */
+public boolean evaluate( InternalContextAdapter context)
+{
+return !MathUtils.isZero(value);
+}
 
 }

Modified: 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTIntegerLiteral.java
URL: 
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTIntegerLiteral.java?rev=1783744=1783743=1783744=diff
==
--- 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTIntegerLiteral.java
 (original)
+++ 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTIntegerLiteral.java
 Mon Feb 20 11:32:31 2017
@@ -106,4 +106,12 @@ public class ASTIntegerLiteral extends S
 {
 return value;
 }
+
+/**
+ * @see 
org.apache.velocity.runtime.parser.node.SimpleNode#evaluate(org.apache.velocity.context.InternalContextAdapter)
+ */
+public boolean evaluate( InternalContextAdapter context)
+{
+return !MathUtils.isZero(value);
+}
 }

Modified: 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTMap.java
URL: 
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTMap.java?rev=1783744=1783743=1783744=diff
==
--- 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTMap.java
 (original)
+++ 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTMap.java
 Mon Feb 20 11:32:31 2017
@@ -97,4 +97,11 @@ public class ASTMap extends SimpleNode
return obj;
 }
 
+/**
+ * @see 
org.apache.velocity.runtime.parser.node.SimpleNode#evaluate(org.apache.velocity.context.InternalContextAdapter)
+ */
+public boolean evaluate( InternalContextAdapter context)
+{
+return children != null && children.length > 0;
+}
 }

Modified: 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTObjectArray.java
URL: 
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTObjectArray.java?rev=1783744=1783743=1783744=diff
==
--- 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTObjectArray.java
 (original)
+++ 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTObjectArray.java
 Mon Feb 20 11:32:31 2017
@@ -88,4 +88,11 @@ public class ASTObjectArray extends Simp
return obj;
 }
 
+/**
+ * @see 
org.apache.velocity.runtime.parser.node.SimpleNode#evaluate(org.apache.velocity.context.InternalContextAdapter)
+ */
+public boolean evaluate( 

svn commit: r1783776 - in /velocity/engine/trunk/velocity-engine-core/src: main/parser/Parser.jjt test/resources/templates/array.vm test/resources/templates/compare/array.cmp

2017-02-20 Thread cbrisson
Author: cbrisson
Date: Mon Feb 20 15:12:06 2017
New Revision: 1783776

URL: http://svn.apache.org/viewvc?rev=1783776=rev
Log:
[engine] allow expressions inside []: $foo[$bar + 1]

Modified:
velocity/engine/trunk/velocity-engine-core/src/main/parser/Parser.jjt

velocity/engine/trunk/velocity-engine-core/src/test/resources/templates/array.vm

velocity/engine/trunk/velocity-engine-core/src/test/resources/templates/compare/array.cmp

Modified: velocity/engine/trunk/velocity-engine-core/src/main/parser/Parser.jjt
URL: 
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/main/parser/Parser.jjt?rev=1783776=1783775=1783776=diff
==
--- velocity/engine/trunk/velocity-engine-core/src/main/parser/Parser.jjt 
(original)
+++ velocity/engine/trunk/velocity-engine-core/src/main/parser/Parser.jjt Mon 
Feb 20 15:12:06 2017
@@ -1040,7 +1040,7 @@ TOKEN:
 |   
 }
 
-
+
 TOKEN :
 {
 
@@ -1782,12 +1782,8 @@ void IntegerRange() : {}
 void IndexParameter() #void: {}
 {
 (|)*
-(
-StringLiteral()
-| IntegerLiteral()
-| True()
-| False()
-| Reference()
+(
+Expression()
 )
 (|)*
 }

Modified: 
velocity/engine/trunk/velocity-engine-core/src/test/resources/templates/array.vm
URL: 
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/test/resources/templates/array.vm?rev=1783776=1783775=1783776=diff
==
--- 
velocity/engine/trunk/velocity-engine-core/src/test/resources/templates/array.vm
 (original)
+++ 
velocity/engine/trunk/velocity-engine-core/src/test/resources/templates/array.vm
 Mon Feb 20 15:12:06 2017
@@ -40,3 +40,9 @@ $p.m( [ $A.g(1), $title ])
 $pp.messageFormat( [ $Abc.get($sti), $title, $ti, $sti, 'bodytext' ], 
$subtopicTemplate)
 #set ($args = [ $pp.nQuestions, $pass, $units ] )
 
+## expression in index
+
+#set($arr = [ 0, 1, 2, 3 ])
+#set($index = 1)
+
+$arr[$index + $index * 2]

Modified: 
velocity/engine/trunk/velocity-engine-core/src/test/resources/templates/compare/array.cmp
URL: 
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/test/resources/templates/compare/array.cmp?rev=1783776=1783775=1783776=diff
==
--- 
velocity/engine/trunk/velocity-engine-core/src/test/resources/templates/compare/array.cmp
 (original)
+++ 
velocity/engine/trunk/velocity-engine-core/src/test/resources/templates/compare/array.cmp
 Mon Feb 20 15:12:06 2017
@@ -20,3 +20,6 @@ a
 $p.m( [ $A.g(1), $title ])
 $pp.messageFormat( [ $Abc.get($sti), $title, $ti, $sti, 'bodytext' ], 
$subtopicTemplate)
 
+
+
+3




svn commit: r1783766 - in /velocity/site/cms/trunk/content/engine/devel: configuration.mdtext user-guide.mdtext vtl-reference.mdtext

2017-02-20 Thread cbrisson
Author: cbrisson
Date: Mon Feb 20 14:07:41 2017
New Revision: 1783766

URL: http://svn.apache.org/viewvc?rev=1783766=rev
Log:
[site/engine] document condition evaluation new config flag and behavior

Modified:
velocity/site/cms/trunk/content/engine/devel/configuration.mdtext
velocity/site/cms/trunk/content/engine/devel/user-guide.mdtext
velocity/site/cms/trunk/content/engine/devel/vtl-reference.mdtext

Modified: velocity/site/cms/trunk/content/engine/devel/configuration.mdtext
URL: 
http://svn.apache.org/viewvc/velocity/site/cms/trunk/content/engine/devel/configuration.mdtext?rev=1783766=1783765=1783766=diff
==
--- velocity/site/cms/trunk/content/engine/devel/configuration.mdtext (original)
+++ velocity/site/cms/trunk/content/engine/devel/configuration.mdtext Mon Feb 
20 14:07:41 2017
@@ -66,9 +66,19 @@ Below are listed the configuration keys
 
 ### #if() Directive
 
-**`directive.if.tostring.nullcheck = true`**
+**`directive.if.emptycheck = true`**
 
-> Default behavior is to check return value of toString() and treat an object 
with toString() that returns null as null. If all objects have toString() 
methods that never return null, this check is unnecessary and can be disabled 
to gain performance. In Velocity 1.5, no such null check was performed.
+> When evaluating if a reference resolves to `true` or `false` in a boolean 
context, the engine first checks if its value is null, if it is a Boolean or if 
it has a getAsBoolean() method. Then, if none of this applies, the behavior 
depends upon this configuration flag:
+>
+> - if `directive.if.emptycheck` is `false`, no further check is performed and 
the object resolves to `true`.
+> - if `directive.if.emptycheck` is `true`, the object is check for emptiness 
and zero value:
+> - return whether an array is empty.
+> - return whether isEmpty() is false (covers String and all Collection 
classes).
+> - return whether length() is zero (covers CharSequence classes other 
than String).
+> - returns whether size() is zero (covers all Collections classes).
+> - return whether a Number *strictly* equals zero.
+> - return whether the result of getAsString() is empty (and false for a 
null result) if it exists.
+> - return whether the result of getAsNumber() *strictly* equals zero (and 
false for a null result) if it exists. 
 
 ### #set() Directive
 

Modified: velocity/site/cms/trunk/content/engine/devel/user-guide.mdtext
URL: 
http://svn.apache.org/viewvc/velocity/site/cms/trunk/content/engine/devel/user-guide.mdtext?rev=1783766=1783765=1783766=diff
==
--- velocity/site/cms/trunk/content/engine/devel/user-guide.mdtext (original)
+++ velocity/site/cms/trunk/content/engine/devel/user-guide.mdtext Mon Feb 20 
14:07:41 2017
@@ -500,11 +500,14 @@ The *#if* directive in Velocity allows f
   Velocity!
 #end
 
-The variable *$foo* is evaluated to determine whether it is true, which will 
happen under one of three circumstances:
+The variable *$foo* is evaluated to determine whether it is true, which will 
happen under one of those circumstances:
 
 + *$foo* is a boolean (true/false) which has a true value
 + *$foo* is a string or a collection which is not null **and** not empty
-+ *$foo* is an object (other than a string or a collection) which is not null
++ *$foo* is a number which equals to zero
++ *$foo* is an object (other than a string, a number or a collection) which is 
not null
+
+(please note that this is the default behavior, but Velocity can be configured 
to [skip all checks beyond boolean and nullity 
ones](configuration.html#if-directive)).
 
 Remember that the Velocity context only contains Objects, so when we say 
'boolean', it will be represented as a Boolean (the class).  This is true even 
for methods that return `boolean` - the introspection infrastructure will 
return a `Boolean` of the same logical value.
 

Modified: velocity/site/cms/trunk/content/engine/devel/vtl-reference.mdtext
URL: 
http://svn.apache.org/viewvc/velocity/site/cms/trunk/content/engine/devel/vtl-reference.mdtext?rev=1783766=1783765=1783766=diff
==
--- velocity/site/cms/trunk/content/engine/devel/vtl-reference.mdtext (original)
+++ velocity/site/cms/trunk/content/engine/devel/vtl-reference.mdtext Mon Feb 
20 14:07:41 2017
@@ -88,7 +88,18 @@ Format:
 
 Usage:
 
-+ *condition* - If a boolean, considered true if it has a true false; if not a 
boolean, considered true if not null.
++ *condition* - Expression to evaluate. When tis result is null, evaluate to 
false. Otherwise, check for conversion towards Boolean and non-emptiness as 
follow:
+ - return its value for a Boolean object, or the result of the 
getAsBoolean() method if it exists.
+ - if `directive.if.emptycheck` = `false` (`true` by default), 

svn commit: r1783725 - in /velocity/engine/trunk: ./ velocity-engine-core/src/main/java/org/apache/velocity/ velocity-engine-core/src/main/java/org/apache/velocity/runtime/ velocity-engine-core/src/ma

2017-02-20 Thread cbrisson
Author: cbrisson
Date: Mon Feb 20 08:41:00 2017
New Revision: 1783725

URL: http://svn.apache.org/viewvc?rev=1783725=rev
Log:
[engine] several coding style fixes (Michael remarks)

Modified:
velocity/engine/trunk/README.md

velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/Template.java

velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/RuntimeInstance.java

velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/VelocimacroFactory.java

velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/directive/Macro.java

velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/directive/Parse.java

velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTReference.java

velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTSetDirective.java

velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/resource/ResourceManagerImpl.java

velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/resource/loader/ClasspathResourceLoader.java

velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/resource/loader/FileResourceLoader.java

velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/resource/loader/JarResourceLoader.java

velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/resource/loader/StringResourceLoader.java

velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/resource/loader/URLResourceLoader.java

velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/util/ExtProperties.java

velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/util/StringUtils.java

velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/util/introspection/Introspector.java

velocity/engine/trunk/velocity-engine-core/src/test/java/org/apache/velocity/test/BaseTestCase.java

velocity/engine/trunk/velocity-engine-core/src/test/java/org/apache/velocity/test/IntrospectorTestCase.java

velocity/engine/trunk/velocity-engine-core/src/test/java/org/apache/velocity/test/InvalidEventHandlerTestCase.java

velocity/engine/trunk/velocity-engine-core/src/test/java/org/apache/velocity/test/NumberMethodCallsTestCase.java

velocity/engine/trunk/velocity-engine-core/src/test/java/org/apache/velocity/test/eventhandler/Handler1.java

Modified: velocity/engine/trunk/README.md
URL: 
http://svn.apache.org/viewvc/velocity/engine/trunk/README.md?rev=1783725=1783724=1783725=diff
==
--- velocity/engine/trunk/README.md (original)
+++ velocity/engine/trunk/README.md Mon Feb 20 08:41:00 2017
@@ -19,7 +19,7 @@ Here's a description of the top level di
 
 Apache Velocity will run with any Java runtime engine v1.7 or greater.
 
-Building from source requires Java development kit v1.7 or greater and Maven 3 
(3.3.3 at the time of writing).
+Building from source requires Java development kit v1.7 or greater and Maven 3 
(3.0.5+).
 
 At compile time, Maven should fetch all needed dependencies, which are:
 * commons-lang v3.5
@@ -80,7 +80,7 @@ all arguments are evaluated once at star
 copy of the reference to each argument).
 * the UberspectLoggable interface has been removed.
 
-  VTL Changes:
+ VTL Changes:
 
 * the hypen ( - ) cannot be used in variable names anymore
 * method arguments can be arithmetic expressions
@@ -93,11 +93,11 @@ following values: none, bc (aka. backwar
 See the related documentation section for details. To maximize backward
 compatibility with 1.x, set it to bc.
 
-  Dependencies changes:
+ Dependencies changes:
 
 * Velocity now requires a JDK version of 1.7 or higher.
 * commons-collections and commons-logging aren't needed any more at runtime.
-* there's a new runtime dependency, slf4j-api 1.7.12.
+* there's a new compile-time and runtime dependency, slf4j-api 1.7.12.
 * you'll need an SLF4J binding.
 * commons-lang has to be upgraded to 3.5.
 

Modified: 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/Template.java
URL: 
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/Template.java?rev=1783725=1783724=1783725=diff
==
--- 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/Template.java
 (original)
+++ 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/Template.java
 Mon Feb 20 08:41:00 2017
@@ -325,8 +325,7 @@ public class Template extends Resource
 /*

svn commit: r1783729 - in /velocity/engine/trunk/velocity-engine-core/src: main/java/org/apache/velocity/util/ExtProperties.java main/java/org/apache/velocity/util/StringUtils.java test/java/org/apach

2017-02-20 Thread cbrisson
Author: cbrisson
Date: Mon Feb 20 08:57:19 2017
New Revision: 1783729

URL: http://svn.apache.org/viewvc?rev=1783729=rev
Log:
[engine] fix compilation and tests after last commits

Modified:

velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/util/ExtProperties.java

velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/util/StringUtils.java

velocity/engine/trunk/velocity-engine-core/src/test/java/org/apache/velocity/test/BaseTestCase.java

Modified: 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/util/ExtProperties.java
URL: 
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/util/ExtProperties.java?rev=1783729=1783728=1783729=diff
==
--- 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/util/ExtProperties.java
 (original)
+++ 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/util/ExtProperties.java
 Mon Feb 20 08:57:19 2017
@@ -26,6 +26,7 @@ import java.io.OutputStream;
 import java.io.PrintWriter;
 import java.io.Reader;
 import java.io.UnsupportedEncodingException;
+import java.nio.charset.StandardCharsets;
 import java.security.AccessController;
 import java.util.ArrayList;
 import java.util.Enumeration;

Modified: 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/util/StringUtils.java
URL: 
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/util/StringUtils.java?rev=1783729=1783728=1783729=diff
==
--- 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/util/StringUtils.java
 (original)
+++ 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/util/StringUtils.java
 Mon Feb 20 08:57:19 2017
@@ -23,8 +23,6 @@ import org.apache.velocity.runtime.direc
 import org.apache.velocity.runtime.parser.node.Node;
 import org.apache.velocity.util.introspection.Info;
 
-import org.apache.commons.lang3.StringUtils;
-
 /**
  * This class provides some methods for dynamically
  * invoking methods in objects, and some string
@@ -77,7 +75,7 @@ public class StringUtils
 public static String formatFileString(String template, int linenum, int 
colnum)
 {
 StringBuilder buffer = new StringBuilder();
-if (StringUtils.isEmpty(template))
+if (org.apache.commons.lang3.StringUtils.isEmpty(template))
 {
 template = "";
 }

Modified: 
velocity/engine/trunk/velocity-engine-core/src/test/java/org/apache/velocity/test/BaseTestCase.java
URL: 
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/test/java/org/apache/velocity/test/BaseTestCase.java?rev=1783729=1783728=1783729=diff
==
--- 
velocity/engine/trunk/velocity-engine-core/src/test/java/org/apache/velocity/test/BaseTestCase.java
 (original)
+++ 
velocity/engine/trunk/velocity-engine-core/src/test/java/org/apache/velocity/test/BaseTestCase.java
 Mon Feb 20 08:57:19 2017
@@ -34,6 +34,7 @@ import java.io.IOException;
 import java.io.StringWriter;
 import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
+import java.nio.file.Paths;
 import java.util.Locale;
 
 /**
@@ -467,11 +468,11 @@ public abstract class BaseTestCase exten
 
 protected String getFileContents(String file)
 {
-String contents;
+String contents = null;
 
 try
 {
-contents = new String(Files.readAllBytes(path), 
StandardCharsets.UTF_8);
+contents = new String(Files.readAllBytes(Paths.get(file)), 
StandardCharsets.UTF_8);
 }
 catch (Exception e)
 {