From aedf6efe5804036574e4885cfb76afc0c8f10efe Mon Sep 17 00:00:00 2001 From: Sean Busbey <sean.busbey@gmail.com> Date: Thu, 26 Jul 2018 21:37:52 -0500 Subject: [PATCH] [ignite, ignite-sql] clean up for apache ignite clients Fixes for Apache Ignite client (addendum) * Ignite bindings should always return Status.NOT_IMPLEMENTED for scans. * rename base test class so that JUnit won't try to run the scan test without an implementation * remove unneeded additional repository definition Closes #1183 --- ignite/pom.xml | 7 ----- .../ycsb/db/ignite/IgniteAbstractClient.java | 11 ++++++++ .../yahoo/ycsb/db/ignite/IgniteClient.java | 25 ----------------- .../yahoo/ycsb/db/ignite/IgniteSqlClient.java | 17 ----------- .../ycsb/db/ignite/IgniteClientTest.java | 3 +- ...monTest.java => IgniteClientTestBase.java} | 28 ++++++++++++++++++- .../ycsb/db/ignite/IgniteSqlClientTest.java | 3 +- 7 files changed, 40 insertions(+), 54 deletions(-) rename ignite/src/test/java/com/yahoo/ycsb/db/ignite/{IgniteClientCommonTest.java => IgniteClientTestBase.java} (54%) diff --git a/ignite/pom.xml b/ignite/pom.xml index 76c39130..f8b0f23d 100644 --- a/ignite/pom.xml +++ b/ignite/pom.xml @@ -28,13 +28,6 @@ LICENSE file. <relativePath>../binding-parent</relativePath> </parent> - <repositories> - <repository> - <id>GridGain External Repository</id> - <url>http://www.gridgainsystems.com/nexus/content/repositories/external</url> - </repository> - </repositories> - <artifactId>ignite-binding</artifactId> <name>Apache Ignite</name> <packaging>jar</packaging> diff --git a/ignite/src/main/java/com/yahoo/ycsb/db/ignite/IgniteAbstractClient.java b/ignite/src/main/java/com/yahoo/ycsb/db/ignite/IgniteAbstractClient.java index 7a48b2bb..c3be883b 100644 --- a/ignite/src/main/java/com/yahoo/ycsb/db/ignite/IgniteAbstractClient.java +++ b/ignite/src/main/java/com/yahoo/ycsb/db/ignite/IgniteAbstractClient.java @@ -17,10 +17,15 @@ package com.yahoo.ycsb.db.ignite; +import com.yahoo.ycsb.ByteIterator; import com.yahoo.ycsb.DB; import com.yahoo.ycsb.DBException; +import com.yahoo.ycsb.Status; import java.util.Collection; +import java.util.HashMap; import java.util.LinkedHashSet; +import java.util.Set; +import java.util.Vector; import java.util.concurrent.atomic.AtomicInteger; import org.apache.ignite.IgniteCheckedException; import org.apache.ignite.logger.log4j2.Log4J2Logger; @@ -161,4 +166,10 @@ public abstract class IgniteAbstractClient extends DB { } } } + + @Override + public Status scan(String table, String startkey, int recordcount, + Set<String> fields, Vector<HashMap<String, ByteIterator>> result) { + return Status.NOT_IMPLEMENTED; + } } diff --git a/ignite/src/main/java/com/yahoo/ycsb/db/ignite/IgniteClient.java b/ignite/src/main/java/com/yahoo/ycsb/db/ignite/IgniteClient.java index a7bc37db..ab8585d8 100644 --- a/ignite/src/main/java/com/yahoo/ycsb/db/ignite/IgniteClient.java +++ b/ignite/src/main/java/com/yahoo/ycsb/db/ignite/IgniteClient.java @@ -105,31 +105,6 @@ public class IgniteClient extends IgniteAbstractClient { } } - /** - * Perform a range scan for a set of records in the database. Each field/value - * pair from the result will be stored in a HashMap. - * - * @param table The name of the table - * @param startkey The record key of the first record to read. - * @param recordcount The number of records to read - * @param fields The list of fields to read, or null for all of them - * @param result A Vector of HashMaps, where each HashMap is a set field/value - * pairs for one record - * @return Zero on success, a non-zero error code on error - */ - @Override - public Status scan(String table, String startkey, int recordcount, - Set<String> fields, Vector<HashMap<String, ByteIterator>> result) { - try { - return Status.OK; - - } catch (Exception e) { - log.error(String.format("Error scanning with startkey: %s", startkey), e); - - return Status.NOT_IMPLEMENTED; - } - } - /** * Update a record in the database. Any field/value pairs in the specified * values HashMap will be written into the record with the specified record diff --git a/ignite/src/main/java/com/yahoo/ycsb/db/ignite/IgniteSqlClient.java b/ignite/src/main/java/com/yahoo/ycsb/db/ignite/IgniteSqlClient.java index adeb717b..dedd0f93 100644 --- a/ignite/src/main/java/com/yahoo/ycsb/db/ignite/IgniteSqlClient.java +++ b/ignite/src/main/java/com/yahoo/ycsb/db/ignite/IgniteSqlClient.java @@ -96,23 +96,6 @@ public class IgniteSqlClient extends IgniteAbstractClient { } } - /** - Unsupported operation. - */ - @Override - public Status scan(String table, String startkey, int recordcount, - Set<String> fields, Vector<HashMap<String, ByteIterator>> result) { - try { - return Status.OK; - - } catch (Exception e) { - log.error(String.format("Error scanning with startkey: %s", startkey), e); - - return Status.NOT_IMPLEMENTED; - } - - } - /** * Update a record in the database. Any field/value pairs in the specified * values HashMap will be written into the record with the specified record diff --git a/ignite/src/test/java/com/yahoo/ycsb/db/ignite/IgniteClientTest.java b/ignite/src/test/java/com/yahoo/ycsb/db/ignite/IgniteClientTest.java index a8900d18..77412ed9 100644 --- a/ignite/src/test/java/com/yahoo/ycsb/db/ignite/IgniteClientTest.java +++ b/ignite/src/test/java/com/yahoo/ycsb/db/ignite/IgniteClientTest.java @@ -42,8 +42,7 @@ import static org.hamcrest.Matchers.is; /** * Integration tests for the Ignite client */ -public class IgniteClientTest extends IgniteClientCommonTest { - private static final String DEFAULT_CACHE_NAME = "usertable"; +public class IgniteClientTest extends IgniteClientTestBase { private final static String HOST = "127.0.0.1"; private final static String PORTS = "47500..47509"; private final static String SERVER_NODE_NAME = "YCSB Server Node"; diff --git a/ignite/src/test/java/com/yahoo/ycsb/db/ignite/IgniteClientCommonTest.java b/ignite/src/test/java/com/yahoo/ycsb/db/ignite/IgniteClientTestBase.java similarity index 54% rename from ignite/src/test/java/com/yahoo/ycsb/db/ignite/IgniteClientCommonTest.java rename to ignite/src/test/java/com/yahoo/ycsb/db/ignite/IgniteClientTestBase.java index 5cddc352..de6de52a 100644 --- a/ignite/src/test/java/com/yahoo/ycsb/db/ignite/IgniteClientCommonTest.java +++ b/ignite/src/test/java/com/yahoo/ycsb/db/ignite/IgniteClientTestBase.java @@ -17,15 +17,26 @@ package com.yahoo.ycsb.db.ignite; +import com.yahoo.ycsb.ByteIterator; import com.yahoo.ycsb.DB; +import com.yahoo.ycsb.Status; +import com.yahoo.ycsb.StringByteIterator; import org.apache.ignite.Ignite; import org.junit.After; import org.junit.AfterClass; +import org.junit.Test; + +import java.util.*; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.is; /** * Common test class. */ -public class IgniteClientCommonTest { +public class IgniteClientTestBase { + protected static final String DEFAULT_CACHE_NAME = "usertable"; + /** */ protected static Ignite cluster; @@ -54,4 +65,19 @@ public class IgniteClientCommonTest { e.printStackTrace(); } } + + @Test + public void scanNotImplemented() { + cluster.cache(DEFAULT_CACHE_NAME).clear(); + final String key = "key"; + final Map<String, String> input = new HashMap<>(); + input.put("field0", "value1"); + input.put("field1", "value2"); + final Status status = client.insert(DEFAULT_CACHE_NAME, key, StringByteIterator.getByteIteratorMap(input)); + assertThat(status, is(Status.OK)); + assertThat(cluster.cache(DEFAULT_CACHE_NAME).size(), is(1)); + final Vector<HashMap<String, ByteIterator>> results = new Vector<>(); + final Status scan = client.scan(DEFAULT_CACHE_NAME, key, 1, null, results); + assertThat(scan, is(Status.NOT_IMPLEMENTED)); + } } diff --git a/ignite/src/test/java/com/yahoo/ycsb/db/ignite/IgniteSqlClientTest.java b/ignite/src/test/java/com/yahoo/ycsb/db/ignite/IgniteSqlClientTest.java index d3dc0ba9..5c652485 100644 --- a/ignite/src/test/java/com/yahoo/ycsb/db/ignite/IgniteSqlClientTest.java +++ b/ignite/src/test/java/com/yahoo/ycsb/db/ignite/IgniteSqlClientTest.java @@ -47,8 +47,7 @@ import static org.hamcrest.Matchers.is; /** * Integration tests for the Ignite client */ -public class IgniteSqlClientTest extends IgniteClientCommonTest { - private static final String DEFAULT_CACHE_NAME = "usertable"; +public class IgniteSqlClientTest extends IgniteClientTestBase { private static final String TABLE_NAME = "usertable"; private final static String HOST = "127.0.0.1"; private final static String PORTS = "47500..47509"; -- GitLab