Я поддерживаю кодовую базу, которая использует com.sun.jndi.ldap.ctl.VirtualListViewControl
из старого Sun LDAP Booster Pack, и я пытаюсь обновить его до стандарта Java 11.
Первая проблема заключается в том, что при попытке скомпилировать код вы получаете:
...] cannot access com.sun.jndi.ldap.BasicControl
class file for com.sun.jndi.ldap.BasicControl not found
Это можно исправить, добавив в аргументы компилятора следующее:
--add-exports java.naming/com.sun.jndi.ldap=ALL-UNNAMED
Это позволяет коду Booster Pack на пути к классам обращаться к внутреннему com.sun.jndi.ldap.BasicControl
в модуле java.naming
, и все работает.
Однако использование --add-exports
уродливо и, что более уместно, несовместимо с использованием параметра --release
, чтобы обеспечить сборку до определенного уровня кода и API.
Я охотился, но я не могу найти ничего похожего ни на обновленный / модульный ldapbp, ни на альтернативную реализацию элемента управления VLV.
Итак, мой вопрос: что является официальной или принятой заменой старого VirtualListViewControl
от Sun, который прекрасно работает с Java 9+, или есть другой способ использования старого, который не требует --add-exports
?