Описание тега byte-buddy
Byte Buddy is a code generation and manipulation library for creating and modifying Java classes during the runtime of a Java application and without the help of a compiler. Byte Buddy allows the creation of arbitrary classes and is not limited to implementing interfaces for the creation of runtime proxies. Furthermore, Byte Buddy offers a convenient API for changing classes either manually, using a Java agent or during a build.
1
ответ
Byte Buddy - определить конструктор с вызовом суперкласса и инициализировать поле
У меня есть такой класс, как: public class Sample{ private String a; private String b; public Sample(String a, String b) { this.a = a; this.b = b; } public String getA() {return a;} public String getB() {return b;} } Я хочу создать динамический клас…
29 сен '17 в 08:07
3
ответа
Как эффективно обернуть POJO с Bytebuddy?
Я хочу обернуть простой класс POJO. Дело в том, что я ничего не знаю об этом классе заранее, только то, что это POJO с сеттерами и геттерами. Я хочу заменить этот класс моим Proxyclass, чтобы каждый раз, когда клиент вызывал getter или setter, я мог…
09 июн '16 в 07:09
0
ответов
ByteBuddy Agent: при перехвате методов тест JUnit завершается неудачно
Я пытаюсь динамически анализировать тесты JUnit с помощью ByteBuddy (1.7.5), поэтому я не знаю их заранее. Я загружаю их с помощью метода run(), описанного ниже, и перехватываю агент, созданный с помощью метода Agent(), приведенного ниже. Модульные …
06 окт '17 в 12:50
1
ответ
ByteBuddy - перебазировать уже загруженный класс
У меня есть следующий код, работающий в приложении SpringBoot, и он делает то, что я ожидаю. TypePool typePool = TypePool.Default.ofClassPath(); ByteBuddyAgent.install(); new ByteBuddy() .rebase(typePool.describe("com.foo.Bar").resolve(), ClassFileL…
18 дек '17 в 22:57
1
ответ
Удаляет ли Byte Buddy сгенерированные файлы классов в хранилище Android?
Я заметил, что классы, созданные Byte Buddy во время выполнения, были записаны в папку data / data, но после закрытия приложения эти сгенерированные классы все еще существуют там. Нужно ли нам писать код для удаления этих файлов самим или у Byte Bud…
02 фев '16 в 12:55
2
ответа
Классы фильтров, которые снабжены указанной аннотацией
Я использую Java-агенты для манипулирования байт-кодом, и я хотел бы генерировать методы в классы, которые снабжены конкретной аннотацией. Как я могу сделать? Что-то вроде этого: @Foo public class Bar { // inject methods here } Если это возможно, от…
14 фев '19 в 17:08
1
ответ
Использование Byte Buddy для агента Java
Я хочу создать агента, который будет подключаться к нашим работающим серверам Tomcat и Weblogic, который будет перехватывать все вызовы методов для всех классов, объявленных в пакете моей компании, и выполнять некоторую регистрацию метрик, таких как…
26 окт '15 в 13:09
2
ответа
Переопределить нестатические методы
Я пытаюсь переопределить простой нестатический метод, но получаю исключение: Exception in thread "main" java.lang.UnsupportedOperationException: class redefinition failed: attempted to change the schema (add/remove fields) Классы: class Source { def…
20 сен '17 в 09:30
2
ответа
Как создать динамический прокси класса без публичного конструктора, используя ByteBuddy
Я хочу создать динамический прокси класса Sample, у которого нет двух открытых конструкторов, он не работает и выдает ошибку. Но если я сделаю конструктор как Public, он будет работать нормально. Возможно ли в байтовом партнере добиться этого? Также…
14 ноя '18 в 17:45
2
ответа
Java-агент, использующий Byte-Buddy, не работает
Мне нужна ваша помощь в поиске, что не так с моей реализацией... Я пытаюсь реализовать простой профилировщик времени выполнения JVM, используя byte-buddy. В общем, мне нужно, чтобы каждый вызов метода регистрировался в стеке, которым я управляю в от…
27 июл '16 в 08:45
4
ответа
Ошибка в реализации с интерфейсом
Извините за мой английский, у меня проблемы с реализацией. У меня есть абстрактный класс только с одним методом, который реализует интерфейс package br.com.teste; public abstract class Test implements IDefault { @Override public String test1() { ret…
29 янв '17 в 14:59
1
ответ
Ошибка при переопределении метода с помощью ByteBuddy: "Не удалось переопределить класс: попытка добавить метод"
Я изучаю Byte Buddy и пытаюсь сделать следующее: создать подкласс из данного класса или интерфейса затем заменить метод в подклассе Обратите внимание, что подкласс "загружен" в ClassLoader перед одним из его методов (sayHello) переопределено. Сбой с…
23 ноя '16 в 21:48
1
ответ
MethodHandler в Hibernate с использованием прокси-серверов ByteBuddy застревает в бесконечном цикле
В настоящее время я перевожу старый инструмент для Hibernate для автоматизации предварительной выборки на основе статистики сущностей. В старом инструменте использовался Hibernate 3.1, так что есть над чем поработать. Традиционно Hibernate использов…
31 июл '18 в 11:52
2
ответа
Byte Buddy Advice ломает отладчик Eclipse
Я использовал net.bytebuddy.asm.Advice для добавления кода до и после соответствующим образом аннотированных методов, для запуска и остановки таймеров. Модифицированные классы загружаются вручную в загрузчик целевого класса, прежде чем можно будет с…
28 авг '18 в 23:28
1
ответ
Сбой ByteBuddy при попытке переопределить sun.reflect.GeneratedMethodAccessor1
Руководствуясь любопытством, я попытался экспортировать байт-код GeneratedMethodAccessor1 (сгенерированный JVM при использовании отражения). Я пытаюсь получить байт-код класса следующим образом: public class MethodExtractor { public static void main…
16 мар '15 в 21:18
1
ответ
Как избежать рекурсивных вызовов с помощью байта приятель - java.lang.StackruError
У меня есть совет, который вызывает аналогичный метод в совете. Как сделать так, чтобы совет вызывался один раз и только один раз? Прямо сейчас, так как метод, который я вызываю в рамках совета, тот же, что и инструментальный, он переходит в рекурси…
21 апр '17 в 10:56
1
ответ
Добавление аннотации с заданным значением с помощью Byte Buddy
Как я могу использовать Byte Buddy, чтобы добавить аннотацию с заданным значением? Я играю с созданием тестовых классов для JUnit, и я хотел бы аннотировать сгенерированный класс @RunWith(SomeRunner.class),
08 янв '16 в 13:13
1
ответ
Неопределенный метод для типа AgentBuilder.Default ByteBuddy
Метод rebase(( type) -> {}) не определен для типа AgentBuilder.Default. public static void premain(String arg, Instrumentation inst){ new AgentBuilder.Default() .rebase(type -> type.getSimpleName().equals("Calculator")) .transform((builder, typeD…
14 июл '17 в 10:19
1
ответ
Java - способен ли bytebuddy агент "полностью" переопределить класс?
Способен ли агент байтового партнера преодолевать ограничения API присоединения, например, "определение нового метода", "изменения статической переменной"? я могу увидеть это redefineClasses Метод вызывается из Agent Builder, но не уверен, что он та…
08 янв '18 в 11:19
1
ответ
ByteBuddy: новые определенные поля не видны через отражение
Я использую ByteBuddy в агенте, чтобы добавить переменную отслеживания для каждого Runnable в тестовой программе: new AgentBuilder.Default() .with(AgentBuilder.LambdaInstrumentationStrategy.ENABLED) .type(ElementMatchers.isSubTypeOf(Runnable.class) …
18 май '17 в 18:28