[jboss-svn-commits] JBL Code SVN: r23938 - in labs/jbossrules/trunk: drools-api/src/main/java/org/drools/runtime/rule and 8 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Nov 18 23:51:55 EST 2008


Author: mark.proctor at jboss.com
Date: 2008-11-18 23:51:54 -0500 (Tue, 18 Nov 2008)
New Revision: 23938

Added:
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/rule/ActivationGroup.java
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/rule/RuleFlowGroup.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/rule/impl/ActivationGroupImpl.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/rule/impl/AgendaGroupImpl.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/rule/impl/AgendaImpl.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/rule/impl/RuleFlowGroupImpl.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/rule/impl/SerializedRule.java
Modified:
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/StatefulKnowledgeSession.java
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/rule/Agenda.java
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/rule/AgendaGroup.java
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/rule/WorkingMemory.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/builder/impl/KnowledgeBuilderImpl.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/ExecutionFlowControlTest.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/ArrayAgendaGroup.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/BinaryHeapQueueAgendaGroup.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalAgenda.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/SequentialAgendaGroupImpl.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/event/rule/impl/SerializableAgendaGroup.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/impl/StatefulKnowledgeSessionImpl.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/ActivationGroup.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/RuleFlowGroup.java
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/event/rule/AgendaEventSupportTest.java
Log:
JBRULES-1734 Drools API 
-Agenda can now be returned and cleared
-AgendaGroup, RuleFlowGroup and Activation group can be returned from the Agenda and cleared
-AgendaGroup can call setFocus

Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/StatefulKnowledgeSession.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/StatefulKnowledgeSession.java	2008-11-19 04:37:31 UTC (rev 23937)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/StatefulKnowledgeSession.java	2008-11-19 04:51:54 UTC (rev 23938)
@@ -17,7 +17,5 @@
 
     KnowledgeBase getKnowledgeBase();
 
-    void setFocus(String string);
-
     void dispose();
 }

Added: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/rule/ActivationGroup.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/rule/ActivationGroup.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/rule/ActivationGroup.java	2008-11-19 04:51:54 UTC (rev 23938)
@@ -0,0 +1,12 @@
+package org.drools.runtime.rule;
+
+
+public interface ActivationGroup {
+    /**
+     * @return
+     *      The ActivationGroup name
+     */
+    public String getName();    
+    
+    public void clear();
+}

Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/rule/Agenda.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/rule/Agenda.java	2008-11-19 04:37:31 UTC (rev 23937)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/rule/Agenda.java	2008-11-19 04:51:54 UTC (rev 23938)
@@ -1,5 +1,11 @@
 package org.drools.runtime.rule;
 
 public interface Agenda {
-
+    public void clear();
+    
+    AgendaGroup getAgendaGroup(String name);
+    
+    ActivationGroup getActivationGroup(String name);
+    
+    RuleFlowGroup getRuleFlowGroup(String name);
 }

Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/rule/AgendaGroup.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/rule/AgendaGroup.java	2008-11-19 04:37:31 UTC (rev 23937)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/rule/AgendaGroup.java	2008-11-19 04:51:54 UTC (rev 23938)
@@ -7,4 +7,8 @@
      *      The AgendaGroup name
      */
     public String getName();    
+    
+    public void clear();
+    
+    public void setFocus();
 }

Added: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/rule/RuleFlowGroup.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/rule/RuleFlowGroup.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/rule/RuleFlowGroup.java	2008-11-19 04:51:54 UTC (rev 23938)
@@ -0,0 +1,12 @@
+package org.drools.runtime.rule;
+
+
+public interface RuleFlowGroup {
+    /**
+     * @return
+     *      The RuleFlowGroup name
+     */
+    public String getName(); 
+
+    public void clear();
+}

Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/rule/WorkingMemory.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/rule/WorkingMemory.java	2008-11-19 04:37:31 UTC (rev 23937)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/rule/WorkingMemory.java	2008-11-19 04:51:54 UTC (rev 23938)
@@ -25,4 +25,6 @@
     Collection<? extends FactHandle> getFactHandles();
 
     Collection<? extends FactHandle> getFactHandles(ObjectFilter filter);   
