Jamon
a typed template engine for Java
type safe templating
Jamon Changes
Eclipse Feature Changes from 2.3.2 to 2.3.3
-
Oddities in editor with multi-line imports and doc tags fixed.
-
Jamon preference panes only appear on project pref pane.
Processor Changes from 2.3.2 to 2.3.3
-
Efforts made to generate identical class names for fragments, which should help
hot-reload tools such as JavaRebel.
Processor Changes from 2.3.1 to 2.3.2
-
Default escaping can now be set via
jamon.properties
, as well as in a template.
Runtime Changes from 2.3.0 to 2.3.1
-
Fix bug where "null" rather than "" was being emitted for null
objects using the standard emitter. Note that this same bug was fixed in 2.2.2, but regressed
during mavenization.
Eclipse Feature Changes from 2.3.0.1 to 2.3.1
-
The Eclipse feature is no longer tied to a single version of Jamon.
This version of the feature will work with versions 2.3 and later
of jamon-processor. A new Jamon Processor Feature can be used to
provide a default processor version, but other versions can be
chosen on a per-project basis via project properties.
Jamon Changes from 2.2.2 to 2.3.0
-
[INCOMPATIBLE]
Full "mavenification", and more granular libraries. In particular,
a creation of a
jamon-runtime
jar, containing the
minimal classes needed at runtime.
-
[INCOMPATIBLE]
Maven plugin changes: renamed to jamon-maven-plugin.
Automatically adds generated classes to compile roots.
Supports generating templates in test phase as well.
-
Fix errors occurring in Eclipse editor in the presence of malformed
nested
<& call &>
tags. (#1746242)
-
Fix end of line whitespace '\'-consumption for Windows line endings.
(#1751664)
Jamon Changes from 2.2.1 to 2.2.2
-
Fix errors occurring in Eclipse editor in the presence of multiline
<%doc>
and <& call &>
tags.
-
Fix bug where "null" rather than "" was being emitted for null
objects using the standard emitter.
Jamon Changes from 2.2 to 2.2.1
-
A bug which prevented the Eclipse plugin from properly handling templates which referenced
"library only" templates from jars has been fixed.
-
The Eclipse plugin is now capable of handling a template directory which is not the top-level
directory in a project.
Jamon Changes from 2.1 to 2.2
-
Path aliases can be set through
jamon.properties
as well as in a template.
-
The "java line" syntax, where a line begining with a % is interpreted to be in-line java code,
has been deprecated. In it's place, a new syntax is introduced allowing short java snippets
such as
<%java int x = 4; %>
-
Add the ability to add custom class-level annotations to generated java files. Jamon will no
longer add a
@SuppressWarnings("unused")
to Proxy files, so templates specifying
imports which are not used in the Proxy class may want to add
<%annotate @SuppressWarnings("unused") #proxy %>
.
-
Syntax highlighting of jamon syntax elements has been added to the Eclipse plugin.
-
[INCOMPATIBLE]
Switch from using static final String arrays to annotations in proxy classes to describe template
interfaces. Existing templates will need to be recompiled.
-
Fix bug where the template processor would go into an infinite loop in certain cases
while parsing an xargs section.
Jamon Changes from 2.0 to 2.1
-
[INCOMPATIBLE]
Emit mode is now specified in jamon.properties, rather than as an argument
to the ant task or TemplateProcessor.
-
Jamon templates may optionally have a context variable which is passed from
template to template.
-
The
getRootCause
method on JamonRuntimeException is deprecated
in favor of the getCause
method.
-
Various changes to generated code which, while having no functional impact,
should cut down on the number of warnings, especially inside of Eclipse.
Jamon Changes from 1.3 to 2.0
-
[INCOMPATIBLE]
Jamon now requires Java 1.5. Users with prior jdk requirements should use
Jamon 1.3 instead.
-
The parsing engine has been rewritten from the ground up. Benefits include
better error messages, faster template processing times, and the ability to
more easily support flexible syntax.
-
The standard library is now downloaded as a separate package.
-
Support for generics has been added. Argument types can be paramterized
types, and templates themselves can be generic.
-
The old "arrow style" for passing arguments has been deprecated in favor of
a more natural "equals style". Instead of making calls like
<& someTemplate: name => value &>
, the new style is
<& someTemplate: name = value &>
. A similar change has
been made for declaring default values for optional arguments, and path
aliases.
-
In an effort to reduce reliance on java code sections which open a block which
must be closed in a subsequence java code section, the following tags have
been added:
<%if conditition>...<%elseif condition>...<%else>...</%if>
<%for init; test; update>...</%for>
<%for Type var : list>...</%for>
<%while test>...</%while>
-
Support for static imports has been added, eg:
<%import>static com.mycompany.SomeEnum.*</%import>
-
An Eclipse plugin has been added; point your eclipse update manager to
http://www.jamon.org/eclipse/updates/
Jamon Changes from 1.2 to 1.3
Invocations of public methods on templates only throw IOException
when there is an IOException on the underlying writer. Other
exceptions, e.g. relating to compilation errors of dynamically
modified templates, are now JamonRuntimeExceptions. One side effect
of this is that invoking Renderer.asString() no longer throws
IOException.
The character encoding of a template can now be specified via the
<%encoding ...>
declaration, which, if present, must occur at the very beginning of
a template source file.
It is now possible to specify what types are legally included in
emit (<% ... %>
) directives via the EmitMode. This is specifiable for
all templates only, by supplying the appropriate attribute to the JamonTask, and via the corresponding
attribute on the RecompilingTemplateManager
.
Jamon Changes from 1.1 to 1.2
Jamon
a typed template engine for Java