Class ThrottlingFilterHeaplet

java.lang.Object
org.forgerock.openig.heap.GenericHeaplet
org.forgerock.openig.filter.throttling.ThrottlingFilterHeaplet
All Implemented Interfaces:
Heaplet

public class ThrottlingFilterHeaplet extends GenericHeaplet
Creates and initializes a throttling filter in a heap environment. Configuration options:
 {
      "type": "ThrottlingFilter",
      "config": {
         "executor"                     : executor            [OPTIONAL - by default uses 'ScheduledThreadPool'
                                                                          heap object]
         "cleaningInterval"             : duration            [OPTIONAL - The interval to wait for cleaning outdated
                                                                          buckets. Cannot be neither zero nor
                                                                          unlimited.
         "requestGroupingPolicy"        : expression<String>  [REQUIRED - Expression to evaluate whether a request
                                                                          matches when calculating a rate for a group
                                                                          of requests.]
         "rate": {
            "numberOfRequests"          : integer             [REQUIRED - The number of requests allowed to go through
                                                                          this filter during the duration window.]
            "duration"                  : duration            [REQUIRED - The time window during which we count the
                                                                          incoming requests.]
         }
 OR
         "throttlingRatePolicy"         : reference or        [REQUIRED - the policy that will define the throttling
                                          inlined declaration             rate to apply]
      }
  }
  
 
  • Constructor Details

    • ThrottlingFilterHeaplet

      public ThrottlingFilterHeaplet()
  • Method Details

    • create

      public Object create() throws HeapException
      Description copied from class: GenericHeaplet
      Called to request the heaplet create an object. Called by Heaplet.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 the GenericHeaplet.start() method.
      Specified by:
      create in class GenericHeaplet
      Returns:
      The created object.
      Throws:
      HeapException - if an exception occurred during creation of the heap object or any of its dependencies.
    • 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.
      Specified by:
      destroy in interface Heaplet
      Overrides:
      destroy in class GenericHeaplet