2016-04-22 5 views
3

再投稿[email protected]Apache Apexでカフカ0.9オペレータをテストする方法は?

0.9バージョンプロトコルをサポートする新しいカフカオペレータを使用してユニットテストコードを実行したいと思います。

このプロセスでは、Malhar-Kafkaライブラリバージョン(3.3.1インキュベーション)が含まれており、Apexエンジン(バージョン3.3.0)をテストとして提供しています。

コンパイルは正常に動作しますが、「java.lang.ClassNotFoundException:com.datatorrent.lib.util.KryoCloneUtils」の例外を除いて、私のユニットテストが正しく実行されません。

Apexエンジンと統合されたKafka 0.9オペレータを使用する単体テストを実行するには、どのような方法が推奨されますか?私はMalhar-contribのライブラリカフカのオペレーターが対応していない0.9であると仮定しています。..

ユニットテストコードは次のようである:

クラスCassandraEventDetailsS​​treamingAppは、コードの以下のスニペットで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()); 
    } 
} 

答えて

1

私は、アペックス・エンジン、頂点-APIの依存関係のセクションからMalhar-ライブラリとMalhar-contribのの依存関係を除外することによって、問題を解決することができました。

これは、クラスパスに続いて3.3.1インキュベーションバージョンのMalharキックと、続いて3.3.1インキュベーションバージョンのMalhar-Kafkaライブラリを作成しました。

関連する問題