Top Inners Fields Constructors Methods
com.oracle.bmc.util.internal

public Class ClientCompatibilityChecker

extends Object
Class Inheritance
Imports
com.oracle.bmc.ClientRuntime, org.slf4j.Logger, java.util.HashMap, .Map, .Optional, .Properties, java.util.concurrent.locks.Lock, .ReadWriteLock, .ReentrantReadWriteLock

Nested and Inner Type Summary

Modifier and TypeClass and Description
pack-priv static class
pack-priv static class
pack-priv static class
public static enum
pack-priv static interface

Field Summary

Modifier and TypeField and Description
public static final String
public static final String
public static final String
public static final String
private static final Logger
private final String
private final String
public static final String
OCI_JAVASDK_CLIENT_VERSION_COMPATIBILITY_CHECK_SYSTEM_PROPERTY_NAME

This Java VM system property (which can be set using -Doci.javasdk.disable.version.compatibility.check=NEVER, for example) controls how frequently client compatibility should be checked.

private final String
private final ClientCompatibilityChecker.VersionCompatibilityCheckMode

Constructor Summary

AccessConstructor and Description
public
public

Method Summary

Modifier and TypeMethod and Description
pack-priv static String
public String
public String
private static ClientCompatibilityChecker.VersionCompatibilityCheckMode
public boolean
isClientCodegenVersionCompatible(String clientClassName, String clientCodegenVersion, Optional<String> javaMinimumClientCodegenVersionFromClient, Logger logger)

pack-priv static String
pack-priv static String
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

JAVA_CLIENT_CODEGEN_VERSION_PROPERTY_NAMEback to summary
public static final String JAVA_CLIENT_CODEGEN_VERSION_PROPERTY_NAME
JAVA_MAXIMUM_CLIENT_CODEGEN_VERSION_PROPERTY_NAMEback to summary
public static final String JAVA_MAXIMUM_CLIENT_CODEGEN_VERSION_PROPERTY_NAME
JAVA_MINIMUM_CLIENT_CODEGEN_VERSION_FROM_CLIENT_PROPERTY_NAMEback to summary
public static final String JAVA_MINIMUM_CLIENT_CODEGEN_VERSION_FROM_CLIENT_PROPERTY_NAME
JAVA_MINIMUM_CLIENT_CODEGEN_VERSION_PROPERTY_NAMEback to summary
public static final String JAVA_MINIMUM_CLIENT_CODEGEN_VERSION_PROPERTY_NAME
LOGback to summary
private static final Logger LOG
maximumClientCodegenVersionback to summary
private final String maximumClientCodegenVersion
minimumClientCodegenVersionback to summary
private final String minimumClientCodegenVersion
OCI_JAVASDK_CLIENT_VERSION_COMPATIBILITY_CHECK_SYSTEM_PROPERTY_NAMEback to summary
public static final String OCI_JAVASDK_CLIENT_VERSION_COMPATIBILITY_CHECK_SYSTEM_PROPERTY_NAME

This Java VM system property (which can be set using -Doci.javasdk.disable.version.compatibility.check=NEVER, for example) controls how frequently client compatibility should be checked.

Valid choices for this system property are "NEVER", "ONCE", and "ALWAYS". The default is "ONCE".

"NEVER" does not perform any compatibility checks at all.

"ONCE", which is the default, performs the check once per client class.

"ALWAYS" performs the check every time a new client is instantiated.

sdkVersionback to summary
private final String sdkVersion
versionCompatibilityCheckModeback to summary
private final ClientCompatibilityChecker.VersionCompatibilityCheckMode versionCompatibilityCheckMode

Constructor Detail

ClientCompatibilityCheckerback to summary
public ClientCompatibilityChecker(Properties sdkProperties)
ClientCompatibilityCheckerback to summary
public ClientCompatibilityChecker(Properties sdkProperties, ClientCompatibilityChecker.VersionCompatibilityCheckMode versionCompatibilityCheckMode)

Method Detail

getCodegenVersionWithoutSdkVersionback to summary
pack-priv static String getCodegenVersionWithoutSdkVersion(String clientCodegenVersion)
getMaximumClientCodegenVersionback to summary
public String getMaximumClientCodegenVersion()
getMinimumClientCodegenVersionback to summary
public String getMinimumClientCodegenVersion()
getVersionCompatibilityCheckModeFromSystemPropertyback to summary
private static ClientCompatibilityChecker.VersionCompatibilityCheckMode getVersionCompatibilityCheckModeFromSystemProperty()
isClientCodegenVersionCompatibleback to summary
public boolean isClientCodegenVersionCompatible(String clientClassName, String clientCodegenVersion, Optional<String> javaMinimumClientCodegenVersionFromClient, Logger logger)
maxClientCodegenVersionback to summary
pack-priv static String maxClientCodegenVersion(Properties sdkProperties)
minClientCodegenVersionback to summary
pack-priv static String minClientCodegenVersion(Properties sdkProperties)
com.oracle.bmc.util.internal back to summary

