gpt4 book ai didi

java - 如何在 CQ5/OSGi Bundle (Java) 中启用断言?

转载 作者:行者123 更新时间:2023-11-30 09:01:46 25 4
gpt4 key购买 nike

我们通过执行 java -ea xxx 在核心 Java 应用程序中启用断言,我也知道如何通过更改命令行选项在 Eclipse 中启用断言。

但是如何在 OSGi 包中启用断言。我有一个包,我想在启用断言的情况下进行测试,我想在部署时禁用它们(禁用会很容易,因为默认情况下禁用断言)。但是如何启用它呢?

最佳答案

您可以使用 ClassLoader#setDefaultAssertionStatus(Boolean) 方法。它仅为尚未加载的类设置断言状态。因此,放置此语句的最佳位置是捆绑激活器:

public class Activator implements BundleActivator {

@Override
public void start(BundleContext bundleContext) throws Exception {
getClass().getClassLoader().setDefaultAssertionStatus(true);
}

@Override
public void stop(BundleContext context) throws Exception {
}
}

记得在maven-bundle-plugin配置中注册激活器:

<project>
<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<configuration>
<instructions>
<Bundle-Activator>my.project.Activator</Bundle-Activator>
...

关于java - 如何在 CQ5/OSGi Bundle (Java) 中启用断言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26270764/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com