summaryrefslogtreecommitdiffstats
path: root/sandbox/dougsleite/guardian-model/src/test/java/org/apache/tuscany/sca/guardian/itests/primaryBackup/common/NodeImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'sandbox/dougsleite/guardian-model/src/test/java/org/apache/tuscany/sca/guardian/itests/primaryBackup/common/NodeImpl.java')
-rw-r--r--sandbox/dougsleite/guardian-model/src/test/java/org/apache/tuscany/sca/guardian/itests/primaryBackup/common/NodeImpl.java112
1 files changed, 68 insertions, 44 deletions
diff --git a/sandbox/dougsleite/guardian-model/src/test/java/org/apache/tuscany/sca/guardian/itests/primaryBackup/common/NodeImpl.java b/sandbox/dougsleite/guardian-model/src/test/java/org/apache/tuscany/sca/guardian/itests/primaryBackup/common/NodeImpl.java
index 5ff80e3472..00880352b8 100644
--- a/sandbox/dougsleite/guardian-model/src/test/java/org/apache/tuscany/sca/guardian/itests/primaryBackup/common/NodeImpl.java
+++ b/sandbox/dougsleite/guardian-model/src/test/java/org/apache/tuscany/sca/guardian/itests/primaryBackup/common/NodeImpl.java
@@ -32,7 +32,8 @@ import org.osoa.sca.annotations.Destroy;
import org.osoa.sca.annotations.OneWay;
@Scope("COMPOSITE")
-public class NodeImpl implements Node, TestInterface {
+//public class NodeImpl implements Node, TestInterface {
+public class NodeImpl implements Node {
private static int PRIMARY = 0;
private static int BACKUP = 1;
@@ -49,6 +50,7 @@ public class NodeImpl implements Node, TestInterface {
public List<Node> nodeList;
private boolean forcePSFException;
private boolean forceAUFException;
+ private int upcount;
public NodeImpl() {
@@ -91,6 +93,9 @@ public class NodeImpl implements Node, TestInterface {
role = PRIMARY;
while (true) {
+
+ //blockingCheck();
+
try {
System.out.println(pID + "#Main context: ");
sleep(pID + "#Sleeping at main context...", 4000);
@@ -142,37 +147,17 @@ public class NodeImpl implements Node, TestInterface {
}
}
- public String getID() {
- return gm.getParticipantIdentifier();
- }
-
- private void sleep(String msg, int millis) {
- try {
- System.out.println(msg);
- Thread.sleep(millis);
- } catch (InterruptedException ex) {
- Logger.getLogger(NodeImpl.class.getName()).log(Level.SEVERE, null, ex);
- }
- }
-
- private boolean isThereBackupAvailable() {
- for (Node n : nodeList) {
- if (!n.isBlocked()) {
- return true;
- }
- }
- return false;
- }
-
private void primaryService() {
boolean backupAvailable = isThereBackupAvailable();
- System.out.println("Backup available?: " + backupAvailable);
- int upcount = 1;
+
+ upcount = 1;
while (true) {
gm.enableContext(primaryContext);
+ //blockingCheck();
+
try {
System.out.println(pID + "#Primary context: ");
sleep(pID + "#Sleeping at primary context...", 4000);
@@ -187,15 +172,14 @@ public class NodeImpl implements Node, TestInterface {
}
if (backupAvailable) {
- for (Node n : nodeList) {
- if (!n.isBlocked()) {
- n.sendUpdate("Update " + upcount);
- }
+
+ if (!updateBackups()) {
+ backupAvailable = isThereBackupAvailable();
}
- upcount++;
+
} else {
System.out.println(pID + "#No backup available to send updates!");
- backupAvailable = isThereBackupAvailable();
+ //backupAvailable = isThereBackupAvailable();
}
//send the reply to the client
System.out.println(pID + "#Sending the reply to the client...");
@@ -216,11 +200,29 @@ public class NodeImpl implements Node, TestInterface {
}
}
+ private boolean updateBackups() {
+ boolean flag = false;
+
+ for (Node n : nodeList) {
+ if (!n.isBlocked()) {
+ n.sendUpdate("Update " + upcount);
+ flag = true;
+ }
+ }
+ if (flag) {
+ upcount++;
+ }
+
+ return flag;
+ }
+
private void backupService() {
while (true) {
gm.enableContext(backupContext);
+ //blockingCheck();
+
try {
System.out.println(pID + "#Backup context: ");
sleep(pID + "#Sleeping at backup service", 4000);
@@ -241,31 +243,53 @@ public class NodeImpl implements Node, TestInterface {
}
}
- //FIXME - It is not working asynchronously
- //@OneWay
+ public String getID() {
+ return gm.getParticipantIdentifier();
+ }
+
+ private void sleep(String msg, int millis) {
+ try {
+ System.out.println(msg);
+ Thread.sleep(millis);
+ } catch (InterruptedException ex) {
+ Logger.getLogger(NodeImpl.class.getName()).log(Level.SEVERE, null, ex);
+ }
+ }
+
+ private boolean isThereBackupAvailable() {
+ for (Node n : nodeList) {
+ if (!n.isBlocked()) {
+ return true;
+ }
+ }
+ return false;
+ }
+
public void block() {
- System.out.println(pID + "#Participant blocked!");
isBlocked = true;
-
-// while (isBlocked) {
-// try {
-// Thread.sleep(5000);
-// } catch (InterruptedException ex) {
-// Logger.getLogger(ComponentImpl.class.getName()).log(Level.SEVERE, null, ex);
-// }
-// }
}
public boolean isBlocked() {
return isBlocked;
}
- //@OneWay
public void unblock() {
- System.out.println(pID + "#Participant unblocked!");
isBlocked = false;
}
+ private void blockingCheck() {
+ System.out.println(pID + "#Participant blocked!");
+ while (isBlocked) {
+ System.out.println("isBlocked: " + isBlocked);
+ try {
+ Thread.sleep(5000);
+ } catch (InterruptedException ex) {
+ Logger.getLogger(NodeImpl.class.getName()).log(Level.SEVERE, null, ex);
+ }
+ }
+ System.out.println(pID + "#Participant unblocked!");
+ }
+
public void sendUpdate(String update) {
System.out.println(pID + "#Receiving updates from primary: " + update);
updates.offer(update);