pack-priv Class ClientCompatibilityChecker.AlwaysVersionCompatibilityCheckModeImpl

extends Object
implements VersionCompatibilityCheckModeImpl
Class Inheritance
  • java.lang.Object
  • com.oracle.bmc.util.internal.ClientCompatibilityChecker.AlwaysVersionCompatibilityCheckModeImpl
All Implemented Interfaces
com.oracle.bmc.util.internal.ClientCompatibilityChecker.VersionCompatibilityCheckModeImpl

Constructor Summary

AccessConstructor and Description
pack-priv

Method Summary

Modifier and TypeMethod and Description
public Optional<Boolean>
public void
public boolean
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Constructor Detail

AlwaysVersionCompatibilityCheckModeImplback to summary
pack-priv AlwaysVersionCompatibilityCheckModeImpl()

Method Detail

getPreviousResultback to summary
public Optional<Boolean> getPreviousResult(String clientClassName)

Implements com.oracle.bmc.util.internal.ClientCompatibilityChecker.VersionCompatibilityCheckModeImpl.getPreviousResult.

Annotations
@Override
logInitialMessageback to summary
public void logInitialMessage()

Implements com.oracle.bmc.util.internal.ClientCompatibilityChecker.VersionCompatibilityCheckModeImpl.logInitialMessage.

Annotations
@Override
setPreviousResultback to summary
public boolean setPreviousResult(String clientClassName, boolean previousResult)

Implements com.oracle.bmc.util.internal.ClientCompatibilityChecker.VersionCompatibilityCheckModeImpl.setPreviousResult.

Annotations
@Override
com.oracle.bmc.util.internal back to summary

pack-priv Class ClientCompatibilityChecker.NeverVersionCompatibilityCheckModeImpl

extends Object
implements VersionCompatibilityCheckModeImpl
Class Inheritance
  • java.lang.Object
  • com.oracle.bmc.util.internal.ClientCompatibilityChecker.NeverVersionCompatibilityCheckModeImpl
All Implemented Interfaces
com.oracle.bmc.util.internal.ClientCompatibilityChecker.VersionCompatibilityCheckModeImpl

Constructor Summary

AccessConstructor and Description
pack-priv

Method Summary

Modifier and TypeMethod and Description
public Optional<Boolean>
public void
public boolean
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Constructor Detail

NeverVersionCompatibilityCheckModeImplback to summary
pack-priv NeverVersionCompatibilityCheckModeImpl()

Method Detail

getPreviousResultback to summary
public Optional<Boolean> getPreviousResult(String clientClassName)

Implements com.oracle.bmc.util.internal.ClientCompatibilityChecker.VersionCompatibilityCheckModeImpl.getPreviousResult.

Annotations
@Override
logInitialMessageback to summary
public void logInitialMessage()

Implements com.oracle.bmc.util.internal.ClientCompatibilityChecker.VersionCompatibilityCheckModeImpl.logInitialMessage.

Annotations
@Override
setPreviousResultback to summary
public boolean setPreviousResult(String clientClassName, boolean previousResult)

Implements com.oracle.bmc.util.internal.ClientCompatibilityChecker.VersionCompatibilityCheckModeImpl.setPreviousResult.

Annotations
@Override
com.oracle.bmc.util.internal back to summary

pack-priv Class ClientCompatibilityChecker.OnceVersionCompatibilityCheckModeImpl

extends Object
implements VersionCompatibilityCheckModeImpl
Class Inheritance
  • java.lang.Object
  • com.oracle.bmc.util.internal.ClientCompatibilityChecker.OnceVersionCompatibilityCheckModeImpl
All Implemented Interfaces
com.oracle.bmc.util.internal.ClientCompatibilityChecker.VersionCompatibilityCheckModeImpl

Field Summary

Modifier and TypeField and Description
private final ReadWriteLock
private final Map<String, Boolean>
previousResults

Stores previous client/common library codegen version compatibility checks, but only if VERSION_COMPATIBILITY_CHECK_MODE is VersionCompatibilityCheckMode.ONCE.

Constructor Summary

AccessConstructor and Description
pack-priv

Method Summary

Modifier and TypeMethod and Description
public Optional<Boolean>
public void
public boolean
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

