Class CuratorFrameworkFactory.Builder

  • Enclosing class:
    CuratorFrameworkFactory

    public static class CuratorFrameworkFactory.Builder
    extends java.lang.Object
    • Method Detail

      • build

        public CuratorFramework build()
        Apply the current values and build a new CuratorFramework
        Returns:
        new CuratorFramework
      • buildTemp

        public CuratorTempFramework buildTemp()
        Apply the current values and build a new temporary CuratorFramework. Temporary CuratorFramework instances are meant for single requests to ZooKeeper ensembles over a failure prone network such as a WAN. The APIs available from CuratorTempFramework are limited. Further, the connection will be closed after 3 minutes of inactivity.
        Returns:
        temp instance
      • buildTemp

        public CuratorTempFramework buildTemp​(long inactiveThreshold,
                                              java.util.concurrent.TimeUnit unit)
        Apply the current values and build a new temporary CuratorFramework. Temporary CuratorFramework instances are meant for single requests to ZooKeeper ensembles over a failure prone network such as a WAN. The APIs available from CuratorTempFramework are limited. Further, the connection will be closed after inactiveThresholdMs milliseconds of inactivity.
        Parameters:
        inactiveThreshold - number of milliseconds of inactivity to cause connection close
        unit - threshold unit
        Returns:
        temp instance
      • authorization

        public CuratorFrameworkFactory.Builder authorization​(java.lang.String scheme,
                                                             byte[] auth)
        Add connection authorization Subsequent calls to this method overwrite the prior calls.
        Parameters:
        scheme - the scheme
        auth - the auth bytes
        Returns:
        this
      • ensembleProvider

        public CuratorFrameworkFactory.Builder ensembleProvider​(org.apache.curator.ensemble.EnsembleProvider ensembleProvider)
        Set the list ensemble provider. IMPORTANT: use either this or connectString(String) but not both.
        Parameters:
        ensembleProvider - the ensemble provider to use
        Returns:
        this
      • defaultData

        public CuratorFrameworkFactory.Builder defaultData​(byte[] defaultData)
        Sets the data to use when PathAndBytesable.forPath(String) is used. This is useful for debugging purposes. For example, you could set this to be the IP of the client.
        Parameters:
        defaultData - new default data to use
        Returns:
        this
      • namespace

        public CuratorFrameworkFactory.Builder namespace​(java.lang.String namespace)
        As ZooKeeper is a shared space, users of a given cluster should stay within a pre-defined namespace. If a namespace is set here, all paths will get pre-pended with the namespace
        Parameters:
        namespace - the namespace
        Returns:
        this
      • sessionTimeoutMs

        public CuratorFrameworkFactory.Builder sessionTimeoutMs​(int sessionTimeoutMs)
        Parameters:
        sessionTimeoutMs - session timeout
        Returns:
        this
      • connectionTimeoutMs

        public CuratorFrameworkFactory.Builder connectionTimeoutMs​(int connectionTimeoutMs)
        Parameters:
        connectionTimeoutMs - connection timeout
        Returns:
        this
      • maxCloseWaitMs

        public CuratorFrameworkFactory.Builder maxCloseWaitMs​(int maxCloseWaitMs)
        Parameters:
        maxCloseWaitMs - time to wait during close to join background threads
        Returns:
        this
      • retryPolicy

        public CuratorFrameworkFactory.Builder retryPolicy​(org.apache.curator.RetryPolicy retryPolicy)
        Parameters:
        retryPolicy - retry policy to use
        Returns:
        this
      • threadFactory

        public CuratorFrameworkFactory.Builder threadFactory​(java.util.concurrent.ThreadFactory threadFactory)
        Parameters:
        threadFactory - thread factory used to create Executor Services
        Returns:
        this
      • zookeeperFactory

        public CuratorFrameworkFactory.Builder zookeeperFactory​(org.apache.curator.utils.ZookeeperFactory zookeeperFactory)
        Parameters:
        zookeeperFactory - the zookeeper factory to use
        Returns:
        this
      • canBeReadOnly

        public CuratorFrameworkFactory.Builder canBeReadOnly​(boolean canBeReadOnly)
        Parameters:
        canBeReadOnly - if true, allow ZooKeeper client to enter read only mode in case of a network partition. See ZooKeeper(String, int, Watcher, long, byte[], boolean) for details
        Returns:
        this
      • zk34CompatibilityMode

        public CuratorFrameworkFactory.Builder zk34CompatibilityMode​(boolean mode)
        If mode is true, create a ZooKeeper 3.4.x compatible client. IMPORTANT: If the client library used is ZooKeeper 3.4.x zk34CompatibilityMode is enabled by default.
        Parameters:
        mode - true/false
        Returns:
        this
        Since:
        3.5.0
      • waitForShutdownTimeoutMs

        public CuratorFrameworkFactory.Builder waitForShutdownTimeoutMs​(int waitForShutdownTimeoutMs)
        Set a timeout for CuratorZookeeperClient.close(int) }. The default is 0, which means that this feature is disabled.
        Parameters:
        waitForShutdownTimeoutMs - default timeout
        Returns:
        this
        Since:
        4.0.2
      • connectionHandlingPolicy

        public CuratorFrameworkFactory.Builder connectionHandlingPolicy​(org.apache.curator.connection.ConnectionHandlingPolicy connectionHandlingPolicy)

        Change the connection handling policy. The default policy is StandardConnectionHandlingPolicy.

        IMPORTANT: StandardConnectionHandlingPolicy has different behavior than the connection policy handling prior to version 3.0.0.

        Major differences from the older behavior are:

        • Session/connection timeouts are no longer managed by the low-level client. They are managed by the CuratorFramework instance. There should be no noticeable differences.
        • Prior to 3.0.0, each iteration of the retry policy would allow the connection timeout to elapse if the connection hadn't yet succeeded. This meant that the true connection timeout was the configured value times the maximum retries in the retry policy. This longstanding issue has been address. Now, the connection timeout can elapse only once for a single API call.
        • MOST IMPORTANTLY! Prior to 3.0.0, ConnectionState.LOST did not imply a lost session (much to the confusion of users). Now, Curator will set the LOST state only when it believes that the ZooKeeper session has expired. ZooKeeper connections have a session. When the session expires, clients must take appropriate action. In Curator, this is complicated by the fact that Curator internally manages the ZooKeeper connection. Now, Curator will set the LOST state when any of the following occurs: a) ZooKeeper returns a Watcher.Event.KeeperState.Expired or KeeperException.Code.SESSIONEXPIRED; b) Curator closes the internally managed ZooKeeper instance; c) The session timeout elapses during a network partition.
        Parameters:
        connectionHandlingPolicy - the policy
        Returns:
        this
        Since:
        3.0.0
      • runSafeService

        public CuratorFrameworkFactory.Builder runSafeService​(java.util.concurrent.Executor runSafeService)
        Curator (and user) recipes will use this executor to call notifyAll and other blocking calls that might normally block ZooKeeper's event thread. By default, an executor is allocated internally using the provided (or default) threadFactory(java.util.concurrent.ThreadFactory). Use this method to set a custom executor.
        Parameters:
        runSafeService - executor to use for calls to notifyAll from Watcher callbacks etc
        Returns:
        this
        Since:
        4.1.0
      • getRunSafeService

        public java.util.concurrent.Executor getRunSafeService()
      • getZookeeperFactory

        public org.apache.curator.utils.ZookeeperFactory getZookeeperFactory()
      • getThreadFactory

        public java.util.concurrent.ThreadFactory getThreadFactory()
      • getEnsembleProvider

        public org.apache.curator.ensemble.EnsembleProvider getEnsembleProvider()
      • getSessionTimeoutMs

        public int getSessionTimeoutMs()
      • getConnectionTimeoutMs

        public int getConnectionTimeoutMs()
      • getWaitForShutdownTimeoutMs

        public int getWaitForShutdownTimeoutMs()
      • getMaxCloseWaitMs

        public int getMaxCloseWaitMs()
      • getRetryPolicy

        public org.apache.curator.RetryPolicy getRetryPolicy()
      • getNamespace

        public java.lang.String getNamespace()
      • useContainerParentsIfAvailable

        public boolean useContainerParentsIfAvailable()
      • getConnectionHandlingPolicy

        public org.apache.curator.connection.ConnectionHandlingPolicy getConnectionHandlingPolicy()
      • getSchemaSet

        public SchemaSet getSchemaSet()
      • isZk34CompatibilityMode

        public boolean isZk34CompatibilityMode()
      • getAuthScheme

        @Deprecated
        public java.lang.String getAuthScheme()
        Deprecated.
      • getAuthValue

        @Deprecated
        public byte[] getAuthValue()
        Deprecated.
      • getAuthInfos

        public java.util.List<AuthInfo> getAuthInfos()
      • getDefaultData

        public byte[] getDefaultData()
      • canBeReadOnly

        public boolean canBeReadOnly()