2012-02-15 5 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 개의 래퍼가 있기 때문에 두 래퍼 모두가 가리키는 지식베이스의 실제 인스턴스는 하나뿐입니다.