# gg-9470-rename

Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/07f7212b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/07f7212b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/07f7212b

Branch: refs/heads/master
Commit: 07f7212b401f83f42426526f6139a5c926b374d0
Parents: 779ddfa
Author: sboikov <sboi...@gridgain.com>
Authored: Thu Dec 4 22:43:11 2014 +0300
Committer: sboikov <sboi...@gridgain.com>
Committed: Thu Dec 4 22:43:11 2014 +0300

----------------------------------------------------------------------
 .../src/main/java/org/apache/ignite/Ignite.java |   4 +-
 .../org/apache/ignite/cluster/ClusterNode.java  |   2 +-
 .../org/apache/ignite/product/GridProduct.java  |  58 ----
 .../ignite/product/GridProductLicense.java      | 175 ------------
 .../product/GridProductLicenseException.java    |  62 ----
 .../ignite/product/GridProductVersion.java      | 283 -------------------
 .../apache/ignite/product/IgniteProduct.java    |  58 ++++
 .../ignite/product/IgniteProductLicense.java    | 175 ++++++++++++
 .../product/IgniteProductLicenseException.java  |  62 ++++
 .../ignite/product/IgniteProductVersion.java    | 283 +++++++++++++++++++
 .../org/gridgain/grid/kernal/GridKernal.java    |   8 +-
 .../gridgain/grid/kernal/GridKernalContext.java |   2 +-
 .../grid/kernal/GridKernalContextImpl.java      |   6 +-
 .../gridgain/grid/kernal/GridProductImpl.java   |  14 +-
 .../grid/kernal/GridUpdateNotifier.java         |   2 +-
 .../discovery/GridDiscoveryManager.java         |  18 +-
 .../dataload/IgniteDataLoaderImpl.java          |   2 +-
 .../kernal/processors/job/GridJobProcessor.java |   2 +-
 .../license/GridLicenseProcessor.java           |  10 +-
 .../license/os/GridOsLicenseProcessor.java      |   6 +-
 .../tcp/GridTcpCommunicationSpi.java            |   8 +-
 .../grid/spi/discovery/GridDiscoverySpi.java    |   2 +-
 .../tcp/GridTcpDiscoverySpiAdapter.java         |   4 +-
 .../tcp/internal/GridTcpDiscoveryNode.java      |  10 +-
 .../java/org/gridgain/grid/util/GridUtils.java  |   4 +-
 .../grid/kernal/GridDiscoverySelfTest.java      |   4 +-
 .../grid/kernal/GridReleaseTypeSelfTest.java    |   2 +-
 .../GridTopologyBuildVersionSelfTest.java       |  12 +-
 .../grid/kernal/GridVersionSelfTest.java        |   2 +-
 ...unctionExcludeNeighborsAbstractSelfTest.java |   2 +-
 .../marshaller/GridMarshallerAbstractTest.java  |   2 +-
 .../grid/p2p/GridP2PClassLoadingSelfTest.java   |   4 +-
 .../product/GridProductVersionSelfTest.java     |  20 +-
 .../GridAbstractDiscoverySelfTest.java          |   2 +-
 .../gridgain/testframework/GridTestNode.java    |   6 +-
 .../junits/spi/GridSpiAbstractTest.java         |   4 +-
 .../java/org/gridgain/grid/GridSpringBean.java  |   2 +-
 37 files changed, 661 insertions(+), 661 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/07f7212b/modules/core/src/main/java/org/apache/ignite/Ignite.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/Ignite.java 
b/modules/core/src/main/java/org/apache/ignite/Ignite.java
index f0e4fa4..f509214 100644
--- a/modules/core/src/main/java/org/apache/ignite/Ignite.java
+++ b/modules/core/src/main/java/org/apache/ignite/Ignite.java
@@ -44,7 +44,7 @@ import java.util.concurrent.*;
  * <li>{@link IgniteFs} - functionality for distributed Hadoop-compliant 
in-memory file system and map-reduce.</li>
  * <li>{@link IgniteStreamer} - functionality for streaming events workflow 
with queries and indexes into rolling windows.</li>
  * <li>{@link IgniteScheduler} - functionality for scheduling jobs using UNIX 
Cron syntax.</li>
- * <li>{@link org.apache.ignite.product.GridProduct} - functionality for 
licence management and update and product related information.</li>
+ * <li>{@link org.apache.ignite.product.IgniteProduct} - functionality for 
licence management and update and product related information.</li>
  * <li>{@link IgniteCompute} - functionality for executing tasks and closures 
on all grid nodes (inherited form {@link 
org.apache.ignite.cluster.ClusterGroup}).</li>
  * <li>{@link IgniteMessaging} - functionality for topic-based message 
exchange on all grid nodes (inherited form {@link 
org.apache.ignite.cluster.ClusterGroup}).</li>
  * <li>{@link IgniteEvents} - functionality for querying and listening to 
