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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Nov 18 10:18:42 EST 2008


Author: KrisVerlaenen
Date: 2008-11-18 10:18:42 -0500 (Tue, 18 Nov 2008)
New Revision: 23923

Added:
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/event/KnowledgeRuntimeEventManager.java
Modified:
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/event/rule/DefaultAgendaEventListener.java
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/KnowledgeRuntime.java
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/StatelessKnowledgeSession.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/audit/WorkingMemoryConsoleLogger.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/audit/WorkingMemoryFileLogger.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/audit/WorkingMemoryInMemoryLogger.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/audit/WorkingMemoryLogger.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/impl/StatelessKnowledgeSessionImpl.java
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/util/ProjectClassLoader.java
   labs/jbossrules/trunk/drools-process/drools-bam/src/main/java/org/drools/process/audit/WorkingMemoryDbLogger.java
Log:
JBRULES-1734: Drools-API
 - made audit logger accept KnowledgeRuntimeEventManager in constructors

Added: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/event/KnowledgeRuntimeEventManager.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/event/KnowledgeRuntimeEventManager.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/event/KnowledgeRuntimeEventManager.java	2008-11-18 15:18:42 UTC (rev 23923)
@@ -0,0 +1,8 @@
+package org.drools.event;
+
+import org.drools.event.process.ProcessEventManager;
+import org.drools.event.rule.WorkingMemoryEventManager;
+
+public interface KnowledgeRuntimeEventManager extends WorkingMemoryEventManager, ProcessEventManager {
+
+}

Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/event/rule/DefaultAgendaEventListener.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/event/rule/DefaultAgendaEventListener.java	2008-11-18 15:15:48 UTC (rev 23922)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/event/rule/DefaultAgendaEventListener.java	2008-11-18 15:18:42 UTC (rev 23923)
@@ -1,7 +1,5 @@
 package org.drools.event.rule;
 
-import org.drools.runtime.KnowledgeRuntime;
-import org.drools.runtime.rule.WorkingMemory;
 
 public class DefaultAgendaEventListener
     implements

Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/KnowledgeRuntime.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/KnowledgeRuntime.java	2008-11-18 15:15:48 UTC (rev 23922)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/KnowledgeRuntime.java	2008-11-18 15:18:42 UTC (rev 23923)
@@ -1,8 +1,9 @@
 package org.drools.runtime;
 
+import org.drools.event.KnowledgeRuntimeEventManager;
 import org.drools.runtime.process.ProcessRuntime;
 import org.drools.runtime.rule.WorkingMemory;
 
