Size: a a a

2020 March 12

OS

Oleg Shelajev in graalvm_ru
можно взять например micronaut
источник

DS

Dm Sedov in graalvm_ru
Sergey
А еще вопрос,
Может кто-то мог бы подсказать высокопроизводительный веб фреймверк но заточенный под graalVM?
Quarkus. Пуля. Vert.x под капотом. Удобные оберки от smalrey. Удобная обертка над Hibernate - Panache. Интеграция со Spring. HotReload из коробки.

Пример - https://github.com/shvyrev/contest_fun
источник

OS

Oleg Shelajev in graalvm_ru
сделать native image —verbose
источник

OS

Oleg Shelajev in graalvm_ru
и посмотреть
источник

d

def pl = 🦉 in graalvm_ru
λoλdog
--initialize-at-run-time=io.netty.channel.DefaultChannelId,
                   --initialize-at-run-time=io.netty.util.NetUtil
                   --initialize-at-run-time=io.netty.channel.socket.InternetProtocolFamily
                   --initialize-at-run-time=io.netty.resolver.HostsFileEntriesResolver
                   --initialize-at-run-time=io.netty.resolver.dns.DnsNameResolver,
                   --initialize-at-run-time=io.netty.resolver.dns.DnsServerAddressStreamProviders
                   --initialize-at-run-time=io.netty.resolver.dns.PreferredAddressTypeComparator\$1,
                   --initialize-at-run-time=io.netty.resolver.dns.DefaultDnsServerAddressStreamProvider
                   --initialize-at-run-time=io.netty.buffer.AbstractReferenceCountedByteBuf
                   --initialize-at-run-time=io.netty.handler.codec.http.websocketx.extensions.compression.DeflateEncoder
                   --initialize-at-run-time=io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder
                   --initialize-at-run-time=io.netty.handler.codec.http.HttpObjectEncoder
                   --initialize-at-run-time=io.netty.handler.codec.http.websocketx.WebSocket00FrameEncoder
                   --initialize-at-run-time=io.netty.handler.codec.http2.Http2CodecUtil
                   --initialize-at-run-time=io.netty.handler.codec.http2.Http2ConnectionHandler
                   --initialize-at-run-time=io.netty.handler.codec.http2.DefaultHttp2FrameWriter
                   --initialize-at-run-time=io.netty.util.internal.logging.Log4JLogger
                   --initialize-at-run-time=io.netty.handler.ssl.ReferenceCountedOpenSslServerContext
                   --initialize-at-run-time=io.netty.handler.ssl.JdkNpnApplicationProtocolNegotiator
                   --initialize-at-run-time=io.netty.handler.ssl.ReferenceCountedOpenSslEngine
                   --initialize-at-run-time=io.netty.handler.ssl.ConscryptAlpnSslEngine
                   --initialize-at-run-time=io.netty.handler.ssl.JettyNpnSslEngine
                   --initialize-at-run-time=io.netty.handler.ssl.ReferenceCountedOpenSslContext
                   --initialize-at-run-time=io.netty.handler.ssl.ReferenceCountedOpenSslClientContext
     
                   --report-unsupported-elements-at-runtime
тааак, чет заработало
источник

d

def pl = 🦉 in graalvm_ru
с фолбеком
источник

λ

λoλdog in graalvm_ru
убери фолбек
источник

d

def pl = 🦉 in graalvm_ru
чет не очеь валидный экземпл
источник

A

Alex in graalvm_ru
Но вообще пока либы не подтянуться и не про пишут себе все что нужно то сборка будет ещё тем приключением :)
источник

ВВ

Виктор Вербицкий in graalvm_ru
def pl = 🦉
я к примеру прописываю класс к инициализации в рантайме, а он пишет что ошибка из-за того что я пишу его в билд тайме
Я это ловлю через дебаг компилятора. Запускаешь native-image с параметром --debug-attach. Компиляция стартует и останавливается на ожидании подключения Java дебагера. Цепляешься и ставиш точку останова внутри того же io.netty.buffer.AbstractReferenceCountedByteBuf в статическом инициализаторе, если есть. И смотришь из какого статического инициализатора другого класса сюда попал. Тот класс тоже в рантайм перекидываешь.
И так раз за разом, пока такие ошибки не закончатся.
источник

λ

λoλdog in graalvm_ru
Виктор Вербицкий
Я это ловлю через дебаг компилятора. Запускаешь native-image с параметром --debug-attach. Компиляция стартует и останавливается на ожидании подключения Java дебагера. Цепляешься и ставиш точку останова внутри того же io.netty.buffer.AbstractReferenceCountedByteBuf в статическом инициализаторе, если есть. И смотришь из какого статического инициализатора другого класса сюда попал. Тот класс тоже в рантайм перекидываешь.
И так раз за разом, пока такие ошибки не закончатся.
зачем тот то перекидывать
источник

λ

λoλdog in graalvm_ru
источник

λ

λoλdog in graalvm_ru
вообще вот так вот
источник

λ

λoλdog in graalvm_ru
@sammers21 какая там у тебя версия нетти
источник

ВВ

Виктор Вербицкий in graalvm_ru
λoλdog
зачем тот то перекидывать
Потому, что он и притягивает в компайлтайм, несмотря на указание опций
источник

λ

λoλdog in graalvm_ru
Виктор Вербицкий
Потому, что он и притягивает в компайлтайм, несмотря на указание опций
если ты ей явно ставишь run-time то нет
источник

OS

Oleg Shelajev in graalvm_ru
def pl = 🦉
чет не очеь валидный экземпл
прости, я не понимаю так. мне надо более длинные предложения
источник

d

def pl = 🦉 in graalvm_ru
λoλdog
убери фолбек
Убрал. Вот что получилось https://pastebin.com/raw/pWJ8yQd6
источник

d

def pl = 🦉 in graalvm_ru
не работает
источник

d

def pl = 🦉 in graalvm_ru
λoλdog
@sammers21 какая там у тебя версия нетти
ща чекну
источник