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:13 UTC
[18/30] ode git commit: fixed errors with instance lock manager
fixed errors with instance lock manager
Project: http://git-wip-us.apache.org/repos/asf/ode/repo
Commit: http://git-wip-us.apache.org/repos/asf/ode/commit/f1f9f3f1
Tree: http://git-wip-us.apache.org/repos/asf/ode/tree/f1f9f3f1
Diff: http://git-wip-us.apache.org/repos/asf/ode/diff/f1f9f3f1
Branch: refs/heads/ODE-563
Commit: f1f9f3f1ebd87c988fa390c532dd5d7818760fdc
Parents: 4a101a4
Author: suba <su...@cse.mrt.ac.lk>
Authored: Thu Jul 9 10:02:09 2015 +0530
Committer: suba <su...@cse.mrt.ac.lk>
Committed: Thu Jul 9 10:02:09 2015 +0530
----------------------------------------------------------------------
.../ode/bpel/AbstractInstanceLockManager.java | 38 +++++++++++++++++++
.../apache/ode/bpel/clapi/ClusterManager.java | 6 ++-
.../engine/AbstractInstanceLockManager.java | 38 -------------------
.../apache/ode/bpel/engine/BpelEngineImpl.java | 39 ++++++--------------
.../ode/bpel/engine/InstanceLockManager.java | 10 ++---
.../hazelcast/HazelcastClusterImpl.java | 1 +
.../hazelcast/HazelcastDeploymentLock.java | 3 ++
.../hazelcast/HazelcastInstanceLock.java | 6 ++-
8 files changed, 65 insertions(+), 76 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ode/blob/f1f9f3f1/bpel-api/src/main/java/org/apache/ode/bpel/AbstractInstanceLockManager.java
----------------------------------------------------------------------
diff --git a/bpel-api/src/main/java/org/apache/ode/bpel/AbstractInstanceLockManager.java b/bpel-api/src/main/java/org/apache/ode/bpel/AbstractInstanceLockManager.java
new file mode 100644
index 0000000..7a34b2c
--- /dev/null
+++ b/bpel-api/src/main/java/org/apache/ode/bpel/AbstractInstanceLockManager.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.ode.bpel;
+
+import java.util.concurrent.TimeUnit;
+
+/**
+ * Abstract class to implement an instance lock manager. Instance lock provide process instance isolation from
+ * concurrent access when entering jacob
+ */
+public abstract class AbstractInstanceLockManager {
+ abstract public void unlock(Long iid);
+
+ abstract public void lock(Long iid, int i, TimeUnit microseconds) throws InterruptedException,
+ TimeoutException;
+
+ /** Exception class indicating a time-out occured while obtaining a lock. */
+ public static final class TimeoutException extends Exception {
+ private static final long serialVersionUID = 7247629086692580285L;
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ode/blob/f1f9f3f1/bpel-api/src/main/java/org/apache/ode/bpel/clapi/ClusterManager.java
----------------------------------------------------------------------
diff --git a/bpel-api/src/main/java/org/apache/ode/bpel/clapi/ClusterManager.java b/bpel-api/src/main/java/org/apache/ode/bpel/clapi/ClusterManager.java
index 25110b4..4616126 100644
--- a/bpel-api/src/main/java/org/apache/ode/bpel/clapi/ClusterManager.java
+++ b/bpel-api/src/main/java/org/apache/ode/bpel/clapi/ClusterManager.java
@@ -18,8 +18,9 @@
*/
package org.apache.ode.bpel.clapi;
+import org.apache.ode.bpel.AbstractInstanceLockManager;
+
import java.io.File;
-import org.apache.ode.bpel.engine.AbstractInstnaceLockManager;
public interface ClusterManager {
@@ -58,5 +59,6 @@ public interface ClusterManager {
void registerClusterProcessStoreMessageListener();
ClusterLock getDeploymentLock();
- org.apache.ode.bpel.engine.AbstractInstanceLockManager getInstanceLock();
+
+ AbstractInstanceLockManager getInstanceLock();
}
http://git-wip-us.apache.org/repos/asf/ode/blob/f1f9f3f1/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/AbstractInstanceLockManager.java
----------------------------------------------------------------------
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/AbstractInstanceLockManager.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/AbstractInstanceLockManager.java
deleted file mode 100644
index a534e11..0000000
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/AbstractInstanceLockManager.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.ode.bpel.engine;
-
-import java.util.concurrent.TimeUnit;
-
-/**
- * Abstract class to implement an instance lock manager. Instance lock provide process instance isolation from
- * concurrent access when entering jacob
- */
-public abstract class AbstractInstanceLockManager {
- abstract void unlock(Long iid);
-
- abstract void lock(Long iid, int i, TimeUnit microseconds) throws InterruptedException,
- TimeoutException;
-
- /** Exception class indicating a time-out occured while obtaining a lock. */
- public static final class TimeoutException extends Exception {
- private static final long serialVersionUID = 7247629086692580285L;
- }
-}
http://git-wip-us.apache.org/repos/asf/ode/blob/f1f9f3f1/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelEngineImpl.java
----------------------------------------------------------------------
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelEngineImpl.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelEngineImpl.java
index 5bef134..e278c7d 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelEngineImpl.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelEngineImpl.java
@@ -19,42 +19,19 @@
package org.apache.ode.bpel.engine;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Random;
-import java.util.concurrent.TimeUnit;
-
-import javax.wsdl.Operation;
-import javax.wsdl.PortType;
-import javax.xml.namespace.QName;
-
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.ode.bpel.AbstractInstanceLockManager;
import org.apache.ode.bpel.dao.MessageExchangeDAO;
import org.apache.ode.bpel.dao.ProcessDAO;
import org.apache.ode.bpel.dao.ProcessInstanceDAO;
import org.apache.ode.bpel.evt.BpelEvent;
-import org.apache.ode.bpel.iapi.BpelEngine;
-import org.apache.ode.bpel.iapi.BpelEngineException;
-import org.apache.ode.bpel.iapi.ContextException;
-import org.apache.ode.bpel.iapi.Endpoint;
-import org.apache.ode.bpel.iapi.Message;
-import org.apache.ode.bpel.iapi.MessageExchange;
-import org.apache.ode.bpel.iapi.OdeGlobalConfig;
-import org.apache.ode.bpel.iapi.MyRoleMessageExchange;
-import org.apache.ode.bpel.iapi.PartnerRoleMessageExchange;
-import org.apache.ode.bpel.iapi.ProcessState;
-import org.apache.ode.bpel.iapi.Scheduler;
+import org.apache.ode.bpel.iapi.*;
import org.apache.ode.bpel.iapi.MessageExchange.FailureType;
import org.apache.ode.bpel.iapi.MessageExchange.MessageExchangePattern;
import org.apache.ode.bpel.iapi.MessageExchange.Status;
import org.apache.ode.bpel.iapi.MyRoleMessageExchange.CorrelationStatus;
import org.apache.ode.bpel.iapi.Scheduler.JobDetails;
-import org.apache.ode.bpel.iapi.Scheduler.JobInfo;
import org.apache.ode.bpel.iapi.Scheduler.JobType;
import org.apache.ode.bpel.intercept.InterceptorInvoker;
import org.apache.ode.bpel.intercept.MessageExchangeInterceptor;
@@ -70,6 +47,12 @@ import org.apache.ode.utils.msg.MessageBundle;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
+import javax.wsdl.Operation;
+import javax.wsdl.PortType;
+import javax.xml.namespace.QName;
+import java.util.*;
+import java.util.concurrent.TimeUnit;
+
/**
* Implementation of the {@link BpelEngine} interface: provides the server methods that should be invoked in the context of a
* transaction.
@@ -115,7 +98,7 @@ public class BpelEngineImpl implements BpelEngine {
private SharedEndpoints _sharedEps;
/** Manage instance-level locks. */
- private AbstractInstanceLockManager _instanceLockManager;
+ private AbstractInstanceLockManager _instanceLockManager;
final Contexts _contexts;
@@ -127,7 +110,6 @@ public class BpelEngineImpl implements BpelEngine {
if(_contexts.clusterManager != null) {
_instanceLockManager = _contexts.clusterManager.getInstanceLock();
}
-
else _instanceLockManager = new InstanceLockManager();
_sharedEps = new SharedEndpoints();
_sharedEps.init();
@@ -435,7 +417,8 @@ public class BpelEngineImpl implements BpelEngine {
// Note that we don't want to wait too long here to get our lock, since we are likely holding
// on to scheduler's locks of various sorts.
try {
- _instanceLockManager.lock(iid, 1, TimeUnit.MICROSECONDS);
+ _instanceLockManager.
+ lock(iid, 1, TimeUnit.MICROSECONDS);
_contexts.scheduler.registerSynchronizer(new Scheduler.Synchronizer() {
public void afterCompletion(boolean success) {
_instanceLockManager.unlock(iid);
http://git-wip-us.apache.org/repos/asf/ode/blob/f1f9f3f1/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/InstanceLockManager.java
----------------------------------------------------------------------
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/InstanceLockManager.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/InstanceLockManager.java
index 652d2ec..dba127b 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/InstanceLockManager.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/InstanceLockManager.java
@@ -20,6 +20,7 @@ package org.apache.ode.bpel.engine;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.ode.bpel.AbstractInstanceLockManager;
import java.util.HashMap;
import java.util.Map;
@@ -40,7 +41,7 @@ public class InstanceLockManager extends AbstractInstanceLockManager {
private static final Log __log = LogFactory.getLog(InstanceLockManager.class);
private final Lock _mutex = new java.util.concurrent.locks.ReentrantLock();
- private final Map<Long, InstanceInfo> _locks = new HashMap<Long,InstanceInfo> ();
+ private final Map<Long, InstanceInfo> _locks = new HashMap<Long,InstanceInfo>();
public void lock(Long iid, int time, TimeUnit tu) throws InterruptedException, TimeoutException {
if (iid == null) return;
@@ -135,9 +136,6 @@ public class InstanceLockManager extends AbstractInstanceLockManager {
return "{Lock for Instance #" + iid +", acquired by " + acquierer + "}";
}
}
-
- /** Exception class indicating a time-out occured while obtaining a lock. */
- /*public static final class TimeoutException extends Exception {
- private static final long serialVersionUID = 7247629086692580285L;
- }*/
}
+
+
http://git-wip-us.apache.org/repos/asf/ode/blob/f1f9f3f1/clustering/src/main/java/org/apache/ode/clustering/hazelcast/HazelcastClusterImpl.java
----------------------------------------------------------------------
diff --git a/clustering/src/main/java/org/apache/ode/clustering/hazelcast/HazelcastClusterImpl.java b/clustering/src/main/java/org/apache/ode/clustering/hazelcast/HazelcastClusterImpl.java
index fb25606..8bd9c7d 100644
--- a/clustering/src/main/java/org/apache/ode/clustering/hazelcast/HazelcastClusterImpl.java
+++ b/clustering/src/main/java/org/apache/ode/clustering/hazelcast/HazelcastClusterImpl.java
@@ -30,6 +30,7 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.ode.bpel.clapi.*;
+import org.apache.ode.bpel.AbstractInstanceLockManager;
/**
http://git-wip-us.apache.org/repos/asf/ode/blob/f1f9f3f1/clustering/src/main/java/org/apache/ode/clustering/hazelcast/HazelcastDeploymentLock.java
----------------------------------------------------------------------
diff --git a/clustering/src/main/java/org/apache/ode/clustering/hazelcast/HazelcastDeploymentLock.java b/clustering/src/main/java/org/apache/ode/clustering/hazelcast/HazelcastDeploymentLock.java
index 4d0aac1..34fa5d4 100644
--- a/clustering/src/main/java/org/apache/ode/clustering/hazelcast/HazelcastDeploymentLock.java
+++ b/clustering/src/main/java/org/apache/ode/clustering/hazelcast/HazelcastDeploymentLock.java
@@ -21,6 +21,9 @@ package org.apache.ode.clustering.hazelcast;
import com.hazelcast.core.IMap;
import org.apache.ode.bpel.clapi.ClusterLock;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
public class HazelcastDeploymentLock implements ClusterLock{
private static final Log __log = LogFactory.getLog(HazelcastDeploymentLock.class);
http://git-wip-us.apache.org/repos/asf/ode/blob/f1f9f3f1/clustering/src/main/java/org/apache/ode/clustering/hazelcast/HazelcastInstanceLock.java
----------------------------------------------------------------------
diff --git a/clustering/src/main/java/org/apache/ode/clustering/hazelcast/HazelcastInstanceLock.java b/clustering/src/main/java/org/apache/ode/clustering/hazelcast/HazelcastInstanceLock.java
index 3b8ab41..e673a81 100644
--- a/clustering/src/main/java/org/apache/ode/clustering/hazelcast/HazelcastInstanceLock.java
+++ b/clustering/src/main/java/org/apache/ode/clustering/hazelcast/HazelcastInstanceLock.java
@@ -20,11 +20,13 @@ package org.apache.ode.clustering.hazelcast;
import com.hazelcast.core.IMap;
import org.apache.ode.bpel.clapi.ClusterLock;
-import org.apache.ode.bpel.engine.AbstractInstnaceLockManager;
+import org.apache.ode.bpel.AbstractInstanceLockManager;
import java.util.concurrent.TimeUnit;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
-public class HazelcastInstanceLock extends AbstractInstnaceLockManager implements ClusterLock {
+public class HazelcastInstanceLock extends AbstractInstanceLockManager implements ClusterLock {
private static final Log __log = LogFactory.getLog(HazelcastInstanceLock.class);
private IMap<String, String> _lock_map;