[rules-users] [Drools Fusion] Can't detect 2 occurrences with sliding window

Xavier Coulon xcoulon at gmail.com
Wed May 19 04:08:09 EDT 2010


Hello Wolfgang,

sorry, I wasn't available yesterday.
I just followed your instructions:

Here's my test method now :

@SuppressWarnings("unchecked")
    @Test
    public void testActivity() throws IOException, ParseException,
            InterruptedException {
        // parse the log file
        Resource logFile = new ClassPathResource(
                "activity/activity18h20-18h30-extract.log");
        // converter and inject tracks in the session,
        List<String> logLines = FileUtils.readLines(logFile.getFile(),
"UTF-8");
        LOGGER.info("loading events");
        // load events from stream
        Operation previousOperation = null;
        for (String logLine : logLines) {
            Operation operation = LineConverterUtil.getOperation(logLine);
            Assert.assertFalse("Current operation equals() previous one",
                    operation.equals(previousOperation));
            Assert.assertFalse("Current operation == previous one",
                    operation == previousOperation);
            previousOperation = operation;
            LOGGER.debug("Moving clock from "
                    + (new Date(clock.getCurrentTime())).toString() + " to "
                    + operation.getDate());
            clock.advanceTime(operation.getDate().getTime()
                    - clock.getCurrentTime(), TimeUnit.MILLISECONDS);
            // clock.advanceTime(10, TimeUnit.SECONDS);
            LOGGER.debug("Inserting " + operation);
            FactHandle operationHandle = entryPoint.insert(operation);
            LOGGER.debug("Insertion done: " +
operationHandle.toExternalForm());

        }
        session.fireAllRules();

        LOGGER.info("done with events");
        // check...
        Assert.assertTrue("Rule not fired...", listener
                .isRuleFired("overActivity"));
    }

And the logs in the console :

Console> 2010-05-19 09:57:06|INFO ||DroolsRulesTestCase.testActivity|loading
events
Console> 2010-05-19 09:57:06|DEBUG||DroolsRulesTestCase.testActivity|Moving
clock from Thu Jan 01 01:00:00 CET 1970 to Fri Apr 30 18:26:47 CEST 2010
Console> 2010-05-19
09:57:06|DEBUG||DroolsRulesTestCase.testActivity|Inserting Operation
[date=Fri Apr 30 18:26:47 CEST 2010, executionTime=1, hostname=server1,
ipAddress=1.2.3.4, operation=null, requestSize=0, responseSize=0]
Console> 2010-05-19 09:57:06|WARN
||TrackingWorkingMemoryEventListener.objectInserted|Object inserted: [event
fid:1:1:Operation [date=Fri Apr 30 18:26:47 CEST 2010, executionTime=1,
hostname=server1, ipAddress=1.2.3.4, operation=null, requestSize=0,
responseSize=0]]
Console> 2010-05-19
09:57:06|DEBUG||DroolsRulesTestCase.testActivity|Insertion done: [event
fid:1:1:Operation [date=Fri Apr 30 18:26:47 CEST 2010, executionTime=1,
hostname=server1, ipAddress=1.2.3.4, operation=null, requestSize=0,
responseSize=0]]
Console> 2010-05-19 09:57:06|DEBUG||DroolsRulesTestCase.testActivity|Moving
clock from Fri Apr 30 18:26:47 CEST 2010 to Fri Apr 30 18:27:11 CEST 2010
Console> 2010-05-19
09:57:06|DEBUG||DroolsRulesTestCase.testActivity|Inserting Operation
[date=Fri Apr 30 18:27:11 CEST 2010, executionTime=164, hostname=server1,
ipAddress=1.2.3.4, operation=CONSULTATION, requestSize=1299,
responseSize=895]
Console> 2010-05-19 09:57:06|WARN
||TrackingWorkingMemoryEventListener.objectRetracted|Object retracted:
[event fid:1:1:Operation [date=Fri Apr 30 18:26:47 CEST 2010,
executionTime=1, hostname=server1, ipAddress=1.2.3.4, operation=null,
requestSize=0, responseSize=0]]
Console> 2010-05-19 09:57:06|WARN
||TrackingWorkingMemoryEventListener.objectInserted|Object inserted: [event
fid:2:2:Operation [date=Fri Apr 30 18:27:11 CEST 2010, executionTime=164,
hostname=server1, ipAddress=1.2.3.4, operation=CONSULTATION,
requestSize=1299, responseSize=895]]
Console> 2010-05-19
09:57:06|DEBUG||DroolsRulesTestCase.testActivity|Insertion done: [event
fid:2:2:Operation [date=Fri Apr 30 18:27:11 CEST 2010, executionTime=164,
hostname=server1, ipAddress=1.2.3.4, operation=CONSULTATION,
requestSize=1299, responseSize=895]]
Console> 2010-05-19 09:57:06|DEBUG||DroolsRulesTestCase.testActivity|Moving
clock from Fri Apr 30 18:27:11 CEST 2010 to Fri Apr 30 18:28:47 CEST 2010
Console> 2010-05-19
09:57:06|DEBUG||DroolsRulesTestCase.testActivity|Inserting Operation
[date=Fri Apr 30 18:28:47 CEST 2010, executionTime=1, hostname=server1,
ipAddress=1.2.3.4, operation=null, requestSize=0, responseSize=0]
Console> 2010-05-19 09:57:06|WARN
||TrackingWorkingMemoryEventListener.objectRetracted|Object retracted:
[event fid:2:2:Operation [date=Fri Apr 30 18:27:11 CEST 2010,
executionTime=164, hostname=server1, ipAddress=1.2.3.4,
operation=CONSULTATION, requestSize=1299, responseSize=895]]
Console> 2010-05-19 09:57:06|WARN
||TrackingWorkingMemoryEventListener.objectInserted|Object inserted: [event
fid:3:3:Operation [date=Fri Apr 30 18:28:47 CEST 2010, executionTime=1,
hostname=server1, ipAddress=1.2.3.4, operation=null, requestSize=0,
responseSize=0]]
Console> 2010-05-19
09:57:06|DEBUG||DroolsRulesTestCase.testActivity|Insertion done: [event
fid:3:3:Operation [date=Fri Apr 30 18:28:47 CEST 2010, executionTime=1,
hostname=server1, ipAddress=1.2.3.4, operation=null, requestSize=0,
responseSize=0]]
Console> 2010-05-19 09:57:06|INFO ||DroolsRulesTestCase.testActivity|done
with events


Strangely, the first operation is retracted when the second one is inserted,
yet, they are not equals()...

/Xavier
-- 
View this message in context: http://drools-java-rules-engine.46999.n3.nabble.com/Drools-Fusion-Can-t-detect-2-occurrences-with-sliding-window-tp823141p828505.html
Sent from the Drools - User mailing list archive at Nabble.com.



More information about the rules-users mailing list