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")),
   flag("StartRV"),
   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 Complete following deploy on main thread
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("Complete", 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 flagged("StartRV")
DO 
   clear("StartRV"),
   debug("StartThreads rendezvous in AbstractController$InstallControllerContextTask"),
   rendezvous("StartThreads"),
   debug("StartThreads rendezvous go!!!")
ENDRULE

RULE Signal wake Complete following complete deploy in thread
CLASS org.jboss.dependency.plugins.AbstractController$InstallControllerContextTask 
METHOD run
HELPER org.jboss.test.kernel.asynchronous.support.Helper
AT EXIT
BIND NOTHING
IF TRUE
DO debug("signalling wake in AbstractController$InstallControllerContextTask"),
   signalWake("Complete", 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 InstantiateAction
CLASS org.jboss.kernel.plugins.dependency.InstantiateAction
METHOD installActionInternal(KernelControllerContext)
HELPER org.jboss.test.kernel.asynchronous.support.Helper
BIND ctx:KernelControllerContext = $1
IF TRUE
DO addPoint("Instantiate-" + ctx.getName())
ENDRULE

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

#We don't do this in the Action class since there is no point invoked once on install
RULE Mark create
CLASS org.jboss.test.kernel.asynchronous.support.BeanWithCreateStart
METHOD create
HELPER org.jboss.test.kernel.asynchronous.support.Helper
BIND bean = $0
IF TRUE
DO addPoint("Create-" + bean.getName())
ENDRULE

#We don't do this in the Action class since there is no point invoked once on install
RULE Mark StartStopLifecycleAction
CLASS org.jboss.test.kernel.asynchronous.support.BeanWithCreateStart
METHOD start
HELPER org.jboss.test.kernel.asynchronous.support.Helper
BIND bean = $0
IF TRUE
DO addPoint("Start-" + bean.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
