I've done a bit more looking -- based upon what I've read and what I've seen via testing, you don't need to have a temporal constraint on a CE for it to be expired, provided there is an explicit one declared.  Is that correct?

That said...

Ok, maybe there is a silly mistake here, but I'm seeing the following expire and retract objects (note no temporal constraint)

<pre>
        imports....

        declare CheeseTime
           @role(event)
           @expires(10s)
           @timestamp(timeStamp)
        end       


        rule "Print Objects"
        when
            $m:Object( )
                from entry-point "stat-stream"
        then
            logger.warn( "------------CheeseTime--------------" );
            logger.warn( "--"+$m);
        end

</pre>

(note the Object() ) but not this

(same declarations except replacing the rule)

<pre>
        rule "Print CheeseTime"
        when
            $m:CheeseTime()
                from entry-point "stat-stream"
        then
            logger.warn( "------------Object--------------" );
            logger.warn( "--"+$m);
        end

</pre>


For CheeseTime

<pre>
public class CheeseTime {

    private String type;
    private long cost;
    private Date timeStamp;
      :
}

</pre>

Clearly, I'm missing something...
        
<br/><hr align="left" width="300" />
View this message in context: <a href="http://drools.46999.n3.nabble.com/Expiry-of-events-not-occurring-for-sliding-window-tp3362402p3380503.html">Re: [rules-users] Expiry of events not occurring for sliding window</a><br/>
Sent from the <a href="http://drools.46999.n3.nabble.com/Drools-User-forum-f47000.html">Drools: User forum mailing list archive</a> at Nabble.com.<br/>