1 package test.propagation; 2 3 import junit.framework.TestCase; 4 import org.jboss.cache.pojo.PojoCache; 5 import org.jboss.cache.pojo.PojoCacheFactory; 6 import org.jboss.cache.config.Configuration; 7 import org.jboss.cache.factories.XmlConfigurationParser; 8 import org.jboss.cache.Fqn; 9 import propagation.PropagationManager; 10 import propagation.impl.PropagationManagerImpl; 11 12 20 public class PropagationReplAopTest extends TestCase { 21 private PropagationManager pm_; 22 private PojoCache cache1_; 24 private PojoCache cache2_; 25 26 protected void setUp() throws Exception { 27 cache1_ = createCache("TestCluster"); 28 cache2_ = createCache("TestCluster"); 29 initPm(); 30 } 31 32 protected void tearDown() throws Exception { 33 cache1_.getCache().removeNode(new Fqn("/")); 34 cache1_.stop(); 35 cache2_.stop(); 36 } 37 38 private PojoCache createCache(String name) throws Exception { 39 XmlConfigurationParser parser = new XmlConfigurationParser(); 40 Configuration conf = parser.parseFile("META-INF/replSync-service.xml"); 41 conf.setClusterName(name); boolean toStart = true; 43 PojoCache cache = PojoCacheFactory.createCache(conf, toStart); 44 return cache; 47 } 48 49 54 protected void initPm() throws Exception { 55 pm_ = new PropagationManagerImpl(); 56 57 pm_.setRootNode("Japan"); 58 59 pm_.addNode("Japan", "Tokyo"); 61 pm_.addNode("Japan.Tokyo", "WindSensor1"); pm_.addStateItem("Japan.Tokyo.WindSensor1", 1000, "power supply", 1040); pm_.addStateItem("Japan.Tokyo.WindSensor1", 1001, "sensor unit", 1040); 65 pm_.addNode("Japan.Tokyo", "RainSensor1"); pm_.addStateItem("Japan.Tokyo.RainSensor1", 1002, "power supply", 1040); pm_.addStateItem("Japan.Tokyo.RainSensor1", 1003, "sensor unit", 1040); 69 pm_.addNode("Japan", "Yokohama"); 71 pm_.addNode("Japan.Yokohama", "WindSensor2"); pm_.addStateItem("Japan.Yokohama.WindSensor2", 1000, "power supply", 1040); pm_.addStateItem("Japan.Yokohama.WindSensor2", 1001, "sensor unit", 1040); 75 pm_.addNode("Japan.Yokohama", "RainSensor2"); pm_.addStateItem("Japan.Yokohama.RainSensor2", 1002, "power supply", 1040); pm_.addStateItem("Japan.Yokohama.RainSensor2", 1003, "sensor unit", 1040); 79 pm_.createNode("WindSummary", "WindSummary"); pm_.setUpperNode("WindSummary", "Japan.Tokyo.WindSensor1"); pm_.setUpperNode("WindSummary", "Japan.Yokohama.WindSensor2"); 83 pm_.createNode("RainSummary", "RainSummary"); pm_.setUpperNode("RainSummary", "Japan.Tokyo.RainSensor1"); pm_.setUpperNode("RainSummary", "Japan.Yokohama.RainSensor2"); } 87 88 public void testPropagation() throws Exception { 89 cache1_.attach("monitor", pm_); 91 92 printStatus("Initial state", pm_); 94 95 PropagationManager pm2 = (PropagationManager) cache2_.find("monitor"); 97 98 System.out.println("---------------------------------------------"); 99 System.out.println("Modified on Server #1"); 100 pm_.stateChange("Japan.Tokyo.RainSensor1", 1003, 1041); 102 printStatus("Japan.Tokyo.RainSensor1: id: 1003 state: 1040->1041 (retrieved from cache #2)", pm2); 103 104 System.out.println("---------------------------------------------"); 105 System.out.println("Modified on Server #2"); 106 pm2.stateChange("Japan.Yokohama.WindSensor2", 1001, 1041); printStatus("Japan.Yokohama.WindSensor2: id: 1001 state: 1040->1041 (retrieved from cache #1)" 109 , pm2); 110 111 } 112 113 private void printStatus(String msg, PropagationManager pm) { 114 System.out.println("---------------------------------------------"); 115 System.out.println(msg); 116 System.out.println("---------------------------------------------"); 117 pm.printNodes(); 118 System.out.println("\n\n"); 123 } 124 125 public static void main(String [] args) throws Exception { 126 PropagationReplAopTest pmTest = new PropagationReplAopTest(); 127 pmTest.setUp(); 128 pmTest.testPropagation(); 129 pmTest.tearDown(); 130 } 131 } 132 | Popular Tags |