[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