3 repositorios
The process of editing and modifying compiled Java class files to change application behavior.
Distinct from Java Bytecode Analysis: Focuses on modification/editing rather than the inspection/analysis provided by Java Bytecode Analysis.
Explore 3 awesome GitHub repositories matching software engineering & architecture · Java Bytecode Manipulation. Refine with filters or upvote what's useful.
Javassist is a bytecode engineering toolkit for analyzing, modifying, and generating Java bytecode and class files. It functions as a bytecode manipulation library that allows for the editing of class files through either direct bytecode access or high-level source code syntax. The project provides specialized tools for the programmatic creation of new Java classes and interfaces during runtime. It includes a dynamic proxy generator for intercepting method calls and a class loader interceptor that automatically modifies class definitions as they are loaded into the Java Virtual Machine. Addi
Provides tools for editing and modifying compiled Java class files to change behavior without original source code.
Powermock es un framework de mocking para Java y herramienta de pruebas unitarias que utiliza manipulación de bytecode para simular métodos estáticos, clases finales y constructores privados. Incluye una herramienta de instrumentación de agente Java y una utilidad de pruebas basada en reflexión para eludir la encapsulación y modificar el comportamiento de las clases en tiempo de ejecución. El proyecto se distingue por proporcionar la capacidad de interceptar la instanciación de objetos mediante la palabra clave new y simular el comportamiento de clases del sistema Java central y métodos nativos. Puede anular modificadores finales en clases y métodos y eludir restricciones de firma para clases contenidas dentro de archivos firmados. El conjunto de herramientas cubre amplias áreas de capacidad, incluyendo el mocking de miembros privados, la verificación de construcción de objetos y la supresión de inicializadores estáticos y constructores. También proporciona utilidades de reflexión para la gestión de estado privado y se integra con JUnit a través de reglas y runners especializados. La integración es compatible con arquitecturas modulares como OSGi y varios frameworks de ejecución de pruebas externos.
Provides advanced capabilities to modify compiled Java class bytes at runtime to override language restrictions and bypass encapsulation.
Bistoury es una herramienta de diagnóstico de producción para aplicaciones Java que proporciona una consola de depuración distribuida, un perfilador de rendimiento y un manipulador de bytecode en tiempo real. Permite la depuración de aplicaciones en tiempo real y diagnósticos de producción analizando aplicaciones Java en ejecución mediante instrumentación dinámica e inspección de estado. El sistema se distingue por un gestor de agentes remoto que coordina conexiones de diagnóstico y un manipulador de bytecode en tiempo real capaz de redefinir clases en memoria sin requerir reinicios de proceso. Cuenta con una interfaz web para capturar volcados de memoria (heap dumps), pilas de hilos y variables locales a través de múltiples instancias de servidor, soportado por una capa de comunicación mediada por proxy para enrutar comandos a objetivos remotos. El proyecto cubre una amplia gama de capacidades de observabilidad, incluyendo perfilado de rendimiento de CPU mediante muestreo de pila asíncrono y flame graphs, gestión de logs distribuida a través de múltiples máquinas y captura de estado sin bloqueo utilizando puntos de interrupción condicionales. También incluye utilidades de recuperación de fuente que vinculan el bytecode en tiempo real con el código fuente original mediante descompilación o integración con repositorios Git y Maven. La herramienta proporciona una consola web e interfaces de línea de comandos para gestionar logs, recuperar archivos del sistema e inspeccionar la configuración del sistema y variables de entorno.
Enables the modification of loaded Java classes and redefinition of bytecode in memory without requiring process restarts.