You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ode.apache.org by sa...@apache.org on 2015/11/06 11:51:01 UTC
[06/30] ode git commit: retire previous processes
retire previous processes
Project: http://git-wip-us.apache.org/repos/asf/ode/repo
Commit: http://git-wip-us.apache.org/repos/asf/ode/commit/b4cd9a48
Tree: http://git-wip-us.apache.org/repos/asf/ode/tree/b4cd9a48
Diff: http://git-wip-us.apache.org/repos/asf/ode/diff/b4cd9a48
Branch: refs/heads/ODE-563
Commit: b4cd9a483bce77070cb21231296ad89c3e8b4593
Parents: 0b19e7e
Author: suba <su...@cse.mrt.ac.lk>
Authored: Mon Jun 15 00:19:23 2015 +0530
Committer: suba <su...@cse.mrt.ac.lk>
Committed: Mon Jun 15 00:19:23 2015 +0530
----------------------------------------------------------------------
.../ode/store/ClusterProcessStoreImpl.java | 37 +++++++++++++++-----
.../org/apache/ode/store/ProcessStoreImpl.java | 4 +++
2 files changed, 33 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ode/blob/b4cd9a48/bpel-store/src/main/java/org/apache/ode/store/ClusterProcessStoreImpl.java
----------------------------------------------------------------------
diff --git a/bpel-store/src/main/java/org/apache/ode/store/ClusterProcessStoreImpl.java b/bpel-store/src/main/java/org/apache/ode/store/ClusterProcessStoreImpl.java
index f364fb7..7f79a8b 100644
--- a/bpel-store/src/main/java/org/apache/ode/store/ClusterProcessStoreImpl.java
+++ b/bpel-store/src/main/java/org/apache/ode/store/ClusterProcessStoreImpl.java
@@ -20,6 +20,8 @@ package org.apache.ode.store;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.ode.bpel.iapi.ProcessConf;
+import org.apache.ode.bpel.iapi.ProcessState;
import org.apache.ode.clustering.hazelcast.HazelcastClusterImpl;
import org.apache.ode.bpel.iapi.EndpointReferenceContext;
import org.apache.ode.il.config.OdeConfigProperties;
@@ -27,9 +29,7 @@ import org.apache.ode.il.config.OdeConfigProperties;
import javax.sql.DataSource;
import javax.xml.namespace.QName;
import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Collection;
+import java.util.*;
import com.hazelcast.core.*;
@@ -39,6 +39,8 @@ public class ClusterProcessStoreImpl extends ProcessStoreImpl{
private HazelcastInstance _hazelcastInstance;
private Member deployInitiator;
private ITopic<String> clusterMessageTopic;
+ private final ArrayList<ProcessConfImpl> loaded = new ArrayList<ProcessConfImpl>();
+
public ClusterProcessStoreImpl(EndpointReferenceContext eprContext, DataSource ds, String persistenceType, OdeConfigProperties props, boolean createDatamodel, HazelcastClusterImpl hazelcastClusterImpl) {
super(eprContext,ds,persistenceType,props,createDatamodel);
@@ -51,6 +53,10 @@ public class ClusterProcessStoreImpl extends ProcessStoreImpl{
public Collection<QName> deploy(final File deploymentUnitDirectory) {
Collection<QName> deployed = super.deploy(deploymentUnitDirectory);
+ Map<QName, ProcessConfImpl> _processes = getProcessesMap();
+ for (QName key :_processes.keySet()) {
+ if(!loaded.contains(_processes.get(key))) loaded.add(_processes.get(key));
+ }
publishProcessStoreDeployedEvent(deploymentUnitDirectory.getName());
return deployed;
}
@@ -60,14 +66,29 @@ public class ClusterProcessStoreImpl extends ProcessStoreImpl{
clusterMessageTopic.publish("Deployed " +duName);
}
+ //have to write code for retire previous versions
public void publishService(final String duName) {
- final ArrayList<ProcessConfImpl> loaded = new ArrayList<ProcessConfImpl>();
+ final ArrayList<ProcessConfImpl> confs = new ArrayList<ProcessConfImpl>();
+ String namePart = duName.split("-")[0];
+ ProcessState state = ProcessState.ACTIVE;
+
+ for (Iterator<ProcessConfImpl> iterator = loaded.iterator(); iterator.hasNext();) {
+ ProcessConfImpl pconf = iterator.next();
+ if (pconf.getPackage().contains(namePart) && pconf.getState().equals(state)) {
+ pconf.setState(ProcessState.RETIRED);
+ confs.add(pconf);
+ }
+ }
+
try {
exec(new Callable<Object>() {
public Object call(ConfStoreConnection conn) {
DeploymentUnitDAO dudao = conn.getDeploymentUnit(duName);
if (dudao != null) {
- loaded.addAll(load(dudao));
+ List<ProcessConfImpl> load = load(dudao);
+ loaded.addAll(load);
+ confs.addAll(load);
+
}
return null;
}
@@ -76,13 +97,14 @@ public class ClusterProcessStoreImpl extends ProcessStoreImpl{
__log.error("Error loading DU from store: " + duName, ex);
}
- for (ProcessConfImpl p : loaded) {
+ for (ProcessConfImpl p : confs) {
try {
fireStateChange(p.getProcessId(), p.getState(), p.getDeploymentUnit().getName());
} catch (Exception except) {
__log.error("Error while activating process: pid=" + p.getProcessId() + " package="+p.getDeploymentUnit().getName(), except);
}
}
+ //loadAll();
}
class ClusterMessageListener implements MessageListener<String> {
@@ -96,9 +118,8 @@ public class ClusterProcessStoreImpl extends ProcessStoreImpl{
__log.info("Receive deployment msg to " +_hazelcastInstance.getCluster().getLocalMember() +" for " +duName);
publishService(duName);
}
+ else deployInitiator = null;
}
}
}
-
-
}
http://git-wip-us.apache.org/repos/asf/ode/blob/b4cd9a48/bpel-store/src/main/java/org/apache/ode/store/ProcessStoreImpl.java
----------------------------------------------------------------------
diff --git a/bpel-store/src/main/java/org/apache/ode/store/ProcessStoreImpl.java b/bpel-store/src/main/java/org/apache/ode/store/ProcessStoreImpl.java
index 1a99ef6..d6f76f3 100644
--- a/bpel-store/src/main/java/org/apache/ode/store/ProcessStoreImpl.java
+++ b/bpel-store/src/main/java/org/apache/ode/store/ProcessStoreImpl.java
@@ -899,4 +899,8 @@ public class ProcessStoreImpl implements ProcessStore {
}
}
}
+
+ protected Map<QName, ProcessConfImpl> getProcessesMap() {
+ return _processes;
+ }
}