2012-02-15 2 views
0

Droolsフレームワークでいくつかの経験をしようとしています。テスト中に次のテストを試しますStatefulKnowledgeSessionが異なるKnowledgeBaseを持つ理由Drools

@Test public void testDrools() { 
     KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); 
     StatefulKnowledgeSession session = kbase.newStatefulKnowledgeSession(); 
     assertSame(session.getKnowledgeBase(), kbase); 
    } 

なぜこのテストに失敗しますか?セッションが作成に使用されたKnowledgeBaseへの参照を持っているのは本当ですか?私はそれについてちょっと混乱しています。たぶん私はそれを理解するのを助けることができます。

ありがとうございます。 Alberto

答えて

1

これは実装の詳細であり、DroolsがDrools 4.xバージョンとの下位互換性を維持する必要があったためです。 kbaseとsession.getKnowledgeBase()は両方とも実際の知識ベース上のラッパーです。そのため、2つのラッパーがありますが、両方のラッパーが指し示す知識ベースの実際のインスタンスは1つだけです。

関連する問題