Skip to content

Commit dd915e5

Browse files
authored
Merge pull request #52 from OP-TED/main
Merge main into develop
2 parents c2a07ba + 88b401e commit dd915e5

File tree

5 files changed

+40
-11
lines changed

5 files changed

+40
-11
lines changed

CHANGELOG.md

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,38 @@
1-
# eForms Core Library 1.5.0 Release Notes
1+
# eForms Core Library 1.6.0 Release Notes
22

3-
The eForms Core Library is a collection of utilities that are used by our sample applications as well as the EFX Toolkit for Java Developers.
3+
The eForms Core Library is a collection of utilities used by the EFX Toolkit for Java Developers and other eForms applications.
44

55
## In this release
66

7-
This release fixes an issue in the XPathProcessor that could cause a redundant predicate production when contextualising XPaths with multiple predicates.
7+
### SDK entity improvements
88

9-
The versions of various dependencies was updated: Apache Commons IO 2.19.0, Apache Commons Lang 3.18.0, Jackson 2.18.3, logback 1.5.18.
9+
- Versioned SDK entity classes (`SdkFieldV1`, `SdkFieldV2`, `SdkNodeV1`, `SdkNodeV2`, etc.) have been moved from the EFX Toolkit into the core library, consolidating version-specific implementations in a single location.
10+
- `SdkNode` now supports parent node references and ancestor chain traversal via `getAncestry()`.
11+
- `SdkField` now exposes repeatability information, parent node references, and parsed XPath metadata via `getXpathInfo()`.
12+
- Repository classes (`SdkNodeRepository`, `SdkFieldRepository`) now use two-pass loading to wire parent-child relationships during initialization.
13+
14+
### Privacy and data type support
15+
16+
- Added `PrivacySettings` to `SdkField`, providing access to privacy code, justification, publication date, and related field references.
17+
- Introduced `SdkDataType` entity and `SdkDataTypeRepository` for field type-level metadata including privacy masking values.
18+
- Separated `duration` as a distinct data type from `measure`.
19+
20+
### Notice subtype management
21+
22+
- Added `SdkNoticeSubtype` entity with intelligent ID parsing (prefix/number/suffix decomposition) and correct sorting order.
23+
- Added `SdkNoticeTypeRepository` to load and manage notice subtypes.
24+
25+
### Utilities
26+
27+
- Moved `NoticeDocument` and `SafeDocumentBuilder` from the eforms-notice-viewer into the core library. `NoticeDocument` provides secure XML parsing with accessors for notice subtype, SDK version, and language detection. `SafeDocumentBuilder` implements XXE prevention following OWASP guidelines.
28+
29+
### Component registry
30+
31+
- Added component types for dependency extraction (`EFX_COMPUTE_DEPENDENCY_EXTRACTOR`, `EFX_VALIDATION_DEPENDENCY_EXTRACTOR`) and EFX rules translation (`EFX_RULES_TRANSLATOR`).
32+
33+
### Dependencies
34+
35+
- Updated versions of various dependencies.
1036

1137
## Download
1238

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
<groupId>eu.europa.ted.eforms</groupId>
55
<artifactId>eforms-core-java</artifactId>
6-
<version>1.6.0-SNAPSHOT</version>
6+
<version>1.6.0</version>
77

88
<name>eForms Core Library</name>
99
<description>API and tools for eForms applications.</description>

src/main/java/eu/europa/ted/eforms/sdk/README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ The `eu.europa.ted.eforms.sdk` package contains the core classes and packages th
44

55
The main packages included here are:
66

7-
* `component`: Provides a solution for handling multiple major versions of the SDK in parallel.
7+
* `component`: Provides a solution for handling multiple major versions of the SDK in parallel.
8+
* `entity`: Provides abstract entity classes for representing SDK metadata (fields, nodes, codelists, notice subtypes, data types).
9+
* `repository`: Provides classes for reading SDK entities from JSON and Genericode files.
810
* `resource`: Provides a solution for automatically discovering and downloading new versions of the eForms SDK.
911

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
# Common Entities
22

3-
The entities in this package can be used while reading data from the eForms SDK. Currently there are only four entities implemented here:
3+
The entities in this package can be used while reading data from the eForms SDK. The following entities are implemented here:
44

5-
* `SdkField`: Can hold basic information about a field.
6-
* `SdkNode`: Can hold basic information about a node and reconstruct the node hierarchy.
5+
* `SdkField`: Can hold basic information about a field, including repeatability, parent node, XPath metadata, and privacy settings.
6+
* `SdkNode`: Can hold basic information about a node and reconstruct the node hierarchy via parent references and ancestor chain traversal.
77
* `SdkCodelist`: Can hold codelist information including its codes.
88
* `SdkNoticeSubtype`: Can hold information about a notice subtype from the SDK's notice-types.json file.
9+
* `SdkDataType`: Can hold field type-level metadata including privacy masking values.
910

1011
All the classes are abstract so that they can have specific implementations for different major versions of the eForms SDK if needed.
1112

1213
This package also includes a factory class (`SdkEntityFactory`) that is meant to be used for instantiating concrete implementations of these abstract entity classes for different major versions of the eForms SDK.
1314

14-
_There is no rocket science in the code in this package. You are welcome to reuse it. It is intended to be used primarily by the EFX Toolkit and our sample applications._

src/main/java/eu/europa/ted/eforms/sdk/repository/README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,5 @@ This package contains:
1010
* `SdkFieldRepository`: can populate a `HashMap` with `SdkField` objects read form `fields.json`
1111
* `SdkNodeRepository`: can populate a `HashMap` with `SdkNode` objects read form `fields.json`
1212
* `SdkCodelistRepository`: can populate a `HashMap` with `SdkCodelist` objects (including all codelist codes), by reading the `.gc` files from the `codelists` folder of the eForms SDK.
13-
* `SdkNoticeTypeRepository`: can populate a `HashMap` with `SdkNoticeSubtype` objects read from `notice-types.json`
13+
* `SdkNoticeTypeRepository`: can populate a `HashMap` with `SdkNoticeSubtype` objects read from `notice-types.json`
14+
* `SdkDataTypeRepository`: can populate a `HashMap` with `SdkDataType` objects

0 commit comments

Comments
 (0)