Контекст: продолжение 1c-syntax/utils#81 и нашего issue #8. Спасибо за 0.10.1 — зависимости и таймауты теперь ровно те, что нужны, и мы начали переход на ваш загрузчик. Упёрлись в версию байткода.
Что обнаружили. Все классы в utils-0.10.1.jar скомпилированы с major version 65 (Java 21) — проверяли по байтам class-файлов. В build.gradle.kts (v0.10.1) стоит:
sourceCompatibility = JavaVersion.VERSION_21
targetCompatibility = JavaVersion.VERSION_21
Почему это блокирует экосистему 1C:EDT. EDT сейчас запускается на Java 17 (в 1cedt.ini версии 2026.1 — -Dosgi.requiredJavaVersion=17), а плагины к ней — OSGi-бандлы с Bundle-RequiredExecutionEnvironment: JavaSE-17. При попытке загрузить классы v65 на такой JVM получаем UnsupportedClassVersionError — это не лечится ни упаковкой, ни настройками OSGi.
Просьба. Собирать utils (хотя бы модуль/пакет загрузчика) под Java 17 — release/targetCompatibility = 17, либо multi-release jar, либо отдельный артефакт с классификатором. По нашему просмотру исходников downloader Java-21-специфичных конструкций не видно: используются var, pattern matching для instanceof, switch-выражения, record, Stream.toList() — всё это доступно уже в Java 16–17. Но вам, конечно, виднее, нет ли чего-то такого в остальных модулях.
Контекст по срокам. По имеющимся у нас сведениям, EDT в обозримой перспективе перейдёт на более новую Java, так что проблема со временем уйдёт сама. Но переходный период у пользователей длинный: те, кто останется на текущих версиях EDT (Java 17), не смогут пользоваться плагинами, которые тянут utils. Поэтому поддержка 17 была бы очень кстати ещё какое-то время.
Если понижение таргета по каким-то причинам нежелательно — скажите, мы просто подождём перехода EDT на новую Java и вернёмся к переходу тогда.
Контекст: продолжение 1c-syntax/utils#81 и нашего issue #8. Спасибо за 0.10.1 — зависимости и таймауты теперь ровно те, что нужны, и мы начали переход на ваш загрузчик. Упёрлись в версию байткода.
Что обнаружили. Все классы в
utils-0.10.1.jarскомпилированы с major version 65 (Java 21) — проверяли по байтам class-файлов. Вbuild.gradle.kts(v0.10.1) стоит:Почему это блокирует экосистему 1C:EDT. EDT сейчас запускается на Java 17 (в
1cedt.iniверсии 2026.1 —-Dosgi.requiredJavaVersion=17), а плагины к ней — OSGi-бандлы сBundle-RequiredExecutionEnvironment: JavaSE-17. При попытке загрузить классы v65 на такой JVM получаемUnsupportedClassVersionError— это не лечится ни упаковкой, ни настройками OSGi.Просьба. Собирать
utils(хотя бы модуль/пакет загрузчика) под Java 17 —release/targetCompatibility = 17, либо multi-release jar, либо отдельный артефакт с классификатором. По нашему просмотру исходниковdownloaderJava-21-специфичных конструкций не видно: используютсяvar, pattern matching дляinstanceof, switch-выражения,record,Stream.toList()— всё это доступно уже в Java 16–17. Но вам, конечно, виднее, нет ли чего-то такого в остальных модулях.Контекст по срокам. По имеющимся у нас сведениям, EDT в обозримой перспективе перейдёт на более новую Java, так что проблема со временем уйдёт сама. Но переходный период у пользователей длинный: те, кто останется на текущих версиях EDT (Java 17), не смогут пользоваться плагинами, которые тянут
utils. Поэтому поддержка 17 была бы очень кстати ещё какое-то время.Если понижение таргета по каким-то причинам нежелательно — скажите, мы просто подождём перехода EDT на новую Java и вернёмся к переходу тогда.