Skip to content

Releases: OP-TED/efx-toolkit-java

EFX Toolkit for Java 2.0.0-alpha.6

26 Mar 14:05
4fc014d

Choose a tag to compare

Pre-release

EFX Toolkit 2.0.0-alpha.6 Release Notes

The EFX Toolkit for Java developers is a library that enables the transpilation of EFX expressions and templates to different target languages. It also includes an implementation of an EFX-to-XPath transpiler.


In this release

This is a major update that brings the toolkit in line with the complete EFX-2 grammar as released with SDK 2.0.0-alpha.2.

EFX-2 language support

  • Implemented all new EFX-2 language features introduced in SDK 2.0.0-alpha.2. See the SDK changelog for the full list.

EFX Rules translator

  • Added a new EFX Rules to Schematron translator, enabling business rules authored in EFX to be transpiled into Schematron validation schemas.
  • Rules that apply to all notice subtypes are deduplicated into a shared Schematron pattern.
  • New ValidatorGenerator interface for Schematron output generation.

Dependency analysis

  • Added dependency extractors for EFX rules, producing dependency graphs that track field, codelist, and variable references.

Template translator

  • Dictionary lookups are now translated using XSL keys for better performance.
  • Profiling and timing support for template translation via new TranslatorOptions methods.

EFX autocomplete API

  • Added an autocomplete API for code editors, providing completion items for EFX keywords, built-in functions, and field properties.

New interfaces and classes

  • ValidatorGenerator: Interface for generating validation output (Schematron).
  • TranslatorContext: Interface providing translation context to MarkupGenerator methods.
  • TypeChecker: Interface for SDK-specific type validation.
  • IncludedFileResolver: Interface for resolving #include directives in EFX files.
  • New typed exception hierarchy: EfxCompilationException, InvalidArgumentException, InvalidIdentifierException, InvalidIndentationException, InvalidUsageException, SdkInconsistencyException, SymbolResolutionException, TranslatorConfigurationException, TypeMismatchException.

Bug fixes

  • Fixed invalid XPath in typed uniqueness conditions.
  • Fixed quote escaping in string literals.

EFX-1 Support

Although this is a pre-release version of the EFX Toolkit, it provides production-level support for EFX-1 transpilation. EFX-1 is the current version of EFX released with SDK 1.

NOTE: Transpilation of EFX-1 to XPath and XSL in this version of the EFX Toolkit is better than what is provided by EFX Toolkit 1.3.0.

Breaking changes

For users of the Toolkit that have implemented custom transpilers, this release contains breaking changes from 2.0.0-alpha.5:

  • The expression model has been refactored to separate scalar and sequence types. The path subpackage has been removed and path expression types have been moved and renamed (e.g. BooleanPathExpressionBooleanPath under scalar).
  • MarkupGenerator.composeOutputFile signature changed from 2 parameters to 5 (globals, main section, summary section, navigation section, fragments). The old signature is deprecated with a default implementation.
  • Several new methods have been added to the SymbolResolver, ScriptGenerator, and MarkupGenerator interfaces.
  • TranslatorOptions has three new methods without defaults: getUserDefinedFunctionNamespace(), isProfilerEnabled(), getProfilerOutputPath().
  • New typed exception classes replace previously generic exceptions.
  • Axis support and cross-notice references have been removed from the V2 translator.

Users of the Toolkit that only use the included EFX-to-XPath transpiler will not be affected by the above changes.

Future development

Further alpha and beta releases of SDK 2 and EFX Toolkit 2 will be issued. While in "alpha" development stage, further breaking changes may be introduced.


You can download the latest EFX Toolkit from Maven Central.
Maven Central

Documentation for the EFX Toolkit is available at: https://docs.ted.europa.eu/eforms/latest/efx-toolkit


This version of the EFX Toolkit has a compile-time dependency on the following eForms SDK versions and uses the EFX grammar that each version provides:

  • eForms SDK 1.x.x (SDK 1.13.0 grammar)
  • eForms SDK 2.0.0-alpha.2

It also depends on the eForms Core Java library version 1.6.0.

NOTE: The POM currently references SNAPSHOT versions for the SDK 2 and Core dependencies. These will be updated to released versions before publication.

EFX Toolkit for Java 2.0.0-alpha.5

30 Jul 12:24
2c42661

Choose a tag to compare

Pre-release

