Class HxVersion
Version, license and copyright info.
In addition to library version information, this class lets you control
which licenses are used when any new HexalyOptimizer object is
created. With the right methods, you can dynamically load licenses that are
not in the default locations, or easily switch from local to cloud execution
in a single line. These license changes will only be taken into account for
new HexalyOptimizer objects, and has no impact on existing ones.
There are two ways to change the license used:
- Directly specify the contents of the license file. This is done via the
getLicenseContent()andsetLicenseContent(String)methods. - Or by changing the license path using the
getLicensePath()andsetLicensePath(String)methods.
When both methods are used, the content always takes precedence over the
path. In other words, if the getLicenseContent() method returns a
string that is neither null nor empty, this content will be used instead of
the path returned by getLicensePath().
When the HexalyOptimizer library is loaded, the licenseContent and licensePath fields are automatically populated with default values.
The licenseContent field is automatically populated based on the following information (in order of priority):
- The contents of the HX_LICENSE_CONTENT environment variable, if defined.
- The contents of the LS_LICENSE_CONTENT environment variable, if defined. Its use has been deprecated since Hexaly 13.0.
- An empty string.
The licensePath field is populated using the following information (in order of priority):
- The contents of the HX_LICENSE_PATH environment variable, if defined.
- The contents of the LS_LICENSE_PATH environment variable, if defined. Its use has been deprecated since Hexaly 13.0.
- If a file named license.dat exists in the current execution folder, the absolute path to this file.
- The path to c:\hexaly_!MAJOR_VERSION!_!MINOR_VERSION!\license.dat on Windows, or /opt/hexaly_!MAJOR_VERSION!_!MINOR_VERSION!/license.dat on Linux and macOS if such a file exists.
- The path to the file c:\hexaly\license.dat on Windows or /opt/hexaly/license.dat on Linux and macOS if such a file exists.
- The path to the file c:\localsolver\license.dat on Windows or /opt/localsolver/license.dat on Linux and macOS if such a file exists. Note that the use of this file has been deprecated since Hexaly 13.0.
- If none of these files exist, licensePath is populated with the default path c:\hexaly_!MAJOR_VERSION!_!MINOR_VERSION!\license.dat on Windows, or /opt/hexaly_!MAJOR_VERSION!_!MINOR_VERSION!/license.dat on Linux and macOS.
For windows users: If you used the installer to setup Hexaly, the HX_LICENSE_PATH environment variable is already defined and points to the license file present in the installation folder.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic final intReturns Hexaly Optimizer build date.static final StringReturns Hexaly Optimizer copyright as a string.static final StringgetInfo()Returns version and copyright info as a string.static final StringReturns the license content previously set withsetLicenseContent(java.lang.String)or the HX_LICENSE_CONTENT environment variable.static final DateReturns the expiration date of the current license.static final intReturns the code of the maximum version supported by the current license.static final StringReturns the license path of Hexaly Optimizer.static final intReturns Hexaly Optimizer major version number.static final intReturns Hexaly Optimizer minor version number.static final StringReturns the platform of the Hexaly Optimizer binary as a string.static final StringReturns Hexaly Optimizer version as a string.static final intReturns Hexaly Optimizer version code as an integer in the range [0, 29999].static final voidsetLicenseContent(String licenseContent) Change the license content that will be used for all newHexalyOptimizerobjects.static final voidsetLicensePath(String licensePath) Change the license path used by Hexaly Optimizer.
-
Constructor Details
-
HxVersion
public HxVersion()
-
-
Method Details
-
getMajorVersionNumber
public static final int getMajorVersionNumber()Returns Hexaly Optimizer major version number. This number is an integer in the range [0, 2999].- Returns:
- Major version number.
-
getMinorVersionNumber
public static final int getMinorVersionNumber()Returns Hexaly Optimizer minor version number. This number is an integer in the range [0, 9].- Returns:
- Minor version number.
-
getBuildDate
public static final int getBuildDate()Returns Hexaly Optimizer build date. This number is an integer YYYYMMDD with YYYY the year, MM the month, DD the day.- Returns:
- Build date.
-
getPlatform
Returns the platform of the Hexaly Optimizer binary as a string. The format of the string is PPPPXX where PPPP is the platform (Win, Linux or MacOS) and XX is the architecture (32 or 64 bits).- Returns:
- Platform as string.
- Since:
- 3.0
-
getVersion
Returns Hexaly Optimizer version as a string. The format of the string is: MA.MI.YYYYMMDD-PPPPXX with MA the major number version, MI the minor number version, YYYY the year, MM the month, DD the day, PPPP the platform (Win, Linux or MacOS) and XX the architecture.- Returns:
- Version as string "MA.MI.YYYYMMDD-PPPPXX".
-
getVersionCode
public static final int getVersionCode()Returns Hexaly Optimizer version code as an integer in the range [0, 29999]. The version code is computed as follows: MA * 10 + MI with MA the major number version, MI the minor number version. Note that the version code can be encoded as a 16-bit integer.- Returns:
- Version code.
-
getCopyright
Returns Hexaly Optimizer copyright as a string.- Returns:
- Copyright notice.
-
getInfo
Returns version and copyright info as a string.- Returns:
- Version and copyright info.
-
getLicensePath
Returns the license path of Hexaly Optimizer. This path will be used for any new
HexalyOptimizerobject. Existing objects will not be affected the path change.This method returns the value specified by the user if
setLicensePath(String)was called. Otherwise, a default value is returned. This default value is described at the top of this document.- Returns:
- Path to the license
- Since:
- 3.0
- See Also:
-
setLicensePath
Change the license path used by Hexaly Optimizer. This path will be used for any newHexalyOptimizerobject. Existing objects will not be affected by the path change.- Parameters:
licensePath- new path for the license- Since:
- 3.0
- See Also:
-
getLicenseContent
Returns the license content previously set withsetLicenseContent(java.lang.String)or the HX_LICENSE_CONTENT environment variable. The license content will be used for all newHexalyOptimizerobject. Existing objects will not be affected by the change.- Returns:
- The content of the license or an empty string if the content was not set.
- Since:
- 5.0
- See Also:
-
setLicenseContent
Change the license content that will be used for all new
HexalyOptimizerobjects. Existing objects will not be affected by the change.The content passed as a parameter must be the complete license content as it appears in your file, e.g. LICENSE_KEY = XXXX where XXXX is your license number. The content may include several lines.
- Parameters:
licenseContent- content of the license to use.- Since:
- 5.0
- See Also:
-
getLicenseMaxVersionCode
public static final int getLicenseMaxVersionCode()Returns the code of the maximum version supported by the current license. The current license is the one that will be used for any new
HexalyOptimizerobject. It is determined according to the priority order defined at the top of this document.The version code is computed as follows: MA * 10 + MI with MA the major number version, MI the minor number version.
This method does not work for cloud licenses. In that case, an exception will be thrown. An exception will also be thrown if the current license does not exist, or if it is not well-formed or cannot be found.
- Since:
- 14.0
-
getLicenseExpirationDate
Returns the expiration date of the current license. The current license is the one that will be used for any new
HexalyOptimizerobject. It is determined according to the priority order defined at the top of this document. The expiration date is always expressed in local time (i.e. without time zone information).This method does not work for cloud licenses. In that case, an exception will be thrown. An exception will also be thrown if the current license does not exist, or if it is not well-formed or cannot be found.
- Since:
- 14.0
-