[jboss-svn-commits] JBL Code SVN: r17182 - in labs/jbossrules/branches/temporal_rete/drools-compiler/src: test/java/org/drools and 2 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Dec 11 10:50:40 EST 2007
Author: mgroch
Date: 2007-12-11 10:50:40 -0500 (Tue, 11 Dec 2007)
New Revision: 17182
Added:
labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/ComplexEv.java
Modified:
labs/jbossrules/branches/temporal_rete/drools-compiler/src/main/resources/META-INF/drools.default.packagebuilder.conf
labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/integrationtests/CepEspTest.java
labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/resources/org/drools/integrationtests/test_CEP_TimeRelationalOperators.drl
Log:
support for overlaps & overlapped-by
Modified: labs/jbossrules/branches/temporal_rete/drools-compiler/src/main/resources/META-INF/drools.default.packagebuilder.conf
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-compiler/src/main/resources/META-INF/drools.default.packagebuilder.conf 2007-12-11 15:39:52 UTC (rev 17181)
+++ labs/jbossrules/branches/temporal_rete/drools-compiler/src/main/resources/META-INF/drools.default.packagebuilder.conf 2007-12-11 15:50:40 UTC (rev 17182)
@@ -11,10 +11,13 @@
drools.accumulate.function.count = org.drools.base.accumulators.CountAccumulateFunction
drools.accumulate.function.sum = org.drools.base.accumulators.SumAccumulateFunction
+drools.evaluator.coincides = org.drools.base.evaluators.CoincidesEvaluatorDefinition
drools.evaluator.before = org.drools.base.evaluators.BeforeEvaluatorDefinition
drools.evaluator.after = org.drools.base.evaluators.AfterEvaluatorDefinition
drools.evaluator.meets = org.drools.base.evaluators.MeetsEvaluatorDefinition
-drools.evaluator.met-by = org.drools.base.evaluators.MetByEvaluatorDefinition
+drools.evaluator.metby = org.drools.base.evaluators.MetByEvaluatorDefinition
+drools.evaluator.overlaps = org.drools.base.evaluators.OverlapsEvaluatorDefinition
+drools.evaluator.overlappedby = org.drools.base.evaluators.OverlappedByEvaluatorDefinition
drools.evaluator.equality = org.drools.base.evaluators.EqualityEvaluatorsDefinition
drools.evaluator.comparable = org.drools.base.evaluators.ComparableEvaluatorsDefinition
drools.evaluator.set = org.drools.base.evaluators.SetEvaluatorsDefinition
Added: labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/ComplexEv.java
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/ComplexEv.java (rev 0)
+++ labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/ComplexEv.java 2007-12-11 15:50:40 UTC (rev 17182)
@@ -0,0 +1,51 @@
+package org.drools;
+
+public class ComplexEv {
+ private long seq;
+ private String company;
+ private long startTS, endTS;
+
+ public ComplexEv() {
+ }
+
+ public ComplexEv(long seq,
+ String company,
+ long start,
+ long end) {
+ super();
+ this.seq = seq;
+ this.company = company;
+ this.startTS = start;
+ this.endTS = end;
+ }
+
+ public String getCompany() {
+ return company;
+ }
+ public void setCompany(String company) {
+ this.company = company;
+ }
+
+ public long getSeq() {
+ return seq;
+ }
+ public void setSeq(long seq) {
+ this.seq = seq;
+ }
+ public long getStartTS() {
+ return startTS;
+ }
+ public void setStartTS(long startTS) {
+ this.startTS = startTS;
+ }
+ public long getEndTS() {
+ return endTS;
+ }
+ public void setEndTS(long endTS) {
+ this.endTS = endTS;
+ }
+ public String toString() {
+ return "ComplexEvent( "+this.seq+" : " +this.company +")";
+ }
+
+}
Modified: labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/integrationtests/CepEspTest.java
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/integrationtests/CepEspTest.java 2007-12-11 15:39:52 UTC (rev 17181)
+++ labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/integrationtests/CepEspTest.java 2007-12-11 15:50:40 UTC (rev 17182)
@@ -10,6 +10,7 @@
import junit.framework.TestCase;
import org.drools.ClockType;
+import org.drools.ComplexEv;
import org.drools.OrderEvent;
import org.drools.RuleBase;
import org.drools.RuleBaseConfiguration;
@@ -124,6 +125,8 @@
final List results_after = new ArrayList();
final List results_meets = new ArrayList();
final List results_met_by = new ArrayList();
+ final List results_overlaps = new ArrayList();
+ final List results_overlapped_by = new ArrayList();
wm.setGlobal( "results_coincides",
results_coincides );
@@ -135,6 +138,10 @@
results_meets );
wm.setGlobal( "results_met_by",
results_met_by );
+ wm.setGlobal( "results_overlaps",
+ results_overlaps );
+ wm.setGlobal( "results_overlapped_by",
+ results_overlapped_by );
StockTick tick1 = new StockTick( 1,
"DROO",
@@ -211,10 +218,80 @@
results_met_by.size() );
assertEquals( tick2,
results_met_by.get( 0 ) );
+ }
+
+ /*public void testTimeRelationalOverlappingOperators() throws Exception {
+ // read in the source
+ final Reader reader = new InputStreamReader( getClass().getResourceAsStream( "test_CEP_TimeRelationalOperators.drl" ) );
+ final RuleBase ruleBase = loadRuleBase( reader );
+
+ final TemporalSession<SessionPseudoClock> wm = ruleBase.newTemporalSession( ClockType.PSEUDO_CLOCK );
+ final SessionPseudoClock clock = wm.getSessionClock();
+
+ clock.setStartupTime( 1000 );
+ final List results_overlaps = new ArrayList();
+ final List results_overlapped_by = new ArrayList();
+
+ wm.setGlobal( "results_overlaps",
+ results_overlaps );
+ wm.setGlobal( "results_overlapped_by",
+ results_overlapped_by );
+
+ ComplexEv ev1 = new ComplexEv( 1,
+ "DROO",
+ System.currentTimeMillis()-3,
+ System.currentTimeMillis());
+ ComplexEv ev2 = new ComplexEv( 2,
+ "ACME",
+ System.currentTimeMillis()-5,
+ System.currentTimeMillis());
+ ComplexEv ev3 = new ComplexEv( 3,
+ "ACME",
+ System.currentTimeMillis()-5,
+ System.currentTimeMillis());
+ ComplexEv ev4 = new ComplexEv( 4,
+ "DROO",
+ System.currentTimeMillis()-3,
+ System.currentTimeMillis());
+ ComplexEv ev5 = new ComplexEv( 5,
+ "ACME",
+ System.currentTimeMillis()-5,
+ System.currentTimeMillis());
+
+ InternalFactHandle handle1 = (InternalFactHandle) wm.insert( ev1 );
+ clock.advanceTime( 4 );
+ InternalFactHandle handle2 = (InternalFactHandle) wm.insert( ev2 );
+ clock.advanceTime( 4 );
+ InternalFactHandle handle3 = (InternalFactHandle) wm.insert( ev3 );
+ clock.advanceTime( 4 );
+ InternalFactHandle handle4 = (InternalFactHandle) wm.insert( ev4 );
+ InternalFactHandle handle5 = (InternalFactHandle) wm.insert( ev5 );
+
+ assertNotNull( handle1 );
+ assertNotNull( handle2 );
+ assertNotNull( handle3 );
+ assertNotNull( handle4 );
+ assertNotNull( handle5 );
+
+ assertTrue( handle1.isEvent() );
+ assertTrue( handle2.isEvent() );
+ assertTrue( handle3.isEvent() );
+ assertTrue( handle4.isEvent() );
+ assertTrue( handle5.isEvent() );
+
+ wm.fireAllRules();
+
+ assertEquals( 1,
+ results_overlaps.size() );
+ assertEquals( ev1,
+ results_overlaps.get( 0 ) );
+ assertEquals( 1,
+ results_overlapped_by.size() );
+ assertEquals( ev2,
+ results_overlapped_by.get( 0 ) );
+ }*/
- }
-
public void testSimpleTimeWindow() throws Exception {
// read in the source
final Reader reader = new InputStreamReader( getClass().getResourceAsStream( "test_CEP_SimpleTimeWindow.drl" ) );
Modified: labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/resources/org/drools/integrationtests/test_CEP_TimeRelationalOperators.drl
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/resources/org/drools/integrationtests/test_CEP_TimeRelationalOperators.drl 2007-12-11 15:39:52 UTC (rev 17181)
+++ labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/resources/org/drools/integrationtests/test_CEP_TimeRelationalOperators.drl 2007-12-11 15:50:40 UTC (rev 17182)
@@ -1,12 +1,15 @@
package org.drools;
import event org.drools.StockTick;
+import event org.drools.ComplexEv;
global java.util.List results_coincides;
global java.util.List results_after;
global java.util.List results_before;
global java.util.List results_meets;
global java.util.List results_met_by;
+global java.util.List results_overlaps;
+global java.util.List results_overlapped_by;
rule "coincides operator"
when
@@ -46,4 +49,20 @@
$b : StockTick( company == "ACME", this ~metby[4] $a )
then
results_met_by.add( $b );
+end
+
+rule "overlaps operator"
+when
+ $a : ComplexEv( company == "ACME" )
+ $b : ComplexEv( company == "DROO", this ~overlaps[2,5,2,5] $a )
+then
+ results_overlaps.add( $b );
+end
+
+rule "overlapped-by operator"
+when
+ $a : ComplexEv( company == "DROO" )
+ $b : ComplexEv( company == "ACME", this ~overlappedby[2,5,2,5] $a )
+then
+ results_overlapped_by.add( $b );
end
\ No newline at end of file
More information about the jboss-svn-commits
mailing list