Size: a a a

JPoint, Java-конференция

2020 May 20

OS

Oleg Shelajev in JPoint, Java-конференция
но если ты хочешь — я могу покликать :)
источник

SM

Sergey Morgunov in JPoint, Java-конференция
Сорри, забыл поздороваться. Всем привет! @akogun @vladimirsitnikv @shelajevoleg @mitiaalexandrov
Дано: Приложенька, которая на старте использует инструментирующий javaagent. (для упрощения, будем считать что это какой-нибудь aspectj)
Хочется: Скомпилировать приложеньку в native image (GraalVM) так, чтобы при компиляции использовался не оригинальный байткод, а тот, который получается после инструментирования агентом.
источник

AK

Andrey Kuleshov in JPoint, Java-конференция
Andrey Kuleshov
А есть вообще какие-то драйверы реактивные для Оракла, которые уже сейчас можно в продакшен использовать?
Если что - вопрос был не к ведущим, а в этот чат )
источник

SM

Sergey Morgunov in JPoint, Java-конференция
Единственное, что нагуглил, это какие-то намёки что этого можно добиться с помощью Truffle. Но как именно, пока не очень понятно, надо детально разбираться. Может есть где-то статья хорошая по этому кейсу? Как не искал, не могу найти. Но я уверен, что я не один, кому этого хочется 🙂
источник

PC

Pavel Chernyak in JPoint, Java-конференция
Oleg Shelajev
Оракл - большая компания. Я могу форварднуть вопрос специалистам если интересно
очень интересно
источник

SM

Sergey Morgunov in JPoint, Java-конференция
@shelajevoleg У меня вопрос выше к тебе 😄
источник

OS

Oleg Shelajev in JPoint, Java-конференция
надо сделать финальный байткод и скормить его в native image
источник

AK

Andrei Kogun in JPoint, Java-конференция
Внимание конкурс! Собираем вопросы к Владимиру по теме его будущего доклада, автор лучшего получит бесплатный билет на JPoint, итоги подведем через неделю, вопросы пишите в этот чат.
источник

SM

Sergey Morgunov in JPoint, Java-конференция
Oleg Shelajev
надо сделать финальный байткод и скормить его в native image
Не, ну это я понимаю 😂 Вопрос как именно его сделать? Если в обычной жизни я не вижу его в физическом представлении, так как он живёт только внутри JVM, запущенной с JavaAgent’ом.
источник

OS

Oleg Shelajev in JPoint, Java-конференция
например compile time weaving в aspectj
источник

PC

Pavel Chernyak in JPoint, Java-конференция
А есть тут спецы по котлину? Кто-нибудь знает как котлин компилятору скормить jdkшный модуль(java9+) ? В джаве это делается через —add-module,  а вот в котлине...
источник

OS

Oleg Shelajev in JPoint, Java-конференция
можно попробовать запускать native image — это java программа — с джаваагентом
источник

OS

Oleg Shelajev in JPoint, Java-конференция
и он инструментирует классы до того как генератор их увидит
источник

SM

Sergey Morgunov in JPoint, Java-конференция
Я aspectj как пример для понимания задачи указал. На его месте можно представить любой агент, который умеет инструментировать. Или есть какой-то универсальный механизм compile time weaving для любого агента?
источник

OS

Oleg Shelajev in JPoint, Java-конференция
нет, универсального нет насколько я знаю
источник

OS

Oleg Shelajev in JPoint, Java-конференция
micronaut например генерирует вещи заранее как annotation processor
источник

VS

Vladimir Sitnikov in JPoint, Java-конференция
Sergey Morgunov
Я aspectj как пример для понимания задачи указал. На его месте можно представить любой агент, который умеет инструментировать. Или есть какой-то универсальный механизм compile time weaving для любого агента?
Универсальный вряд ли. Но, если байткоды на лету не генерируются, то compile time это то, что нужно
источник

SM

Sergey Morgunov in JPoint, Java-конференция
Oleg Shelajev
можно попробовать запускать native image — это java программа — с джаваагентом
Это не спортивно 😄 Хотелось бы решить задачу ещё на этапе компиляции, так как это не динамический байткод в классическом понимании.
источник

OS

Oleg Shelajev in JPoint, Java-конференция
а какой у тебя javaagent?
источник

SM

Sergey Morgunov in JPoint, Java-конференция
Oleg Shelajev
а какой у тебя javaagent?
Срываем маски 😄 https://github.com/kamon-io/kanela
источник