Jamon Changes
Processor Changes from 2.4.0 to 2.4.1
- Replacement Templacements which expect a jamonContext will now receive one. (Issue 3462561)
Jamon Maven Configurator Changes from 1.0.0 to 1.1.0
- This version supports m2e and eclipse 3.7 (indigo). It does not work with older versions of m2e or eclipse.
Jamon Maven Configurator 1.0.0
- Initial Release.
Processor Changes from 2.3.4 to 2.4.0
- Support added for template replacement, which can be useful for modularization and internationalization.
- Generated java files are now written using the same encoding as the template source file. (Issue 3307564)
- Templates with constrained type parameters are now processed properly. (Issue 3300744)
- Generated code presents less warnings in eclipse (version 3.6).
- [INCOMPATIBLE] Jamon now depends on at least version 6 of Java.
Runtime Changes from 2.3.1 to 2.4.0
- [INCOMPATIBLE] This release supports changes made in version 2.4.0 of Jamon Processor. Templates generated by version 2.4.0 or later will need to run against version 2.4.0 or later of Jamon Runtime.
-
A new interface,
TemplateReplacer
, along with an abstract classAbstractTemplateReplacer
, have been added to support template replacement. -
New annotations,
Replaceable
andReplaces
have been added. -
[INCOMPATIBLE]
TemplateManager
has added an overloaded version ofconstructImpl
which additionally takes in thejamonContext
. A newAbstractTemplateManager
class has been added to aid in implementingTemplateManager
classes. - [INCOMPATIBLE] The AnnotationReflector class has been moved to the Jamon Processor project.
- [INCOMPATIBLE] Jamon now depends on at least version 6 of Java.
Maven Plugin Changes from 2.3.4 to 2.4.0
- This plugin is now marked as thread safe.
- It is now considered an error if the template source directory is missing.
Processor Changes from 2.3.3 to 2.3.4
- Add support to RecompilingTemplateManager for the Java 6 Compiler API (Issue 3158365)
Maven Plugin Changes from 2.3.3 to 2.3.4
- The translate and translate-test goals no longer fork a parallel maven build. (Issue 3220885)
Maven Plugin Changes from 2.3.2 to 2.3.3
- Only process changed template files. (Issue 3156388)
-
[INCOMPATIBLE]
The default directory for generated sources has changed
from
${project.build.directory}/tsrc
to${project.build.directory}/generated-sources/jamon
. -
[INCOMPATIBLE]
The default directory for generated test sources has changed
from ${project.build.directory}/test-tsrc to
${project.build.directory}/generated-test-sources/jamon
. - Update jamon-processor dependency to version 2.3.4.
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 thegetCause
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
<% ... %>
) 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
- Added a positional parameter passing syntax for invoking templates and subtemplates.
-
[INCOMPATIBLE]
The writer is publicly accessible as
jamonWriter
variable, and is no longer an instance on the template. -
[INCOMPATIBLE]
Fixed and refactored reflective template invocation, adding
facilities to introspect on template arguments and types.
Invoker
becomesTemplateInspector
. -
[INCOMPATIBLE]
Renderer
becomes an interface,AbstractRenderer
replaces it as the abstract superclass. -
[INCOMPATIBLE]
Default escaping is no longer set at runtime
via
escapeWith
, but statically declared via<%escaping ...>
directive. -
[INCOMPATIBLE]
Flushing the writer after rendering is now done via
autoFlush()
method, but done by default unless callrenderNoFlush()
. - Fixed some subtle bugs in automatic template regeneration and recompilation.
-
Changes to the
<%import>
sections are no longer included in determining if a template (proxy) needs regeneration. The (degenerate) use case that will break involves changing<%import> java.util.Date; </%import> <%args> Date date; </%args>
to<%import> java.sql.Date; </%import> <%args> Date date; </%args>
within a template, which is unlikely enough to be ignorable. - Fixed JDK 1.3 compatibility issues