[jboss-svn-commits] JBL Code SVN: r18252 - in labs/jbossrules/contrib/benchmarks/src/rules/benchmarks: dispatch-ilog and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Feb 1 10:51:12 EST 2008


Author: shabino
Date: 2008-02-01 10:51:12 -0500 (Fri, 01 Feb 2008)
New Revision: 18252

Added:
   labs/jbossrules/contrib/benchmarks/src/rules/benchmarks/dispatch-ilog/
   labs/jbossrules/contrib/benchmarks/src/rules/benchmarks/dispatch-ilog/Derivations.irl
   labs/jbossrules/contrib/benchmarks/src/rules/benchmarks/dispatch-ilog/EligibilityExclusions.irl
   labs/jbossrules/contrib/benchmarks/src/rules/benchmarks/dispatch-ilog/Functions.irl
   labs/jbossrules/contrib/benchmarks/src/rules/benchmarks/dispatch-ilog/LogicalTopTier.irl
   labs/jbossrules/contrib/benchmarks/src/rules/benchmarks/dispatch-ilog/Queries.irl
   labs/jbossrules/contrib/benchmarks/src/rules/benchmarks/dispatch-ilog/ScoreManagement.irl
   labs/jbossrules/contrib/benchmarks/src/rules/benchmarks/dispatch-ilog/Scoring.irl
   labs/jbossrules/contrib/benchmarks/src/rules/benchmarks/dispatch-ilog/WorkerEligibility.irl
Log:
ILog-versions of dispatch benchmark -- not correct yet!

Added: labs/jbossrules/contrib/benchmarks/src/rules/benchmarks/dispatch-ilog/Derivations.irl
===================================================================
--- labs/jbossrules/contrib/benchmarks/src/rules/benchmarks/dispatch-ilog/Derivations.irl	                        (rev 0)
+++ labs/jbossrules/contrib/benchmarks/src/rules/benchmarks/dispatch-ilog/Derivations.irl	2008-02-01 15:51:12 UTC (rev 18252)
@@ -0,0 +1,111 @@
+import benchmarks.dispatch.fact.derived.*;
+import benchmarks.dispatch.fact.independent.*;
+import java.util.Date;
+
+rule TimeAvailableforJobwhennotonjob {
+	when {
+		w : Worker(status != Worker.Status.DISPATCHED_FOR_JOB);
+		ds: DispatchState();
+	}
+	then {
+		DateWorkerInfo workerInfo = new DateWorkerInfo(w.getWorkerId());
+		workerInfo.setType(WorkerInfo.Type.TIME_AVAILABLE_FOR_DISPATCH);
+		//If we just use system date, workers get stamped as available in the past
+		workerInfo.setValue(ds.getCurrentTime());
+		insertLogical(workerInfo);
+	}
+}
+
+
+rule TimeAvailableforJobwhenalreadyonJob {
+	when {
+		w : Worker(status == Worker.Status.DISPATCHED_FOR_JOB);
+	}
+	then {
+		DateWorkerInfo workerInfo = new DateWorkerInfo(w.getWorkerId());
+		workerInfo.setType(WorkerInfo.Type.TIME_AVAILABLE_FOR_DISPATCH);
+		workerInfo.setValue(w.getTimeAvailable());
+		insertLogical(workerInfo);
+	}
+}
+
+
+rule PositionAvailableforjobwhennotonjob {
+	when {
+		w : Worker(status != Worker.Status.DISPATCHED_FOR_JOB);
+		wp: WorkerPosition(workerId == w.workerId);
+	}
+	then {
+		PositionWorkerInfo workerInfo = new PositionWorkerInfo(w.getWorkerId());
+		workerInfo.setType(WorkerInfo.Type.POSITION_AVAILABLE_FOR_DISPATCH);
+		workerInfo.setLatitude(wp.getLatitude());
+		workerInfo.setLongitude(wp.getLongitude());
+		insertLogical(workerInfo);
+	}
+}
+
+
+rule PositionAvailableforDispatchWhenOnLoad {
+	when {
+		w : Worker(status == Worker.Status.DISPATCHED_FOR_JOB);
+	}
+	then {
+		PositionWorkerInfo workerInfo = new PositionWorkerInfo(w.getWorkerId());
+		workerInfo.setType(WorkerInfo.Type.POSITION_AVAILABLE_FOR_DISPATCH);
+		workerInfo.setLatitude(w.getCurrentJobLatitude());
+		workerInfo.setLongitude(w.getCurrentJobLongitude());
+		insertLogical(workerInfo);
+	}
+}
+
+
+rule Distancetojob {
+	when {
+		j : Job();
+		not JobExclusion(jobId == j.jobId);
+		w: Worker();
+		dvi: PositionWorkerInfo(workerId == w.workerId && type == WorkerInfo.Type.POSITION_AVAILABLE_FOR_DISPATCH);
+	}
+	then {
+		Double dist = distanceToPickupInMiles(j, dvi.getLatitude(), dvi.getLongitude());
+		DecimalInfo i = new DecimalInfo(j, w);
+		i.setValue(dist * 1.3);
+		i.setType(Info.Type.DISTANCE_TO_JOB_MILES);
+		insert logical(i);
+	}
+}
+
+
+rule Timetogettojob {
+	when {
+		j : Job();
+		not JobExclusion(jobId == j.jobId);
+		w: Worker();
+		i: DecimalInfo(jobId == j.jobId && workerId == w.workerId && type == Info.Type.DISTANCE_TO_JOB_MILES);
+	}
+	then {
+		DecimalInfo ti = new DecimalInfo(j, w);
+		ti.setType(Info.Type.TIME_TO_JOB_MINUTES);
+		//Presume 45 MPH
+		ti.setValue((Double)i.getValue() / 45 * 60);
+		insert logical(ti);
+	}
+}
+
+
+rule MinutesLatetoJob {
+	when {
+		j : Job();
+		not JobExclusion(jobId == j.jobId);
+		w: Worker();
+		availDate: DateWorkerInfo(workerId == w.workerId && type == WorkerInfo.Type.TIME_AVAILABLE_FOR_DISPATCH);
+		timeToJob: DecimalInfo(jobId == j.jobId && workerId == w.workerId && type == Info.Type.TIME_TO_JOB_MINUTES);
+	}
+	then {
+		DecimalInfo ti = new DecimalInfo(j ,w);
+		ti.setType(Info.Type.MINUTES_LATE_TO_JOB);
+		ti.setValue(minutesLateToJob(j.getStartTime(), availDate.getValue(), timeToJob.getValue()));
+		insert logical(ti);
+	}
+}
+


