[jbpm-commits] JBoss JBPM SVN: r5716 - in jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal: history/model and 1 other directories.
do-not-reply at jboss.org
do-not-reply at jboss.org
Wed Oct 7 18:49:40 EDT 2009
Author: koen.aers at jboss.com
Date: 2009-10-07 18:49:40 -0400 (Wed, 07 Oct 2009)
New Revision: 5716
Added:
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/history/events/ProcessInstanceMigration.java
Modified:
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/history/model/HistoryProcessInstanceImpl.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/migration/InstanceMigrator.java
Log:
use HistoryEvent.fire() instead of manually adding details to HistoryProcessInstance
Added: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/history/events/ProcessInstanceMigration.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/history/events/ProcessInstanceMigration.java (rev 0)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/history/events/ProcessInstanceMigration.java 2009-10-07 22:49:40 UTC (rev 5716)
@@ -0,0 +1,71 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt 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.jbpm.pvm.internal.history.events;
+
+import org.jbpm.api.ProcessDefinition;
+import org.jbpm.api.ProcessInstance;
+import org.jbpm.pvm.internal.env.EnvironmentImpl;
+import org.jbpm.pvm.internal.history.HistoryEvent;
+import org.jbpm.pvm.internal.history.model.HistoryProcessInstanceImpl;
+import org.jbpm.pvm.internal.history.model.HistoryProcessInstanceMigrationImpl;
+import org.jbpm.pvm.internal.model.ExecutionImpl;
+import org.jbpm.pvm.internal.session.DbSession;
+
+
+/**
+ * @author Koen Aers
+ */
+public class ProcessInstanceMigration extends HistoryEvent {
+
+ private static final long serialVersionUID = 1L;
+
+ ProcessInstance processInstance;
+ ProcessDefinition processDefinition;
+
+ public ProcessInstanceMigration(ProcessInstance processInstance, ProcessDefinition processDefinition) {
+ this.processInstance = processInstance;
+ this.processDefinition = processDefinition;
+ }
+
+ public void process() {
+
+ if (processDefinition == null || processInstance == null || !(processInstance instanceof ExecutionImpl)) return;
+
+ DbSession dbSession = EnvironmentImpl.getFromCurrent(DbSession.class);
+
+ HistoryProcessInstanceImpl historyProcessInstance = null;
+ long processInstanceDbid = ((ExecutionImpl)processInstance).getDbid();
+ historyProcessInstance = (HistoryProcessInstanceImpl)dbSession.get(HistoryProcessInstanceImpl.class, processInstanceDbid);
+ if (historyProcessInstance == null) return;
+
+ String oldVersion = historyProcessInstance.getProcessDefinitionId();
+ String newVersion = processDefinition.getId();
+
+ historyProcessInstance.setProcessDefinitionId(newVersion);
+ HistoryProcessInstanceMigrationImpl historyProcessInstanceMigration =
+ new HistoryProcessInstanceMigrationImpl(oldVersion, newVersion);
+ historyProcessInstance.addDetail(historyProcessInstanceMigration);
+
+
+ dbSession.save(historyProcessInstanceMigration);
+ }
+}
Property changes on: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/history/events/ProcessInstanceMigration.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/history/model/HistoryProcessInstanceImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/history/model/HistoryProcessInstanceImpl.java 2009-10-07 22:48:36 UTC (rev 5715)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/history/model/HistoryProcessInstanceImpl.java 2009-10-07 22:49:40 UTC (rev 5716)
@@ -64,7 +64,6 @@
public void addDetail(HistoryDetailImpl detail) {
- details.add(detail);
detail.setHistoryProcessInstance(this, nextDetailIndex);
nextDetailIndex++;
}
@@ -112,11 +111,14 @@
public String getState() {
return state;
}
+ public void setState(String state) {
+ this.state = state;
+ }
public String getProcessDefinitionId() {
return processDefinitionId;
}
- public void setState(String state) {
- this.state = state;
+ public void setProcessDefinitionId(String processDefinitionId) {
+ this.processDefinitionId = processDefinitionId;
}
public String getEndActivityName() {
return endActivityName;
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/migration/InstanceMigrator.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/migration/InstanceMigrator.java 2009-10-07 22:48:36 UTC (rev 5715)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/migration/InstanceMigrator.java 2009-10-07 22:49:40 UTC (rev 5716)
@@ -4,15 +4,13 @@
import org.jbpm.api.Execution;
import org.jbpm.api.ExecutionService;
-import org.jbpm.api.HistoryService;
import org.jbpm.api.ProcessDefinition;
import org.jbpm.api.ProcessDefinitionQuery;
import org.jbpm.api.ProcessInstance;
import org.jbpm.api.ProcessInstanceQuery;
-import org.jbpm.api.history.HistoryProcessInstance;
import org.jbpm.pvm.internal.env.EnvironmentImpl;
-import org.jbpm.pvm.internal.history.model.HistoryProcessInstanceImpl;
-import org.jbpm.pvm.internal.history.model.HistoryProcessInstanceMigrationImpl;
+import org.jbpm.pvm.internal.history.HistoryEvent;
+import org.jbpm.pvm.internal.history.events.ProcessInstanceMigration;
import org.jbpm.pvm.internal.model.Activity;
import org.jbpm.pvm.internal.model.ExecutionImpl;
import org.jbpm.pvm.internal.model.ProcessDefinitionImpl;
@@ -39,7 +37,7 @@
migrateExecutions(processDefinition, processInstance, migrationDescriptor);
// migrateSwimlanes(processInstance, migrationDescriptor);
// migrateVariables(processInstance, migrationDescriptor);
- logMigration(processInstance, processDefinition.getVersion());
+ logMigration(processInstance, processDefinition);
}
private static void migrateExecutions(ProcessDefinition processDefinition, Execution execution, MigrationDescriptor migrationDescriptor) {
@@ -61,14 +59,9 @@
}
}
- private static void logMigration(ProcessInstance processInstance, int lastVersion) {
- HistoryService historyService = (HistoryService)EnvironmentImpl.getFromCurrent(HistoryService.class);
- HistoryProcessInstance historyProcessInstance = historyService
- .createHistoryProcessInstanceQuery()
- .processInstanceId(processInstance.getId())
- .uniqueResult();
- if (!(historyProcessInstance instanceof HistoryProcessInstanceImpl)) return;
- ((HistoryProcessInstanceImpl)historyProcessInstance).addDetail(new HistoryProcessInstanceMigrationImpl(lastVersion - 1, lastVersion));
+ private static void logMigration(ProcessInstance processInstance, ProcessDefinition processDefinition) {
+ ProcessInstanceMigration processInstanceMigrate = new ProcessInstanceMigration(processInstance, processDefinition);
+ HistoryEvent.fire(processInstanceMigrate);
}
private static String getOldVersionId(String processDefinitionName) {
More information about the jbpm-commits
mailing list