EFX Toolkit 2.0.0-alpha.5 Release Notes

The EFX Toolkit for Java developers is a library that enables the transpilation of EFX expressions and templates to different target languages. It also includes an implementation of an EFX-to-XPath transpiler.


In this release

This release fixes a bug that could result in incorrect context computation for EFX template lines when the same field or node was used as both the parent and child line's context using different predicates. The EFX template translator now correctly calculates the child context, ignoring the predicate of the parent context.

EFX-1 Support

Although this is a pre-release version of the EFX Toolkit, it provides production-level support for EFX-1 transpilation. EFX-1 is the current version of EFX released with SDK 1.

NOTE: Transpilation of EFX-1 to XPath and XSL in this version of the EFX Toolkit is better than what is provided by EFX Toolkit 1.3.0.

EFX-2 Support

The new version of EFX is still under development and will be released with SDK 2.0.0. For more information on EFX-2 see the release notes of the eForms SDK 2.0.0-alpha.1.

Breaking changes

For users of the Toolkit that have implemented custom transpilers, this release contains a few breaking changes from 1.3.0.
More specifically:

  • Some additional methods have been added to the SymbolResolver, ScriptGenerator and MarkupGenerator API. As a guide for your implementations please look a the implementations included in the EFX Toolkit for use by the EFX-to-XPath transpilation.
  • Some deprecated methods were removed.
  • An extensive refactoring in the type management system has rearranged the package structure. As a result some import statements in your code will need to be updated.

Users of the Toolkit that only use the included EFX-to-XPath transpiler will not be affected by the above changes.

Future development

Further alpha and beta releases of SDK 2 and EFX Toolkit 2 will be issued. While in "alpha" development stage, further breaking changes may be introduced.


You can download the latest EFX Toolkit from Maven Central.
Maven Central

Documentation for the EFX Toolkit is available at: https://docs.ted.europa.eu/eforms/latest/efx-toolkit


This version of the EFX Toolkit has a compile-time dependency on the following versions of eForms SDK versions and uses the EFX grammar that each version provides:

  • eForms SDK 1.x.x
  • eForms SDK 2.0.0-alpha.1

It also depends on the eForms Core Java library version 1.5.0.

EFX Toolkit for Java 2.0.0-alpha.4

02 Aug 10:25
96ddd42

Choose a tag to compare

Pre-release

EFX Toolkit 2.0.0-alpha.4 Release Notes

The EFX Toolkit for Java developers is a library that enables the transpilation of EFX expressions and templates to different target languages. It also includes an implementation of an EFX-to-XPath transpiler.


In this release

This release fixes an a bug that caused variables and parameters to be in the wrong order in the generated XSL.

A "qualifier" parameter was added in various methods, to allow the use of the corresponding new feature in the eForms Core Library 1.4.0.

The dependency on ANTLR was updated to version 4.13.1.

EFX-1 Support

Although this is a pre-release version of the EFX Toolkit, it provides production-level support for EFX-1 transpilation. EFX-1 is the current version of EFX released with SDK 1.

NOTE: Transpilation of EFX-1 to XPath and XSL in this version of the EFX Toolkit is better than what is provided by EFX Toolkit 1.3.0.

EFX-2 Support

The new version of EFX is still under development and will be released with SDK 2.0.0. For more information of EFX-2 see the release notes of the eForms SDK 2.0.0-alpha.1.

Breaking changes

For users of the Toolkit that have implemented custom transpilers, this release contains a few breaking changes from 1.3.0.
More specifically:

  • Some additional methods have been added to the SymbolResolver, ScriptGenerator and MarkupGenerator API. As a guide for your implementations please look a the implementations included in the EFX Toolkit for use by the EFX-to-XPath transpilation.
  • Some deprecated methods were removed.
  • An extensive refactoring in the type management system has rearranged the package structure. As a result some import statements in your code will need to be updated.

Users of the Toolkit that only use the included EFX-to-XPath transpiler will not be affected by the above changes.

Future development

Further alpha and beta releases of SDK 2 and EFX Toolkit 2 will be issued. While in "alpha" development stage, further breaking changes may be introduced.


You can download the latest EFX Toolkit from Maven Central.
Maven Central

Documentation for the EFX Toolkit is available at: https://docs.ted.europa.eu/eforms/latest/efx-toolkit


