Thanks for this quick response - however the code below is already working
in my case. This simple examples shows how to let Guice and T5 work
together - I was just looking for some thoughts on whether this is
actually a good/the best idea.


> Seems like you'll need access to the Registry, or at least and
> ObjectLocator
> to make them play together (allow Guice beans to be injected into Tapestry
> services/components).
>
> A contribution to MasterObjectProvider could do the job.
>
> Haven't looked into it in detail.
>
> On 10/29/07, Jan Vissers <[EMAIL PROTECTED]> wrote:
>>
>> Partially inspired by a question/some work by Leon Pennings (on this
>> list), partially because of my interest in Guice - if been trying to
>> test some stuff on how best to integrate Guice and T5. Before asking
>> whether my approach is appropriate I would like to ask what your opinion
>> is on the whole idea of mixing Guice and T5 IoC?
>>
>>
>>
>> This is what I've done for the NumberGuess tutorial.
>>
>> public interface IPlayGenerator {
>>     int generateRandomNumber();
>> }
>>
>> public class PlayGeneratorImpl implements IPlayGenerator {
>>     public int generateRandomNumber() {
>>        Random random = new Random();
>>        return random.nextInt(10) + 1;
>>     }
>> }
>>
>> //Guice stuff
>> public class PlayModule extends AbstractModule {
>>     @Override
>>     protected void configure() {
>>
>> bind(IPlayGenerator.class).to(PlayGeneratorImpl.class).in(Scopes.SINGLETON
>> );
>>     }
>> }
>>
>> //Actual client service
>> public class NumberGuessPlayer {
>>     private final IPlayGenerator generator;
>>
>>     //Guice Inject
>>     @Inject
>>     public NumberGuessPlayer(IPlayGenerator generator) {
>>         this.generator = generator;
>>     }
>>
>>     public int play() {
>>         return generator.generateRandomNumber();
>>     }
>> }
>>
>> //T5/Guice bootstrapping
>> public class AppModule {
>>     // Guice Injector instance
>>     private static final Injector injector;
>>
>>     static {
>>         injector = Guice.createInjector(new Module[] { new PlayModule()
>> });
>>     }
>>
>>     public static NumberGuessPlayer buildNumberGuessPlayerFinder() {
>>         return injector.getInstance(NumberGuessPlayer.class);
>>     }
>>     ...
>>     ...
>> }
>>
>> //Start page
>> public class Start {
>>     @InjectPage
>>     private Guess guess;
>>
>>     /T5 Inject
>>     @Inject
>>     private NumberGuessPlayer player;
>>
>>     Object onAction() {
>>        int target = player.play();
>>
>>        guess.setup(target);
>>
>>        return guess;
>>     }
>> }
>>
>>
>> Any comments, tips....?
>>
>> -J
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
>
>
> --
> Howard M. Lewis Ship
> Partner and Senior Architect at Feature50
>
> Creator Apache Tapestry and Apache HiveMind
>



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to