[jboss-svn-commits] JBL Code SVN: r18812 - in labs/jbossrules/branches/temporal_rete: drools-compiler/src/main/java/org/drools/compiler and 5 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Mar 10 16:34:15 EDT 2008


Author: tirelli
Date: 2008-03-10 16:34:14 -0400 (Mon, 10 Mar 2008)
New Revision: 18812

Added:
   labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/resources/org/drools/integrationtests/test_CEP_SimpleEventAssertionWithDuration.drl
Modified:
   labs/jbossrules/branches/temporal_rete/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java
   labs/jbossrules/branches/temporal_rete/drools-compiler/src/main/resources/org/drools/rule/builder/dialect/java/javaRule.mvel
   labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/integrationtests/CepEspTest.java
   labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java
   labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java
   labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/common/InternalRuleBase.java
   labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/reteoo/ClassObjectTypeConf.java
   labs/jbossrules/branches/temporal_rete/pom.xml
Log:
JBRULES-1390: improving support for streams

Modified: labs/jbossrules/branches/temporal_rete/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java	2008-03-10 20:33:50 UTC (rev 18811)
+++ labs/jbossrules/branches/temporal_rete/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java	2008-03-10 20:34:14 UTC (rev 18812)
@@ -371,6 +371,37 @@
             this.dialectRegistry.addImport( importDecl.getTarget() );
         }
 
