Skip to content

API Change Documentation

March 2025

Etendo Platform Stack Upgrade

Java SE

Gradle

Warning

To update the Gradle wrapper in an existing environment , you must run:

Terminal
    ./gradlew wrapper --gradle-version 8.12.1 

For more detailed migration guidelines, refer to Upgrading Gradle Wrapper

Apache Tomcat

Etendo gradle Plugin

  • New Version Supported: 2.0.0
  • Release Notes:

    • Etendo Gradle Plugin 2.0.0
    • New Gradle Plugin Task:

      Terminal
      ./gradlew cleanExpandCore
      
      This new task deletes directories created by the expandCore task.

    • Compatibility Flag

      Terminal
      -Pjava.version=11
      
      This new flag forces the use of Java 11 with version 25Q1.

Etendo ISO

Note

The Etendo 25.x ISOs are currently based on Ubuntu Live Server 22.04.5 amd64 image.
For more information, visit Etendo ISO Release Notes.

Third-Party Libraries

All libraries previously located in /lib/runtime as JAR files have been updated to Gradle dependencies now defined in the artifacts.list.COMPILATION.gradle file at the root of the project.

Updated Libraries

  • dbsourcemanager.jar -> com.etendoerp.dbsm version 1.1.0

    • Release Notes:

      • Changes to use new version of Apache Commons Lang 3 library.
      • Changes to use new version of Apache Commons Collections 4 library.
      • Changes in deprecated or removed features used in Java 17.
      • Added support for PostgreSQL 16.
  • commons-collections.commons-collections 3.2.2 -> 4.4

    • Release Notes:

    • API Changes - Migration from Apache Commons Collections 3.2.2 to 4.4:

      Starting with Etendo 25.1.0, Apache Commons Collections has been upgraded from 3.2.2 to 4.4. This version introduces a new package structure. Classes previously imported from org.apache.commons.collections must now be updated to org.apache.commons.collections4.

    • Migration Instructions:

      Update all import statements and references to reflect the new package structure:

      // Before (Apache Commons Collections 3.2.2)
      import org.apache.commons.collections.CollectionUtils;
      
      // After (Apache Commons Collections 4.4)
      import org.apache.commons.collections4.CollectionUtils;
      

      Additionally, review your code for deprecated, removed, or modified methods to ensure full compatibility with the updated library.

    Info

    For detailed migration guidelines, please refer to the Apache Commons Collections 4.4 documentation.

  • org.apache.commons:commons-lang3 2.6 -> 3.17.0

  • org.hibernate.common.hibernate-commons-annotations 5.1.0.Final -> 5.1.2.Final

  • org.hibernate:hibernate-core 5.4.2.Final -> 5.6.15.Final

  • net.sf.jasperreports.jasperreports-fonts 6.0.0 -> 6.17.0

  • net.sf.jasperreports.jasperreports 6.0.0 -> 6.17.0

  • org.apache.poi.poi 3.10.1 -> 5.4.0

  • Apache POI 5.x Migration Guide

    This guide outlines the necessary changes to migrate projects using Apache POI 3.x/4.x to version 5.x, including how to replace deprecated classes, methods, and constants removed in recent versions.

    1. Replacing Deprecated Constants (CellType)

      In POI 5.x, the Cell.CELL_TYPE_* constants are replaced by the CellType enum.

      Example:

      // Before
      cell.getCellType() == Cell.CELL_TYPE_STRING;
      
      // After
      cell.getCellType() == CellType.STRING;
      

      Key Mappings:

      Old Constant New Constant
      Cell.CELL_TYPE_STRING CellType.STRING
      Cell.CELL_TYPE_NUMERIC CellType.NUMERIC
      Cell.CELL_TYPE_BOOLEAN CellType.BOOLEAN
      Cell.CELL_TYPE_FORMULA CellType.FORMULA
      Cell.CELL_TYPE_BLANK CellType.BLANK

      Required Import:

      import org.apache.poi.ss.usermodel.CellType;
      
    2. Updating Cell Styles

      Alignment

      Old Constant New Constant
      CellStyle.ALIGN_LEFT HorizontalAlignment.LEFT
      CellStyle.ALIGN_CENTER HorizontalAlignment.CENTER
      CellStyle.ALIGN_RIGHT HorizontalAlignment.RIGHT
          - CellStyle.ALIGN_CENTER → 
          -  →
      
      // Before
      style.setAlignment(CellStyle.ALIGN_CENTER);
      
      // After
      style.setAlignment(HorizontalAlignment.CENTER);
      
      import org.apache.poi.ss.usermodel.HorizontalAlignment;
      

      Fill Patterns

      // Before
      style.setFillPattern(CellStyle.SOLID_FOREGROUND);
      
      // After
      style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
      
      import org.apache.poi.ss.usermodel.FillPatternType;
      

      Borders

      // Before
      setBorderBottom((short) 1);
      
      // After
      setBorderBottom(BorderStyle.THIN);
      
      import org.apache.poi.ss.usermodel.BorderStyle;
      
    3. Fonts API Changes

      The Font.setBoldweight() method is deprecated.
      Now, you should use Font.setBold(boolean).

      Example:

      // Before
      font.setBoldweight(Font.BOLDWEIGHT_BOLD);
      
      // After
      font.setBold(true);
      
      // Before
      font.setBoldweight(Font.BOLDWEIGHT_NORMAL);
      
      // After
      font.setBold(false);
      
    4. Formula Evaluation API Changes:

      // Before
      switch (cellValue.getCellType()) {
          case Cell.CELL_TYPE_NUMERIC:
      }
      
      // After
      switch (cellValue.getCellType()) {
          case NUMERIC:
      }
      

      Evaluating formulas:

      FormulaEvaluator evaluator = workbook.getCreationHelper().createFormulaEvaluator();
      CellValue cellValue = evaluator.evaluate(cell);
      

      Complete Example:

      CellValue cellValue = evaluator.evaluate(cell);
      switch (cellValue.getCellType()) {
          case STRING:
              return cellValue.getStringValue();
          // other cases...
      }
      
    5. Additional Best Practices

      Avoid creating new XSSFWorkbook() unnecessarily. Instead, reuse:

      Workbook workbook = cell.getSheet().getWorkbook();
      

      Use modern Map API:

      // Instead of containsKey + put
      map.computeIfAbsent(key, k -> new ArrayList<>());
      
    6. Full Migration Example

      // Before
      cellFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
      style.setAlignment(CellStyle.ALIGN_RIGHT);
      style.setFillPattern(CellStyle.SOLID_FOREGROUND);
      
      // After
      cellFont.setBold(true);
      style.setAlignment(HorizontalAlignment.RIGHT);
      style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
      
    7. Test your migrated code carefully. Some subtle behavioral changes may exist in formula evaluation and styling.

  • commons-beanutils.commons-beanutils 1.8.3 -> 1.9.4

  • commons-codec.commons-codec 1.1.1 -> 1.17.1
  • commons-digester.commons-digester 1.8.1 -> 2.1
  • commons-fileupload.commons-fileupload 1.4 -> 1.5
  • commons-io.commons-io 2.4 -> 2.16.1
  • com.sun.istack.istack-commons-runtime 3.0.7 -> 4.2.0

Info

Refer to each library’s release notes for more detailed information on changes and how they might affect your system.

New Libraries

Removed Libraries

  • itext-pdfa-5.5.0.jar
  • itextpdf-5.5.0.jar
  • jcommon-1.0.15.jar
  • jxl-2.6.10.jar