Herramienta de detección de cambios de Edge para nube privada 4.54.00

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

  1. Se requiere una máquina basada en RHEL o Rocky Linux para ejecutar esta herramienta (consulta los requisitos de instalación de Edge).
  2. 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.
  3. 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.
  4. 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.
  5. (Opcional) Cuando se actualiza desde la versión 4.53.00, la herramienta requiere un archivo LDIF generado con el comando ldapsearch en 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.jar o corba-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 expression o LDAP 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 como javax.xml.bind.JAXBContext o sun.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 (ClassNotFoundException o NoClassDefFoundError) 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.

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.