Interface Declarable

All Known Subinterfaces:
AccessControl, AsyncEventListener, Authenticator, AuthInitialize, CacheCallback, CacheListener<K,V>, CacheLoader<K,V>, CacheWriter<K,V>, CqListener, CqStatusListener, CustomExpiry<K,V>, FixedPartitionResolver<K,V>, GatewayEventFailureListener, GatewayEventFilter, GatewayEventSubstitutionFilter<K,V>, GatewayTransportFilter, InterestRegistrationListener, PartitionResolver<K,V>, RegionMembershipListener<K,V>, RegionRoleListener<K,V>, ServerLoadProbe, TransactionListener, TransactionWriter
All Known Implementing Classes:
org.apache.geode.connectors.jdbc.internal.AbstractJdbcCallback, AutoBalancer, CacheListenerAdapter, CacheWriterAdapter, CqListenerAdapter, JdbcAsyncWriter, JdbcLoader, JdbcWriter, ReflectionBasedAutoSerializer, RegionGatewayEventFailureListener, RegionMembershipListenerAdapter, RegionRoleListenerAdapter, ServerLoadProbeAdapter, SniProxySocketFactory, StringPrefixPartitionResolver, TransactionListenerAdapter

public interface Declarable
When user defined class instances are being added to gfsh cluster configuration or to a declarative cache XML file, then that class should implement this interface. This interface tells the cache how to initialize the instances when the cache is created. In the following javadocs, any mention of XML also includes gfsh configuration.

Any user-defined object in the declarative caching xml file should implement this interface in order to be constructed.

For example, the user can declare a CacheLoader in a declarative XML file as follows:

        <cache-loader>
          <class-name>com.company.app.DBLoader</class-name>
          <parameter name="URL">
            <string>jdbc://12.34.56.78/mydb</string>
          </parameter>
        </cache-loader>
 

In this case, com.company.app.DBLoader must implement both the CacheLoader and Declarable interfaces. The cache service will construct a com.company.app.DBLoader object by invoking the loader's zero-argument constructor and then calling the init(java.util.Properties) method to pass in the parameters.

See package introduction.

Since:
GemFire 2.0
  • Method Summary

    Modifier and Type
    Method
    Description
    default void
    Deprecated.
    as of Geode 1.5 implement initialize instead.
    default void
    initialize(Cache cache, Properties properties)
    Initializes a user-defined object, owned by the given cache, using the given properties.
  • Method Details

    • init

      @Deprecated default void init(Properties props)
      Deprecated.
      as of Geode 1.5 implement initialize instead.
      Initializes a user-defined object using the given properties. Note that any uncaught exception thrown by this method will cause the Cache initialization to fail.
      Parameters:
      props - Contains the parameters declared in the declarative xml file.
      Throws:
      IllegalArgumentException - If one of the configuration options in props is illegal or malformed.
    • initialize

      default void initialize(Cache cache, Properties properties)
      Initializes a user-defined object, owned by the given cache, using the given properties. Note that any uncaught exception thrown by this method will cause the Cache initialization to fail. Note that if this method is implemented then the deprecated init method should not be implemented. The product will call both methods assuming that only one will have a non-default implementation.

      Note that this method is only called when a Cache is created using gfsh cluster configuration or a declarative XML file. It will not be called when a Cache is created without XML using the Java APIs directly.

      Parameters:
      cache - the cache that owns this declarable
      properties - Contains the parameters declared in the declarative xml file.
      Throws:
      IllegalArgumentException - should be thrown if properties contains something unexpected.
      Since:
      Geode 1.5