On Dec 13, 2010, at 5:16 PM, tmortagne (SVN) wrote:
Author: tmortagne
Date: 2010-12-13 17:16:56 +0100 (Mon, 13 Dec 2010)
New Revision: 33366
Modified:
platform/core/trunk/xwiki-component/xwiki-component-default/src/main/java/org/xwiki/component/embed/EmbeddableComponentManager.java
platform/core/trunk/xwiki-component/xwiki-component-default/src/test/java/org/xwiki/component/embed/EmbeddableComponentManagerTest.java
Log:
XWIKI-5792: ComponentManager#hasComponent does not work if the component has not already
been lookuped
Modified:
platform/core/trunk/xwiki-component/xwiki-component-default/src/main/java/org/xwiki/component/embed/EmbeddableComponentManager.java
===================================================================
---
platform/core/trunk/xwiki-component/xwiki-component-default/src/main/java/org/xwiki/component/embed/EmbeddableComponentManager.java 2010-12-13
16:03:58 UTC (rev 33365)
+++
platform/core/trunk/xwiki-component/xwiki-component-default/src/main/java/org/xwiki/component/embed/EmbeddableComponentManager.java 2010-12-13
16:16:56 UTC (rev 33366)
@@ -93,7 +93,7 @@
*/
public <T> boolean hasComponent(Class<T> role, String roleHint)
{
- return this.components.containsKey(new RoleHint<T>(role, roleHint));
+ return this.descriptors.containsKey(new RoleHint<T>(role, roleHint));
Isn't this what we used to have and you changed it because you wanted hasComponent to
return true if the component had been instantiated vs the component had been registered,
no?
Thanks
-Vincent
}
/**
@@ -103,7 +103,7 @@
*/
public <T> boolean hasComponent(Class<T> role)
{
- return this.components.containsKey(new RoleHint<T>(role));
+ return this.descriptors.containsKey(new RoleHint<T>(role));
}
/**
Modified:
platform/core/trunk/xwiki-component/xwiki-component-default/src/test/java/org/xwiki/component/embed/EmbeddableComponentManagerTest.java
===================================================================
---
platform/core/trunk/xwiki-component/xwiki-component-default/src/test/java/org/xwiki/component/embed/EmbeddableComponentManagerTest.java 2010-12-13
16:03:58 UTC (rev 33365)
+++
platform/core/trunk/xwiki-component/xwiki-component-default/src/test/java/org/xwiki/component/embed/EmbeddableComponentManagerTest.java 2010-12-13
16:16:56 UTC (rev 33366)
@@ -180,4 +180,18 @@
parent.registerComponent(cd);
return parent;
}
+
+ @Test
+ public void testHasComponent() throws Exception
+ {
+ EmbeddableComponentManager ecm = new EmbeddableComponentManager();
+
+ DefaultComponentDescriptor<Role> d1 = new
DefaultComponentDescriptor<Role>();
+ d1.setRole(Role.class);
+ d1.setRoleHint("default");
+ ecm.registerComponent(d1);
+
+ Assert.assertTrue(ecm.hasComponent(Role.class));
+ Assert.assertTrue(ecm.hasComponent(Role.class, "default"));
+ }
}