Eclipselink是否在Apache Felix下使用(动态)字节码编织?

时间:2011-05-24 11:43:55

标签: java persistence osgi eclipselink

我在Apache Felix中使用了Springsource(版本1.1.0)中的Eclipselink捆绑包。我的(JPA注释)实体类得到持久化等,因此基本机制起作用。但是,我怀疑是否完成了字节码编织。

如何验证Eclipselink是否在我的课程中使用编织?

在Felix中运行时是否普遍支持编织?我没有改变我的配置或启动脚本,我必须这样做吗?

3 个答案:

答案 0 :(得分:2)

请参阅Eclipse docs - 页面底部;

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

答案 1 :(得分:1)

我可以看到两种确定是否启用动态编织的方法:

  1. persistence.xml中的EclipseLink的日志级别设置为FINEST,并且在初始化EntityManagerFactory / {{1}期间您会在日志中看到如果将使用或不使用编织。

  2. 确定为您的应用程序提供服务的jvm进程。使用OS工具或jconatools(如jconsole / jvisualvm)来确定命令行。如果您可以在vm参数中发现eclipselink agentPersistenceUnit),则启用动态编织 - 否则不启用。

答案 2 :(得分:1)

我建议你在这种环境中使用静态编织。