On 12 November 2010 18:21, Edson Tirelli <tirelli@post.com> wrote:
   Wolfgang,

  TypeDeclaration.getExpirationOffset() returns the value of the user
defined expiration policy:

@expires( 1h )

OK...
 

  The final, inferred result is stored in the ObjectTypeNodes
themselves, as it might be different for different entry points.


There's no simple way to get at 'em, I suppose. So, as a user, how do I determine whether my current set of rules implies a finite expiry limit? If it isn't finite, I'll have to set an explicit @expires; if I do that, it could be too short...

Much along the lines I have carped in another thread: a "clever" system is allright, but it must not leave me in the dark about its cleverness.

Getting down to brass tacks: the stable API should provide access to any data
Given all that, it might still be useful to have a way of turning the inferred expiry time off without setting an @expires for all types, which can be done with an @expires(1000000000d) or so).  Also, see that hint in a recent thread about how easy it is to implement a retraction strategy based on data in the events. One use case I was thinking of was with events (or even plain facts) having a variable duration attribute, to be retracted at timestamp+duration.

Wolfgang
 
   Edson

2010/11/12 Wolfgang Laun <wolfgang.laun@gmail.com>:
> I have tried
>
> declare EventA
>   @role( event )
>   x : Void
> end
> declare EventB
>   @role( event )
>   x : Void
> end
> rule "mock-A"  # only rule for EventA, EventB
> when
>     $b: EventB()
>     $a: EventA( this after[0,10s] $b )
> then
> end
>
> and
>     org.drools.rule.TypeDeclaration tda =
> (org.drools.rule.TypeDeclaration)rpkg.pkg.getTypeDeclaration( "EventA" );
>     System.out.println( "EventA expires: " + tda.getExpirationOffset() + "
> role:" + tda.getRole());
>     org.drools.rule.TypeDeclaration tdb =
> (org.drools.rule.TypeDeclaration)rpkg.pkg.getTypeDeclaration( "EventB" );
>     System.out.println( "EventB expires: " + tdb.getExpirationOffset() + "
> role:" + tdb.getRole());
>
> which prints
>    EventA expires: -1 role:EVENT
>    EventB expires: -1 role:EVENT
>
> Since the DRL code is equivalent to example 2.19 ("correlate orders") in
> Fusion, this raises the question whether the inferred expiration offset is
> actually computed as described.
>
> -W
>
>
>
> _______________________________________________
> rules-dev mailing list
> rules-dev@lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-dev
>
>



--
  Edson Tirelli
  JBoss Drools Core Development
  JBoss by Red Hat @ www.jboss.com

_______________________________________________
rules-dev mailing list
rules-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-dev