Hello,
This code does not compile any more since version
6.2.0.Beta2 (it works with 6.2.0.Beta1). This occurs when I use an
InnerClass.
import org.drools.compiler.test.InnerClassTest;
declare Hero
md: InnerClassTest.Woman
end;
Error creating field accessors for TypeDeclaration 'Hero' for type 'Hero : Man/SuperMan'
This works with beta1 and beta2:
import org.drools.compiler.test.InnerClassTest;
import org.drools.compiler.test.InnerClassTest.Woman;
declare Hero
md: Woman
end;
Here is the unit test:
@Test
public void testInnerClass() {
String drl =
"import " + InnerClassTest.class.getCanonicalName() + ";\n" +
"\n\n" +
"declare Hero\n" +
" md: InnerClassTest.Woman\n" +
"end\n";
KnowledgeBuilder knowledgeBuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
knowledgeBuilder.add( new ByteArrayResource( drl.getBytes() ),
ResourceType.DRL );
System.out.println( knowledgeBuilder.getErrors().toString() );
Assert.assertFalse( knowledgeBuilder.hasErrors() );
KnowledgeBase kBase = KnowledgeBaseFactory.newKnowledgeBase();
kBase.addKnowledgePackages( knowledgeBuilder.getKnowledgePackages() );
StatefulKnowledgeSession kSession = kBase.newStatefulKnowledgeSession();
kSession.fireAllRules();
}
It seems to be a regression. I'm going to create a ticket in JIRA.
Nicolas-xavier