On Mon, Dec 13, 2010 at 17:25, Vincent Massol <vinc...@massol.net> 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 ;)

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
> devs@xwiki.org
> http://lists.xwiki.org/mailman/listinfo/devs
>



-- 
Thomas Mortagne
_______________________________________________
devs mailing list
devs@xwiki.org
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to