tapestry-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Thiago H. de Paula Figueiredo (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (TAP5-2263) IOC decorator matching bug
Date Tue, 16 Jun 2015 16:00:05 GMT

    [ https://issues.apache.org/jira/browse/TAP5-2263?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14588270#comment-14588270
] 

Thiago H. de Paula Figueiredo commented on TAP5-2263:
-----------------------------------------------------

[~jkemnade] Nope. Would you like to take it? I haven't actually started this one.

> IOC decorator matching bug
> --------------------------
>
>                 Key: TAP5-2263
>                 URL: https://issues.apache.org/jira/browse/TAP5-2263
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-ioc
>    Affects Versions: 5.4
>            Reporter: Adriaan Joubert
>            Assignee: Thiago H. de Paula Figueiredo
>              Labels: easyfix
>
> In our implementation we have a factory service CacheFactory, with markers, that is injected
into a Cache service with the same markers (say @MarkerA). In tests, I wish to replace the
CacheFactory with
> @Decorate
> @MarkerA
> public CacheFactory decorate(...) {}
> However I get an error that the decorate method returns the wrong type. 
> The cause is that the matching of the decorators in the module implementation does not
match on ServiceDef and markers. Specifically in 
> ModuleImpl.findMatchingDecoratorDefs there is a condition
> if (def.matches(serviceDef) || markerMatched(serviceDef, InternalUtils.toDecoratorDef2(def)))
>                 result.add(def);
> which needs to be
> if (def.matches(serviceDef) && markerMatched(serviceDef, InternalUtils.toDecoratorDef2(def)))
>                 result.add(def);
> to fix the problem. With the || it matches unrelated service definitions with the same
markers.
> Thanks!



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message