[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>    &lt;dependency&gt;
+        &lt;groupId&gt;org.drools.solver&lt;/groupId&gt;
+        &lt;artifactId&gt;drools-solver-core&lt;/artifactId&gt;
+        &lt;version&gt;5.x&lt;/version&gt;
+    &lt;/dependency&gt;</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>    &lt;repositories&gt;
+        &lt;repository&gt;
+            &lt;id&gt;repository.jboss.org&lt;/id&gt;
+            &lt;url&gt;http://repository.jboss.org/maven2&lt;/url&gt;
+            &lt;snapshots&gt;
+                &lt;enabled&gt;false&lt;/enabled&gt;
+            &lt;/snapshots&gt;
+            &lt;releases&gt;
+               &lt;enabled&gt;true&lt;/enabled&gt;
+            &lt;/releases&gt;
+        &lt;/repository&gt;
+        ...
+    &lt;/repositories&gt;</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>    &lt;dependencyManagement&gt;
-        &lt;dependencies&gt;
-            &lt;dependency&gt;
-                &lt;groupId&gt;org.drools&lt;/groupId&gt;
-                &lt;artifactId&gt;drools-core&lt;/artifactId&gt;
-                &lt;version&gt;5.0.1&lt;/version&gt;
-            &lt;/dependency&gt;
-            &lt;dependency&gt;
-                &lt;groupId&gt;org.drools&lt;/groupId&gt;
-                &lt;artifactId&gt;drools-compiler&lt;/artifactId&gt;
-                &lt;version&gt;5.0.1&lt;/version&gt;
-            &lt;/dependency&gt;
-        &lt;/dependencies&gt;
-    &lt;/dependencyManagement&gt;</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