在代码中设置openejb javaagent?

时间:2014-04-04 14:20:23

标签: eclipse maven integration-testing openjpa openejb

我目前正在为Java EE应用程序编写集成测试并使用openejb / openjpa。 但是当我使用CMP时,我必须使用javaagent来增强我的类。在maven中,我可以配置我的surefire插件来执行此增强,或者更好地将代理设置为测试的vm参数。

但是我正在开发中,我喜欢在eclipse中经常运行我的测试。但在那里我不想一直通过

设置代理
java -javaagent:openejb-javaagent-4.6.0.jar _\[other params...](other-params....html)

有人为这个问题找到了有用的解决方案吗?

2 个答案:

答案 0 :(得分:1)

为了在Eclipse中进行测试,我总是创建一个可以在Run Configuration的VM arguments部分中使用的变量。这样你需要指定的就像${agent}(或者你称之为),而不是完整的javaagent字符串。

答案 1 :(得分:-1)

Mhh但不确定,看看我的属性,我的类应该在运行时得到增强:

@Before
public void startupContainer() throws NamingException {
    Properties p = new Properties();
    p.put("openjpa.jdbc.SynchronizeMappings", "buildSchema(ForeignKeys=true)");
    p.put("openjpa.jdbc.DBDictionary", "hsql(SupportsSelectForUpdate=true)");
    p.put("openejb.embedded.initialcontext.close", "destroy");
    p.put("openjpa.RuntimeUnenhancedClasses", "supported");
    p.put("openjpa.DynamicEnhancementAgent", "true");
    p.put("javax.persistence.lock.timeout", "0");
    p.put("openejb.log.factory", "slf4j");

    ejbContainer = EJBContainer.createEJBContainer(p);
}