Спецификации EJB и версии Java - обратная совместимость

Это мое понимание взаимосвязи между спецификацией EJB и версиями Java.

  • EJB 2.0 был частью платформы J2EE 1.3, которая была поверх J2SE 1.3 или JDK 1.3.x
  • EJB 2.1 был частью платформы J2EE 1.4, которая была поверх J2SE 1.4 или JDK 1.4.x

Спецификация EJB 2.1 требует обратной совместимости для EJB 2.0, поэтому контейнеры, поддерживающие EJB 2.1 и работающие в JDK 1.4.x, также смогут запускать компоненты EJB 2.0.

  • EJB 3.0 является частью платформы Java EE 5, которая требует Java SE 5 (JDK 5) для аннотаций и т. Д.

Спецификация EJB 3 требует обратной совместимости для более ранней версии спецификаций.

У меня такой вопрос. Если я обновлю код Java для реализации EJB 2.0 beans для компиляции с более поздней версией Java (скажем, Java 5), ​​могу ли я сохранить ту же версию спецификации EJB или мне нужно будет перенести и ее. < / сильный>


person AJM    schedule 14.03.2011    source источник
comment
Проголосовал, так как это помогло мне создать stackoverflow.com / questions / 6921562 /   -  person Stephen    schedule 03.08.2011


Ответы (2)


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

Таким образом, ваши старые EAR-файлы Java 1.3 / EJB 2.0 должны по-прежнему работать без изменений на сервере приложений Java 5 / EJB 3, и вы даже можете исправлять ошибки в коде и компилировать его с -target 1.3 на современном JDK без необходимости исправлять конфликтующие идентификаторы (конечно, вы то также не может использовать новые функции исходного уровня).

person Michael Borgwardt    schedule 14.03.2011
comment
Спасибо, означает ли это, что я могу продолжать использовать версию EJB 2.0 спецификации EJB и в то же время воспользоваться преимуществами некоторых функций Java 5 в реализации моих bean-компонентов? - person AJM; 17.03.2011
comment
@AJM: Да, хотя это, конечно, требует от вас полностью обновить исходный код до Java 5 (что неплохо, просто переименуйте идентификаторы, которые конфликтуют с новыми ключевыми словами). - person Michael Borgwardt; 17.03.2011

В этой таблице показаны некоторые несовместимости на уровне источника (времени сборки) между ejb Версии 2.0, 2.1 и 3.0, хотя двоичная (во время выполнения) совместимость поддерживается для всех выпусков, то есть вы можете запускать свой код в новых версиях ejb без необходимости перекомпилировать.

введите описание изображения здесь

person linuxbuild    schedule 03.12.2011