Is there a more comprehensive quick start for drools 5. I was attempting to run the simple Hello World .drl rule but I wanted to do it through an ant script, possibly with just javac/java:<br><br>I get the following error: Note: I don't am running completely without Eclipse or any other IDE: <br>
<br>test:<br> [java] Exception in thread "main" org.drools.RuntimeDroolsException: Unable to load d<br>ialect 'org.drools.rule.builder.dialect.java.JavaDialectConfiguration:java:org.drools.rule<br>.builder.dialect.java.JavaDialectConfiguration'<br>
[java] at org.drools.compiler.PackageBuilderConfiguration.addDialect(PackageBuild<br>erConfiguration.java:274)<br> [java] at org.drools.compiler.PackageBuilderConfiguration.buildDialectConfigurati<br>onMap(PackageBuilderConfiguration.java:259)<br>
[java] at org.drools.compiler.PackageBuilderConfiguration.init(PackageBuilderConf<br>iguration.java:176)<br> [java] at org.drools.compiler.PackageBuilderConfiguration.<init>(PackageBuilderCo<br>nfiguration.java:153)<br>
[java] at org.drools.compiler.PackageBuilder.<init>(PackageBuilder.java:242)<br> [java] at org.drools.compiler.PackageBuilder.<init>(PackageBuilder.java:142)<br> [java] at org.drools.builder.impl.KnowledgeBuilderProviderImpl.newKnowledgeBuilde<br>
r(KnowledgeBuilderProviderImpl.java:29)<br> [java] at org.drools.builder.KnowledgeBuilderFactory.newKnowledgeBuilder(Knowledg<br>eBuilderFactory.java:29)<br> [java] at org.berlin.rpg.rules.Rules.rules(Rules.java:33)<br>
[java] at org.berlin.rpg.rules.Rules.main(Rules.java:73)<br> [java] Caused by: java.lang.RuntimeException: The Eclipse JDT Core jar is not in the<br>classpath<br> [java] at org.drools.rule.builder.dialect.java.JavaDialectConfiguration.setCompil<br>
er(JavaDialectConfiguration.java:94)<br> [java] at org.drools.rule.builder.dialect.java.JavaDialectConfiguration.init(Java<br>DialectConfiguration.java:55)<br> [java] at org.drools.compiler.PackageBuilderConfiguration.addDialect(PackageBuild<br>
erConfiguration.java:270)<br> [java] ... 9 more<br> [java] Java Result: 1<br clear="all"><br>...<br>...<br><br>I do include the following libraries with my javac and java target:<br><br> <path id="classpath"><br>
<pathelement location="${lib.dir}" /><br> <pathelement location="${lib.dir}/drools-api-5.0.1.jar" /><br> <pathelement location="${lib.dir}/drools-compiler-5.0.1.jar" /><br>
<pathelement location="${lib.dir}/drools-core-5.0.1.jar" /><br> <pathelement location="${lib.dir}/janino-2.5.15.jar" /><br> </path><br><br>Here is the Java code that is throwing the error. I commented out the java.compiler code, that didn't work either.<br>
<br> public void rules() {<br> <br> /*<br> final Properties properties = new Properties(); <br> properties.setProperty( "drools.dialect.java.compiler", "JANINO" ); <br>
PackageBuilderConfiguration cfg = new PackageBuilderConfiguration( properties ); <br> JavaDialectConfiguration javaConf = (JavaDialectConfiguration) <br> cfg.getDialectConfiguration( "java" ); <br>
*/<br> final KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();<br><br> // this will parse and compile in one step<br> kbuilder.add(ResourceFactory.newClassPathResource("HelloWorld.drl", Rules.class), ResourceType.DRL);<br>
<br> // Check the builder for errors<br> if (kbuilder.hasErrors()) {<br> System.out.println(kbuilder.getErrors().toString());<br> throw new RuntimeException("Unable to compile \"HelloWorld.drl\".");<br>
}<br><br> // Get the compiled packages (which are serializable)<br> final Collection<KnowledgePackage> pkgs = kbuilder.getKnowledgePackages();<br><br> // Add the packages to a knowledgebase (deploy the knowledge packages).<br>
final KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();<br> kbase.addKnowledgePackages(pkgs);<br><br> final StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();<br> ksession.setGlobal("list", new ArrayList<Object>());<br>
<br> ksession.addEventListener(new DebugAgendaEventListener());<br> ksession.addEventListener(new DebugWorkingMemoryEventListener());<br><br> // Setup the audit logging<br> KnowledgeRuntimeLogger logger = KnowledgeRuntimeLoggerFactory.newFileLogger(ksession, "log/helloworld");<br>
<br> final Message message = new Message();<br> message.setMessage("Hello World");<br> message.setStatus(Message.HELLO);<br> ksession.insert(message);<br><br> ksession.fireAllRules();<br>
logger.close();<br> ksession.dispose();<br> }<br><br>...<br><br>Here I don't think Ant is relevant because I have fork set to true:<br><br> <target name="test" depends="compile"><br>
<java classname="org.berlin.rpg.rules.Rules" fork="true"><br> <classpath refid="classpath.rt" /><br> <classpath><br> <pathelement location="${basedir}" /><br>
<pathelement location="${build.classes.dir}" /><br> </classpath><br> </java><br> </target><br><br><br><br>The error is thrown at line 1.<br><br>Basically, I haven't done anything except call<br>
<br>final KnowledgeBuilder kbuilder =
KnowledgeBuilderFactory.newKnowledgeBuilder();<br><br>I am running with Windows XP, Java6, and within Ant.1.7.<br><br><br><br><br><br>-- <br>Berlin Brown (berlin dot brown at <a href="http://gmail.com">gmail.com</a>)<br>
<a href="http://botnode.com">http://botnode.com</a><br><a href="http://berlinbrowndev.blogspot.com/">http://berlinbrowndev.blogspot.com/</a><br>