示例#1
0
  @Test(expectedExceptions = IllegalStateException.class)
  public void testVariableBeanDeploymentStructure() throws Exception {
    Collection<Class<?>> classes1 =
        Arrays.<Class<?>>asList(Stable.class, Horse.class, Fodder.class);
    Collection<Class<?>> classes2 =
        Arrays.<Class<?>>asList(Stable.class, Horse.class, Fodder.class, Foo.class);
    TestContainer container1 = bootstrapContainer(1, classes1);
    BeanManagerImpl beanManager1 = getBeanManager(container1);
    Bean<?> stableBean1 = beanManager1.resolve(beanManager1.getBeans(Stable.class));
    TestContainer container2 = bootstrapContainer(2, classes2);

    use(1);
    // Set a value into Foo1
    Stable stable1 =
        (Stable)
            beanManager1.getReference(
                stableBean1, Stable.class, beanManager1.createCreationalContext(stableBean1));
    stable1.getFodder().setAmount(10);
    stable1.getHorse().setName("George");

    try {
      replicateSession(1, container1, 2, container2);
    } finally {
      use(1);
      container1.stopContainer();
      use(2);
      container2.stopContainer();
    }
  }
示例#2
0
  @Test
  public void testSessionReplication() throws Exception {
    Collection<Class<?>> classes1 =
        Arrays.<Class<?>>asList(Stable.class, Horse.class, Fodder.class);
    Collection<Class<?>> classes2 =
        Arrays.<Class<?>>asList(Stable.class, Horse.class, Fodder.class);
    TestContainer container1 = bootstrapContainer(1, classes1);
    BeanManagerImpl beanManager1 = getBeanManager(container1);
    Bean<?> stableBean1 = beanManager1.resolve(beanManager1.getBeans(Stable.class));

    TestContainer container2 = bootstrapContainer(2, classes2);
    BeanManagerImpl beanManager2 = getBeanManager(container2);
    Bean<?> stableBean2 = beanManager2.resolve(beanManager2.getBeans(Stable.class));

    use(1);
    // Set a value into Foo1
    Stable stable1 =
        (Stable)
            beanManager1.getReference(
                stableBean1, Stable.class, beanManager1.createCreationalContext(stableBean1));
    stable1.getFodder().setAmount(10);
    stable1.getHorse().setName("George");

    replicateSession(1, container1, 2, container2);

    use(2);

    Stable stable2 =
        (Stable)
            beanManager2.getReference(
                stableBean2, Stable.class, beanManager2.createCreationalContext(stableBean2));
    assert stable2.getFodder().getAmount() == stable1.getFodder().getAmount();
    assert stable2.getHorse().getName() == null;
    use(1);
    container1.stopContainer();
    use(2);
    container2.stopContainer();
  }
示例#3
0
 /** Makes the horse or person enter the door and the room on the other side. */
 public void enter(MovingObject p) {
   if (isOpen) {
     otherSideFrom(Stable.instance().getRoom(p.currentX, p.currentY)).enter(p);
   }
 }