+        processTypeDeclarations( packageDescr );
+
+        for ( final Iterator it = packageDescr.getFunctionImports().iterator(); it.hasNext(); ) {
+            String importEntry = ((FunctionImportDescr) it.next()).getTarget();
+            this.dialectRegistry.addStaticImport( importEntry );
+            this.pkg.addStaticImport( importEntry );
+        }
+
+        final List globals = packageDescr.getGlobals();
+        for ( final Iterator it = globals.iterator(); it.hasNext(); ) {
+            final GlobalDescr global = (GlobalDescr) it.next();
+            final String identifier = global.getIdentifier();
+            final String className = global.getType();
+
+            Class clazz;
+            try {
+                clazz = typeResolver.resolveType( className );
+                this.pkg.addGlobal( identifier,
+                                    clazz );
+            } catch ( final ClassNotFoundException e ) {
+                this.results.add( new GlobalError( identifier,
+                                                   global.getLine() ) );
+            }
+        }
+
+    }
+
+    /**
+     * @param packageDescr
+     */
+    private void processTypeDeclarations(final PackageDescr packageDescr) {
         for ( TypeDeclarationDescr typeDescr : packageDescr.getTypeDeclarations() ) {
             TypeDeclaration type = new TypeDeclaration( typeDescr.getTypeName() );
 
@@ -422,30 +453,6 @@
             
             this.pkg.addTypeDeclaration( type );
         }
-
-        for ( final Iterator it = packageDescr.getFunctionImports().iterator(); it.hasNext(); ) {
-            String importEntry = ((FunctionImportDescr) it.next()).getTarget();
-            this.dialectRegistry.addStaticImport( importEntry );
-            this.pkg.addStaticImport( importEntry );
-        }
-
-        final List globals = packageDescr.getGlobals();
-        for ( final Iterator it = globals.iterator(); it.hasNext(); ) {
-            final GlobalDescr global = (GlobalDescr) it.next();
-            final String identifier = global.getIdentifier();
-            final String className = global.getType();
-
-            Class clazz;
-            try {
-                clazz = typeResolver.resolveType( className );
-                this.pkg.addGlobal( identifier,
-                                    clazz );
-            } catch ( final ClassNotFoundException e ) {
-                this.results.add( new GlobalError( identifier,
-                                                   global.getLine() ) );
-            }
-        }
-
     }
 
     private void addFunction(final FunctionDescr functionDescr) {

Modified: labs/jbossrules/branches/temporal_rete/drools-compiler/src/main/resources/org/drools/rule/builder/dialect/java/javaRule.mvel
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-compiler/src/main/resources/org/drools/rule/builder/dialect/java/javaRule.mvel	2008-03-10 20:33:50 UTC (rev 18811)
+++ labs/jbossrules/branches/temporal_rete/drools-compiler/src/main/resources/org/drools/rule/builder/dialect/java/javaRule.mvel	2008-03-10 20:34:14 UTC (rev 18812)
@@ -30,7 +30,7 @@
     public @{className}() {
     }
 
-    public void init(@foreach{declarationTypes, declarations as type, declr} @{type} @{declr.identifier}@end{","}@if{globals != empty}, at end{} 
+    public void init(@foreach{declarationTypes, declarations as type, declr} @{type} @{declr.identifier}@end{","}@if{globals != empty && declarations != empty}, at end{} 
                      @foreach{globalTypes, globals as type, identifier} @{type} @{identifier} @end{","}
                      ) throws Exception {
         @{initCode}
@@ -56,7 +56,7 @@
         @{reverseCode}
     }
     
-    public Object getResult(@foreach{declarationTypes, declarations as type, declr} @{type} @{declr.identifier}@end{","}@if{globals != empty}, at end{} 
+    public Object getResult(@foreach{declarationTypes, declarations as type, declr} @{type} @{declr.identifier}@end{","}@if{globals != empty && declarations != empty}, at end{} 
                             @foreach{globalTypes, globals as type, identifier}@{type} @{identifier} @end{","}
                            ) throws Exception {
         return ( @{resultCode} );

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	2008-03-10 20:33:50 UTC (rev 18811)
+++ labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/integrationtests/CepEspTest.java	2008-03-10 20:34:14 UTC (rev 18812)
@@ -110,6 +110,70 @@
 
     }
 
+    public void FIXME_testEventAssertionWithDuration() throws Exception {
+        // read in the source
+        final Reader reader = new InputStreamReader( getClass().getResourceAsStream( "test_CEP_SimpleEventAssertionWithDuration.drl" ) );
+        final RuleBase ruleBase = loadRuleBase( reader );
+
+        final WorkingMemory wm = ruleBase.newTemporalSession( ClockType.PSEUDO_CLOCK );
+        final List results = new ArrayList();
+
+        wm.setGlobal( "results",
+                      results );
+
+        StockTick tick1 = new StockTick( 1,
+                                         "DROO",
+                                         50,
+                                         System.currentTimeMillis(),
+                                         5 );
+        StockTick tick2 = new StockTick( 2,
+                                         "ACME",
+                                         10,
+                                         System.currentTimeMillis(),
+                                         10 );
+        StockTick tick3 = new StockTick( 3,
+                                         "ACME",
+                                         10,
+                                         System.currentTimeMillis(), 
+                                         8 );
+        StockTick tick4 = new StockTick( 4,
+                                         "DROO",
+                                         50,
+                                         System.currentTimeMillis(),
+                                         7);
+
+        InternalFactHandle handle1 = (InternalFactHandle) wm.insert( tick1 );
+        InternalFactHandle handle2 = (InternalFactHandle) wm.insert( tick2 );
+        InternalFactHandle handle3 = (InternalFactHandle) wm.insert( tick3 );
+        InternalFactHandle handle4 = (InternalFactHandle) wm.insert( tick4 );
+
+        assertNotNull( handle1 );
+        assertNotNull( handle2 );
+        assertNotNull( handle3 );
+        assertNotNull( handle4 );
+
+        assertTrue( handle1.isEvent() );
+        assertTrue( handle2.isEvent() );
+        assertTrue( handle3.isEvent() );
+        assertTrue( handle4.isEvent() );
+        
+        EventFactHandle eh1 = (EventFactHandle) handle1;
+        EventFactHandle eh2 = (EventFactHandle) handle2;
+        EventFactHandle eh3 = (EventFactHandle) handle3;
+        EventFactHandle eh4 = (EventFactHandle) handle4;
+        
+        assertEquals( tick1.getDuration(), eh1.getDuration() );
+        assertEquals( tick2.getDuration(), eh2.getDuration() );
+        assertEquals( tick3.getDuration(), eh3.getDuration() );
+        assertEquals( tick4.getDuration(), eh4.getDuration() );
+
+        wm.fireAllRules();
+
+        assertEquals( 2,
+                      results.size() );
+
+    }
+
     public void FIXME_testTimeRelationalOperators() throws Exception {
         // read in the source
         final Reader reader = new InputStreamReader( getClass().getResourceAsStream( "test_CEP_TimeRelationalOperators.drl" ) );

Added: labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/resources/org/drools/integrationtests/test_CEP_SimpleEventAssertionWithDuration.drl
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/resources/org/drools/integrationtests/test_CEP_SimpleEventAssertionWithDuration.drl	                        (rev 0)
+++ labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/resources/org/drools/integrationtests/test_CEP_SimpleEventAssertionWithDuration.drl	2008-03-10 20:34:14 UTC (rev 18812)
@@ -0,0 +1,17 @@
+package org.drools;
+
+import org.drools.StockTick;
+
+declare StockTick {
+    role event,
+    duration_attribute duration
+}
+
+global java.util.List results;
+
+rule "Check event"
+when
+    $st : StockTick( company == "ACME" )
+then
+    results.add( $st );
+end

Modified: labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java	2008-03-10 20:33:50 UTC (rev 18811)
+++ labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java	2008-03-10 20:34:14 UTC (rev 18812)
@@ -45,7 +45,6 @@
 import org.drools.concurrent.ExecutorService;
 import org.drools.event.RuleBaseEventListener;
 import org.drools.event.RuleBaseEventSupport;
-import org.drools.reteoo.ReteooStatefulSession;
 import org.drools.objenesis.Objenesis;
 import org.drools.objenesis.ObjenesisStd;
 import org.drools.process.core.Process;
@@ -56,6 +55,7 @@
 import org.drools.rule.Package;
 import org.drools.rule.PackageCompilationData;
 import org.drools.rule.Rule;
+import org.drools.rule.TypeDeclaration;
 import org.drools.spi.ExecutorServiceFactory;
 import org.drools.spi.FactHandleFactory;
 import org.drools.util.ObjectHashSet;
@@ -75,51 +75,53 @@
     // ------------------------------------------------------------
     // Instance members
     // ------------------------------------------------------------
-    protected String                                id;
+    protected String                                   id;
 
-    protected int                                   workingMemoryCounter;
+    protected int                                      workingMemoryCounter;
 
-    protected RuleBaseConfiguration                 config;
+    protected RuleBaseConfiguration                    config;
 
-    protected Map<String, Package>                  pkgs;
+    protected Map<String, Package>                     pkgs;
 
-    protected Map                                   processes;
+    protected Map                                      processes;
 
-    protected Map                                   agendaGroupRuleTotals;
+    protected Map                                      agendaGroupRuleTotals;
 
-    protected transient CompositePackageClassLoader packageClassLoader;
+    protected transient CompositePackageClassLoader    packageClassLoader;
 
-    protected transient MapBackedClassLoader        classLoader;
+    protected transient MapBackedClassLoader           classLoader;
 
-	private transient Objenesis                     objenesis;
+    private transient Objenesis                        objenesis;
 
-	/** The fact handle factory. */
-    protected FactHandleFactory                     factHandleFactory;
+    /** The fact handle factory. */
+    protected FactHandleFactory                        factHandleFactory;
 
-    protected Map                                   globals;
+    protected Map                                      globals;
 
-    private ReloadPackageCompilationData            reloadPackageCompilationData = null;
+    private ReloadPackageCompilationData               reloadPackageCompilationData = null;
 
-    private RuleBaseEventSupport                    eventSupport                 = new RuleBaseEventSupport( this );
+    private RuleBaseEventSupport                       eventSupport                 = new RuleBaseEventSupport( this );
 
     /**
      * WeakHashMap to keep references of WorkingMemories but allow them to be
      * garbage collected
      */
-    protected transient ObjectHashSet               statefulSessions;
+    protected transient ObjectHashSet                  statefulSessions;
 
     // wms used for lock list during dynamic updates
-    InternalWorkingMemory[]                         wms;
+    InternalWorkingMemory[]                            wms;
 
     // indexed used to track invariant lock
-    int                                             lastAquiredLock;
+    int                                                lastAquiredLock;
 
     // lock for entire rulebase, used for dynamic updates
-    protected final ReentrantLock                   lock                         = new ReentrantLock();
+    protected final ReentrantLock                      lock                         = new ReentrantLock();
 
-    private int                                  additionsSinceLock;
-    private int                                  removalsSinceLock;
+    private int                                        additionsSinceLock;
+    private int                                        removalsSinceLock;
 
+    private transient Map<Class< ? >, TypeDeclaration> classTypeDeclaration;
+
     /**
      * Default constructor - for Externalizable. This should never be used by a user, as it
      * will result in an invalid state for the instance.
@@ -161,9 +163,11 @@
         this.processes = new HashMap();
         this.globals = new HashMap();
         this.statefulSessions = new ObjectHashSet();
-		this.objenesis = createObjenesis();
-	}
+        this.objenesis = createObjenesis();
 
+        this.classTypeDeclaration = new HashMap<Class< ? >, TypeDeclaration>();
+    }
+
     // ------------------------------------------------------------
     // Instance methods
     // ------------------------------------------------------------
@@ -200,7 +204,7 @@
      *
      */
     public void doReadExternal(final ObjectInput stream) throws IOException,
-                                                      ClassNotFoundException {
+                                                        ClassNotFoundException {
         // PackageCompilationData must be restored before Rules as it has the ClassLoader needed to resolve the generated code references in Rules
         this.pkgs = (Map) stream.readObject();
 
@@ -215,9 +219,9 @@
         }
 
         this.packageClassLoader.addClassLoader( this.classLoader );
-		this.objenesis = createObjenesis();
+        this.objenesis = createObjenesis();
 
-		for ( final Iterator it = this.pkgs.values().iterator(); it.hasNext(); ) {
+        for ( final Iterator it = this.pkgs.values().iterator(); it.hasNext(); ) {
             this.packageClassLoader.addClassLoader( ((Package) it.next()).getPackageCompilationData().getClassLoader() );
         }
 
@@ -237,21 +241,33 @@
 
         this.config = (RuleBaseConfiguration) childStream.readObject();
         this.config.setClassLoader( childStream.getClassLoader() );
+
         this.eventSupport = (RuleBaseEventSupport) childStream.readObject();
         this.eventSupport.setRuleBase( this );
 
         this.statefulSessions = new ObjectHashSet();
+        
+        this.populateTypeDeclarationMaps();
     }
 
-	/**
-	 * Creates Objenesis instance for the RuleBase. 
-	 * @return a standart Objenesis instanse with caching turned on.
-	 */
-	protected Objenesis createObjenesis() {
-		return new ObjenesisStd(true);
-	}
+    private void populateTypeDeclarationMaps() {
+        this.classTypeDeclaration = new HashMap<Class<?>, TypeDeclaration>();
+        for( Package pkg : this.pkgs.values() ) {
+            for( TypeDeclaration type : pkg.getTypeDeclarations().values() ) {
+                this.classTypeDeclaration.put( type.getTypeClass(), type );
+            }
+        }
+    }
 
-	/**
+    /**
+     * Creates Objenesis instance for the RuleBase. 
+     * @return a standart Objenesis instanse with caching turned on.
+     */
+    protected Objenesis createObjenesis() {
+        return new ObjenesisStd( true );
+    }
+
+    /**
      * @return the id
      */
     public String getId() {
@@ -272,7 +288,7 @@
 
     public synchronized void disposeStatefulSession(final StatefulSession statefulSession) {
         this.statefulSessions.remove( statefulSession );
-        for( Iterator it = statefulSession.getRuleBaseUpdateListeners().iterator(); it.hasNext(); ) {
+        for ( Iterator it = statefulSession.getRuleBaseUpdateListeners().iterator(); it.hasNext(); ) {
             this.removeEventListener( (RuleBaseEventListener) it.next() );
         }
     }
@@ -411,6 +427,15 @@
             }
             this.globals.putAll( newGlobals );
 
+            // Add type declarations
+            for ( TypeDeclaration type : newPkg.getTypeDeclarations().values() ) {
+                // should we allow overrides?
+                if ( !this.classTypeDeclaration.containsKey( type.getTypeClass() ) ) {
+                    this.classTypeDeclaration.put( type.getTypeClass(),
+                                                   type );
+                }
+            }
+            
             final Rule[] rules = newPkg.getRules();
 
             for ( int i = 0; i < rules.length; ++i ) {
@@ -485,6 +510,18 @@
         }
         globals.putAll( newPkg.getGlobals() );
 
+        // add type declarations
+        for ( TypeDeclaration type : newPkg.getTypeDeclarations().values() ) {
+            // should we allow overrides?
+            if ( !this.classTypeDeclaration.containsKey( type.getTypeClass() ) ) {
+                this.classTypeDeclaration.put( type.getTypeClass(),
+                                               type );
+            }
+            if ( !pkg.getTypeDeclarations().containsKey( type.getTypeName() ) ) {
+                pkg.addTypeDeclaration( type );
+            }
+        }
+        
         //Add rules into the RuleBase package
         //as this is needed for individual rule removal later on
         final Rule[] newRules = newPkg.getRules();
@@ -504,6 +541,10 @@
             }
         }
     }
+    
+    public TypeDeclaration getTypeDeclaration(Class< ? > clazz) {
+        return this.classTypeDeclaration.get( clazz );
+    }
 
     private synchronized void addRule(final Package pkg,
                                       final Rule rule) throws InvalidPatternException {
@@ -677,11 +718,11 @@
         return process;
     }
 
-	public Objenesis getObjenesis() {
-		return objenesis;
-	}
+    public Objenesis getObjenesis() {
+        return objenesis;
+    }
 
-	protected synchronized void addStatefulSession(final StatefulSession statefulSession) {
+    protected synchronized void addStatefulSession(final StatefulSession statefulSession) {
         this.statefulSessions.add( statefulSession );
     }
 
@@ -723,15 +764,15 @@
 
         synchronized ( this.pkgs ) {
             ((InternalWorkingMemory) session).setRuleBase( this );
-            ((InternalWorkingMemory) session).setId( ( nextWorkingMemoryCounter() ) );
+            ((InternalWorkingMemory) session).setId( (nextWorkingMemoryCounter()) );
 
-            ExecutorService executor = ExecutorServiceFactory.createExecutorService(  this.config.getExecutorService() );
+            ExecutorService executor = ExecutorServiceFactory.createExecutorService( this.config.getExecutorService() );
 
             executor.setCommandExecutor( new CommandExecutor( session ) );
 
             if ( keepReference ) {
                 addStatefulSession( session );
-                for( Iterator it = session.getRuleBaseUpdateListeners().iterator(); it.hasNext(); ) {
+                for ( Iterator it = session.getRuleBaseUpdateListeners().iterator(); it.hasNext(); ) {
                     addEventListener( (RuleBaseEventListener) it.next() );
                 }
             }
@@ -778,10 +819,10 @@
         // since the event support is thread-safe, no need for locks... right?
         return this.eventSupport.getEventListeners();
     }
-    
-    public boolean isEvent( Class clazz ) {
-        for( Package pkg : this.pkgs.values() ) {
-            if( pkg.isEvent( clazz ) ) {
+
+    public boolean isEvent(Class clazz) {
+        for ( Package pkg : this.pkgs.values() ) {
+            if ( pkg.isEvent( clazz ) ) {
                 return true;
             }
         }

Modified: labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java	2008-03-10 20:33:50 UTC (rev 18811)
+++ labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java	2008-03-10 20:34:14 UTC (rev 18812)
@@ -1566,10 +1566,8 @@
             objectTypeConf = map.get( cls );
             if ( objectTypeConf == null ) {
 
-                final boolean isEvent = this.ruleBase.isEvent( cls );
                 objectTypeConf = new ClassObjectTypeConf( entrypoint,
                                                           cls,
-                                                          isEvent,
                                                           this.ruleBase );
                 this.addObjectTypeConf( entrypoint,
                                         cls,

Modified: labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/common/InternalRuleBase.java
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/common/InternalRuleBase.java	2008-03-10 20:33:50 UTC (rev 18811)
+++ labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/common/InternalRuleBase.java	2008-03-10 20:34:14 UTC (rev 18812)
@@ -30,6 +30,7 @@
 import org.drools.rule.CompositePackageClassLoader;
 import org.drools.rule.MapBackedClassLoader;
 import org.drools.rule.Package;
+import org.drools.rule.TypeDeclaration;
 import org.drools.spi.FactHandleFactory;
 import org.drools.spi.PropagationContext;
 
@@ -116,4 +117,12 @@
 	public Objenesis getObjenesis();
 	
 	public int getNodeCount();
+
+	/**
+	 * Returns the type declaration associated to the given class
+	 * 
+	 * @param clazz
+	 * @return
+	 */
+    public TypeDeclaration getTypeDeclaration(Class<?> clazz);
 }

Modified: labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/reteoo/ClassObjectTypeConf.java
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/reteoo/ClassObjectTypeConf.java	2008-03-10 20:33:50 UTC (rev 18811)
+++ labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/reteoo/ClassObjectTypeConf.java	2008-03-10 20:34:14 UTC (rev 18812)
@@ -37,6 +37,7 @@
 import org.drools.reteoo.builder.BuildContext;
 import org.drools.reteoo.builder.PatternBuilder;
 import org.drools.rule.EntryPoint;
+import org.drools.rule.TypeDeclaration;
 import org.drools.spi.ObjectType;
 
 public class ClassObjectTypeConf
@@ -44,24 +45,27 @@
     ObjectTypeConf,
     Serializable {
 
-    private final Class                    cls;
+    private static final long serialVersionUID = 8218802585428841926L;
+    
+    private final Class<?>                 cls;
     private transient InternalRuleBase     ruleBase;
     private ObjectTypeNode[]               objectTypeNodes;
 
     protected boolean                      shadowEnabled;
-    protected Class                        shadowClass;
+    protected Class<ShadowProxy>           shadowClass;
     protected transient ObjectInstantiator instantiator;
 
     private ObjectTypeNode                 concreteObjectTypeNode;
     private EntryPoint                     entryPoint;
 
     public ClassObjectTypeConf(final EntryPoint entryPoint,
-                               final Class clazz,
-                               final boolean isEvent,
+                               final Class<?> clazz,
                                final InternalRuleBase ruleBase) {
         this.cls = clazz;
         this.ruleBase = ruleBase;
         this.entryPoint = entryPoint;
+        TypeDeclaration type = ruleBase.getTypeDeclaration( clazz );
+        final boolean isEvent = type != null && type.getRole() == TypeDeclaration.Role.EVENT; 
 
         ObjectType objectType = new ClassObjectType( clazz,
                                                      isEvent );
@@ -147,7 +151,7 @@
      * This will return the package name - if the package is null, it will
      * work it out from the class name (this is in cases where funky classloading is used).
      */
-    public static String getPackageName(Class clazz,
+    public static String getPackageName(Class<?> clazz,
                                         Package pkg) {
         String pkgName = "";
         if ( pkg == null ) {

Modified: labs/jbossrules/branches/temporal_rete/pom.xml
===================================================================
--- labs/jbossrules/branches/temporal_rete/pom.xml	2008-03-10 20:33:50 UTC (rev 18811)
+++ labs/jbossrules/branches/temporal_rete/pom.xml	2008-03-10 20:34:14 UTC (rev 18812)
@@ -364,7 +364,7 @@
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-surefire-plugin</artifactId>
-          <version>2.3</version>
+          <version>2.4.2</version>
           <configuration>
             <includes>
               <include>**/*Test.java</include>
@@ -545,7 +545,7 @@
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-surefire-report-plugin</artifactId>
-        <version>2.3</version>
+        <version>2.4.2</version>
         <reportSets>
           <reportSet>
             <reports>




More information about the jboss-svn-commits mailing list