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