В проекте Apache PLC4X в настоящее время я настраиваю среду для интеграционных тестов. Драйверы PLC4X Java активно используют Netty. Также мы создали большой набор так называемых «транспортов», которые обеспечивают каналы, которые Netty использует для связи. Одним из таких транспортов является «TestTransport», который использует EmbeddedChannel. Я изо всех сил пытаюсь заставить этот транспорт работать в механизме Нетти Bootstrap. Вроде неважно, что я пытаюсь, я застрял. Если я не предоставляю EventL oop, Bootstrap жалуется на отсутствие EventL oop. Если я получаю EventL oop из EmbeddedChannel путем переопределения метода «init», EmbeddedChannel жалуется, что уже настроен EventL oop.
К сожалению, в ядре Netty все, что мне нужно настроить, это что-то вроде «private», «package private» и «final». С более свежими версиями Java многие злые отражения больше не возможны.
Есть ли способ настроить EmbeddedChannel с механизмом Bootstrap, так как я не хотел бы разбирать ядро проекта и переключаться на ChannelFactories только для этой единственной функции ... и я бы не стал не хочу разбирать большую часть кода Netty только для того, чтобы выполнить работу.