[jbpm-commits] JBoss JBPM SVN: r6609 - in jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal: id and 1 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Wed Aug 18 06:59:15 EDT 2010


Author: rebody
Date: 2010-08-18 06:59:15 -0400 (Wed, 18 Aug 2010)
New Revision: 6609

Modified:
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/hibernate/DbSessionImpl.java
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/id/InitializePropertiesCmd.java
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/id/PropertyImpl.java
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/session/DbSession.java
Log:
JBPM-2927 move getMaxId() to DbSession.

Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/hibernate/DbSessionImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/hibernate/DbSessionImpl.java	2010-08-18 10:04:59 UTC (rev 6608)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/hibernate/DbSessionImpl.java	2010-08-18 10:59:15 UTC (rev 6609)
@@ -22,6 +22,7 @@
 package org.jbpm.pvm.internal.hibernate;
 
 import java.io.Serializable;
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 
@@ -39,14 +40,23 @@
 import org.jbpm.internal.log.Log;
 import org.jbpm.pvm.internal.client.ClientExecution;
 import org.jbpm.pvm.internal.env.EnvironmentImpl;
+import org.jbpm.pvm.internal.history.model.HistoryActivityInstanceImpl;
+import org.jbpm.pvm.internal.history.model.HistoryDetailImpl;
 import org.jbpm.pvm.internal.history.model.HistoryCommentImpl;
 import org.jbpm.pvm.internal.history.model.HistoryProcessInstanceImpl;
+import org.jbpm.pvm.internal.history.model.HistoryTaskImpl;
+import org.jbpm.pvm.internal.history.model.HistoryVariableImpl;
 import org.jbpm.pvm.internal.id.DbidGenerator;
 import org.jbpm.pvm.internal.id.PropertyImpl;
+import org.jbpm.pvm.internal.identity.impl.GroupImpl;
+import org.jbpm.pvm.internal.identity.impl.MembershipImpl;
+import org.jbpm.pvm.internal.identity.impl.UserImpl;
 import org.jbpm.pvm.internal.job.JobImpl;
+import org.jbpm.pvm.internal.lob.Lob;
 import org.jbpm.pvm.internal.job.StartProcessTimer;
 import org.jbpm.pvm.internal.job.TimerImpl;
 import org.jbpm.pvm.internal.model.ExecutionImpl;
+import org.jbpm.pvm.internal.processengine.ProcessEngineImpl;
 import org.jbpm.pvm.internal.query.DeploymentQueryImpl;
 import org.jbpm.pvm.internal.query.HistoryActivityInstanceQueryImpl;
 import org.jbpm.pvm.internal.query.HistoryDetailQueryImpl;
@@ -54,8 +64,13 @@
 import org.jbpm.pvm.internal.query.JobQueryImpl;
 import org.jbpm.pvm.internal.query.ProcessInstanceQueryImpl;
 import org.jbpm.pvm.internal.query.TaskQueryImpl;
+import org.jbpm.pvm.internal.repository.DeploymentImpl;
+import org.jbpm.pvm.internal.repository.DeploymentProperty;
 import org.jbpm.pvm.internal.session.DbSession;
+import org.jbpm.pvm.internal.task.ParticipationImpl;
+import org.jbpm.pvm.internal.task.SwimlaneImpl;
 import org.jbpm.pvm.internal.task.TaskImpl;
+import org.jbpm.pvm.internal.type.Variable;
 import org.jbpm.pvm.internal.util.Clock;
 import org.jbpm.pvm.internal.util.CollectionUtil;
 
@@ -422,4 +437,97 @@
       return false;
     }
   }
