Yep, I'm in the middle of changes where you'll be able to specify a
class as a service and T5 IoC will perform injections o n the class'
constructor. It's inspired by Guice.  So for a simple service, it will
look like:

public class MyModule {

 public void bind(ServiceBinder binder) {
  binder.bind(MyService.class, MyServiceImpl.class);
 }

Your example, though, is one that will continue to operate the
traditional way (when there's more involved than dependency injection
via constructor).



On 4/12/07, Davor Hrg <[EMAIL PROTECTED]> wrote:
I started converting a small project from hivemind to tapestry-ioc,

this was just to compare experiences...

most of it went fine, but when it came to auto-wiring, it got
overcomplicated.

auto-wiring works for parameters in module's build-methods,
but this still means that I have to manually construct the service
and set the dependencies provided in build method parameters.

for example:
   public ICronService buildCron(
      RegistryShutdownHub hub,
      UserService userService,
      Log log,
   ){
        CronService cron = new CronService(hub, userService, log);
        cron.start();
        return cron;
   }

this could be shorter (provided that container creates instance nad
autowires properties)

   public ICronService buildCron(CronService cron){
        cron.start();
        return cron;
   }


the problem here is not in ammout of writing
(the latter code is little confusing also)
the problem lies in the fact that if I add another dependancy:
 - create field
 - create setter
this was enough in hivemind, but in tapestry-ioc
I have to change the build method:
 - add an extra parameter
 - call the setter

any thoughts on this ?
any plans ?

Davor Hrg



--
Howard M. Lewis Ship
TWD Consulting, Inc.
Independent J2EE / Open-Source Java Consultant
Creator and PMC Chair, Apache Tapestry
Creator, Apache HiveMind

Professional Tapestry training, mentoring, support
and project work.  http://howardlewisship.com

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

Reply via email to