summaryrefslogtreecommitdiffstats
path: root/sandbox/dougsleite/guardian-model/src/test/java
diff options
context:
space:
mode:
Diffstat (limited to 'sandbox/dougsleite/guardian-model/src/test/java')
-rw-r--r--sandbox/dougsleite/guardian-model/src/test/java/org/apache/tuscany/sca/guardian/itests/primaryBackup/common/NodeImpl.java112
-rw-r--r--sandbox/dougsleite/guardian-model/src/test/java/org/apache/tuscany/sca/guardian/itests/primaryBackup/simple/Launch3.java63
2 files changed, 68 insertions, 107 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);
diff --git a/sandbox/dougsleite/guardian-model/src/test/java/org/apache/tuscany/sca/guardian/itests/primaryBackup/simple/Launch3.java b/sandbox/dougsleite/guardian-model/src/test/java/org/apache/tuscany/sca/guardian/itests/primaryBackup/simple/Launch3.java
deleted file mode 100644
index 780a8df464..0000000000
--- a/sandbox/dougsleite/guardian-model/src/test/java/org/apache/tuscany/sca/guardian/itests/primaryBackup/simple/Launch3.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright 2009 douglas.
- *
- * Licensed 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.
- * under the License.
- */
-package org.apache.tuscany.sca.guardian.itests.primaryBackup.simple;
-
-import java.io.IOException;
-import org.apache.tuscany.sca.guardian.GuardianGroup;
-import org.apache.tuscany.sca.guardian.GuardianMember;
-import org.apache.tuscany.sca.guardian.GuardianMemberImpl;
-import org.apache.tuscany.sca.host.embedded.SCADomain;
-
-/**
- *
- * @author douglas
- */
-public class Launch3 {
-
- public static void main(String... args) throws IOException {
- SCADomain scaDomain = SCADomain.newInstance("primarybackup-ws.composite");
-
- System.out.println("Testing...");
- GuardianGroup c = scaDomain.getService(GuardianGroup.class, "GuardianGroupComponent");
-
- GuardianMember gm = new GuardianMemberImpl();
- c.addGuardianMember(gm);
- //c.enableContext(Context.INIT_CONTEXT);
-
- System.in.read();
-
-// System.out.println("Starting participat1...");
-// Node c = scaDomain.getService(Node.class, "Participant1");
-// c.execute();
-//
-// System.in.read();
-//
-// System.out.println("Starting participant2...");
-// Node c2 = scaDomain.getService(Node.class, "Participant2");
-// c2.execute();
-//
-// System.in.read();
-//
-// System.out.println("Forcing exception ocurrence at participant1...");
-// TestInterface t = scaDomain.getService(TestInterface.class, "Participant1");
-// t.forcePrimaryServiceFailureException();
-//
-// System.in.read();
-
- scaDomain.close();
- }
-}