Class HxVersion

java.lang.Object
com.hexaly.optimizer.HxVersion

public class HxVersion extends Object

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:

  1. Directly specify the contents of the license file. This is done via the getLicenseContent() and setLicenseContent(String) methods.
  2. Or by changing the license path using the getLicensePath() and setLicensePath(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):

  1. The contents of the HX_LICENSE_CONTENT environment variable, if defined.
  2. The contents of the LS_LICENSE_CONTENT environment variable, if defined. Its use has been deprecated since Hexaly 13.0.
  3. An empty string.

The licensePath field is populated using the following information (in order of priority):

  1. The contents of the HX_LICENSE_PATH environment variable, if defined.
  2. The contents of the LS_LICENSE_PATH environment variable, if defined. Its use has been deprecated since Hexaly 13.0.
  3. If a file named license.dat exists in the current execution folder, the absolute path to this file.
  4. 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.
  5. 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.
  6. 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.
  7. 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 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

      public static final String 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

      public static final String 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

      public static final String getCopyright()
      Returns Hexaly Optimizer copyright as a string.
      Returns:
      Copyright notice.
    • getInfo

      public static final String getInfo()
      Returns version and copyright info as a string.
      Returns:
      Version and copyright info.
    • getLicensePath

      public static final String getLicensePath()

      Returns the license path of Hexaly Optimizer. This path will be used for any new HexalyOptimizer object. 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

      public static final void setLicensePath(String licensePath)
      Change the license path used by Hexaly Optimizer. This path will be used for any new HexalyOptimizer object. Existing objects will not be affected by the path change.
      Parameters:
      licensePath - new path for the license
      Since:
      3.0
      See Also:
    • getLicenseContent

      public static final String getLicenseContent()
      Returns the license content previously set with setLicenseContent(java.lang.String) or the HX_LICENSE_CONTENT environment variable. The license content will be used for all new HexalyOptimizer object. 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

      public static final void setLicenseContent(String licenseContent)

      Change the license content that will be used for all new HexalyOptimizer objects. 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 HexalyOptimizer object. 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

      public static final Date getLicenseExpirationDate()

      Returns the expiration date of the current license. The current license is the one that will be used for any new HexalyOptimizer object. 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