org.apache.tapestry5.ioc.internal.services
Class JustInTimeObjectCreator<T>

java.lang.Object
  extended by org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator<T>
All Implemented Interfaces:
Runnable, EagerLoadServiceProxy, ObjectCreator<T>

public class JustInTimeObjectCreator<T>
extends Object
implements ObjectCreator<T>, EagerLoadServiceProxy, Runnable

Invoked from a fabricated service delegate to get or realize (instantiate and configure) the service implementation. This includes synchronization logic, to prevent multiple threads from attempting to realize the same service at the same time (a service should be realized only once). The additional interfaces implemented by this class support eager loading of services (at application startup), and orderly shutdown of proxies.


Constructor Summary
JustInTimeObjectCreator(ServiceActivityTracker tracker, ObjectCreator<T> creator, String serviceId)
           
 
Method Summary
 T createObject()
          Checks to see if the proxy has been shutdown, then invokes ObjectCreator.createObject() if it has not already done so.
 void eagerLoadService()
          Invokes createObject() to force the creation of the underlying service.
 void run()
          Invoked when the Registry is shutdown; deletes the instantiated object (if it exists) and replaces the ObjectCreator with one that throws an IllegalStateException.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JustInTimeObjectCreator

public JustInTimeObjectCreator(ServiceActivityTracker tracker,
                               ObjectCreator<T> creator,
                               String serviceId)
Method Detail

createObject

public T createObject()
Checks to see if the proxy has been shutdown, then invokes ObjectCreator.createObject() if it has not already done so.

Specified by:
createObject in interface ObjectCreator<T>
Throws:
IllegalStateException - if the registry has been shutdown

eagerLoadService

public void eagerLoadService()
Invokes createObject() to force the creation of the underlying service.

Specified by:
eagerLoadService in interface EagerLoadServiceProxy

run

public void run()
Invoked when the Registry is shutdown; deletes the instantiated object (if it exists) and replaces the ObjectCreator with one that throws an IllegalStateException.

Specified by:
run in interface Runnable


Copyright © 2003-2012 The Apache Software Foundation.