+    
+    Agenda getAgenda();
 }

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/builder/impl/KnowledgeBuilderImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/builder/impl/KnowledgeBuilderImpl.java	2008-11-19 04:37:31 UTC (rev 23937)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/builder/impl/KnowledgeBuilderImpl.java	2008-11-19 04:51:54 UTC (rev 23938)
@@ -13,7 +13,7 @@
 import org.drools.builder.ResourceConfiguration;
 import org.drools.compiler.PackageBuilder;
 import org.drools.definition.KnowledgePackage;
-import org.drools.knowledge.definitions.impl.KnowledgePackageImp;
+import org.drools.definitions.impl.KnowledgePackageImp;
 import org.drools.rule.Package;
 
 public class KnowledgeBuilderImpl implements KnowledgeBuilder {

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/ExecutionFlowControlTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/ExecutionFlowControlTest.java	2008-11-19 04:37:31 UTC (rev 23937)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/ExecutionFlowControlTest.java	2008-11-19 04:51:54 UTC (rev 23938)
@@ -14,6 +14,8 @@
 import org.drools.Cell;
 import org.drools.Cheese;
 import org.drools.FactHandle;
+import org.drools.KnowledgeBase;
+import org.drools.KnowledgeBaseFactory;
 import org.drools.Message;
 import org.drools.Neighbor;
 import org.drools.Person;
@@ -23,6 +25,9 @@
 import org.drools.RuleBaseFactory;
 import org.drools.StatefulSession;
 import org.drools.WorkingMemory;
+import org.drools.builder.KnowledgeBuilder;
+import org.drools.builder.KnowledgeBuilderFactory;
+import org.drools.builder.KnowledgeType;
 import org.drools.common.DefaultAgenda;
 import org.drools.common.InternalWorkingMemoryActions;
 import org.drools.common.RuleFlowGroupImpl;
@@ -37,6 +42,7 @@
 import org.drools.lang.descr.PackageDescr;
 import org.drools.process.instance.ProcessInstance;
 import org.drools.rule.Package;
+import org.drools.runtime.StatefulKnowledgeSession;
 import org.drools.spi.Activation;
 import org.drools.spi.ActivationGroup;
 import org.drools.spi.AgendaGroup;
@@ -508,24 +514,26 @@
     }
 
     public void testAgendaGroups() throws Exception {
-        final PackageBuilder builder = new PackageBuilder();
-        builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_AgendaGroups.drl" ) ) );
-        final Package pkg = builder.getPackage();
+        KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
+        kbuilder.addResource( new InputStreamReader( getClass().getResourceAsStream( "test_AgendaGroups.drl" ) ), KnowledgeType.DRL );
 
-        RuleBase ruleBase = getRuleBase();
-        ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
-        final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+        assertFalse( kbuilder.hasErrors() );
+        
+        KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
+        kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
 
+        kbase = SerializationHelper.serializeObject( kbase );
+        final StatefulKnowledgeSession session = kbase.newStatefulKnowledgeSession();
+
         final List list = new ArrayList();
-        workingMemory.setGlobal( "list",
+        session.setGlobal( "list",
                                  list );
 
         final Cheese brie = new Cheese( "brie",
                                         12 );
-        workingMemory.insert( brie );
+        session.insert( brie );
 
-        workingMemory.fireAllRules();
+        session.fireAllRules();
 
         assertEquals( 7,
                       list.size() );
@@ -545,13 +553,29 @@
         assertEquals( "MAIN",
                       list.get( 6 ) );
 
-        workingMemory.setFocus( "group2" );
-        workingMemory.fireAllRules();
+        session.getAgenda().getAgendaGroup( "group2" ).setFocus( );
+        session.fireAllRules();
 
         assertEquals( 8,
                       list.size() );
         assertEquals( "group2",
                       list.get( 7 ) );
+        
+        // clear main only the auto focus related ones should fire
+        list.clear();
+        session.insert( new Cheese( "cheddar" ) );        
+        session.getAgenda().getAgendaGroup( "MAIN" ).clear();
+        session.fireAllRules();
+        assertEquals( 3,
+                      list.size() );
+        assertEquals( "group3",
+                      list.get( 0 ) );
+        assertEquals( "group4",
+                      list.get( 1 ) );        
+        assertEquals( "group3",
+                      list.get( 2 ) );        
+
+        
     }
 
     public void testActivationGroups() throws Exception {

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/ArrayAgendaGroup.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/ArrayAgendaGroup.java	2008-11-19 04:37:31 UTC (rev 23937)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/ArrayAgendaGroup.java	2008-11-19 04:51:54 UTC (rev 23938)
@@ -219,4 +219,8 @@
     public int hashCode() {
         return this.name.hashCode();
     }
+    
+    public void setFocus() {
+        throw new UnsupportedOperationException();
+    }    
 }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/BinaryHeapQueueAgendaGroup.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/BinaryHeapQueueAgendaGroup.java	2008-11-19 04:37:31 UTC (rev 23937)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/BinaryHeapQueueAgendaGroup.java	2008-11-19 04:51:54 UTC (rev 23938)
@@ -151,4 +151,8 @@
     public int hashCode() {
         return this.name.hashCode();
     }
+
+    public void setFocus() {
+        throw new UnsupportedOperationException();
+    }
 }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalAgenda.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalAgenda.java	2008-11-19 04:37:31 UTC (rev 23937)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalAgenda.java	2008-11-19 04:51:54 UTC (rev 23938)
