Совместимые имена классов Java - PullRequest
4 голосов
/ 19 декабря 2011

У нас есть Java-клиент, который использует corba для вызова нескольких сторонних систем.Это разные системы, которые реализуют один и тот же набор интерфейсов.Нам были предоставлены библиотеки (jar-файлы) для использования этих интерфейсов.Например, один объект из этих библиотек -

this.that.GeneralException

Теперь нам нужно подключиться к другой внешней системе, но они изменили наименование, введя еще несколько уровней пакетов, например:

org.example.this.that.GeneralException

Я предполагал, что классы выше будут признаны совершенно разными.Поэтому я сделал копию старого клиента, переключился на новую библиотеку и изменил ссылки в соответствии с новой схемой именования.Не имея тестовой среды для новой системы, я подключил этот клиент к одной из старых систем.И, как ни странно, это работало довольно хорошо.

Это что-то связанное с корбой или что я здесь упускаю?

РЕДАКТИРОВАТЬ

Только что получилзаметка от одного из сторонних разработчиков.На самом деле, это никак не связано с корбой.Вместо этого они пытаются поддерживать обратную совместимость своей системы.Поэтому они сопоставили новую схему именования со старой и теперь предлагают интерфейс под обоими именами одновременно.

Ответы [ 2 ]

3 голосов
/ 19 декабря 2011

Заглушки и скелеты для CORBA генерируются через IDL, в общем.Часть определения IDL определяет структуру пакета в случае сгенерированных Java-заглушек.Изменяя структуру пакета классов вашего клиентского интерфейса, вы в основном выполняли контракт, который ORB ожидал бы между клиентом и сервером.Единственные проблемы, с которыми вы столкнетесь, - это то, что заглушки на стороне клиента ссылаются на методы, которых нет на сервере.

0 голосов
/ 02 апреля 2012

На самом деле, это никак не связано с корбой. Вместо этого они пытаются поддерживать обратную совместимость своей системы. Поэтому они сопоставили новую схему именования со старой и теперь предлагают интерфейс под обоими именами одновременно.

...