Package org.forgerock.openig.heap
Class GenericHeaplet
- java.lang.Object
-
- org.forgerock.openig.heap.GenericHeaplet
-
- All Implemented Interfaces:
Heaplet
- Direct Known Subclasses:
AbstractScriptableHeapObject.AbstractScriptableHeaplet
,AllowOnlyFilter.Heaplet
,AmServiceHeaplet
,AmSessionIdleTimeoutFilter.Heaplet
,AssignmentFilter.Heaplet
,AuditServiceObjectHeaplet
,Base64EncodedSecretStore.Heaplet
,CaffeineCacheAccessTokenResolver.Heaplet
,CapturedUserPasswordFilter.Heaplet
,CertificateThumbprintFilter.Heaplet
,ChainFilterHeaplet
,ChainHandlerHeaplet
,CircuitBreakerFilter.Heaplet
,ClientCredentialsOAuth2ClientFilterHeaplet
,ClientRegistration.Heaplet
,ClientSecretBasicAuthenticationFilterHeaplet
,ClientSecretPostAuthenticationFilterHeaplet
,ClientTlsOptionsHeaplet
,ConditionalFilterHeaplet
,ConditionEnforcementFilter.Heaplet
,ConfirmationKeyVerifierAccessTokenResolver.Heaplet
,CookieFilter.Heaplet
,CorsFilterHeaplet
,CrossDomainSingleSignOnFilter.Heaplet
,CryptoHeaderFilter.Heaplet
,CsrfFilterHeaplet
,CustomProxyOptions.Heaplet
,DateHeaderFilter.Heaplet
,DefaultRateThrottlingPolicyHeaplet
,DelegateHeaplet
,DesKeyGenHandler.Heaplet
,DispatchHandler.Heaplet
,EntityExtractFilter.Heaplet
,FapiInteractionIdFilter.Heaplet
,FileAttributesFilter.Heaplet
,FileSystemSecretStoreHeaplet
,ForwardedRequestFilter.Heaplet
,FragmentFilter.Heaplet
,HeaderFilter.Heaplet
,HsmSecretStoreHeaplet
,HttpBasicAuthenticationClientFilterHeaplet
,HttpBasicAuthFilter.Heaplet
,HttpClientHandlerHeaplet
,Issuer.Heaplet
,IssuerRepository.Heaplet
,JdbcDataSourceHeaplet
,JwkSetHandler.Heaplet
,JwkSetSecretStoreHeaplet
,JwtBuilderFilter.Heaplet
,JwtSessionManagerHeaplet
,JwtValidationFilter.Heaplet
,KeyManagerHeaplet
,KeyStoreHeaplet
,KeyStoreSecretStoreHeaplet
,LocationHeaderFilter.Heaplet
,MappedThrottlingPolicyHeaplet
,NoOpAuditService.Heaplet
,NoProxyOptions.Heaplet
,OAuth2ClientFilter.Heaplet
,OAuth2ResourceServerFilterHeaplet
,OAuth2TokenExchangeFilter.Heaplet
,OpenAmAccessTokenResolverHeaplet
,PasswordReplayFilterHeaplet
,PemPropertyFormatHeaplet
,PolicyEnforcementFilter.Heaplet
,PrivateKeyJwtClientAuthenticationFilterHeaplet
,RequestResourceUriProvider.Heaplet
,ResourceHandler.Heaplet
,ResourceOwnerOAuth2ClientFilterHeaplet
,RouterHandler.Heaplet
,SamlFederationHandler.Heaplet
,ScheduledExecutorServiceHeaplet
,SecretKeyPropertyFormatHeaplet
,SecretsKeyManagerHeaplet
,SecretsProviderHeaplet
,SecretsTrustManagerHeaplet
,SequenceHandler.Heaplet
,ServerTlsOptionsHeaplet
,SessionInfoFilter.Heaplet
,SetCookieUpdateFilter.Heaplet
,SingleSignOnFilter.Heaplet
,SqlAttributesFilter.Heaplet
,StatelessAccessTokenResolver.Heaplet
,StaticRequestFilter.Heaplet
,StaticResponseHandler.Heaplet
,SwitchFilter.Heaplet
,SystemAndEnvSecretStoreHeaplet
,SystemProxyOptions.Heaplet
,TemporaryStorageHeaplet
,ThrottlingFilterHeaplet
,TokenIntrospectionAccessTokenResolverHeaplet
,TokenTransformationFilter.Heaplet
,TrustAllManager.Heaplet
,TrustManagerHeaplet
,UmaResourceServerFilter.Heaplet
,UmaSharingService.Heaplet
,UriPathRewriteFilter.Heaplet
,UserProfileFilterHeaplet
,UserProfileServiceHeaplet
,WelcomeHandler.Heaplet
public abstract class GenericHeaplet extends Object implements Heaplet
A generic base class for heaplets with automatically injected fields.
-
-
Field Summary
Fields Modifier and Type Field Description protected JsonValue
config
The heaplet's object configuration object.protected Heap
heap
Where objects should be put and where object dependencies should be retrieved.protected String
name
The name of the object to be created and stored in the heap by this heaplet.protected Object
object
The object created by the heaplet'screate()
method.protected Name
qualified
The fully qualified name of the object to be created.
-
Constructor Summary
Constructors Constructor Description GenericHeaplet()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract Object
create()
Called to request the heaplet create an object.Object
create(Name name, JsonValue config, Heap heap)
Called to request the heaplet to create an object.void
destroy()
Called to indicate that the object created by the heaplet is going to be dereferenced.protected EndpointRegistry
endpointRegistry()
Returns this object'sEndpointRegistry
, creating it lazily when requested for the first time.Function<JsonValue,JsonValue,JsonValueException>
evaluatedWithHeapProperties()
Returns a function that will evaluate the expression hold by aJsonValue
using the properties defined in the heap of this Heaplet.protected <T> Function<JsonValue,Expression<T>,JsonValueException>
expression(Class<T> type)
Returns a function that will create anExpression
from the string by theJsonValue
using the bindings defined in the heap of this Heaplet as initial bindings.JsonValue
getConfig()
Returns the config associated to thatHeaplet
.Heap
getHeap()
Returns the heap associated to thatHeaplet
.SecretsService
getSecretService()
Returns theSecretsService
from the heap.protected String
getType()
Returns the type of the IG object.protected org.forgerock.monitoring.api.instrument.MeterRegistryHolder
meterRegistryHolder()
Returns this object'sMeterRegistry
, creating it lazily when requested for the first time.void
start()
Called to request the heaplet start an object.
-
-
-
Field Detail
-
name
protected String name
The name of the object to be created and stored in the heap by this heaplet.
-
qualified
protected Name qualified
The fully qualified name of the object to be created.
-
config
protected JsonValue config
The heaplet's object configuration object.
-
heap
protected Heap heap
Where objects should be put and where object dependencies should be retrieved.
-
-
Method Detail
-
create
public Object create(Name name, JsonValue config, Heap heap) throws HeapException
Description copied from interface:Heaplet
Called to request the heaplet to create an object.- Specified by:
create
in interfaceHeaplet
- Parameters:
name
- the name of the object to be created.config
- the heaplet's configuration object.heap
- the heap where object dependencies can be retrieved.- Returns:
- the object created by the heaplet.
- Throws:
HeapException
- if an exception occurred during creation of the object or any of its dependencies.
-
endpointRegistry
protected EndpointRegistry endpointRegistry() throws HeapException
Returns this object'sEndpointRegistry
, creating it lazily when requested for the first time.- Returns:
- this object's
EndpointRegistry
(/objects/[name]) - Throws:
HeapException
- should never be thrown
-
meterRegistryHolder
protected org.forgerock.monitoring.api.instrument.MeterRegistryHolder meterRegistryHolder() throws HeapException
Returns this object'sMeterRegistry
, creating it lazily when requested for the first time.- Returns:
- this object's
MeterRegistry
- Throws:
HeapException
- should never be thrown
-
getType
protected String getType()
Returns the type of the IG object.- Returns:
- the type of the IG object
-
destroy
public void destroy()
Description copied from interface:Heaplet
Called to indicate that the object created by the heaplet is going to be dereferenced. This gives the heaplet an opportunity to free any resources that are being held prior to its dereference.
-
create
public abstract Object create() throws HeapException
Called to request the heaplet create an object. Called byHeaplet.create(Name, JsonValue, Heap)
after initializing the protected field members. Implementations should parse configuration but not acquire resources, start threads, or log any initialization messages. These tasks should be performed by thestart()
method.- Returns:
- The created object.
- Throws:
HeapException
- if an exception occurred during creation of the heap object or any of its dependencies.JsonValueException
- if the heaplet (or one of its dependencies) has a malformed configuration.
-
start
public void start() throws HeapException
Called to request the heaplet start an object. Called byHeaplet.create(Name, JsonValue, Heap)
after creating and configuring the object and once the object's logger and storage have been configured. Implementations should override this method if they need to acquire resources, start threads, or log any initialization messages.- Throws:
HeapException
- if an exception occurred while starting the heap object or any of its dependencies.
-
evaluatedWithHeapProperties
public Function<JsonValue,JsonValue,JsonValueException> evaluatedWithHeapProperties()
Returns a function that will evaluate the expression hold by aJsonValue
using the properties defined in the heap of this Heaplet.- Returns:
- a function that will evaluate the expression hold by a
JsonValue
using the properties defined in the heap of this Heaplet.
-
expression
protected <T> Function<JsonValue,Expression<T>,JsonValueException> expression(Class<T> type)
Returns a function that will create anExpression
from the string by theJsonValue
using the bindings defined in the heap of this Heaplet as initial bindings.- Type Parameters:
T
- The type of the expression's result.- Parameters:
type
- The expected result type of theExpression
- Returns:
- a function that will create an
Expression
from the string by theJsonValue
using the bindings defined in the heap of this Heaplet as initial bindings.
-
getHeap
public Heap getHeap()
Returns the heap associated to thatHeaplet
.- Returns:
- the heap associated to that
Heaplet
.
-
getConfig
public JsonValue getConfig()
Returns the config associated to thatHeaplet
.- Returns:
- the config associated to that
Heaplet
.
-
getSecretService
public SecretsService getSecretService() throws HeapException
Returns theSecretsService
from the heap.- Returns:
- the
SecretsService
from the heap. - Throws:
HeapException
- if it cannot retrieve the secret service.
-
-