Server

Nuxeo Server LTS 2021 Release Notes

Updated: June 14, 2024

This page relates to the release notes of Nuxeo Server and related addons for LTS 2021 cycle. It will list the improvements and features that are successively shipped with the 2021.x releases.

Oracle Linux 7 Upgrade
Starting from LTS 2021.54 released in May 2024, we will be transitioning our LTS 2021 Nuxeo Server distributed Docker image from CentOS 7 to Oracle Linux 7. Please refer to the upgrade notes for detailed information.

Upgrade Notes
This page mentions what's new. Refer to the upgrade notes to transition to this version.

What's New in LTS 2021.55 / LTS 2021-HF55

Make Sure Unit Tests Are Run in a Predictable Order

Unit tests are now executed in alphabetical order

 More on JIRA ticket NXP-32576

Backport HttpClientTestRule Improvements

Introducing HttpClientTestRule to execute HTTP requests in tests

We introduce a new way to perform HTTP requests in tests that is aimed to replace BaseTest. This new API is more flexible by adopting a builder pattern like, it also brings HTTP request/response debug logging when the HTTP execution or the assertion in executeAnd* APIs fail, for instance:

2024-05-06 15:03:53,254 [main] ERROR [HttpClientTestRuleLogger] An error occurred during HTTP request execution or during HTTP response handling:
    HTTP request:
        POST http://localhost:54822/api/v1/path/folder_0 HTTP/1.1
        Headers:
            Authorization: Basic QWRtaW5pc3RyYXRvcjpBZG1pbmlzdHJhdG9y
            X-NXDocumentProperties: dublincore
            Content-Type: application/json
        Body:
            {
              "entity-type": "document",
              "type": "File",
              "name": "newName",
              "properties": {
                "dc:title": "My title",
                "dc:description": " "
              }
            }

    HTTP response:
        201 No Reason Phrase sent by Server HTTP/1.1
        Headers:
            X-Frame-Options: SAMEORIGIN
            Referrer-Policy: strict-origin-when-cross-origin
            X-UA-Compatible: IE=10; IE=11
            Cache-Control: no-cache
            X-Content-Type-Options: nosniff
            Content-Security-Policy: img-src data: blob: *; default-src blob: *; script-src 'unsafe-inline' 'unsafe-eval' data: *; style-src 'unsafe-inline' *; font-src data: *
            X-XSS-Protection: 1; mode=block
            Content-Type: application/json; nuxeo-entity=document
            Transfer-Encoding: chunked
            Date: Mon, 06 May 2024 13:03:53 GMT
            Connection: close
        Body:
            {
              "entity-type" : "document",
              "repository" : "test",
              "uid" : "0ae61509-4a87-4182-9630-a7f10fd395d9",
              "path" : "/folder_0/newName",
              "type" : "File",
              "state" : "project",
              "parentRef" : "bcebcc66-0bba-43b9-8607-a25da4d93b08",
              "isCheckedOut" : true,
              "isRecord" : false,
              "retainUntil" : null,
              "hasLegalHold" : false,
              "isUnderRetentionOrLegalHold" : false,
              "isVersion" : false,
              "isProxy" : false,
              "changeToken" : "0-0",
              "isTrashed" : false,
              "title" : "My title",
              "lastModified" : "2024-05-06T13:03:53.231Z",
              "properties" : {
                "dc:description" : " ",
                "dc:language" : null,
                "dc:coverage" : null,
                "dc:valid" : null,
                "dc:creator" : "Administrator",
                "dc:modified" : "2024-05-06T13:03:53.231Z",
                "dc:lastContributor" : "Administrator",
                "dc:rights" : null,
                "dc:expired" : null,
                "dc:format" : null,
                "dc:created" : "2024-05-06T13:03:53.231Z",
                "dc:title" : "My title",
                "dc:issued" : null,
                "dc:nature" : null,
                "dc:subjects" : [ ],
                "dc:contributors" : [ "Administrator" ],
                "dc:source" : null,
                "dc:publisher" : null
              },
              "facets" : [ "Versionable", "NXTag", "Publishable", "Commentable", "HasRelatedText", "Downloadable" ],
              "schemas" : [ {
                "name" : "uid",
                "prefix" : "uid"
              }, {
                "name" : "file",
                "prefix" : "file"
              }, {
                "name" : "common",
                "prefix" : "common"
              }, {
                "name" : "files",
                "prefix" : "files"
              }, {
                "name" : "dublincore",
                "prefix" : "dc"
              }, {
                "name" : "relatedtext",
                "prefix" : "relatedtext"
              }, {
                "name" : "facetedTag",
                "prefix" : "nxtag"
              } ]
            }



java.lang.AssertionError: HTTP response status mismatch, 
Expected :200
Actual   :201
<Click to see difference>


    at org.nuxeo.http.test.handler.AbstractStatusCodeHandler.handleResponse(AbstractStatusCodeHandler.java:49)
    at org.nuxeo.http.test.HttpClientTestRule.executeAndThen(HttpClientTestRule.java:454)

