| /*- |
| * Copyright (C) 2002, 2018, Oracle and/or its affiliates. All rights reserved. |
| * |
| * This file was distributed by Oracle as part of a version of Oracle Berkeley |
| * DB Java Edition made available at: |
| * |
| * http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index.html |
| * |
| * Please see the LICENSE file included in the top-level directory of the |
| * appropriate version of Oracle Berkeley DB Java Edition for a copy of the |
| * license and additional information. |
| */ |
| |
| package com.sleepycat.je.rep; |
| |
| import java.io.File; |
| import java.util.Properties; |
| |
| import com.sleepycat.je.DatabaseException; |
| import com.sleepycat.je.EnvironmentConfig; |
| import com.sleepycat.je.StatsConfig; |
| import com.sleepycat.je.rep.impl.RepGroupImpl; |
| import com.sleepycat.je.rep.impl.RepImpl; |
| |
| /** |
| * @hidden |
| * For internal use only. It serves to shelter methods that must be public to |
| * be used by other BDBJE packages but that are not part of the public api |
| * available to applications. |
| */ |
| public class RepInternal { |
| |
| /** |
| * Proxy to ReplicatedEnvironment.getMaybeNullRepImpl. |
| * |
| * This method does not check whether the env is valid. |
| * |
| * WARNING: This method will be phased out over time and normally |
| * getNonNullRepImpl should be called instead. |
| * |
| * @return the non-null underlying RepImpl, or null if the env has been |
| * closed. |
| */ |
| public static RepImpl getRepImpl(ReplicatedEnvironment rep) { |
| return rep.getMaybeNullRepImpl(); |
| } |
| |
| /** |
| * Proxy to ReplicatedEnvironment.getNonNullEnvImpl |
| * |
| * This method is called to access the underlying RepImpl when an env is |
| * expected to be open, to guard against NPE when the env has been closed. |
| * |
| * This method does not check whether the env is valid. |
| * |
| * @return the non-null, underlying RepImpl. |
| * |
| * @throws IllegalStateException if the env has been closed. |
| */ |
| public static RepImpl getNonNullRepImpl(ReplicatedEnvironment rep) { |
| return rep.getNonNullRepImpl(); |
| } |
| |
| public static RepGroupImpl getRepGroupImpl(ReplicationGroup group) { |
| return group.getRepGroupImpl(); |
| } |
| |
| public static ReplicationConfig |
| makeReplicationConfig(Properties props, boolean validateParams) |
| throws IllegalArgumentException { |
| |
| return new ReplicationConfig(props, validateParams); |
| } |
| |
| public static int getNodeId(ReplicatedEnvironment rep) { |
| return getNonNullRepImpl(rep).getNodeId(); |
| } |
| |
| /* |
| * Create an environment handle but do not join the group as part of the |
| * creation of this handle. This operation is only really meaningful in |
| * the absence of existing handles that had already been used to join the |
| * group. |
| */ |
| public static ReplicatedEnvironment |
| createDetachedEnv(File envHome, |
| ReplicationConfig repConfig, |
| EnvironmentConfig envConfig) |
| throws DatabaseException { |
| |
| return new ReplicatedEnvironment(envHome, repConfig, envConfig, |
| null, |
| QuorumPolicy.SIMPLE_MAJORITY, |
| false, |
| null); |
| } |
| |
| /* |
| * Create an environment handle but do not join the group as part of the |
| * creation of this handle. |
| */ |
| public static ReplicatedEnvironment |
| createInternalEnvHandle(File envHome, |
| ReplicationConfig repConfig, |
| EnvironmentConfig envConfig) |
| throws DatabaseException { |
| |
| return new ReplicatedEnvironment(envHome, repConfig, envConfig, |
| null, |
| null, |
| false, |
| null); |
| } |
| |
| /** |
| * Proxy to ReplicationMutableConfig.validateParams. |
| */ |
| public static void disableParameterValidation |
| (ReplicationMutableConfig config) { |
| config.setOverrideValidateParams(false); |
| } |
| |
| public static |
| ReplicatedEnvironmentStats makeReplicatedEnvironmentStats |
| (RepImpl repImpl, StatsConfig config) { |
| |
| return new ReplicatedEnvironmentStats(repImpl, config); |
| } |
| |
| |
| public static void setAllowConvert(final ReplicationConfig repConfig, |
| final boolean allowConvert) { |
| repConfig.setAllowConvert(allowConvert); |
| } |
| |
| public static boolean getAllowConvert(final ReplicationConfig repConfig) { |
| return repConfig.getAllowConvert(); |
| } |
| } |