You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2014/12/05 00:24:37 UTC
[45/53] [abbrv] incubator-ignite git commit: # gg-9470-rename
# 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/779ddfa5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/779ddfa5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/779ddfa5
Branch: refs/heads/master
Commit: 779ddfa56ee290d9ab688612f198dc282aa6e2cc
Parents: e04165b
Author: sboikov <sb...@gridgain.com>
Authored: Thu Dec 4 22:41:14 2014 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Thu Dec 4 22:41:14 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 +++++++++++++++++++
.../java/org/apache/ignite/product/package.html | 15 +
.../org/gridgain/grid/kernal/GridKernal.java | 2 +-
.../gridgain/grid/kernal/GridKernalContext.java | 2 +-
.../grid/kernal/GridKernalContextImpl.java | 2 +-
.../gridgain/grid/kernal/GridProductImpl.java | 4 +-
.../grid/kernal/GridUpdateNotifier.java | 2 +-
.../discovery/GridDiscoveryManager.java | 2 +-
.../dataload/IgniteDataLoaderImpl.java | 2 +-
.../kernal/processors/job/GridJobProcessor.java | 2 +-
.../license/GridLicenseProcessor.java | 2 +-
.../license/os/GridOsLicenseProcessor.java | 2 +-
.../org/gridgain/grid/product/GridProduct.java | 58 ----
.../grid/product/GridProductLicense.java | 175 ------------
.../product/GridProductLicenseException.java | 62 ----
.../grid/product/GridProductVersion.java | 283 -------------------
.../java/org/gridgain/grid/product/package.html | 15 -
.../tcp/GridTcpCommunicationSpi.java | 2 +-
.../grid/spi/discovery/GridDiscoverySpi.java | 2 +-
.../tcp/GridTcpDiscoverySpiAdapter.java | 2 +-
.../tcp/internal/GridTcpDiscoveryNode.java | 2 +-
.../java/org/gridgain/grid/util/GridUtils.java | 2 +-
.../grid/kernal/GridDiscoverySelfTest.java | 4 +-
.../grid/kernal/GridReleaseTypeSelfTest.java | 2 +-
.../GridTopologyBuildVersionSelfTest.java | 2 +-
.../grid/kernal/GridVersionSelfTest.java | 2 +-
...unctionExcludeNeighborsAbstractSelfTest.java | 2 +-
.../marshaller/GridMarshallerAbstractTest.java | 2 +-
.../grid/p2p/GridP2PClassLoadingSelfTest.java | 4 +-
.../product/GridProductVersionSelfTest.java | 1 +
.../GridAbstractDiscoverySelfTest.java | 2 +-
.../gridgain/testframework/GridTestNode.java | 4 +-
.../junits/spi/GridSpiAbstractTest.java | 4 +-
.../java/org/gridgain/grid/GridSpringBean.java | 2 +-
39 files changed, 628 insertions(+), 627 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/779ddfa5/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 d98c532..f0e4fa4 100644
--- a/modules/core/src/main/java/org/apache/ignite/Ignite.java
+++ b/modules/core/src/main/java/org/apache/ignite/Ignite.java
@@ -12,13 +12,13 @@ package org.apache.ignite;
import org.apache.ignite.cluster.*;
import org.apache.ignite.configuration.*;
import org.apache.ignite.plugin.*;
+import org.apache.ignite.product.*;
import org.gridgain.grid.*;
import org.gridgain.grid.cache.*;
import org.gridgain.grid.dr.*;
import org.gridgain.grid.ggfs.*;
import org.gridgain.grid.hadoop.*;
import org.gridgain.grid.portables.*;
-import org.gridgain.grid.product.*;
import org.gridgain.grid.security.*;
import org.gridgain.grid.util.typedef.*;
import org.jetbrains.annotations.*;
@@ -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 GridProduct} - functionality for licence management and update and product related information.</li>
+ * <li>{@link org.apache.ignite.product.GridProduct} - 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>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/779ddfa5/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 e66fb74..9ec1962 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
@@ -10,9 +10,9 @@
package org.apache.ignite.cluster;
import org.apache.ignite.IgniteCluster;
+import org.apache.ignite.product.*;
import org.gridgain.grid.*;
import org.gridgain.grid.kernal.*;
-import org.gridgain.grid.product.*;
import org.gridgain.grid.spi.*;
import org.gridgain.grid.spi.discovery.tcp.*;
import org.jetbrains.annotations.*;
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/779ddfa5/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
new file mode 100644
index 0000000..51aac73
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/product/GridProduct.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 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/779ddfa5/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
new file mode 100644
index 0000000..a505a54
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/product/GridProductLicense.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 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/779ddfa5/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
new file mode 100644
index 0000000..887106e
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/product/GridProductLicenseException.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 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/779ddfa5/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
new file mode 100644
index 0000000..64d68c2
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/product/GridProductVersion.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 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/779ddfa5/modules/core/src/main/java/org/apache/ignite/product/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/product/package.html b/modules/core/src/main/java/org/apache/ignite/product/package.html
new file mode 100644
index 0000000..691561c
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/product/package.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--
+ @html.file.header
+ _________ _____ __________________ _____
+ __ ____/___________(_)______ /__ ____/______ ____(_)_______
+ _ / __ __ ___/__ / _ __ / _ / __ _ __ `/__ / __ __ \
+ / /_/ / _ / _ / / /_/ / / /_/ / / /_/ / _ / _ / / /
+ \____/ /_/ /_/ \_,__/ \____/ \__,_/ /_/ /_/ /_/
+-->
+<html>
+<body>
+ <!-- Package description. -->
+ Contains <b>Product</b> and <b>License</b> related functionality.
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/779ddfa5/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 7846a4e..544255e 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
@@ -18,6 +18,7 @@ import org.apache.ignite.marshaller.*;
import org.apache.ignite.marshaller.optimized.*;
import org.apache.ignite.mbean.*;
import org.apache.ignite.plugin.*;
+import org.apache.ignite.product.*;
import org.gridgain.grid.*;
import org.gridgain.grid.cache.*;
import org.gridgain.grid.dr.*;
@@ -60,7 +61,6 @@ import org.gridgain.grid.kernal.processors.streamer.*;
import org.gridgain.grid.kernal.processors.task.*;
import org.gridgain.grid.kernal.processors.timeout.*;
import org.gridgain.grid.portables.*;
-import org.gridgain.grid.product.*;
import org.gridgain.grid.security.*;
import org.gridgain.grid.spi.*;
import org.gridgain.grid.spi.authentication.*;
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/779ddfa5/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 a3bc773..4ba5fe7 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
@@ -12,6 +12,7 @@ package org.gridgain.grid.kernal;
import org.apache.ignite.*;
import org.apache.ignite.configuration.*;
import org.apache.ignite.plugin.*;
+import org.apache.ignite.product.*;
import org.gridgain.grid.*;
import org.gridgain.grid.kernal.managers.security.*;
import org.gridgain.grid.kernal.managers.checkpoint.*;
@@ -51,7 +52,6 @@ import org.gridgain.grid.kernal.processors.session.*;
import org.gridgain.grid.kernal.processors.streamer.*;
import org.gridgain.grid.kernal.processors.task.*;
import org.gridgain.grid.kernal.processors.timeout.*;
-import org.gridgain.grid.product.*;
import org.gridgain.grid.util.direct.*;
import org.gridgain.grid.util.tostring.*;
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/779ddfa5/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 3cb3336..1111866 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
@@ -12,6 +12,7 @@ package org.gridgain.grid.kernal;
import org.apache.ignite.*;
import org.apache.ignite.configuration.*;
import org.apache.ignite.plugin.*;
+import org.apache.ignite.product.*;
import org.gridgain.grid.*;
import org.gridgain.grid.kernal.managers.checkpoint.*;
import org.gridgain.grid.kernal.managers.collision.*;
@@ -54,7 +55,6 @@ import org.gridgain.grid.kernal.processors.spring.*;
import org.gridgain.grid.kernal.processors.streamer.*;
import org.gridgain.grid.kernal.processors.task.*;
import org.gridgain.grid.kernal.processors.timeout.*;
-import org.gridgain.grid.product.*;
import org.gridgain.grid.util.direct.*;
import org.gridgain.grid.util.lang.*;
import org.gridgain.grid.util.tostring.*;
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/779ddfa5/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 ff7c2ac..0504e5a 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
@@ -9,7 +9,7 @@
package org.gridgain.grid.kernal;
-import org.gridgain.grid.product.*;
+import org.apache.ignite.product.*;
import org.gridgain.grid.util.typedef.internal.*;
import org.jetbrains.annotations.*;
@@ -18,7 +18,7 @@ import java.text.*;
import java.util.*;
/**
- * {@link GridProduct} implementation.
+ * {@link org.apache.ignite.product.GridProduct} implementation.
*/
public class GridProductImpl implements GridProduct, Externalizable {
/** */
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/779ddfa5/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 51f2e59..ebde564 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
@@ -10,9 +10,9 @@
package org.gridgain.grid.kernal;
import org.apache.ignite.*;
+import org.apache.ignite.product.*;
import org.gridgain.grid.*;
import org.gridgain.grid.kernal.processors.license.*;
-import org.gridgain.grid.product.*;
import org.gridgain.grid.util.typedef.*;
import org.gridgain.grid.util.typedef.internal.*;
import org.gridgain.grid.util.worker.*;
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/779ddfa5/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 86be35b..d964e90 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
@@ -13,6 +13,7 @@ import org.apache.ignite.cluster.*;
import org.apache.ignite.events.*;
import org.apache.ignite.lang.*;
import org.apache.ignite.plugin.extensions.discovery.*;
+import org.apache.ignite.product.*;
import org.gridgain.grid.*;
import org.gridgain.grid.kernal.*;
import org.gridgain.grid.kernal.managers.*;
@@ -22,7 +23,6 @@ import org.gridgain.grid.kernal.managers.security.*;
import org.gridgain.grid.kernal.processors.cache.*;
import org.gridgain.grid.kernal.processors.jobmetrics.*;
import org.gridgain.grid.kernal.processors.service.*;
-import org.gridgain.grid.product.*;
import org.gridgain.grid.security.*;
import org.gridgain.grid.segmentation.*;
import org.gridgain.grid.spi.*;
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/779ddfa5/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 4742476..1c5ab8e 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
@@ -14,6 +14,7 @@ import org.apache.ignite.cluster.*;
import org.apache.ignite.dataload.*;
import org.apache.ignite.events.*;
import org.apache.ignite.lang.*;
+import org.apache.ignite.product.*;
import org.gridgain.grid.*;
import org.gridgain.grid.cache.*;
import org.gridgain.grid.kernal.*;
@@ -22,7 +23,6 @@ import org.gridgain.grid.kernal.managers.deployment.*;
import org.gridgain.grid.kernal.managers.eventstorage.*;
import org.gridgain.grid.kernal.processors.cache.*;
import org.gridgain.grid.kernal.processors.portable.*;
-import org.gridgain.grid.product.*;
import org.gridgain.grid.util.*;
import org.gridgain.grid.util.future.*;
import org.gridgain.grid.util.lang.*;
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/779ddfa5/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 a6914d7..55ebefd 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
@@ -14,6 +14,7 @@ import org.apache.ignite.compute.*;
import org.apache.ignite.events.*;
import org.apache.ignite.lang.*;
import org.apache.ignite.marshaller.*;
+import org.apache.ignite.product.*;
import org.gridgain.grid.*;
import org.gridgain.grid.kernal.*;
import org.gridgain.grid.kernal.managers.collision.*;
@@ -22,7 +23,6 @@ import org.gridgain.grid.kernal.managers.deployment.*;
import org.gridgain.grid.kernal.managers.eventstorage.*;
import org.gridgain.grid.kernal.processors.*;
import org.gridgain.grid.kernal.processors.jobmetrics.*;
-import org.gridgain.grid.product.*;
import org.gridgain.grid.spi.collision.*;
import org.gridgain.grid.util.*;
import org.gridgain.grid.util.typedef.*;
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/779ddfa5/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 cf9fba9..da76424 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
@@ -9,8 +9,8 @@
package org.gridgain.grid.kernal.processors.license;
+import org.apache.ignite.product.*;
import org.gridgain.grid.kernal.processors.*;
-import org.gridgain.grid.product.*;
import org.jetbrains.annotations.*;
/**
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/779ddfa5/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 8632c77..c06aca0 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
@@ -9,10 +9,10 @@
package org.gridgain.grid.kernal.processors.license.os;
+import org.apache.ignite.product.*;
import org.gridgain.grid.kernal.*;
import org.gridgain.grid.kernal.processors.*;
import org.gridgain.grid.kernal.processors.license.*;
-import org.gridgain.grid.product.*;
import org.jetbrains.annotations.*;
/**
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/779ddfa5/modules/core/src/main/java/org/gridgain/grid/product/GridProduct.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/product/GridProduct.java b/modules/core/src/main/java/org/gridgain/grid/product/GridProduct.java
deleted file mode 100644
index 47d7f5e..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/product/GridProduct.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/* @java.file.header */
-
-/* _________ _____ __________________ _____
- * __ ____/___________(_)______ /__ ____/______ ____(_)_______
- * _ / __ __ ___/__ / _ __ / _ / __ _ __ `/__ / __ __ \
- * / /_/ / _ / _ / / /_/ / / /_/ / / /_/ / _ / _ / / /
- * \____/ /_/ /_/ \_,__/ \____/ \__,_/ /_/ /_/ /_/
- */
-
-package org.gridgain.grid.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/779ddfa5/modules/core/src/main/java/org/gridgain/grid/product/GridProductLicense.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/product/GridProductLicense.java b/modules/core/src/main/java/org/gridgain/grid/product/GridProductLicense.java
deleted file mode 100644
index e9aa72d..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/product/GridProductLicense.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/* @java.file.header */
-
-/* _________ _____ __________________ _____
- * __ ____/___________(_)______ /__ ____/______ ____(_)_______
- * _ / __ __ ___/__ / _ __ / _ / __ _ __ `/__ / __ __ \
- * / /_/ / _ / _ / / /_/ / / /_/ / / /_/ / _ / _ / / /
- * \____/ /_/ /_/ \_,__/ \____/ \__,_/ /_/ /_/ /_/
- */
-
-package org.gridgain.grid.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/779ddfa5/modules/core/src/main/java/org/gridgain/grid/product/GridProductLicenseException.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/product/GridProductLicenseException.java b/modules/core/src/main/java/org/gridgain/grid/product/GridProductLicenseException.java
deleted file mode 100644
index 281ec6b..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/product/GridProductLicenseException.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/* @java.file.header */
-
-/* _________ _____ __________________ _____
- * __ ____/___________(_)______ /__ ____/______ ____(_)_______
- * _ / __ __ ___/__ / _ __ / _ / __ _ __ `/__ / __ __ \
- * / /_/ / _ / _ / / /_/ / / /_/ / / /_/ / _ / _ / / /
- * \____/ /_/ /_/ \_,__/ \____/ \__,_/ /_/ /_/ /_/
- */
-
-package org.gridgain.grid.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/779ddfa5/modules/core/src/main/java/org/gridgain/grid/product/GridProductVersion.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/product/GridProductVersion.java b/modules/core/src/main/java/org/gridgain/grid/product/GridProductVersion.java
deleted file mode 100644
index 1f328d4..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/product/GridProductVersion.java
+++ /dev/null
@@ -1,283 +0,0 @@
-/* @java.file.header */
-
-/* _________ _____ __________________ _____
- * __ ____/___________(_)______ /__ ____/______ ____(_)_______
- * _ / __ __ ___/__ / _ __ / _ / __ _ __ `/__ / __ __ \
- * / /_/ / _ / _ / / /_/ / / /_/ / / /_/ / _ / _ / / /
- * \____/ /_/ /_/ \_,__/ \____/ \__,_/ /_/ /_/ /_/
- */
-
-package org.gridgain.grid.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/779ddfa5/modules/core/src/main/java/org/gridgain/grid/product/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/product/package.html b/modules/core/src/main/java/org/gridgain/grid/product/package.html
deleted file mode 100644
index 691561c..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/product/package.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--
- @html.file.header
- _________ _____ __________________ _____
- __ ____/___________(_)______ /__ ____/______ ____(_)_______
- _ / __ __ ___/__ / _ __ / _ / __ _ __ `/__ / __ __ \
- / /_/ / _ / _ / / /_/ / / /_/ / / /_/ / _ / _ / / /
- \____/ /_/ /_/ \_,__/ \____/ \__,_/ /_/ /_/ /_/
--->
-<html>
-<body>
- <!-- Package description. -->
- Contains <b>Product</b> and <b>License</b> related functionality.
-</body>
-</html>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/779ddfa5/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 12ea6c0..20e7569 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
@@ -14,10 +14,10 @@ import org.apache.ignite.cluster.*;
import org.apache.ignite.events.*;
import org.apache.ignite.lang.*;
import org.apache.ignite.marshaller.*;
+import org.apache.ignite.product.*;
import org.apache.ignite.resources.*;
import org.gridgain.grid.*;
import org.gridgain.grid.kernal.managers.eventstorage.*;
-import org.gridgain.grid.product.*;
import org.gridgain.grid.spi.*;
import org.gridgain.grid.spi.communication.*;
import org.gridgain.grid.thread.*;
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/779ddfa5/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 a2e9278..3fc5e2f 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
@@ -10,7 +10,7 @@
package org.gridgain.grid.spi.discovery;
import org.apache.ignite.cluster.*;
-import org.gridgain.grid.product.*;
+import org.apache.ignite.product.*;
import org.gridgain.grid.spi.*;
import org.gridgain.grid.spi.discovery.tcp.*;
import org.jetbrains.annotations.*;
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/779ddfa5/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 89dfa0e..70d5d89 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
@@ -13,9 +13,9 @@ import org.apache.ignite.*;
import org.apache.ignite.cluster.*;
import org.apache.ignite.marshaller.*;
import org.apache.ignite.marshaller.jdk.*;
+import org.apache.ignite.product.*;
import org.apache.ignite.resources.*;
import org.gridgain.grid.*;
-import org.gridgain.grid.product.*;
import org.gridgain.grid.spi.*;
import org.gridgain.grid.spi.discovery.*;
import org.gridgain.grid.spi.discovery.tcp.internal.*;
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/779ddfa5/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 4969b97..14973cf 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
@@ -11,8 +11,8 @@ package org.gridgain.grid.spi.discovery.tcp.internal;
import org.apache.ignite.cluster.*;
import org.apache.ignite.lang.*;
+import org.apache.ignite.product.*;
import org.gridgain.grid.kernal.*;
-import org.gridgain.grid.product.*;
import org.gridgain.grid.spi.discovery.*;
import org.gridgain.grid.spi.discovery.tcp.*;
import org.gridgain.grid.util.lang.*;
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/779ddfa5/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 47d115d..37642c4 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
@@ -18,13 +18,13 @@ import org.apache.ignite.lang.*;
import org.apache.ignite.lifecycle.*;
import org.apache.ignite.mbean.*;
import org.apache.ignite.portables.*;
+import org.apache.ignite.product.*;
import org.gridgain.grid.*;
import org.gridgain.grid.cache.*;
import org.gridgain.grid.kernal.*;
import org.gridgain.grid.kernal.managers.deployment.*;
import org.gridgain.grid.kernal.processors.cache.*;
import org.gridgain.grid.kernal.processors.streamer.*;
-import org.gridgain.grid.product.*;
import org.gridgain.grid.spi.*;
import org.gridgain.grid.spi.discovery.*;
import org.gridgain.grid.util.io.*;
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/779ddfa5/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 5e299db..a2381e6 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
@@ -14,9 +14,9 @@ import org.apache.ignite.cluster.*;
import org.apache.ignite.configuration.*;
import org.apache.ignite.events.*;
import org.apache.ignite.lang.*;
+import org.apache.ignite.product.*;
import org.gridgain.grid.cache.*;
import org.gridgain.grid.kernal.managers.discovery.*;
-import org.gridgain.grid.product.*;
import org.gridgain.grid.spi.discovery.tcp.*;
import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
@@ -30,7 +30,7 @@ import java.util.concurrent.*;
import java.util.concurrent.atomic.*;
import static java.util.concurrent.TimeUnit.*;
-import static org.gridgain.grid.product.GridProductVersion.*;
+import static org.apache.ignite.product.GridProductVersion.*;
import static org.apache.ignite.events.IgniteEventType.*;
/**
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/779ddfa5/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 d43ed4e..dbbf2d8 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
@@ -10,8 +10,8 @@
package org.gridgain.grid.kernal;
import org.apache.ignite.configuration.*;
+import org.apache.ignite.product.*;
import org.gridgain.grid.*;
-import org.gridgain.grid.product.*;
import org.gridgain.grid.spi.discovery.tcp.*;
import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/779ddfa5/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 606f85c..de0de36 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
@@ -11,7 +11,7 @@ package org.gridgain.grid.kernal;
import org.apache.ignite.cluster.*;
import org.apache.ignite.configuration.*;
-import org.gridgain.grid.product.*;
+import org.apache.ignite.product.*;
import org.gridgain.grid.spi.discovery.tcp.*;
import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/779ddfa5/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 06a29bb..60ce11f 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
@@ -10,7 +10,7 @@
package org.gridgain.grid.kernal;
import org.apache.ignite.*;
-import org.gridgain.grid.product.*;
+import org.apache.ignite.product.*;
import org.gridgain.grid.util.typedef.internal.*;
import org.gridgain.testframework.junits.common.*;
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/779ddfa5/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 6020c79..6189598 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
@@ -12,10 +12,10 @@ package org.gridgain.grid.kernal.processors.cache.distributed.near;
import org.apache.ignite.*;
import org.apache.ignite.cluster.*;
import org.apache.ignite.configuration.*;
+import org.apache.ignite.product.*;
import org.gridgain.grid.cache.*;
import org.gridgain.grid.cache.affinity.*;
import org.gridgain.grid.kernal.*;
-import org.gridgain.grid.product.*;
import org.gridgain.grid.spi.discovery.tcp.*;
import org.gridgain.grid.spi.discovery.tcp.internal.*;
import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/779ddfa5/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 e6fb1b4..d638c91 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
@@ -17,6 +17,7 @@ import org.apache.ignite.events.*;
import org.apache.ignite.lang.*;
import org.apache.ignite.marshaller.*;
import org.apache.ignite.marshaller.optimized.*;
+import org.apache.ignite.product.*;
import org.gridgain.grid.*;
import org.gridgain.grid.cache.*;
import org.gridgain.grid.cache.affinity.*;
@@ -29,7 +30,6 @@ import org.gridgain.grid.kernal.processors.cache.datastructures.*;
import org.gridgain.grid.kernal.processors.service.*;
import org.gridgain.grid.kernal.processors.streamer.*;
import org.gridgain.grid.p2p.*;
-import org.gridgain.grid.product.*;
import org.gridgain.grid.streamer.*;
import org.gridgain.grid.streamer.window.*;
import org.gridgain.grid.util.*;
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/779ddfa5/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 e31c0ca..455067e 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
@@ -11,8 +11,8 @@ package org.gridgain.grid.p2p;
import org.apache.ignite.cluster.*;
import org.apache.ignite.compute.*;
+import org.apache.ignite.product.*;
import org.gridgain.grid.*;
-import org.gridgain.grid.product.*;
import org.gridgain.grid.util.typedef.*;
import org.gridgain.grid.util.lang.*;
import org.gridgain.testframework.*;
@@ -22,7 +22,7 @@ import org.jetbrains.annotations.*;
import java.util.*;
import java.util.concurrent.atomic.*;
-import static org.gridgain.grid.product.GridProductVersion.*;
+import static org.apache.ignite.product.GridProductVersion.*;
/**
* P2P test.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/779ddfa5/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 26305ab..0fd1ff6 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
@@ -9,6 +9,7 @@
package org.gridgain.grid.product;
+import org.apache.ignite.product.*;
import org.gridgain.testframework.junits.common.*;
import static org.junit.Assert.*;
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/779ddfa5/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 dde721c..7e34b08 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.gridgain.grid.product.GridProductVersion.*;
+import static org.apache.ignite.product.GridProductVersion.*;
/**
* Base discovery self-test class.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/779ddfa5/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 20de5dc..55a0106 100644
--- a/modules/core/src/test/java/org/gridgain/testframework/GridTestNode.java
+++ b/modules/core/src/test/java/org/gridgain/testframework/GridTestNode.java
@@ -10,14 +10,14 @@
package org.gridgain.testframework;
import org.apache.ignite.cluster.*;
+import org.apache.ignite.product.*;
import org.gridgain.grid.kernal.*;
-import org.gridgain.grid.product.*;
import org.gridgain.grid.util.lang.*;
import java.util.*;
import java.util.concurrent.atomic.*;
-import static org.gridgain.grid.product.GridProductVersion.*;
+import static org.apache.ignite.product.GridProductVersion.*;
/**
* Test node.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/779ddfa5/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 51540cf..4255f3e 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
@@ -10,9 +10,9 @@
package org.gridgain.testframework.junits.spi;
import org.apache.ignite.cluster.*;
+import org.apache.ignite.product.*;
import org.gridgain.grid.kernal.*;
import org.gridgain.grid.kernal.managers.security.*;
-import org.gridgain.grid.product.*;
import org.gridgain.grid.security.*;
import org.gridgain.grid.spi.*;
import org.gridgain.grid.spi.communication.*;
@@ -33,7 +33,7 @@ import java.lang.reflect.*;
import java.util.*;
import java.util.concurrent.*;
-import static org.gridgain.grid.product.GridProductVersion.*;
+import static org.apache.ignite.product.GridProductVersion.*;
/**
* Base SPI test class.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/779ddfa5/modules/spring/src/main/java/org/gridgain/grid/GridSpringBean.java
----------------------------------------------------------------------
diff --git a/modules/spring/src/main/java/org/gridgain/grid/GridSpringBean.java b/modules/spring/src/main/java/org/gridgain/grid/GridSpringBean.java
index bf5e245..c164c03 100644
--- a/modules/spring/src/main/java/org/gridgain/grid/GridSpringBean.java
+++ b/modules/spring/src/main/java/org/gridgain/grid/GridSpringBean.java
@@ -13,11 +13,11 @@ import org.apache.ignite.*;
import org.apache.ignite.cluster.*;
import org.apache.ignite.configuration.*;
import org.apache.ignite.plugin.*;
+import org.apache.ignite.product.*;
import org.gridgain.grid.cache.*;
import org.gridgain.grid.dr.*;
import org.gridgain.grid.hadoop.*;
import org.gridgain.grid.portables.*;
-import org.gridgain.grid.product.*;
import org.gridgain.grid.security.*;
import org.gridgain.grid.util.lang.*;
import org.gridgain.grid.util.typedef.*;