lockback to summary
private final ReadWriteLock lock
previousResultsback to summary
private final Map<String, Boolean> previousResults

Stores previous client/common library codegen version compatibility checks, but only if VERSION_COMPATIBILITY_CHECK_MODE is VersionCompatibilityCheckMode.ONCE.

Constructor Detail

OnceVersionCompatibilityCheckModeImplback to summary
pack-priv OnceVersionCompatibilityCheckModeImpl()

Method Detail

getPreviousResultback to summary
public Optional<Boolean> getPreviousResult(String clientClassName)

Implements com.oracle.bmc.util.internal.ClientCompatibilityChecker.VersionCompatibilityCheckModeImpl.getPreviousResult.

Annotations
@Override
logInitialMessageback to summary
public void logInitialMessage()

Implements com.oracle.bmc.util.internal.ClientCompatibilityChecker.VersionCompatibilityCheckModeImpl.logInitialMessage.

Annotations
@Override
setPreviousResultback to summary
public boolean setPreviousResult(String clientClassName, boolean previousResult)

Implements com.oracle.bmc.util.internal.ClientCompatibilityChecker.VersionCompatibilityCheckModeImpl.setPreviousResult.

Annotations
@Override
com.oracle.bmc.util.internal back to summary

public final Enum ClientCompatibilityChecker.VersionCompatibilityCheckMode

extends Enum<ClientCompatibilityChecker.VersionCompatibilityCheckMode>
Class Inheritance

Field Summary

Modifier and TypeField and Description
public static final ClientCompatibilityChecker.VersionCompatibilityCheckMode
private final ClientCompatibilityChecker.VersionCompatibilityCheckModeImpl
public static final ClientCompatibilityChecker.VersionCompatibilityCheckMode
public static final ClientCompatibilityChecker.VersionCompatibilityCheckMode

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public static ClientCompatibilityChecker.VersionCompatibilityCheckMode
public Optional<Boolean>
getPreviousResult(String clientClassName)

public void
public boolean
setPreviousResult(String clientClassName, boolean previousResult)

public static ClientCompatibilityChecker.VersionCompatibilityCheckMode
public static ClientCompatibilityChecker.VersionCompatibilityCheckMode[]
Inherited from java.lang.Enum:
clonecompareTodescribeConstableequalsfinalizegetDeclaringClasshashCodenameordinaltoStringvalueOf

Field Detail

ALWAYSback to summary
public static final ClientCompatibilityChecker.VersionCompatibilityCheckMode ALWAYS
implback to summary
private final ClientCompatibilityChecker.VersionCompatibilityCheckModeImpl impl
NEVERback to summary
public static final ClientCompatibilityChecker.VersionCompatibilityCheckMode NEVER
ONCEback to summary
public static final ClientCompatibilityChecker.VersionCompatibilityCheckMode ONCE

Constructor Detail

VersionCompatibilityCheckModeback to summary
private VersionCompatibilityCheckMode(ClientCompatibilityChecker.VersionCompatibilityCheckModeImpl impl)

Method Detail

fromStringback to summary
public static ClientCompatibilityChecker.VersionCompatibilityCheckMode fromString(String s)
getPreviousResultback to summary
public Optional<Boolean> getPreviousResult(String clientClassName)
logInitialMessageback to summary
public void logInitialMessage()
setPreviousResultback to summary
public boolean setPreviousResult(String clientClassName, boolean previousResult)
valueOfback to summary
public static ClientCompatibilityChecker.VersionCompatibilityCheckMode valueOf(String name)
valuesback to summary
public static ClientCompatibilityChecker.VersionCompatibilityCheckMode[] values()
com.oracle.bmc.util.internal back to summary

pack-priv Interface ClientCompatibilityChecker.VersionCompatibilityCheckModeImpl

Known Direct Implementers
com.oracle.bmc.util.internal.ClientCompatibilityChecker.NeverVersionCompatibilityCheckModeImpl, com.oracle.bmc.util.internal.ClientCompatibilityChecker.AlwaysVersionCompatibilityCheckModeImpl, com.oracle.bmc.util.internal.ClientCompatibilityChecker.OnceVersionCompatibilityCheckModeImpl

Method Summary

Modifier and TypeMethod and Description
public Optional<Boolean>
getPreviousResult(String clientClassName)

public void
public boolean
setPreviousResult(String clientClassName, boolean previousResult)

Method Detail

getPreviousResultback to summary
public Optional<Boolean> getPreviousResult(String clientClassName)
logInitialMessageback to summary
public void logInitialMessage()
setPreviousResultback to summary
public boolean setPreviousResult(String clientClassName, boolean previousResult)