-public interface KnowledgeRuntime extends WorkingMemory, ProcessRuntime {
+public interface KnowledgeRuntime extends WorkingMemory, ProcessRuntime, KnowledgeRuntimeEventManager {
 
 }

Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/StatelessKnowledgeSession.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/StatelessKnowledgeSession.java	2008-11-18 15:15:48 UTC (rev 23922)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/StatelessKnowledgeSession.java	2008-11-18 15:18:42 UTC (rev 23923)
@@ -1,11 +1,10 @@
 package org.drools.runtime;
 
-import org.drools.event.process.ProcessEventManager;
-import org.drools.event.rule.WorkingMemoryEventManager;
+import org.drools.event.KnowledgeRuntimeEventManager;
 import org.drools.runtime.process.StatelessProcessSession;
 import org.drools.runtime.rule.StatelessRuleSession;
 
-public interface StatelessKnowledgeSession extends  StatelessRuleSession, StatelessProcessSession, WorkingMemoryEventManager, ProcessEventManager {
+public interface StatelessKnowledgeSession extends  StatelessRuleSession, StatelessProcessSession, KnowledgeRuntimeEventManager {
    
     /**
      * Delegate used to resolve any global names not found in the global map.

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/audit/WorkingMemoryConsoleLogger.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/audit/WorkingMemoryConsoleLogger.java	2008-11-18 15:15:48 UTC (rev 23922)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/audit/WorkingMemoryConsoleLogger.java	2008-11-18 15:18:42 UTC (rev 23923)
@@ -7,7 +7,7 @@
 
 import org.drools.WorkingMemoryEventManager;
 import org.drools.audit.event.LogEvent;
-import org.drools.runtime.StatefulKnowledgeSession;
+import org.drools.event.KnowledgeRuntimeEventManager;
 
 public class WorkingMemoryConsoleLogger extends WorkingMemoryLogger {
 
@@ -23,7 +23,7 @@
         super(workingMemory);
     }
     
-    public WorkingMemoryConsoleLogger(StatefulKnowledgeSession session) {
+    public WorkingMemoryConsoleLogger(KnowledgeRuntimeEventManager session) {
     	super(session);
     }
 

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/audit/WorkingMemoryFileLogger.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/audit/WorkingMemoryFileLogger.java	2008-11-18 15:15:48 UTC (rev 23922)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/audit/WorkingMemoryFileLogger.java	2008-11-18 15:18:42 UTC (rev 23923)
@@ -26,7 +26,7 @@
 
 import org.drools.WorkingMemoryEventManager;
 import org.drools.audit.event.LogEvent;
-import org.drools.runtime.StatefulKnowledgeSession;
+import org.drools.event.KnowledgeRuntimeEventManager;
 
 import com.thoughtworks.xstream.XStream;
 
@@ -66,7 +66,7 @@
         super( workingMemoryEventManager );
     }
 
-    public WorkingMemoryFileLogger(final StatefulKnowledgeSession session) {
+    public WorkingMemoryFileLogger(final KnowledgeRuntimeEventManager session) {
     	super( session );
     }
 

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/audit/WorkingMemoryInMemoryLogger.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/audit/WorkingMemoryInMemoryLogger.java	2008-11-18 15:15:48 UTC (rev 23922)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/audit/WorkingMemoryInMemoryLogger.java	2008-11-18 15:18:42 UTC (rev 23923)
@@ -27,8 +27,7 @@
 
 import org.drools.WorkingMemoryEventManager;
 import org.drools.audit.event.LogEvent;
-import org.drools.runtime.StatefulKnowledgeSession;
-import org.drools.runtime.rule.StatefulRuleSession;
+import org.drools.event.KnowledgeRuntimeEventManager;
 
 import com.thoughtworks.xstream.XStream;
 
@@ -49,13 +48,14 @@
         super( workingMemory );
     }
     
-    public WorkingMemoryInMemoryLogger(final StatefulKnowledgeSession session) {
+    public WorkingMemoryInMemoryLogger(final KnowledgeRuntimeEventManager session) {
     	super( session );
     }
 
-    public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+    @SuppressWarnings("unchecked")
+	public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
         super.readExternal(in);
-        events  = (List)in.readObject();
+        events  = (List<LogEvent>) in.readObject();
     }
 
     public void writeExternal(ObjectOutput out) throws IOException {

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/audit/WorkingMemoryLogger.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/audit/WorkingMemoryLogger.java	2008-11-18 15:15:48 UTC (rev 23922)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/audit/WorkingMemoryLogger.java	2008-11-18 15:18:42 UTC (rev 23923)
@@ -58,6 +58,7 @@
 import org.drools.event.BeforeRuleBaseLockedEvent;
 import org.drools.event.BeforeRuleBaseUnlockedEvent;
 import org.drools.event.BeforeRuleRemovedEvent;
+import org.drools.event.KnowledgeRuntimeEventManager;
 import org.drools.event.ObjectInsertedEvent;
 import org.drools.event.ObjectRetractedEvent;
 import org.drools.event.ObjectUpdatedEvent;
@@ -70,8 +71,8 @@
 import org.drools.event.RuleFlowStartedEvent;
 import org.drools.event.WorkingMemoryEventListener;
 import org.drools.impl.StatefulKnowledgeSessionImpl;
+import org.drools.impl.StatelessKnowledgeSessionImpl;
 import org.drools.rule.Declaration;
-import org.drools.runtime.StatefulKnowledgeSession;
 import org.drools.spi.Activation;
 import org.drools.spi.Tuple;
 
@@ -113,8 +114,21 @@
         workingMemoryEventManager.addEventListener( (RuleBaseEventListener) this );
     }
     
-    public WorkingMemoryLogger(final StatefulKnowledgeSession session) {
-    	this(((StatefulKnowledgeSessionImpl) session).session);
+    public WorkingMemoryLogger(final KnowledgeRuntimeEventManager session) {
+    	if (session instanceof StatefulKnowledgeSessionImpl) {
+    		WorkingMemoryEventManager eventManager = ((StatefulKnowledgeSessionImpl) session).session;
+    		eventManager.addEventListener( (WorkingMemoryEventListener) this );
+    		eventManager.addEventListener( (AgendaEventListener) this );
+    		eventManager.addEventListener( (RuleFlowEventListener) this );
+    		eventManager.addEventListener( (RuleBaseEventListener) this );
+    	} else if (session instanceof StatelessKnowledgeSessionImpl) {
+    		((StatelessKnowledgeSessionImpl) session).workingMemoryEventSupport.addEventListener( this );
+    		((StatelessKnowledgeSessionImpl) session).agendaEventSupport.addEventListener( this );
+    		((StatelessKnowledgeSessionImpl) session).ruleFlowEventSupport.addEventListener( this );
+    		((StatelessKnowledgeSessionImpl) session).getRuleBase().addEventListener( this );
+    	} else {
+    		throw new IllegalArgumentException("Not supported session in logger: " + session.getClass());
+    	}
     }
 
     @SuppressWarnings("unchecked")

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/impl/StatelessKnowledgeSessionImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/impl/StatelessKnowledgeSessionImpl.java	2008-11-18 15:15:48 UTC (rev 23922)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/impl/StatelessKnowledgeSessionImpl.java	2008-11-18 15:18:42 UTC (rev 23923)
@@ -48,9 +48,9 @@
     public Map<ProcessEventListener, ProcessEventListenerWrapper>             mappedProcessListeners;
 
     /** The event support */
-    protected WorkingMemoryEventSupport                                       workingMemoryEventSupport = new WorkingMemoryEventSupport();
-    protected AgendaEventSupport                                              agendaEventSupport        = new AgendaEventSupport();
-    protected RuleFlowEventSupport                                            ruleFlowEventSupport      = new RuleFlowEventSupport();
+    public WorkingMemoryEventSupport                                          workingMemoryEventSupport = new WorkingMemoryEventSupport();
+    public AgendaEventSupport                                                 agendaEventSupport        = new AgendaEventSupport();
+    public RuleFlowEventSupport                                               ruleFlowEventSupport      = new RuleFlowEventSupport();
 
     public StatelessKnowledgeSessionImpl() {
     }

Modified: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/util/ProjectClassLoader.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/util/ProjectClassLoader.java	2008-11-18 15:15:48 UTC (rev 23922)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/util/ProjectClassLoader.java	2008-11-18 15:18:42 UTC (rev 23923)
@@ -6,7 +6,6 @@
 import java.net.URLClassLoader;
 import java.util.ArrayList;
 import java.util.HashSet;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
 
@@ -41,8 +40,8 @@
 	}
 
     public static URLClassLoader getProjectClassLoader(IJavaProject project) {
-        List pathElements = getProjectClassPathURLs(project);
-        URL urlPaths[] = (URL[]) pathElements.toArray(new URL[pathElements.size()]);
+        List<URL> pathElements = getProjectClassPathURLs(project, new ArrayList<String>());
+        URL urlPaths[] = pathElements.toArray(new URL[pathElements.size()]);
         return new URLClassLoader(urlPaths, Thread.currentThread().getContextClassLoader());
     }
 
@@ -64,11 +63,11 @@
         return file;
     }
 
-    public static List getProjectClassPathURLs(IJavaProject project) {
-        List pathElements = new ArrayList();
+    public static List<URL> getProjectClassPathURLs(IJavaProject project, List<String> alreadyLoadedProjects) {
+        List<URL> pathElements = new ArrayList<URL>();
         try {
             IClasspathEntry[] paths = project.getResolvedClasspath(true);
-            Set outputPaths = new HashSet();
+            Set<IPath> outputPaths = new HashSet<IPath>();
             if (paths != null) {
                 for ( int i = 0; i < paths.length; i++ ) {
                     IClasspathEntry path = paths[i];
@@ -86,27 +85,29 @@
             IPath location = getProjectLocation(project.getProject());
             IPath outputPath = location.append(project.getOutputLocation().removeFirstSegments(1));
             pathElements.add(0, outputPath.toFile().toURI().toURL());
-            for (Iterator iterator = outputPaths.iterator(); iterator.hasNext(); ) {
-            	IPath path = (IPath) iterator.next();
+            for (IPath path: outputPaths) {
             	outputPath = location.append(path.removeFirstSegments(1));
                 pathElements.add(0, outputPath.toFile().toURI().toURL());
             }
             
             // also add classpath of required projects
-            String[] names = project.getRequiredProjectNames();
-            for ( int i = 0; i < names.length; i++ ) {
-                String projectName = names[i];
-                IProject reqProject = project.getProject().getWorkspace()
-                    .getRoot().getProject(projectName);
-                if (reqProject != null) {
-                    IJavaProject reqJavaProject = JavaCore.create(reqProject);
-                    pathElements.addAll(getProjectClassPathURLs(reqJavaProject));
-                }
+            for (String projectName: project.getRequiredProjectNames()) {
+            	if (!alreadyLoadedProjects.contains(projectName)) {
+            		alreadyLoadedProjects.add(projectName);
+		            IProject reqProject = project.getProject().getWorkspace()
+		                .getRoot().getProject(projectName);
+		            if (reqProject != null) {
+		                IJavaProject reqJavaProject = JavaCore.create(reqProject);
+		                pathElements.addAll(getProjectClassPathURLs(reqJavaProject, alreadyLoadedProjects));
+		            }
+            	}
             }
         } catch (JavaModelException e) {
             DroolsEclipsePlugin.log(e);
         } catch (MalformedURLException e) {
             DroolsEclipsePlugin.log(e);
+        } catch (Throwable t) {
+        	DroolsEclipsePlugin.log(t);
         }
         return pathElements;
     }

Modified: labs/jbossrules/trunk/drools-process/drools-bam/src/main/java/org/drools/process/audit/WorkingMemoryDbLogger.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bam/src/main/java/org/drools/process/audit/WorkingMemoryDbLogger.java	2008-11-18 15:15:48 UTC (rev 23922)
+++ labs/jbossrules/trunk/drools-process/drools-bam/src/main/java/org/drools/process/audit/WorkingMemoryDbLogger.java	2008-11-18 15:18:42 UTC (rev 23923)
@@ -6,6 +6,7 @@
 import org.drools.audit.WorkingMemoryLogger;
 import org.drools.audit.event.LogEvent;
 import org.drools.audit.event.RuleFlowLogEvent;
+import org.drools.event.KnowledgeRuntimeEventManager;
 import org.hibernate.Session;
 
 public class WorkingMemoryDbLogger extends WorkingMemoryLogger {
@@ -13,6 +14,10 @@
     public WorkingMemoryDbLogger(WorkingMemory workingMemory) {
         super(workingMemory);
     }
+    
+    public WorkingMemoryDbLogger(KnowledgeRuntimeEventManager session) {
+    	super(session);
+    }
 
     public void logEventCreated(LogEvent logEvent) {
         switch (logEvent.getType()) {




More information about the jboss-svn-commits mailing list