On Mon, Dec 13, 2010 at 17:51, Thomas Mortagne <[email protected]> wrote:
On Mon, Dec 13, 2010 at 17:25, Vincent Massol <[email protected]> wrote:
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?
No I would never do that, I actually remember that I fixed the same thing already in other places ;)
(remember now, was for components events)
Looking at the components instances cache does not make any sense.
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")); + } }
_______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
-- Thomas Mortagne
-- Thomas Mortagne