Herramienta de detección de cambios
Se creó una herramienta de detección de cambios para identificar los proxies, las políticas, los flujos compartidos y los archivos JAR de recursos de Apigee (a nivel del proxy, del entorno o de la organización) que podrían verse afectados durante y después de la transición a Edge para la nube privada 4.54.00. Esta herramienta genera un informe en el que se detallan los proxies implementados, los flujos compartidos y los archivos JAR de recursos afectados por los cambios, y proporciona instrucciones para guías y estrategias específicas pertinentes para esos proxies o flujos compartidos identificados.
Requisitos previos
- Se requiere una máquina basada en RHEL o Rocky Linux para ejecutar esta herramienta (consulta los requisitos de instalación de Edge).
- Se debe instalar JRE 8 o una versión posterior y configurarlo correctamente en la máquina host para permitir que se ejecuten las secuencias de comandos de la herramienta.
- La herramienta requiere acceso de red al extremo (URL) del servidor de administración y credenciales administrativas válidas para la autenticación y la recuperación de datos.
- La herramienta requiere acceso a un directorio de trabajo designado (por ejemplo,
/tmp) con suficiente espacio en el disco y los permisos de lectura/escritura adecuados para descargar paquetes, generar registros y almacenar resultados. - (Opcional) Cuando se actualiza desde la versión 4.53.00, la herramienta requiere un archivo LDIF generado con el comando
ldapsearchen la sección Cambio de OpenLDAP: Extrae datos de LDAP para detectar RDN largos que superen los 241 caracteres o bytes.
Cómo ejecutar la herramienta
Una vez que se cumplan todos los requisitos previos, descarga la herramienta del repositorio de Apigee con tus credenciales de Apigee y extrae el archivo descargado:
curl -u uName:pWord https://software.apigee.com/apigee/change-detector/change-detector-for-4.54.00_1.0.0.zip -o /tmp/change-detector-for-4.54.00_1.0.0.zip
unzip /tmp/change-detector-for-4.54.00_1.0.0.zip
Una vez que se complete la descarga, puedes ejecutar el siguiente comando para ver todas las opciones disponibles para la herramienta:
./change-detector --help
Para ejecutar la herramienta, usa el siguiente comando y reemplaza los marcadores de posición por tu información:
export APIGEE_PASSWORD=YOUR_PASSWORD ./change-detector --username YOUR_USERNAME --mgmt-url MGMT_URL --source-version SOURCE_VERSION
Especifica --source-version 4.53.01 cuando actualices directamente desde Edge para nube privada 4.53.01 para buscar cambios de Java 21. Si actualizas desde la versión 4.53.00, especifica --source-version 4.53.00 para realizar un análisis acumulativo que abarque las obsolescencias de políticas de la versión 4.53.01 y los cambios de Java 21.
La herramienta genera resultados en formato CSV o JSON que se pueden revisar directamente o importar a aplicaciones de hojas de cálculo, como Hojas de cálculo de Google.
Comprende el resultado de la herramienta
El informe contiene las siguientes columnas:
Organización
El nombre de la organización en la que se encuentra el artefacto. Para los cambios de OpenLDAP, este es None.
Entorno
El entorno específico (por ejemplo, dev, test, prod) dentro de la organización. Para los archivos JAR a nivel de la organización, este campo es N/A. Para los cambios de OpenLDAP, este es None.
Nombre del proxy
El nombre del proxy de API o del flujo compartido. Para los recursos JAR a nivel de la organización, se muestra el nombre de la organización. Para los recursos JAR a nivel del entorno, se muestra el nombre del entorno. Para los cambios de OpenLDAP, este campo muestra la entidad LDAP del RDN.
Alcance
Especifica el alcance y el nivel del artefacto analizado:
proxy-level-jar: Archivo de recursos JAR subido a nivel del proxy (en/resources/java).env-level-jar: Archivo de recursos JAR subido a nivel del entorno (consulta Archivos de recursos).org-level-jar: Archivo de recursos JAR subido a nivel de la organización.proxy: Política o configuración dentro de una revisión del proxy de API.sharedflow: Política o configuración dentro de una revisión de flujo compartido.ldif: Archivo LDIF de OpenLDAP (para verificaciones de OpenLDAP).
Revisión
El número de revisión específico del proxy de API o del flujo compartido. Para los archivos JAR a nivel del entorno o de la organización, este campo es N/A. Para los cambios de OpenLDAP, este es None.
Nombre de la política
El nombre de la política específica que se identificó como un posible problema (por ejemplo, JavaCallout-ValidateAccount o OASValidation-1). Para los recursos a nivel de la organización, este campo muestra N/A (Organization Resource). Para los recursos a nivel del entorno, este campo muestra N/A (Environment Resource). Para los cambios de OpenLDAP, este es None.
Tipo de política
El tipo de política (por ejemplo, java-callout o OASValidation). Para los cambios de OpenLDAP, este es None.
Versión de origen
La versión de OPDK de origen configurada para el análisis (4.53.00 o 4.53.01).
Recurso afectado
Describe el recurso o la biblioteca específicos detectados:
- Para las detecciones de texto destacado de Java 21: El nombre exacto del archivo JAR afectado (por ejemplo,
order-transform.jarocorba-callout.jar). - Para las obsolescencias heredadas de la versión 4.53:
deprecated library detected for NAME_OF_THE_AFFECTED_JAVA_CALLOUT_JAR. - Para las detecciones de OAS, JSONPath o OpenLDAP: El elemento o recurso de política específico (por ejemplo,
oas content type handling,wildcard expressionoLDAP RDN exceeds 241 characters).
Motivo de la detección
Proporciona información de diagnóstico detallada sobre por qué se marcó el elemento:
- Para las detecciones de texto destacado de Java 21: La clase específica, la biblioteca de reemplazo de destino (si corresponde) y la causa raíz (por ejemplo,
Class: javax.xml.bind.JAXBContext | Target Library: jakarta.xml.bind-api-2.3.3.jar | Root Cause: ClassNotFoundException: JAXB API was removed from Java SE in Java 11 (JEP 320)). Si se detectan varios problemas dentro del mismo JAR, se consolidan separados por;. - Para las obsolescencias heredadas de la versión 4.53: Una lista de clases a las que se hace referencia desde bibliotecas obsoletas (por ejemplo,
['Detected use of class CLASS_NAME from JAR_NAME']). - Para las validaciones de OAS: La variable especificada en la etiqueta
Source(por ejemplo,Source=response). - Para JSONPath: La expresión exacta marcada.
- Para OpenLDAP: El RDN de la entidad LDAP específica que superó los 241 bytes o caracteres.
Certeza del impacto
Este campo indica el grado de confianza con el que la herramienta identificó un bloqueador de actualización. Los valores se estandarizan en mayúsculas:
HIGH: La herramienta detectó un cambio incompatible (como una llamada a una clase quitada de forma permanente comojavax.xml.bind.JAXBContextosun.misc.BASE64Encoder, o un RDN de OpenLDAP que supera los 241 bytes). Existe una probabilidad casi segura de falla en el tiempo de ejecución (ClassNotFoundExceptionoNoClassDefFoundError) a menos que se solucione.MEDIUM: La herramienta detectó un patrón que requiere inspección del desarrollador y verificación funcional:- Para los textos destacados de Java: Se marcó en
METHOD_SIGNATURE_MODIFICATION(por ejemplo,org.w3c.dom.Document), donde la clase existe en Java 21, pero es posible que se hayan alterado o quedado obsoletos métodos específicos. - Para las políticas de OASValidation: Se marcó cuando se usan variables dinámicas de tiempo de ejecución en el elemento
<Source>(por ejemplo,Source=response), lo que requiere capturar Trace para observar las variables resueltas durante la ejecución del proxy.
- Para los textos destacados de Java: Se marcó en
Informes de detección de muestra
Informe de análisis de Java 21 segmentado (--source-version 4.53.01)
En el siguiente ejemplo, se ilustra el resultado del informe para una actualización de OPDK 4.53.01 a 4.54.00:
| Organización | Entorno | Nombre del proxy | Alcance | Revisión | Nombre de la política | Tipo de política | Versión de origen | Recurso afectado | Motivo de la detección | Certeza del impacto |
|---|---|---|---|---|---|---|---|---|---|---|
my-org |
prod |
order-processing |
proxy-level-jar |
12 |
JavaCallout-ParseXml |
java-callout |
4.53.01 |
jaxb-callout.jar |
Class: javax.xml.bind.JAXBContext | Cause: ClassNotFoundException..... |
HIGH |
my-org |
stage |
legacy-corba-bridge |
proxy-level-jar |
1 |
JavaCallout-CorbaClient |
java-callout |
4.53.01 |
corba-callout.jar |
Class: org.omg.CORBA.ORB | Cause: ClassNotFoundException..... |
HIGH |
my-org |
prod |
prod |
env-level-jar |
N/A |
N/A (Environment Resource) |
java-callout |
4.53.01 |
env-security-utils.jar |
Class: sun.misc.BASE64Encoder | Cause: ClassNotFoundException..... |
HIGH |
my-org |
N/A |
my-org |
org-level-jar |
N/A |
N/A (Organization Resource) |
java-callout |
4.53.01 |
cglib-nodep-2.2.jar |
Class: net.sf.cglib.proxy.Enhancer | Cause: IllegalArgumentException..... |
HIGH |
my-org |
prod |
invoice-parser |
proxy-level-jar |
5 |
JavaCallout-ParseInvoice |
java-callout |
4.53.01 |
invoice-dom.jar |
Class: org.w3c.dom.Document | Cause: Modified methods in Java 21..... |
MEDIUM |
my-org |
prod |
payment-gateway |
proxy-level-jar |
3 |
JavaCallout-SignToken |
java-callout |
4.53.01 |
payment-lib.jar |
Class: com.mycompany.crypto.OldProvider | Target: custom-crypto-3.0.jar..... |
HIGH |
Informe de análisis acumulativo (--source-version 4.53.00)
En el siguiente ejemplo, se ilustra el resultado del informe para una actualización de OPDK 4.53.00 a 4.54.00:
| Organización | Entorno | Nombre del proxy | Alcance | Revisión | Nombre de la política | Tipo de política | Versión de origen | Recurso afectado | Motivo de la detección | Certeza del impacto |
|---|---|---|---|---|---|---|---|---|---|---|
my-org |
prod |
customer-portal |
proxy |
3 |
ValidateOpenAPISpec |
OASValidation |
4.53.00 |
oas content type handling |
Source=response |
MEDIUM |
my-org |
prod |
accounts-api |
proxy-level-jar |
4 |
JavaCallout-ValidateAccount |
java-callout |
4.53.00 |
deprecated: custom-validator.jar..... |
['Detected use of class org.apache.commons.beanutils.....'] |
HIGH |
my-org |
prod |
order-processing |
proxy-level-jar |
12 |
JavaCallout-ParseXml |
java-callout |
4.53.00 |
jaxb-callout.jar |
Class: javax.xml.bind.JAXBContext | Cause: ClassNotFoundException..... |
HIGH |
my-org |
None |
None |
ldif |
None |
None |
None |
4.53.00 |
LDAP RDN exceeds 241 characters |
cn=very-long-rdn-name-exceeding-limit..... |
HIGH |
Para obtener orientación sobre cómo solucionar los problemas identificados, consulta Estrategias de solución.