+
+  /** property. */
+  public Long initializeNextId(long blocksize) {
+    PropertyImpl property = (PropertyImpl) session.createQuery(
+        "select property " +
+        "from " + PropertyImpl.class.getName() + " as property " +
+        "where property.key = '" + PropertyImpl.NEXT_DBID_KEY + "'"
+    ).uniqueResult();
+
+    Long nextId;
+    if (property == null) {
+      nextId = getMaxDbid();
+      nextId++;
+      property = new PropertyImpl(PropertyImpl.NEXT_DBID_KEY, Long.toString(nextId + blocksize));
+      session.save(property);
+
+    } else {
+      String nextIdText = property.getValue();
+      nextId = new Long(nextIdText);
+      property.setValue(Long.toString(nextId.longValue() + blocksize));
+      session.update(property);
+    }
+
+    return nextId;
+  }
+
+  public Long getMaxDbid() {
+    Long nextId = 0L;
+
+    List<String> persistedTypes = new ArrayList<String>();
+    persistedTypes.add(DeploymentImpl.class.getName());
+    persistedTypes.add(DeploymentProperty.class.getName());
+    persistedTypes.add(ExecutionImpl.class.getName());
+    persistedTypes.add(GroupImpl.class.getName());
+    persistedTypes.add(HistoryActivityInstanceImpl.class.getName());
+    persistedTypes.add(HistoryDetailImpl.class.getName());
+    persistedTypes.add(HistoryTaskImpl.class.getName());
+    persistedTypes.add(HistoryVariableImpl.class.getName());
+    persistedTypes.add(JobImpl.class.getName());
+    persistedTypes.add(Lob.class.getName());
+    persistedTypes.add(MembershipImpl.class.getName());
+    persistedTypes.add(ParticipationImpl.class.getName());
+    persistedTypes.add(PropertyImpl.class.getName());
+    persistedTypes.add(SwimlaneImpl.class.getName());
+    persistedTypes.add(TaskImpl.class.getName());
+    persistedTypes.add(UserImpl.class.getName());
+    persistedTypes.add(Variable.class.getName());
+
+    for (String persistedType: persistedTypes) {
+      try {
+        Long maxDbid = (Long) session.createQuery(
+                "select max(object.dbid) " +
+                "from " + persistedType + " as object"
+            ).uniqueResult();
+
+        if ( (maxDbid != null)
+             && (maxDbid.longValue() > nextId)
+           ) {
+          nextId = maxDbid.longValue();
+        }
+      } catch (Exception e) {
+        log.info("couldn't get max dbid for " + persistedType);
+      }
+    }
+    return nextId;
+  }
+
+
+  public void initializeSchemaVersion() {
+    PropertyImpl property = (PropertyImpl) session.createQuery(
+        "select property " +
+        "from " + PropertyImpl.class.getName() + " as property " +
+        "where property.key = '" + PropertyImpl.DB_VERSION_KEY + "'"
+    ).uniqueResult();
+
+    if (log.isDebugEnabled()) {
+      log.debug("version of jbpm library: " + ProcessEngineImpl.JBPM_LIBRARY_VERSION);
+    }
+
+    if (property == null) {
+      log.info("version of jbpm db schema: none");
+
+    } else {
+      String dbSchemaVersion = property.getValue();
+      if (log.isDebugEnabled()) {
+        log.debug("version of jbpm db schema: " + dbSchemaVersion);
+      }
+      if (!ProcessEngineImpl.JBPM_LIBRARY_VERSION.equals(dbSchemaVersion)) {
+        throw new JbpmException("jBPM runtime version " + ProcessEngineImpl.JBPM_LIBRARY_VERSION
+          + " doesn't match with DB schema, which is version ");
+      }
+    }
+  }
 }

Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/id/InitializePropertiesCmd.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/id/InitializePropertiesCmd.java	2010-08-18 10:04:59 UTC (rev 6608)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/id/InitializePropertiesCmd.java	2010-08-18 10:59:15 UTC (rev 6609)
@@ -24,7 +24,6 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import org.hibernate.Session;
 import org.jbpm.api.JbpmException;
 import org.jbpm.api.cmd.Command;
 import org.jbpm.api.cmd.Environment;
@@ -42,6 +41,7 @@
 import org.jbpm.pvm.internal.processengine.ProcessEngineImpl;
 import org.jbpm.pvm.internal.repository.DeploymentImpl;
 import org.jbpm.pvm.internal.repository.DeploymentProperty;
+import org.jbpm.pvm.internal.session.DbSession;
 import org.jbpm.pvm.internal.task.ParticipationImpl;
 import org.jbpm.pvm.internal.task.SwimlaneImpl;
 import org.jbpm.pvm.internal.task.TaskImpl;
@@ -56,108 +56,21 @@
   private static final long serialVersionUID = 1L;
 
   private static Log log = Log.getLog(InitializePropertiesCmd.class.getName());
