Class BootstrappingFunction

java.lang.Object
org.apache.geode.modules.util.BootstrappingFunction
All Implemented Interfaces:
Serializable, Function, DataSerializable, org.apache.geode.distributed.internal.MembershipListener, Identifiable

public class BootstrappingFunction extends Object implements Function, org.apache.geode.distributed.internal.MembershipListener, DataSerializable
See Also:
  • Nested Class Summary

    Nested classes/interfaces inherited from interface org.apache.geode.DataSerializable

    DataSerializable.Replaceable
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
     
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
     
    void
    The method which contains the logic to be executed.
    void
    Reads the state of this object as primitive data from the given DataInput.
    Return a unique function identifier, used to register the function with FunctionService
    Returns the list of ResourcePermission this function requires.
    int
     
    boolean
    Specifies whether the function sends results while executing.
    boolean
    Specifies whether the function is eligible for re-execution (in case of failure).
    protected boolean
     
    void
    memberDeparted(org.apache.geode.distributed.internal.DistributionManager distributionManager, org.apache.geode.distributed.internal.membership.InternalDistributedMember id, boolean crashed)
     
    void
    memberJoined(org.apache.geode.distributed.internal.DistributionManager distributionManager, org.apache.geode.distributed.internal.membership.InternalDistributedMember id)
     
    void
    memberSuspect(org.apache.geode.distributed.internal.DistributionManager distributionManager, org.apache.geode.distributed.internal.membership.InternalDistributedMember id, org.apache.geode.distributed.internal.membership.InternalDistributedMember whoSuspected, String reason)
     
    boolean
    Return true to indicate to GemFire the method requires optimization for writing the targeted FunctionService.onRegion(org.apache.geode.cache.Region) and any associated routing objects.
    void
    quorumLost(org.apache.geode.distributed.internal.DistributionManager distributionManager, Set<org.apache.geode.distributed.internal.membership.InternalDistributedMember> internalDistributedMembers, List<org.apache.geode.distributed.internal.membership.InternalDistributedMember> internalDistributedMembers2)
     
    protected void
     
    void
    Writes the state of this object as primitive data to the given DataOutput.
    protected Cache
     

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.apache.geode.cache.execute.Function

    getRequiredPermissions
  • Field Details

  • Constructor Details

    • BootstrappingFunction

      public BootstrappingFunction()
  • Method Details

    • execute

      public void execute(FunctionContext context)
      Description copied from interface: Function
      The method which contains the logic to be executed. This method should be thread safe and may be invoked more than once on a given member for a single Execution. The context provided to this function is the one which was built using Execution. The contexts can be data dependent or data-independent so user should check to see if the context provided in parameter is instance of RegionFunctionContext.
      Specified by:
      execute in interface Function
      Parameters:
      context - as created by Execution
    • isLocator

      protected boolean isLocator(Cache cache)
    • verifyCacheExists

      protected Cache verifyCacheExists()
    • getRequiredPermissions

      public Collection<ResourcePermission> getRequiredPermissions(String regionName)
      Description copied from interface: Function
      Returns the list of ResourcePermission this function requires.

      By default, functions require DATA:WRITE permission. If your function requires other permissions, you will need to override this method.

      Please be as specific as possible when you set the required permissions for your function e.g. if your function reads from a region, it would be good to include the region name in your permission. It's better to return "DATA:READ:regionName" as the required permission other than "DATA:READ", because the latter means only users with read permission on ALL regions can execute your function.

      All the permissions returned from this method will be ANDed together.

      Specified by:
      getRequiredPermissions in interface Function
      Parameters:
      regionName - the region this function will be executed on. The regionName is optional and will only be present when the function is executed by an onRegion() executor. In other cases, it will be null. This method returns permissions appropriate to the context, independent of the presence of the regionName parameter.
      Returns:
      a collection of ResourcePermissions indicating the permissions required to execute the function.
    • registerFunctions

      protected void registerFunctions()
    • getId

      public String getId()
      Description copied from interface: Function
      Return a unique function identifier, used to register the function with FunctionService
      Specified by:
      getId in interface Function
      Specified by:
      getId in interface Identifiable
      Returns:
      string identifying this function
    • hasResult

      public boolean hasResult()
      Description copied from interface: Function
      Specifies whether the function sends results while executing. The method returns false if no result is expected.

      If this method returns false, ResultCollector.getResult() throws FunctionException.

      If this method returns true, ResultCollector.getResult() blocks and waits for the result of function execution

      Specified by:
      hasResult in interface Function
      Returns:
      whether this function returns a Result back to the caller.
    • isHA

      public boolean isHA()
      Description copied from interface: Function
      Specifies whether the function is eligible for re-execution (in case of failure).
      Specified by:
      isHA in interface Function
      Returns:
      whether the function is eligible for re-execution.
      See Also:
    • optimizeForWrite

      public boolean optimizeForWrite()
      Description copied from interface: Function

      Return true to indicate to GemFire the method requires optimization for writing the targeted FunctionService.onRegion(org.apache.geode.cache.Region) and any associated routing objects.

      Returning false will optimize for read behavior on the targeted FunctionService.onRegion(org.apache.geode.cache.Region) and any associated routing objects.

      This method is only consulted when Region passed to FunctionService#onRegion(org.apache.geode.cache.Region) is a partitioned region

      Specified by:
      optimizeForWrite in interface Function
      Returns:
      false if the function is read only, otherwise returns true
      See Also:
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • memberDeparted

      public void memberDeparted(org.apache.geode.distributed.internal.DistributionManager distributionManager, org.apache.geode.distributed.internal.membership.InternalDistributedMember id, boolean crashed)
      Specified by:
      memberDeparted in interface org.apache.geode.distributed.internal.MembershipListener
    • memberJoined

      public void memberJoined(org.apache.geode.distributed.internal.DistributionManager distributionManager, org.apache.geode.distributed.internal.membership.InternalDistributedMember id)
      Specified by:
      memberJoined in interface org.apache.geode.distributed.internal.MembershipListener
    • memberSuspect

      public void memberSuspect(org.apache.geode.distributed.internal.DistributionManager distributionManager, org.apache.geode.distributed.internal.membership.InternalDistributedMember id, org.apache.geode.distributed.internal.membership.InternalDistributedMember whoSuspected, String reason)
      Specified by:
      memberSuspect in interface org.apache.geode.distributed.internal.MembershipListener
    • quorumLost

      public void quorumLost(org.apache.geode.distributed.internal.DistributionManager distributionManager, Set<org.apache.geode.distributed.internal.membership.InternalDistributedMember> internalDistributedMembers, List<org.apache.geode.distributed.internal.membership.InternalDistributedMember> internalDistributedMembers2)
      Specified by:
      quorumLost in interface org.apache.geode.distributed.internal.MembershipListener
    • toData

      public void toData(DataOutput out) throws IOException
      Description copied from interface: DataSerializable
      Writes the state of this object as primitive data to the given DataOutput.

      Since 5.7 it is possible for any method call to the specified DataOutput to throw GemFireRethrowable. It should not be caught by user code. If it is it must be rethrown.

      Specified by:
      toData in interface DataSerializable
      Parameters:
      out - the DataOutput to write to
      Throws:
      IOException - A problem occurs while writing to out
    • fromData

      public void fromData(DataInput in) throws IOException, ClassNotFoundException
      Description copied from interface: DataSerializable
      Reads the state of this object as primitive data from the given DataInput.
      Specified by:
      fromData in interface DataSerializable
      Parameters:
      in - the DataInput to read from
      Throws:
      IOException - A problem occurs while reading from in
      ClassNotFoundException - A class could not be loaded while reading from in