You have to get sneaky and decorate the TheModule.Symbols.SOME_SYMBOL
service implementation with a new implementation (discarding the
original).  Not ideal and I've been thinking about how to address this
more cleanly in Tapestry IoC.  It would be nice if there was an
explicit overrideXXX() module method that would expressly replace the
core implementation of a service.

When decorating, your decorateXXX() method must take a parameter of
the service type ... normally it would make use of the core service
implementation, but in your case, you'll just ignore it.

This can be tricky if there are other decorations on the service.

On Thu, Jun 7, 2012 at 4:55 PM, Ray Nicholus <rnicho...@widen.com> wrote:
> I'm pulling in a library that also uses T5, and in it's "module" class, it
> contains the following method:
>
> @ServiceId (Symbols.SOME_SYMBOL)
>  public static Something buildThisThing(SomeObj someObj)
> {
>             ......
>         }
>
> In the library, this service is injected into the constructor of another
> service (@InjectService(TheModule.Symbols.SOME_SYMBOL) Something something).
>
> How can I override the SOME_SYMBOL service implementation in my local code?



-- 
Howard M. Lewis Ship

Creator of Apache Tapestry

The source for Tapestry training, mentoring and support. Contact me to
learn how I can get you up and productive in Tapestry fast!

(971) 678-5210
http://howardlewisship.com

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

Reply via email to