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

Reply via email to