This version of the EFX Toolkit has a compile-time dependency on the following versions of eForms SDK versions and uses the EFX grammar that each version provides:

  • eForms SDK 1.x.x
  • eForms SDK 2.0.0-alpha.1

It also depends on the eForms Core Java library version 1.4.0.

EFX Toolkit for Java 2.0.0-alpha.3

16 Feb 10:30
05b0a51

Choose a tag to compare

Pre-release

Release Notes

The EFX Toolkit for Java developers is a library that enables the transpilation of EFX expressions and templates to different target languages. It also includes an implementation of an EFX-to-XPath transpiler.


In this release

This release fixes an a bug that caused an exception to be thrown by XSLT processors when trying to format sequences of dates or times.
This bug was reported by a user in eForms Notice Viewer issue #88.

EFX-1 Support

Although this is a pre-release version of the EFX Toolkit, it provides production-level support for EFX-1 transpilation. EFX-1 is the current version of EFX released with SDK 1.

NOTE: Transpilation of EFX-1 to XPath and XSL in this version of the EFX Toolkit is better than what is provided by EFX Toolkit 1.3.0.

EFX-2 Support

The new version of EFX is still under development and will be released with SDK 2.0.0. For more information of EFX-2 see the release notes of the eForms SDK 2.0.0-alpha.1.

Breaking changes

For users of the Toolkit that have implemented custom transpilers, this release contains a few breaking changes.
More specifically:

  • Some additional methods have been added to the SymbolResolver, ScriptGenerator and MarkupGenerator API. As a guide for your implementations please look a the implementations included in the EFX Toolkit for use by the EFX-to-XPath transpilation.
  • Some deprecated methods were removed.
  • An extensive refactoring in the type management system has rearranged the package structure. As a result some import statements in your code will need to be updated.

Users of the Toolkit that only use the included EFX-to-XPath transpiler will not be affected by the above changes.

Future development

Further alpha and beta releases of SDK 2 and EFX Toolkit 2 will be issued. While in "alpha" development stage, further braking changes may be introduced. SDK 2 and EFX 2 are expected to continue to be under development through the first quarter of 2024.


You can download the latest EFX Toolkit from Maven Central.
Maven Central

Documentation for the EFX Toolkit is available at: https://docs.ted.europa.eu/eforms/latest/efx-toolkit


This version of the EFX Toolkit has a compile-time dependency on the following versions of eForms SDK versions and uses the EFX grammar that each version provides:

  • eForms SDK 1.x.x
  • eForms SDK 2.0.0-alpha.1

It also depends on the eForms Core Java library version 1.3.0.

EFX Toolkit for Java 2.0.0-alpha.2

11 Dec 16:35
80b40c2

Choose a tag to compare

Pre-release

Release Notes

The EFX Toolkit for Java developers is a library that enables the transpilation of EFX expressions and templates to different target languages. It also includes an implementation of an EFX-to-XPath transpiler.


In this release

This release improves translation of EFX-1 templates as follows:

  • Renders sequences of labels when a sequence expression is used to provide asset-ids.
  • Renders distinct labels from sequences.
  • Improves date and time formatting.

This release also includes a refactoring that moved XPath processing classes to the eForms Core Library 1.2.0 to improve reusability.

There are no changes in EFX-2 translation included in this release.

EFX-1 Support

Although this is a pre-release version of the EFX Toolkit, it provides production-level support for EFX-1 transpilation. EFX-1 is the current version of EFX released with SDK 1.

NOTE: Transpilation of EFX-1 to XPath and XSL in this version of the EFX Toolkit is better than what is provided by EFX Toolkit 1.3.0.

EFX-2 Support

The new version of EFX is still under development and will be released with SDK 2.0.0. For more information of EFX-2 see the release notes of the eForms SDK 2.0.0-alpha.1.

Breaking changes

For users of the Toolkit that have implemented custom transpilers, this release contains a few breaking changes.
More specifically:

  • Some additional methods have been added to the SymbolResolver, ScriptGenerator and MarkupGenerator API. As a guide for your implementations please look a the implementations included in the EFX Toolkit for use by the EFX-to-XPath transpilation.
  • Some deprecated methods were removed.
  • An extensive refactoring in the type management system has rearranged the package structure. As a result some import statements in your code will need to be updated.

Users of the Toolkit that only use the included EFX-to-XPath transpiler will not be affected by the above changes.

