Что такое замена Java 9+ для Sun VirtualListViewControl? - PullRequest
1 голос
/ 03 апреля 2019

Я поддерживаю кодовую базу, которая использует 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?

...