[overlord-commits] Overlord SVN: r989 - in activity-monitor/trunk: emu/src/main/java/org/jboss/bpm/monitor/emu and 10 other directories.
overlord-commits at lists.jboss.org
overlord-commits at lists.jboss.org
Sun Mar 7 14:25:27 EST 2010
Author: heiko.braun at jboss.com
Date: 2010-03-07 14:25:27 -0500 (Sun, 07 Mar 2010)
New Revision: 989
Added:
activity-monitor/trunk/model/src/main/java/org/jboss/bpm/monitor/model/StateUserType.java
activity-monitor/trunk/model/src/main/resources/org/
activity-monitor/trunk/model/src/main/resources/org/jboss/
activity-monitor/trunk/model/src/main/resources/org/jboss/bpm/
activity-monitor/trunk/model/src/main/resources/org/jboss/bpm/monitor/
activity-monitor/trunk/model/src/main/resources/org/jboss/bpm/monitor/model/
activity-monitor/trunk/model/src/main/resources/org/jboss/bpm/monitor/model/bpaf/
activity-monitor/trunk/model/src/main/resources/org/jboss/bpm/monitor/model/bpaf/BPAF.hbm.xml
Modified:
activity-monitor/trunk/emu/src/main/java/org/jboss/bpm/monitor/emu/Emulation.java
activity-monitor/trunk/model/pom.xml
activity-monitor/trunk/model/src/main/java/org/jboss/bpm/monitor/model/HibernateUtil.java
activity-monitor/trunk/model/src/main/java/org/jboss/bpm/monitor/model/bpaf/Event.java
activity-monitor/trunk/model/src/main/java/org/jboss/bpm/monitor/model/bpaf/Tuple.java
activity-monitor/trunk/model/src/main/resources/hibernate.cfg.xml
activity-monitor/trunk/pom.xml
Log:
Add hibernate persistence, first cut
Modified: activity-monitor/trunk/emu/src/main/java/org/jboss/bpm/monitor/emu/Emulation.java
===================================================================
--- activity-monitor/trunk/emu/src/main/java/org/jboss/bpm/monitor/emu/Emulation.java 2010-03-07 11:49:37 UTC (rev 988)
+++ activity-monitor/trunk/emu/src/main/java/org/jboss/bpm/monitor/emu/Emulation.java 2010-03-07 19:25:27 UTC (rev 989)
@@ -21,6 +21,8 @@
*/
package org.jboss.bpm.monitor.emu;
+import org.hibernate.Session;
+import org.jboss.bpm.monitor.model.HibernateUtil;
import org.jboss.bpm.monitor.model.bpaf.BPAFContext;
import org.jboss.bpm.monitor.model.bpaf.Event;
@@ -50,7 +52,7 @@
public Emulation(EventHandler handler)
{
- this.eventHandler = handler;
+ this.eventHandler = handler;
pool = new ThreadPoolExecutor(POOL_SIZE, POOL_SIZE, 20000, TimeUnit.MILLISECONDS, workQueue);
}
@@ -61,7 +63,7 @@
try
{
System.out.println("> Pool active: "+ pool.getActiveCount());
- System.out.println("> Pool capacity: "+ workQueue.remainingCapacity());
+ System.out.println("> Pool capacity: "+ workQueue.remainingCapacity());
if(!suspend)
{
@@ -72,8 +74,8 @@
try
{
pool.execute(process);
- System.out.println("\tStart new process");
-
+ System.out.println("\tStart new process");
+
}
catch (RejectedExecutionException e)
{
@@ -100,7 +102,7 @@
{
if(null==daemon) // basically lazy init
- {
+ {
shutdown = false;
daemon = new Thread(this);
daemon.start();
@@ -120,52 +122,101 @@
public static void main(String[] args) throws Exception
{
+ if(args.length==0)
+ throw new IllegalArgumentException("Usage: Emulation <jdbc|file>");
- final JAXBContext jaxb = BPAFContext.newInstance();
- final Marshaller m = jaxb.createMarshaller();
- m.setProperty(Marshaller.JAXB_FRAGMENT, Boolean.TRUE);
+ if(args[0].equals("file"))
+ {
+ // ======= FILE =========
- File file = new File(System.getProperty("user.home") + "/bpaf_data.txt");
- if(file.exists()) file.delete();
-
+ final JAXBContext jaxb = BPAFContext.newInstance();
+ final Marshaller m = jaxb.createMarshaller();
+ m.setProperty(Marshaller.JAXB_FRAGMENT, Boolean.TRUE);
- final OutputStream out = new FileOutputStream(file);
+ File file = new File(System.getProperty("user.home") + "/bpaf_data.txt");
+ if(file.exists()) file.delete();
- Emulation emu = new Emulation(new EventHandler()
- {
- public void processEvent(Event bpafEvent)
+
+ final OutputStream out = new FileOutputStream(file);
+
+ Emulation emu = new Emulation(new EventHandler()
{
- try
+ public void processEvent(Event bpafEvent)
{
- m.marshal(bpafEvent, out);
- out.write("\n".getBytes());
+ try
+ {
+ m.marshal(bpafEvent, out);
+ out.write("\n".getBytes());
+ }
+ catch (Exception e)
+ {
+ throw new RuntimeException(e);
+ }
}
- catch (Exception e)
+ });
+
+ Runtime.getRuntime().addShutdownHook(
+ new Thread(
+ new Runnable()
+ {
+ public void run()
+ {
+ try
+ {
+ out.close();
+ }
+ catch (IOException e)
+ {
+ e.printStackTrace();
+ }
+ }
+ }
+ )
+ );
+
+ emu.start();
+ }
+ else
+ {
+ // ======= JDBC =========
+ final Session session = HibernateUtil.getSession();
+
+ Emulation emu = new Emulation(new EventHandler()
+ {
+ public void processEvent(Event bpafEvent)
{
- throw new RuntimeException(e);
+ try
+ {
+ session.save(bpafEvent);
+ }
+ catch (Exception e)
+ {
+ throw new RuntimeException(e);
+ }
}
- }
- });
+ });
- emu.start();
-
- Runtime.getRuntime().addShutdownHook(
- new Thread(
- new Runnable()
- {
- public void run()
+ Runtime.getRuntime().addShutdownHook(
+ new Thread(
+ new Runnable()
{
- try
+ public void run()
{
- out.close();
+ try
+ {
+ session.close();
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
}
- catch (IOException e)
- {
- e.printStackTrace();
- }
}
- }
- )
- );
+ )
+ );
+
+ emu.start();
+ }
+
}
}
Modified: activity-monitor/trunk/model/pom.xml
===================================================================
--- activity-monitor/trunk/model/pom.xml 2010-03-07 11:49:37 UTC (rev 988)
+++ activity-monitor/trunk/model/pom.xml 2010-03-07 19:25:27 UTC (rev 989)
@@ -38,6 +38,31 @@
<groupId>javassist</groupId>
<artifactId>javassist</artifactId>
</dependency>
+
</dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>create-drop-script</id>
+ <phase>process-classes</phase>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ <configuration>
+ <tasks>
+ <property name="project.output.dir" value="${project.build.outputDirectory}" />
+ <ant antfile="scripts/antrun-schema.xml" target="create-schema" inheritRefs="yes" />
+ </tasks>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+
+
</project>
Modified: activity-monitor/trunk/model/src/main/java/org/jboss/bpm/monitor/model/HibernateUtil.java
===================================================================
--- activity-monitor/trunk/model/src/main/java/org/jboss/bpm/monitor/model/HibernateUtil.java 2010-03-07 11:49:37 UTC (rev 988)
+++ activity-monitor/trunk/model/src/main/java/org/jboss/bpm/monitor/model/HibernateUtil.java 2010-03-07 19:25:27 UTC (rev 989)
@@ -24,9 +24,7 @@
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
-import org.hibernate.cfg.AnnotationConfiguration;
-import org.jboss.bpm.monitor.model.bpaf.Event;
-import org.jboss.bpm.monitor.model.bpaf.Tuple;
+import org.hibernate.cfg.Configuration;
/**
* @author: Heiko Braun <hbraun at redhat.com>
@@ -38,15 +36,15 @@
static
{
- try {
-
- sessionFactory = new AnnotationConfiguration()
- .addPackage("org.jboss.bpm.monitor.model.bpaf") //the fully qualified package name
- .addAnnotatedClass(Event.class)
- .addAnnotatedClass(Tuple.class)
- //.addAnnotatedClass(State.class)
- .configure().buildSessionFactory();
- } catch (Throwable ex) {
+ try
+ {
+ sessionFactory =
+ new Configuration()
+ .configure()
+ .buildSessionFactory();
+ }
+ catch (Throwable ex)
+ {
// Log exception!
throw new ExceptionInInitializerError(ex);
}
Added: activity-monitor/trunk/model/src/main/java/org/jboss/bpm/monitor/model/StateUserType.java
===================================================================
--- activity-monitor/trunk/model/src/main/java/org/jboss/bpm/monitor/model/StateUserType.java (rev 0)
+++ activity-monitor/trunk/model/src/main/java/org/jboss/bpm/monitor/model/StateUserType.java 2010-03-07 19:25:27 UTC (rev 989)
@@ -0,0 +1,106 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.bpm.monitor.model;
+
+/**
+ * @author: Heiko Braun <hbraun at redhat.com>
+ * @date: Mar 7, 2010
+ */
+import java.io.Serializable;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Types;
+import java.util.Properties;
+
+import org.hibernate.HibernateException;
+import org.hibernate.MappingException;
+import org.hibernate.usertype.ParameterizedType;
+import org.hibernate.usertype.UserType;
+import org.jboss.bpm.monitor.model.bpaf.State;
+
+public class StateUserType implements UserType, ParameterizedType {
+
+ private Class clazz = State.class;
+
+ public void setParameterValues(Properties params) {
+
+ }
+
+ private static final int[] SQL_TYPES = {Types.VARCHAR};
+ public int[] sqlTypes() {
+ return SQL_TYPES;
+ }
+
+ public Class returnedClass() {
+ return clazz;
+ }
+
+ public Object nullSafeGet(ResultSet resultSet, String[] names, Object owner)
+ throws HibernateException, SQLException {
+ String name = resultSet.getString(names[0]);
+ Object result = null;
+ if (!resultSet.wasNull()) {
+ result = State.valueOf(name);
+ }
+ return result;
+ }
+
+ public void nullSafeSet(PreparedStatement preparedStatement, Object value, int index)
+ throws HibernateException, SQLException {
+ if (null == value) {
+ preparedStatement.setNull(index, Types.VARCHAR);
+ } else {
+ preparedStatement.setString(index, ((State)value).toString());
+ }
+ }
+
+ public Object deepCopy(Object value) throws HibernateException{
+ return value;
+ }
+
+ public boolean isMutable() {
+ return false;
+ }
+
+ public Object assemble(Serializable cached, Object owner) throws HibernateException {
+ return cached;
+ }
+
+ public Serializable disassemble(Object value) throws HibernateException {
+ return (Serializable)value;
+ }
+
+ public Object replace(Object original, Object target, Object owner) throws HibernateException {
+ return original;
+ }
+ public int hashCode(Object x) throws HibernateException {
+ return x.hashCode();
+ }
+ public boolean equals(Object x, Object y) throws HibernateException {
+ if (x == y)
+ return true;
+ if (null == x || null == y)
+ return false;
+ return x.equals(y);
+ }
+}
\ No newline at end of file
Modified: activity-monitor/trunk/model/src/main/java/org/jboss/bpm/monitor/model/bpaf/Event.java
===================================================================
--- activity-monitor/trunk/model/src/main/java/org/jboss/bpm/monitor/model/bpaf/Event.java 2010-03-07 11:49:37 UTC (rev 988)
+++ activity-monitor/trunk/model/src/main/java/org/jboss/bpm/monitor/model/bpaf/Event.java 2010-03-07 19:25:27 UTC (rev 989)
@@ -79,7 +79,7 @@
@XmlAttribute(name = "EventID", required = true)
@XmlJavaTypeAdapter(CollapsedStringAdapter.class)
- protected String eventID;
+ protected long eventID;
@XmlAttribute(name = "ServerID")
@XmlJavaTypeAdapter(CollapsedStringAdapter.class)
@@ -194,8 +194,8 @@
* {@link String }
*
*/
- @Id @GeneratedValue(strategy=GenerationType.AUTO)
- public String getEventID() {
+ @Id
+ public long getEventID() {
return eventID;
}
@@ -207,7 +207,7 @@
* {@link String }
*
*/
- public void setEventID(String value) {
+ public void setEventID(long value) {
this.eventID = value;
}
Modified: activity-monitor/trunk/model/src/main/java/org/jboss/bpm/monitor/model/bpaf/Tuple.java
===================================================================
--- activity-monitor/trunk/model/src/main/java/org/jboss/bpm/monitor/model/bpaf/Tuple.java 2010-03-07 11:49:37 UTC (rev 988)
+++ activity-monitor/trunk/model/src/main/java/org/jboss/bpm/monitor/model/bpaf/Tuple.java 2010-03-07 19:25:27 UTC (rev 989)
@@ -21,8 +21,6 @@
*/
package org.jboss.bpm.monitor.model.bpaf;
-import org.hibernate.annotations.GenericGenerator;
-
import javax.persistence.*;
import javax.xml.bind.annotation.*;
@@ -37,11 +35,11 @@
public class Tuple
{
- private String id;
+ private long id;
- private String key;
+ private String name;
private String value;
- private Event event;
+ private Event event;
@ManyToOne( cascade = {CascadeType.PERSIST, CascadeType.MERGE})
@JoinColumn(name="EVENT_ID")
@@ -55,26 +53,25 @@
this.event = event;
}
- @Id @GeneratedValue(generator="system-uuid")
- @GenericGenerator(name="system-uuid", strategy = "uuid")
- public String getId()
+ @Id
+ public long getId()
{
return id;
}
- public void setId(String id)
+ public void setId(long id)
{
this.id = id;
}
- public String getKey()
+ public String getName()
{
- return key;
+ return name;
}
- public void setKey(String key)
+ public void setName(String name)
{
- this.key = key;
+ this.name = name;
}
public String getValue()
Modified: activity-monitor/trunk/model/src/main/resources/hibernate.cfg.xml
===================================================================
--- activity-monitor/trunk/model/src/main/resources/hibernate.cfg.xml 2010-03-07 11:49:37 UTC (rev 988)
+++ activity-monitor/trunk/model/src/main/resources/hibernate.cfg.xml 2010-03-07 19:25:27 UTC (rev 989)
@@ -5,11 +5,8 @@
<hibernate-configuration>
- <!-- a SessionFactory instance listed as /jndi/name -->
- <session-factory
- name="java:hibernate/SessionFactory">
+ <session-factory>
- <!--property name="connection.datasource">java:/comp/env/jdbc/MyDB</property-->
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/bpaf</property>
<property name="hibernate.connection.username">bpaf</property>
<property name="hibernate.connection.password">bpaf</property>
@@ -17,19 +14,10 @@
<property name="show_sql">false</property>
<property name="hibernate.hbm2ddl.auto">create</property>
- <!-- mapping files
- <mapping resource="org/hibernate/auction/Item.hbm.xml"/>
- <mapping resource="org/hibernate/auction/Bid.hbm.xml"/>
- -->
- <!-- cache settings
- <class-cache class="org.hibernate.auction.Item" usage="read-write"/>
- <class-cache class="org.hibernate.auction.Bid" usage="read-only"/>
- <collection-cache collection="org.hibernate.auction.Item.bids" usage="read-write"/>
- -->
+ <mapping resource="org/jboss/bpm/monitor/model/bpaf/BPAF.hbm.xml"/>
-
</session-factory>
</hibernate-configuration>
\ No newline at end of file
Added: activity-monitor/trunk/model/src/main/resources/org/jboss/bpm/monitor/model/bpaf/BPAF.hbm.xml
===================================================================
--- activity-monitor/trunk/model/src/main/resources/org/jboss/bpm/monitor/model/bpaf/BPAF.hbm.xml (rev 0)
+++ activity-monitor/trunk/model/src/main/resources/org/jboss/bpm/monitor/model/bpaf/BPAF.hbm.xml 2010-03-07 19:25:27 UTC (rev 989)
@@ -0,0 +1,65 @@
+<?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 auto-import="false"
+ package="org.jboss.bpm.monitor.model.bpaf" default-access="field">
+
+ <class name="Event" table="BPAF_EVENT">
+
+ <id name="eventID" column="eventID">
+ <generator class="native" />
+ </id>
+
+ <property name="serverID" column="serverID"/>
+
+ <property name="processDefinitionID" column="processDefinitionID"/>
+ <property name="processInstanceID" column="processInstanceID"/>
+ <property name="processName" column="processName" />
+
+ <property name="activityDefinitionID" column="activityDefinitionID"/>
+ <property name="activityInstanceID" column="activityInstanceID"/>
+ <property name="activityName" column="activityName"/>
+
+ <property name="timestamp" column="timestamp"/>
+
+ <component name="eventDetails">
+
+ <property name="currentState" column="currentState">
+ <type name="org.jboss.bpm.monitor.model.StateUserType">
+ <param name="enumClass">org.jboss.bpm.monitor.model.bpaf.State</param>
+ </type>
+ </property>
+ <property name="previousState" column="previousState">
+ <type name="org.jboss.bpm.monitor.model.StateUserType">
+ <param name="enumClass">org.jboss.bpm.monitor.model.bpaf.State</param>
+ </type>
+ </property>
+ </component>
+
+ </class>
+
+ <class name="Tuple" table="BPAF_EVENT_DATA">
+
+ <id name="id" column="id">
+ <generator class="native" />
+ </id>
+
+ <property name="name" column="name"/>
+ <property name="value" column="value"/>
+
+ <many-to-one name="event" class="Event" column="eventID"/>
+ </class>
+
+ <!-- ### QUERIES ######################################################## -->
+
+ <!--query name="findTasks">
+ <![CDATA[
+ select task
+ from org.jbpm.pvm.internal.task.TaskImpl as task
+ ]]>
+ </query-->
+
+</hibernate-mapping>
+
+
\ No newline at end of file
Modified: activity-monitor/trunk/pom.xml
===================================================================
--- activity-monitor/trunk/pom.xml 2010-03-07 11:49:37 UTC (rev 988)
+++ activity-monitor/trunk/pom.xml 2010-03-07 19:25:27 UTC (rev 989)
@@ -117,6 +117,18 @@
</dependency>
<dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-tools</artifactId>
+ <version>3.2.3.GA</version>
+ </dependency>
+
+ <dependency>
+ <groupId>hibernate</groupId>
+ <artifactId>hibernate-entitymanager</artifactId>
+ <version>3.4.0.GA</version>
+ </dependency>
+
+ <dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.5.10</version>
More information about the overlord-commits
mailing list