RULE Increment deploy counter and init rendezvous
CLASS org.jboss.test.kernel.junit.MicrocontainerTestDelegate 
METHOD deploy(java.net.URL)
HELPER org.jboss.test.kernel.asynchronous.support.Helper
BIND NOTHING
IF TRUE
DO 
   debug("Counter " + incrementCounter("Deploy")),
   deleteRendezvous("StartThreads", 0),
   createRendezvous("StartThreads", 2)
ENDRULE

RULE Deploy end rendezvous making sure threads have started
CLASS org.jboss.test.kernel.junit.MicrocontainerTestDelegate 
METHOD deploy(java.net.URL)
HELPER org.jboss.test.kernel.asynchronous.support.Helper
AT EXIT
BIND NOTHING
IF 2 == readCounter("Deploy")
DO
   debug("StartThreads rendezvous in AbstractController$InstallControllerContextTask"),
   rendezvous("StartThreads"),
   debug("StartThreads rendezvous go!!!")
ENDRULE


RULE Wait for Bean1 to be installed
CLASS org.jboss.test.kernel.junit.MicrocontainerTestDelegate 
METHOD deploy(java.net.URL)
HELPER org.jboss.test.kernel.asynchronous.support.Helper
AT EXIT
BIND NOTHING
IF 2 == readCounter("Deploy")
DO 
   debug("wait in deploy"),
   waitFor("Installed", 10000),
   debug("go!!!")
ENDRULE

RULE Start threads rendezvous
CLASS org.jboss.dependency.plugins.AbstractController$InstallControllerContextTask 
METHOD run
HELPER org.jboss.test.kernel.asynchronous.support.Helper
BIND NOTHING
IF NOT flagged("StartRV")
DO 
   flag("StartRV"),
   debug("StartThreads rendezvous in AbstractController$InstallControllerContextTask"),
   rendezvous("StartThreads"),
   debug("StartThreads rendezvous go!!!")
ENDRULE

RULE Signal Bean1 Installed
CLASS org.jboss.dependency.plugins.AbstractController$ContextsInstalledByExecutor
METHOD disassociateWithTask
HELPER org.jboss.test.kernel.asynchronous.support.Helper
BIND ctx = $1
IF ctx.getName().equals("Bean1") AND ctx.getState().equals(org.jboss.dependency.spi.ControllerState.INSTALLED)
DO 
   debug("signalling Installed in AbstractController$ContextsInstalledByExecutor"),
   signalWake("Installed", true),
   debug("signalled!!!")
ENDRULE

RULE Mark PreInstallAction
CLASS org.jboss.kernel.plugins.dependency.PreInstallAction
METHOD installActionInternal(KernelControllerContext)
HELPER org.jboss.test.kernel.asynchronous.support.Helper
BIND ctx:KernelControllerContext = $1
IF TRUE
DO addPoint("PreInstall-" + ctx.getName())
ENDRULE

RULE Mark DescribeAction
CLASS org.jboss.kernel.plugins.dependency.DescribeAction
METHOD installActionInternal(KernelControllerContext)
HELPER org.jboss.test.kernel.asynchronous.support.Helper
BIND ctx:KernelControllerContext = $1
IF TRUE
DO addPoint("Describe-" + ctx.getName())
ENDRULE

RULE Mark InstallAction
CLASS org.jboss.kernel.plugins.dependency.InstallAction
METHOD installActionInternal(KernelControllerContext)
HELPER org.jboss.test.kernel.asynchronous.support.Helper
BIND ctx:KernelControllerContext = $1
IF TRUE
DO addPoint("Install-" + ctx.getName())
ENDRULE
