Источник Java9Memory в хронике

Мне стало любопытно, какой механизм вне кучи используется в проекте openHFT, и я ищу файл класса ниже (не могу найти где-нибудь в github), как определено в исходном коде:

Class<? extends Memory> java9MemoryClass = Class
                    .forName("software.chronicle.enterprise.core.Java9Memory")
                    .asSubclass(Memory.class);

Из репозитория github: https://github.com/OpenHFT/Chronicle-Core/blob/master/src/main/java/net/openhft/chronicle/core/OS.java

Мой вопрос: этот класс с открытым исходным кодом? Если да, то как это работает? Благодарю.

2 ответа

Решение

Этот класс недоступен и будет удален в будущем.

Наш текущий подход к совместимости с Java9 заключается в публикации артефактов OpenHFT, созданных для целевого уровня языка 1.8. Любые несовместимости во время выполнения Java (такие как переименования классов) будут устраняться, если вашей программе потребуется модуль Java9, который будет содержать специфичные для Java9 переопределения.

В ответ на ваш вопрос о том, как работает класс - библиотеки Chronicle будут продолжать использовать sun.misc.Unsafe при работе на JVM версии 9. Для этого необходимо вручную добавить экспорт в команду, например:

--add-exports=java.unsupported/sun.misc=ALL-UNNAMED

Поддержка Java 9 была отдельной, так как она была движущейся целью, однако мы добавим ее как субмодуль, который вы можете включить, если вам нужно работать на java 9. Это все еще в стадии разработки.

Другие вопросы по тегам