[jboss-svn-commits] JBL Code SVN: r26655 - labs/jbossrules/trunk/drools-docs/drools-docs-solver/src/main/docbook/en-US/Chapter-Solver.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu May 21 11:21:17 EDT 2009
Author: ge0ffrey
Date: 2009-05-21 11:21:16 -0400 (Thu, 21 May 2009)
New Revision: 26655
Modified:
labs/jbossrules/trunk/drools-docs/drools-docs-solver/src/main/docbook/en-US/Chapter-Solver/Section-Solver_examples.xml
labs/jbossrules/trunk/drools-docs/drools-docs-solver/src/main/docbook/en-US/Chapter-Solver/Section-Solver_introduction.xml
Log:
problem statement examples, clean up getting it and running examples, info about jira
Modified: labs/jbossrules/trunk/drools-docs/drools-docs-solver/src/main/docbook/en-US/Chapter-Solver/Section-Solver_examples.xml
===================================================================
--- labs/jbossrules/trunk/drools-docs/drools-docs-solver/src/main/docbook/en-US/Chapter-Solver/Section-Solver_examples.xml 2009-05-21 14:56:03 UTC (rev 26654)
+++ labs/jbossrules/trunk/drools-docs/drools-docs-solver/src/main/docbook/en-US/Chapter-Solver/Section-Solver_examples.xml 2009-05-21 15:21:16 UTC (rev 26655)
@@ -1,36 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
-<section version="5.0" xmlns="http://docbook.org/ns/docbook"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:xi="http://www.w3.org/2001/XInclude"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns:m="http://www.w3.org/1998/Math/MathML"
- xmlns:html="http://www.w3.org/1999/xhtml"
- xmlns:db="http://docbook.org/ns/docbook" xml:base="../../">
+<section version="5.0" xml:base="../../" xmlns="http://docbook.org/ns/docbook"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:svg="http://www.w3.org/2000/svg" xmlns:m="http://www.w3.org/1998/Math/MathML"
+ xmlns:html="http://www.w3.org/1999/xhtml" xmlns:db="http://docbook.org/ns/docbook">
<title>Solver examples</title>
<section>
<title>Introduction</title>
- <para>Drools-solver has several examples. In this manual we explain
- drools-solver mainly using the n queens example. So it's advisable to read
- at least the section about that example.</para>
+ <para>Drools-solver has several examples. In this manual we explain drools-solver mainly using the n queens example.
+ So it's advisable to read at least the section about that example. For advanced users, the Examination example is
+ recommended.</para>
+
+ <para>You can find the source code of all these examples in the drools source distribution and also in subversion
+ under <literal>drools-solver/drools-solver-examples</literal>.</para>
</section>
<section>
<title>The n queens example</title>
<section>
- <title>Running the example</title>
-
- <para>In the directory
- <literal>/drools-solver/drools-solver-examples/</literal> run the
- following command:</para>
-
- <programlisting>$ mvn exec:exec -Dexec.mainClass="org.drools.solver.examples.nqueens.app.NQueensApp"
-...</programlisting>
- </section>
-
- <section>
<title>Screenshot</title>
<para>Here is a screenshot of the example:</para>
@@ -40,7 +29,7 @@
<mediaobject>
<imageobject>
- <imagedata fileref="images/Chapter-Solver/screenshotNQueens.png" />
+ <imagedata fileref="images/Chapter-Solver/screenshotNQueens.png"></imagedata>
</imageobject>
</mediaobject>
</figure>
@@ -49,8 +38,7 @@
<section>
<title>Problem statement</title>
- <para>The <emphasis>n queens puzzle</emphasis> is a puzzle with the
- follow constraints:</para>
+ <para>The <emphasis>n queens puzzle</emphasis> is a puzzle with the follow constraints:</para>
<itemizedlist>
<listitem>
@@ -62,15 +50,13 @@
</listitem>
<listitem>
- <para>No 2 queens can attack each other. Note that a queen can
- attack any other queen on the same horizontal, vertical or diagonal
- line.</para>
+ <para>No 2 queens can attack each other. Note that a queen can attack any other queen on the same horizontal,
+ vertical or diagonal line.</para>
</listitem>
</itemizedlist>
- <para>The most common n queens puzzle is the 8 queens puzzle, with
- <emphasis>n = 8</emphasis>. We 'll explain drools-solver using the 4
- queens puzzle as the primary example.</para>
+ <para>The most common n queens puzzle is the 8 queens puzzle, with <emphasis>n = 8</emphasis>. We 'll explain
+ drools-solver using the 4 queens puzzle as the primary example.</para>
<para>A proposed solution could be:</para>
@@ -79,17 +65,14 @@
<mediaobject>
<imageobject>
- <imagedata align="center"
- fileref="images/Chapter-Solver/partiallySolvedNQueens04Explained.png"
- format="PNG" />
+ <imagedata align="center" fileref="images/Chapter-Solver/partiallySolvedNQueens04Explained.png" format="PNG"></imagedata>
</imageobject>
</mediaobject>
</figure>
- <para>The above solution is wrong because queens A1 and B0 can attack
- each other (as can queens B0 and D0). Removing queen B0 would respect
- the "no 2 queens can attack each other" constraint, but would break the
- "place n queens" constraint.</para>
+ <para>The above solution is wrong because queens A1 and B0 can attack each other (as can queens B0 and D0).
+ Removing queen B0 would respect the "no 2 queens can attack each other" constraint, but would break the "place n
+ queens" constraint.</para>
</section>
<section>
@@ -102,23 +85,20 @@
<mediaobject>
<imageobject>
- <imagedata align="center" fileref="images/Chapter-Solver/solvedNQueens04.png"
- format="PNG" />
+ <imagedata align="center" fileref="images/Chapter-Solver/solvedNQueens04.png" format="PNG"></imagedata>
</imageobject>
</mediaobject>
</figure>
- <para>All the constraints have been met, so the solution is correct.
- Note that most n queens puzzles have multiple correct solutions. We 'll
- focus on finding a single correct solution for a given n, not on finding
- the number of possible correct solutions for a given n.</para>
+ <para>All the constraints have been met, so the solution is correct. Note that most n queens puzzles have multiple
+ correct solutions. We 'll focus on finding a single correct solution for a given n, not on finding the number of
+ possible correct solutions for a given n.</para>
</section>
<section>
<title>Problem size</title>
- <para>These numbers might give you some insight on the size of this
- problem.</para>
+ <para>These numbers might give you some insight on the size of this problem.</para>
<table>
<title>NQueens problem size</title>
@@ -213,36 +193,34 @@
</tbody>
</tgroup>
</table>
+
+ <para>The drools-solver implemenation has not been optimized because it functions as a beginner example.
+ Nevertheless, it can easily handle 64 queens.</para>
</section>
<section>
<title>Domain class diagram</title>
- <para>Use a good domain model and it will be easier to understand and
- solve your problem with drools-solver. We 'll use this domain model for
- the n queens example:</para>
+ <para>Use a good domain model and it will be easier to understand and solve your problem with drools-solver. We
+ 'll use this domain model for the n queens example:</para>
<figure>
<title>NQueens domain class diagram</title>
<mediaobject>
<imageobject>
- <imagedata align="center" fileref="images/Chapter-Solver/nQueensDomainDiagram.png"
- format="PNG" />
+ <imagedata align="center" fileref="images/Chapter-Solver/nQueensDomainDiagram.png" format="PNG"></imagedata>
</imageobject>
</mediaobject>
</figure>
- <para>A <literal>Queen</literal> instance has an x (its column, for
- example: 0 is column A, 1 is column B, ...) and a y (its row, for
- example: 0 is row 0, 1 is row 1, ...). Based on the x and y, the
- ascending diagonal line as well as the descending diagonal line can be
- calculated. The x and y indexes start from the upper left corner of the
- chessboard.</para>
+ <para>A <literal>Queen</literal> instance has an x (its column, for example: 0 is column A, 1 is column B, ...)
+ and a y (its row, for example: 0 is row 0, 1 is row 1, ...). Based on the x and y, the ascending diagonal line as
+ well as the descending diagonal line can be calculated. The x and y indexes start from the upper left corner of
+ the chessboard.</para>
<table>
- <title>A solution for the 4 queens puzzle shown in the domain
- model</title>
+ <title>A solution for the 4 queens puzzle shown in the domain model</title>
<tgroup cols="6">
<thead>
@@ -265,8 +243,7 @@
<row>
<entry morerows="3"><mediaobject>
<imageobject>
- <imagedata fileref="images/Chapter-Solver/partiallySolvedNQueens04Explained.png"
- format="PNG" />
+ <imagedata fileref="images/Chapter-Solver/partiallySolvedNQueens04Explained.png" format="PNG"></imagedata>
</imageobject>
</mediaobject></entry>
@@ -320,15 +297,9 @@
</tgroup>
</table>
- <para>A single <literal>NQueens</literal> instance contains a list of
- all <literal>Queen</literal> instances. It is the
- <literal>Solution</literal> implementation which will be supplied to and
- retrieved from drools-solver. Notice that in the 4 queens example,
- NQueens's <literal>getN()</literal> method will always return 4.</para>
-
- <para>You can find the source code of this example (as well as well as
- several other examples) in the drools-solver-examples src
- distribution.</para>
+ <para>A single <literal>NQueens</literal> instance contains a list of all <literal>Queen</literal> instances. It
+ is the <literal>Solution</literal> implementation which will be supplied to and retrieved from drools-solver.
+ Notice that in the 4 queens example, NQueens's <literal>getN()</literal> method will always return 4.</para>
</section>
</section>
@@ -336,17 +307,6 @@
<title>The lesson schedule example</title>
<section>
- <title>Running the example</title>
-
- <para>In the directory
- <literal>/drools-solver/drools-solver-examples/</literal> run the
- following command:</para>
-
- <programlisting>$ mvn exec:exec -Dexec.mainClass="org.drools.solver.examples.lessonschedule.app.LessonScheduleApp"
-...</programlisting>
- </section>
-
- <section>
<title>Screenshot</title>
<para>Here is a screenshot of the example:</para>
@@ -356,7 +316,7 @@
<mediaobject>
<imageobject>
- <imagedata fileref="images/Chapter-Solver/screenshotLessonSchedule.png" />
+ <imagedata fileref="images/Chapter-Solver/screenshotLessonSchedule.png"></imagedata>
</imageobject>
</mediaobject>
</figure>
@@ -383,22 +343,6 @@
<title>The traveling tournament example</title>
<section>
- <title>Running the example</title>
-
- <para>In the directory
- <literal>/drools-solver/drools-solver-examples/</literal> run one of the
- the following commands:</para>
-
- <programlisting>$ mvn exec:exec -Dexec.mainClass="org.drools.solver.examples.travelingtournament.app.simple.SimpleTravelingTournamentApp"
-...
-$ mvn exec:exec -Dexec.mainClass="org.drools.solver.examples.travelingtournament.app.smart.SmartTravelingTournamentApp"
-...</programlisting>
-
- <para>The smart implementation performs and scales a lot better than the
- simple implementation.</para>
- </section>
-
- <section>
<title>Screenshot</title>
<para>Here is a screenshot of the example:</para>
@@ -408,7 +352,7 @@
<mediaobject>
<imageobject>
- <imagedata fileref="images/Chapter-Solver/screenshotTravelingTournament.png" />
+ <imagedata fileref="images/Chapter-Solver/screenshotTravelingTournament.png"></imagedata>
</imageobject>
</mediaobject>
</figure>
@@ -417,13 +361,11 @@
<section>
<title>Problem statement</title>
- <para>Schedule matches between teams with the following hard
- constraints:</para>
+ <para>Schedule matches between teams with the following hard constraints:</para>
<itemizedlist>
<listitem>
- <para>Each team plays twice against every other team: once home and
- once away</para>
+ <para>Each team plays twice against every other team: once home and once away</para>
</listitem>
<listitem>
@@ -431,13 +373,12 @@
</listitem>
<listitem>
- <para>No more than 3 consecutive home or 3 consecutive away matches
- for any team</para>
+ <para>No more than 3 consecutive home or 3 consecutive away matches for any team</para>
</listitem>
<listitem>
- <para>No repeaters: 2 consecutive matches of the same 2 teams (so
- each team plays once home and once away</para>
+ <para>No repeaters: 2 consecutive matches of the same 2 teams (so each team plays once home and once
+ away</para>
</listitem>
</itemizedlist>
@@ -449,16 +390,29 @@
</listitem>
</itemizedlist>
- <para><link xlink:href="http://mat.gsia.cmu.edu/TOURN/">You can find a
- detailed description as well as several records of this problem
- here.</link></para>
+ <para><link xlink:href="http://mat.gsia.cmu.edu/TOURN/">You can find a detailed description as well as several
+ records of this problem here.</link></para>
</section>
<section>
+ <title>Simple and smart implementation</title>
+
+ <para>There are 2 implementations (simple and smart) to demonstrate the importance of some performance tips. The
+ <literal>ExamplesApp</literal> always runs the smart implementation, but with these commands you can compare the 2
+ implementations yourself:</para>
+
+ <programlisting>$ mvn exec:exec -Dexec.mainClass="org.drools.solver.examples.travelingtournament.app.simple.SimpleTravelingTournamentApp"
+...
+$ mvn exec:exec -Dexec.mainClass="org.drools.solver.examples.travelingtournament.app.smart.SmartTravelingTournamentApp"
+...</programlisting>
+
+ <para>The smart implementation performs and scales exponentially better than the simple implementation.</para>
+ </section>
+
+ <section>
<title>Problem size</title>
- <para>These numbers might give you some insight on the size of this
- problem.</para>
+ <para>These numbers might give you some insight on the size of this problem.</para>
<table>
<title>Traveling tournament problem size</title>
@@ -620,17 +574,6 @@
<title>The ITC2007 examination example</title>
<section>
- <title>Running the example</title>
-
- <para>In the directory
- <literal>/drools-solver/drools-solver-examples/</literal> run the
- following command:</para>
-
- <programlisting>$ mvn exec:exec -Dexec.mainClass="org.drools.solver.examples.itc2007.examination.app.ExaminationApp"
-...</programlisting>
- </section>
-
- <section>
<title>Screenshot</title>
<para>Here is a screenshot of the example:</para>
@@ -640,7 +583,7 @@
<mediaobject>
<imageobject>
- <imagedata fileref="images/Chapter-Solver/screenshotExamination.png" />
+ <imagedata fileref="images/Chapter-Solver/screenshotExamination.png"></imagedata>
</imageobject>
</mediaobject>
</figure>
@@ -649,26 +592,22 @@
<section>
<title>Problem statement</title>
- <para>Schedule each exam into a period and into a room. Multiple exams
- can share the same room during the same period.</para>
+ <para>Schedule each exam into a period and into a room. Multiple exams can share the same room during the same
+ period.</para>
- <para>There are a number of hard constraints that cannot be
- broken:</para>
+ <para>There are a number of hard constraints that cannot be broken:</para>
<itemizedlist>
<listitem>
- <para>Exam conflict: 2 exams that share students should not occur in
- the same period.</para>
+ <para>Exam conflict: 2 exams that share students should not occur in the same period.</para>
</listitem>
<listitem>
- <para>Room capacity: A room's seating capacity should suffice at all
- times.</para>
+ <para>Room capacity: A room's seating capacity should suffice at all times.</para>
</listitem>
<listitem>
- <para>Period duration: A period's duration should suffice for all of
- its exams.</para>
+ <para>Period duration: A period's duration should suffice for all of its exams.</para>
</listitem>
<listitem>
@@ -676,8 +615,7 @@
<itemizedlist>
<listitem>
- <para>Coincidence: 2 exams should use the same period (but
- possibly another room).</para>
+ <para>Coincidence: 2 exams should use the same period (but possibly another room).</para>
</listitem>
<listitem>
@@ -685,8 +623,7 @@
</listitem>
<listitem>
- <para>After: 1 exam should occur in a period after another
- exam's period.</para>
+ <para>After: 1 exam should occur in a period after another exam's period.</para>
</listitem>
</itemizedlist>
</listitem>
@@ -696,15 +633,14 @@
<itemizedlist>
<listitem>
- <para>Exclusive: 1 exam should not have to share its room with
- any other exam.</para>
+ <para>Exclusive: 1 exam should not have to share its room with any other exam.</para>
</listitem>
</itemizedlist>
</listitem>
</itemizedlist>
- <para>There are also a number of soft constraints that should be
- minimized (each of which has parameterized penalty's):</para>
+ <para>There are also a number of soft constraints that should be minimized (each of which has parameterized
+ penalty's):</para>
<itemizedlist>
<listitem>
@@ -716,18 +652,15 @@
</listitem>
<listitem>
- <para>Period spread: 2 exams that share students should be a number
- of periods apart.</para>
+ <para>Period spread: 2 exams that share students should be a number of periods apart.</para>
</listitem>
<listitem>
- <para>Mixed durations: 2 exams that share a room should not have
- different durations.</para>
+ <para>Mixed durations: 2 exams that share a room should not have different durations.</para>
</listitem>
<listitem>
- <para>Front load: Large exams should be scheduled earlier in the
- schedule.</para>
+ <para>Front load: Large exams should be scheduled earlier in the schedule.</para>
</listitem>
<listitem>
@@ -741,17 +674,14 @@
<para>It uses large test data sets of real-life universities.</para>
- <para><link
- xlink:href="http://www.cs.qub.ac.uk/itc2007/examtrack/exam_track_index.htm">You
- can find a more detailed description of this problem
- here.</link></para>
+ <para><link xlink:href="http://www.cs.qub.ac.uk/itc2007/examtrack/exam_track_index.htm">You can find a more
+ detailed description of this problem here.</link></para>
</section>
<section>
<title>Problem size</title>
- <para>These numbers might give you some insight on the size of this
- problem.</para>
+ <para>These numbers might give you some insight on the size of this problem.</para>
<table>
<title>Examination problem size</title>
@@ -942,6 +872,9 @@
</tbody>
</tgroup>
</table>
+
+ <para>Geoffrey De Smet (the drools-solver lead) finished 4th in the International Timetabling Competition 2007's
+ examination track with a very early version of drools-solver. Many improvements have been made since then.</para>
</section>
<section>
@@ -954,17 +887,61 @@
<mediaobject>
<imageobject>
- <imagedata fileref="images/Chapter-Solver/examinationDomainDiagram.png" />
+ <imagedata fileref="images/Chapter-Solver/examinationDomainDiagram.png"></imagedata>
</imageobject>
</mediaobject>
</figure>
- <para>Notice that we've split up the exam concept into an
- <literal>Exam</literal> class and a <literal>Topic</literal> class. The
- <literal>Exam</literal> instances change during solving, when they get
- another period or room. The <literal>Topic</literal>,
- <literal>Period</literal> and <literal>Room</literal> instances never
- change during solving.</para>
+ <para>Notice that we've split up the exam concept into an <literal>Exam</literal> class and a
+ <literal>Topic</literal> class. The <literal>Exam</literal> instances change during solving, when they get another
+ period or room. The <literal>Topic</literal>, <literal>Period</literal> and <literal>Room</literal> instances
+ never change during solving.</para>
</section>
</section>
+
+ <section>
+ <title>The ITC 2007 curriculum course example</title>
+
+ <section>
+ <title>Problem statement</title>
+
+ <para>Schedule lectures into rooms and time periods.</para>
+
+ <para><link xlink:href="http://www.cs.qub.ac.uk/itc2007/curriculmcourse/course_curriculm_index.htm">You can find a
+ more detailed description of this problem here.</link></para>
+ </section>
+ </section>
+
+ <section>
+ <title>The Manners 2009 example</title>
+
+ <section>
+ <title>Problem statement</title>
+
+ <para>In Manners 2009, miss Manners is throwing a party again.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>This time she invited 144 guests and prepared 12 round tables with 12 seats each.</para>
+ </listitem>
+
+ <listitem>
+ <para>Every guest should sit next to someone (left and right) of the opposite gender.</para>
+ </listitem>
+
+ <listitem>
+ <para>And that neighbour should have at least one hobby in common with the guest.</para>
+ </listitem>
+
+ <listitem>
+ <para>Also, this time there should be 2 politicians, 2 doctors, 2 socialites, 2 sports stars, 2 teachers and 2
+ programmers at each table.</para>
+ </listitem>
+
+ <listitem>
+ <para>And the 2 politicians, 2 doctors, 2 sports stars and 2 programmers shouldn't be the same kind.</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ </section>
</section>
Modified: labs/jbossrules/trunk/drools-docs/drools-docs-solver/src/main/docbook/en-US/Chapter-Solver/Section-Solver_introduction.xml
===================================================================
--- labs/jbossrules/trunk/drools-docs/drools-docs-solver/src/main/docbook/en-US/Chapter-Solver/Section-Solver_introduction.xml 2009-05-21 14:56:03 UTC (rev 26654)
+++ labs/jbossrules/trunk/drools-docs/drools-docs-solver/src/main/docbook/en-US/Chapter-Solver/Section-Solver_introduction.xml 2009-05-21 15:21:16 UTC (rev 26655)
@@ -6,10 +6,10 @@
<title>Solver introduction</title>
<section>
- <title>What is a Solver?</title>
+ <title>What is drools-solver?</title>
- <para>Drools-solver combines a search algorithm with the power of the drools rule engine to solve planning problems.
- Good examples of such planning problems include:</para>
+ <para><emphasis role="bold">Drools-solver solves planning problems</emphasis> by combining a search algorithm with
+ the power of the drools rule engine. Good examples of such planning problems include:</para>
<itemizedlist>
<listitem>
@@ -110,48 +110,86 @@
occur. With the recipe called <filename>UpgradeFromPreviousVersionRecipe.txt</filename> you can easily upgrade and
deal with any backwards incompatible changes between versions. You can find this recipe in subversion and in every
release.</para>
-
- <para>You can download a release of drools-solver from <link
- xlink:href="http://www.jboss.org/drools/downloads.html">the drools download site</link>. It is also available on
- <link xlink:href="http://repository.jboss.com/maven2/">the jboss maven repository</link>.</para>
</section>
<section>
- <title>Building drools-solver and running an example</title>
+ <title>Getting drools-solver and running the examples</title>
- <para>You can also easily build it from source yourself. Check out drools from subversion and do a maven 2 build
- with the solver profile:</para>
+ <section>
+ <title>Getting the release package and running the examples</title>
- <programlisting>$ svn checkout http://anonsvn.jboss.org/repos/labs/labs/jbossrules/trunk/ drools
+ <para>You can download a release of drools-solver from <link
+ xlink:href="http://www.jboss.org/drools/downloads.html">the drools download site</link>. To run an example, just
+ run the script (<filename>runExamples.sh</filename> on linux or <filename>runExamples.bat</filename> on windows)
+ and pick an example:</para>
+
+ <programlisting>$ ./runExamples.sh</programlisting>
+ </section>
+
+ <section>
+ <title>Get it with maven 2</title>
+
+ <para>The drools-solver jars are available on <link xlink:href="http://repository.jboss.com/maven2/">the jboss
+ maven repository</link>. If you use maven 2, just add a dependency to <literal>drools-solver-core</literal> in
+ your project's <filename>pom.xml</filename>:</para>
+
+ <programlisting> <dependency>
+ <groupId>org.drools.solver</groupId>
+ <artifactId>drools-solver-core</artifactId>
+ <version>5.x</version>
+ </dependency></programlisting>
+
+ <para>You might also need to add the jboss repository in your respository manager (nexus, archiva, ...) or your
+ <filename>~/settings.xml</filename>:</para>
+
+ <programlisting> <repositories>
+ <repository>
+ <id>repository.jboss.org</id>
+ <url>http://repository.jboss.org/maven2</url>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
+ <releases>
+ <enabled>true</enabled>
+ </releases>
+ </repository>
+ ...
+ </repositories></programlisting>
+ </section>
+
+ <section>
+ <title>Build it from source</title>
+
+ <para>You can also easily build it from source yourself. Checkout drools from subversion and do a maven 2
+ build:</para>
+
+ <programlisting>$ svn checkout http://anonsvn.jboss.org/repos/labs/labs/jbossrules/trunk/ drools
...
$ cd drools
$ mvn -DskipTests clean install
...</programlisting>
- <para>After that, you can run any example directly from the command line, for example to run the n queens example,
- run:</para>
+ <para>After that, you can run any example directly from the command line, just run this command and pick an
+ example:</para>
- <programlisting>$ cd drools-solver/drools-solver-examples/
-$ mvn exec:exec -Dexec.mainClass="org.drools.solver.examples.nqueens.app.NQueensApp"
+ <programlisting>$ cd drools-solver/drools-solver-examples/
+$ mvn exec:exec -Dexec.mainClass="org.drools.solver.examples.app.ExamplesApp"
...</programlisting>
+ </section>
+ </section>
- <para>You will use drools-solver with the latest, unstable snapshot of the drools rule engine. If you would rather
- use a stable version of the drools rule engine, edit <literal>/drools-solver/pom.xml</literal> and overwrite the
- drools jar versions, before building and running the examples:</para>
+ <section>
+ <title>Questions, issues and patches</title>
- <programlisting> <dependencyManagement>
- <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>
- </dependencies>
- </dependencyManagement></programlisting>
+ <para>Your questions are welcome on <link xlink:href="http://www.jboss.org/drools/lists.html">the user mailing
+ list</link>. You can read/write to the mailing list without littering your mailbox through <link
+ xlink:href="nntp://news.gmane.org/gmane.comp.java.drools.user">this newsgroup</link>.</para>
+
+ <para>Feel free to report an issue in the drools-solver code or in this manual to <link
+ xlink:href="https://jira.jboss.org/jira/browse/JBRULES">the drools JIRA</link>. Select the component
+ <literal>drools-solver</literal>. </para>
+
+ <para>Patches are very welcome and get priority treatment! Attach them to a JIRA issue and optionally send a mail to
+ the dev list.</para>
</section>
</section>
More information about the jboss-svn-commits
mailing list