Property changes on: labs/jbossrules/contrib/benchmarks/src/rules/benchmarks/dispatch-ilog/Derivations.irl
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/contrib/benchmarks/src/rules/benchmarks/dispatch-ilog/EligibilityExclusions.irl
===================================================================
--- labs/jbossrules/contrib/benchmarks/src/rules/benchmarks/dispatch-ilog/EligibilityExclusions.irl	                        (rev 0)
+++ labs/jbossrules/contrib/benchmarks/src/rules/benchmarks/dispatch-ilog/EligibilityExclusions.irl	2008-02-01 15:51:12 UTC (rev 18252)
@@ -0,0 +1,19 @@
+
+
+import benchmarks.dispatch.fact.derived.*;
+import benchmarks.dispatch.fact.independent.*;
+
+
+
+rule RetractEligibilityifjobtoofarinfuture {
+	priority = 300;
+	when {
+		ds: DispatchState();
+		j : Job(startTime.getTime() > ds.startTimeCutOff.getTime());
+	}
+	then {
+	JobExclusion je = new JobExclusion();
+	je.setJobId(j.getJobId());
+	insert logical(je);
+	}
+}


Property changes on: labs/jbossrules/contrib/benchmarks/src/rules/benchmarks/dispatch-ilog/EligibilityExclusions.irl
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/contrib/benchmarks/src/rules/benchmarks/dispatch-ilog/Functions.irl
===================================================================
--- labs/jbossrules/contrib/benchmarks/src/rules/benchmarks/dispatch-ilog/Functions.irl	                        (rev 0)
+++ labs/jbossrules/contrib/benchmarks/src/rules/benchmarks/dispatch-ilog/Functions.irl	2008-02-01 15:51:12 UTC (rev 18252)
@@ -0,0 +1,42 @@
+import java.util.Date;
+import benchmarks.dispatch.fact.independent.Job;
+
+ruleset TestCase
+{
+  property ilog.rules.engine.useJIT = true;
+  property ilog.rules.engine.useStaticAgenda = true;
+  in int intvalue;
+  out int outvalue;
+};
+
+
+	function double distanceToPickupInMiles(Job job,
+			Double workerLatitude, Double workerLongitude) {
+
+		Double jobLatitude = job.getLatitude();
+		Double jobLongitude = job.getLongitude();
+
+		jobLatitude = Math.toRadians(jobLatitude);
+		workerLatitude = Math.toRadians(workerLatitude);
+		jobLongitude = Math.toRadians(jobLongitude);
+		workerLongitude = Math.toRadians(workerLongitude);
+
+		double angle = Math.acos(Math.sin(jobLatitude)
+				* Math.sin(workerLatitude) + Math.cos(jobLatitude)
+				* Math.cos(workerLatitude)
+				* Math.cos(jobLongitude - workerLongitude));
+
+		return Math.toDegrees(angle) * 69.1105D; // miles per degree
+	}
+
+
+	function double minutesLateToJob(Date jobStartTime,
+			Date workerAvailableTime, Double minutesToJob) {
+		Date earliestArrival = new Date(workerAvailableTime.getTime() + Math.round(minutesToJob * 1000 * 60));
+		if (earliestArrival.before(jobStartTime)){
+			return 0D;
+		} else {
+			long diff = earliestArrival.getTime() - jobStartTime.getTime();
+			return diff / 1000.0D / 60.0D;
+		}
+	}