events on all grid nodes  (inherited form {@link 
org.apache.ignite.cluster.ClusterGroup}).</li>
@@ -176,7 +176,7 @@ public interface Ignite extends AutoCloseable {
      *
      * @return Instance of product.
      */
-    public GridProduct product();
+    public IgniteProduct product();
 
     /**
      * Gets an instance of cron-based scheduler.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/07f7212b/modules/core/src/main/java/org/apache/ignite/cluster/ClusterNode.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/cluster/ClusterNode.java 
b/modules/core/src/main/java/org/apache/ignite/cluster/ClusterNode.java
index 9ec1962..6263326 100644
--- a/modules/core/src/main/java/org/apache/ignite/cluster/ClusterNode.java
+++ b/modules/core/src/main/java/org/apache/ignite/cluster/ClusterNode.java
@@ -215,7 +215,7 @@ public interface ClusterNode extends GridMetadataAware {
      *
      * @return Node version.
      */
-    public GridProductVersion version();
+    public IgniteProductVersion version();
 
     /**
      * Tests whether or not this node is a local node.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/07f7212b/modules/core/src/main/java/org/apache/ignite/product/GridProduct.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/product/GridProduct.java 
b/modules/core/src/main/java/org/apache/ignite/product/GridProduct.java
deleted file mode 100644
index 51aac73..0000000
--- a/modules/core/src/main/java/org/apache/ignite/product/GridProduct.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.apache.ignite.product;
-
-import org.jetbrains.annotations.*;
-
-/**
- * Provides information about current release. Note that enterprise users are 
also
- * able to renew license. Instance of {@code GridProduct} is obtained from 
grid as follows:
- * <pre name="code" class="java">
- * GridProduct p = GridGain.grid().product();
- * </pre>
- */
-public interface GridProduct {
-    /**
-     * Gets license descriptor for enterprise edition or {@code null} for open 
source edition.
-     *
-     * @return License descriptor.
-     */
-    @Nullable public GridProductLicense license();
-
-    /**
-     * Updates to a new license in enterprise edition. This method is no-op in 
open source edition.
-     *
-     * @param lic The content of the license.
-     * @throws GridProductLicenseException If license could not be updated.
-     */
-    public void updateLicense(String lic) throws GridProductLicenseException;
-
-    /**
-     * Gets product version for this release.
-     *
-     * @return Product version for this release.
-     */
-    public GridProductVersion version();
-
-    /**
-     * Copyright statement for GridGain code.
-     *
-     * @return Legal copyright statement for GridGain code.
-     */
-    public String copyright();
-
-    /**
-     * Gets latest version available for download or
-     * {@code null} if information is not available.
-     *
-     * @return Latest version string or {@code null} if information is not 
available.
-     */
-    @Nullable public String latestVersion();
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/07f7212b/modules/core/src/main/java/org/apache/ignite/product/GridProductLicense.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/product/GridProductLicense.java 
b/modules/core/src/main/java/org/apache/ignite/product/GridProductLicense.java
deleted file mode 100644
index a505a54..0000000
--- 
a/modules/core/src/main/java/org/apache/ignite/product/GridProductLicense.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.apache.ignite.product;
-
-import org.jetbrains.annotations.*;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * GridGain license descriptor. GridGain license is available for
- * information purposes and is checked automatically by GridGain software.
- * License descriptor can be obtains by calling {@link GridProduct#license()} 
method.
- * @see GridProduct#license()
- */
-public interface GridProductLicense extends Serializable {
-    /**
-     * Gets a comma separated list of disabled subsystems.
-     *
-     * @return Comma separated list of disabled subsystems or {@code null}.
-     */
-    public String disabledSubsystems();
-
-    /**
-     * Gets license version.
-     *
-     * @return License version.
-     */
-    public String version();
-
-    /**
-     * Gets license ID.
-     *
-     * @return License ID.
-     */
-    public UUID id();
-
-    /**
-     * Version regular expression.
-     *
-     * @return Version regular expression.
-     */
-    public String versionRegexp();
-
-    /**
-     * Gets issue date.
-     *
-     * @return Issue date.
-     */
-    public Date issueDate();
-
-    /**
-     * Gets maintenance time in months. If zero - no restriction.
-     *
-     * @return Maintenance time.
-     */
-    public int maintenanceTime();
-
-    /**
-     * Gets issue organization.
-     *
-     * @return Issue organization.
-     */
-    public String issueOrganization();
-
-    /**
-     * Gets user organization.
-     *
-     * @return User organization.
-     */
-    public String userOrganization();
-
-    /**
-     * Gets license note. It may include textual description of license 
limitations such
-     * as as "Development Only" or "Load-Testing and Staging Only".
-     *
-     * @return License note.
-     */
-    public String licenseNote();
-
-    /**
-     * Gets user organization URL.
-     *
-     * @return User organization URL.
-     */
-    public String userWww();
-
-    /**
-     * Gets user organization e-mail.
-     *
-     * @return User organization e-mail.
-     */
-    public String userEmail();
-
-    /**
-     * Gets user organization contact name.
-     *
-     * @return User organization contact name.
-     */
-    public String userName();
-
-    /**
-     * Gets expire date.
-     *
-     * @return Expire date.
-     */
-    public Date expireDate();
-
-    /**
-     * Gets maximum number of nodes. If zero - no restriction.
-     *
-     * @return Maximum number of nodes.
-     */
-    public int maxNodes();
-
-    /**
-     * Gets maximum number of physical computers or virtual instances. If zero 
- no restriction.
-     * Note that individual physical computer or virtual instance is 
determined by number of enabled
-     * MACs on each computer or instance.
-     *
-     * @return Maximum number of computers or virtual instances.
-     */
-    public int maxComputers();
-
-    /**
-     * Gets maximum number of CPUs. If zero - no restriction.
-     *
-     * @return Maximum number of CPUs.
-     */
-    public int maxCpus();
-
-    /**
-     * Gets maximum up time in minutes. If zero - no restriction.
-     *
-     * @return Maximum up time in minutes.
-     */
-    public long maxUpTime();
-
-    /**
-     * Gets license violation grace period in minutes. If zero - no grace 
period.
-     *
-     * @return License violation grace period in minutes.
-     */
-    public long gracePeriod();
-
-    /**
-     * Gets license attribute name if any. Attributes in license will have to 
match
-     * attributes in the grid node.
-     *
-     * @return Attribute name.
-     */
-    @Nullable public String attributeName();
-
-    /**
-     * Gets value for the license attribute if any. Attributes in license will 
have to match
-     * attributes in the grid node.
-     *
-     * @return Attribute value.
-     */
-    @Nullable public String attributeValue();
-
-    /**
-     * Gets a comma separated list of allowed cache distribution modes.
-     *
-     * @return Allowed cache distribution modes or {@code null}.
-     */
-    @Nullable public String getCacheDistributionModes();
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/07f7212b/modules/core/src/main/java/org/apache/ignite/product/GridProductLicenseException.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/product/GridProductLicenseException.java
 
b/modules/core/src/main/java/org/apache/ignite/product/GridProductLicenseException.java
deleted file mode 100644
index 887106e..0000000
--- 
a/modules/core/src/main/java/org/apache/ignite/product/GridProductLicenseException.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.apache.ignite.product;
-
-import org.gridgain.grid.*;
-import org.gridgain.grid.util.typedef.internal.*;
-import org.jetbrains.annotations.*;
-
-/**
- * This exception is thrown when license violation is detected.
- */
-public class GridProductLicenseException extends GridException {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /** Short message. */
-    private final String shortMsg;
-
-    /**
-     * Creates new license exception with given error message.
-     *
-     * @param msg Error message.
-     * @param shortMsg Short error message presentable to the user. Note it 
should contain just letter and dot.
-     */
-    public GridProductLicenseException(String msg, @Nullable String shortMsg) {
-        super(msg);
-
-        this.shortMsg = shortMsg;
-    }
-
-    /**
-     * Creates new license exception with given error message and optional 
nested exception.
-     *
-     * @param msg Error message.
-     * @param shortMsg Short error message presentable to the user. Note it 
should contain just letter and dot.
-     * @param cause Optional nested exception (can be {@code null}).
-     */
-    public GridProductLicenseException(String msg, @Nullable String shortMsg, 
@Nullable Throwable cause) {
-        super(msg, cause);
-
-        this.shortMsg = shortMsg;
-    }
-
-    /**
-     * @return shortMessage Short error message presentable to the user. Note 
it should contain just letter and dot.
-     */
-    public final String shortMessage() {
-        return shortMsg;
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(GridProductLicenseException.class, this, "msg", 
getMessage(), "shortMsg", shortMsg);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/07f7212b/modules/core/src/main/java/org/apache/ignite/product/GridProductVersion.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/product/GridProductVersion.java 
b/modules/core/src/main/java/org/apache/ignite/product/GridProductVersion.java
deleted file mode 100644
index 64d68c2..0000000
--- 
a/modules/core/src/main/java/org/apache/ignite/product/GridProductVersion.java
+++ /dev/null
@@ -1,283 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.apache.ignite.product;
-
-import org.gridgain.grid.*;
-import org.gridgain.grid.util.typedef.internal.*;
-import org.jetbrains.annotations.*;
-
-import java.io.*;
-import java.text.*;
-import java.util.*;
-import java.util.regex.*;
-
-/**
- * Represents node version.
- * <p>
- * Node version can be acquired via {@link 
org.apache.ignite.cluster.ClusterNode#version()} method.
- * <p>
- * Two versions are compared in the following order: major number,
- * minor number, maintenance number, revision timestamp.
- */
-public class GridProductVersion implements Comparable<GridProductVersion>, 
Externalizable {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /** Regexp parse pattern. */
-    private static final Pattern VER_PATTERN =
-        
Pattern.compile("(\\d+)\\.(\\d+)\\.(\\d+)((?!-(os|ent))-([^-]+))?(-(os|ent))?(-(\\d+))?(-([\\da-f]+))?");
-
-    /** Major version number. */
-    private byte major;
-
-    /** Minor version number. */
-    private byte minor;
-
-    /** Maintenance version number. */
-    private byte maintenance;
-
-    /** Stage of development. */
-    private String stage;
-
-    /** Revision timestamp. */
-    private long revTs;
-
-    /** Revision hash. */
-    private byte[] revHash;
-
-    /**
-     * Empty constructor required by {@link Externalizable}.
-     */
-    public GridProductVersion() {
-        // No-op.
-    }
-
-    /**
-     * @param major Major version number.
-     * @param minor Minor version number.
-     * @param maintenance Maintenance version number.
-     * @param revTs Revision timestamp.
-     * @param revHash Revision hash.
-     */
-    public GridProductVersion(byte major, byte minor, byte maintenance, long 
revTs, byte[] revHash) {
-        this(major, minor, maintenance, "", revTs, revHash);
-    }
-
-    /**
-     * @param major Major version number.
-     * @param minor Minor version number.
-     * @param maintenance Maintenance version number.
-     * @param stage Stage of development.
-     * @param revTs Revision timestamp.
-     * @param revHash Revision hash.
-     */
-    public GridProductVersion(byte major, byte minor, byte maintenance, String 
stage, long revTs, byte[] revHash) {
-        if (revHash != null && revHash.length != 20)
-            throw new IllegalArgumentException("Invalid length for SHA1 hash 
(must be 20): " + revHash.length);
-
-        this.major = major;
-        this.minor = minor;
-        this.maintenance = maintenance;
-        this.stage = stage;
-        this.revTs = revTs;
-        this.revHash = revHash != null ? revHash : new byte[20];
-    }
-
-    /**
-     * Gets major version number.
-     *
-     * @return Major version number.
-     */
-    public byte major() {
-        return major;
-    }
-
-    /**
-     * Gets minor version number.
-     *
-     * @return Minor version number.
-     */
-    public byte minor() {
-        return minor;
-    }
-
-    /**
-     * Gets maintenance version number.
-     *
-     * @return Maintenance version number.
-     */
-    public byte maintenance() {
-        return maintenance;
-    }
-
-    /**
-     * @return Stage of development.
-     */
-    public String stage() {
-        return stage;
-    }
-
-    /**
-     * Gets revision timestamp.
-     *
-     * @return Revision timestamp.
-     */
-    public long revisionTimestamp() {
-        return revTs;
-    }
-
-    /**
-     * Gets revision hash.
-     *
-     * @return Revision hash.
-     */
-    public byte[] revisionHash() {
-        return revHash;
-    }
-
-    /**
-     * Gets release date.
-     *
-     * @return Release date.
-     */
-    public Date releaseDate() {
-        return new Date(revTs);
-    }
-
-    /**
-     * @param major Major version number.
-     * @param minor Minor version number.
-     * @param maintenance Maintenance version number.
-     * @return {@code True} if this version is greater or equal than the one 
passed in.
-     */
-    public boolean greaterThanEqual(int major, int minor, int maintenance) {
-        // NOTE: Unknown version is less than any other version.
-        if (major == this.major)
-            return minor == this.minor ? this.maintenance >= maintenance : 
this.minor > minor;
-        else
-            return this.major > major;
-    }
-
-    /** {@inheritDoc} */
-    @Override public int compareTo(@NotNull GridProductVersion o) {
-        // NOTE: Unknown version is less than any other version.
-        if (major == o.major) {
-            if (minor == o.minor) {
-                if (maintenance == o.maintenance)
-                    return revTs != o.revTs ? revTs < o.revTs ? -1 : 1 : 0;
-                else
-                    return maintenance < o.maintenance ? -1 : 1;
-            }
-            else
-                return minor < o.minor ? -1 : 1;
-        }
-        else
-            return major < o.major ? -1 : 1;
-    }
-
-    /** {@inheritDoc} */
-    @Override public boolean equals(Object o) {
-        if (this == o)
-            return true;
-
-        if (!(o instanceof GridProductVersion))
-            return false;
-
-        GridProductVersion that = (GridProductVersion)o;
-
-        return revTs == that.revTs && maintenance == that.maintenance && minor 
== that.minor && major == that.major;
-    }
-
-    /** {@inheritDoc} */
-    @Override public int hashCode() {
-        int res = major;
-
-        res = 31 * res + minor;
-        res = 31 * res + maintenance;
-        res = 31 * res + (int)(revTs ^ (revTs >>> 32));
-
-        return res;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void writeExternal(ObjectOutput out) throws IOException {
-        out.writeByte(major);
-        out.writeByte(minor);
-        out.writeByte(maintenance);
-        out.writeLong(revTs);
-        U.writeByteArray(out, revHash);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void readExternal(ObjectInput in) throws IOException, 
ClassNotFoundException {
-        major = in.readByte();
-        minor = in.readByte();
-        maintenance = in.readByte();
-        revTs = in.readLong();
-        revHash = U.readByteArray(in);
-    }
-
-    /** {@inheritDoc} */
-    public String toString() {
-        String revTsStr = new SimpleDateFormat("yyyyMMdd").format(new 
Date(revTs * 1000));
-
-        String hash = U.byteArray2HexString(revHash).toLowerCase();
-
-        hash = hash.length() > 8 ? hash.substring(0, 8) : hash;
-
-        return major + "." + minor + "." + maintenance + "#" + revTsStr + 
"-sha1:" + hash;
-    }
-
-    /**
-     * Tries to parse product version from it's string representation.
-     *
-     * @param verStr String representation of version.
-     * @return Product version.
-     */
-    @SuppressWarnings({"MagicConstant", "TypeMayBeWeakened"})
-    public static GridProductVersion fromString(String verStr) {
-        assert verStr != null;
-
-        if (verStr.endsWith("-DEV")) // Development version, just cut it out.
-            verStr = verStr.substring(0, verStr.length() - 4);
-
-        Matcher match = VER_PATTERN.matcher(verStr);
-
-        if (match.matches()) {
-            try {
-                byte major = Byte.parseByte(match.group(1));
-                byte minor = Byte.parseByte(match.group(2));
-                byte maintenance = Byte.parseByte(match.group(3));
-
-                String stage = "";
-
-                if (match.group(4) != null)
-                    stage = match.group(6);
-
-                long revTs = 0;
-
-                if (match.group(9) != null)
-                    revTs = Long.parseLong(match.group(10));
-
-                byte[] revHash = null;
-
-                if (match.group(11) != null)
-                    revHash = U.decodeHex(match.group(12).toCharArray());
-
-                return new GridProductVersion(major, minor, maintenance, 
stage, revTs, revHash);
-            }
-            catch (IllegalStateException | IndexOutOfBoundsException | 
NumberFormatException | GridException e) {
-                throw new IllegalStateException("Failed to parse version: " + 
verStr, e);
-            }
-        }
-        else
-            throw new IllegalStateException("Failed to parse version: " + 
verStr);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/07f7212b/modules/core/src/main/java/org/apache/ignite/product/IgniteProduct.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/product/IgniteProduct.java 
b/modules/core/src/main/java/org/apache/ignite/product/IgniteProduct.java
new file mode 100644
index 0000000..100d47c
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/product/IgniteProduct.java
@@ -0,0 +1,58 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.product;
+
+import org.jetbrains.annotations.*;
+
+/**
+ * Provides information about current release. Note that enterprise users are 
also
+ * able to renew license. Instance of {@code GridProduct} is obtained from 
grid as follows:
+ * <pre name="code" class="java">
+ * GridProduct p = GridGain.grid().product();
+ * </pre>
+ */
+public interface IgniteProduct {
+    /**
+     * Gets license descriptor for enterprise edition or {@code null} for open 
source edition.
+     *
+     * @return License descriptor.
+     */
+    @Nullable public IgniteProductLicense license();
+
+    /**
+     * Updates to a new license in enterprise edition. This method is no-op in 
open source edition.
+     *
+     * @param lic The content of the license.
+     * @throws IgniteProductLicenseException If license could not be updated.
+     */
+    public void updateLicense(String lic) throws IgniteProductLicenseException;
+
+    /**
+     * Gets product version for this release.
+     *
+     * @return Product version for this release.
+     */
+    public IgniteProductVersion version();
+
+    /**
+     * Copyright statement for GridGain code.
+     *
+     * @return Legal copyright statement for GridGain code.
+     */
+    public String copyright();
+
+    /**
+     * Gets latest version available for download or
+     * {@code null} if information is not available.
+     *
+     * @return Latest version string or {@code null} if information is not 
available.
+     */
+    @Nullable public String latestVersion();
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/07f7212b/modules/core/src/main/java/org/apache/ignite/product/IgniteProductLicense.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/product/IgniteProductLicense.java
 
b/modules/core/src/main/java/org/apache/ignite/product/IgniteProductLicense.java
new file mode 100644
index 0000000..2ff8f66
--- /dev/null
+++ 
b/modules/core/src/main/java/org/apache/ignite/product/IgniteProductLicense.java
@@ -0,0 +1,175 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.product;
+
+import org.jetbrains.annotations.*;
+
+import java.io.*;
+import java.util.*;
+
+/**
+ * GridGain license descriptor. GridGain license is available for
+ * information purposes and is checked automatically by GridGain software.
+ * License descriptor can be obtains by calling {@link 
IgniteProduct#license()} method.
+ * @see IgniteProduct#license()
+ */
+public interface IgniteProductLicense extends Serializable {
+    /**
+     * Gets a comma separated list of disabled subsystems.
+     *
+     * @return Comma separated list of disabled subsystems or {@code null}.
+     */
+    public String disabledSubsystems();
+
+    /**
+     * Gets license version.
+     *
+     * @return License version.
+     */
+    public String version();
+
+    /**
+     * Gets license ID.
+     *
+     * @return License ID.
+     */
+    public UUID id();
+
+    /**
+     * Version regular expression.
+     *
+     * @return Version regular expression.
+     */
+    public String versionRegexp();
+
+    /**
+     * Gets issue date.
+     *
+     * @return Issue date.
+     */
+    public Date issueDate();
+
+    /**
+     * Gets maintenance time in months. If zero - no restriction.
+     *
+     * @return Maintenance time.
+     */
+    public int maintenanceTime();
+
+    /**
+     * Gets issue organization.
+     *
+     * @return Issue organization.
+     */
+    public String issueOrganization();
+
+    /**
+     * Gets user organization.
+     *
+     * @return User organization.
+     */
+    public String userOrganization();
+
+    /**
+     * Gets license note. It may include textual description of license 
limitations such
+     * as as "Development Only" or "Load-Testing and Staging Only".
+     *
+     * @return License note.
+     */
+    public String licenseNote();
+
+    /**
+     * Gets user organization URL.
+     *
+     * @return User organization URL.
+     */
+    public String userWww();
+
+    /**
+     * Gets user organization e-mail.
+     *
+     * @return User organization e-mail.
+     */
+    public String userEmail();
+
+    /**
+     * Gets user organization contact name.
+     *
+     * @return User organization contact name.
+     */
+    public String userName();
+
+    /**
+     * Gets expire date.
+     *
+     * @return Expire date.
+     */
+    public Date expireDate();
+
+    /**
+     * Gets maximum number of nodes. If zero - no restriction.
+     *
+     * @return Maximum number of nodes.
+     */
+    public int maxNodes();
+
+    /**
+     * Gets maximum number of physical computers or virtual instances. If zero 
- no restriction.
+     * Note that individual physical computer or virtual instance is 
determined by number of enabled
+     * MACs on each computer or instance.
+     *
+     * @return Maximum number of computers or virtual instances.
+     */
+    public int maxComputers();
+
+    /**
+     * Gets maximum number of CPUs. If zero - no restriction.
+     *
+     * @return Maximum number of CPUs.
+     */
+    public int maxCpus();
+
+    /**
+     * Gets maximum up time in minutes. If zero - no restriction.
+     *
+     * @return Maximum up time in minutes.
+     */
+    public long maxUpTime();
+
+    /**
+     * Gets license violation grace period in minutes. If zero - no grace 
period.
+     *
+     * @return License violation grace period in minutes.
+     */
+    public long gracePeriod();
+
+    /**
+     * Gets license attribute name if any. Attributes in license will have to 
match
+     * attributes in the grid node.
+     *
+     * @return Attribute name.
+     */
+    @Nullable public String attributeName();
+
+    /**
+     * Gets value for the license attribute if any. Attributes in license will 
have to match
+     * attributes in the grid node.
+     *
+     * @return Attribute value.
+     */
+    @Nullable public String attributeValue();
+
+    /**
+     * Gets a comma separated list of allowed cache distribution modes.
+     *
+     * @return Allowed cache distribution modes or {@code null}.
+     */
+    @Nullable public String getCacheDistributionModes();
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/07f7212b/modules/core/src/main/java/org/apache/ignite/product/IgniteProductLicenseException.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/product/IgniteProductLicenseException.java
 
b/modules/core/src/main/java/org/apache/ignite/product/IgniteProductLicenseException.java
new file mode 100644
index 0000000..4ce3edf
--- /dev/null
+++ 
b/modules/core/src/main/java/org/apache/ignite/product/IgniteProductLicenseException.java
@@ -0,0 +1,62 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.product;
+
+import org.gridgain.grid.*;
+import org.gridgain.grid.util.typedef.internal.*;
+import org.jetbrains.annotations.*;
+
+/**
+ * This exception is thrown when license violation is detected.
+ */
+public class IgniteProductLicenseException extends GridException {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /** Short message. */
+    private final String shortMsg;
+
+    /**
+     * Creates new license exception with given error message.
+     *
+     * @param msg Error message.
+     * @param shortMsg Short error message presentable to the user. Note it 
should contain just letter and dot.
+     */
+    public IgniteProductLicenseException(String msg, @Nullable String 
shortMsg) {
+        super(msg);
+
+        this.shortMsg = shortMsg;
+    }
+
+    /**
+     * Creates new license exception with given error message and optional 
nested exception.
+     *
+     * @param msg Error message.
+     * @param shortMsg Short error message presentable to the user. Note it 
should contain just letter and dot.
+     * @param cause Optional nested exception (can be {@code null}).
+     */
+    public IgniteProductLicenseException(String msg, @Nullable String 
shortMsg, @Nullable Throwable cause) {
+        super(msg, cause);
+
+        this.shortMsg = shortMsg;
+    }
+
+    /**
+     * @return shortMessage Short error message presentable to the user. Note 
it should contain just letter and dot.
+     */
+    public final String shortMessage() {
+        return shortMsg;
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(IgniteProductLicenseException.class, this, "msg", 
getMessage(), "shortMsg", shortMsg);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/07f7212b/modules/core/src/main/java/org/apache/ignite/product/IgniteProductVersion.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/product/IgniteProductVersion.java
 
b/modules/core/src/main/java/org/apache/ignite/product/IgniteProductVersion.java
new file mode 100644
index 0000000..15720f2
--- /dev/null
+++ 
b/modules/core/src/main/java/org/apache/ignite/product/IgniteProductVersion.java
@@ -0,0 +1,283 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.product;
+
+import org.gridgain.grid.*;
+import org.gridgain.grid.util.typedef.internal.*;
+import org.jetbrains.annotations.*;
+
+import java.io.*;
+import java.text.*;
+import java.util.*;
+import java.util.regex.*;
+
+/**
+ * Represents node version.
+ * <p>
+ * Node version can be acquired via {@link 
org.apache.ignite.cluster.ClusterNode#version()} method.
+ * <p>
+ * Two versions are compared in the following order: major number,
+ * minor number, maintenance number, revision timestamp.
+ */
+public class IgniteProductVersion implements Comparable<IgniteProductVersion>, 
Externalizable {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /** Regexp parse pattern. */
+    private static final Pattern VER_PATTERN =
+        
Pattern.compile("(\\d+)\\.(\\d+)\\.(\\d+)((?!-(os|ent))-([^-]+))?(-(os|ent))?(-(\\d+))?(-([\\da-f]+))?");
+
+    /** Major version number. */
+    private byte major;
+
+    /** Minor version number. */
+    private byte minor;
+
+    /** Maintenance version number. */
+    private byte maintenance;
+
+    /** Stage of development. */
+    private String stage;
+
+    /** Revision timestamp. */
+    private long revTs;
+
+    /** Revision hash. */
+    private byte[] revHash;
+
+    /**
+     * Empty constructor required by {@link Externalizable}.
+     */
+    public IgniteProductVersion() {
+        // No-op.
+    }
+
+    /**
+     * @param major Major version number.
+     * @param minor Minor version number.
+     * @param maintenance Maintenance version number.
+     * @param revTs Revision timestamp.
+     * @param revHash Revision hash.
+     */
+    public IgniteProductVersion(byte major, byte minor, byte maintenance, long 
revTs, byte[] revHash) {
+        this(major, minor, maintenance, "", revTs, revHash);
+    }
+
+    /**
+     * @param major Major version number.
+     * @param minor Minor version number.
+     * @param maintenance Maintenance version number.
+     * @param stage Stage of development.
+     * @param revTs Revision timestamp.
+     * @param revHash Revision hash.
+     */
+    public IgniteProductVersion(byte major, byte minor, byte maintenance, 
String stage, long revTs, byte[] revHash) {
+        if (revHash != null && revHash.length != 20)
+            throw new IllegalArgumentException("Invalid length for SHA1 hash 
(must be 20): " + revHash.length);
+
+        this.major = major;
+        this.minor = minor;
+        this.maintenance = maintenance;
+        this.stage = stage;
+        this.revTs = revTs;
+        this.revHash = revHash != null ? revHash : new byte[20];
+    }
+
+    /**
+     * Gets major version number.
+     *
+     * @return Major version number.
+     */
+    public byte major() {
+        return major;
+    }
+
+    /**
+     * Gets minor version number.
+     *
+     * @return Minor version number.
+     */
+    public byte minor() {
+        return minor;
+    }
+
+    /**
+     * Gets maintenance version number.
+     *
+     * @return Maintenance version number.
+     */
+    public byte maintenance() {
+        return maintenance;
+    }
+
+    /**
+     * @return Stage of development.
+     */
+    public String stage() {
+        return stage;
+    }
+
+    /**
+     * Gets revision timestamp.
+     *
+     * @return Revision timestamp.
+     */
+    public long revisionTimestamp() {
+        return revTs;
+    }
+
+    /**
+     * Gets revision hash.
+     *
+     * @return Revision hash.
+     */
+    public byte[] revisionHash() {
+        return revHash;
+    }
+
+    /**
+     * Gets release date.
+     *
+     * @return Release date.
+     */
+    public Date releaseDate() {
+        return new Date(revTs);
+    }
+
+    /**
+     * @param major Major version number.
+     * @param minor Minor version number.
+     * @param maintenance Maintenance version number.
+     * @return {@code True} if this version is greater or equal than the one 
passed in.
+     */
+    public boolean greaterThanEqual(int major, int minor, int maintenance) {
+        // NOTE: Unknown version is less than any other version.
+        if (major == this.major)
+            return minor == this.minor ? this.maintenance >= maintenance : 
this.minor > minor;
+        else
+            return this.major > major;
+    }
+
+    /** {@inheritDoc} */
+    @Override public int compareTo(@NotNull IgniteProductVersion o) {
+        // NOTE: Unknown version is less than any other version.
+        if (major == o.major) {
+            if (minor == o.minor) {
+                if (maintenance == o.maintenance)
+                    return revTs != o.revTs ? revTs < o.revTs ? -1 : 1 : 0;
+                else
+                    return maintenance < o.maintenance ? -1 : 1;
+            }
+            else
+                return minor < o.minor ? -1 : 1;
+        }
+        else
+            return major < o.major ? -1 : 1;
+    }
+
+    /** {@inheritDoc} */
+    @Override public boolean equals(Object o) {
+        if (this == o)
+            return true;
+
+        if (!(o instanceof IgniteProductVersion))
+            return false;
+
+        IgniteProductVersion that = (IgniteProductVersion)o;
+
+        return revTs == that.revTs && maintenance == that.maintenance && minor 
== that.minor && major == that.major;
+    }
+
+    /** {@inheritDoc} */
+    @Override public int hashCode() {
+        int res = major;
+
+        res = 31 * res + minor;
+        res = 31 * res + maintenance;
+        res = 31 * res + (int)(revTs ^ (revTs >>> 32));
+
+        return res;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void writeExternal(ObjectOutput out) throws IOException {
+        out.writeByte(major);
+        out.writeByte(minor);
+        out.writeByte(maintenance);
+        out.writeLong(revTs);
+        U.writeByteArray(out, revHash);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void readExternal(ObjectInput in) throws IOException, 
ClassNotFoundException {
+        major = in.readByte();
+        minor = in.readByte();
+        maintenance = in.readByte();
+        revTs = in.readLong();
+        revHash = U.readByteArray(in);
+    }
+
+    /** {@inheritDoc} */
+    public String toString() {
+        String revTsStr = new SimpleDateFormat("yyyyMMdd").format(new 
Date(revTs * 1000));
+
+        String hash = U.byteArray2HexString(revHash).toLowerCase();
+
+        hash = hash.length() > 8 ? hash.substring(0, 8) : hash;
+
+        return major + "." + minor + "." + maintenance + "#" + revTsStr + 
"-sha1:" + hash;
+    }
+
+    /**
+     * Tries to parse product version from it's string representation.
+     *
+     * @param verStr String representation of version.
+     * @return Product version.
+     */
+    @SuppressWarnings({"MagicConstant", "TypeMayBeWeakened"})
+    public static IgniteProductVersion fromString(String verStr) {
+        assert verStr != null;
+
+        if (verStr.endsWith("-DEV")) // Development version, just cut it out.
+            verStr = verStr.substring(0, verStr.length() - 4);
+
+        Matcher match = VER_PATTERN.matcher(verStr);
+
+        if (match.matches()) {
+            try {
+                byte major = Byte.parseByte(match.group(1));
+                byte minor = Byte.parseByte(match.group(2));
+                byte maintenance = Byte.parseByte(match.group(3));
+
+                String stage = "";
+
+                if (match.group(4) != null)
+                    stage = match.group(6);
+
+                long revTs = 0;
+
+                if (match.group(9) != null)
+                    revTs = Long.parseLong(match.group(10));
+
+                byte[] revHash = null;
+
+                if (match.group(11) != null)
+                    revHash = U.decodeHex(match.group(12).toCharArray());
+
+                return new IgniteProductVersion(major, minor, maintenance, 
stage, revTs, revHash);
+            }
+            catch (IllegalStateException | IndexOutOfBoundsException | 
NumberFormatException | GridException e) {
+                throw new IllegalStateException("Failed to parse version: " + 
verStr, e);
+            }
+        }
+        else
+            throw new IllegalStateException("Failed to parse version: " + 
verStr);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/07f7212b/modules/core/src/main/java/org/gridgain/grid/kernal/GridKernal.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/gridgain/grid/kernal/GridKernal.java 
b/modules/core/src/main/java/org/gridgain/grid/kernal/GridKernal.java
index 544255e..2f2319f 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/GridKernal.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/GridKernal.java
@@ -915,7 +915,7 @@ public class GridKernal extends ClusterGroupAdapter 
implements GridEx, IgniteMBe
                     //
                     // This exception thrown here means that grace period, if 
any,
                     // has expired and license violation is still unresolved.
-                    catch (GridProductLicenseException ignored) {
+                    catch (IgniteProductLicenseException ignored) {
                         U.error(log, "License violation is unresolved. 
GridGain node will shutdown in " +
                             (SHUTDOWN_DELAY / 1000) + " sec.");
                         U.error(log, "  ^-- Contact your support for immediate 
assistance (!)");
@@ -1049,7 +1049,7 @@ public class GridKernal extends ClusterGroupAdapter 
implements GridEx, IgniteMBe
             String nid = localNode().id().toString().toUpperCase();
             String nid8 = U.id8(localNode().id()).toUpperCase();
 
-            GridProductLicense lic = ctx.license().license();
+            IgniteProductLicense lic = ctx.license().license();
 
             String body =
                 "GridGain node started with the following parameters:" + NL +
@@ -2045,7 +2045,7 @@ public class GridKernal extends ClusterGroupAdapter 
implements GridEx, IgniteMBe
                     " stopped " + errOk + ":";
                 String subj = "GridGain node stopped " + errOk + ": " + nid8;
 
-                GridProductLicense lic = ctx.license() != null ? 
ctx.license().license() : null;
+                IgniteProductLicense lic = ctx.license() != null ? 
ctx.license().license() : null;
 
                 String body =
                     headline + NL + NL +
@@ -3163,7 +3163,7 @@ public class GridKernal extends ClusterGroupAdapter 
implements GridEx, IgniteMBe
     }
 
     /** {@inheritDoc} */
-    @Override public GridProduct product() {
+    @Override public IgniteProduct product() {
         return ctx.product();
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/07f7212b/modules/core/src/main/java/org/gridgain/grid/kernal/GridKernalContext.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/gridgain/grid/kernal/GridKernalContext.java 
b/modules/core/src/main/java/org/gridgain/grid/kernal/GridKernalContext.java
index 4ba5fe7..0cf12e3 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/GridKernalContext.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/GridKernalContext.java
@@ -89,7 +89,7 @@ public interface GridKernalContext extends GridMetadataAware, 
Iterable<GridCompo
      *
      * @return Grid product.
      */
-    public GridProduct product();
+    public IgniteProduct product();
 
     /**
      * Gets list of compatible versions.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/07f7212b/modules/core/src/main/java/org/gridgain/grid/kernal/GridKernalContextImpl.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/gridgain/grid/kernal/GridKernalContextImpl.java
 
b/modules/core/src/main/java/org/gridgain/grid/kernal/GridKernalContextImpl.java
index 1111866..4f0f734 100644
--- 
a/modules/core/src/main/java/org/gridgain/grid/kernal/GridKernalContextImpl.java
+++ 
b/modules/core/src/main/java/org/gridgain/grid/kernal/GridKernalContextImpl.java
@@ -262,7 +262,7 @@ public class GridKernalContextImpl extends 
GridMetadataAwareAdapter implements G
     private ExecutorService utilityCachePool;
 
     /** */
-    private GridProduct product;
+    private IgniteProduct product;
 
     /** */
     private IgniteConfiguration cfg;
@@ -717,12 +717,12 @@ public class GridKernalContextImpl extends 
GridMetadataAwareAdapter implements G
     /**
      * @param product Product.
      */
-    public void product(GridProduct product) {
+    public void product(IgniteProduct product) {
         this.product = product;
     }
 
     /** {@inheritDoc} */
-    @Override public GridProduct product() {
+    @Override public IgniteProduct product() {
         return product;
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/07f7212b/modules/core/src/main/java/org/gridgain/grid/kernal/GridProductImpl.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/gridgain/grid/kernal/GridProductImpl.java 
b/modules/core/src/main/java/org/gridgain/grid/kernal/GridProductImpl.java
index 0504e5a..1de19c3 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/GridProductImpl.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/GridProductImpl.java
@@ -18,9 +18,9 @@ import java.text.*;
 import java.util.*;
 
 /**
- * {@link org.apache.ignite.product.GridProduct} implementation.
+ * {@link org.apache.ignite.product.IgniteProduct} implementation.
  */
-public class GridProductImpl implements GridProduct, Externalizable {
+public class GridProductImpl implements IgniteProduct, Externalizable {
     /** */
     private static final long serialVersionUID = 0L;
 
@@ -58,7 +58,7 @@ public class GridProductImpl implements GridProduct, 
Externalizable {
     private GridKernalContext ctx;
 
     /** */
-    private GridProductVersion ver;
+    private IgniteProductVersion ver;
 
     /** Update notifier. */
     private GridUpdateNotifier verChecker;
@@ -111,11 +111,11 @@ public class GridProductImpl implements GridProduct, 
Externalizable {
 
         String releaseType = ctx.isEnterprise() ? "ent" : "os";
 
-        ver = GridProductVersion.fromString(VER + '-' + releaseType + '-' + 
BUILD_TSTAMP + '-' + REV_HASH);
+        ver = IgniteProductVersion.fromString(VER + '-' + releaseType + '-' + 
BUILD_TSTAMP + '-' + REV_HASH);
     }
 
     /** {@inheritDoc} */
-    @Nullable @Override public GridProductLicense license() {
+    @Nullable @Override public IgniteProductLicense license() {
         ctx.gateway().readLock();
 
         try {
@@ -127,7 +127,7 @@ public class GridProductImpl implements GridProduct, 
Externalizable {
     }
 
     /** {@inheritDoc} */
-    @Override public void updateLicense(String lic) throws 
GridProductLicenseException {
+    @Override public void updateLicense(String lic) throws 
IgniteProductLicenseException {
         ctx.gateway().readLock();
 
         try {
@@ -139,7 +139,7 @@ public class GridProductImpl implements GridProduct, 
Externalizable {
     }
 
     /** {@inheritDoc} */
-    @Override public GridProductVersion version() {
+    @Override public IgniteProductVersion version() {
         return ver;
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/07f7212b/modules/core/src/main/java/org/gridgain/grid/kernal/GridUpdateNotifier.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/gridgain/grid/kernal/GridUpdateNotifier.java 
b/modules/core/src/main/java/org/gridgain/grid/kernal/GridUpdateNotifier.java
index ebde564..f928fcb 100644
--- 
a/modules/core/src/main/java/org/gridgain/grid/kernal/GridUpdateNotifier.java
+++ 
b/modules/core/src/main/java/org/gridgain/grid/kernal/GridUpdateNotifier.java
@@ -268,7 +268,7 @@ class GridUpdateNotifier {
         /** {@inheritDoc} */
         @Override protected void body() throws InterruptedException {
             try {
-                GridProductLicense lic = licProc != null ? licProc.license() : 
null;
+                IgniteProductLicense lic = licProc != null ? licProc.license() 
: null;
 
                 String stackTrace = gw != null ? gw.userStackTrace() : null;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/07f7212b/modules/core/src/main/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManager.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManager.java
 
b/modules/core/src/main/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManager.java
index d964e90..106308f 100644
--- 
a/modules/core/src/main/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManager.java
+++ 
b/modules/core/src/main/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManager.java
@@ -189,7 +189,7 @@ public class GridDiscoveryManager extends 
GridManagerAdapter<GridDiscoverySpi> {
      * @param attrs Attributes to set.
      * @param ver Version.
      */
-    public void setNodeAttributes(Map<String, Object> attrs, 
GridProductVersion ver) {
+    public void setNodeAttributes(Map<String, Object> attrs, 
IgniteProductVersion ver) {
         // TODO GG-7574 move to metrics processor?
         long totSysMemory = -1;
 
@@ -984,7 +984,7 @@ public class GridDiscoveryManager extends 
GridManagerAdapter<GridDiscoverySpi> {
      *
      * @return Version to collection of nodes map.
      */
-    public NavigableMap<GridProductVersion, Collection<ClusterNode>> 
topologyVersionMap() {
+    public NavigableMap<IgniteProductVersion, Collection<ClusterNode>> 
topologyVersionMap() {
         return discoCache().versionsMap();
     }
 
@@ -1740,7 +1740,7 @@ public class GridDiscoveryManager extends 
GridManagerAdapter<GridDiscoverySpi> {
         private final Set<String> nearEnabledCaches;
 
         /** Nodes grouped by version. */
-        private final NavigableMap<GridProductVersion, 
Collection<ClusterNode>> nodesByVer;
+        private final NavigableMap<IgniteProductVersion, 
Collection<ClusterNode>> nodesByVer;
 
         /** Daemon nodes. */
         private final List<ClusterNode> daemonNodes;
@@ -1858,7 +1858,7 @@ public class GridDiscoveryManager extends 
GridManagerAdapter<GridDiscoverySpi> {
                     }
                 }
 
-                GridProductVersion nodeVer = U.productVersion(node);
+                IgniteProductVersion nodeVer = U.productVersion(node);
 
                 // Create collection for this version if it does not exist.
                 Collection<ClusterNode> nodes = nodesByVer.get(nodeVer);
@@ -1874,10 +1874,10 @@ public class GridDiscoveryManager extends 
GridManagerAdapter<GridDiscoverySpi> {
 
             // Need second iteration to add this node to all previous node 
versions.
             for (ClusterNode node : allNodes) {
-                GridProductVersion nodeVer = U.productVersion(node);
+                IgniteProductVersion nodeVer = U.productVersion(node);
 
                 // Get all versions lower or equal node's version.
-                NavigableMap<GridProductVersion, Collection<ClusterNode>> 
updateView =
+                NavigableMap<IgniteProductVersion, Collection<ClusterNode>> 
updateView =
                     nodesByVer.headMap(nodeVer, false);
 
                 for (Collection<ClusterNode> prevVersions : 
updateView.values())
@@ -1951,8 +1951,8 @@ public class GridDiscoveryManager extends 
GridManagerAdapter<GridDiscoverySpi> {
          * @param ver Version to check.
          * @return Collection of nodes with version equal or greater than 
{@code ver}.
          */
-        Collection<ClusterNode> elderNodes(GridProductVersion ver) {
-            Map.Entry<GridProductVersion, Collection<ClusterNode>> entry = 
nodesByVer.ceilingEntry(ver);
+        Collection<ClusterNode> elderNodes(IgniteProductVersion ver) {
+            Map.Entry<IgniteProductVersion, Collection<ClusterNode>> entry = 
nodesByVer.ceilingEntry(ver);
 
             if (entry == null)
                 return Collections.emptyList();
@@ -1963,7 +1963,7 @@ public class GridDiscoveryManager extends 
GridManagerAdapter<GridDiscoverySpi> {
         /**
          * @return Versions map.
          */
-        NavigableMap<GridProductVersion, Collection<ClusterNode>> 
versionsMap() {
+        NavigableMap<IgniteProductVersion, Collection<ClusterNode>> 
versionsMap() {
             return nodesByVer;
         }
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/07f7212b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/dataload/IgniteDataLoaderImpl.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/dataload/IgniteDataLoaderImpl.java
 
b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/dataload/IgniteDataLoaderImpl.java
index 1c5ab8e..a53c63e 100644
--- 
a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/dataload/IgniteDataLoaderImpl.java
+++ 
b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/dataload/IgniteDataLoaderImpl.java
@@ -48,7 +48,7 @@ import static 
org.gridgain.grid.kernal.managers.communication.GridIoPolicy.*;
  */
 public class IgniteDataLoaderImpl<K, V> implements IgniteDataLoader<K, V>, 
Delayed {
     /** */
-    public static final GridProductVersion COMPACT_MAP_ENTRIES_SINCE = 
GridProductVersion.fromString("6.5.6");
+    public static final IgniteProductVersion COMPACT_MAP_ENTRIES_SINCE = 
IgniteProductVersion.fromString("6.5.6");
 
     /** Cache updater. */
     private IgniteDataLoadCacheUpdater<K, V> updater = 
GridDataLoadCacheUpdaters.individual();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/07f7212b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/job/GridJobProcessor.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/job/GridJobProcessor.java
 
b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/job/GridJobProcessor.java
index 55ebefd..b031865 100644
--- 
a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/job/GridJobProcessor.java
+++ 
b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/job/GridJobProcessor.java
@@ -51,7 +51,7 @@ public class GridJobProcessor extends GridProcessorAdapter {
     private static final int FINISHED_JOBS_COUNT = 
Integer.getInteger(GG_JOBS_HISTORY_SIZE, 10240);
 
     /** Version when subject ID was added. */
-    public static final GridProductVersion SUBJECT_ID_ADDED_SINCE_VER = 
GridProductVersion.fromString("6.2.1");
+    public static final IgniteProductVersion SUBJECT_ID_ADDED_SINCE_VER = 
IgniteProductVersion.fromString("6.2.1");
 
     /** */
     private final IgniteMarshaller marsh;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/07f7212b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/license/GridLicenseProcessor.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/license/GridLicenseProcessor.java
 
b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/license/GridLicenseProcessor.java
index da76424..80bdd3f 100644
--- 
a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/license/GridLicenseProcessor.java
+++ 
b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/license/GridLicenseProcessor.java
@@ -21,11 +21,11 @@ public interface GridLicenseProcessor extends GridProcessor 
{
      * Upload the new license into the current node.
      *
      * @param licTxt The string representation of the license file.
-     * @throws GridProductLicenseException Thrown if validation check failed 
for specified license or
+     * @throws org.apache.ignite.product.IgniteProductLicenseException Thrown 
if validation check failed for specified license or
      *      license can not be updated because configured license URL use 
non-file scheme.
      * @see org.apache.ignite.configuration.IgniteConfiguration#getLicenseUrl()
      */
-    public void updateLicense(String licTxt) throws 
GridProductLicenseException;
+    public void updateLicense(String licTxt) throws 
IgniteProductLicenseException;
 
     /**
      * Acks the license to the log.
@@ -35,9 +35,9 @@ public interface GridLicenseProcessor extends GridProcessor {
     /**
      * This method is called periodically by the GridGain to check the license 
conformance.
      *
-     * @throws GridProductLicenseException Thrown in case of any license 
violation.
+     * @throws org.apache.ignite.product.IgniteProductLicenseException Thrown 
in case of any license violation.
      */
-    public void checkLicense() throws GridProductLicenseException;
+    public void checkLicense() throws IgniteProductLicenseException;
 
     /**
      * Checks if subsystem is enabled.
@@ -52,7 +52,7 @@ public interface GridLicenseProcessor extends GridProcessor {
      *
      * @return License descriptor or {@code null} for open-source edition.
      */
-    @Nullable public GridProductLicense license();
+    @Nullable public IgniteProductLicense license();
 
     /**
      * @return Grace period left in minutes if bursting or {@code -1} 
otherwise.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/07f7212b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/license/os/GridOsLicenseProcessor.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/license/os/GridOsLicenseProcessor.java
 
b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/license/os/GridOsLicenseProcessor.java
index c06aca0..694e9a3 100644
--- 
a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/license/os/GridOsLicenseProcessor.java
+++ 
b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/license/os/GridOsLicenseProcessor.java
@@ -27,7 +27,7 @@ public class GridOsLicenseProcessor extends 
GridProcessorAdapter implements Grid
     }
 
     /** {@inheritDoc} */
-    @Override public void updateLicense(String licTxt) throws 
GridProductLicenseException {
+    @Override public void updateLicense(String licTxt) throws 
IgniteProductLicenseException {
         // No-op.
     }
 
@@ -37,7 +37,7 @@ public class GridOsLicenseProcessor extends 
GridProcessorAdapter implements Grid
     }
 
     /** {@inheritDoc} */
-    @Override public void checkLicense() throws GridProductLicenseException {
+    @Override public void checkLicense() throws IgniteProductLicenseException {
         // No-op.
     }
 
@@ -47,7 +47,7 @@ public class GridOsLicenseProcessor extends 
GridProcessorAdapter implements Grid
     }
 
     /** {@inheritDoc} */
-    @Nullable @Override public GridProductLicense license() {
+    @Nullable @Override public IgniteProductLicense license() {
         return null;
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/07f7212b/modules/core/src/main/java/org/gridgain/grid/spi/communication/tcp/GridTcpCommunicationSpi.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/gridgain/grid/spi/communication/tcp/GridTcpCommunicationSpi.java
 
b/modules/core/src/main/java/org/gridgain/grid/spi/communication/tcp/GridTcpCommunicationSpi.java
index 20e7569..62b596d 100644
--- 
a/modules/core/src/main/java/org/gridgain/grid/spi/communication/tcp/GridTcpCommunicationSpi.java
+++ 
b/modules/core/src/main/java/org/gridgain/grid/spi/communication/tcp/GridTcpCommunicationSpi.java
@@ -269,7 +269,7 @@ public class GridTcpCommunicationSpi extends GridSpiAdapter
 
                     assert old == null;
 
-                    GridProductVersion locVer = 
getSpiContext().localNode().version();
+                    IgniteProductVersion locVer = 
getSpiContext().localNode().version();
 
                     ClusterNode rmtNode = getSpiContext().node(sndId);
 
@@ -279,7 +279,7 @@ public class GridTcpCommunicationSpi extends GridSpiAdapter
                         return;
                     }
 
-                    GridProductVersion rmtVer = rmtNode.version();
+                    IgniteProductVersion rmtVer = rmtNode.version();
 
                     if (!locVer.equals(rmtVer))
                         ses.addMeta(GridNioServer.DIFF_VER_NODE_ID_META_KEY, 
sndId);
@@ -1680,8 +1680,8 @@ public class GridTcpCommunicationSpi extends 
GridSpiAdapter
 
                         UUID diffVerNodeId = null;
 
-                        GridProductVersion locVer = 
getSpiContext().localNode().version();
-                        GridProductVersion rmtVer = node.version();
+                        IgniteProductVersion locVer = 
getSpiContext().localNode().version();
+                        IgniteProductVersion rmtVer = node.version();
 
                         if (!locVer.equals(rmtVer))
                             diffVerNodeId = node.id();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/07f7212b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/GridDiscoverySpi.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/GridDiscoverySpi.java
 
b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/GridDiscoverySpi.java
index 3fc5e2f..8e6b403 100644
--- 
a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/GridDiscoverySpi.java
+++ 
b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/GridDiscoverySpi.java
@@ -73,7 +73,7 @@ public interface GridDiscoverySpi extends GridSpi {
      * @param attrs Map of node attributes.
      * @param ver Product version.
      */
-    public void setNodeAttributes(Map<String, Object> attrs, 
GridProductVersion ver);
+    public void setNodeAttributes(Map<String, Object> attrs, 
IgniteProductVersion ver);
 
     /**
      * Sets a listener for discovery events. Refer to

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/07f7212b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiAdapter.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiAdapter.java
 
b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiAdapter.java
index 70d5d89..c5d39cc 100644
--- 
a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiAdapter.java
+++ 
b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiAdapter.java
@@ -107,7 +107,7 @@ abstract class GridTcpDiscoverySpiAdapter extends 
GridSpiAdapter implements Grid
     protected Map<String, Object> locNodeAttrs;
 
     /** Local node version. */
-    protected GridProductVersion locNodeVer;
+    protected IgniteProductVersion locNodeVer;
 
     /** Local node. */
     protected GridTcpDiscoveryNode locNode;
@@ -287,7 +287,7 @@ abstract class GridTcpDiscoverySpiAdapter extends 
GridSpiAdapter implements Grid
     }
 
     /** {@inheritDoc} */
-    @Override public void setNodeAttributes(Map<String, Object> attrs, 
GridProductVersion ver) {
+    @Override public void setNodeAttributes(Map<String, Object> attrs, 
IgniteProductVersion ver) {
         assert locNodeAttrs == null;
         assert locNodeVer == null;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/07f7212b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/GridTcpDiscoveryNode.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/GridTcpDiscoveryNode.java
 
b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/GridTcpDiscoveryNode.java
index 14973cf..d15b768 100644
--- 
a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/GridTcpDiscoveryNode.java
+++ 
b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/GridTcpDiscoveryNode.java
@@ -89,7 +89,7 @@ public class GridTcpDiscoveryNode extends 
GridMetadataAwareAdapter implements Cl
     private boolean loc;
 
     /** Version. */
-    private GridProductVersion ver;
+    private IgniteProductVersion ver;
 
     /** Alive check (used by clients). */
     @GridToStringExclude
@@ -117,7 +117,7 @@ public class GridTcpDiscoveryNode extends 
GridMetadataAwareAdapter implements Cl
      * @param ver Version.
      */
     public GridTcpDiscoveryNode(UUID id, Collection<String> addrs, 
Collection<String> hostNames, int discPort,
-        GridDiscoveryMetricsProvider metricsProvider, GridProductVersion ver) {
+        GridDiscoveryMetricsProvider metricsProvider, IgniteProductVersion 
ver) {
         assert id != null;
         assert !F.isEmpty(addrs);
         assert metricsProvider != null;
@@ -236,14 +236,14 @@ public class GridTcpDiscoveryNode extends 
GridMetadataAwareAdapter implements Cl
     }
 
     /** {@inheritDoc} */
-    @Override public GridProductVersion version() {
+    @Override public IgniteProductVersion version() {
         return ver;
     }
 
     /**
      * @param ver Version.
      */
-    public void version(GridProductVersion ver) {
+    public void version(IgniteProductVersion ver) {
         assert ver != null;
 
         this.ver = ver;
@@ -423,7 +423,7 @@ public class GridTcpDiscoveryNode extends 
GridMetadataAwareAdapter implements Cl
 
         order = in.readLong();
         intOrder = in.readLong();
-        ver = (GridProductVersion)in.readObject();
+        ver = (IgniteProductVersion)in.readObject();
         clientRouterNodeId = U.readUuid(in);
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/07f7212b/modules/core/src/main/java/org/gridgain/grid/util/GridUtils.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/util/GridUtils.java 
b/modules/core/src/main/java/org/gridgain/grid/util/GridUtils.java
index 37642c4..47dfb92 100644
--- a/modules/core/src/main/java/org/gridgain/grid/util/GridUtils.java
+++ b/modules/core/src/main/java/org/gridgain/grid/util/GridUtils.java
@@ -5997,14 +5997,14 @@ public abstract class GridUtils {
      * @param node Node to get version from.
      * @return Version object.
      */
-    public static GridProductVersion productVersion(ClusterNode node) {
+    public static IgniteProductVersion productVersion(ClusterNode node) {
         String verStr = node.attribute(ATTR_BUILD_VER);
         String buildDate = node.attribute(ATTR_BUILD_DATE);
 
         if (buildDate != null)
             verStr += '-' + buildDate;
 
-        return GridProductVersion.fromString(verStr);
+        return IgniteProductVersion.fromString(verStr);
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/07f7212b/modules/core/src/test/java/org/gridgain/grid/kernal/GridDiscoverySelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/gridgain/grid/kernal/GridDiscoverySelfTest.java
 
b/modules/core/src/test/java/org/gridgain/grid/kernal/GridDiscoverySelfTest.java
index a2381e6..86255b6 100644
--- 
a/modules/core/src/test/java/org/gridgain/grid/kernal/GridDiscoverySelfTest.java
+++ 
b/modules/core/src/test/java/org/gridgain/grid/kernal/GridDiscoverySelfTest.java
@@ -30,7 +30,7 @@ import java.util.concurrent.*;
 import java.util.concurrent.atomic.*;
 
 import static java.util.concurrent.TimeUnit.*;
-import static org.apache.ignite.product.GridProductVersion.*;
+import static org.apache.ignite.product.IgniteProductVersion.*;
 import static org.apache.ignite.events.IgniteEventType.*;
 
 /**
@@ -342,7 +342,7 @@ public class GridDiscoverySelfTest extends 
GridCommonAbstractTest {
         }
 
         /** {@inheritDoc} */
-        @Override public GridProductVersion version() {
+        @Override public IgniteProductVersion version() {
             return fromString("99.99.99");
         }
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/07f7212b/modules/core/src/test/java/org/gridgain/grid/kernal/GridReleaseTypeSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/gridgain/grid/kernal/GridReleaseTypeSelfTest.java
 
b/modules/core/src/test/java/org/gridgain/grid/kernal/GridReleaseTypeSelfTest.java
index dbbf2d8..4292214 100644
--- 
a/modules/core/src/test/java/org/gridgain/grid/kernal/GridReleaseTypeSelfTest.java
+++ 
b/modules/core/src/test/java/org/gridgain/grid/kernal/GridReleaseTypeSelfTest.java
@@ -45,7 +45,7 @@ public class GridReleaseTypeSelfTest extends 
GridCommonAbstractTest {
 
         // Override node attributes in discovery spi.
         GridTcpDiscoverySpi discoSpi = new GridTcpDiscoverySpi() {
-            @Override public void setNodeAttributes(Map<String, Object> attrs, 
GridProductVersion ver) {
+            @Override public void setNodeAttributes(Map<String, Object> attrs, 
IgniteProductVersion ver) {
                 super.setNodeAttributes(attrs, ver);
 
                 if (idx % 2 == 0)

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/07f7212b/modules/core/src/test/java/org/gridgain/grid/kernal/GridTopologyBuildVersionSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/gridgain/grid/kernal/GridTopologyBuildVersionSelfTest.java
 
b/modules/core/src/test/java/org/gridgain/grid/kernal/GridTopologyBuildVersionSelfTest.java
index de0de36..2e786fc 100644
--- 
a/modules/core/src/test/java/org/gridgain/grid/kernal/GridTopologyBuildVersionSelfTest.java
+++ 
b/modules/core/src/test/java/org/gridgain/grid/kernal/GridTopologyBuildVersionSelfTest.java
@@ -43,7 +43,7 @@ public class GridTopologyBuildVersionSelfTest extends 
GridCommonAbstractTest {
 
         // Override node attributes in discovery spi.
         GridTcpDiscoverySpi discoSpi = new GridTcpDiscoverySpi() {
-            @Override public void setNodeAttributes(Map<String, Object> attrs, 
GridProductVersion ver) {
+            @Override public void setNodeAttributes(Map<String, Object> attrs, 
IgniteProductVersion ver) {
                 super.setNodeAttributes(attrs, ver);
 
                 attrs.put(GridNodeAttributes.ATTR_BUILD_VER, idx + ".0.0" + 
"-ent");
@@ -74,16 +74,16 @@ public class GridTopologyBuildVersionSelfTest extends 
GridCommonAbstractTest {
             for (int i = 3; i >= 0; i--) {
                 GridKernal g = (GridKernal)grid(i);
 
-                NavigableMap<GridProductVersion, Collection<ClusterNode>> 
verMap = g.context().discovery()
+                NavigableMap<IgniteProductVersion, Collection<ClusterNode>> 
verMap = g.context().discovery()
                     .topologyVersionMap();
 
                 assertEquals(4, verMap.size());
 
                 // Now check the map itself.
-                assertEquals(4, 
verMap.get(GridProductVersion.fromString("1.0.0")).size());
-                assertEquals(3, 
verMap.get(GridProductVersion.fromString("2.0.0")).size());
-                assertEquals(2, 
verMap.get(GridProductVersion.fromString("3.0.0-ent-1385099743")).size());
-                assertEquals(1, 
verMap.get(GridProductVersion.fromString("4.0.0-ent-1385099743")).size());
+                assertEquals(4, 
verMap.get(IgniteProductVersion.fromString("1.0.0")).size());
+                assertEquals(3, 
verMap.get(IgniteProductVersion.fromString("2.0.0")).size());
+                assertEquals(2, 
verMap.get(IgniteProductVersion.fromString("3.0.0-ent-1385099743")).size());
+                assertEquals(1, 
verMap.get(IgniteProductVersion.fromString("4.0.0-ent-1385099743")).size());
             }
         }
         finally {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/07f7212b/modules/core/src/test/java/org/gridgain/grid/kernal/GridVersionSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/gridgain/grid/kernal/GridVersionSelfTest.java 
b/modules/core/src/test/java/org/gridgain/grid/kernal/GridVersionSelfTest.java
index 60ce11f..0a2c103 100644
--- 
a/modules/core/src/test/java/org/gridgain/grid/kernal/GridVersionSelfTest.java
+++ 
b/modules/core/src/test/java/org/gridgain/grid/kernal/GridVersionSelfTest.java
@@ -31,7 +31,7 @@ public class GridVersionSelfTest extends 
GridCommonAbstractTest {
         try {
             Ignite ignite = startGrid();
 
-            GridProductVersion currVer = ignite.product().version();
+            IgniteProductVersion currVer = ignite.product().version();
 
             String newVer = null;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/07f7212b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheAffinityFunctionExcludeNeighborsAbstractSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheAffinityFunctionExcludeNeighborsAbstractSelfTest.java
 
b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheAffinityFunctionExcludeNeighborsAbstractSelfTest.java
index 6189598..f18ea5c 100644
--- 
a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheAffinityFunctionExcludeNeighborsAbstractSelfTest.java
+++ 
b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheAffinityFunctionExcludeNeighborsAbstractSelfTest.java
@@ -47,7 +47,7 @@ public abstract class 
GridCacheAffinityFunctionExcludeNeighborsAbstractSelfTest
         IgniteConfiguration c = super.getConfiguration(gridName);
 
         GridTcpDiscoverySpi spi = new GridTcpDiscoverySpi() {
-            @Override public void setNodeAttributes(Map<String, Object> attrs, 
GridProductVersion ver) {
+            @Override public void setNodeAttributes(Map<String, Object> attrs, 
IgniteProductVersion ver) {
                 super.setNodeAttributes(attrs, ver);
 
                 // Set unique mac addresses for every group of three nodes.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/07f7212b/modules/core/src/test/java/org/gridgain/grid/marshaller/GridMarshallerAbstractTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/gridgain/grid/marshaller/GridMarshallerAbstractTest.java
 
b/modules/core/src/test/java/org/gridgain/grid/marshaller/GridMarshallerAbstractTest.java
index d638c91..92aefe0 100644
--- 
a/modules/core/src/test/java/org/gridgain/grid/marshaller/GridMarshallerAbstractTest.java
+++ 
b/modules/core/src/test/java/org/gridgain/grid/marshaller/GridMarshallerAbstractTest.java
@@ -881,7 +881,7 @@ public abstract class GridMarshallerAbstractTest extends 
GridCommonAbstractTest
      * @throws Exception If failed.
      */
     public void testProduct() throws Exception {
-        GridProduct product = grid().product();
+        IgniteProduct product = grid().product();
 
         GridMarshallerTestBean inBean = newTestBean(product);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/07f7212b/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PClassLoadingSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PClassLoadingSelfTest.java
 
b/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PClassLoadingSelfTest.java
index 455067e..1d30a77 100644
--- 
a/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PClassLoadingSelfTest.java
+++ 
b/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PClassLoadingSelfTest.java
@@ -22,7 +22,7 @@ import org.jetbrains.annotations.*;
 import java.util.*;
 import java.util.concurrent.atomic.*;
 
-import static org.apache.ignite.product.GridProductVersion.*;
+import static org.apache.ignite.product.IgniteProductVersion.*;
 
 /**
  * P2P test.
@@ -81,7 +81,7 @@ public class GridP2PClassLoadingSelfTest extends 
GridCommonAbstractTest {
         }
 
         /** {@inheritDoc} */
-        @Override public GridProductVersion version() {
+        @Override public IgniteProductVersion version() {
             return fromString("99.99.99");
         }
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/07f7212b/modules/core/src/test/java/org/gridgain/grid/product/GridProductVersionSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/gridgain/grid/product/GridProductVersionSelfTest.java
 
b/modules/core/src/test/java/org/gridgain/grid/product/GridProductVersionSelfTest.java
index 0fd1ff6..9e7abd3 100644
--- 
a/modules/core/src/test/java/org/gridgain/grid/product/GridProductVersionSelfTest.java
+++ 
b/modules/core/src/test/java/org/gridgain/grid/product/GridProductVersionSelfTest.java
@@ -23,7 +23,7 @@ public class GridProductVersionSelfTest extends 
GridCommonAbstractTest {
      * @throws Exception If failed.
      */
     public void testFromString() throws Exception {
-        GridProductVersion ver = GridProductVersion.fromString("1.2.3");
+        IgniteProductVersion ver = IgniteProductVersion.fromString("1.2.3");
 
         assertEquals(1, ver.major());
         assertEquals(2, ver.minor());
@@ -32,7 +32,7 @@ public class GridProductVersionSelfTest extends 
GridCommonAbstractTest {
         assertEquals(0, ver.revisionTimestamp());
         assertArrayEquals(new byte[20], ver.revisionHash());
 
-        ver = GridProductVersion.fromString("1.2.3-ent-0-DEV");
+        ver = IgniteProductVersion.fromString("1.2.3-ent-0-DEV");
 
         assertEquals(1, ver.major());
         assertEquals(2, ver.minor());
@@ -40,7 +40,7 @@ public class GridProductVersionSelfTest extends 
GridCommonAbstractTest {
         assertEquals(0, ver.revisionTimestamp());
         assertArrayEquals(new byte[20], ver.revisionHash());
 
-        ver = GridProductVersion.fromString("1.2.3-rc1-os-4-DEV");
+        ver = IgniteProductVersion.fromString("1.2.3-rc1-os-4-DEV");
 
         assertEquals(1, ver.major());
         assertEquals(2, ver.minor());
@@ -49,7 +49,7 @@ public class GridProductVersionSelfTest extends 
GridCommonAbstractTest {
         assertEquals(4, ver.revisionTimestamp());
         assertArrayEquals(new byte[20], ver.revisionHash());
 
-        ver = GridProductVersion.fromString("1.2.3-GA1-4-DEV");
+        ver = IgniteProductVersion.fromString("1.2.3-GA1-4-DEV");
 
         assertEquals(1, ver.major());
         assertEquals(2, ver.minor());
@@ -58,7 +58,7 @@ public class GridProductVersionSelfTest extends 
GridCommonAbstractTest {
         assertEquals(4, ver.revisionTimestamp());
         assertArrayEquals(new byte[20], ver.revisionHash());
 
-        ver = GridProductVersion.fromString("1.2.3-ent");
+        ver = IgniteProductVersion.fromString("1.2.3-ent");
 
         assertEquals(1, ver.major());
         assertEquals(2, ver.minor());
@@ -67,7 +67,7 @@ public class GridProductVersionSelfTest extends 
GridCommonAbstractTest {
         assertEquals(0, ver.revisionTimestamp());
         assertArrayEquals(new byte[20], ver.revisionHash());
 
-        ver = GridProductVersion.fromString("1.2.3-os-4");
+        ver = IgniteProductVersion.fromString("1.2.3-os-4");
 
         assertEquals(1, ver.major());
         assertEquals(2, ver.minor());
@@ -76,7 +76,7 @@ public class GridProductVersionSelfTest extends 
GridCommonAbstractTest {
         assertEquals(4, ver.revisionTimestamp());
         assertArrayEquals(new byte[20], ver.revisionHash());
 
-        ver = 
GridProductVersion.fromString("1.2.3-ent-4-18e5a7ec9e3202126a69bc231a6b965bc1d73dee");
+        ver = 
IgniteProductVersion.fromString("1.2.3-ent-4-18e5a7ec9e3202126a69bc231a6b965bc1d73dee");
 
         assertEquals(1, ver.major());
         assertEquals(2, ver.minor());
@@ -86,7 +86,7 @@ public class GridProductVersionSelfTest extends 
GridCommonAbstractTest {
         assertArrayEquals(new byte[] 
{24,-27,-89,-20,-98,50,2,18,106,105,-68,35,26,107,-106,91,-63,-41,61,-18},
             ver.revisionHash());
 
-        ver = 
GridProductVersion.fromString("1.2.3-rc1-os-4-18e5a7ec9e3202126a69bc231a6b965bc1d73dee");
+        ver = 
IgniteProductVersion.fromString("1.2.3-rc1-os-4-18e5a7ec9e3202126a69bc231a6b965bc1d73dee");
 
         assertEquals(1, ver.major());
         assertEquals(2, ver.minor());
@@ -96,8 +96,8 @@ public class GridProductVersionSelfTest extends 
GridCommonAbstractTest {
         assertArrayEquals(new byte[] 
{24,-27,-89,-20,-98,50,2,18,106,105,-68,35,26,107,-106,91,-63,-41,61,-18},
             ver.revisionHash());
 
-        GridProductVersion.fromString(VER + '-' + "ent" + '-' + BUILD_TSTAMP + 
'-' + REV_HASH);
+        IgniteProductVersion.fromString(VER + '-' + "ent" + '-' + BUILD_TSTAMP 
+ '-' + REV_HASH);
 
-        GridProductVersion.fromString(VER + '-' + "os" + '-' + BUILD_TSTAMP + 
'-' + REV_HASH);
+        IgniteProductVersion.fromString(VER + '-' + "os" + '-' + BUILD_TSTAMP 
+ '-' + REV_HASH);
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/07f7212b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/GridAbstractDiscoverySelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/GridAbstractDiscoverySelfTest.java
 
b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/GridAbstractDiscoverySelfTest.java
index 7e34b08..0e49e3e 100644
--- 
a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/GridAbstractDiscoverySelfTest.java
+++ 
b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/GridAbstractDiscoverySelfTest.java
@@ -26,7 +26,7 @@ import java.util.*;
 import java.util.concurrent.atomic.*;
 
 import static org.apache.ignite.events.IgniteEventType.*;
-import static org.apache.ignite.product.GridProductVersion.*;
+import static org.apache.ignite.product.IgniteProductVersion.*;
 
 /**
  * Base discovery self-test class.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/07f7212b/modules/core/src/test/java/org/gridgain/testframework/GridTestNode.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/gridgain/testframework/GridTestNode.java 
b/modules/core/src/test/java/org/gridgain/testframework/GridTestNode.java
index 55a0106..da867c7 100644
--- a/modules/core/src/test/java/org/gridgain/testframework/GridTestNode.java
+++ b/modules/core/src/test/java/org/gridgain/testframework/GridTestNode.java
@@ -17,14 +17,14 @@ import org.gridgain.grid.util.lang.*;
 import java.util.*;
 import java.util.concurrent.atomic.*;
 
-import static org.apache.ignite.product.GridProductVersion.*;
+import static org.apache.ignite.product.IgniteProductVersion.*;
 
 /**
  * Test node.
  */
 public class GridTestNode extends GridMetadataAwareAdapter implements 
ClusterNode {
     /** */
-    private static final GridProductVersion VERSION = fromString("99.99.99");
+    private static final IgniteProductVersion VERSION = fromString("99.99.99");
 
     /** */
     private static final AtomicInteger consistentIdCtr = new AtomicInteger();
@@ -181,7 +181,7 @@ public class GridTestNode extends GridMetadataAwareAdapter 
implements ClusterNod
     }
 
     /** {@inheritDoc} */
-    @Override public GridProductVersion version() {
+    @Override public IgniteProductVersion version() {
         return VERSION;
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/07f7212b/modules/core/src/test/java/org/gridgain/testframework/junits/spi/GridSpiAbstractTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/gridgain/testframework/junits/spi/GridSpiAbstractTest.java
 
b/modules/core/src/test/java/org/gridgain/testframework/junits/spi/GridSpiAbstractTest.java
index 4255f3e..a7be5ef 100644
--- 
a/modules/core/src/test/java/org/gridgain/testframework/junits/spi/GridSpiAbstractTest.java
+++ 
b/modules/core/src/test/java/org/gridgain/testframework/junits/spi/GridSpiAbstractTest.java
@@ -33,7 +33,7 @@ import java.lang.reflect.*;
 import java.util.*;
 import java.util.concurrent.*;
 
-import static org.apache.ignite.product.GridProductVersion.*;
+import static org.apache.ignite.product.IgniteProductVersion.*;
 
 /**
  * Base SPI test class.
@@ -42,7 +42,7 @@ import static org.apache.ignite.product.GridProductVersion.*;
 @SuppressWarnings({"JUnitTestCaseWithNonTrivialConstructors"})
 public abstract class GridSpiAbstractTest<T extends GridSpi> extends 
GridAbstractTest {
     /** */
-    private static final GridProductVersion VERSION = fromString("99.99.99");
+    private static final IgniteProductVersion VERSION = fromString("99.99.99");
 
     /** */
     private static final Map<Class<?>, TestData<?>> tests = new 
ConcurrentHashMap<>();

Reply via email to