-  
+
   long blocksize;
-  
+
   public InitializePropertiesCmd(long blocksize) {
     this.blocksize = blocksize;
   }
 
   public Long execute(Environment environment) throws Exception {
-    Session session = environment.get(Session.class);
-    
-    Long nextId = initializeNextId(session);
-    initializeSchemaVersion(session);
-    
-    session.flush();
+	DbSession dbSession = environment.get(DbSession.class);
 
-    return nextId;
-  }
+    Long nextId = dbSession.initializeNextId(blocksize);
+    dbSession.initializeSchemaVersion();
 
-  void initializeSchemaVersion(Session session) {
-    PropertyImpl property = (PropertyImpl) session.createQuery(
-        "select property " +
-        "from "+PropertyImpl.class.getName()+" as property " +
-        "where property.key = '"+PropertyImpl.DB_VERSION_KEY+"'"
-    ).uniqueResult();
+    dbSession.flush();
 
-    log.debug("version of jbpm library: "+ProcessEngineImpl.JBPM_LIBRARY_VERSION);
-
-    if (property==null) {
-      log.info("version of jbpm db schema: none");
-      
-    } else {
-      String dbSchemaVersion = property.getValue();
-      log.debug("version of jbpm db schema: "+dbSchemaVersion);
-      if (!ProcessEngineImpl.JBPM_LIBRARY_VERSION.equals(dbSchemaVersion)) {
-        throw new JbpmException("jBPM runtime version "+ProcessEngineImpl.JBPM_LIBRARY_VERSION+" doesn't match with DB schema, which is version ");
-      }
-    }
-  }
-
-  Long initializeNextId(Session session) {
-    PropertyImpl property = (PropertyImpl) session.createQuery(
-        "select property " +
-        "from "+PropertyImpl.class.getName()+" as property " +
-        "where property.key = '"+PropertyImpl.NEXT_DBID_KEY+"'"
-    ).uniqueResult();
-    
-    Long nextId;
-    if (property==null) {
-      nextId = getMaxDbid(session);
-      nextId++;
-      property = new PropertyImpl(PropertyImpl.NEXT_DBID_KEY, Long.toString(nextId+blocksize));
-      session.save(property);
-      
-    } else {
-      String nextIdText = property.getValue();
-      nextId = new Long(nextIdText);
-      property.setValue(Long.toString(nextId.longValue()+blocksize));
-      session.update(property);
-    }
-    
     return nextId;
   }
-
-  private Long getMaxDbid(Session session) {
-    Long nextId;
-    nextId = 0L;
-    
-    List<String> persistedTypes = new ArrayList<String>();
-    persistedTypes.add(DeploymentImpl.class.getName());
-    persistedTypes.add(DeploymentProperty.class.getName());
-    persistedTypes.add(ExecutionImpl.class.getName());
-    persistedTypes.add(GroupImpl.class.getName());
-    persistedTypes.add(HistoryActivityInstanceImpl.class.getName());
-    persistedTypes.add(HistoryDetailImpl.class.getName());
-    persistedTypes.add(HistoryTaskImpl.class.getName());
-    persistedTypes.add(HistoryVariableImpl.class.getName());
-    persistedTypes.add(JobImpl.class.getName());
-    persistedTypes.add(Lob.class.getName());
-    persistedTypes.add(MembershipImpl.class.getName());
-    persistedTypes.add(ParticipationImpl.class.getName());
-    persistedTypes.add(PropertyImpl.class.getName());
-    persistedTypes.add(SwimlaneImpl.class.getName());
-    persistedTypes.add(TaskImpl.class.getName());
-    persistedTypes.add(UserImpl.class.getName());
-    persistedTypes.add(Variable.class.getName());
-    
-    for (String persistedType: persistedTypes) {
-      try {
-        Long maxDbid = (Long) session.createQuery(
-                "select max(object.dbid) " +
-                "from "+persistedType+" as object"
-            ).uniqueResult();
-        
-        if ( (maxDbid!=null)
-             && (maxDbid.longValue()>nextId) 
-           ) {
-          nextId = maxDbid.longValue();
-        }
-      } catch (Exception e) {
-        log.info("couldn't get max dbid for "+persistedType);
-      }
-    }
-    return nextId;
-  }
 }

Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/id/PropertyImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/id/PropertyImpl.java	2010-08-18 10:04:59 UTC (rev 6608)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/id/PropertyImpl.java	2010-08-18 10:59:15 UTC (rev 6609)
@@ -27,6 +27,7 @@
 import org.hibernate.Session;
 
 import org.jbpm.internal.log.Log;