Future development

Further alpha and beta releases of SDK 2 and EFX Toolkit 2 will be issued. While in "alpha" development stage, further braking changes may be introduced. SDK 2 and EFX 2 are expected to continue to be under development through the first quarter of 2024.


You can download the latest EFX Toolkit from Maven Central.
Maven Central

Documentation for the EFX Toolkit is available at: https://docs.ted.europa.eu/eforms/latest/efx-toolkit


This version of the EFX Toolkit has a compile-time dependency on the following versions of eForms SDK versions and uses the EFX grammar that each version provides:

  • eForms SDK 1.x.x
  • eForms SDK 2.0.0-alpha.1

It also depends on the eForms Core Java library version 1.3.0.

EFX Toolkit for Java 2.0.0-alpha.1

28 Jul 15:53
02c7eab

Choose a tag to compare

Pre-release

Release Notes

The EFX Toolkit for Java developers is a library that enables the transpilation of EFX expressions and templates to different target languages. It also includes an implementation of an EFX-to-XPath transpiler.


In this release

This release:

  • Improves translation of EFX-1.
  • Adds support for translating EFX-2 expressions and templates.
  • Removes support of the obsolete EFX versions included in pre-release versions of the SDK (SDK 0.x.x).
  • Introduces some breaking changes in the interfaces that need to be implemented by new translators (SymbolResolver, ScriptGenerator, MarkupGenerator).

EFX-1 Support

Although this is a pre-release version of the EFX Toolkit, it provides production-level support for EFX-1 transpilation.
EFX-1 is the current version of EFX released with SDK 1. Transpilation of EFX-1 to XPath is on par with the EFX Toolkit 1.3.0.

EFX-2 Support

The new version of EFX is still under development and will be released with SDK 2.0.0. For more information of EFX-2 see the release notes of the eForms SDK 2.0.0-alpha.1.

Breaking changes

For users of the Toolkit that have implemented custom transpilers, this release contains a few breaking changes.
More specifically:

  • Some additional methods have been added to the SymbolResolver, ScriptGenerator and MarkupGenerator API. As a guide for your implementations please look a the implementations included in the EFX Toolkit for use by the EFX-to-XPath transpilation.
  • Some deprecated methods were removed.
  • An extensive refactoring in the type management system has rearranged the package structure. As a result some import statements in your code will need to be updated.

Users of the Toolkit that only use the included EFX-to-XPath transpiler will not be affected by the above changes.

Future development

Further alpha and beta releases of SDK 2 and EFX Toolkit 2 will be issued. While in "alpha" development stage, further braking changes may be introduced. SDK 2 and EFX 2 are expected to continue to be under development util late 2023.


You can download the latest EFX Toolkit from Maven Central.
Maven Central

Documentation for the EFX Toolkit is available at: https://docs.ted.europa.eu/eforms/latest/efx-toolkit


This version of the EFX Toolkit has a compile-time dependency on the following versions of eForms SDK versions and uses the EFX grammar that each version provides:

  • eForms SDK 1.x.x
  • eForms SDK 2.0.0-alpha.1

It also depends on the eForms Core Java library version 1.0.5.

EFX Toolkit for Java 1.3.0

25 Jul 09:15
eafaa82

Choose a tag to compare

Release Notes

The EFX Toolkit for Java developers is a library that enables the transpilation of EFX expressions and templates to different target languages. It also includes an implementation of an EFX-to-XPath transpiler.


In this release:

  • Updated the XPath 2.0 parser, XPathContextualizer and XPathScriptGenerator to correctly translate sequences.
  • Improved numeric formatting. The EfxTranslator API now includes overloaded methods that permit control of numeric formatting. The existing API has been preserved.
  • Improved handling of multilingual text fields by adding automatic selection of the visualisation language.

You can download the latest EFX Toolkit from Maven Central.
Maven Central

Documentation for the EFX Toolkit is available at: https://docs.ted.europa.eu/eforms/latest/efx-toolkit


This version of the EFX Toolkit has a compile-time dependency on the following versions of eForms SDK versions and uses the EFX grammar that each version provides:

  • eForms SDK 0.6.x
  • eForms SDK 0.7.x
  • eForms SDK 1.x.x

It also depends on the eForms Core Java library version 1.0.5.

EFX Toolkit for Java 1.2.0

31 Oct 10:16

Choose a tag to compare

