Saltar a contenido

Documentación de cambios de API

Visión general

Este documento proporciona información detallada sobre los cambios de API y de stack introducidos en las últimas versiones de Etendo.
Sirve como referencia para desarrolladores y administradores de sistemas para comprender qué componentes se han actualizado, quedado obsoletos o eliminado, y cómo estos cambios pueden afectar a los desarrollos personalizados.

Si está planificando actualizar su entorno, asegúrese de revisar también la guía oficial de actualización: Actualizar Etendo a cualquier versión.

Marzo 2025

Actualizar Etendo a cualquier versión

Actualización del stack de la plataforma de Etendo

Java SE

PostgreSQL

Gradle

Warning

Para actualizar el wrapper de Gradle en un entorno existente, debe ejecutar:

Terminal
    ./gradlew wrapper --gradle-version 8.12.1 

Para obtener directrices de migración más detalladas, consulte Actualización del wrapper de Gradle

Apache Tomcat

Etendo Gradle Plugin

  • Nueva versión compatible: 2.0.0 o superior
  • Notas de la versión:

    • Etendo Gradle Plugin - Notas de la versión
    • Nueva tarea del plugin de Gradle:

      Terminal
      ./gradlew cleanExpandCore
      
      Esta nueva tarea elimina los directorios creados por la tarea expandCore.

    • Indicador de compatibilidad

      Terminal
      -Pjava.version=11
      
      Este nuevo indicador fuerza el uso de Java 11 con la versión 25Q1.

Etendo ISO

Note

Las ISO de Etendo 25 actualmente se basan en la imagen amd64 de Ubuntu Live Server 22.04.5.
Para obtener más información, visite Notas de la versión de Etendo ISO.

Bibliotecas de terceros

Todas las bibliotecas que anteriormente se encontraban en /lib/runtime como archivos JAR se han actualizado a dependencias de Gradle, ahora definidas en el archivo artifacts.list.COMPILATION.gradle en la raíz del proyecto.

Bibliotecas actualizadas

  • dbsourcemanager.jar -> com.etendoerp.dbsm versión 1.1.0

    • Notas de la versión:

      • Cambios para usar la nueva versión de la biblioteca Apache Commons Lang 3.
      • Cambios para usar la nueva versión de la biblioteca Apache Commons Collections 4.
      • Cambios en funcionalidades obsoletas o eliminadas utilizadas en Java 17.
      • Se añadió soporte para PostgreSQL 16.
  • commons-collections.commons-collections 3.2.2 -> 4.4

    • Notas de la versión:

    • Cambios en la API - Migración de Apache Commons Collections 3.2.2 a 4.4:

      A partir de Etendo 25.1.0, Apache Commons Collections se ha actualizado de 3.2.2 a 4.4. Esta versión introduce una nueva estructura de paquetes. Las clases que anteriormente se importaban desde org.apache.commons.collections ahora deben actualizarse a org.apache.commons.collections4.

    • Instrucciones de migración:

      Actualice todas las sentencias de importación y referencias para reflejar la nueva estructura de paquetes:

      // 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;
      

      Además, revise su código en busca de métodos obsoletos, eliminados o modificados para garantizar la compatibilidad total con la biblioteca actualizada.

    Info

    Para directrices de migración detalladas, consulte la documentación de Apache Commons Collections 4.4.

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

    • Notas de la versión:

    • Cambios en la API - Migración de Apache Commons Lang 2.6 a 3.17

      A partir de Etendo 25.1.0, Apache Commons Lang se ha actualizado de la versión 2.6 a 3.17. Como parte de esta actualización, la estructura de paquetes ha cambiado. Las clases que anteriormente se importaban desde org.apache.commons.lang.* ahora deben actualizarse para usar org.apache.commons.lang3.*.

    • Instrucciones de migración

      Actualice sus sentencias de importación para reflejar la nueva estructura de paquetes:

      // Before (Apache Commons Lang 2.6)
      import org.apache.commons.lang.StringUtils;
      
      // After (Apache Commons Lang 3.17)
      import org.apache.commons.lang3.StringUtils;
      

      Además, revise su código en busca de métodos obsoletos o modificados y asegure la compatibilidad con la biblioteca actualizada.

    • Notas adicionales

      La versión anterior de la biblioteca sigue disponible por compatibilidad hacia atrás, pero se eliminará en futuras versiones.

      Warning

      Recomendamos encarecidamente migrar todos los desarrollos personalizados a Apache Commons Lang 3.17 para garantizar soporte y compatibilidad a largo plazo.

      Info

      Para directrices de migración detalladas, consulte las Apache Commons Lang 3 migration notes.

  • 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

  • Guía de migración de Apache POI 5.x

    Esta guía describe los cambios necesarios para migrar proyectos que usan Apache POI 3.x/4.x a la versión 5.x, incluyendo cómo reemplazar clases, métodos y constantes obsoletos eliminados en versiones recientes.

    1. Sustitución de constantes obsoletas (CellType)

      En POI 5.x, las constantes Cell.CELL_TYPE_* se sustituyen por el enum CellType.

      Ejemplo:

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

      Correspondencias clave:

      Constante antigua Constante nueva
      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

      Importación requerida:

      import org.apache.poi.ss.usermodel.CellType;
      
    2. Actualización de estilos de celda

      Alineación

      Constante antigua Constante nueva
      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;
      

      Patrones de relleno

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

      Bordes

      // Before
      setBorderBottom((short) 1);
      
      // After
      setBorderBottom(BorderStyle.THIN);
      
      import org.apache.poi.ss.usermodel.BorderStyle;
      
    3. Cambios en la API de fuentes

      El método Font.setBoldweight() está obsoleto.
      Ahora debe usar Font.setBold(boolean).

      Ejemplo:

      // Before
      font.setBoldweight(Font.BOLDWEIGHT_BOLD);
      
      // After
      font.setBold(true);
      
      // Before
      font.setBoldweight(Font.BOLDWEIGHT_NORMAL);
      
      // After
      font.setBold(false);
      
    4. Cambios en la API de evaluación de fórmulas:

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

      Evaluación de fórmulas:

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

      Ejemplo completo:

      CellValue cellValue = evaluator.evaluate(cell);
      switch (cellValue.getCellType()) {
          case STRING:
              return cellValue.getStringValue();
          // other cases...
      }
      
    5. Buenas prácticas adicionales

      Evite crear XSSFWorkbook() nuevos innecesariamente. En su lugar, reutilice:

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

      Use la API moderna de Map:

      // Instead of containsKey + put
      map.computeIfAbsent(key, k -> new ArrayList<>());
      
    6. Ejemplo completo de migración

      // 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. Pruebe cuidadosamente su código migrado. Pueden existir algunos cambios sutiles de comportamiento en la evaluación de fórmulas y el estilo.

  • 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

Consulte las notas de la versión de cada biblioteca para obtener información más detallada sobre los cambios y cómo podrían afectar a su sistema.

Bibliotecas nuevas

Bibliotecas eliminadas

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

This work is licensed under CC BY-SA 2.5 ES by Futit Services S.L..