[jboss-svn-commits] JBL Code SVN: r21541 - in labs/jbossrules/trunk/drools-process: drools-bam and 10 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Aug 14 08:54:49 EDT 2008
Author: KrisVerlaenen
Date: 2008-08-14 08:54:49 -0400 (Thu, 14 Aug 2008)
New Revision: 21541
Added:
labs/jbossrules/trunk/drools-process/drools-bam/
labs/jbossrules/trunk/drools-process/drools-bam/src/
labs/jbossrules/trunk/drools-process/drools-bam/src/main/
labs/jbossrules/trunk/drools-process/drools-bam/src/main/java/
labs/jbossrules/trunk/drools-process/drools-bam/src/main/java/org/
labs/jbossrules/trunk/drools-process/drools-bam/src/main/java/org/drools/
labs/jbossrules/trunk/drools-process/drools-bam/src/main/java/org/drools/process/
labs/jbossrules/trunk/drools-process/drools-bam/src/main/java/org/drools/process/audit/
labs/jbossrules/trunk/drools-process/drools-bam/src/main/java/org/drools/process/audit/HibernateUtil.java
labs/jbossrules/trunk/drools-process/drools-bam/src/main/java/org/drools/process/audit/ProcessInstanceDbLog.java
labs/jbossrules/trunk/drools-process/drools-bam/src/main/java/org/drools/process/audit/ProcessInstanceLog.java
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/resources/
labs/jbossrules/trunk/drools-process/drools-bam/src/main/resources/AuditLog.hbm.xml
labs/jbossrules/trunk/drools-process/drools-bam/src/main/resources/hibernate.cfg.xml
labs/jbossrules/trunk/drools-process/drools-bam/src/test/
labs/jbossrules/trunk/drools-process/drools-bam/src/test/java/
labs/jbossrules/trunk/drools-process/drools-bam/src/test/resources/
labs/jbossrules/trunk/drools-process/drools-bam/src/test/resources/log4j.properties
Log:
- added db event persister
Added: labs/jbossrules/trunk/drools-process/drools-bam/src/main/java/org/drools/process/audit/HibernateUtil.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bam/src/main/java/org/drools/process/audit/HibernateUtil.java (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-bam/src/main/java/org/drools/process/audit/HibernateUtil.java 2008-08-14 12:54:49 UTC (rev 21541)
@@ -0,0 +1,23 @@
+package org.drools.process.audit;
+
+import org.hibernate.SessionFactory;
+import org.hibernate.cfg.Configuration;
+
+public class HibernateUtil {
+
+ private static final SessionFactory sessionFactory;
+
+ static {
+ try {
+ sessionFactory = new Configuration().configure().buildSessionFactory();
+ } catch (Throwable ex) {
+ System.err.println("Initial SessionFactory creation failed." + ex);
+ throw new ExceptionInInitializerError(ex);
+ }
+ }
+
+ public static SessionFactory getSessionFactory() {
+ return sessionFactory;
+ }
+
+}
Added: labs/jbossrules/trunk/drools-process/drools-bam/src/main/java/org/drools/process/audit/ProcessInstanceDbLog.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bam/src/main/java/org/drools/process/audit/ProcessInstanceDbLog.java (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-bam/src/main/java/org/drools/process/audit/ProcessInstanceDbLog.java 2008-08-14 12:54:49 UTC (rev 21541)
@@ -0,0 +1,27 @@
+package org.drools.process.audit;
+
+import java.util.List;
+
+import org.hibernate.Session;
+
+public class ProcessInstanceDbLog {
+
+ public static List<ProcessInstanceLog> findProcessInstances() {
+ Session session = HibernateUtil.getSessionFactory().getCurrentSession();
+ session.beginTransaction();
+ List result = session.createQuery("from ProcessInstanceLog").list();
+ session.getTransaction().commit();
+ return result;
+ }
+
+ public static List<ProcessInstanceLog> findProcessInstances(String processId) {
+ Session session = HibernateUtil.getSessionFactory().getCurrentSession();
+ session.beginTransaction();
+ List result = session.createQuery(
+ "from ProcessInstanceLog as log where log.processId = ?")
+ .setString(0, processId).list();
+ session.getTransaction().commit();
+ return result;
+ }
+
+}
Added: labs/jbossrules/trunk/drools-process/drools-bam/src/main/java/org/drools/process/audit/ProcessInstanceLog.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bam/src/main/java/org/drools/process/audit/ProcessInstanceLog.java (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-bam/src/main/java/org/drools/process/audit/ProcessInstanceLog.java 2008-08-14 12:54:49 UTC (rev 21541)
@@ -0,0 +1,57 @@
+package org.drools.process.audit;
+
+import java.util.Date;
+
+public class ProcessInstanceLog {
+
+ private long processInstanceId;
+ private String processId;
+ private Date start;
+ private Date end;
+
+ ProcessInstanceLog() {
+ }
+
+ public ProcessInstanceLog(long processInstanceId, String processId) {
+ setProcessInstanceId(processInstanceId);
+ setProcessId(processId);
+ setStart(new Date());
+ }
+
+ public long getProcessInstanceId() {
+ return processInstanceId;
+ }
+
+ private void setProcessInstanceId(long processInstanceId) {
+ this.processInstanceId = processInstanceId;
+ }
+
+ public String getProcessId() {
+ return processId;
+ }
+
+ public void setProcessId(String processId) {
+ this.processId = processId;
+ }
+
+ public Date getStart() {
+ return start;
+ }
+
+ public void setStart(Date start) {
+ this.start = start;
+ }
+
+ public Date getEnd() {
+ return end;
+ }
+
+ public void setEnd(Date end) {
+ this.end = end;
+ }
+
+ public String toString() {
+ return "Process '" + processId + "' [" + processInstanceId + "]";
+ }
+
+}
Added: 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 (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-bam/src/main/java/org/drools/process/audit/WorkingMemoryDbLogger.java 2008-08-14 12:54:49 UTC (rev 21541)
@@ -0,0 +1,48 @@
+package org.drools.process.audit;
+
+import java.util.Date;
+
+import org.drools.WorkingMemory;
+import org.drools.audit.WorkingMemoryLogger;
+import org.drools.audit.event.LogEvent;
+import org.drools.audit.event.RuleFlowLogEvent;
+import org.hibernate.Session;
+
+public class WorkingMemoryDbLogger extends WorkingMemoryLogger {
+
+ public WorkingMemoryDbLogger(WorkingMemory workingMemory) {
+ super(workingMemory);
+ }
+
+ public void logEventCreated(LogEvent logEvent) {
+ switch (logEvent.getType()) {
+ case LogEvent.BEFORE_RULEFLOW_CREATED:
+ RuleFlowLogEvent event = (RuleFlowLogEvent) logEvent;
+ addLog(event.getProcessInstanceId(), event.getProcessId());
+ break;
+ case LogEvent.AFTER_RULEFLOW_COMPLETED:
+ event = (RuleFlowLogEvent) logEvent;
+ updateLog(event.getProcessInstanceId());
+ break;
+ default:
+ // ignore all other events
+ }
+ }
+
+ private void addLog(long processInstanceId, String processId) {
+ ProcessInstanceLog log = new ProcessInstanceLog(processInstanceId, processId);
+ Session session = HibernateUtil.getSessionFactory().getCurrentSession();
+ session.beginTransaction();
+ session.save(log);
+ session.getTransaction().commit();
+ }
+
+ private void updateLog(long processInstanceId) {
+ Session session = HibernateUtil.getSessionFactory().getCurrentSession();
+ session.beginTransaction();
+ ProcessInstanceLog log = (ProcessInstanceLog) session.load(ProcessInstanceLog.class, processInstanceId);
+ log.setEnd(new Date());
+ session.update(log);
+ session.getTransaction().commit();
+ }
+}
Added: labs/jbossrules/trunk/drools-process/drools-bam/src/main/resources/AuditLog.hbm.xml
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bam/src/main/resources/AuditLog.hbm.xml (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-bam/src/main/resources/AuditLog.hbm.xml 2008-08-14 12:54:49 UTC (rev 21541)
@@ -0,0 +1,17 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC
+ "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+ "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+
+<hibernate-mapping>
+
+ <class name="org.drools.process.audit.ProcessInstanceLog" >
+ <id name="processInstanceId">
+ <generator class="native"/>
+ </id>
+ <property name="processId"/>
+ <property name="start" type="timestamp" column="START_DATE"/>
+ <property name="end" type="timestamp" column="END_DATE"/>
+ </class>
+
+</hibernate-mapping>
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-process/drools-bam/src/main/resources/hibernate.cfg.xml
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bam/src/main/resources/hibernate.cfg.xml (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-bam/src/main/resources/hibernate.cfg.xml 2008-08-14 12:54:49 UTC (rev 21541)
@@ -0,0 +1,38 @@
+<?xml version='1.0' encoding='utf-8'?>
+<!DOCTYPE hibernate-configuration PUBLIC
+ "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
+ "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
+
+<hibernate-configuration>
+
+ <session-factory>
+
+ <!-- Database connection settings -->
+ <property name="connection.driver_class">org.hsqldb.jdbcDriver</property>
+ <property name="connection.url">jdbc:hsqldb:hsql://localhost</property>
+ <property name="connection.username">sa</property>
+ <property name="connection.password"></property>
+
+ <!-- JDBC connection pool (use the built-in) -->
+ <property name="connection.pool_size">1</property>
+
+ <!-- SQL dialect -->
+ <property name="dialect">org.hibernate.dialect.HSQLDialect</property>
+
+ <!-- Enable Hibernate's automatic session context management -->
+ <property name="current_session_context_class">thread</property>
+
+ <!-- Disable the second-level cache -->
+ <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
+
+ <!-- Echo all executed SQL to stdout -->
+ <property name="show_sql">false</property>
+
+ <!-- Drop and re-create the database schema on startup -->
+ <property name="hbm2ddl.auto">create</property>
+
+ <mapping resource="AuditLog.hbm.xml"/>
+
+ </session-factory>
+
+</hibernate-configuration>
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-process/drools-bam/src/test/resources/log4j.properties
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bam/src/test/resources/log4j.properties (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-bam/src/test/resources/log4j.properties 2008-08-14 12:54:49 UTC (rev 21541)
@@ -0,0 +1,47 @@
+### direct log messages to stdout ###
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.Target=System.out
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
+
+### direct messages to file hibernate.log ###
+#log4j.appender.file=org.apache.log4j.FileAppender
+#log4j.appender.file.File=hibernate.log
+#log4j.appender.file.layout=org.apache.log4j.PatternLayout
+#log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
+
+### set log levels - for more verbose logging change 'info' to 'debug' ###
+
+log4j.rootLogger=warn, stdout
+
+#log4j.logger.org.hibernate=info
+#log4j.logger.org.hibernate=debug
+
+### log HQL query parser activity
+#log4j.logger.org.hibernate.hql.ast.AST=debug
+
+### log just the SQL
+#log4j.logger.org.hibernate.SQL=debug
+
+### log JDBC bind parameters ###
+#log4j.logger.org.hibernate.type=info
+#log4j.logger.org.hibernate.type=debug
+
+### log schema export/update ###
+#log4j.logger.org.hibernate.tool.hbm2ddl=debug
+
+### log HQL parse trees
+#log4j.logger.org.hibernate.hql=debug
+
+### log cache activity ###
+#log4j.logger.org.hibernate.cache=debug
+
+### log transaction activity
+#log4j.logger.org.hibernate.transaction=debug
+
+### log JDBC resource acquisition
+#log4j.logger.org.hibernate.jdbc=debug
+
+### enable the following line if you want to track down connection ###
+### leakages when using DriverManagerConnectionProvider ###
+#log4j.logger.org.hibernate.connection.DriverManagerConnectionProvider=trace
More information about the jboss-svn-commits
mailing list