/** {@inheritDoc} */ @Override public void writeHandshake(BinaryWriterExImpl writer) { // Handshake OK. writer.writeBoolean(true); // Write server version. writer.writeByte(IgniteVersionUtils.VER.major()); writer.writeByte(IgniteVersionUtils.VER.minor()); writer.writeByte(IgniteVersionUtils.VER.maintenance()); writer.writeString(IgniteVersionUtils.VER.stage()); writer.writeLong(IgniteVersionUtils.VER.revisionTimestamp()); writer.writeByteArray(IgniteVersionUtils.VER.revisionHash()); }
/** {@inheritDoc} */ @Override public IgniteProductVersion version() { return fromString("99.99.99"); }
/** * @return {@code true} if target node has DML support, {@code false} otherwise. */ boolean isDmlSupported() { return ignite.version().greaterThanEqual(1, 8, 0); }
/** * @throws Exception If failed. */ @Test public void testVersions() throws Exception { try (Connection conn = DriverManager.getConnection(BASE_URL)) { assertEquals("Apache Ignite", conn.getMetaData().getDatabaseProductName()); assertEquals(JdbcDatabaseMetadata.DRIVER_NAME, conn.getMetaData().getDriverName()); assertEquals(IgniteVersionUtils.VER.toString(), conn.getMetaData().getDatabaseProductVersion()); assertEquals(IgniteVersionUtils.VER.toString(), conn.getMetaData().getDriverVersion()); assertEquals(IgniteVersionUtils.VER.major(), conn.getMetaData().getDatabaseMajorVersion()); assertEquals(IgniteVersionUtils.VER.major(), conn.getMetaData().getDriverMajorVersion()); assertEquals(IgniteVersionUtils.VER.minor(), conn.getMetaData().getDatabaseMinorVersion()); assertEquals(IgniteVersionUtils.VER.minor(), conn.getMetaData().getDriverMinorVersion()); assertEquals(4, conn.getMetaData().getJDBCMajorVersion()); assertEquals(1, conn.getMetaData().getJDBCMinorVersion()); } }
/** {@inheritDoc} */ @Override public int getDatabaseMajorVersion() { return IgniteVersionUtils.VER.major(); }
/** {@inheritDoc} */ @Override public int getDatabaseMinorVersion() { return IgniteVersionUtils.VER.minor(); }
/** {@inheritDoc} */ @Override public String getDriverVersion() { return IgniteVersionUtils.VER.toString(); }
byte nodeMaintenance = IgniteProductVersion.fromString(nodeVer).maintenance(); byte lastMaintenance = IgniteProductVersion.fromString(ver).maintenance();
/** * Executes appropriate version of idle_verify check. Old version will be used if there are old nodes in the * cluster. * * @param client Client. * @param cacheArgs Cache args. */ private void cacheIdleVerify(GridClient client, CacheArguments cacheArgs) throws GridClientException { Collection<GridClientNode> nodes = client.compute().nodes(GridClientNode::connectable); boolean idleVerifyV2 = true; for (GridClientNode node : nodes) { String nodeVerStr = node.attribute(IgniteNodeAttributes.ATTR_BUILD_VER); IgniteProductVersion nodeVer = IgniteProductVersion.fromString(nodeVerStr); if (nodeVer.compareTo(VerifyBackupPartitionsTaskV2.V2_SINCE_VER) < 0) { idleVerifyV2 = false; break; } } if (cacheArgs.dump()) cacheIdleVerifyDump(client, cacheArgs); else if (idleVerifyV2) cacheIdleVerifyV2(client, cacheArgs); else legacyCacheIdleVerify(client, cacheArgs); }
/** {@inheritDoc} */ @Override public int getDriverMajorVersion() { return IgniteVersionUtils.VER.major(); }
/** {@inheritDoc} */ @Override public int getDriverMinorVersion() { return IgniteVersionUtils.VER.minor(); }
/** {@inheritDoc} */ @Override public String getDriverVersion() throws SQLException { return IgniteVersionUtils.VER.toString(); }
/** * Executes appropriate version of idle_verify check. Old version will be used if there are old nodes in the * cluster. * * @param client Client. * @param cacheArgs Cache args. */ private void cacheIdleVerify(GridClient client, CacheArguments cacheArgs) throws GridClientException { Collection<GridClientNode> nodes = client.compute().nodes(GridClientNode::connectable); boolean idleVerifyV2 = true; for (GridClientNode node : nodes) { String nodeVerStr = node.attribute(IgniteNodeAttributes.ATTR_BUILD_VER); IgniteProductVersion nodeVer = IgniteProductVersion.fromString(nodeVerStr); if (nodeVer.compareTo(VerifyBackupPartitionsTaskV2.V2_SINCE_VER) < 0) { idleVerifyV2 = false; break; } } if (cacheArgs.dump()) cacheIdleVerifyDump(client, cacheArgs); else if (idleVerifyV2) cacheIdleVerifyV2(client, cacheArgs); else legacyCacheIdleVerify(client, cacheArgs); }
IgniteProductVersion ver = IgniteProductVersion.fromString("1.2.3"); assertEquals(1, ver.major()); assertEquals(2, ver.minor()); assertEquals(3, ver.maintenance()); assertEquals("", ver.stage()); assertEquals(0, ver.revisionTimestamp()); assertArrayEquals(new byte[20], ver.revisionHash()); ver = IgniteProductVersion.fromString("1.2.3-0-DEV"); assertEquals(1, ver.major()); assertEquals(2, ver.minor()); assertEquals(3, ver.maintenance()); assertEquals(0, ver.revisionTimestamp()); assertArrayEquals(new byte[20], ver.revisionHash()); ver = IgniteProductVersion.fromString("1.2.3.b1-4-DEV"); assertEquals(1, ver.major()); assertEquals(2, ver.minor()); assertEquals(3, ver.maintenance()); assertEquals("b1", ver.stage()); assertEquals(4, ver.revisionTimestamp()); assertArrayEquals(new byte[20], ver.revisionHash()); ver = IgniteProductVersion.fromString("1.2.3.final-4-DEV"); assertEquals(1, ver.major());
/** {@inheritDoc} */ @Override public int getDriverMajorVersion() { return IgniteVersionUtils.VER.major(); }
/** {@inheritDoc} */ @Override public int getDriverMinorVersion() { return IgniteVersionUtils.VER.minor(); }
/** {@inheritDoc} */ @Override public int getDefaultTransactionIsolation() throws SQLException { return conn.igniteVersion().greaterThanEqual(2, 5, 0) ? TRANSACTION_REPEATABLE_READ : TRANSACTION_NONE; }
/** {@inheritDoc} */ @Override public String getDatabaseProductVersion() { return IgniteVersionUtils.VER.toString(); }
/** {@inheritDoc} */ @Override public IgniteProductVersion version() { return fromString("99.99.99"); }
/** {@inheritDoc} */ @Override public void writeHandshake(BinaryWriterExImpl writer) { // Handshake OK. writer.writeBoolean(true); // Write server version. writer.writeByte(IgniteVersionUtils.VER.major()); writer.writeByte(IgniteVersionUtils.VER.minor()); writer.writeByte(IgniteVersionUtils.VER.maintenance()); writer.writeString(IgniteVersionUtils.VER.stage()); writer.writeLong(IgniteVersionUtils.VER.revisionTimestamp()); writer.writeByteArray(IgniteVersionUtils.VER.revisionHash()); }