diff options
author | slaws <slaws@13f79535-47bb-0310-9956-ffa450edef68> | 2010-01-15 11:22:04 +0000 |
---|---|---|
committer | slaws <slaws@13f79535-47bb-0310-9956-ffa450edef68> | 2010-01-15 11:22:04 +0000 |
commit | 58c05607b4bd7fbeaa35376b2046c7f2bc1a1a1e (patch) | |
tree | 01a41e3cab8ab32ed6ca6f91f5d3d402e8d55a53 /sca-java-2.x/trunk | |
parent | f1e07cf238256d035518815a9b15050125c6e266 (diff) |
Fix to make OTEST JCA_2005 work again. This is an @EagerInit scenario and out code was starting scope containers before all endpoints had been registered. With all matching going through the binding/registry now this meant that the reference being used inside the @EagerInit failed to resolve. This change moves the scope container start to after the services are registered.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@899599 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to '')
-rw-r--r-- | sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/CompositeActivatorImpl.java | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/CompositeActivatorImpl.java b/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/CompositeActivatorImpl.java index 58ffb0f9b9..d9c6eec137 100644 --- a/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/CompositeActivatorImpl.java +++ b/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/CompositeActivatorImpl.java @@ -299,6 +299,12 @@ public class CompositeActivatorImpl implements CompositeActivator { for (Component component : composite.getComponents()) { start(compositeContext, component); } + + for (Component component : composite.getComponents()) { + if (component instanceof ScopedRuntimeComponent) { + start(compositeContext, (ScopedRuntimeComponent)component); + } + } } public void stop(CompositeContext compositeContext, Composite composite) { @@ -336,13 +342,8 @@ public class CompositeActivatorImpl implements CompositeActivator { } } - if (component instanceof ScopedRuntimeComponent) { - ScopedRuntimeComponent scopedRuntimeComponent = (ScopedRuntimeComponent)component; - if (scopedRuntimeComponent.getScopeContainer() != null) { - scopedRuntimeComponent.getScopeContainer().start(); - } - } - // Reference bindings aren't started until the wire is first used + // Reference bindings aren't started until the wire is first used although this may + // happen when the scope container is started in the case of @EagerInit for (ComponentService service : component.getServices()) { if (logger.isLoggable(Level.FINE)) { @@ -369,6 +370,7 @@ public class CompositeActivatorImpl implements CompositeActivator { } } } + runtimeComponent.setStarted(true); } @@ -456,6 +458,15 @@ public class CompositeActivatorImpl implements CompositeActivator { ((RuntimeComponent)component).setStarted(false); } + // Scope container start/stop + // separate off from component start that all endpoints are + // registered before any @EagerInit takes place + public void start(CompositeContext compositeContext, ScopedRuntimeComponent scopedRuntimeComponent) { + if (scopedRuntimeComponent.getScopeContainer() != null) { + scopedRuntimeComponent.getScopeContainer().start(); + } + } + // Service start/stop // done as part of the component start above |