Let say we have a test class testing or FooObject deployed at /api/v1/foo like this:

@RunWith(FeaturesRunner.class)
@Features({ RestServerFeature.class })
public class FooTest extends BaseTest {

    @Test
    public void testObject() {
        try (CloseableClientResponse response = getResponse(RequestType.GET, "/foo")) {
            // Then it returns a OK
            assertEquals(Response.Status.OK.getStatusCode(), response.getStatus());
            JsonNode node = mapper.readTree(response.getEntityInputStream());
            // Then some assertion
        }
    }
}

This would be replaced by:

@RunWith(FeaturesRunner.class)
@Features({ RestServerFeature.class })
public class FooTest {

    @Inject
    protected RestServerFeature restServerFeature;

    @Rule
    public final HttpClientTestRule httpClient = HttpClientTestRule.defaultClient(
            () -> restServerFeature.getRestApiUrl());

    @Test
    public void testObject() {
        httpClient.buildGetRequest("/foo").executeAndConsume(new JsonNodeHandler(), node -> {
            // Then some assertion
        });
    }
}

You can find all available APIs in our javadoc

 More on JIRA ticket NXP-32535

Forbid Jakarta Dependencies in Nuxeo Build

Jakarta dependencies not used by Nuxeo are now forbidden in the Maven build

 More on JIRA ticket NXP-32501

Upgrade or Remove Htmlunit From Nuxeo-Features-Test to Avoid Vulnerability

org.seleniumhq.selenium and net.sourceforge.htmlunit. are no longer dependencies of the nuxeo core platform modules

 More on JIRA ticket NXP-32447

Learn More

More information about released changes and fixed bugs is available in our bug tracking tool.

Upgrade Notes
Refer to the LTS 2021 upgrade notes to transition to this version.

LTS 2021 Release Notes summary

Version Release date
LTS 2023.55 / 2023-HF55 2024-06-10
LTS 2023.54 / 2023-HF54 2024-05-20
LTS 2023.53 / 2023-HF53 2024-04-29
LTS 2023.52 / 2023-HF52 2024-04-08
LTS 2023.51 / 2023-HF51 2024-03-18
LTS 2023.50 / 2023-HF50 2024-02-26
LTS 2023.49 / 2023-HF49 2024-02-05
LTS 2023.48 / 2023-HF48 2024-01-08
LTS 2023.47 / 2023-HF47 2023-12-18
LTS 2023.46 / 2023-HF46 2023-11-13
LTS 2023.45 / 2023-HF45 2023-10-23
LTS 2023.44 / 2023-HF44 2023-10-02
LTS 2023.43 / 2023-HF43 2023-09-11
LTS 2021.32 / 2021-HF32 2023-01-24
LTS 2021.31 / 2021-HF31 2023-01-09
LTS 2021.30 / 2021-HF30 2022-12-12
LTS 2021.29 / 2021-HF29 2022-11-23
LTS 2021.28 / 2021-HF28 2022-11-07
LTS 2021.27 / 2021-HF27 2022-10-10
LTS 2021.26 / 2021-HF26 2022-09-19
LTS 2021.25 / 2021-HF25 2022-08-29
LTS 2021.24 / 2021-HF24 2022-08-08
LTS 2021.23 / 2021-HF23 2022-07-18
LTS 2021.22 / 2021-HF22 2022-07-04
LTS 2021.21 / 2021-HF21 2022-06-07
LTS 2021.20 / 2021-HF20 2022-05-16
LTS 2021.19 / 2021-HF19 2022-04-26
LTS 2021.18 / 2021-HF18 2022-04-04
LTS 2021.17 / 2021-HF17 2022-03-14
LTS 2021.16 / 2021-HF16 2022-02-21
LTS 2021.15 / 2021-HF15 2022-01-31
LTS 2021.14 / 2021-HF14 2022-01-10
LTS 2021.13 / 2021-HF13 2021-12-16
LTS 2021.12 / 2021-HF12 2021-12-01
LTS 2021.11 / 2021-HF11 2021-11-08
LTS 2021.10 / 2021-HF10 2021-10-14
LTS 2021.9 / 2021-HF09 2021-09-28
LTS 2021.8 / 2021-HF08 2021-09-06
LTS 2021.7 / 2021-HF07 2021-08-16
LTS 2021.6 / 2021-HF06 2021-07-16
LTS 2021.5 / 2021-HF05 2021-07-01
LTS 2021.4 / 2021-HF04 2021-06-16
LTS 2021.3 / 2021-HF03 2021-05-18
LTS 2021.2 / 2021-HF02 2021-05-11
LTS 2021.1 / 2021-HF01 2021-01-21 - Initial release