[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