Property changes on: labs/jbossrules/contrib/benchmarks/src/rules/benchmarks/dispatch-ilog/Functions.irl
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/contrib/benchmarks/src/rules/benchmarks/dispatch-ilog/LogicalTopTier.irl
===================================================================
--- labs/jbossrules/contrib/benchmarks/src/rules/benchmarks/dispatch-ilog/LogicalTopTier.irl	                        (rev 0)
+++ labs/jbossrules/contrib/benchmarks/src/rules/benchmarks/dispatch-ilog/LogicalTopTier.irl	2008-02-01 15:51:12 UTC (rev 18252)
@@ -0,0 +1,64 @@
+
+
+import benchmarks.dispatch.fact.derived.*;
+import benchmarks.dispatch.fact.independent.*;
+import benchmarks.dispatch.DispatchParameters;
+import java.util.Date;
+
+rule ClobberInactiveWorkers {
+priority = 400;
+	when {
+		w: Worker(status == Worker.Status.INACTIVE);
+		}
+	then {
+		retract(w);
+		}
+}
+
+rule ClobberDispatchedJobs {
+	priority = 400;
+	when {
+		j: Job(status != Job.Status.PENDING);
+		}
+	then {
+		retract(j);
+		}
+}
+
+rule EstablishBeginningMaxRadius {
+	priority = 300;
+	when {
+		j: Job();
+		not MaxRadius(jobId == j.jobId);
+		}
+	then {
+		MaxRadius mr = new MaxRadius(j);
+		mr.setMaxRadius(DispatchParameters.INITIAL_SEARCH_RADIUS);
+		//Do not insert logical to avoid infinite loop
+		insert(mr);
+		}
+}
+
+rule ClobberDeadMaxRadius {
+	priority = 300;
+	when {
+		mr: MaxRadius();
+		not Job(jobId == mr.jobId);
+		}
+	then {
+		System.out.println("Clobber MR");
+		retract(mr);
+		}
+}
+
+
+rule ClobberDeadPositions {
+	priority = 200;
+	when {
+		wp: WorkerPosition();
+		not Worker(workerId == wp.workerId);
+		}
+	then {
+		retract(wp);
+		}
+}


