[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