Repolode
alibaba

alibaba/jvm-sandbox

Um contêiner de sandbox para JVM que adiciona AOP não invasivo em tempo de execução a aplicações Java em execução, sem reiniciá-las.

Estrelas
6,953
Forks
1,586
Issues abertas
49
Último commit
há 2 meses

O que é?

O JVM-SANDBOX é um contêiner de framework AOP para Java que se conecta a uma JVM em execução e aprimora métodos-alvo durante a execução. Não é necessário reiniciar nem modificar as aplicações-alvo, e os módulos podem ser carregados e descarregados sob demanda, sem deixar rastros na aplicação.

Ele funciona dividindo cada chamada de método nas etapas BEFORE, RETURN e THROWS. Assim, os módulos de plugin podem ler ou alterar argumentos, valores de retorno e exceções, ou interromper a execução do método antes que ela termine. O sandbox e os módulos são executados em seus próprios class loaders, evitando conflitos com as classes da aplicação. O projeto é baseado em Instrumentation e oferece suporte do JDK 6 ao 11.

Entre os usos mais comuns estão o diagnóstico de falhas online, o logging dinâmico, a injeção de falhas, a gravação e reprodução de requisições, o controle de tráfego e o monitoramento ou mascaramento de dados sensíveis.

Recursos principais

  • 01Conecta-se a uma JVM em execução sem reiniciar nem modificar a aplicação-alvo.
  • 02Permite que os módulos leiam ou alterem argumentos de métodos, valores de retorno e exceções.
  • 03Isola o sandbox e os módulos das classes da aplicação por meio de class loaders personalizados.
  • 04Os módulos podem ser carregados e descarregados a quente sem deixar rastros.
  • 05Oferece suporte a vários tenants, cada um com sandboxes controlados de forma independente.
  • 06É executado no JDK 6 ao 11.

Casos de uso

  • Diagnosticar problemas em produção adicionando logs dinâmicos a métodos, sem fazer novo deploy.
  • Injetar falhas em métodos para testar como o sistema lida com erros.
  • Gravar chamadas de métodos e reproduzir seus resultados para testes.
  • Monitorar ou mascarar dados sensíveis que passam pelos métodos da aplicação.

Início rápido

  1. 1

    Baixe o zip da versão mais recente (o README informa que este link OSS pode expirar).

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

    Ou compile a distribuição você mesmo com JDK 1.8 no Linux ou macOS.

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

    Anexe o sandbox a um processo Java em execução (substitua 33342 pelo ID do seu processo).

    ./sandbox.sh -p 33342

Antes de usar

  • O README informa que há suporte apenas para JDK 6 a 11.
  • Para compilar a partir do código-fonte, é necessário ter JDK 1.8 e Linux, macOS ou Unix; o Windows não é compatível para a compilação.
  • Licenciado sob a LGPL-3.0, uma licença copyleft.

Em coleções

Tópicos

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

Perguntas frequentes

O que é jvm-sandbox?
Um contêiner de sandbox para JVM que adiciona AOP não invasivo em tempo de execução a aplicações Java em execução, sem reiniciá-las. O JVM-SANDBOX é um contêiner de framework AOP para Java que se conecta a uma JVM em execução e aprimora métodos-alvo durante a execução. Não é necessário reiniciar nem modificar as aplicações-alvo, e os módulos podem ser carregados e descarregados sob demanda, sem deixar rastros na aplicação.
jvm-sandbox é gratuito? Qual é a licença?
jvm-sandbox é open source sob a licença LGPL-3.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
jvm-sandbox ainda é mantido?
Atualizado nos últimos 6 meses. O último commit de jvm-sandbox foi em 9 de set. de 2026.
Para que posso usar jvm-sandbox?
Diagnosticar problemas em produção adicionando logs dinâmicos a métodos, sem fazer novo deploy. Injetar falhas em métodos para testar como o sistema lida com erros. Gravar chamadas de métodos e reproduzir seus resultados para testes. Monitorar ou mascarar dados sensíveis que passam pelos métodos da aplicação.
Como instalar jvm-sandbox?
Baixe o zip da versão mais recente (o README informa que este link OSS pode expirar).: wget https://ompc.oss-cn-hangzhou.aliyuncs.com/jvm-sandbox/release/sandbox-1.3.3-bin.zip Ou compile a distribuição você mesmo com JDK 1.8 no Linux ou macOS.: cd bin && ./sandbox-package.sh Anexe o sandbox a um processo Java em execução (substitua 33342 pelo ID do seu processo).: ./sandbox.sh -p 33342
Onde consigo jvm-sandbox?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/alibaba/jvm-sandbox

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados