[jboss-cvs] JBossAS SVN: r76833 - in projects/microcontainer/trunk: dependency/src/main/org/jboss/dependency/spi and 6 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Fri Aug 8 11:11:07 EDT 2008
Author: adrian at jboss.org
Date: 2008-08-08 11:11:04 -0400 (Fri, 08 Aug 2008)
New Revision: 76833
Added:
projects/microcontainer/trunk/dependency/src/tests/org/jboss/test/dependency/controller/test/PreconfiguredScopeTestCase.java
Modified:
projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/plugins/AbstractScopeInfo.java
projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/spi/ScopeInfo.java
projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/spi/helpers/UnmodifiableScopeInfo.java
projects/microcontainer/trunk/dependency/src/tests/org/jboss/test/dependency/controller/test/ControllerTestSuite.java
projects/microcontainer/trunk/kernel/pom.xml
projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/KernelScopeInfo.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/metadata/basic/BasicKernelMetaDataRepository.java
projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/DeploymentTestSuite.java
Log:
[JBMICROCONT-330] - Don't override metadata contexts if they already exist and only remove contexts we create. Additionally some refactoring see the forum thread attached to the JIRA issue.
Modified: projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/plugins/AbstractScopeInfo.java
===================================================================
--- projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/plugins/AbstractScopeInfo.java 2008-08-08 14:37:38 UTC (rev 76832)
+++ projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/plugins/AbstractScopeInfo.java 2008-08-08 15:11:04 UTC (rev 76833)
@@ -21,11 +21,18 @@
*/
package org.jboss.dependency.plugins;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.CopyOnWriteArraySet;
+
import org.jboss.dependency.spi.ControllerContext;
import org.jboss.dependency.spi.ScopeInfo;
import org.jboss.logging.Logger;
+import org.jboss.metadata.plugins.context.AbstractMetaDataContext;
import org.jboss.metadata.plugins.loader.memory.MemoryMetaDataLoader;
import org.jboss.metadata.spi.MetaData;
+import org.jboss.metadata.spi.context.MetaDataContext;
+import org.jboss.metadata.spi.loader.MutableMetaDataLoader;
import org.jboss.metadata.spi.repository.MutableMetaDataRepository;
import org.jboss.metadata.spi.retrieval.MetaDataRetrieval;
import org.jboss.metadata.spi.scope.CommonLevels;
@@ -55,6 +62,9 @@
/** The repository */
private MutableMetaDataRepository repository;
+ /** The added scopes */
+ private CopyOnWriteArraySet<ScopeKey> addedScopes = new CopyOnWriteArraySet<ScopeKey>();
+
/**
* Create a new AbstractScopeInfo.
*
@@ -109,8 +119,38 @@
{
this.repository = repository;
ScopeKey scope = getMutableScope();
- MemoryMetaDataLoader mutable = new MemoryMetaDataLoader(scope);
- repository.addMetaDataRetrieval(mutable);
+ MetaDataRetrieval retrieval = repository.getMetaDataRetrieval(scope);
+ MutableMetaDataLoader mutable = null;
+ if (retrieval == null)
+ {
+ mutable = initMutableMetaDataRetrieval(repository, context, scope);
+ repository.addMetaDataRetrieval(mutable);
+ addedScopes.add(scope);
+ }
+ else if (retrieval instanceof MutableMetaDataLoader)
+ {
+ mutable = (MutableMetaDataLoader) retrieval;
+ }
+ else if (retrieval instanceof MetaDataContext)
+ {
+ MetaDataContext metaDataContext = (MetaDataContext) retrieval;
+ List<MetaDataRetrieval> locals = metaDataContext.getLocalRetrievals();
+ if (locals != null)
+ {
+ for (MetaDataRetrieval local : locals)
+ {
+ if (local instanceof MutableMetaDataLoader)
+ mutable = (MutableMetaDataLoader) local;
+ }
+ }
+ }
+
+ if (mutable == null)
+ {
+ log.warn("MetaData context is not mutable: " + retrieval + " for " + context.toShortString());
+ return;
+ }
+
addMetaData(repository, context, mutable);
}
@@ -121,43 +161,66 @@
* @param context the context
* @param mutable the mutable
*/
- protected void addMetaData(MutableMetaDataRepository repository, ControllerContext context, MemoryMetaDataLoader mutable)
+ protected void addMetaData(MutableMetaDataRepository repository, ControllerContext context, MutableMetaDataLoader mutable)
{
// nothing
}
public void removeMetaData(MutableMetaDataRepository repository, ControllerContext context)
{
- // Remove the read only/full scope
- try
+ for (ScopeKey scope : addedScopes)
{
- ScopeKey scope = getScope();
- repository.removeMetaDataRetrieval(scope);
+ try
+ {
+ repository.removeMetaDataRetrieval(scope);
+ }
+ catch (Exception e)
+ {
+ log.trace("Ignored", e);
+ }
}
- catch (Exception e)
- {
- log.trace("Ignored", e);
- }
- try
- {
- // Remove the mutable scope
- ScopeKey scope = getMutableScope();
- repository.removeMetaDataRetrieval(scope);
- }
- catch (Exception e)
- {
- log.trace("Ignored", e);
- }
+ addedScopes.clear();
this.repository = null;
}
+ public MutableMetaDataLoader initMutableMetaDataRetrieval(MutableMetaDataRepository repository, ControllerContext context, ScopeKey scopeKey)
+ {
+ return new MemoryMetaDataLoader(scopeKey);
+ }
+
public MetaDataRetrieval initMetaDataRetrieval(MutableMetaDataRepository repository, ControllerContext context, Scope scope)
{
// Nothing
return null;
}
+ public MetaDataRetrieval initMetaDataRetrieval(MutableMetaDataRepository repository, ControllerContext context)
+ {
+ ScopeKey scopeKey = getScope();
+ List<MetaDataRetrieval> retrievals = new ArrayList<MetaDataRetrieval>();
+ for (Scope scope : scopeKey.getScopes())
+ {
+ ScopeKey thisScope = new ScopeKey(scope);
+ MetaDataRetrieval retrieval = repository.getMetaDataRetrieval(thisScope);
+ if (retrieval == null)
+ {
+ retrieval = initMetaDataRetrieval(repository, context, scope);
+ if (retrieval == null)
+ {
+ retrieval = initMutableMetaDataRetrieval(repository, context, thisScope);
+ repository.addMetaDataRetrieval(retrieval);
+ addedScopes.add(thisScope);
+ }
+ }
+ retrievals.add(0, retrieval);
+ }
+ MetaDataContext metaDataContext = createMetaDataContext(retrievals);
+ repository.addMetaDataRetrieval(metaDataContext);
+ addedScopes.add(metaDataContext.getScope());
+ return metaDataContext;
+ }
+
public ScopeKey getScope()
{
return scopeKey;
@@ -191,4 +254,15 @@
{
this.installScope = key;
}
+
+ /**
+ * Create metadata context.
+ *
+ * @param retrievals the retrievals
+ * @return new metadata context instance
+ */
+ protected MetaDataContext createMetaDataContext(List<MetaDataRetrieval> retrievals)
+ {
+ return new AbstractMetaDataContext(null, retrievals);
+ }
}
Modified: projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/spi/ScopeInfo.java
===================================================================
--- projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/spi/ScopeInfo.java 2008-08-08 14:37:38 UTC (rev 76832)
+++ projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/spi/ScopeInfo.java 2008-08-08 15:11:04 UTC (rev 76833)
@@ -69,6 +69,15 @@
MetaDataRetrieval initMetaDataRetrieval(MutableMetaDataRepository repository, ControllerContext context, Scope scope);
/**
+ * Initialise the main metadata retrieval
+ *
+ * @param repository the repository
+ * @param context the context
+ * @return the retrieval
+ */
+ MetaDataRetrieval initMetaDataRetrieval(MutableMetaDataRepository repository, ControllerContext context);
+
+ /**
* Get the scope
*
* @return the scope
Modified: projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/spi/helpers/UnmodifiableScopeInfo.java
===================================================================
--- projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/spi/helpers/UnmodifiableScopeInfo.java 2008-08-08 14:37:38 UTC (rev 76832)
+++ projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/spi/helpers/UnmodifiableScopeInfo.java 2008-08-08 15:11:04 UTC (rev 76833)
@@ -67,6 +67,11 @@
throw new UnsupportedOperationException("Cannot modify immutable");
}
+ public MetaDataRetrieval initMetaDataRetrieval(MutableMetaDataRepository repository, ControllerContext context)
+ {
+ throw new UnsupportedOperationException("Cannot modify immutable");
+ }
+
public MetaData getMetaData()
{
return delegate.getMetaData();
Modified: projects/microcontainer/trunk/dependency/src/tests/org/jboss/test/dependency/controller/test/ControllerTestSuite.java
===================================================================
--- projects/microcontainer/trunk/dependency/src/tests/org/jboss/test/dependency/controller/test/ControllerTestSuite.java 2008-08-08 14:37:38 UTC (rev 76832)
+++ projects/microcontainer/trunk/dependency/src/tests/org/jboss/test/dependency/controller/test/ControllerTestSuite.java 2008-08-08 15:11:04 UTC (rev 76833)
@@ -57,6 +57,7 @@
suite.addTest(AliasUnitTestCase.suite());
suite.addTest(ShutdownControllerTestCase.suite());
suite.addTest(BadDependencyInfoTestCase.suite());
+ suite.addTest(PreconfiguredScopeTestCase.suite());
return suite;
}
Added: projects/microcontainer/trunk/dependency/src/tests/org/jboss/test/dependency/controller/test/PreconfiguredScopeTestCase.java
===================================================================
--- projects/microcontainer/trunk/dependency/src/tests/org/jboss/test/dependency/controller/test/PreconfiguredScopeTestCase.java (rev 0)
+++ projects/microcontainer/trunk/dependency/src/tests/org/jboss/test/dependency/controller/test/PreconfiguredScopeTestCase.java 2008-08-08 15:11:04 UTC (rev 76833)
@@ -0,0 +1,174 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2005, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.test.dependency.controller.test;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import junit.framework.Test;
+
+import org.jboss.dependency.plugins.AbstractControllerContext;
+import org.jboss.dependency.spi.ControllerState;
+import org.jboss.dependency.spi.ScopeInfo;
+import org.jboss.metadata.plugins.context.AbstractMetaDataContext;
+import org.jboss.metadata.plugins.loader.memory.MemoryMetaDataLoader;
+import org.jboss.metadata.plugins.repository.basic.BasicMetaDataRepository;
+import org.jboss.metadata.spi.MetaData;
+import org.jboss.metadata.spi.context.MetaDataContext;
+import org.jboss.metadata.spi.repository.MutableMetaDataRepository;
+import org.jboss.metadata.spi.retrieval.MetaDataRetrieval;
+import org.jboss.metadata.spi.scope.Scope;
+import org.jboss.metadata.spi.scope.ScopeKey;
+
+/**
+ * PreconfiguredScopeTestCase.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class PreconfiguredScopeTestCase extends AbstractDependencyTest
+{
+ public static Test suite()
+ {
+ return suite(PreconfiguredScopeTestCase.class);
+ }
+
+ protected MutableMetaDataRepository repository = new BasicMetaDataRepository();
+
+ public PreconfiguredScopeTestCase(String name)
+ {
+ super(name);
+ }
+
+ public void testPreconfiguredScope() throws Throwable
+ {
+ TestControllerContext test = new TestControllerContext("test");
+
+ ScopeInfo scopeInfo = test.getScopeInfo();
+
+ // Preconfigure the mutable scope
+ ScopeKey mutable = scopeInfo.getMutableScope();
+ MemoryMetaDataLoader loader = new MemoryMetaDataLoader(mutable);
+ loader.addMetaData("Preconfigured", "testPreconfigured", String.class);
+ repository.addMetaDataRetrieval(loader);
+
+ // Setup the full scope
+ ScopeKey scopeKey = scopeInfo.getScope();
+ List<MetaDataRetrieval> retrievals = new ArrayList<MetaDataRetrieval>();
+ for (Scope scope : scopeKey.getScopes())
+ {
+ ScopeKey thisScope = new ScopeKey(scope);
+ MetaDataRetrieval retrieval = repository.getMetaDataRetrieval(thisScope);
+ if (retrieval == null)
+ retrieval = new MemoryMetaDataLoader(thisScope);
+ retrievals.add(0, retrieval);
+ }
+ MetaDataContext metaDataContext = new AbstractMetaDataContext(null, retrievals);
+ repository.addMetaDataRetrieval(metaDataContext);
+
+ try
+ {
+ controller.install(test);
+
+ MetaData metaData = scopeInfo.getMetaData();
+ assertNotNull(metaData);
+
+ assertEquals("testPreconfigured", metaData.getMetaData("Preconfigured"));
+ assertEquals("testFromInstall", metaData.getMetaData("FromInstall"));
+ }
+ finally
+ {
+ controller.uninstall(test.getName());
+ }
+
+ assertNotNull(repository.getMetaDataRetrieval(mutable));
+ assertNotNull(repository.getMetaDataRetrieval(scopeKey));
+
+ MetaData metaData = repository.getMetaData(scopeKey);
+ assertNotNull(metaData);
+ assertEquals("testPreconfigured", metaData.getMetaData("Preconfigured"));
+ assertNull(metaData.getMetaData("FromInstall"));
+ }
+
+ public void testNotPreconfiguredScope() throws Throwable
+ {
+ TestControllerContext test = new TestControllerContext("test");
+
+ ScopeInfo scopeInfo = test.getScopeInfo();
+ ScopeKey mutable = scopeInfo.getMutableScope();
+ ScopeKey scopeKey = scopeInfo.getScope();
+ try
+ {
+ controller.install(test);
+
+ MetaData metaData = scopeInfo.getMetaData();
+ assertNotNull(metaData);
+ assertEquals("testFromInstall", metaData.getMetaData("FromInstall"));
+ }
+ finally
+ {
+ controller.uninstall(test.getName());
+ }
+
+ assertNull(repository.getMetaDataRetrieval(mutable));
+ assertNull(repository.getMetaDataRetrieval(scopeKey));
+ }
+
+ public class TestControllerContext extends AbstractControllerContext
+ {
+ public TestControllerContext(Object name)
+ {
+ super(name, new Object());
+ }
+
+ @Override
+ public void install(ControllerState fromState, ControllerState toState) throws Throwable
+ {
+ if (toState.equals(ControllerState.INSTANTIATED))
+ {
+ ScopeInfo scopeInfo = getScopeInfo();
+ scopeInfo.addMetaData(repository, this);
+ ScopeKey scope = scopeInfo.getMutableScope();
+ MemoryMetaDataLoader loader = (MemoryMetaDataLoader) repository.getMetaDataRetrieval(scope);
+ loader.addMetaData("FromInstall", "testFromInstall", String.class);
+
+ // Initialise the full key
+ ScopeKey full = scopeInfo.getScope();
+ if (repository.getMetaDataRetrieval(full) == null)
+ scopeInfo.initMetaDataRetrieval(repository, this);
+ }
+ }
+
+ @Override
+ public void uninstall(ControllerState fromState, ControllerState toState)
+ {
+ if (fromState.equals(ControllerState.INSTANTIATED))
+ {
+ ScopeInfo scopeInfo = getScopeInfo();
+ ScopeKey scope = scopeInfo.getMutableScope();
+ MemoryMetaDataLoader loader = (MemoryMetaDataLoader) repository.getMetaDataRetrieval(scope);
+ loader.removeMetaData("FromInstall", String.class);
+ scopeInfo.removeMetaData(repository, this);
+ }
+ }
+ }
+}
Modified: projects/microcontainer/trunk/kernel/pom.xml
===================================================================
--- projects/microcontainer/trunk/kernel/pom.xml 2008-08-08 14:37:38 UTC (rev 76832)
+++ projects/microcontainer/trunk/kernel/pom.xml 2008-08-08 15:11:04 UTC (rev 76833)
@@ -36,9 +36,9 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
- <!--configuration>
+ <configuration>
<testFailureIgnore>true</testFailureIgnore>
- </configuration-->
+ </configuration>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/KernelScopeInfo.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/KernelScopeInfo.java 2008-08-08 14:37:38 UTC (rev 76832)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/KernelScopeInfo.java 2008-08-08 15:11:04 UTC (rev 76833)
@@ -32,7 +32,10 @@
import org.jboss.dependency.spi.ControllerContext;
import org.jboss.kernel.plugins.config.Configurator;
import org.jboss.kernel.spi.dependency.KernelControllerContext;
+import org.jboss.logging.Logger;
import org.jboss.metadata.plugins.loader.memory.MemoryMetaDataLoader;
+import org.jboss.metadata.spi.ComponentMutableMetaData;
+import org.jboss.metadata.spi.loader.MutableMetaDataLoader;
import org.jboss.metadata.spi.repository.MutableMetaDataRepository;
import org.jboss.metadata.spi.scope.CommonLevels;
import org.jboss.metadata.spi.scope.Scope;
@@ -50,6 +53,9 @@
*/
public class KernelScopeInfo extends AbstractScopeInfo
{
+ /** The log */
+ private static final Logger log = Logger.getLogger(KernelScopeInfo.class);
+
/** The bean metadata */
private BeanMetaData beanMetaData;
@@ -102,13 +108,16 @@
}
@Override
- public void addMetaData(MutableMetaDataRepository repository, ControllerContext context, MemoryMetaDataLoader mutable)
+ public void addMetaData(MutableMetaDataRepository repository, ControllerContext context, MutableMetaDataLoader mutable)
{
if (context instanceof KernelControllerContext == false)
return;
KernelControllerContext theContext = (KernelControllerContext) context;
addClassAnnotations(mutable, theContext);
- addPropertyAnnotations(mutable, theContext);
+ if (mutable instanceof ComponentMutableMetaData)
+ addPropertyAnnotations((ComponentMutableMetaData) mutable, theContext);
+ else
+ log.warn("Unable to add properties to mutable metadata that does not support components: " + mutable + " for " + context.toShortString());
}
/**
@@ -117,7 +126,7 @@
* @param mutable the mutable metadata
* @param context the context
*/
- private void addClassAnnotations(MemoryMetaDataLoader mutable, KernelControllerContext context)
+ private void addClassAnnotations(MutableMetaDataLoader mutable, KernelControllerContext context)
{
BeanMetaData beanMetaData = context.getBeanMetaData();
if (beanMetaData != null)
@@ -141,7 +150,7 @@
* @param mutable the mutable
* @param context the kernel controller contex
*/
- private void addPropertyAnnotations(MemoryMetaDataLoader mutable, KernelControllerContext context)
+ private void addPropertyAnnotations(ComponentMutableMetaData mutable, KernelControllerContext context)
{
BeanMetaData beanMetaData = context.getBeanMetaData();
if (beanMetaData == null)
@@ -177,7 +186,7 @@
* @param propertyMetaData the property
* @param beanInfo the bean info
*/
- private void addPropertyAnnotations(ClassLoader classloader, MemoryMetaDataLoader mutable, PropertyMetaData propertyMetaData, BeanInfo beanInfo)
+ private void addPropertyAnnotations(ClassLoader classloader, ComponentMutableMetaData mutable, PropertyMetaData propertyMetaData, BeanInfo beanInfo)
{
Set<AnnotationMetaData> propertyAnnotations = propertyMetaData.getAnnotations();
if (propertyAnnotations == null || propertyAnnotations.size() == 0)
@@ -205,7 +214,7 @@
* @param methodInfo the method info
* @param annotations the annotations
*/
- private void addAnnotations(ClassLoader classloader, MemoryMetaDataLoader mutable, MethodInfo methodInfo, Set<AnnotationMetaData> annotations)
+ private void addAnnotations(ClassLoader classloader, ComponentMutableMetaData mutable, MethodInfo methodInfo, Set<AnnotationMetaData> annotations)
{
ScopeKey scope = new ScopeKey(CommonLevels.JOINPOINT_OVERRIDE, methodInfo.getName());
MemoryMetaDataLoader loader = new MemoryMetaDataLoader(scope);
@@ -221,7 +230,7 @@
* @param fieldInfo the field info
* @param annotations the annotations
*/
- private void addAnnotations(ClassLoader classloader, MemoryMetaDataLoader mutable, FieldInfo fieldInfo, Set<AnnotationMetaData> annotations)
+ private void addAnnotations(ClassLoader classloader, ComponentMutableMetaData mutable, FieldInfo fieldInfo, Set<AnnotationMetaData> annotations)
{
ScopeKey scope = new ScopeKey(CommonLevels.JOINPOINT_OVERRIDE, fieldInfo.getName());
MemoryMetaDataLoader loader = new MemoryMetaDataLoader(scope);
@@ -236,7 +245,7 @@
* @param mutable the mutable metadata
* @param annotations the annotations
*/
- private void addAnnotations(ClassLoader classloader, MemoryMetaDataLoader mutable, Set<AnnotationMetaData> annotations)
+ private void addAnnotations(ClassLoader classloader, MutableMetaDataLoader mutable, Set<AnnotationMetaData> annotations)
{
if (annotations == null || annotations.size() == 0)
return;
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/metadata/basic/BasicKernelMetaDataRepository.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/metadata/basic/BasicKernelMetaDataRepository.java 2008-08-08 14:37:38 UTC (rev 76832)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/metadata/basic/BasicKernelMetaDataRepository.java 2008-08-08 15:11:04 UTC (rev 76833)
@@ -21,20 +21,13 @@
*/
package org.jboss.kernel.plugins.metadata.basic;
-import java.util.ArrayList;
-import java.util.List;
-
import org.jboss.dependency.spi.ControllerContext;
import org.jboss.dependency.spi.ScopeInfo;
import org.jboss.kernel.plugins.metadata.AbstractKernelMetaDataRepository;
-import org.jboss.metadata.plugins.context.AbstractMetaDataContext;
-import org.jboss.metadata.plugins.loader.memory.MemoryMetaDataLoader;
import org.jboss.metadata.plugins.repository.basic.BasicMetaDataRepository;
import org.jboss.metadata.spi.MetaData;
-import org.jboss.metadata.spi.context.MetaDataContext;
import org.jboss.metadata.spi.repository.MutableMetaDataRepository;
import org.jboss.metadata.spi.retrieval.MetaDataRetrieval;
-import org.jboss.metadata.spi.scope.Scope;
import org.jboss.metadata.spi.scope.ScopeKey;
/**
@@ -102,36 +95,6 @@
{
MutableMetaDataRepository repository = getMetaDataRepository();
ScopeInfo scopeInfo = context.getScopeInfo();
- ScopeKey scopeKey = scopeInfo.getScope();
- List<MetaDataRetrieval> retrievals = new ArrayList<MetaDataRetrieval>();
- for (Scope scope : scopeKey.getScopes())
- {
- ScopeKey thisScope = new ScopeKey(scope);
- MetaDataRetrieval retrieval = repository.getMetaDataRetrieval(thisScope);
- if (retrieval == null)
- {
- retrieval = scopeInfo.initMetaDataRetrieval(repository, context, scope);
- if (retrieval == null)
- {
- retrieval = new MemoryMetaDataLoader(thisScope);
- repository.addMetaDataRetrieval(retrieval);
- }
- }
- retrievals.add(0, retrieval);
- }
- MetaDataContext metaDataContext = createMetaDataContext(retrievals);
- repository.addMetaDataRetrieval(metaDataContext);
- return metaDataContext;
+ return scopeInfo.initMetaDataRetrieval(repository, context);
}
-
- /**
- * Create metadata context.
- *
- * @param retrievals the retrievals
- * @return new metadata context instance
- */
- protected MetaDataContext createMetaDataContext(List<MetaDataRetrieval> retrievals)
- {
- return new AbstractMetaDataContext(null, retrievals);
- }
}
Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/DeploymentTestSuite.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/DeploymentTestSuite.java 2008-08-08 14:37:38 UTC (rev 76832)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/DeploymentTestSuite.java 2008-08-08 15:11:04 UTC (rev 76833)
@@ -66,6 +66,7 @@
suite.addTest(AnonymousBeansTestCase.suite());
suite.addTest(AnonymousBeansXMLTestCase.suite());
suite.addTest(MutableMetaDataTestCase.suite());
+ suite.addTest(ScopingOverrideTestCase.suite());
// bean container tests
suite.addTest(BeanContainerUsageTestCase.suite());
suite.addTest(BeanContainerUsageMDTestCase.suite());
More information about the jboss-cvs-commits
mailing list