[jboss-cvs] JBossAS SVN: r100308 - in projects/kernel/branches/resolver: dependency/src/main/java/org/jboss/dependency/plugins/resolver/indexing and 4 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Feb 2 18:23:06 EST 2010
Author: kabir.khan at jboss.com
Date: 2010-02-02 18:23:05 -0500 (Tue, 02 Feb 2010)
New Revision: 100308
Modified:
projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/AbstractController.java
projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/AbstractDependencyResolver.java
projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver/indexing/IndexingDependencyResolver.java
projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver/indexing/IndexingDependencyResolverFactory.java
projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver/indexing/NameDependencyResolverMatcher.java
projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver/indexing/NameDependencyResolverMatcherFactory.java
projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/spi/resolver/indexing/DependencyResolverMatcherFactory.java
projects/kernel/branches/resolver/kernel/src/main/java/org/jboss/kernel/plugins/resolver/indexing/CallbackDependencyResolverMatcherFactory.java
projects/kernel/branches/resolver/kernel/src/main/java/org/jboss/kernel/plugins/resolver/indexing/ClassDependencyResolverMatcherFactory.java
projects/kernel/branches/resolver/kernel/src/main/java/org/jboss/kernel/plugins/resolver/indexing/ContextualInjectionDependencyResolverMatcherFactory.java
projects/kernel/branches/resolver/kernel/src/main/java/org/jboss/kernel/plugins/resolver/indexing/SupplyDemandDependencyResolverMatcherFactory.java
projects/kernel/branches/resolver/kernel/src/test/java/org/jboss/test/kernel/deployment/test/ScopingAliasTestCase.java
projects/kernel/branches/resolver/kernel/src/test/resources/org/jboss/test/kernel/deployment/test/ScopingAliasTestCase.xml
Log:
More Scoped alias fixes
Modified: projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/AbstractController.java
===================================================================
--- projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/AbstractController.java 2010-02-02 22:30:15 UTC (rev 100307)
+++ projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/AbstractController.java 2010-02-02 23:23:05 UTC (rev 100308)
@@ -2456,7 +2456,7 @@
}
- AbstractDependencyResolver getDependencyResolver()
+ public AbstractDependencyResolver getDependencyResolver()
{
return dependencyResolver;
}
Modified: projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/AbstractDependencyResolver.java
===================================================================
--- projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/AbstractDependencyResolver.java 2010-02-02 22:30:15 UTC (rev 100307)
+++ projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/AbstractDependencyResolver.java 2010-02-02 23:23:05 UTC (rev 100308)
@@ -53,7 +53,7 @@
this.controller = (AbstractController)controller;
}
- protected Controller getController()
+ public Controller getController()
{
return controller;
}
Modified: projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver/indexing/IndexingDependencyResolver.java
===================================================================
--- projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver/indexing/IndexingDependencyResolver.java 2010-02-02 22:30:15 UTC (rev 100307)
+++ projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver/indexing/IndexingDependencyResolver.java 2010-02-02 23:23:05 UTC (rev 100308)
@@ -62,6 +62,11 @@
super(controller);
}
+ Set<Object> getAliases(Object original)
+ {
+ return nameMatcher.getAliases(original);
+ }
+
public void addMatcher(Class<? extends DependencyItem> clazz, DependencyResolverMatcher matcher)
{
matchers.put(clazz, matcher);
@@ -250,8 +255,6 @@
Set<ControllerContext> contexts = getAllContextsDependentOn(incremented);
if (contexts != null && contexts.size() > 0)
{
- getAllContextsDependentOn(incremented);
-
for (ControllerContext context : contexts)
{
if (context.getDependencyInfo() != null)
Modified: projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver/indexing/IndexingDependencyResolverFactory.java
===================================================================
--- projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver/indexing/IndexingDependencyResolverFactory.java 2010-02-02 22:30:15 UTC (rev 100307)
+++ projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver/indexing/IndexingDependencyResolverFactory.java 2010-02-02 23:23:05 UTC (rev 100308)
@@ -52,7 +52,7 @@
IndexingDependencyResolver resolver = internalCreateResolver(controller);
for (Map.Entry<Class<? extends DependencyItem>, DependencyResolverMatcherFactory<?>> entry : matchers.entrySet())
{
- resolver.addMatcher(entry.getKey(), entry.getValue().createMatcher());
+ resolver.addMatcher(entry.getKey(), entry.getValue().createMatcher(controller));
}
return resolver;
}
@@ -74,7 +74,7 @@
matchers.put(matcherFactory.getHandled(), matcherFactory);
for (IndexingDependencyResolver resolver : weakResolvers.keySet())
{
- resolver.addMatcher(matcherFactory.getHandled(), matcherFactory.createMatcher());
+ resolver.addMatcher(matcherFactory.getHandled(), matcherFactory.createMatcher(resolver.getController()));
}
}
Modified: projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver/indexing/NameDependencyResolverMatcher.java
===================================================================
--- projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver/indexing/NameDependencyResolverMatcher.java 2010-02-02 22:30:15 UTC (rev 100307)
+++ projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver/indexing/NameDependencyResolverMatcher.java 2010-02-02 23:23:05 UTC (rev 100308)
@@ -21,14 +21,17 @@
*/
package org.jboss.dependency.plugins.resolver.indexing;
+import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.Map;
import java.util.Set;
+import org.jboss.dependency.plugins.AbstractController;
import org.jboss.dependency.plugins.AbstractDependencyItem;
import org.jboss.dependency.plugins.AliasControllerContext;
+import org.jboss.dependency.spi.Controller;
import org.jboss.dependency.spi.ControllerContext;
import org.jboss.dependency.spi.ControllerState;
import org.jboss.dependency.spi.DependencyItem;
@@ -41,13 +44,36 @@
*/
public class NameDependencyResolverMatcher extends AbstractDependencyResolverMatcher
{
+ private final AbstractController controller;
+
/** key is original name, value is aliases */
private final Map<Object, Set<Object>> controllerRegisteredAliasLookup = new HashMap<Object, Set<Object>>();
- //private final Map<Object, ControllerContext> allContextsByName = new HashMap<Object, ControllerContext>();
-
private final Map<ControllerState, Map<Object, Set<ControllerContext>>> contextsByState = new HashMap<ControllerState, Map<Object, Set<ControllerContext>>>();
+ public NameDependencyResolverMatcher(Controller controller)
+ {
+ if (controller instanceof AbstractController == false)
+ throw new IllegalStateException("Controller is not of type AbstractController " + controller);
+ this.controller = (AbstractController)controller;
+ }
+
+ public Set<Object> getAliases(Object original)
+ {
+ lockRead();
+ try
+ {
+ Set<Object> aliases = controllerRegisteredAliasLookup.get(original);
+ if (aliases == null)
+ return Collections.emptySet();
+ return new HashSet<Object>(aliases);
+ }
+ finally
+ {
+ unlockRead();
+ }
+ }
+
public void registerControllerRegisteredAlias(Object alias, Object original)
{
lockWrite();
@@ -77,8 +103,10 @@
Map<Object, Set<ControllerContext>> contextsByName = contextsByState.get(context.getState());
+ //Look up the name directly
result = addContextsDependentOn(result, context.getName(), contextsByName);
+ //Check the aliases from BeanMetaData
Set<Object> aliases = context.getAliases();
if (aliases != null && aliases.size() > 0)
{
@@ -88,33 +116,44 @@
}
}
- aliases = controllerRegisteredAliasLookup.get(context.getName());
- if (aliases != null && aliases.size() > 0)
+ //Check the aliases from @Aliases
+ AbstractController controller = this.controller;
+ while (controller != null)
{
- for (Object alias : aliases)
- {
- result = addContextsDependentOn(result, alias, contextsByName);
- }
+ IndexingDependencyResolver resolver = (IndexingDependencyResolver)controller.getDependencyResolver();
+ aliases = resolver.getAliases(context.getName());
+// if (aliases != null && aliases.size() > 0)
+// {
+// for (Object alias : aliases)
+// {
+// result = addContextsDependentOn(result, alias, contextsByName);
+// }
+// }
+ result = addAliasContexts(result, contextsByName, aliases);
+ controller = controller.getParentController();
}
if (context instanceof AliasControllerContext)
{
+ //The alias might have been registered after the original context was installed
ControllerContext targetContext = context.getController().getContext(((AliasControllerContext)context).getOriginal(), null);
if (targetContext != null)
{
if (context.getState().equals(targetContext.getState()) || context.getController().getStates().isAfterState(targetContext.getState(), context.getState()))
{
aliases = controllerRegisteredAliasLookup.get(((AliasControllerContext)context).getOriginal());
- if (aliases != null && aliases.size() > 0)
- {
- for (Object alias : aliases)
- {
- result = addContextsDependentOn(result, alias, contextsByName);
- }
- }
- //result = addContextsDependentOn(result, context.getName(), contextsByName);
+ result = addAliasContexts(result, contextsByName, aliases);
}
}
+
+ controller = this.controller;
+ while (controller != null)
+ {
+ IndexingDependencyResolver resolver = (IndexingDependencyResolver)controller.getDependencyResolver();
+ aliases = resolver.getAliases(((AliasControllerContext)context).getOriginal());
+ result = addAliasContexts(result, contextsByName, aliases);
+ controller = controller.getParentController();
+ }
}
return result;
@@ -124,6 +163,18 @@
unlockRead();
}
}
+
+ protected Set<ControllerContext> addAliasContexts(Set<ControllerContext> result, Map<Object, Set<ControllerContext>> contextsByName, Set<Object> aliases)
+ {
+ if (aliases != null && aliases.size() > 0)
+ {
+ for (Object alias : aliases)
+ {
+ result = addContextsDependentOn(result, alias, contextsByName);
+ }
+ }
+ return result;
+ }
protected Set<ControllerContext> addContextsDependentOn(Set<ControllerContext> result, Object name, Map<Object, Set<ControllerContext>> contextsByName)
{
Modified: projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver/indexing/NameDependencyResolverMatcherFactory.java
===================================================================
--- projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver/indexing/NameDependencyResolverMatcherFactory.java 2010-02-02 22:30:15 UTC (rev 100307)
+++ projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver/indexing/NameDependencyResolverMatcherFactory.java 2010-02-02 23:23:05 UTC (rev 100308)
@@ -22,6 +22,7 @@
package org.jboss.dependency.plugins.resolver.indexing;
import org.jboss.dependency.plugins.AbstractDependencyItem;
+import org.jboss.dependency.spi.Controller;
import org.jboss.dependency.spi.resolver.indexing.DependencyResolverMatcher;
import org.jboss.dependency.spi.resolver.indexing.DependencyResolverMatcherFactory;
@@ -32,9 +33,9 @@
*/
public class NameDependencyResolverMatcherFactory implements DependencyResolverMatcherFactory<AbstractDependencyItem>
{
- public DependencyResolverMatcher createMatcher()
+ public DependencyResolverMatcher createMatcher(Controller controller)
{
- return new NameDependencyResolverMatcher();
+ return new NameDependencyResolverMatcher(controller);
}
public Class<AbstractDependencyItem> getHandled()
Modified: projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/spi/resolver/indexing/DependencyResolverMatcherFactory.java
===================================================================
--- projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/spi/resolver/indexing/DependencyResolverMatcherFactory.java 2010-02-02 22:30:15 UTC (rev 100307)
+++ projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/spi/resolver/indexing/DependencyResolverMatcherFactory.java 2010-02-02 23:23:05 UTC (rev 100308)
@@ -21,6 +21,7 @@
*/
package org.jboss.dependency.spi.resolver.indexing;
+import org.jboss.dependency.spi.Controller;
import org.jboss.dependency.spi.DependencyItem;
/**
@@ -32,5 +33,5 @@
{
Class<T> getHandled();
- DependencyResolverMatcher createMatcher();
+ DependencyResolverMatcher createMatcher(Controller controller);
}
Modified: projects/kernel/branches/resolver/kernel/src/main/java/org/jboss/kernel/plugins/resolver/indexing/CallbackDependencyResolverMatcherFactory.java
===================================================================
--- projects/kernel/branches/resolver/kernel/src/main/java/org/jboss/kernel/plugins/resolver/indexing/CallbackDependencyResolverMatcherFactory.java 2010-02-02 22:30:15 UTC (rev 100307)
+++ projects/kernel/branches/resolver/kernel/src/main/java/org/jboss/kernel/plugins/resolver/indexing/CallbackDependencyResolverMatcherFactory.java 2010-02-02 23:23:05 UTC (rev 100308)
@@ -21,6 +21,7 @@
*/
package org.jboss.kernel.plugins.resolver.indexing;
+import org.jboss.dependency.spi.Controller;
import org.jboss.dependency.spi.resolver.indexing.DependencyResolverMatcher;
import org.jboss.dependency.spi.resolver.indexing.DependencyResolverMatcherFactory;
import org.jboss.kernel.plugins.dependency.CallbackDependencyItem;
@@ -32,7 +33,7 @@
*/
public class CallbackDependencyResolverMatcherFactory implements DependencyResolverMatcherFactory<CallbackDependencyItem>
{
- public DependencyResolverMatcher createMatcher()
+ public DependencyResolverMatcher createMatcher(Controller controller)
{
return new CallbackDependencyResolverMatcher();
}
Modified: projects/kernel/branches/resolver/kernel/src/main/java/org/jboss/kernel/plugins/resolver/indexing/ClassDependencyResolverMatcherFactory.java
===================================================================
--- projects/kernel/branches/resolver/kernel/src/main/java/org/jboss/kernel/plugins/resolver/indexing/ClassDependencyResolverMatcherFactory.java 2010-02-02 22:30:15 UTC (rev 100307)
+++ projects/kernel/branches/resolver/kernel/src/main/java/org/jboss/kernel/plugins/resolver/indexing/ClassDependencyResolverMatcherFactory.java 2010-02-02 23:23:05 UTC (rev 100308)
@@ -21,6 +21,7 @@
*/
package org.jboss.kernel.plugins.resolver.indexing;
+import org.jboss.dependency.spi.Controller;
import org.jboss.dependency.spi.resolver.indexing.DependencyResolverMatcherFactory;
import org.jboss.kernel.plugins.dependency.ClassDependencyItem;
@@ -31,7 +32,7 @@
*/
public class ClassDependencyResolverMatcherFactory implements DependencyResolverMatcherFactory<ClassDependencyItem>
{
- public ClassDependencyResolverMatcher createMatcher()
+ public ClassDependencyResolverMatcher createMatcher(Controller controller)
{
return new ClassDependencyResolverMatcher();
}
Modified: projects/kernel/branches/resolver/kernel/src/main/java/org/jboss/kernel/plugins/resolver/indexing/ContextualInjectionDependencyResolverMatcherFactory.java
===================================================================
--- projects/kernel/branches/resolver/kernel/src/main/java/org/jboss/kernel/plugins/resolver/indexing/ContextualInjectionDependencyResolverMatcherFactory.java 2010-02-02 22:30:15 UTC (rev 100307)
+++ projects/kernel/branches/resolver/kernel/src/main/java/org/jboss/kernel/plugins/resolver/indexing/ContextualInjectionDependencyResolverMatcherFactory.java 2010-02-02 23:23:05 UTC (rev 100308)
@@ -22,6 +22,7 @@
package org.jboss.kernel.plugins.resolver.indexing;
import org.jboss.beans.metadata.plugins.ContextualInjectionDependencyItem;
+import org.jboss.dependency.spi.Controller;
import org.jboss.dependency.spi.resolver.indexing.DependencyResolverMatcherFactory;
/**
@@ -31,7 +32,7 @@
*/
public class ContextualInjectionDependencyResolverMatcherFactory implements DependencyResolverMatcherFactory<ContextualInjectionDependencyItem>
{
- public ContextualInjectionDependencyResolverMatcher createMatcher()
+ public ContextualInjectionDependencyResolverMatcher createMatcher(Controller controller)
{
return new ContextualInjectionDependencyResolverMatcher();
}
Modified: projects/kernel/branches/resolver/kernel/src/main/java/org/jboss/kernel/plugins/resolver/indexing/SupplyDemandDependencyResolverMatcherFactory.java
===================================================================
--- projects/kernel/branches/resolver/kernel/src/main/java/org/jboss/kernel/plugins/resolver/indexing/SupplyDemandDependencyResolverMatcherFactory.java 2010-02-02 22:30:15 UTC (rev 100307)
+++ projects/kernel/branches/resolver/kernel/src/main/java/org/jboss/kernel/plugins/resolver/indexing/SupplyDemandDependencyResolverMatcherFactory.java 2010-02-02 23:23:05 UTC (rev 100308)
@@ -22,6 +22,7 @@
package org.jboss.kernel.plugins.resolver.indexing;
import org.jboss.beans.metadata.plugins.AbstractDemandMetaData.DemandDependencyItem;
+import org.jboss.dependency.spi.Controller;
import org.jboss.dependency.spi.resolver.indexing.DependencyResolverMatcherFactory;
/**
@@ -31,7 +32,7 @@
*/
public class SupplyDemandDependencyResolverMatcherFactory implements DependencyResolverMatcherFactory<DemandDependencyItem>
{
- public SupplyDemandDependencyResolverMatcher createMatcher()
+ public SupplyDemandDependencyResolverMatcher createMatcher(Controller controller)
{
return new SupplyDemandDependencyResolverMatcher();
}
Modified: projects/kernel/branches/resolver/kernel/src/test/java/org/jboss/test/kernel/deployment/test/ScopingAliasTestCase.java
===================================================================
--- projects/kernel/branches/resolver/kernel/src/test/java/org/jboss/test/kernel/deployment/test/ScopingAliasTestCase.java 2010-02-02 22:30:15 UTC (rev 100307)
+++ projects/kernel/branches/resolver/kernel/src/test/java/org/jboss/test/kernel/deployment/test/ScopingAliasTestCase.java 2010-02-02 23:23:05 UTC (rev 100308)
@@ -43,25 +43,25 @@
return suite(ScopingAliasTestCase.class);
}
-// public void testAliasInMainController() throws Throwable
-// {
-// checkBean("main", "main");
-// }
-//
-// public void testAliasInOwnScope() throws Throwable
-// {
-// checkBean("deploy1", "deployment1");
-// }
+ public void testAliasInMainController() throws Throwable
+ {
+ checkBean("main", "main");
+ }
+ public void testAliasInOwnScope() throws Throwable
+ {
+ checkBean("deploy1", "deployment1");
+ }
+
public void testAliasInParentScope() throws Throwable
{
checkBean("deploy2", "main");
}
-// public void testAliasInOwnScope2() throws Throwable
-// {
-// checkBean("deploy3", "deployment3");
-// }
+ public void testAliasInOwnScope2() throws Throwable
+ {
+ checkBean("deploy3", "deployment3");
+ }
private void checkBean(String bean, String ctor)
{
Modified: projects/kernel/branches/resolver/kernel/src/test/resources/org/jboss/test/kernel/deployment/test/ScopingAliasTestCase.xml
===================================================================
--- projects/kernel/branches/resolver/kernel/src/test/resources/org/jboss/test/kernel/deployment/test/ScopingAliasTestCase.xml 2010-02-02 22:30:15 UTC (rev 100307)
+++ projects/kernel/branches/resolver/kernel/src/test/resources/org/jboss/test/kernel/deployment/test/ScopingAliasTestCase.xml 2010-02-02 23:23:05 UTC (rev 100308)
@@ -2,7 +2,7 @@
<deployment xmlns="urn:jboss:bean-deployer:2.0">
- <!-- bean name="main" class="org.jboss.test.kernel.deployment.support.SimpleObjectWithBean">
+ <bean name="main" class="org.jboss.test.kernel.deployment.support.SimpleObjectWithBean">
<property name="simpleBean"><inject bean="simple"/></property>
</bean>
@@ -10,7 +10,7 @@
<annotation>@org.jboss.metadata.plugins.scope.ApplicationScope("testApp")</annotation>
<annotation>@org.jboss.metadata.plugins.scope.DeploymentScope("deployment1")</annotation>
<property name="simpleBean"><inject bean="simple"/></property>
- </bean-->
+ </bean>
<bean name="deploy2" class="org.jboss.test.kernel.deployment.support.SimpleObjectWithBean">
<annotation>@org.jboss.metadata.plugins.scope.ApplicationScope("testApp")</annotation>
@@ -18,7 +18,7 @@
<property name="simpleBean"><inject bean="simple"/></property>
</bean>
- <!-- bean name="deploy3" class="org.jboss.test.kernel.deployment.support.SimpleObjectWithBean">
+ <bean name="deploy3" class="org.jboss.test.kernel.deployment.support.SimpleObjectWithBean">
<annotation>@org.jboss.metadata.plugins.scope.ApplicationScope("testApp")</annotation>
<annotation>@org.jboss.metadata.plugins.scope.DeploymentScope("deployment3")</annotation>
<property name="simpleBean"><inject bean="simple"/></property>
@@ -40,7 +40,7 @@
<constructor>
<parameter>deployment3</parameter>
</constructor>
- </bean-->
+ </bean>
<bean name="simple-main" class="org.jboss.test.kernel.deployment.support.SimpleBeanImpl">
<annotation>@org.jboss.beans.metadata.api.annotations.Aliases(value={"simple"})</annotation>
More information about the jboss-cvs-commits
mailing list