Index: magnolia-core/src/main/java/info/magnolia/objectfactory/Components.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- magnolia-core/src/main/java/info/magnolia/objectfactory/Components.java (revision 56212) +++ magnolia-core/src/main/java/info/magnolia/objectfactory/Components.java (revision ) @@ -56,9 +56,31 @@ /** * Returns the currently set {@link ComponentProvider}. */ +/* public static ComponentProvider getComponentProvider() { return componentProvider; } +*/ + public static ComponentProvider getComponentProvider() { + ComponentProvider scoped = scopes.get(); + if (scoped != null) { + return scoped; + } + return componentProvider; + } + + public static void pushScope(ComponentProvider scope) { + if (scopes.get() != null) { + throw new IllegalStateException("Only one additional scope is supported at this time"); + } + scopes.set(scope); + } + + public static void popScope(ComponentProvider scope) { + scopes.remove(); + } + + private static ThreadLocal scopes = new ThreadLocal(); /** * Returns a component from the currently set {@link ComponentProvider}.