Способы настройки Netty EmbeddedChannel через Bootstrap? - PullRequest
1 голос
/ 25 февраля 2020

В проекте 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 только для того, чтобы выполнить работу.

1 Ответ

0 голосов
/ 26 февраля 2020

К сожалению, нет способа использовать EmbeddedChannel с Bootstrap. Тем не менее, я не уверен, что понимаю, почему вам нужно сделать много изменений. Может быть, другая альтернатива, которая лучше подходит для вас, - это LocalChannel и LocalServerChannel? Оба могут использоваться с *Bootstrap.

...