[rules-users] Very basic running of drools 5, basic setup and quickstart
Berlin Brown
berlin.brown at gmail.com
Sun Apr 25 19:26:39 EDT 2010
I am not using Eclipse.
2010/4/25 Greg Barton <greg_barton at yahoo.com>
> The best documentation to read would be the maven docs:
>
> http://maven.apache.org/
>
> But if you drop the attached pom.xml into a project created by drools'
> eclipse plugin it'll work fine. type "mvn clean install" from the project
> home directory and it'll build. (After downloading half the known
> universe...)
>
>
> --- On *Thu, 4/22/10, Berlin Brown <berlin.brown at gmail.com>* wrote:
>
>
> From: Berlin Brown <berlin.brown at gmail.com>
> Subject: Re: [rules-users] Very basic running of drools 5, basic setup and
> quickstart
> To: "Rules Users List" <rules-users at lists.jboss.org>
> Date: Thursday, April 22, 2010, 5:11 PM
>
>
> Is there documentation on how to do this, including a full example. I saw
> the pom file, but still don't know the run/compile targets?
>
> 2010/4/22 Greg Barton <greg_barton at yahoo.com<http://mc/compose?to=greg_barton@yahoo.com>
> >
>
>> Have you ever thought of using maven? Your problem is no doubt with
>> including the transitive dependencies of the drools libraries, which maven
>> would do for you automatically. Here are the jars that were included
>> automatically in a project I compiled with drools-core, drools-compiler,
>> drools-api, all 5.0.1:
>>
>> antlr-runtime-3.1.1.jar
>> core-3.4.2.v_883_R34x.jar
>>
>> drools-api-5.0.1.jar
>> drools-compiler-5.0.1.jar
>> drools-core-5.0.1.jar
>> janino-2.5.15.jar
>> joda-time-1.6.jar
>> jsap-2.1.jar
>> mvel2-2.0.10.jar
>>
>> This resulted from a dependencies section in the maven pom that had just
>> this in it:
>>
>> <dependencies>
>> <dependency>
>> <groupId>org.drools</groupId>
>> <artifactId>drools-core</artifactId>
>> <version>5.0.1</version>
>> </dependency>
>> <dependency>
>> <groupId>org.drools</groupId>
>> <artifactId>drools-compiler</artifactId>
>> <version>5.0.1</version>
>> </dependency>
>> <dependency>
>> <groupId>org.drools</groupId>
>> <artifactId>drools-api</artifactId>
>> <version>5.0.1</version>
>> </dependency>
>> </dependencies>
>>
>> So I suggest you give maven a try. It makes this easy. :)
>>
>> --- On *Wed, 4/21/10, Berlin Brown <berlin.brown at gmail.com<http://mc/compose?to=berlin.brown@gmail.com>
>> >* wrote:
>>
>>
>> From: Berlin Brown <berlin.brown at gmail.com<http://mc/compose?to=berlin.brown@gmail.com>
>> >
>> Subject: [rules-users] Very basic running of drools 5, basic setup and
>> quickstart
>> To: rules-users at lists.jboss.org<http://mc/compose?to=rules-users@lists.jboss.org>
>> Date: Wednesday, April 21, 2010, 12:54 AM
>>
>>
>> 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:
>>
>> I get the following error: Note: I don't am running completely without
>> Eclipse or any other IDE:
>>
>> test:
>> [java] Exception in thread "main" org.drools.RuntimeDroolsException:
>> Unable to load d
>> ialect
>> 'org.drools.rule.builder.dialect.java.JavaDialectConfiguration:java:org.drools.rule
>> .builder.dialect.java.JavaDialectConfiguration'
>> [java] at
>> org.drools.compiler.PackageBuilderConfiguration.addDialect(PackageBuild
>> erConfiguration.java:274)
>> [java] at
>> org.drools.compiler.PackageBuilderConfiguration.buildDialectConfigurati
>> onMap(PackageBuilderConfiguration.java:259)
>> [java] at
>> org.drools.compiler.PackageBuilderConfiguration.init(PackageBuilderConf
>> iguration.java:176)
>> [java] at
>> org.drools.compiler.PackageBuilderConfiguration.<init>(PackageBuilderCo
>> nfiguration.java:153)
>> [java] at
>> org.drools.compiler.PackageBuilder.<init>(PackageBuilder.java:242)
>> [java] at
>> org.drools.compiler.PackageBuilder.<init>(PackageBuilder.java:142)
>> [java] at
>> org.drools.builder.impl.KnowledgeBuilderProviderImpl.newKnowledgeBuilde
>> r(KnowledgeBuilderProviderImpl.java:29)
>> [java] at
>> org.drools.builder.KnowledgeBuilderFactory.newKnowledgeBuilder(Knowledg
>> eBuilderFactory.java:29)
>> [java] at org.berlin.rpg.rules.Rules.rules(Rules.java:33)
>> [java] at org.berlin.rpg.rules.Rules.main(Rules.java:73)
>> [java] Caused by: java.lang.RuntimeException: The Eclipse JDT Core
>> jar is not in the
>> classpath
>> [java] at
>> org.drools.rule.builder.dialect.java.JavaDialectConfiguration.setCompil
>> er(JavaDialectConfiguration.java:94)
>> [java] at
>> org.drools.rule.builder.dialect.java.JavaDialectConfiguration.init(Java
>> DialectConfiguration.java:55)
>> [java] at
>> org.drools.compiler.PackageBuilderConfiguration.addDialect(PackageBuild
>> erConfiguration.java:270)
>> [java] ... 9 more
>> [java] Java Result: 1
>>
>> ...
>> ...
>>
>> I do include the following libraries with my javac and java target:
>>
>> <path id="classpath">
>> <pathelement location="${lib.dir}" />
>> <pathelement location="${lib.dir}/drools-api-5.0.1.jar" />
>> <pathelement location="${lib.dir}/drools-compiler-5.0.1.jar" />
>> <pathelement location="${lib.dir}/drools-core-5.0.1.jar" />
>> <pathelement location="${lib.dir}/janino-2.5.15.jar" />
>> </path>
>>
>> Here is the Java code that is throwing the error. I commented out the
>> java.compiler code, that didn't work either.
>>
>> public void rules() {
>>
>> /*
>> final Properties properties = new Properties();
>> properties.setProperty( "drools.dialect.java.compiler", "JANINO"
>> );
>> PackageBuilderConfiguration cfg = new PackageBuilderConfiguration(
>> properties );
>> JavaDialectConfiguration javaConf = (JavaDialectConfiguration)
>> cfg.getDialectConfiguration( "java" );
>> */
>> final KnowledgeBuilder kbuilder =
>> KnowledgeBuilderFactory.newKnowledgeBuilder();
>>
>> // this will parse and compile in one step
>>
>> kbuilder.add(ResourceFactory.newClassPathResource("HelloWorld.drl",
>> Rules.class), ResourceType.DRL);
>>
>> // Check the builder for errors
>> if (kbuilder.hasErrors()) {
>> System.out.println(kbuilder.getErrors().toString());
>> throw new RuntimeException("Unable to compile
>> \"HelloWorld.drl\".");
>> }
>>
>> // Get the compiled packages (which are serializable)
>> final Collection<KnowledgePackage> pkgs =
>> kbuilder.getKnowledgePackages();
>>
>> // Add the packages to a knowledgebase (deploy the knowledge
>> packages).
>> final KnowledgeBase kbase =
>> KnowledgeBaseFactory.newKnowledgeBase();
>> kbase.addKnowledgePackages(pkgs);
>>
>> final StatefulKnowledgeSession ksession =
>> kbase.newStatefulKnowledgeSession();
>> ksession.setGlobal("list", new ArrayList<Object>());
>>
>> ksession.addEventListener(new DebugAgendaEventListener());
>> ksession.addEventListener(new DebugWorkingMemoryEventListener());
>>
>> // Setup the audit logging
>> KnowledgeRuntimeLogger logger =
>> KnowledgeRuntimeLoggerFactory.newFileLogger(ksession, "log/helloworld");
>>
>> final Message message = new Message();
>> message.setMessage("Hello World");
>> message.setStatus(Message.HELLO);
>> ksession.insert(message);
>>
>> ksession.fireAllRules();
>> logger.close();
>> ksession.dispose();
>> }
>>
>> ...
>>
>> Here I don't think Ant is relevant because I have fork set to true:
>>
>> <target name="test" depends="compile">
>> <java classname="org.berlin.rpg.rules.Rules" fork="true">
>> <classpath refid="classpath.rt" />
>> <classpath>
>> <pathelement location="${basedir}" />
>> <pathelement location="${build.classes.dir}" />
>> </classpath>
>> </java>
>> </target>
>>
>>
>>
>> The error is thrown at line 1.
>>
>> Basically, I haven't done anything except call
>>
>> final KnowledgeBuilder kbuilder =
>> KnowledgeBuilderFactory.newKnowledgeBuilder();
>>
>> I am running with Windows XP, Java6, and within Ant.1.7.
>>
>>
>>
>>
>>
>> --
>> Berlin Brown (berlin dot brown at gmail.com)
>> http://botnode.com
>> http://berlinbrowndev.blogspot.com/
>>
>> -----Inline Attachment Follows-----
>>
>>
>> _______________________________________________
>> rules-users mailing list
>> rules-users at lists.jboss.org<http://mc/compose?to=rules-users@lists.jboss.org>
>> https://lists.jboss.org/mailman/listinfo/rules-users
>>
>>
>>
>> _______________________________________________
>> rules-users mailing list
>> rules-users at lists.jboss.org<http://mc/compose?to=rules-users@lists.jboss.org>
>> https://lists.jboss.org/mailman/listinfo/rules-users
>>
>>
>
>
> --
> Berlin Brown (berlin dot brown at gmail.com)
> http://botnode.com
> http://berlinbrowndev.blogspot.com/
>
> -----Inline Attachment Follows-----
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org<http://mc/compose?to=rules-users@lists.jboss.org>
> https://lists.jboss.org/mailman/listinfo/rules-users
>
>
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
>
--
Berlin Brown (berlin dot brown at gmail.com)
http://botnode.com
http://berlinbrowndev.blogspot.com/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20100425/3ff7a4af/attachment.html
More information about the rules-users
mailing list