You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@velocity.apache.org by Sergiu Dumitriu <se...@gmail.com> on 2016/12/05 12:11:30 UTC

Re: svn commit: r1752800 - in /velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime: RuntimeConstants.java RuntimeInstance.java RuntimeServices.java RuntimeSingleton.java

On 07/15/2016 04:36 AM, cbrisson@apache.org wrote:
> Author: cbrisson
> Date: Fri Jul 15 08:36:09 2016
> New Revision: 1752800
> 
> URL: http://svn.apache.org/viewvc?rev=1752800&view=rev
> Log:
> default input encoding set to file.encoding System property (then to UTF-8 if not present) ; removed unused OUTPUT_ENCODING property
> 
> 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/RuntimeInstance.java
>     velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/RuntimeServices.java
>     velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/RuntimeSingleton.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=1752800&r1=1752799&r2=1752800&view=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 Fri Jul 15 08:36:09 2016
> @@ -231,11 +231,8 @@ public interface RuntimeConstants
>      /** The character encoding for the templates. Used by the parser in processing the input streams. */
>      String INPUT_ENCODING = "input.encoding";
>  
> -    /** Encoding for the output stream. Currently used by Anakia and VelocityServlet */
> -    String OUTPUT_ENCODING = "output.encoding";
> -
> -    /** Default Encoding is ISO-8859-1. */
> -    String ENCODING_DEFAULT = "ISO-8859-1";
> +    /** Default Encoding is UTF-8 if not found in system. */
> +    String ENCODING_DEFAULT = "UTF-8";
>  
>      /** key name for uberspector. Multiple classnames can be specified,in which case uberspectors will be chained. */
>      String UBERSPECT_CLASSNAME = "runtime.introspector.uberspect";
> 
> Modified: velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/RuntimeInstance.java
> URL: http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/RuntimeInstance.java?rev=1752800&r1=1752799&r2=1752800&view=diff
> ==============================================================================
> --- velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/RuntimeInstance.java (original)
> +++ velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/RuntimeInstance.java Fri Jul 15 08:36:09 2016
> @@ -1527,7 +1527,17 @@ public class RuntimeInstance implements
>      {
>          if (encoding == null)
>          {
> -            encoding = getString(INPUT_ENCODING, ENCODING_DEFAULT);
> +            /*
> +             * first try to get the OS encoding
> +             */
> +            encoding = System.getProperty("file.encoding");
> +            if (encoding == null)

I don't think this will ever happen. The JVM refuses to start if the
system encoding is not well defined.

Personally, I think that relying on the system encoding is prone to
errors, and makes an application less portable than if the application
developer specifies the encoding of the files in the binaries, and of
the expected output, especially for a web application.

> +            {
> +                /*
> +                 * then fall back to default
> +                 */
> +                encoding = getString(INPUT_ENCODING, ENCODING_DEFAULT);
> +            }
>          }
>          return encoding;
>      }
> @@ -1536,7 +1546,7 @@ public class RuntimeInstance implements
>       * Returns a <code>Template</code> from the resource manager.
>       * This method assumes that the character encoding of the
>       * template is set by the <code>input.encoding</code>
> -     * property.  The default is "ISO-8859-1"
> +     * property. The default is platform dependant.
>       *
>       * @param name The file name of the desired template.
>       * @return     The template.
> 
> Modified: velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/RuntimeServices.java
> URL: http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/RuntimeServices.java?rev=1752800&r1=1752799&r2=1752800&view=diff
> ==============================================================================
> --- velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/RuntimeServices.java (original)
> +++ velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/RuntimeServices.java Fri Jul 15 08:36:09 2016
> @@ -257,7 +257,7 @@ public interface RuntimeServices
>       * Returns a <code>Template</code> from the resource manager.
>       * This method assumes that the character encoding of the
>       * template is set by the <code>input.encoding</code>
> -     * property.  The default is "ISO-8859-1"
> +     * property. The default is platform dependant.
>       *
>       * @param name The file name of the desired template.
>       * @return     The template.
> 
> Modified: velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/RuntimeSingleton.java
> URL: http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/RuntimeSingleton.java?rev=1752800&r1=1752799&r2=1752800&view=diff
> ==============================================================================
> --- velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/RuntimeSingleton.java (original)
> +++ velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/RuntimeSingleton.java Fri Jul 15 08:36:09 2016
> @@ -282,7 +282,7 @@ public class RuntimeSingleton implements
>       * Returns a <code>Template</code> from the resource manager.
>       * This method assumes that the character encoding of the
>       * template is set by the <code>input.encoding</code>
> -     * property.  The default is "ISO-8859-1"
> +     * property. The default is platform dependant.
>       *
>       * @param name The file name of the desired template.
>       * @return     The template.
> 
> 


-- 
Sergiu Dumitriu
http://purl.org/net/sergiu/

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@velocity.apache.org
For additional commands, e-mail: dev-help@velocity.apache.org


Re: svn commit: r1752800 - in /velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime: RuntimeConstants.java RuntimeInstance.java RuntimeServices.java RuntimeSingleton.java

Posted by Claude Brisson <cl...@renegat.net>.
On 05/12/2016 13:11, Sergiu Dumitriu wrote:
[...]
>> ==============================================================================
>> --- velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/RuntimeInstance.java (original)
>> +++ velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/RuntimeInstance.java Fri Jul 15 08:36:09 2016
>> @@ -1527,7 +1527,17 @@ public class RuntimeInstance implements
>>       {
>>           if (encoding == null)
>>           {
>> -            encoding = getString(INPUT_ENCODING, ENCODING_DEFAULT);
>> +            /*
>> +             * first try to get the OS encoding
>> +             */
>> +            encoding = System.getProperty("file.encoding");
>> +            if (encoding == null)
> I don't think this will ever happen. The JVM refuses to start if the
> system encoding is not well defined.
>
> Personally, I think that relying on the system encoding is prone to
> errors, and makes an application less portable than if the application
> developer specifies the encoding of the files in the binaries, and of
> the expected output, especially for a web application.

+1, you're right.

Let's ignore the system value, and use UTF-8 by default.

   Claude


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@velocity.apache.org
For additional commands, e-mail: dev-help@velocity.apache.org