@@ -2,9 +2,11 @@
 
 import org.drools.Agenda;
 import org.drools.spi.Activation;
+import org.drools.spi.ActivationGroup;
 import org.drools.spi.AgendaFilter;
 import org.drools.spi.AgendaGroup;
 import org.drools.spi.ConsequenceException;
+import org.drools.spi.RuleFlowGroup;
 
 public interface InternalAgenda
     extends
@@ -112,6 +114,12 @@
      * @param agendaFilter filters the activations that may fire
      */
     public void fireUntilHalt(AgendaFilter agendaFilter);
+
+    public AgendaGroup getAgendaGroup(String name);
+
+    public ActivationGroup getActivationGroup(String name);
+
+    public RuleFlowGroup getRuleFlowGroup(String name);
     
     
 }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/SequentialAgendaGroupImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/SequentialAgendaGroupImpl.java	2008-11-19 04:37:31 UTC (rev 23937)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/SequentialAgendaGroupImpl.java	2008-11-19 04:51:54 UTC (rev 23938)
@@ -171,4 +171,8 @@
     public int hashCode() {
         return this.name.hashCode();
     }
+    
+    public void setFocus() {
+        throw new UnsupportedOperationException();
+    }    
 }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/event/rule/impl/SerializableAgendaGroup.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/event/rule/impl/SerializableAgendaGroup.java	2008-11-19 04:37:31 UTC (rev 23937)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/event/rule/impl/SerializableAgendaGroup.java	2008-11-19 04:51:54 UTC (rev 23938)
@@ -30,6 +30,14 @@
     
     public String getName() {
         return this.name;
+    }
+
+    public void clear() {
+        throw new UnsupportedOperationException();
+    }
+
+    public void setFocus() {
+        throw new UnsupportedOperationException();
     }    
 
 }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/impl/StatefulKnowledgeSessionImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/impl/StatefulKnowledgeSessionImpl.java	2008-11-19 04:37:31 UTC (rev 23937)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/impl/StatefulKnowledgeSessionImpl.java	2008-11-19 04:51:54 UTC (rev 23938)
@@ -11,6 +11,7 @@
 
 import org.drools.KnowledgeBase;
 import org.drools.WorkingMemory;
+import org.drools.common.InternalAgenda;
 import org.drools.common.InternalFactHandle;
 import org.drools.common.InternalWorkingMemory;
 import org.drools.common.ObjectStore;
@@ -56,6 +57,7 @@
 import org.drools.runtime.rule.AgendaFilter;
 import org.drools.runtime.rule.FactHandle;
 import org.drools.runtime.rule.WorkingMemoryEntryPoint;
+import org.drools.runtime.rule.impl.AgendaImpl;
 import org.drools.spi.Activation;
 import org.drools.time.SessionClock;
 
@@ -166,11 +168,7 @@
     public void halt() {
         this.session.halt();
     }
-
-    public void setFocus(String agendaGroup) {
-        this.session.setFocus( agendaGroup );
-    }
-
+    
     public void dispose() {
         this.session.dispose();
     }
