如何用apacheapex对kafka0.9操作符进行单元测试?

gorkyyrv  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(378)

从重新发布users@apex.incubator.apache.org
我想使用支持0.9版本协议的新kafka操作符运行一个单元测试代码。
在这个过程中,我包括了malhar kafka库版本(3.3.1-incubating),并使用apex引擎(3.3.0版)和as测试/提供。
编译工作正常,但我的单元测试无法正常运行,出现“java.lang.classnotfoundexception:com.datatorrent.lib.util.kryocloneutils”异常。
使用与apex引擎集成的kafka 0.9操作符运行单元测试的推荐方法是什么?我假设malhar contrib库kafka操作符不符合0.9。。
单元测试代码如下:
cassandraeventdetailsstreamingapp类在下面的代码片段中扩展了abstractkafkainputoperator。
方法lma.getcontroller()中出现异常;

@Test
public void testApplication() throws IOException, Exception {
    try {
        LocalMode lma = LocalMode.newInstance();
        Configuration conf = new Configuration(false);
        conf.addResource(this.getClass().getResourceAsStream("/dag-test-props.xml"));
        lma.prepareDAG(new CassandraEventDetailsStreamingApp(), conf);
        LocalMode.Controller lc = lma.getController();
        lc.run();
    } catch (ConstraintViolationException e) {
        Assert.fail("constraint violations: " + e.getConstraintViolations());
    }
}
e5nqia27

e5nqia271#

我能够通过从apex引擎apex api的依赖部分中排除malhar库和malhar contrib的依赖来解决这个问题。
这使得malhar的3.3.1孵化版本进入了类路径,随后是malharkafka库(3.3.1孵化版本)。

相关问题