+import org.jbpm.pvm.internal.env.EnvironmentImpl;
 import org.jbpm.pvm.internal.history.model.HistoryActivityInstanceImpl;
 import org.jbpm.pvm.internal.history.model.HistoryDetailImpl;
 import org.jbpm.pvm.internal.history.model.HistoryTaskImpl;
@@ -40,6 +41,7 @@
 import org.jbpm.pvm.internal.processengine.ProcessEngineImpl;
 import org.jbpm.pvm.internal.repository.DeploymentImpl;
 import org.jbpm.pvm.internal.repository.DeploymentProperty;
+import org.jbpm.pvm.internal.session.DbSession;
 import org.jbpm.pvm.internal.task.ParticipationImpl;
 import org.jbpm.pvm.internal.task.SwimlaneImpl;
 import org.jbpm.pvm.internal.task.TaskImpl;
@@ -102,55 +104,14 @@
   }
 
   public static void initializeNextDbid(Session session) {
-    long nextDbid = getMaxDbid(session) + 1;
+    DbSession dbSession = EnvironmentImpl.getFromCurrent(DbSession.class);
+    long nextDbid = dbSession.getMaxDbid() + 1;
     setNextDbid(session, nextDbid);
     if (log.isInfoEnabled()) {
       log.info("nextDbid is initialized to " + nextDbid);
     }
   }
 
-  protected static long getMaxDbid(Session session) {
-    long maxDbid = 0;
-
-    List<String> persistedTypes = new ArrayList<String>();
-    persistedTypes.add(DeploymentImpl.class.getName());
-    persistedTypes.add(DeploymentProperty.class.getName());
-    persistedTypes.add(ExecutionImpl.class.getName());
-    persistedTypes.add(GroupImpl.class.getName());
-    persistedTypes.add(HistoryActivityInstanceImpl.class.getName());
-    persistedTypes.add(HistoryDetailImpl.class.getName());
-    persistedTypes.add(HistoryTaskImpl.class.getName());
-    persistedTypes.add(HistoryVariableImpl.class.getName());
-    persistedTypes.add(JobImpl.class.getName());
-    persistedTypes.add(Lob.class.getName());
-    persistedTypes.add(MembershipImpl.class.getName());
-    persistedTypes.add(ParticipationImpl.class.getName());
-    persistedTypes.add(SwimlaneImpl.class.getName());
-    persistedTypes.add(TaskImpl.class.getName());
-    persistedTypes.add(UserImpl.class.getName());
-    persistedTypes.add(Variable.class.getName());
-
-    for (String persistedType: persistedTypes) {
-      try {
-        Long typeMaxDbid = (Long) session.createQuery(
-                "select max(o.dbid) " +
-                "from " + persistedType + " as o"
-            ).uniqueResult();
-
-        if ( (typeMaxDbid!=null)
-             && (typeMaxDbid.longValue()>maxDbid)
-           ) {
-          maxDbid = typeMaxDbid.longValue();
-        }
-      } catch (Exception e) {
-        log.info("couldn't get max dbid for " + persistedType, e);
-        e.printStackTrace();
-      }
-    }
-
-    return maxDbid;
-  }
-
   protected static String getPropertyValue(Session session, String propertyKey) {
     PropertyImpl dbidProperty = getProperty(session, propertyKey);
     if (dbidProperty == null) {

Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/session/DbSession.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/session/DbSession.java	2010-08-18 10:04:59 UTC (rev 6608)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/session/DbSession.java	2010-08-18 10:59:15 UTC (rev 6609)
@@ -116,4 +116,9 @@
   /** check table. */
   boolean executionTableExists();
   boolean propertiesTableExists();
+
+  /** property. */
+  Long initializeNextId(long blocksize);
+  void initializeSchemaVersion();
+  Long getMaxDbid();
 }



More information about the jbpm-commits mailing list