Class BootstrappingFunction

  • java.lang.Object
    • org.apache.geode.modules.util.BootstrappingFunction
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String ID  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean equals​(java.lang.Object obj)  
      void execute​(FunctionContext context)
      The method which contains the logic to be executed.
      void fromData​(java.io.DataInput in)
      Reads the state of this object as primitive data from the given DataInput.
      java.lang.String getId()
      Return a unique function identifier, used to register the function with FunctionService
      java.util.Collection<ResourcePermission> getRequiredPermissions​(java.lang.String regionName)
      Returns the list of ResourcePermission this function requires.
      int hashCode()  
      boolean hasResult()
      Specifies whether the function sends results while executing.
      boolean isHA()
      Specifies whether the function is eligible for re-execution (in case of failure).
      protected boolean isLocator​(Cache cache)  
      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, java.lang.String reason)  
      boolean optimizeForWrite()
      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, java.util.Set<org.apache.geode.distributed.internal.membership.InternalDistributedMember> internalDistributedMembers, java.util.List<org.apache.geode.distributed.internal.membership.InternalDistributedMember> internalDistributedMembers2)  
      protected void registerFunctions()  
      void toData​(java.io.DataOutput out)
      Writes the state of this object as primitive data to the given DataOutput.
      protected Cache verifyCacheExists()  
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • BootstrappingFunction

        public BootstrappingFunction()
    • Method Detail

      • 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 java.util.Collection<ResourcePermission> getRequiredPermissions​(java.lang.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 java.lang.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:
        FunctionContext.isPossibleDuplicate()
      • hashCode

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

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.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,
                                  java.lang.String reason)
        Specified by:
        memberSuspect in interface org.apache.geode.distributed.internal.MembershipListener
      • quorumLost

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

        public void toData​(java.io.DataOutput out)
                    throws java.io.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:
        java.io.IOException - A problem occurs while writing to out
      • fromData

        public void fromData​(java.io.DataInput in)
                      throws java.io.IOException,
                             java.lang.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:
        java.io.IOException - A problem occurs while reading from in
        java.lang.ClassNotFoundException - A class could not be loaded while reading from in