diff options
Diffstat (limited to 'java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/CompositeContext.java')
-rw-r--r-- | java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/CompositeContext.java | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/CompositeContext.java b/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/CompositeContext.java index a55de8f20e..6e3bedc205 100644 --- a/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/CompositeContext.java +++ b/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/CompositeContext.java @@ -34,6 +34,7 @@ import org.apache.tuscany.sca.runtime.RuntimeComponentContext; * @version $Rev$ $Date$ */ public class CompositeContext { + protected final static InheritableThreadLocal<CompositeContext> context = new InheritableThreadLocal<CompositeContext>(); protected ExtensionPointRegistry extensionPointRegistry; protected EndpointRegistry endpointRegistry; protected ComponentContextFactory componentContextFactory; @@ -73,8 +74,12 @@ public class CompositeContext { public static CompositeContext getCurrentCompositeContext() { RuntimeComponent component = getCurrentComponent(); if (component != null) { - RuntimeComponentContext context = component.getComponentContext(); - return context.getCompositeContext(); + RuntimeComponentContext componentContext = component.getComponentContext(); + return componentContext.getCompositeContext(); + } + CompositeContext compositeContext = context.get(); + if (compositeContext != null) { + return compositeContext; } return null; } @@ -111,5 +116,12 @@ public class CompositeContext { public Composite getDomainComposite() { return domainComposite; } - + + public static void setThreadCompositeContext(CompositeContext value) { + context.set(value); + } + + public static void removeCompositeContext() { + context.remove(); + } } |