Yep, doing something like that. Here is the package in the code that implements 
the bridge:

https://github.com/bootique/bootique-tapestry/tree/master/src/main/java/io/bootique/tapestry/di

Comments, suggestions and pull requests are welcome.

Andrus

> On Dec 19, 2016, at 8:19 PM, Thiago H. de Paula Figueiredo 
> <thiag...@gmail.com> wrote:
> 
> Hi!
> 
> Maybe you could try contributing an ObjectProvider to MasterObjectProvider
> if you haven't done so yet (I'm sorry, I'm curious to see your Guice to
> Tapestry-IoC implementation, but I haven't had the time to do it yet).
> 
> On Fri, Dec 16, 2016 at 5:12 AM, Andrus Adamchik <and...@objectstyle.com>
> wrote:
> 
>>> I haven't found yet a situation in which I wanted something
>>> like that.
>>> I've see people creating a MyServiceSource service, for example,
>>> which then provides the type-specific services, though. I'm more of a fan
>>> of having specific subclasses or implementations for each type in most
>>> cases. :)
>> 
>> Designing around functional concepts leads to more shallow parameterized
>> class hierarchies. So yeah, subclassing could have been a solution, just
>> not an ideal one. My scenario was an object factory service to be used
>> inside page 'onActivate' to decode EventContext following some internal
>> "protocol" (not a replacement of ValueEncoder, but rather something that
>> works on top of encoders). E.g.:
>> 
>> class PersonEditorPage {
>> 
>>  @Inject
>>  Factory<Person> factory;
>> }
>> 
>> 
>> class DepartmentEditorPage {
>> 
>>  @Inject
>>  Factory<Department> factory;
>> }
>> 
>> Essentially there's a single factory class encapsulating parsing
>> EventContext sequence. Entity-specific business logic is encapsulated as
>> lambdas inside that class.
>> 
>> Ended up creating factories on every page from scratch inside
>> 'pageLoaded'. Not ideal, as this requires injection of extra services that
>> the page itself doesn't care about. Still with a common page superclass and
>> redefining necessary lambdas on each page, the end result doesn't look too
>> bad.
>> 
>> Will need to explore service IDs at some point as mentioned by Lance.
>> 
>> Thanks,
>> Andrus
>> 
>> 
>> 
>> 
>>> On Dec 14, 2016, at 11:06 PM, Thiago H. de Paula Figueiredo <
>> thiag...@gmail.com> wrote:
>>> 
>>> Hi!
>>> 
>>> On Tue, Dec 13, 2016 at 5:31 AM, Andrus Adamchik <and...@objectstyle.com
>>> 
>>> wrote:
>>> 
>>>> From what I gather Tapestry 5.4 still does not support parameterized
>>>> service injection?
>>> 
>>> 
>>> It does not. I haven't found yet a situation in which I wanted something
>>> like that. I've see people creating a MyServiceSource service, for
>> example,
>>> which then provides the type-specific services, though. I'm more of a fan
>>> of having specific subclasses or implementations for each type in most
>>> cases. :)
>>> 
>>> On the other hand, you could use marker annotations to avoid the
>>> MyServiceSouce service above, so maybe that's a path you can use as the
>>> source of inspiration in case you want to add parameterized service
>>> injection to Tapestry-IoC. We're open for contributions. :)
>>> 
>>> 
>>>> E.g. in the following example both s1 and s2 will map to the same DI key
>>>> of the bare class:
>>>> 
>>>> @Inject
>>>> private MyService<MyType1> s1;
>>>> 
>>>> @Inject
>>>> private MyService<MyType2> s2;
>>>> 
>>>> I am running Tapestry on a Bootique.io stack with underlying injection
>>>> bridged to Google Guice, that supports the above style. So I am a bit
>>>> crippled by this limitation. I may (or may not :)) have time to develop
>> and
>>>> contribute this functionality to Tapestry, but before I start digging
>> any
>>>> deeper, wanted to check whether this is already in the works (or
>> perhaps I
>>>> overlooked something obvious, and I simply need to revise my Guice to
>>>> tapestry bridge)?
>>>> 
>>>> Thanks for any insight.
>>>> 
>>>> Andrus
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
>>>> For additional commands, e-mail: users-h...@tapestry.apache.org
>>>> 
>>>> 
>>> 
>>> 
>>> --
>>> Thiago
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
>> For additional commands, e-mail: users-h...@tapestry.apache.org
>> 
>> 
> 
> 
> -- 
> Thiago


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org

Reply via email to