Class JustInTimeObjectCreator<T>
java.lang.Object
org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator<T>
- All Implemented Interfaces:
Runnable
,ObjectCreator<T>
,EagerLoadServiceProxy
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
ConstructorsConstructorDescriptionJustInTimeObjectCreator
(ServiceActivityTracker tracker, ObjectCreator<T> creator, String serviceId) -
Method Summary
Modifier and TypeMethodDescriptionChecks to see if the proxy has been shutdown, then invokesObjectCreator.createObject()
if it has not already done so.void
InvokescreateObject()
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.
-
Constructor Details
-
JustInTimeObjectCreator
public JustInTimeObjectCreator(ServiceActivityTracker tracker, ObjectCreator<T> creator, String serviceId)
-
-
Method Details
-
createObject
Checks to see if the proxy has been shutdown, then invokesObjectCreator.createObject()
if it has not already done so.- Specified by:
createObject
in interfaceObjectCreator<T>
- Throws:
IllegalStateException
- if the registry has been shutdown
-
eagerLoadService
InvokescreateObject()
to force the creation of the underlying service.- Specified by:
eagerLoadService
in interfaceEagerLoadServiceProxy
-
run
Invoked when the Registry is shutdown; deletes the instantiated object (if it exists) and replaces the ObjectCreator with one that throws an IllegalStateException.
-