Class TopicConfig

java.lang.Object
com.hazelcast.config.TopicConfig
All Implemented Interfaces:
NamedConfig, UserCodeNamespaceAwareConfig<TopicConfig>, DataSerializable, IdentifiedDataSerializable, com.hazelcast.nio.serialization.impl.Versioned

public class TopicConfig extends Object implements IdentifiedDataSerializable, NamedConfig, com.hazelcast.nio.serialization.impl.Versioned, UserCodeNamespaceAwareConfig<TopicConfig>
Contains the configuration for a ITopic.
  • Field Details

    • DEFAULT_GLOBAL_ORDERING_ENABLED

      public static final boolean DEFAULT_GLOBAL_ORDERING_ENABLED
      Default global ordering configuration.
      See Also:
  • Constructor Details

    • TopicConfig

      public TopicConfig()
      Creates a TopicConfig.
    • TopicConfig

      public TopicConfig(String name)
      Creates a TopicConfig with the given name.
      Parameters:
      name - the name of the Topic
    • TopicConfig

      public TopicConfig(TopicConfig config)
      Creates a TopicConfig by cloning another TopicConfig.
      Parameters:
      config - the TopicConfig to clone
  • Method Details

    • getName

      public String getName()
      Gets the name of the topic, null if nothing is set.
      Specified by:
      getName in interface NamedConfig
      Returns:
      the name of the topic
    • setName

      public TopicConfig setName(String name)
      Sets the name of the topic.
      Specified by:
      setName in interface NamedConfig
      Parameters:
      name - the topic name to set
      Returns:
      the updated TopicConfig
      Throws:
      IllegalArgumentException - if name is null or an empty string
    • isGlobalOrderingEnabled

      public boolean isGlobalOrderingEnabled()
      Checks if global ordering is enabled (all nodes listening to the same topic get their messages in the same order), or disabled (nodes get the messages in the order that the messages are published).
      Returns:
      true if global ordering is enabled, false if disabled
    • setGlobalOrderingEnabled

      public TopicConfig setGlobalOrderingEnabled(boolean globalOrderingEnabled)
      Enable global ordering (all nodes listening to the same topic get their messages in the same order), or disable it (nodes get the messages in the order that the messages are published).
      Parameters:
      globalOrderingEnabled - set to true to enable global ordering, false to disable
      Returns:
      the updated TopicConfig
    • isMultiThreadingEnabled

      public boolean isMultiThreadingEnabled()
      Checks if multi-threaded processing of incoming messages is enabled or not. When disabled only one dedicated thread will handle all topic messages. Otherwise any thread from events thread pool can be used for message handling.
      Returns:
      true if multi-threading is enabled, false if disabled
    • setMultiThreadingEnabled

      public TopicConfig setMultiThreadingEnabled(boolean multiThreadingEnabled)
      Enable multi-threaded message handling. When enabled any thread from events thread pool can be used for incoming message processing. Otherwise only one dedicated thread will be used to handle topic messages. Note: it can be enabled only in case when global ordering is disabled. Moreover, the local message ordering is not supported in this mode also. This means the messages produced by local publisher can be processed by several threads with no ordering guarantee.
      Parameters:
      multiThreadingEnabled - set to true to enable multi-threaded message processing, false to disable
      Returns:
      the updated TopicConfig
    • addMessageListenerConfig

      public TopicConfig addMessageListenerConfig(ListenerConfig listenerConfig)
      Adds a message listener to this topic (listens for when messages are added or removed).
      Parameters:
      listenerConfig - the message listener to add to this topic
    • getMessageListenerConfigs

      public List<ListenerConfig> getMessageListenerConfigs()
      Gets the list of message listeners (listens for when messages are added or removed) for this topic.
      Returns:
      the list of message listeners for this topic
    • setMessageListenerConfigs

      public TopicConfig setMessageListenerConfigs(List<ListenerConfig> listenerConfigs)
      Sets the list of message listeners (listens for when messages are added or removed) for this topic.
      Parameters:
      listenerConfigs - the list of message listeners for this topic
      Returns:
      this updated topic configuration
    • isStatisticsEnabled

      public boolean isStatisticsEnabled()
      Checks if statistics are enabled for this topic.
      Returns:
      true if statistics are enabled, false otherwise
    • setStatisticsEnabled

      public TopicConfig setStatisticsEnabled(boolean statisticsEnabled)
      Enables or disables statistics for this topic.
      Parameters:
      statisticsEnabled - true to enable statistics for this topic, false to disable
      Returns:
      the updated TopicConfig
    • getUserCodeNamespace

      @Nullable public String getUserCodeNamespace()
      Retrieve the User Code Deployment Namespace to be used for ClassLoader awareness during operations related to the structure associated with this configuration.
      Specified by:
      getUserCodeNamespace in interface UserCodeNamespaceAwareConfig<TopicConfig>
      Returns:
      Namespace Name for use with the UserCodeNamespaceService, or null if there is no User Code Namespace to associate with.
    • setUserCodeNamespace

      public TopicConfig setUserCodeNamespace(@Nullable String userCodeNamespace)
      Associates the provided Namespace Name with this structure for ClassLoader awareness.

      The behaviour of setting this to null is outlined in the documentation for UserCodeNamespaceAwareConfig.DEFAULT_NAMESPACE.

      Specified by:
      setUserCodeNamespace in interface UserCodeNamespaceAwareConfig<TopicConfig>
      Parameters:
      userCodeNamespace - The ID of the Namespace to associate with this structure.
      Returns:
      the updated TopicConfig instance
      Since:
      5.4
    • equals

      public final boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public final int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getFactoryId

      public int getFactoryId()
      Description copied from interface: IdentifiedDataSerializable
      Returns DataSerializableFactory factory ID for this class.
      Specified by:
      getFactoryId in interface IdentifiedDataSerializable
      Returns:
      factory ID
    • getClassId

      public int getClassId()
      Description copied from interface: IdentifiedDataSerializable
      Returns type identifier for this class. It should be unique per DataSerializableFactory.
      Specified by:
      getClassId in interface IdentifiedDataSerializable
      Returns:
      type ID
    • writeData

      public void writeData(ObjectDataOutput out) throws IOException
      Description copied from interface: DataSerializable
      Writes object fields to output stream
      Specified by:
      writeData in interface DataSerializable
      Parameters:
      out - output
      Throws:
      IOException - if an I/O error occurs. In particular, an IOException may be thrown if the output stream has been closed.
    • readData

      public void readData(ObjectDataInput in) throws IOException
      Description copied from interface: DataSerializable
      Reads fields from the input stream
      Specified by:
      readData in interface DataSerializable
      Parameters:
      in - input
      Throws:
      IOException - if an I/O error occurs. In particular, an IOException may be thrown if the input stream has been closed.