Release Notes

The EFX Toolkit for Java developers is a library that enables the transpilation of EFX expressions and templates to different target languages. It also includes an implementation of an EFX-to-XPath transpiler.


In this release:

  • We fixed a bug in the XPathScriptGenerator that was causing references to fields of type measure (duration) to throw an exception when multiple values where matched by the reference.
  • We fixed an issue in the SdkSymbolResolver that was causing some code labels to be resolved incorrectly. The SdkSymbolResolver now correctly looks for the root codelist associated with a field in the codelist metadata provided in the codelists folder, instead of relying on the codelist constraint metadata provided in fields.json.
    ⚠️ CAUTION: If you have implemented your own SymbolResolver make sure that your implementation of getRootCodelistOfField retrieves the parent codelist information from codelists/codelists.json or directly from the .gc files in the codelists folder of the eForms SDK.
  • We refactored the code to move to the eForms Core Java library some common entity classes that were not specific to EFX (SdkEntityFactory, SdkField, SdkNode, SdkCodelist). We also moved into the EFX Toolkit some reusable classes (SdkSymbolResolver, ComponentFactory) from the eForms Notice Viewer sample application. The result of this refactoring is efx-toolkit-java-1.2.0, eforms-core-java-1.0.0 and eforms-notice-viewer-0.6.0.

You can download the latest EFX Toolkit from Maven Central.
Maven Central

Documentation for the EFX Toolkit is available at: https://docs.ted.europa.eu/eforms/latest/efx-toolkit


This version of the EFX Toolkit has a compile-time dependency on the following versions of eForms SDK versions and uses the EFX grammar that each version provides:

  • eForms SDK 0.6.x
  • eForms SDK 0.7.x
  • eForms SDK 1.x.x

It also depends on the eForms Core Java library version 1.0.0.

EFX Toolkit for Java 1.1.1

20 Oct 15:20
5a98146

Choose a tag to compare

EFX Toolkit 1.1.1 Release Notes

The EFX Toolkit for Java developers is a library that enables the transpilation of EFX expressions and templates to different target languages. It also includes an implementation of an EFX-to-XPath transpiler.


In this release:

  • We fixed a bug that was causing (in some cases) the wrong relative XPath to be calculated for fields that point to XML attributes.
  • We fixed an issue with variable scoping in EFX Templates.

You can download the latest EFX Toolkit from Maven Central.
Maven Central

Documentation for the EFX Toolkit is available at: https://docs.ted.europa.eu/eforms/latest/efx-toolkit


This version of the EFX Toolkit has a compile-time dependency on the following versions of eForms SDK versions and uses the EFX grammar that each version provides:

  • eForms SDK 0.6.x
  • eForms SDK 0.7.x
  • eForms SDK 1.x.x

It also depends on the eForms Core Java library version 0.1.1.

EFX Toolkit for Java 1.1.0

12 Oct 15:30
119bf1a

Choose a tag to compare

EFX Toolkit 1.1.0 Release Notes

The EFX Toolkit for Java developers is a library that enables the transpilation of EFX expressions and templates to different target languages. It also includes an implementation of an EFX-to-XPath transpiler.


In this release:

In this release we moved some utility classes to a new java library: eforms-core-java. These utility classes enable the parallel use of multiple major versions of the SDK by applications. We decided to extract this functionality to a new shared library so that it can also be used by applications that do not necessarily need EFX translation.

This release also removes the need to use the "classindex" annotation processor plugin. You can remove the following section from your pom.xml:

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>${version.compiler.plugin}</version>
    <configuration>
      <annotationProcessorPaths>
        <annotationProcessorPath>
          <groupId>org.atteo.classindex</groupId>
          <artifactId>classindex</artifactId>
          <version>${version.classindex}</version>
        </annotationProcessorPath>
      </annotationProcessorPaths>
    </configuration>
  </plugin>

You can download the latest EFX Toolkit from Maven Central.
Maven Central

Documentation for the EFX Toolkit is available at: https://docs.ted.europa.eu/eforms/latest/efx-toolkit


This version of the EFX Toolkit has a compile-time dependency on the following versions of eForms SDK versions and uses the EFX grammar that each version provides:

  • eForms SDK 0.6.x
  • eForms SDK 0.7.x
  • eForms SDK 1.x.x

It also depends on the eForms Core Java library version 0.1.0.