Package com.hazelcast.spi.tenantcontrol
Interface TenantControl
- All Superinterfaces:
Serializable
@Beta public interface TenantControl extends Serializable
Hooks for multi-tenancy for application servers
Hazelcast uses separate threads to invoke operations
this interface acts a hook to establish a thread-local tenant context
so that operation invocations into application servers are handled correctly
This is used by application servers to establish thread context for class loading,
CDI, EJB and JPA invocations
- Author:
- lprimak
-
Field Summary
Fields Modifier and Type Field Description static TenantControl
NOOP_TENANT_CONTROL
Default no-op tenant control -
Method Summary
Modifier and Type Method Description Closeable
setTenant(boolean createRequestScope)
Establish this tenant's thread-local context Particular TenantControl implementation will control the details of how createRequestScope parameter is handled, but in general, if createRequestScope = false, only ClassLoader is set up, if createRequestScope = true, in addition to ClassLoader, other things like invocation, EJB/JPA/CDI context should be set up as well In other words, if only app class needs to be resolved, set createRequestScope to false If actually calling into user's code, set createRequestScope to truevoid
unregister()
To be called when the Hazelcast object attached to this tenant is destroyed.
-
Field Details
-
NOOP_TENANT_CONTROL
Default no-op tenant control
-
-
Method Details
-
setTenant
Establish this tenant's thread-local context Particular TenantControl implementation will control the details of how createRequestScope parameter is handled, but in general, if createRequestScope = false, only ClassLoader is set up, if createRequestScope = true, in addition to ClassLoader, other things like invocation, EJB/JPA/CDI context should be set up as well In other words, if only app class needs to be resolved, set createRequestScope to false If actually calling into user's code, set createRequestScope to true- Parameters:
createRequestScope
- whether to create CDI request scope for this context- Returns:
- handle to be able to close the tenant's scope.
-
unregister
void unregister()To be called when the Hazelcast object attached to this tenant is destroyed. The implementor may unregister it's own event listeners here. This is used with conjunction with DestroyEvent, because the listeners are probably used to call the DestroyEvent, this just acts as the other event that will decouple Hazelcast object from the tenant This is so the TenantControl itself can be garbage collected
-