Size: a a a

2018 October 04

OS

Oleg Shelajev in graalvm_ru
какой класс подменить хочешь?
источник

OS

Oleg Shelajev in graalvm_ru
или ты хочешь конструктор / static initializer подменить?
источник

OS

Oleg Shelajev in graalvm_ru
@TargetClass(ClassLoader.class)
@Substitute
@SuppressWarnings("static-method")
public final class Target_java_lang_ClassLoader {

   @Substitute //
   private Target_java_lang_ClassLoader parent;

   @Substitute
   public Target_java_lang_ClassLoader() {
       parent = null;
   }

конструктор тоже вот так вот можно
источник

λ

λЪЫ in graalvm_ru
Виктор Вербицкий
У меня опять вопрос по SVM: а можно как-то так сделать подстановку классов, чтобы изменить базовый класс в исходном коде?
Напоролся на опциональную зависимость (которая реально не нужна в данном конкретном случае), которая тянется через наследование. По идее надо или сказать SVM не трогать конкретный класс совсем, или изменить его предка, чтобы не тащить тонну ненужных зависимотстей.
а расскажи пожалуйста зачем, очень интересно
источник

ВВ

Виктор Вербицкий in graalvm_ru
Oleg Shelajev
какой класс подменить хочешь?
Я хочу вот это:

class X extends Y {
}

Превратить в это:

class X {
}

Или вообще убрать класс X из зоны видимости SVM, чтобы даже копилять не пытался.
источник

OS

Oleg Shelajev in graalvm_ru
это интересный вопрос
источник

OS

Oleg Shelajev in graalvm_ru
мне кажется так непросто сделать
источник

OS

Oleg Shelajev in graalvm_ru
я не видел в подменах такого
источник

ВВ

Виктор Вербицкий in graalvm_ru
λЪЫ
а расскажи пожалуйста зачем, очень интересно
Иследую технологию. Этого достаточно? 😊
источник

λ

λЪЫ in graalvm_ru
Виктор Вербицкий
Иследую технологию. Этого достаточно? 😊
не, я не цепляюсь, мне правда интересно - чот как детектив прям. Не могу представить кейс
источник

ВВ

Виктор Вербицкий in graalvm_ru
Ну я тоже не очень представляю. Но это лечится тем, что берёшь и пытаешься тыкать технологию палочкой. Со временем понимаешь на что технология способна и где её рентабельно применять.
А тема с AOT интересна сама по себе, вот и тыкаю потихоньку, когда время есть.
источник

OS

Oleg Shelajev in graalvm_ru
а у тебя этот класс отовсюду используется?
источник

OS

Oleg Shelajev in graalvm_ru
или из 1-2 мест?
источник

OS

Oleg Shelajev in graalvm_ru
в смысле с практической точки зрения может проще подменить тех кто его трогает
источник

ВВ

Виктор Вербицкий in graalvm_ru
Ну самый смех в том, что его вообще никто не трогает. Но он есть и SVM пытается с ним что-то сделать, но не находит Y, который подтягивать в classpath очень не хочется
источник

OS

Oleg Shelajev in graalvm_ru
rm X.class :D
источник

OS

Oleg Shelajev in graalvm_ru
я понимаю
источник

ВВ

Виктор Вербицкий in graalvm_ru
Вот думал, что можно без ковыряния в сторонних jar обойтись...
источник

ВВ

Виктор Вербицкий in graalvm_ru
не ну на assembly-maven-plugin и не такие извраты колбасили, можно и так пойти, но это как-то уж очень жёстко...
источник

ПФ

Паша Финкельштейн in graalvm_ru
а может просто создать абстрактный Y без контента в соответствующем пэкэдже?
источник