Property changes on: labs/jbossrules/contrib/benchmarks/src/rules/benchmarks/dispatch-ilog/LogicalTopTier.irl
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/contrib/benchmarks/src/rules/benchmarks/dispatch-ilog/Queries.irl
===================================================================
--- labs/jbossrules/contrib/benchmarks/src/rules/benchmarks/dispatch-ilog/Queries.irl	                        (rev 0)
+++ labs/jbossrules/contrib/benchmarks/src/rules/benchmarks/dispatch-ilog/Queries.irl	2008-02-01 15:51:12 UTC (rev 18252)
@@ -0,0 +1,52 @@
+package dispatch
+
+/*
+ * Copyright 2007 JBoss Inc
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import benchmarks.dispatch.fact.derived.*
+import benchmarks.dispatch.fact.independent.*
+
+query getTopWorkersForJob (String s)
+	e: TopWorkers(jobId == s)
+end
+
+query getJobExclusion (String s)
+	e: JobExclusion(jobId == s)
+end
+
+query getWorkerInfo(String id, WorkerInfo.Type t)
+	wi: WorkerInfo(workerId == id, type == t)
+end
+
+query getInfo(String jId, String wId, Info.Type t)
+	i: Info(jobId == jId, workerId == wId, type == t)
+end
+
+query getExclusion(String jId, String wId, Exclusion.Type t)
+	i: Exclusion(jobId == jId, workerId == wId, type == t)
+end
+
+query getScoreComponent(String jId, String wId, ScoreComponent.Type t)
+	i: ScoreComponent(jobId == jId, workerId == wId, type == t)
+end
+
+query getScoreComponents(String wId, String jId)
+	s: ScoreComponent(workerId == wId, jobId == jId)
+end
+
+query getScore(String wId, String jId)
+	s: Score(workerId == wId, jobId == jId)
+end


Property changes on: labs/jbossrules/contrib/benchmarks/src/rules/benchmarks/dispatch-ilog/Queries.irl
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/contrib/benchmarks/src/rules/benchmarks/dispatch-ilog/ScoreManagement.irl
===================================================================
--- labs/jbossrules/contrib/benchmarks/src/rules/benchmarks/dispatch-ilog/ScoreManagement.irl	                        (rev 0)
+++ labs/jbossrules/contrib/benchmarks/src/rules/benchmarks/dispatch-ilog/ScoreManagement.irl	2008-02-01 15:51:12 UTC (rev 18252)
@@ -0,0 +1,85 @@
+import benchmarks.dispatch.fact.derived.*;
+import benchmarks.dispatch.fact.independent.*;
+import benchmarks.dispatch.DispatchParameters;
+import java.util.Date;
+import java.util.Set;
+
+
+
+rule DefaultScoreComponent {
+priority = -25;
+when {
+	//Force score accumulation even if no score components
+	j : Job();
+	not JobExclusion(jobId == j.jobId);
+	w: Worker();
+	//Don't score workers that aren't eligible
+	not Exclusion(workerId == w.workerId && jobId == j.jobId);
+	dist_mr: DecimalInfo(jobId == j.jobId && workerId == w.workerId && type == Info.Type.DISTANCE_TO_JOB_MILES);
+	MaxRadius(jobId == j.jobId && maxRadius.doubleValue() >= dist_mr.value.doubleValue());
+	}
+then {
+	ScoreComponent sc = new ScoreComponent(j, w, ScoreComponent.Type.DEFAULT, new Double(0D));
+	insert logical(sc);
+	}
+}
+
+
+
+ 
+rule AccumulateScore {
+priority = -50;
+when {
+	j : Job();
+	not JobExclusion(jobId == j.jobId);
+	w: Worker();
+	not Exclusion(workerId == w.workerId && jobId == j.jobId);
+	dist_mr: DecimalInfo(jobId == j.jobId && workerId == w.workerId && type == Info.Type.DISTANCE_TO_JOB_MILES);
+	MaxRadius(jobId == j.jobId && maxRadius.doubleValue() >= dist_mr.value.doubleValue());
+	totScore : Double() 
+		from accumulate( ScoreComponent( workerId == w.workerId, jobId == j.jobId, sc:contribution ), sum(sc) );
+	}
+then {
+   Score s = new Score(j, w);
+   s.setScore(totScore);
+   insert logical(s);
+   }
+}
+
+
+
+rule AccumulateTopWorkers {
+priority = -100;
+when {
+	j : Job();
+	not JobExclusion(jobId == j.jobId);
+   	scoreList : Set()
+		from accumulate( s: Score(jobId == j.jobId), top_workers(s));
+	}
+then {
+	TopWorkers topWorkers = new TopWorkers();
+	topWorkers.setJobId(j.getJobId());
+	for (Object s: scoreList){
+		topWorkers.getTopWorkers().add(((Score)s).getWorkerId());
+	}
+	insert logical(topWorkers);
+	}
+}
+
+
+rule "Ensure Enough Workers" {
+priority = -200
+when {
+	tw: TopWorkers(size < DispatchParameters.MIN_SCORED_WORKERS);
+	mw: MaxRadius(jobId == tw.jobId, maxRadius < 4000);
+	#TODO: Ensure sufficient minimum score of Top N vehicles here
+	}
+then {
+	mw.setMaxRadius(mw.getMaxRadius() * DispatchParameters.INCREMENTAL_SEARCH_RADIUS_MULTIPLIER);
+	update(mw);
+	}
+}
+
+
+
+


Property changes on: labs/jbossrules/contrib/benchmarks/src/rules/benchmarks/dispatch-ilog/ScoreManagement.irl
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/contrib/benchmarks/src/rules/benchmarks/dispatch-ilog/Scoring.irl
===================================================================
--- labs/jbossrules/contrib/benchmarks/src/rules/benchmarks/dispatch-ilog/Scoring.irl	                        (rev 0)
+++ labs/jbossrules/contrib/benchmarks/src/rules/benchmarks/dispatch-ilog/Scoring.irl	2008-02-01 15:51:12 UTC (rev 18252)
@@ -0,0 +1,61 @@
+import benchmarks.dispatch.fact.derived.*;
+import benchmarks.dispatch.fact.independent.*;
+import java.util.Date;
+
+rule DistanceToJobScoreExtraLarge {
+	priority = -10;
+when {
+	j: Job();
+	not JobExclusion(jobId == j.jobId);
+	w: Worker(vehicleSize == VehicleSize.EXTRA_LARGE);
+	not Exclusion(workerId == w.workerId && jobId == j.jobId);
+	dist_mr: DecimalInfo(jobId == j.jobId && workerId == w.workerId && type == Info.Type.DISTANCE_TO_JOB_MILES);
+	MaxRadius(jobId == j.jobId && maxRadius.doubleValue() >= dist_mr.value.doubleValue());
+	i: DecimalInfo(workerId == w.workerId && jobId == j.jobId && type == Info.Type.DISTANCE_TO_JOB_MILES && value >= 100);
+	}
+then {
+	ScoreComponent sc = new ScoreComponent(j,
+		w,
+		ScoreComponent.Type.EXCESSIVE_DISTANCE_TO_JOB,
+		new Double(- 0.55 * (i.getValue() - 100)));
+	insert logical(sc);
+	}
+}
+
+
+rule DistanceToJobScoreRegular {
+	priority = -10;
+when {
+	j: Job();
+	not JobExclusion(jobId == j.jobId);
+	w: Worker(vehicleSize != VehicleSize.EXTRA_LARGE);
+	not Exclusion(workerId == w.workerId && jobId == j.jobId);
+	i: DecimalInfo(workerId == w.workerId && jobId == j.jobId && type == Info.Type.DISTANCE_TO_JOB_MILES && value >= 100);
+	}
+then {
+	ScoreComponent sc = new ScoreComponent(j,
+		w,
+		ScoreComponent.Type.EXCESSIVE_DISTANCE_TO_JOB,
+		new Double(- 0.4 * (i.getValue() - 100)));
+	insert logical(sc);
+	}
+}
+
+
+rule LateToJobScore {
+	priority = -10;
+when {
+	j : Job();
+	not JobExclusion(jobId == j.jobId);
+	w : Worker();
+	not Exclusion(workerId == w.workerId && jobId == j.jobId);
+	i: DecimalInfo(jobId == j.jobId && workerId == w.workerId && type == Info.Type.MINUTES_LATE_TO_JOB && value > 0);
+	}
+then {
+	ScoreComponent sc = new ScoreComponent(j,
+		w,
+		ScoreComponent.Type.LATE_TO_JOB,
+		new Double(- 400 - i.getValue() * 0.2));
+	insert logical (sc);
+	}
+}


Property changes on: labs/jbossrules/contrib/benchmarks/src/rules/benchmarks/dispatch-ilog/Scoring.irl
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/contrib/benchmarks/src/rules/benchmarks/dispatch-ilog/WorkerEligibility.irl
===================================================================
--- labs/jbossrules/contrib/benchmarks/src/rules/benchmarks/dispatch-ilog/WorkerEligibility.irl	                        (rev 0)
+++ labs/jbossrules/contrib/benchmarks/src/rules/benchmarks/dispatch-ilog/WorkerEligibility.irl	2008-02-01 15:51:12 UTC (rev 18252)
@@ -0,0 +1,65 @@
+
+
+import benchmarks.dispatch.fact.derived.*;
+import benchmarks.dispatch.fact.independent.*;
+import java.util.Date;
+
+rule VehicleSizeMustBeSufficientlyLarge {
+when {
+	j : Job(vs: vehicleSizeRequired.sizeNumber);
+	not JobExclusion(jobId == j.jobId);
+	w: Worker(vehicleSize.sizeNumber < vs);
+	dist_mr: DecimalInfo(jobId == j.jobId && workerId == w.workerId && type == Info.Type.DISTANCE_TO_JOB_MILES);
+	MaxRadius(jobId == j.jobId && maxRadius.doubleValue() >= dist_mr.value.doubleValue());
+	}
+then {
+	Exclusion e = new Exclusion(j, w);
+	e.setType(Exclusion.Type.VEHICLE_SIZE);
+	insert logical(e);
+	}
+}
+
+rule Ifthejobrequiresawrenchtheworkermusthaveawrench {
+when {
+	j : Job(wrenchRequired == true);
+	not JobExclusion(jobId == j.jobId);
+	w : Worker(hasWrench == false);
+	dist_mr: DecimalInfo(jobId == j.jobId && workerId == w.workerId && type == Info.Type.DISTANCE_TO_JOB_MILES);
+	MaxRadius(jobId == j.jobId && maxRadius.doubleValue() >= dist_mr.value.doubleValue());
+	}
+then {
+	Exclusion e = new Exclusion(j, w);
+	e.setType(Exclusion.Type.WRENCH_REQUIRED);
+	insert logical(e);
+	}
+}
+
+rule IfthejobrequiresXstickstheworkermusthaveXsticks {
+when {
+	j : Job(req:numberOfSticksRequired);
+	not JobExclusion(jobId == j.jobId);
+	w : Worker(numberOfSticks.intValue() < req.intValue());
+	dist_mr: DecimalInfo(jobId == j.jobId && workerId == w.workerId && type == Info.Type.DISTANCE_TO_JOB_MILES);
+	MaxRadius(jobId == j.jobId && maxRadius.doubleValue() >= dist_mr.value.doubleValue());
+	}
+then {
+	Exclusion e = new Exclusion(j, w);
+	e.setType(Exclusion.Type.NUM_STICKS);
+	insert logical(e);
+	}
+}
+
+rule IfthejobrequiresXrockstheworkermusthaveXrocks {
+when {
+	j : Job(req:numberOfRocksRequired);
+	not JobExclusion(jobId == j.jobId);
+	w : Worker(numberOfRocks.intValue() < req.intValue());
+	dist_mr: DecimalInfo(jobId == j.jobId && workerId == w.workerId && type == Info.Type.DISTANCE_TO_JOB_MILES);
+	MaxRadius(jobId == j.jobId && maxRadius.doubleValue() >= dist_mr.value.doubleValue());
+	}
+then {
+	Exclusion e = new Exclusion(j, w);
+	e.setType(Exclusion.Type.NUM_ROCKS);
+	insert logical(e);
+	}
+}
\ No newline at end of file


Property changes on: labs/jbossrules/contrib/benchmarks/src/rules/benchmarks/dispatch-ilog/WorkerEligibility.irl
___________________________________________________________________
Name: svn:eol-style
   + native




More information about the jboss-svn-commits mailing list