[jboss-cvs] JBossCache/old/tests/functional/org/jboss/cache/aop/integrated ...
Ben Wang
bwang at jboss.com
Tue Oct 31 03:01:12 EST 2006
User: bwang
Date: 06/10/31 03:01:12
Added: old/tests/functional/org/jboss/cache/aop/integrated
ReplicatedPropagationManagerlAopTest.java
NetworkManagementAopTest.java
PropagationManagerlAopTest.java
ReplicatedNetworkManagementAopTest.java
Log:
Deprecated files moved to old dir.
Revision Changes Path
1.1 date: 2006/10/31 08:01:12; author: bwang; state: Exp;JBossCache/old/tests/functional/org/jboss/cache/aop/integrated/ReplicatedPropagationManagerlAopTest.java
Index: ReplicatedPropagationManagerlAopTest.java
===================================================================
package org.jboss.cache.aop.integrated;
import junit.framework.TestCase;
import org.jboss.cache.aop.PojoCache;
import org.jboss.cache.aop.test.propagation.PropagationManager;
import org.jboss.cache.aop.test.propagation.impl.PropagationManagerImpl;
import org.jboss.cache.factories.XmlConfigurationParser;
public class ReplicatedPropagationManagerlAopTest extends TestCase
{
private PropagationManager pm_;
private PojoCache cache1_;
private PojoCache cache2_;
protected void setUp() throws Exception
{
cache1_ = createCache("TestCluster");
cache2_ = createCache("TestCluster");
}
protected void tearDown() throws Exception
{
cache1_.remove("/");
cache1_.stop();
cache2_.stop();
}
private PojoCache createCache(String name) throws Exception
{
PojoCache tree = new PojoCache();
tree.setConfiguration(new XmlConfigurationParser().parseFile("META-INF/replSync-service.xml"));
tree.getConfiguration().setClusterName(name);
tree.create();
tree.start();
return tree;
}
protected void initSimplifiedPm()
{
pm_ = new PropagationManagerImpl();
pm_.setRootNode("root");
pm_.addNode("root", "kanto");
pm_.addNode("root.kanto", "tokyo");
pm_.addStateItem("root.kanto.tokyo", 1000, 1040);
pm_.addNode("root.kanto", "kanagawa");
/*
pm_.addStateItem("root.kanto.tokyo", 1001, 1040);
pm_.addStateItem("root.kanto.tokyo", 1002, 1040);
pm_.addNode("root.kanto.tokyo", "shinjuku");
pm_.addStateItem("root.kanto.tokyo.shinjuku", 1000, 1040);
pm_.addStateItem("root.kanto.tokyo.shinjuku", 1001, 1040);
pm_.addStateItem("root.kanto.tokyo.shinjuku", 1002, 1040);
pm_.addNode("root.kanto.kanagawa", "kawasaki");
pm_.addStateItem("root.kanto.kanagawa.kawasaki", 1005, 1040);
pm_.addStateItem("root.kanto.kanagawa.kawasaki", 1006, 1040);
pm_.addStateItem("root.kanto.kanagawa.kawasaki", 1007, 1030);
System.out.println("\n\n");
System.out.println("---------------------------------------------");
System.out.println("Initial pm state");
System.out.println("---------------------------------------------");
pm_.printNodes();
*/
}
public void testSimplified() throws Exception
{
initSimplifiedPm();
// Put pm into cache management first
cache1_.putObject("/propagation", pm_);
System.out.println("\n\n");
System.out.println("---------------------------------------------");
System.out.println("Initial cache content");
System.out.println(cache1_.printDetails());
System.out.println("---------------------------------------------");
PropagationManager pm1 = (PropagationManager) cache2_.getObject("/propagation");
assertEquals("PropagationManager should ", pm_.toString(), pm1.toString());
System.out.println("\n\n");
System.out.println("---------------------------------------------");
System.out.println("root.kanto.kanagawa.kawasaki:1007 1030->1031");
System.out.println("---------------------------------------------");
pm_.stateChange("root.kanto.kanagawa.kawasaki", 1007, 1031);
pm_.printNodes();
/*
System.out.println("\n\n");
System.out.println("---------------------------------------------");
System.out.println("Final cache content");
System.out.println(cache_.printDetails());
System.out.println("---------------------------------------------");
*/
}
protected void initPm()
{
pm_ = new PropagationManagerImpl();
pm_.setRootNode("root");
pm_.addNode("root", "kanto");
pm_.addNode("root.kanto", "tokyo");
pm_.addStateItem("root.kanto.tokyo", 1000, 1040);
pm_.addStateItem("root.kanto.tokyo", 1001, 1040);
pm_.addStateItem("root.kanto.tokyo", 1002, 1040);
pm_.addNode("root.kanto.tokyo", "shinjuku");
pm_.addStateItem("root.kanto.tokyo.shinjuku", 1000, 1040);
pm_.addStateItem("root.kanto.tokyo.shinjuku", 1001, 1040);
pm_.addStateItem("root.kanto.tokyo.shinjuku", 1002, 1040);
pm_.addNode("root.kanto", "kanagawa");
pm_.addNode("root.kanto.kanagawa", "kawasaki");
pm_.addStateItem("root.kanto.kanagawa.kawasaki", 1005, 1040);
pm_.addStateItem("root.kanto.kanagawa.kawasaki", 1006, 1040);
pm_.addStateItem("root.kanto.kanagawa.kawasaki", 1007, 1030);
}
public void testPropagation() throws Exception
{
initPm();
// Put pm into cache management first
cache1_.putObject("/propagation", pm_);
System.out.println("\n\n");
System.out.println("---------------------------------------------");
System.out.println("Initial cache content");
System.out.println(cache1_.printDetails());
System.out.println("---------------------------------------------");
PropagationManager pm1 = (PropagationManager) cache2_.getObject("/propagation");
assertEquals("PropagationManager should ", pm_.toString(), pm1.toString());
System.out.println("\n\n");
System.out.println("---------------------------------------------");
System.out.println("Initial pm state");
System.out.println("---------------------------------------------");
pm_.printNodes();
System.out.println("\n\n");
System.out.println("---------------------------------------------");
System.out.println("root.kanto.kanagawa.kawasaki:1007 1030->1031");
System.out.println("---------------------------------------------");
pm_.stateChange("root.kanto.kanagawa.kawasaki", 1007, 1031);
pm_.printNodes();
System.out.println("\n\n");
System.out.println("---------------------------------------------");
System.out.println("root.kanto.tokyo.shinjuku:1001 1040->1041");
System.out.println("---------------------------------------------");
pm_.stateChange("root.kanto.tokyo.shinjuku", 1001, 1041);
pm_.printNodes();
System.out.println("\n\n");
System.out.println("---------------------------------------------");
System.out.println("root.kanto.kanagawa.kawasaki:1006 1040->1041");
System.out.println("---------------------------------------------");
pm_.stateChange("root.kanto.kanagawa.kawasaki", 1006, 1041);
pm_.printNodes();
System.out.println("\n\n");
System.out.println("---------------------------------------------");
System.out.println("add new item to root.kanto.kanagawa.kawasaki:1008 default:1021");
System.out.println("---------------------------------------------");
pm_.addStateItem("root.kanto.kanagawa.kawasaki", 1008, 1021);
pm_.printNodes();
System.out.println("\n\n");
System.out.println("---------------------------------------------");
System.out.println("Final cache content");
System.out.println(cache1_.printDetails());
System.out.println("---------------------------------------------");
}
public static void main(String[] args) throws Exception
{
ReplicatedPropagationManagerlAopTest pmTest = new ReplicatedPropagationManagerlAopTest();
pmTest.setUp();
pmTest.testPropagation();
}
}
1.1 date: 2006/10/31 08:01:12; author: bwang; state: Exp;JBossCache/old/tests/functional/org/jboss/cache/aop/integrated/NetworkManagementAopTest.java
Index: NetworkManagementAopTest.java
===================================================================
package org.jboss.cache.aop.integrated;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jboss.cache.aop.PojoCache;
import org.jboss.cache.aop.test.NetworkAdmin;
import org.jboss.cache.aop.test.NetworkDomain;
import org.jboss.cache.aop.test.NetworkElement;
import org.jboss.cache.aop.test.NetworkNode;
import org.jboss.cache.config.Configuration;
import org.jboss.cache.factories.XmlConfigurationParser;
import java.util.List;
/**
* Sample example for network management that consists of fine-grained replication and object graph (including
* Collection)
* <p>Specifically, it illustrates the following object relationship:
* <ul>
* <li>Multiple referece, e.g., shared sub-objects (Domain may share DataNode)</li>
* <li>Recursive, e.g., parent-child relationship (DataNode and Element)</li>
* </ul>
*
* @author Ben Wang
*/
public class NetworkManagementAopTest extends TestCase
{
Log log = LogFactory.getLog(NetworkManagementAopTest.class);
PojoCache cache1;
public NetworkManagementAopTest(String name)
{
super(name);
}
protected void setUp() throws Exception
{
super.setUp();
log.info("setUp() ....");
cache1 = createCache("CacheGroup");
}
protected void tearDown() throws Exception
{
super.tearDown();
cache1.remove("/");
cache1.stop();
}
private PojoCache createCache(String name) throws Exception
{
PojoCache tree = new PojoCache();
XmlConfigurationParser parser = new XmlConfigurationParser();
Configuration c = parser.parseFile("META-INF/replSync-service.xml"); // read in generic replAsync xml
tree.setConfiguration(c);
c.setClusterName(name);
tree.create();
tree.start();
return tree;
}
/**
* Domain shares Admin object.
*/
public void testDomainAndAdmin() throws Exception
{
NetworkAdmin admin = new NetworkAdmin();
admin.setId("Benny");
NetworkDomain tempSensorDomain = new NetworkDomain();
tempSensorDomain.setName("Temperature sensors");
tempSensorDomain.setAdmin(admin);
NetworkDomain vibSensorDomain = new NetworkDomain();
vibSensorDomain.setName("Vibration sensors");
vibSensorDomain.setAdmin(admin);
cache1.putObject("/temp", tempSensorDomain);
cache1.putObject("/vib", vibSensorDomain);
NetworkDomain d1 = (NetworkDomain) cache1.getObject("/temp");
NetworkDomain d2 = (NetworkDomain) cache1.getObject("/vib");
assertEquals("Admin should be the same", d1.getAdmin(), d2.getAdmin());
d2.getAdmin().setId("Wen");
assertEquals("New admin id is ", "Wen", d1.getAdmin().getId());
assertEquals("New admin id is ", "Wen", admin.getId());
NetworkDomain temp1 = (NetworkDomain) cache1.removeObject("/temp");
NetworkDomain vib1 = (NetworkDomain) cache1.removeObject("/vib");
assertEquals("Vibration sensor ", vibSensorDomain, vib1);
assertEquals("Temperature sensor ", tempSensorDomain, temp1);
}
/**
* Domain shares Admin object, domain also contains a list of Nodes, and each DataNode has sensor elements
*/
public void testNodeAndElement() throws Exception
{
// Construct nodes
NetworkNode taipei = new NetworkNode();
taipei.setName("Taipei machine");
taipei.setIpAddress("192.168.1.100");
NetworkNode tainan = new NetworkNode();
tainan.setName("Tainan machine");
tainan.setIpAddress("192.168.1.200");
// Contruct sensor elements
NetworkElement vibSensor1 = new NetworkElement();
vibSensor1.setName("Vibration sensor V10");
NetworkElement vibSensor2 = new NetworkElement();
vibSensor2.setName("Vibration sensor V20");
NetworkElement tempSensor1 = new NetworkElement();
tempSensor1.setName("Temperature sensor T10");
NetworkElement tempSensor2 = new NetworkElement();
tempSensor2.setName("Temperature sensor T20");
// Add sensor element to DataNode
taipei.addElement(vibSensor1);
taipei.addElement(tempSensor1);
tainan.addElement(vibSensor2);
tainan.addElement(tempSensor2);
assertEquals("Element size ", 2, taipei.getElements().size());
// ask cache to manage the domains
cache1.putObject("/taipei", taipei);
cache1.putObject("/tainan", tainan);
NetworkNode taipei1 = (NetworkNode) cache1.getObject("/taipei");
NetworkNode tainan1 = (NetworkNode) cache1.getObject("/tainan");
taipei1.setIpAddress("192.168.10.100");
assertEquals("New admin id is ", "192.168.10.100", taipei.getIpAddress());
List l2 = taipei1.getElements();
assertEquals("Size is ", 2, l2.size());
NetworkElement vibSens1 = (NetworkElement) l2.get(0);
NetworkElement tempSens1 = (NetworkElement) l2.get(1);
int SUSPENDED = 2;
vibSens1.setStatus(SUSPENDED);
tempSens1.setStatus(SUSPENDED);
assertEquals("Status ", vibSensor1.getStatus(), vibSens1.getStatus());
assertEquals("Status ", tempSensor1.getStatus(), tempSens1.getStatus());
}
/**
* Domain shares Admin object, domain also contains a list of Nodes, and each DataNode has sensor elements
*/
public void testSharedNodeAndElement() throws Exception
{
// Construct nodes
NetworkNode taipei = new NetworkNode();
taipei.setName("Taipei machine");
taipei.setIpAddress("192.168.1.100");
NetworkNode tainan = new NetworkNode();
tainan.setName("Tainan machine");
tainan.setIpAddress("192.168.1.200");
// Contruct sensor elements
NetworkElement vibSensor1 = new NetworkElement();
vibSensor1.setName("Vibration sensor V10");
NetworkElement vibSensor2 = new NetworkElement();
vibSensor2.setName("Vibration sensor V20");
NetworkElement tempSensor1 = new NetworkElement();
tempSensor1.setName("Temperature sensor T10");
NetworkElement tempSensor2 = new NetworkElement();
tempSensor2.setName("Temperature sensor T20");
// Add sensor element to DataNode
taipei.addElement(vibSensor1);
taipei.addElement(tempSensor1);
tainan.addElement(vibSensor2);
tainan.addElement(tempSensor2);
assertEquals("Element size ", 2, taipei.getElements().size());
// ask cache to manage the domains
cache1.putObject("/taipei", taipei);
cache1.putObject("/alias", taipei);
System.out.println(cache1.printDetails());
NetworkNode taipei1 = (NetworkNode) cache1.getObject("/taipei");
NetworkNode taipei2 = (NetworkNode) cache1.getObject("/alias");
taipei1.setIpAddress("192.168.10.100");
assertEquals("New admin id is ", "192.168.10.100", taipei.getIpAddress());
List l2 = taipei2.getElements();
assertEquals("Size is ", 2, l2.size());
NetworkElement vibSens1 = (NetworkElement) l2.get(0);
NetworkElement tempSens1 = (NetworkElement) l2.get(1);
int SUSPENDED = 2;
vibSens1.setStatus(SUSPENDED);
tempSens1.setStatus(SUSPENDED);
assertEquals("Status ", vibSensor1.getStatus(), vibSens1.getStatus());
assertEquals("Status ", tempSensor1.getStatus(), tempSens1.getStatus());
}
/**
* Domain shares Admin object, domain also contains a list of Nodes, and each DataNode has sensor elements
*/
public void testRecursive() throws Exception
{
NetworkAdmin admin = new NetworkAdmin();
admin.setId("Benny");
// Construct domains
NetworkDomain tempSensorDomain = new NetworkDomain();
tempSensorDomain.setName("Temperature sensors");
tempSensorDomain.setAdmin(admin);
NetworkDomain vibSensorDomain = new NetworkDomain();
vibSensorDomain.setName("Vibration sensors");
vibSensorDomain.setAdmin(admin);
// Construct nodes
NetworkNode taipei = new NetworkNode();
taipei.setName("Taipei machine");
taipei.setIpAddress("192.168.1.100");
NetworkNode tainan = new NetworkNode();
tainan.setName("Tainan machine");
tainan.setIpAddress("192.168.1.200");
// Contruct sensor elements
NetworkElement vibSensor1 = new NetworkElement();
vibSensor1.setName("Vibration sensor V10");
NetworkElement vibSensor2 = new NetworkElement();
vibSensor2.setName("Vibration sensor V20");
NetworkElement tempSensor1 = new NetworkElement();
tempSensor1.setName("Temperature sensor T10");
NetworkElement tempSensor2 = new NetworkElement();
tempSensor2.setName("Temperature sensor T20");
// Add sensor element to DataNode
taipei.addElement(vibSensor1);
taipei.addElement(tempSensor1);
tainan.addElement(vibSensor2);
tainan.addElement(tempSensor2);
assertEquals("Element size ", 2, taipei.getElements().size());
// Add elements to domains
vibSensorDomain.addElement(vibSensor1);
vibSensorDomain.addElement(vibSensor2);
tempSensorDomain.addElement(tempSensor1);
tempSensorDomain.addElement(tempSensor2);
// ask cache to manage the domains
cache1.putObject("/vib", vibSensorDomain);
// System.out.println(cache1.printDetails());
}
/**
* Domain shares Admin object, domain also contains a list of Nodes, and each DataNode has sensor elements
*/
public void testAll() throws Exception
{
// Construct domains
NetworkDomain tempSensorDomain = new NetworkDomain();
tempSensorDomain.setName("Temperature sensors");
NetworkDomain vibSensorDomain = new NetworkDomain();
vibSensorDomain.setName("Vibration sensors");
// Construct nodes
NetworkNode taipei = new NetworkNode();
taipei.setName("Taipei machine");
taipei.setIpAddress("192.168.1.100");
NetworkNode tainan = new NetworkNode();
tainan.setName("Tainan machine");
tainan.setIpAddress("192.168.1.200");
// Contruct sensor elements
NetworkElement vibSensor1 = new NetworkElement();
vibSensor1.setName("Vibration sensor V10");
NetworkElement vibSensor2 = new NetworkElement();
vibSensor2.setName("Vibration sensor V20");
NetworkElement tempSensor1 = new NetworkElement();
tempSensor1.setName("Temperature sensor T10");
NetworkElement tempSensor2 = new NetworkElement();
tempSensor2.setName("Temperature sensor T20");
// Add sensor element to DataNode
taipei.addElement(vibSensor1);
taipei.addElement(tempSensor1);
tainan.addElement(vibSensor2);
tainan.addElement(tempSensor2);
assertEquals("Element size ", 2, taipei.getElements().size());
// Add elements to domains
vibSensorDomain.addElement(vibSensor1);
vibSensorDomain.addElement(vibSensor2);
tempSensorDomain.addElement(tempSensor1);
tempSensorDomain.addElement(tempSensor2);
// ask cache to manage the domains
cache1.putObject("/vib", vibSensorDomain);
cache1.putObject("/temp", tempSensorDomain);
System.out.println(cache1.printDetails());
NetworkDomain temp1 = (NetworkDomain) cache1.getObject("/temp");
NetworkDomain vib1 = (NetworkDomain) cache1.getObject("/vib");
NetworkNode taipei1 = (NetworkNode) temp1.getNodes().get(0);
// NetworkNode taipei1 = (NetworkNode)temp1.getNodes().get(1); this would fail on equality
NetworkNode taipei2 = (NetworkNode) vib1.getNodes().get(0);
List l1 = temp1.getNodes();
assertEquals("Size is ", 2, l1.size());
l1 = taipei.getElements();
assertEquals("Size is ", 2, l1.size());
assertEquals("IPAddress ", taipei.getIpAddress(), taipei1.getIpAddress());
assertTrue("DataNode should be the same", (taipei1 == taipei2));
taipei2.setIpAddress("192.168.10.100");
assertEquals("New admin id is ", "192.168.10.100", taipei.getIpAddress());
List l2 = taipei1.getElements();
assertEquals("Size is ", 2, l2.size());
NetworkElement vibSens1 = (NetworkElement) l2.get(0);
NetworkElement tempSens1 = (NetworkElement) l2.get(1);
int SUSPENDED = 2;
vibSens1.setStatus(SUSPENDED);
tempSens1.setStatus(SUSPENDED);
assertEquals("Status ", vibSensor1.getStatus(), vibSens1.getStatus());
assertEquals("Status ", tempSensor1.getStatus(), tempSens1.getStatus());
}
public static Test suite() throws Exception
{
return new TestSuite(NetworkManagementAopTest.class);
}
public static void main(String[] args) throws Exception
{
junit.textui.TestRunner.run(suite());
}
}
1.1 date: 2006/10/31 08:01:12; author: bwang; state: Exp;JBossCache/old/tests/functional/org/jboss/cache/aop/integrated/PropagationManagerlAopTest.java
Index: PropagationManagerlAopTest.java
===================================================================
package org.jboss.cache.aop.integrated;
import junit.framework.TestCase;
import org.jboss.cache.aop.PojoCache;
import org.jboss.cache.aop.test.propagation.PropagationManager;
import org.jboss.cache.aop.test.propagation.impl.PropagationManagerImpl;
import org.jboss.cache.factories.XmlConfigurationParser;
public class PropagationManagerlAopTest extends TestCase
{
private PropagationManager pm_;
private PojoCache cache_;
protected void setUp() throws Exception
{
cache_ = createCache("TestCluster");
}
protected void tearDown() throws Exception
{
cache_.remove("/");
cache_.stop();
}
private PojoCache createCache(String name) throws Exception
{
PojoCache tree = new PojoCache();
tree.setConfiguration(new XmlConfigurationParser().parseFile("META-INF/local-service.xml"));
tree.getConfiguration().setClusterName(name);
tree.create();
tree.start();
return tree;
}
protected void initSimplifiedPm()
{
pm_ = new PropagationManagerImpl();
pm_.setRootNode("root");
pm_.addNode("root", "kanto");
pm_.addNode("root.kanto", "tokyo");
pm_.addStateItem("root.kanto.tokyo", 1000, 1040);
pm_.addNode("root.kanto", "kanagawa");
/*
pm_.addStateItem("root.kanto.tokyo", 1001, 1040);
pm_.addStateItem("root.kanto.tokyo", 1002, 1040);
pm_.addNode("root.kanto.tokyo", "shinjuku");
pm_.addStateItem("root.kanto.tokyo.shinjuku", 1000, 1040);
pm_.addStateItem("root.kanto.tokyo.shinjuku", 1001, 1040);
pm_.addStateItem("root.kanto.tokyo.shinjuku", 1002, 1040);
pm_.addNode("root.kanto.kanagawa", "kawasaki");
pm_.addStateItem("root.kanto.kanagawa.kawasaki", 1005, 1040);
pm_.addStateItem("root.kanto.kanagawa.kawasaki", 1006, 1040);
pm_.addStateItem("root.kanto.kanagawa.kawasaki", 1007, 1030);
System.out.println("\n\n");
System.out.println("---------------------------------------------");
System.out.println("Initial pm state");
System.out.println("---------------------------------------------");
pm_.printNodes();
*/
}
public void testSimplified() throws Exception
{
initSimplifiedPm();
// Put pm into cache management first
cache_.putObject("/propagation", pm_);
System.out.println("\n\n");
System.out.println("---------------------------------------------");
System.out.println("Initial cache content");
System.out.println(cache_.printDetails());
System.out.println("---------------------------------------------");
System.out.println("\n\n");
System.out.println("---------------------------------------------");
System.out.println("root.kanto.kanagawa.kawasaki:1007 1030->1031");
System.out.println("---------------------------------------------");
pm_.stateChange("root.kanto.kanagawa.kawasaki", 1007, 1031);
pm_.printNodes();
/*
System.out.println("\n\n");
System.out.println("---------------------------------------------");
System.out.println("Final cache content");
System.out.println(cache_.printDetails());
System.out.println("---------------------------------------------");
*/
}
protected void initPm()
{
pm_ = new PropagationManagerImpl();
pm_.setRootNode("root");
pm_.addNode("root", "kanto");
pm_.addNode("root.kanto", "tokyo");
pm_.addStateItem("root.kanto.tokyo", 1000, 1040);
pm_.addStateItem("root.kanto.tokyo", 1001, 1040);
pm_.addStateItem("root.kanto.tokyo", 1002, 1040);
pm_.addNode("root.kanto.tokyo", "shinjuku");
pm_.addStateItem("root.kanto.tokyo.shinjuku", 1000, 1040);
pm_.addStateItem("root.kanto.tokyo.shinjuku", 1001, 1040);
pm_.addStateItem("root.kanto.tokyo.shinjuku", 1002, 1040);
pm_.addNode("root.kanto", "kanagawa");
pm_.addNode("root.kanto.kanagawa", "kawasaki");
pm_.addStateItem("root.kanto.kanagawa.kawasaki", 1005, 1040);
pm_.addStateItem("root.kanto.kanagawa.kawasaki", 1006, 1040);
pm_.addStateItem("root.kanto.kanagawa.kawasaki", 1007, 1030);
}
public void testPropagation() throws Exception
{
initPm();
// Put pm into cache management first
cache_.putObject("/propagation", pm_);
System.out.println("\n\n");
System.out.println("---------------------------------------------");
System.out.println("Initial cache content");
System.out.println(cache_.printDetails());
System.out.println("---------------------------------------------");
System.out.println("\n\n");
System.out.println("---------------------------------------------");
System.out.println("Initial pm state");
System.out.println("---------------------------------------------");
pm_.printNodes();
System.out.println("\n\n");
System.out.println("---------------------------------------------");
System.out.println("root.kanto.kanagawa.kawasaki:1007 1030->1031");
System.out.println("---------------------------------------------");
pm_.stateChange("root.kanto.kanagawa.kawasaki", 1007, 1031);
pm_.printNodes();
System.out.println("\n\n");
System.out.println("---------------------------------------------");
System.out.println("root.kanto.tokyo.shinjuku:1001 1040->1041");
System.out.println("---------------------------------------------");
pm_.stateChange("root.kanto.tokyo.shinjuku", 1001, 1041);
pm_.printNodes();
System.out.println("\n\n");
System.out.println("---------------------------------------------");
System.out.println("root.kanto.kanagawa.kawasaki:1006 1040->1041");
System.out.println("---------------------------------------------");
pm_.stateChange("root.kanto.kanagawa.kawasaki", 1006, 1041);
pm_.printNodes();
System.out.println("\n\n");
System.out.println("---------------------------------------------");
System.out.println("add new item to root.kanto.kanagawa.kawasaki:1008 default:1021");
System.out.println("---------------------------------------------");
pm_.addStateItem("root.kanto.kanagawa.kawasaki", 1008, 1021);
pm_.printNodes();
System.out.println("\n\n");
System.out.println("---------------------------------------------");
System.out.println("Final cache content");
System.out.println(cache_.printDetails());
System.out.println("---------------------------------------------");
}
public static void main(String[] args) throws Exception
{
PropagationManagerlAopTest pmTest = new PropagationManagerlAopTest();
pmTest.setUp();
pmTest.testPropagation();
}
}
1.1 date: 2006/10/31 08:01:12; author: bwang; state: Exp;JBossCache/old/tests/functional/org/jboss/cache/aop/integrated/ReplicatedNetworkManagementAopTest.java
Index: ReplicatedNetworkManagementAopTest.java
===================================================================
package org.jboss.cache.aop.integrated;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jboss.cache.aop.PojoCache;
import org.jboss.cache.aop.test.NetworkAdmin;
import org.jboss.cache.aop.test.NetworkDomain;
import org.jboss.cache.aop.test.NetworkElement;
import org.jboss.cache.aop.test.NetworkNode;
import org.jboss.cache.config.Configuration;
import org.jboss.cache.factories.XmlConfigurationParser;
import java.util.List;
/**
* Sample example for network management that consists of fine-grained replication and object graph (including
* Collection)
* <p>Specifically, it illustrates the following object relationship:
* <ul>
* <li>Multiple referece, e.g., shared sub-objects (Domain may share DataNode)</li>
* <li>Recursive, e.g., parent-child relationship (DataNode and Element)</li>
* </ul>
*
* @author Ben Wang
*/
public class ReplicatedNetworkManagementAopTest extends TestCase
{
Log log = LogFactory.getLog(ReplicatedNetworkManagementAopTest.class);
PojoCache cache1;
PojoCache cache2;
public ReplicatedNetworkManagementAopTest(String name)
{
super(name);
}
protected void setUp() throws Exception
{
super.setUp();
log.info("setUp() ....");
cache1 = createCache("CacheGroup");
cache2 = createCache("CacheGroup");
}
protected void tearDown() throws Exception
{
super.tearDown();
cache1.remove("/");
cache1.stop();
cache2.stop();
}
private PojoCache createCache(String name) throws Exception
{
PojoCache tree = new PojoCache();
tree.setConfiguration(new XmlConfigurationParser().parseFile("META-INF/replSync-service.xml"));
// TODO: Use a cache factory to create a PojoCache
Configuration conf = new Configuration();
conf.setClusterName(name);
tree.create();
tree.start();
return tree;
}
/**
* Domain shares Admin object.
*/
public void testDomainAndAdmin() throws Exception
{
NetworkAdmin admin = new NetworkAdmin();
admin.setId("Benny");
NetworkDomain tempSensorDomain = new NetworkDomain();
tempSensorDomain.setName("Temperature sensors");
tempSensorDomain.setAdmin(admin);
NetworkDomain vibSensorDomain = new NetworkDomain();
vibSensorDomain.setName("Vibration sensors");
vibSensorDomain.setAdmin(admin);
cache1.putObject("/temp", tempSensorDomain);
cache1.putObject("/vib", vibSensorDomain);
NetworkDomain d1 = (NetworkDomain) cache2.getObject("/temp");
NetworkDomain d2 = (NetworkDomain) cache2.getObject("/vib");
assertEquals("Admin should be the same", d1.getAdmin(), d2.getAdmin());
d2.getAdmin().setId("Wen");
assertEquals("New admin id is ", "Wen", d1.getAdmin().getId());
assertEquals("New admin id is ", "Wen", admin.getId());
d1 = (NetworkDomain) cache2.getObject("/vib");
d2 = (NetworkDomain) cache2.getObject("/temp");
assertEquals("Admin should be the same", d1.getAdmin(), d2.getAdmin());
d2.getAdmin().setId("Wen");
assertEquals("New admin id is ", "Wen", d1.getAdmin().getId());
assertEquals("New admin id is ", "Wen", admin.getId());
NetworkDomain temp1 = (NetworkDomain) cache1.removeObject("/temp");
NetworkDomain vib1 = (NetworkDomain) cache1.removeObject("/vib");
assertEquals("Vibration sensor ", vibSensorDomain, vib1);
assertEquals("Temperature sensor ", tempSensorDomain, temp1);
}
/**
* Domain shares Admin object, domain also contains a list of Nodes, and each DataNode has sensor elements
*/
public void testNodeAndElement() throws Exception
{
// Construct nodes
NetworkNode taipei = new NetworkNode();
taipei.setName("Taipei machine");
taipei.setIpAddress("192.168.1.100");
NetworkNode tainan = new NetworkNode();
tainan.setName("Tainan machine");
tainan.setIpAddress("192.168.1.200");
// Contruct sensor elements
NetworkElement vibSensor1 = new NetworkElement();
vibSensor1.setName("Vibration sensor V10");
NetworkElement vibSensor2 = new NetworkElement();
vibSensor2.setName("Vibration sensor V20");
NetworkElement tempSensor1 = new NetworkElement();
tempSensor1.setName("Temperature sensor T10");
NetworkElement tempSensor2 = new NetworkElement();
tempSensor2.setName("Temperature sensor T20");
// Add sensor element to DataNode
taipei.addElement(vibSensor1);
taipei.addElement(tempSensor1);
tainan.addElement(vibSensor2);
tainan.addElement(tempSensor2);
assertEquals("Element size ", 2, taipei.getElements().size());
// ask cache to manage the domains
cache1.putObject("/taipei", taipei);
cache1.putObject("/tainan", tainan);
NetworkNode taipei1 = (NetworkNode) cache2.getObject("/taipei");
NetworkNode tainan1 = (NetworkNode) cache2.getObject("/tainan");
taipei1.setIpAddress("192.168.10.100");
assertEquals("New admin id is ", "192.168.10.100", taipei.getIpAddress());
tainan1.setIpAddress("192.168.10.200");
assertEquals("New admin id is ", "192.168.10.200", tainan.getIpAddress());
List l2 = taipei1.getElements();
assertEquals("Size is ", 2, l2.size());
NetworkElement vibSens1 = (NetworkElement) l2.get(0);
NetworkElement tempSens1 = (NetworkElement) l2.get(1);
int SUSPENDED = 2;
vibSens1.setStatus(SUSPENDED);
tempSens1.setStatus(SUSPENDED);
assertEquals("Status ", vibSensor1.getStatus(), vibSens1.getStatus());
assertEquals("Status ", tempSensor1.getStatus(), tempSens1.getStatus());
}
/**
* Domain shares Admin object, domain also contains a list of Nodes, and each DataNode has sensor elements
*/
public void testAll() throws Exception
{
NetworkAdmin admin = new NetworkAdmin();
admin.setId("Benny");
// Construct domains
NetworkDomain tempSensorDomain = new NetworkDomain();
tempSensorDomain.setName("Temperature sensors");
tempSensorDomain.setAdmin(admin);
NetworkDomain vibSensorDomain = new NetworkDomain();
vibSensorDomain.setName("Vibration sensors");
vibSensorDomain.setAdmin(admin);
// Construct nodes
NetworkNode taipei = new NetworkNode();
taipei.setName("Taipei machine");
taipei.setIpAddress("192.168.1.100");
NetworkNode tainan = new NetworkNode();
tainan.setName("Tainan machine");
tainan.setIpAddress("192.168.1.200");
// Contruct sensor elements
NetworkElement vibSensor1 = new NetworkElement();
vibSensor1.setName("Vibration sensor V10");
NetworkElement vibSensor2 = new NetworkElement();
vibSensor2.setName("Vibration sensor V20");
NetworkElement tempSensor1 = new NetworkElement();
tempSensor1.setName("Temperature sensor T10");
NetworkElement tempSensor2 = new NetworkElement();
tempSensor2.setName("Temperature sensor T20");
// Add sensor element to DataNode
taipei.addElement(vibSensor1);
taipei.addElement(tempSensor1);
tainan.addElement(vibSensor2);
tainan.addElement(tempSensor2);
assertEquals("Element size ", 2, taipei.getElements().size());
// Add elements to domains
vibSensorDomain.addElement(vibSensor1);
vibSensorDomain.addElement(vibSensor2);
tempSensorDomain.addElement(tempSensor1);
tempSensorDomain.addElement(tempSensor2);
// ask cache to manage the domains
cache1.putObject("/temp", tempSensorDomain);
cache1.putObject("/vib", vibSensorDomain);
NetworkDomain temp1 = (NetworkDomain) cache2.getObject("/temp");
NetworkDomain vib1 = (NetworkDomain) cache2.getObject("/vib");
NetworkNode taipei1 = (NetworkNode) temp1.getNodes().get(0);
// NetworkNode taipei1 = (NetworkNode)temp1.getNodes().get(1); this would fail on equality
NetworkNode taipei2 = (NetworkNode) vib1.getNodes().get(0);
List l1 = temp1.getNodes();
assertEquals("Size is ", 2, l1.size());
l1 = taipei.getElements();
assertEquals("Size is ", 2, l1.size());
assertEquals("IPAddress ", taipei.getIpAddress(), taipei1.getIpAddress());
assertTrue("DataNode should be the same", (taipei1 == taipei2));
taipei2.setIpAddress("192.168.10.100");
assertEquals("New admin id is ", "192.168.10.100", taipei.getIpAddress());
List l2 = taipei1.getElements();
assertEquals("Size is ", 2, l2.size());
NetworkElement vibSens1 = (NetworkElement) l2.get(0);
NetworkElement tempSens1 = (NetworkElement) l2.get(1);
int SUSPENDED = 2;
vibSens1.setStatus(SUSPENDED);
tempSens1.setStatus(SUSPENDED);
assertEquals("Status ", vibSensor1.getStatus(), vibSens1.getStatus());
assertEquals("Status ", tempSensor1.getStatus(), tempSens1.getStatus());
}
public static Test suite() throws Exception
{
return new TestSuite(ReplicatedNetworkManagementAopTest.class);
}
public static void main(String[] args) throws Exception
{
junit.textui.TestRunner.run(suite());
}
}
More information about the jboss-cvs-commits
mailing list