[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