@@ -557,7 +555,6 @@
     }
 
     public Agenda getAgenda() {
-        // TODO Auto-generated method stub
-        return null;
+        return new AgendaImpl( ( InternalAgenda ) this.session.getAgenda() );
     }
 }

Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/rule/impl/ActivationGroupImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/rule/impl/ActivationGroupImpl.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/rule/impl/ActivationGroupImpl.java	2008-11-19 04:51:54 UTC (rev 23938)
@@ -0,0 +1,44 @@
+package org.drools.runtime.rule.impl;
+
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+
+import org.drools.Agenda;
+import org.drools.common.InternalAgenda;
+import org.drools.runtime.rule.ActivationGroup;
+
+public class ActivationGroupImpl implements ActivationGroup, Externalizable {
+    
+    private String name;
+    
+    private InternalAgenda agenda;    
+    
+    ActivationGroupImpl() {
+        
+    }
+    
+    ActivationGroupImpl(org.drools.spi.ActivationGroup activationGroup, InternalAgenda agenda) {
+        this.name = activationGroup.getName();
+        this.agenda = agenda;
+    }
+
+    public void writeExternal(ObjectOutput out) throws IOException {
+        out.writeUTF( this.name );
+    }
+    
+    public void readExternal(ObjectInput in) throws IOException,
+                                            ClassNotFoundException {
+        this.name = in.readUTF();
+    }
+    
+    public String getName() {
+        return this.name;
+    }  
+    
+    public void clear() {
+        this.agenda.clearAndCancelActivationGroup( this.name );
+    }    
+
+}

Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/rule/impl/AgendaGroupImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/rule/impl/AgendaGroupImpl.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/rule/impl/AgendaGroupImpl.java	2008-11-19 04:51:54 UTC (rev 23938)
@@ -0,0 +1,48 @@
+package org.drools.runtime.rule.impl;
+
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+
+import org.drools.Agenda;
+import org.drools.common.InternalAgenda;
+import org.drools.runtime.rule.AgendaGroup;
+
+public class AgendaGroupImpl implements AgendaGroup, Externalizable {
+    
+    private String name;
+    
+    private InternalAgenda agenda;
+    
+    AgendaGroupImpl() {
+        
+    }
+    
+    AgendaGroupImpl(org.drools.spi.AgendaGroup agendaGroup, InternalAgenda agenda) {
+        this.name = agendaGroup.getName();
+        this.agenda = agenda;
+    }
+
+    public void writeExternal(ObjectOutput out) throws IOException {
+        out.writeUTF( this.name );
+    }
+    
+    public void readExternal(ObjectInput in) throws IOException,
+                                            ClassNotFoundException {
+        this.name = in.readUTF();
+    }
+    
+    public String getName() {
+        return this.name;
+    }    
+    
+    public void clear() {
+        this.agenda.clearAndCancelAgendaGroup( this.name );
+    }    
+    
+    public void setFocus() {
+        this.agenda.setFocus( this.name );
+    }
+
+}

Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/rule/impl/AgendaImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/rule/impl/AgendaImpl.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/rule/impl/AgendaImpl.java	2008-11-19 04:51:54 UTC (rev 23938)
@@ -0,0 +1,49 @@
+package org.drools.runtime.rule.impl;
+
+import org.drools.common.InternalAgenda;
+import org.drools.runtime.rule.ActivationGroup;
+import org.drools.runtime.rule.Agenda;
+import org.drools.runtime.rule.AgendaGroup;
+import org.drools.runtime.rule.RuleFlowGroup;
+
+public class AgendaImpl
+    implements
+    Agenda {
+    private InternalAgenda agenda;    
+    
+    public AgendaImpl(InternalAgenda agenda) {
+        super();
+        this.agenda = agenda;
+    }
+
+    public void clear() {
+        this.agenda.clearAndCancel();
+    }
+    
+    public AgendaGroup getAgendaGroup(String name) {
+        org.drools.spi.AgendaGroup agendaGroup = this.agenda.getAgendaGroup( name );
+        if (  agendaGroup != null ) {
+            return new AgendaGroupImpl( agendaGroup, this.agenda );
+        } else {
+            return null;
+        }
+    }
+    
+    public ActivationGroup getActivationGroup(String name) {
+        org.drools.spi.ActivationGroup activationGroup = this.agenda.getActivationGroup( name );
+        if (  activationGroup != null ) {
+            return new ActivationGroupImpl( activationGroup, this.agenda );
+        } else {
+            return null;
+        }
+    }    
+    
+    public RuleFlowGroup getRuleFlowGroup(String name) {
+        org.drools.spi.RuleFlowGroup ruleFlowGroup = this.agenda.getRuleFlowGroup( name );
+        if (  ruleFlowGroup != null ) {
+            return new RuleFlowGroupImpl( ruleFlowGroup, this.agenda );
+        } else {
+            return null;
+        }
+    }       
+}

Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/rule/impl/RuleFlowGroupImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/rule/impl/RuleFlowGroupImpl.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/rule/impl/RuleFlowGroupImpl.java	2008-11-19 04:51:54 UTC (rev 23938)
@@ -0,0 +1,45 @@
+package org.drools.runtime.rule.impl;
+
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+
+import org.drools.Agenda;
+import org.drools.common.InternalAgenda;
+import org.drools.runtime.rule.AgendaGroup;
+import org.drools.runtime.rule.RuleFlowGroup;
+
+public class RuleFlowGroupImpl implements RuleFlowGroup, Externalizable {
+    
+    private String name;
+    
+    private InternalAgenda agenda;
+    
+    RuleFlowGroupImpl() {
+        
+    }
+    
+    RuleFlowGroupImpl(org.drools.spi.RuleFlowGroup ruleflowGroup, InternalAgenda agenda) {
+        this.name = ruleflowGroup.getName();
+        this.agenda = agenda;
+    }
+
+    public void writeExternal(ObjectOutput out) throws IOException {
+        out.writeUTF( this.name );
+    }
+    
+    public void readExternal(ObjectInput in) throws IOException,
+                                            ClassNotFoundException {
+        this.name = in.readUTF();
+    }
+    
+    public String getName() {
+        return this.name;
+    }
+
+    public void clear() {
+        this.agenda.clearAndCancelRuleFlowGroup( this.name );
+    }    
+
+}

Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/rule/impl/SerializedRule.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/rule/impl/SerializedRule.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/rule/impl/SerializedRule.java	2008-11-19 04:51:54 UTC (rev 23938)
@@ -0,0 +1,45 @@
+package org.drools.runtime.rule.impl;
+
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+
+import org.drools.definition.rule.Rule;
+
+public class SerializedRule
+    implements
+    Rule,
+    Externalizable {
+    private String name;
+    private String packageName;
+    
+    public SerializedRule() {
+        
+    }
+    
+    public SerializedRule(Rule rule) {
+        this.name = rule.getName();
+        this.packageName = rule.getPackageName();
+    }
+
+    public void writeExternal(ObjectOutput out) throws IOException {
+        out.writeUTF( name );
+        out.writeUTF( packageName );
+    }
+
+    public void readExternal(ObjectInput in) throws IOException,
+                                            ClassNotFoundException {
+        name = in.readUTF();
+        packageName = in.readUTF();
+    }
+
+    public String getName() {
+        return this.name;
+    }
+
+    public String getPackageName() {
+        return this.packageName;
+    }
+
+}

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/ActivationGroup.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/ActivationGroup.java	2008-11-19 04:37:31 UTC (rev 23937)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/ActivationGroup.java	2008-11-19 04:51:54 UTC (rev 23938)
@@ -5,7 +5,7 @@
 
 public interface ActivationGroup
     extends
