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