I'm working on a test to look at the lifecycle events to make sure
that they happen in the right places [1]. One of the tests looks at
what happens when an exception is thrown in the @Init operation. It
happens to use the domain node implementation and does the following
when starting the composite...

        // start a composite
        try {
            node.startComposite("HelloworldContrib", "lifecycle.composite");

            // stop a composite - it won't do this
            node.stopComposite("HelloworldContrib", "lifecycle.composite");
        } catch (Exception exception) {
            // it's thrown from the HelloworldClientImpl @Init method
        }

I did run the test to see what happens if I try and stop the composite
after the error and the runtime reports.

java.lang.IllegalStateException: not supportted for LocalOnly
        at 
org.apache.tuscany.sca.core.assembly.impl.DomainRegistryImpl.remoteCommand(DomainRegistryImpl.java:251)
        at org.apache.tuscany.sca.impl.NodeImpl.stopComposite(NodeImpl.java:270)
        at 
org.apache.tuscany.sca.itest.lifecycle.LifecycleTestCase.testInitExceptionShutdown(LifecycleTestCase.java:113)

It looks like it tries to do remote things if it doesn't find a
started composite when it's asked to stop one. It would be good to be
able to call the stop operation regardless and have is just warn that
there isn't a composite to stop.

Regards

Simon

[1] 
http://svn.apache.org/repos/asf/tuscany/sca-java-2.x/trunk/testing/itest/lifecycle/

-- 
Apache Tuscany committer: tuscany.apache.org
Co-author of a book about Tuscany and SCA: tuscanyinaction.com

Reply via email to