Repolode
alibaba

alibaba/jvm-sandbox

Un contenedor sandbox para JVM que añade AOP no invasivo en tiempo de ejecución a aplicaciones Java activas, sin reiniciarlas.

Estrellas
6,952
Forks
1,586
Issues abiertos
49
Último commit
hace 2 meses

¿Qué es?

JVM-SANDBOX es un contenedor de framework AOP para Java que se conecta a una JVM en ejecución y amplía métodos objetivo en tiempo de ejecución. No es necesario reiniciar ni modificar las aplicaciones objetivo, y los módulos se pueden cargar y descargar sobre la marcha sin dejar rastros en la aplicación.

Funciona dividiendo cada llamada a un método en las etapas BEFORE, RETURN y THROWS, lo que permite que los módulos de plugins lean o cambien argumentos, valores de retorno y excepciones, o interrumpan la ejecución del método. El sandbox y los módulos se ejecutan con sus propios class loaders, por lo que no entran en conflicto con las clases de la aplicación. El proyecto se basa en Instrumentation y es compatible con JDK 6 a 11.

Entre sus usos habituales están el diagnóstico de fallos en producción, el registro dinámico, la inyección de fallos, la grabación y reproducción de solicitudes, el control del tráfico y la supervisión o el enmascaramiento de datos sensibles.

Funciones clave

  • 01Se conecta a una JVM en ejecución sin reiniciar ni modificar la aplicación objetivo.
  • 02Permite que los módulos lean o cambien argumentos de métodos, valores de retorno y excepciones.
  • 03Aísla el sandbox y los módulos de las clases de la aplicación mediante class loaders personalizados.
  • 04Los módulos se pueden cargar y descargar en caliente sin dejar rastros.
  • 05Admite varios tenants, cada uno con sandboxes controlados de forma independiente.
  • 06Funciona con JDK 6 a 11.

Casos de uso

  • Diagnosticar problemas en producción añadiendo registros dinámicos a los métodos sin volver a desplegar la aplicación.
  • Inyectar fallos en métodos para probar cómo gestiona errores un sistema.
  • Grabar llamadas a métodos y reproducir sus resultados para realizar pruebas.
  • Supervisar o enmascarar datos sensibles que pasan por los métodos de una aplicación.

Inicio rápido

  1. 1

    Descarga el archivo zip de la última versión (el README indica que este enlace OSS puede caducar).

    wget https://ompc.oss-cn-hangzhou.aliyuncs.com/jvm-sandbox/release/sandbox-1.3.3-bin.zip
  2. 2

    O compila tú mismo la distribución con JDK 1.8 en Linux o macOS.

    cd bin && ./sandbox-package.sh
  3. 3

    Conecta el sandbox a un proceso Java en ejecución (sustituye 33342 por el ID de tu proceso).

    ./sandbox.sh -p 33342

Antes de usarlo

  • El README indica que solo se admiten las versiones de JDK 6 a 11.
  • Para compilar desde el código fuente se necesita JDK 1.8 y Linux, macOS o Unix; Windows no es compatible para la compilación.
  • Distribuido bajo la licencia LGPL-3.0, una licencia copyleft.

En colecciones

Temas

#java#jvm#aop#instrumentation#runtime-instrumentation#fault-injection#observability#bytecode

Preguntas frecuentes

¿Qué es jvm-sandbox?
Un contenedor sandbox para JVM que añade AOP no invasivo en tiempo de ejecución a aplicaciones Java activas, sin reiniciarlas. JVM-SANDBOX es un contenedor de framework AOP para Java que se conecta a una JVM en ejecución y amplía métodos objetivo en tiempo de ejecución. No es necesario reiniciar ni modificar las aplicaciones objetivo, y los módulos se pueden cargar y descargar sobre la marcha sin dejar rastros en la aplicación.
¿jvm-sandbox es gratuito? ¿Qué licencia tiene?
jvm-sandbox es open source bajo la licencia LGPL-3.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿jvm-sandbox sigue mantenido?
Actualizado en los últimos 6 meses. El último commit de jvm-sandbox fue el 9 sept 2026.
¿Para qué puedo usar jvm-sandbox?
Diagnosticar problemas en producción añadiendo registros dinámicos a los métodos sin volver a desplegar la aplicación. Inyectar fallos en métodos para probar cómo gestiona errores un sistema. Grabar llamadas a métodos y reproducir sus resultados para realizar pruebas. Supervisar o enmascarar datos sensibles que pasan por los métodos de una aplicación.
¿Cómo se instala jvm-sandbox?
Descarga el archivo zip de la última versión (el README indica que este enlace OSS puede caducar).: wget https://ompc.oss-cn-hangzhou.aliyuncs.com/jvm-sandbox/release/sandbox-1.3.3-bin.zip O compila tú mismo la distribución con JDK 1.8 en Linux o macOS.: cd bin && ./sandbox-package.sh Conecta el sandbox a un proceso Java en ejecución (sustituye 33342 por el ID de tu proceso).: ./sandbox.sh -p 33342
¿Dónde consigo jvm-sandbox?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/alibaba/jvm-sandbox

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados