Hi Tom, I wasn't surprised by the number of services to be prepared either as proxy or to be created. I just don't see a reason why the object provider which I add as last provider is called for framework internal services. There is just no need to call it at all for those services.
-- Best Regards / Viele Grüße Sebastian Hennebrueder ----- http://www.laliluna.de Java software developer and trainer for Hibernate and Java Persistence Am 22.11.2010 um 00:37 schrieb Tom van Dijk: > And obviously, I meant "every service that it somehow depends on" instead of > the other thing which is not true. > > Op 22-11-2010 0:34, Tom van Dijk schreef: >> Well, no, you will see that a lot of services depend on each other, so in >> order to create an object that just happens to depend on stuff like object >> providers, many other services need to be created. This is not an >> inefficiency in Tapestry (The services are first only "virtual" before they >> are realized) but it may be that the lifecycle it not efficient in >> guice/tapestry integration as it is in tapestry. >> >> When you ask for a service, every service that somehow depends on it (via >> field/constructor initialization) is created as a VIRTUAL object. Then when >> they are actually used (you call a method) they are REALIZED (by the virtual >> proxy object). This is why it's not inefficient to create all these virtual >> proxies. That part is easy. And when they are actually used, well, then you >> need to have the realized object anyway, so it's still efficient. >> >> Op 21-11-2010 23:59, Sebastian Hennebrueder schreef: >>> Hello, >>> >>> I added an object provider to integrate the Guice IOC Framework. Though I >>> have added it at the end, it is called for many Tapestry related pieces. Is >>> this not a very big inefficiency? >>> >>> my integration stuff in AppModule >>> public static void >>> contributeMasterObjectProvider(OrderedConfiguration<ObjectProvider> >>> configuration) { >>> configuration.add("GuiceObjectProvider", new GuiceObjectProvider(), >>> "after:*"); >>> } >>> >>> >>> Here is the list of services asked to build: >>> >>> 23:56:54,194 DEBUG GuiceObjectProvider:24 - guice asked to provide: >>> interface org.apache.tapestry5.ioc.services.PipelineBuilder >>> 23:56:54,224 DEBUG GuiceObjectProvider:24 - guice asked to provide: >>> interface org.apache.tapestry5.ioc.services.PropertyShadowBuilder >>> 23:56:54,243 DEBUG GuiceObjectProvider:24 - guice asked to provide: >>> interface org.apache.tapestry5.services.RequestGlobals >>> 23:56:54,263 DEBUG GuiceObjectProvider:24 - guice asked to provide: >>> interface org.apache.tapestry5.services.ApplicationGlobals >>> 23:56:54,270 DEBUG GuiceObjectProvider:24 - guice asked to provide: >>> interface org.apache.tapestry5.ioc.services.ChainBuilder >>> 23:56:54,275 DEBUG GuiceObjectProvider:24 - guice asked to provide: >>> interface org.apache.tapestry5.services.Environment >>> 23:56:54,280 DEBUG GuiceObjectProvider:24 - guice asked to provide: >>> interface org.apache.tapestry5.ioc.services.StrategyBuilder >>> 23:56:54,285 DEBUG GuiceObjectProvider:24 - guice asked to provide: >>> interface org.apache.tapestry5.ioc.services.PropertyAccess >>> 23:56:54,293 DEBUG GuiceObjectProvider:24 - guice asked to provide: >>> interface org.apache.tapestry5.services.Request >>> 23:56:54,311 DEBUG GuiceObjectProvider:24 - guice asked to provide: >>> interface org.apache.tapestry5.services.Response >>> 23:56:54,318 DEBUG GuiceObjectProvider:24 - guice asked to provide: >>> interface org.apache.tapestry5.services.EnvironmentalShadowBuilder >>> 23:56:54,323 DEBUG GuiceObjectProvider:24 - guice asked to provide: >>> interface org.apache.tapestry5.internal.services.EndOfRequestEventHub >>> 23:56:54,335 DEBUG GuiceObjectProvider:24 - guice asked to provide: >>> interface org.apache.tapestry5.ioc.services.DefaultImplementationBuilder >>> 23:56:54,345 DEBUG GuiceObjectProvider:24 - guice asked to provide: >>> interface org.apache.tapestry5.ioc.services.TypeCoercer >>> 23:56:54,346 DEBUG GuiceObjectProvider:24 - guice asked to provide: >>> interface org.apache.tapestry5.services.ComponentClassResolver >>> 23:56:54,362 DEBUG GuiceObjectProvider:24 - guice asked to provide: >>> interface org.apache.tapestry5.services.Request >>> 23:56:54,384 DEBUG GuiceObjectProvider:24 - guice asked to provide: >>> interface org.apache.tapestry5.internal.services.ComponentInstantiatorSource >>> 23:56:54,389 DEBUG GuiceObjectProvider:24 - guice asked to provide: >>> interface org.apache.tapestry5.services.UpdateListenerHub >>> 23:56:54,407 DEBUG GuiceObjectProvider:24 - guice asked to provide: >>> interface org.apache.tapestry5.services.RequestGlobals >>> 23:56:54,408 DEBUG GuiceObjectProvider:24 - guice asked to provide: >>> interface org.apache.tapestry5.internal.services.ComponentClassTransformer >>> 23:56:54,412 DEBUG GuiceObjectProvider:24 - guice asked to provide: >>> interface org.apache.tapestry5.internal.services.InternalRequestGlobals >>> 23:56:54,417 DEBUG GuiceObjectProvider:24 - guice asked to provide: >>> interface org.apache.tapestry5.ioc.services.ClasspathURLConverter >>> 23:56:54,434 DEBUG GuiceObjectProvider:24 - guice asked to provide: >>> interface org.apache.tapestry5.internal.services.ComponentInstantiatorSource >>> 23:56:54,435 DEBUG GuiceObjectProvider:24 - guice asked to provide: >>> interface org.apache.tapestry5.ioc.services.ClassNameLocator >>> 23:56:54,445 DEBUG GuiceObjectProvider:24 - guice asked to provide: >>> interface org.apache.tapestry5.ioc.services.ClasspathURLConverter >>> >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org >> For additional commands, e-mail: users-h...@tapestry.apache.org >> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > For additional commands, e-mail: users-h...@tapestry.apache.org >