[jboss-cvs] JBossAS SVN: r88606 - projects/microcontainer/trunk/kernel/src/test/java/org/jboss/test/kernel/lazy/test.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon May 11 05:14:52 EDT 2009


Author: alesj
Date: 2009-05-11 05:14:52 -0400 (Mon, 11 May 2009)
New Revision: 88606

Modified:
   projects/microcontainer/trunk/kernel/src/test/java/org/jboss/test/kernel/lazy/test/LazyInstantiationTest.java
Log:
[JBMICROCONT-423]; lazy on demand test.

Modified: projects/microcontainer/trunk/kernel/src/test/java/org/jboss/test/kernel/lazy/test/LazyInstantiationTest.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/test/java/org/jboss/test/kernel/lazy/test/LazyInstantiationTest.java	2009-05-11 08:28:05 UTC (rev 88605)
+++ projects/microcontainer/trunk/kernel/src/test/java/org/jboss/test/kernel/lazy/test/LazyInstantiationTest.java	2009-05-11 09:14:52 UTC (rev 88606)
@@ -65,48 +65,91 @@
    {
       Kernel kernel = bootstrap();
       KernelController controller = kernel.getController();
+      try
+      {
+         AbstractBeanMetaData bean = new AbstractBeanMetaData("bean", RareBean.class.getName());
+         bean.setMode(ControllerMode.MANUAL);
+         DemandMetaData demand = new AbstractDemandMetaData("foobar");
+         ((AbstractDemandMetaData)demand).setWhenRequired(ControllerState.INSTANTIATED);
+         bean.setDemands(Collections.singleton(demand));
 
-      AbstractBeanMetaData bean = new AbstractBeanMetaData("bean", RareBean.class.getName());
-      bean.setMode(ControllerMode.MANUAL);
-      DemandMetaData demand = new AbstractDemandMetaData("foobar");
-      ((AbstractDemandMetaData)demand).setWhenRequired(ControllerState.INSTANTIATED);
-      bean.setDemands(Collections.singleton(demand));
+         KernelControllerContext beanContext = controller.install(bean);
+         controller.change(beanContext, ControllerState.NOT_INSTALLED);
 
-      KernelControllerContext beanContext = controller.install(bean);
-      controller.change(beanContext, ControllerState.NOT_INSTALLED);
+         ModifiedLazyMetaData lazy = new ModifiedLazyMetaData("bean", getFactoryClassName());
+         lazy.setInterfaces(Collections.singleton(IRare.class.getName()));
+         KernelControllerContext lazyContext = controller.install(lazy);
 
-      ModifiedLazyMetaData lazy = new ModifiedLazyMetaData("bean", getFactoryClassName());
-      lazy.setInterfaces(Collections.singleton(IRare.class.getName()));
-      KernelControllerContext lazyContext = controller.install(lazy);
+         assertNotNull(lazyContext);
+         assertEquals(ControllerState.INSTALLED, lazyContext.getState());
 
-      assertNotNull(lazyContext);
-      assertEquals(ControllerState.INSTALLED, lazyContext.getState());
+         controller.change(beanContext, ControllerState.DESCRIBED);
+         controller.change(lazyContext, ControllerState.INSTALLED);
 
-      controller.change(beanContext, ControllerState.DESCRIBED);
-      controller.change(lazyContext, ControllerState.INSTALLED);
+         IRare lazyRare = (IRare)lazyContext.getTarget();
+         assertNotNull(lazyRare);
 
-      IRare lazyRare = (IRare)lazyContext.getTarget();
-      assertNotNull(lazyRare);
+         try
+         {
+            lazyRare.getHits();
+            throw new RuntimeException("Should not be here.");
+         }
+         catch(Throwable t)
+         {
+            assertInstanceOf(t, IllegalArgumentException.class);
+         }
 
-      try
-      {
-         lazyRare.getHits();
-         throw new RuntimeException("Should not be here.");
+         controller.install(new AbstractBeanMetaData("foobar", Object.class.getName()));
+         controller.change(beanContext, ControllerState.INSTALLED);
+
+         assertEquals(0, lazyRare.getHits());
+         lazyRare.setHits(10);
+         assertEquals(5, lazyRare.checkHits(15));
+
+         controller.uninstall(beanContext.getName());
+         assertEquals(ControllerState.DESCRIBED, lazyContext.getState());
       }
-      catch(Throwable t)
+      finally
       {
-         assertInstanceOf(t, IllegalArgumentException.class);
+         controller.shutdown();
       }
+   }
 
-      controller.install(new AbstractBeanMetaData("foobar", Object.class.getName()));
-      controller.change(beanContext, ControllerState.INSTALLED);
+   public void testOnDemand() throws Throwable
+   {
+      Kernel kernel = bootstrap();
+      KernelController controller = kernel.getController();
+      try
+      {
+         AbstractBeanMetaData bean = new AbstractBeanMetaData("bean", RareBean.class.getName());
+         bean.setMode(ControllerMode.ON_DEMAND);
+         KernelControllerContext beanContext = controller.install(bean);
 
-      assertEquals(0, lazyRare.getHits());
-      lazyRare.setHits(10);
-      assertEquals(5, lazyRare.checkHits(15));
+         ModifiedLazyMetaData lazy = new ModifiedLazyMetaData("bean", getFactoryClassName());
+         lazy.setInterfaces(Collections.singleton(IRare.class.getName()));
+         KernelControllerContext lazyContext = controller.install(lazy);
+         assertNotNull(lazyContext);
+         assertEquals(ControllerState.INSTALLED, lazyContext.getState());
 
-      controller.uninstall(beanContext.getName());
-      assertEquals(ControllerState.DESCRIBED, lazyContext.getState());
+         IRare lazyRare = (IRare)lazyContext.getTarget();
+         assertNotNull(lazyRare);
+
+         // should not be fully installed yet
+         assertEquals(ControllerState.NOT_INSTALLED, beanContext.getState());
+         assertEquals(0, lazyRare.getHits());
+         // the hit should install it
+         assertEquals(ControllerState.INSTALLED, beanContext.getState());
+
+         lazyRare.setHits(10);
+         assertEquals(5, lazyRare.checkHits(15));
+
+         controller.uninstall(beanContext.getName());
+         assertEquals(ControllerState.DESCRIBED, lazyContext.getState());
+      }
+      finally
+      {
+         controller.shutdown();
+      }
    }
 
    private class ModifiedLazyMetaData extends AbstractLazyMetaData




More information about the jboss-cvs-commits mailing list