Documentación de cambios de API
Resumen
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 entender qué componentes se han actualizado, quedado obsoletos o eliminado, y cómo estos cambios pueden afectar a los desarrollos personalizados.
Si estás planificando actualizar tu entorno, asegúrate de revisar también la guía oficial de actualización: Actualizar Etendo a cualquier versión.
Etendo 26
Actualizar Etendo a cualquier versión
Actualización de la pila de plataforma
Java SE
-
Versión mínima requerida:
17.0.14— Notas de la versiónCambio incompatible: Java 17 es ahora obligatorio
A partir de Etendo 26.1.0, Java 17 es la única versión compatible de Java. El indicador de compatibilidad
-Pjava.version=11introducido en Etendo 25 ha sido completamente eliminado.Cualquier entorno que siga ejecutando Java 11 quedará bloqueado al compilar. Debes instalar y configurar Java 17 o superior antes de actualizar a Etendo 26.
Acción requerida para desarrollos personalizados
Si tienes módulos personalizados con clases
BuildValidationoModuleScript, recompílalos con Java 17 antes de actualizar. Estas clases se ejecutan duranteupdate.databasey fallan en tiempo de ejecución si se compilan con Java 11 debido a incompatibilidades de bytecode.Terminal./gradlew compile.modulescript -Dmodule=<javapackage> ./gradlew compile.buildvalidation -Dmodule=<javapackage>Esto solo aplica a módulos personalizados. Los módulos núcleo de Etendo ya están compilados con Java 17.
PostgreSQL
- Nueva versión compatible:
17 - Controlador JDBC:
42.5.4->42.7.8— Registro de cambios
PostgreSQL 17 es compatible a partir de esta versión. No es necesaria ninguna acción si te mantienes en una versión actualmente compatible. Si actualizas el motor de base de datos, revisa las notas de la versión de PostgreSQL 17 para ver los cambios incompatibles.
Etendo Gradle Plugin
- Nueva versión requerida:
2.3.0o superior — Notas de la versión - El indicador
-Pjava.version=11ha sido eliminado. Java 17 ahora se aplica sin posibilidad de omisión.
DBSourceManager
- Nueva versión:
1.1.0->1.2.0 - Cambios:
- El wrapper de Gradle se ha actualizado de
7.3.2a8.12.1. - Se ha añadido compatibilidad con la plataforma PostgreSQL 16 (
PostgreSql16Platform). - Nuevo sistema
ExcludedConstraintpara gestionar tablas particionadas y esquemas de base de datos complejos. - Mejora en el manejo de tablas particionadas durante la exportación de la base de datos.
- Se han eliminado todos los JAR incluidos en
lib/; ahora las dependencias se resuelven desde el classpath del proyecto.
- El wrapper de Gradle se ha actualizado de
Bibliotecas de terceros
Actualizado
-
org.postgresql:postgresql42.5.4->42.7.8— actualización compatible. Revisa el registro de cambios si utilizas funciones específicas del controlador. -
org.mozilla:rhino1.7.13->1.8.0 -
org.mozilla:rhino-engine1.7.13->1.8.0— Versiones de RhinoWarning
Si tienes JavaScript personalizado ejecutado a través del motor Rhino, pruébalo para comprobar su compatibilidad con la versión 1.8.0. Esta actualización incluye cambios en la compatibilidad con ECMAScript y en las API internas.
-
org.antlr:antlr2.7.7->org.antlr:antlr-complete3.5.3— Documentación de ANTLR 3Warning
Esta es una actualización de versión mayor (ANTLR 2 a ANTLR 3). Si utilizas las API de ANTLR directamente en código personalizado, debes migrar. La estructura de paquetes y la API han cambiado significativamente.
-
org.codehaus.woodstox:wstx-asl3.0.2->4.0.6— Versiones de Woodstox — actualización de versión mayor para la biblioteca de procesamiento de flujos XML. Revísalo si utilizas las API de Woodstox directamente. -
com.etendoerp:dbsm1.1.0->1.2.0— ver arriba DBSourceManager (DBSM).
Coordenadas de artefactos migradas al upstream
Varias bibliotecas anteriormente reempaquetadas bajo com.etendoerp ahora se resuelven desde sus coordenadas oficiales de Maven Central upstream. Si tus módulos declaran alguna de estas como dependencias explícitas, actualiza las coordenadas del artefacto. Sin cambios funcionales.
| Anterior | Nuevo | Versión |
|---|---|---|
com.etendoerp:yuiant 1.0 |
com.etendoerp:YUIAnt 1.0.0 |
Cambio de mayúsculas/minúsculas en el ID del artefacto |
com.etendoerp:jettison 1.3 |
org.codehaus.jettison:jettison 1.3 |
Misma versión |
com.etendoerp:wstx-asl 3.0.2 |
org.codehaus.woodstox:wstx-asl 4.0.6 |
Versión actualizada |
com.etendoerp:slf4j-api 1.7.25 |
org.slf4j:slf4j-api 1.7.25 |
Misma versión |
com.etendoerp:antlr 2.7.7 |
org.antlr:antlr-complete 3.5.3 |
Versión actualizada |
com.etendoerp:rhino-engine 1.7.13 |
org.mozilla:rhino-engine 1.8.0 |
Versión actualizada |
Nuevas
Las siguientes bibliotecas son nuevas incorporaciones al classpath de la plataforma. No es necesaria ninguna acción salvo que tus módulos personalizados declaren versiones en conflicto.
org.apache.poi:ooxml-schemas1.4— Documentaciónorg.hamcrest:hamcrest-all1.3— Documentaciónjunit:junit4.12— Documentación
Eliminadas
-
org.apache.commons:commons-compress1.27.1Warning
Si tus módulos personalizados dependen de
commons-compress, añádelo como dependencia explícita en elbuild.gradlede tu módulo. -
org.eclipse.jdt:ecj3.23.0(Eclipse Compiler for Java) com.etendoerp:ant-nodeps1.0.0com.etendoerp:catalina-ant1.0.0org.apache.poi:ooxml-schemas1.4
Cambios en el esquema de base de datos
Los siguientes cambios se aplican automáticamente durante update.database:
| Tabla | Cambio | Detalles |
|---|---|---|
AD_HEARTBEAT_LOG |
Columnas eliminadas | ACTIVITY_RATE, COMPLEXITY_RATE, ANT_VERSION |
AD_HEARTBEAT_LOG |
Columna añadida | STATUS |
AD_SYSTEM_INFO |
Columnas añadidas | License_Edition, Subscription_Type, Subscription_Start_Date, Subscription_End_Date, Concurrent_Global_System_Users, Instance_Number, WEB_Service_Access, Customer_Name |
Otros cambios
- Generación de claves de Secure Web Services: el objetivo de Ant
generate.sws.keysahora se ejecuta automáticamente duranteinstall.source, reduciendo los pasos de configuración manual para los servicios web seguros.
Etendo 25
Actualizar Etendo a cualquier versión
Actualización de la pila de plataforma
Java SE
- Nueva versión compatible:
17.0.14 -
Notas de la versión:
-
Java SE 12.x
-
Java SE 13.x
-
Java SE 14.x
-
Java SE 15.x
-
Java SE 16.x
-
Java SE 17 (LTS)
-
PostgreSQL
- Nueva versión compatible:
16.8.1 -
Notas de la versión:
-
PostgreSQL 16.x
-
PostgreSQL 15.x
-
Gradle
Warning
Para actualizar el wrapper de Gradle en un entorno existente, debes ejecutar:
Para obtener directrices de migración más detalladas, consulta Actualización del wrapper de Gradle
- Nueva versión compatible:
8.12.1 -
Notas de la versión:
Apache Tomcat
- Nueva versión compatible:
9.0.98 - Notas de la versión: Apache Tomcat 9
Etendo Gradle Plugin
- Nueva versión compatible:
2.0.0o superior -
Notas de la versión:
- Notas de la versión de Etendo Gradle Plugin
-
Nueva tarea del plugin de Gradle:
Esta nueva tarea elimina los directorios creados por la tareaexpandCore. -
Marca de compatibilidad
Esta nueva marca fuerza el uso de Java 11 con la versión 25Q1.
Etendo ISO
Note
Las ISO de Etendo 25 se basan actualmente en la imagen amd64 de Ubuntu Live Server 22.04.5.
Para más información, visita Notas de la versión de Etendo ISO.
Bibliotecas de terceros
Todas las bibliotecas ubicadas anteriormente 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.
Actualizado
-
dbsourcemanager.jar->com.etendoerp.dbsmversión1.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 características obsoletas o eliminadas usadas en Java 17.
- Se añadió compatibilidad con PostgreSQL 16.
-
-
commons-collections.commons-collections3.2.2->4.4-
Notas de la versión:
-
Cambios de API - Migración de Apache Commons Collections
3.2.2a4.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 importadas anteriormente desde
org.apache.commons.collectionsahora deben actualizarse aorg.apache.commons.collections4. -
Instrucciones de migración:
Actualiza todas las sentencias de importación y referencias para reflejar la nueva estructura de paquetes:
// Antes (Apache Commons Collections 3.2.2) import org.apache.commons.collections.CollectionUtils; // Después (Apache Commons Collections 4.4) import org.apache.commons.collections4.CollectionUtils;Además, revisa tu código en busca de métodos obsoletos, eliminados o modificados para garantizar la compatibilidad total con la biblioteca actualizada.
Info
Para obtener directrices de migración detalladas, consulta la documentación de Apache Commons Collections 4.4.
-
-
org.apache.commons:commons-lang32.6->3.17.0-
Notas de la versión:
-
Cambios de API - Migración de Apache Commons Lang
2.6a3.17A 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 importadas anteriormente desde
org.apache.commons.lang.*ahora deben actualizarse para usarorg.apache.commons.lang3.*. -
Instrucciones de migración
Actualiza tus sentencias de importación para reflejar la nueva estructura de paquetes:
// Antes (Apache Commons Lang 2.6) import org.apache.commons.lang.StringUtils; // Después (Apache Commons Lang 3.17) import org.apache.commons.lang3.StringUtils;Además, revisa tu código en busca de métodos obsoletos o modificados y asegúrate de que sea compatible 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 obtener directrices de migración detalladas, consulta las notas de migración de Apache Commons Lang 3.
-
-
org.hibernate.common.hibernate-commons-annotations5.1.0.Final->5.1.2.Final- Notas de la versión:
-
org.hibernate:hibernate-core5.4.2.Final->5.6.15.Final -
net.sf.jasperreports.jasperreports-fonts6.0.0->6.17.0 -
net.sf.jasperreports.jasperreports6.0.0->6.17.0- Notas de la versión:
-
org.apache.poi.poi3.10.1->5.4.0-
Notas de la versión:
- Apache POI 5.4.0 (2025-01-08)
- Apache POI 5.3.0 (2024-07-02)
- Apache POI 5.2.5 (2023-11-25)
- Apache POI 5.2.4 (2023-09-28)
- Apache POI 5.2.3 (2023-05-22)
- Apache POI 5.2.2 (2023-01-19)
- Apache POI 5.2.1 (2022-09-09)
- Apache POI 5.2.0 (2022-01-14)
- Apache POI 5.1.0 (2021-08-07)
- Apache POI 5.0.0 (2021-02-08)
- Apache POI 4.1.2 (2019-12-16)
- Apache POI 4.1.1 (2019-07-20)
- Apache POI 4.1.0 (2019-04-22)
- Apache POI 4.0.1 (2018-11-24)
- Apache POI 4.0.0 (2018-09-07)
Para versiones anteriores, puedes consultar: - Archivo de versiones de Apache POI (código fuente y binarios) - Resumen completo del historial de cambios
-
-
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, incluida la sustitución de clases, métodos y constantes obsoletos eliminados en versiones recientes.
-
Sustitución de constantes obsoletas (
CellType)En POI 5.x, las constantes
Cell.CELL_TYPE_*se sustituyen por la enumeraciónCellType.Ejemplo:
// Antes cell.getCellType() == Cell.CELL_TYPE_STRING; // Después cell.getCellType() == CellType.STRING;Correspondencias clave:
Constante antigua Nueva constante Cell.CELL_TYPE_STRINGCellType.STRINGCell.CELL_TYPE_NUMERICCellType.NUMERICCell.CELL_TYPE_BOOLEANCellType.BOOLEANCell.CELL_TYPE_FORMULACellType.FORMULACell.CELL_TYPE_BLANKCellType.BLANKImportación requerida:
-
Actualización de estilos de celda
Alineación
Constante antigua Nueva constante CellStyle.ALIGN_LEFTHorizontalAlignment.LEFTCellStyle.ALIGN_CENTERHorizontalAlignment.CENTERCellStyle.ALIGN_RIGHTHorizontalAlignment.RIGHT// Antes style.setAlignment(CellStyle.ALIGN_CENTER); // Después style.setAlignment(HorizontalAlignment.CENTER);Patrones de relleno
// Antes style.setFillPattern(CellStyle.SOLID_FOREGROUND); // Después style.setFillPattern(FillPatternType.SOLID_FOREGROUND);Bordes
-
Cambios en la API de fuentes
El método
Font.setBoldweight()está obsoleto.
Ahora debes usarFont.setBold(boolean).Ejemplo:
-
Cambios en la API de evaluación de fórmulas:
// Antes switch (cellValue.getCellType()) { case Cell.CELL_TYPE_NUMERIC: } // Después switch (cellValue.getCellType()) { case NUMERIC: }Evaluación de fórmulas:
FormulaEvaluator evaluator = workbook.getCreationHelper().createFormulaEvaluator(); CellValue cellValue = evaluator.evaluate(cell);Ejemplo completo:
-
Buenas prácticas adicionales
Evita crear
XSSFWorkbook()innecesariamente. En su lugar, reutiliza:Usa la API moderna de Map:
-
Ejemplo completo de migración
-
Prueba cuidadosamente el código migrado. Pueden existir cambios sutiles de comportamiento en la evaluación de fórmulas y el estilo.
Recursos oficiales
-
-
commons-beanutils.commons-beanutils1.8.3->1.9.4 commons-codec.commons-codec1.1.1->1.17.1commons-digester.commons-digester1.8.1->2.1commons-fileupload.commons-fileupload1.4->1.5commons-io.commons-io2.4->2.16.1com.sun.istack.istack-commons-runtime3.0.7->4.2.0
Info
Consulta las notas de la versión de cada biblioteca para obtener información más detallada sobre los cambios y cómo pueden afectar a tu sistema.
Nuevo
-
org.apache.commons.commons-text1.10.0 -
org.apache.commons.commons-math33.6.1 -
org.codehaus.castor.castor-core1.4.1 -
org.codehaus.castor:castor-xml1.4.1 -
com.lowagie:itext2.1.7
Eliminado
itext-pdfa-5.5.0.jaritextpdf-5.5.0.jarjcommon-1.0.15.jarjxl-2.6.10.jar
Este trabajo está bajo licencia CC BY-SA 2.5 ES por Futit Services S.L..