Использует ли Eclipselink (динамическое) переплетение байт-кодов в Apache Felix?

#java #persistence #osgi #eclipselink

#java #постоянство #osgi #eclipselink

Вопрос:

Я использую пакеты Eclipselink из Springsource (версия 1.1.0) внутри Apache Felix. Мои (аннотированные JPA) классы сущностей сохраняются и т.д., Поэтому базовый механизм работает. Однако я сомневаюсь, что переплетение байт-кода выполнено.

Как я могу проверить, использует ли Eclipselink переплетение в моих классах?

Поддерживается ли плетение вообще при запуске в Felix? Я ничего не менял в своей конфигурации или сценариях запуска, должен ли я?

Ответ №1:

Смотрите Документы Eclipse внизу страницы;

 import org.eclipse.persistence.internal.helper.Helper;
import org.eclipse.persistence.internal.weaving.PersistenceWeaved;
...
if (Helper.classImplementsInterface(MyEntity.class, PersistenceWeaved.class)) {
   // MyEntityEntity successfully woven!
   ...
  

Ответ №2:

Я вижу два метода определения, включено ли динамическое переплетение:

  1. установите уровень журнала EclipseLink в persistence.xml на FINEST , и вы увидите в журналах во время инициализации EntityManagerFactory / PersistenceUnit , будет ли использоваться переплетение или нет.

  2. Определите процесс jvm, который обслуживает ваше приложение. Используйте инструменты операционной системы или javatools, такие как jconsole / jvisualvm, для определения командной строки. Если вы можете определить агент eclipselink ( -javaagent:eclipselink.jar ) в аргументах виртуальной машины, динамическое переплетение включено — в противном случае нет.

Ответ №3:

Я бы рекомендовал вам использовать статическое переплетение в этой среде.