Author: cbrisson
Date: Wed Jan 25 22:37:29 2017
New Revision: 1780286
URL: http://svn.apache.org/viewvc?rev=1780286&view=rev
Log:
[engine] upgrade README.txt file
Modified:
velocity/engine/trunk/README.txt
Modified: velocity/engine/trunk/README.txt
URL:
http://svn.apache.org/viewvc/velocity/engine/trunk/README.txt?rev=1780286&r1=1780285&r2=1780286&view=diff
==============================================================================
--- velocity/engine/trunk/README.txt (original)
+++ velocity/engine/trunk/README.txt Wed Jan 25 22:37:29 2017
@@ -2,64 +2,126 @@
Apache Velocity
---------------
-Welcome to Apache Velocity! Apache Velocity is a general purpose
+Welcome to Apache Velocity 2.0! Apache Velocity is a general purpose
template engine written in Java. For more information about Velocity,
-please look at the HTML documentation in the docs/ directory, as well
-as the Velocity web site.
+please look at the HTML documentation on the Velocity web site:
http://velocity.apache.org/index.html
-The following top level directories are in the Velocity distribution
-archive. Please consult the documentation in each of the lower level
-directories for information that is specific to their contents.
-
-build/ This is where the build scripts live.
-convert/ The WebMacro to Apache Velocity conversion program.
-docs/ Velocity Documentation in HTML format.
-docs/api/ Velocity Javadocs.
-examples/ Examples how to use Velocity.
-lib/ Dependencies for building and using Velocity.
-lib/test/ Dependencies needed for the various unit tests.
-src/ This is where all of the source code is located.
-test/ Contains test files needed for the unit tests.
-xdocs/ Here are the .xml files for building the .html files
- related to the website and documentation. The files
- located in docs/ have been built from these sources.
-
-Caveat! This is the directory structure of the distribution
-archive. If you checked out the source from the Apache Subversion
-Repository, the directory layout is slightly different.
+Here's a description of the top level directories:
+velocity-engine-core/ The Velocity Engine core module
+velocity-engine-examples/ Several simple examples
+velocity-engine-scripting/ JSR-223 implementation for Velocity scripting
+src/ Source for parent modules, mainly changelog
REQUIREMENTS
------------
-Apache Velocity will run with any version of Java greater than 1.3.
+Apache Velocity will run with any version of Java greater than 1.5.
-Building from source requires Java version 1.4 (or greater) and ant
-1.6 or greater.
+Building from source requires Java version 1.5 (or greater) and Maven 2.
+
+At compile time, Maven should fetch all needed dependencies, which are:
+ - commons-lang v3.5
+ - slf4j-api v1.7.21
+plus the following ones, needed for the integrated tests:
+ - slf4j-simple v1.7.21
+ - junit v4.12
+ - hsqldb v2.3.4
+ - commons-io 2.5
+
+At runtime, Velocity only needs:
+ - commons-lang v3.5+
+ - slf4j-api and an slf4j binding, v1.7.x
UPGRADING FROM EARLIER RELEASES
-------------------------------
-Release with the same major number (1.x) are intended to be drop-in
+Release with the same major number are intended to be drop-in
replacements. However, in most cases the versions of dependency jars
must be adjusted because newer versions of Velocity might require
updates.
-Upgrading from Velocity 1.4 or earlier
- * JDOM has been upgraded to version 1.0.
- * Commons Collections has been upgraded to version 3.1.
- * Commons Lang 2.1 has been added.
+Upgrading from Velocity 1.7.x to Velocity 2.0
- Optional:
+ Behavior / API changes:
- * Apache Ant 1.6 or better is required for rebuilding.
- * Java CC 3.2 is recommended to compile the parser files.
- * HSQLDB 1.7.1 is required for running unit tests.
+ * velocity is now using the SLF4J logging facade. Hence, all methods
accepting
+ or returning a logger now use the org.slf4j.Logger object. Velocity uses a
+ logger name of org.apache.velocity (configurable with the runtime.log.name
+ configuration entry), and several other childen loggers.
+ * the internal Context API now enforces String keys everywhere, this may
break
+ custom Context implementations at compile-time.
+ * invalid reference events are now more sparsely sent; they're not sent if
any
+ of the following conditions is met (the 1.x behavior did send invalid
+ reference events in all those cases):
+ x the reference is a quiet reference
+ x the reference could be successfully evaluated but resulted in a null
value
+ x the reference is tested for validity inside an #if / #elseif statement
+ * all events do now receive the current Velocity Context as a first argument.
+ The signatures of the MethodExceptionEventHandler,
+ ReferenceInsertionEventHandler and IncludeEventHandler events have changed,
+ and the ContextAware interface has been suppressed, as long as the
+ NullSetEventHandler event which is obsolete.
+ * The ResourceLoader class API has replaced InputStream getters by Reader
+ getters: InputStream ResourceLoader.getResourceStream(String name) has been
+ replaced by a Reader ResourceLoader.getResourceReader(String name, String
+ encoding).
+ * the default encoding ('ISO-8859-1' in 1.x) is now UTF-8.
+ * the MethodException event handler now receives an additional argument
+ providing template name and location infos.
+ * Initialization methods in Velocity and VelocityEngine taking an
+ ExtendedProperties have been removed (but setProperties(Properties) methods
+ are still here). All occurences of the
+ org.apache.commons.collections.ExtendedProperties class in the runtime
+ internal initialization API have been replaced by
+ org.apache.velocity.util.ExtProperties.
+ * the macros are now using a 'call by sharing' convention (which means that
+ all arguments are evaluated once at start, and that the macro receives a
+ copy of the reference to each argument).
+ * the UberspectLoggable interface has been removed.
+
+ VTL Changes:
+
+ * the hypen ( - ) cannot be used in variable names anymore
+ * method arguments can be arithmetic expressions
+ * method arguments are now converted as needed between all main basic Java
+ standard types (booleans, numbers and strings). If you want to revert to
+ the 1.x behavior, set the property runtime.conversion.handler = none.
+ * space gobbling (to control the indentation of generated code) is now
+ configurable via the space.gobbing configuration key, which can take the
+ following values: none, bc (aka. backward compatible), lines and
structured.
+ See the related documentation section for details. To maximize backward
+ compatibility with 1.x, set it to bc.
+
+ 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.
+ * you'll need an SLF4J binding.
+ * commons-lang has to be upgraded to 3.5.
+
+Upgrading from Velocity 1.6.x to Velocity 1.7.x
+
+ There are no changes in the dependencies since Velocity 1.6
+
+ * Deprecated $velocityCount; please use $foreach.count or $foreach.index
+ * Deprecated $velocityHasNext; please use $foreach.hasNext, $foreach.first
or $foreach.last
+ * Deprecated velocimacro.context.localscope setting; please get/set local
#macro references
+ as members of the provided $macro scope control instead. (e.g. #set(
$macro.foo = 'bar' )
+ and $macro.foo )
+ * Deprecated directive.evaluate.context.class setting; please get/set local
#evaluate
+ references as members of the provided $evaluate scope control instead.
(e.g.
+ #set( $evaluate.foo = 'bar' ) and $evaluate.foo )
+ * Deprecated #literal directive; please use #[[this syntax]]# instead.
+ * Changed #stop to end template rendering rather than template parsing.
+ * Removed obsolete Veltag (use VelocityViewTag in VelocityTools project)
+ * Removed obsolete WebMacro conversion code.
-Upgrading from Velocity 1.5
+Upgrading from Velocity 1.5.x to Velocity 1.6.x
* Commons Collections has been upgraded to version 3.2.1.
* Commons Lang has been upgraded to version 2.4.
@@ -70,6 +132,18 @@ Upgrading from Velocity 1.5
* Maven Ant 2.0.9 is required for the Maven Ant tasks.
* Java CC 4.1 is recommended to compile the parser files.
+Upgrading from Velocity 1.4.x or earlier to Velocity 1.5.x
+
+ * JDOM has been upgraded to version 1.0.
+ * Commons Collections has been upgraded to version 3.1.
+ * Commons Lang 2.1 has been added.
+
+ Optional:
+
+ * Apache Ant 1.6 or better is required for rebuilding.
+ * Java CC 3.2 is recommended to compile the parser files.
+ * HSQLDB 1.7.1 is required for running unit tests.
+
BUILDING APACHE VELOCITY
------------------------
@@ -79,58 +153,35 @@ build it.
Building is easy. All components necessary to build are included or
get downloaded from the internet during the build, except for the Java
-2 SDK and the Ant build tool. You can find details on how to build
+ SDK and the Maven build tool. You can find details on how to build
Velocity online at:
http://velocity.apache.org/engine/devel/build.html
-Note that you must use Ant version 1.6 or later.
-
*IMPORTANT* As the Apache Velocity build process wants to download a
number of jars from the internet, you must be online when you are
building for the first time.
-To build Velocity's jar, change directory into the build/ directory
-and enter:
+To build Velocity's jar, just run maven using the command:
-ant jar
+mvn
-This will create a bin/ directory containing the Velocity .jar
-file. Be sure to update your classpath to include Velocity's .jar
+This will create a target/ directory containing the Velocity .jar
+file in each sub-module directory.
+
+Be sure to update your classpath to include Velocity's .jar
file, or when using a modern servlet container, put it in the
WEB-INF/lib directory.
-If you wish to build a jar that contains all dependencies, we have
-provided an optional build target for your convenience:
-
-ant jar-dep
-
-This will build a complete Velocity jar with dependencies included,
-and it can be found in the /bin directory as
-
-velocity-dep-<version>.jar
-
-
-KNOWN ISSUES AND LIMITATIONS
-----------------------------
-
-When running findbugs on a project, the default heap size might not
-be enough to complete the build. For now there is no way to fork
-findbugs and run with its own memory requirements, but the following
-system variable will allow you to do so when running it via Maven:
-
-export MAVEN_OPTS=-Xmx384M
-
-
TRYING THE EXAMPLES
-------------------
After building Velocity, you can also buld the examples that are
-included with the Velocity distribution. These examples show how to
-use Velocity in your Java applications. There also are examples of
-how to use Anakia, a XML transformation engine.
+included with the Velocity distribution. These examples show how to
+use Velocity in your Java applications.
+
-For more information, please see the README.txt in the examples/
-directory.
+For more information, please see the README.txt in the
+velocity-engine-exemples/src/etc/ directory.
- The Apache Velocity Team