@Override
  public int hashCode() {
    return new HashCodeBuilder(17, 37).append(name).append(tcpPort).append(mcastPort)
        .append(mcastTtl).append(socketLeaseTime).append(socketBufferSize).append(conserveSockets)
        .append(roles).append(mcastAddress).append(bindAddress).append(serverBindAddress)
        .append(locators).append(locatorWaitTime).append(logFile).append(deployWorkingDir)
        .append(logLevel).append(startLocator).append(startLocatorPort)
        .append(statisticSamplingEnabled).append(statisticSampleRate).append(statisticArchiveFile)
        .append(ackWaitThreshold).append(ackForceDisconnectThreshold).append(cacheXmlFile)
        .append(archiveDiskSpaceLimit).append(archiveFileSizeLimit).append(logDiskSpaceLimit)
        .append(logFileSizeLimit).append(clusterSSLEnabled).append(clusterSSLProtocols)
        .append(clusterSSLCiphers).append(clusterSSLRequireAuthentication)
        .append(clusterSSLKeyStore).append(clusterSSLKeyStoreType)
        .append(clusterSSLKeyStorePassword).append(clusterSSLTrustStore)
        .append(clusterSSLTrustStorePassword).append(clusterSSLAlias).append(mcastSendBufferSize)
        .append(mcastRecvBufferSize).append(mcastFlowControl).append(udpSendBufferSize)
        .append(udpRecvBufferSize).append(udpFragmentSize).append(disableTcp).append(disableJmx)
        .append(enableTimeStatistics).append(memberTimeout).append(membershipPortRange)
        .append(maxWaitTimeForReconnect).append(maxNumReconnectTries)
        .append(asyncDistributionTimeout).append(asyncQueueTimeout).append(asyncMaxQueueSize)
        .append(clientConflation).append(durableClientId).append(durableClientTimeout)
        .append(securityClientAuthInit).append(securityClientAuthenticator).append(securityManager)
        .append(postProcessor).append(securityClientDHAlgo).append(securityPeerAuthInit)
        .append(securityPeerAuthenticator).append(securityClientAccessor)
        .append(securityClientAccessorPP).append(securityLogLevel)
        .append(enableNetworkPartitionDetection).append(disableAutoReconnect)
        .append(securityLogFile).append(securityPeerMembershipTimeout).append(security)
        .append(userDefinedProps).append(removeUnresponsiveClient).append(deltaPropagation)
        .append(props).append(distributedSystemId).append(remoteLocators).append(enforceUniqueHost)
        .append(redundancyZone).append(sslProperties).append(clusterSSLProperties).append(groups)
        .append(enableSharedConfiguration).append(useSharedConfiguration)
        .append(loadSharedConfigurationFromDir).append(clusterConfigDir).append(httpServicePort)
        .append(httpServiceBindAddress).append(startDevRestApi).append(memcachedPort)
        .append(memcachedProtocol).append(memcachedBindAddress).append(distributedTransactions)
        .append(jmxManager)
        .append(jmxManagerStart).append(jmxManagerPort).append(jmxManagerBindAddress)
        .append(jmxManagerHostnameForClients).append(jmxManagerPasswordFile)
        .append(jmxManagerAccessFile).append(jmxManagerHttpPort).append(jmxManagerUpdateRate)
        .append(jmxManagerSSLEnabled).append(jmxManagerSslRequireAuthentication)
        .append(jmxManagerSslProtocols).append(jmxManagerSslCiphers).append(jmxManagerSslProperties)
        .append(jmxManagerSSLKeyStore).append(jmxManagerSSLKeyStoreType)
        .append(jmxManagerSSLKeyStorePassword).append(jmxManagerSSLTrustStore)
        .append(jmxManagerSSLTrustStorePassword).append(jmxManagerSSLAlias).append(serverSSLEnabled)
        .append(serverSslRequireAuthentication).append(serverSslProtocols).append(serverSslCiphers)
        .append(serverSslProperties).append(serverSSLKeyStore).append(serverSSLKeyStoreType)
        .append(serverSSLKeyStorePassword).append(serverSSLTrustStore)
        .append(serverSSLTrustStorePassword).append(serverSSLAlias).append(gatewaySSLEnabled)
        .append(gatewaySslRequireAuthentication).append(gatewaySslProtocols)
        .append(gatewaySslCiphers).append(gatewaySslProperties).append(gatewaySSLKeyStore)
        .append(gatewaySSLKeyStoreType).append(gatewaySSLKeyStorePassword)
        .append(gatewaySSLTrustStore).append(gatewaySSLTrustStorePassword).append(gatewaySSLAlias)
        .append(httpServiceSSLEnabled).append(httpServiceSSLRequireAuthentication)
        .append(httpServiceSSLProtocols).append(httpServiceSSLCiphers)
        .append(httpServiceSSLProperties).append(httpServiceSSLKeyStore)
        .append(httpServiceSSLKeyStoreType).append(httpServiceSSLKeyStorePassword)
        .append(httpServiceSSLTrustStore).append(httpServiceSSLTrustStorePassword)
        .append(httpServiceSSLAlias).append(securableCommunicationChannels).append(sslProtocols)
        .append(sslClientProtocols).append(sslServerProtocols)
        .append(sslCiphers).append(sslRequireAuthentication).append(sslKeyStore)
        .append(sslKeyStoreType).append(sslKeyStorePassword).append(sslTrustStore)
        .append(sslTrustStorePassword).append(sslParameterExtension)
        .append(sslWebServiceRequireAuthentication)
        .append(locatorSSLAlias).append(sslDefaultAlias).append(sourceMap)
        .append(userCommandPackages).append(offHeapMemorySize).append(lockMemory).append(shiroInit)
        .append(modifiable).append(threadMonitorEnabled).append(threadMonitorInterval)
        .append(threadMonitorTimeLimit).toHashCode();
  }
The hash code of a <code>DistributionConfigImpl</code> is based on the value of all of its
configuration properties. Be careful if you need to remove final and override this. See bug
#50939.
geode-core/src/main/java/org/apache/geode/distributed/internal/DistributionConfigImpl.java