-    Serializable {
+    org.drools.runtime.rule.ActivationGroup  {
     public String getName();
 
     public void addActivation(Activation activation);

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/RuleFlowGroup.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/RuleFlowGroup.java	2008-11-19 04:37:31 UTC (rev 23937)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/RuleFlowGroup.java	2008-11-19 04:51:54 UTC (rev 23938)
@@ -21,7 +21,7 @@
 
 import org.drools.common.RuleFlowGroupNode;
 
-public interface RuleFlowGroup extends Externalizable {
+public interface RuleFlowGroup extends org.drools.runtime.rule.RuleFlowGroup {
 
     String getName();
 

Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/event/rule/AgendaEventSupportTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/event/rule/AgendaEventSupportTest.java	2008-11-19 04:37:31 UTC (rev 23937)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/event/rule/AgendaEventSupportTest.java	2008-11-19 04:51:54 UTC (rev 23938)
@@ -191,7 +191,7 @@
         agendaList.clear();
 
         // setFocus results in an AgendaGroupPushedEvent
-        session.setFocus( "test group" );
+        session.getAgenda().getAgendaGroup( "test group" ).setFocus();
         assertEquals( 1,
                       agendaList.size() );
         final AgendaGroupPushedEvent pushedEvent = (AgendaGroupPushedEvent) agendaList.get( 0 );




More information about the jboss-svn-commits mailing list