From 76cc89cddd2cbda42518de8e304e92e3f341a744 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Mu=C3=B1oz?= Date: Thu, 22 Mar 2018 00:06:56 -0500 Subject: [PATCH 1/7] Add #size() to Result API: Aerospike, Cassandra, CouchDB, DynamoDB, MongoDB, OrientDB, JCache, Solr, Mock, Mem. --- .../org/apache/gora/accumulo/query/AccumuloResult.java | 5 +++++ .../apache/gora/aerospike/query/AerospikeQueryResult.java | 5 +++++ .../apache/gora/cassandra/query/CassandraResultSet.java | 5 +++++ .../main/java/org/apache/gora/avro/query/AvroResult.java | 5 +++++ .../org/apache/gora/avro/query/DataFileAvroResult.java | 5 +++++ .../main/java/org/apache/gora/memory/store/MemStore.java | 5 +++++ gora-core/src/main/java/org/apache/gora/query/Result.java | 7 ++++++- .../java/org/apache/gora/mock/store/MockDataStore.java | 5 +++++ .../java/org/apache/gora/couchdb/query/CouchDBResult.java | 5 +++++ .../org/apache/gora/dynamodb/query/DynamoDBResult.java | 5 +++++ .../java/org/apache/gora/hbase/query/HBaseGetResult.java | 5 +++++ .../org/apache/gora/hbase/query/HBaseScannerResult.java | 5 +++++ .../org/apache/gora/infinispan/query/InfinispanResult.java | 1 + .../java/org/apache/gora/jcache/query/JCacheResult.java | 5 +++++ .../java/org/apache/gora/mongodb/query/MongoDBResult.java | 5 +++++ .../org/apache/gora/orientdb/query/OrientDBResult.java | 5 +++++ .../main/java/org/apache/gora/solr/query/SolrResult.java | 5 +++++ 17 files changed, 82 insertions(+), 1 deletion(-) diff --git a/gora-accumulo/src/main/java/org/apache/gora/accumulo/query/AccumuloResult.java b/gora-accumulo/src/main/java/org/apache/gora/accumulo/query/AccumuloResult.java index 08ebecabe..072c004aa 100644 --- a/gora-accumulo/src/main/java/org/apache/gora/accumulo/query/AccumuloResult.java +++ b/gora-accumulo/src/main/java/org/apache/gora/accumulo/query/AccumuloResult.java @@ -88,5 +88,10 @@ protected boolean nextInner() throws IOException { return true; } + + @Override + public int size() { + throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + } } diff --git a/gora-aerospike/src/main/java/org/apache/gora/aerospike/query/AerospikeQueryResult.java b/gora-aerospike/src/main/java/org/apache/gora/aerospike/query/AerospikeQueryResult.java index c843082d1..bc5288f24 100644 --- a/gora-aerospike/src/main/java/org/apache/gora/aerospike/query/AerospikeQueryResult.java +++ b/gora-aerospike/src/main/java/org/apache/gora/aerospike/query/AerospikeQueryResult.java @@ -85,4 +85,9 @@ protected boolean nextInner() throws IOException { .createPersistentInstance(resultRecords.get((int) this.offset).getRecord(), fields); return true; } + + @Override + public int size() { + return resultRecords.size(); + } } diff --git a/gora-cassandra/src/main/java/org/apache/gora/cassandra/query/CassandraResultSet.java b/gora-cassandra/src/main/java/org/apache/gora/cassandra/query/CassandraResultSet.java index f34cc661b..c1a5f8aee 100644 --- a/gora-cassandra/src/main/java/org/apache/gora/cassandra/query/CassandraResultSet.java +++ b/gora-cassandra/src/main/java/org/apache/gora/cassandra/query/CassandraResultSet.java @@ -107,4 +107,9 @@ public void addResultElement(K key, T token) { protected boolean isLimitReached() { return (limit > 0 && offset >= limit) || (offset >= size); } + + @Override + public int size() { + return size; + } } diff --git a/gora-core/src/main/java/org/apache/gora/avro/query/AvroResult.java b/gora-core/src/main/java/org/apache/gora/avro/query/AvroResult.java index 2e86fd4a6..75d470f8a 100644 --- a/gora-core/src/main/java/org/apache/gora/avro/query/AvroResult.java +++ b/gora-core/src/main/java/org/apache/gora/avro/query/AvroResult.java @@ -67,4 +67,9 @@ public boolean nextInner() throws IOException { return persistent != null; } + + @Override + public int size() { + throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + } } diff --git a/gora-core/src/main/java/org/apache/gora/avro/query/DataFileAvroResult.java b/gora-core/src/main/java/org/apache/gora/avro/query/DataFileAvroResult.java index 2530235dc..45029a2b2 100644 --- a/gora-core/src/main/java/org/apache/gora/avro/query/DataFileAvroResult.java +++ b/gora-core/src/main/java/org/apache/gora/avro/query/DataFileAvroResult.java @@ -81,5 +81,10 @@ public boolean nextInner() throws IOException { persistent = reader.next(persistent); return true; } + + @Override + public int size() { + throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + } } diff --git a/gora-core/src/main/java/org/apache/gora/memory/store/MemStore.java b/gora-core/src/main/java/org/apache/gora/memory/store/MemStore.java index 06596d546..76ac936d4 100644 --- a/gora-core/src/main/java/org/apache/gora/memory/store/MemStore.java +++ b/gora-core/src/main/java/org/apache/gora/memory/store/MemStore.java @@ -89,6 +89,11 @@ public boolean nextInner() throws IOException { return true; } + + @Override + public int size() { + return map.navigableKeySet().size(); + } } // This map behaves like DB, has to be static and concurrent collection diff --git a/gora-core/src/main/java/org/apache/gora/query/Result.java b/gora-core/src/main/java/org/apache/gora/query/Result.java index 3a7bffe7f..d1ead9a62 100644 --- a/gora-core/src/main/java/org/apache/gora/query/Result.java +++ b/gora-core/src/main/java/org/apache/gora/query/Result.java @@ -95,5 +95,10 @@ public interface Result { float getProgress() throws IOException, InterruptedException; void close() throws IOException; - + /** + * Returns the number items the result has. + * + * @return the number of items + */ + int size(); } diff --git a/gora-core/src/test/java/org/apache/gora/mock/store/MockDataStore.java b/gora-core/src/test/java/org/apache/gora/mock/store/MockDataStore.java index afb810442..8be4e66e2 100644 --- a/gora-core/src/test/java/org/apache/gora/mock/store/MockDataStore.java +++ b/gora-core/src/test/java/org/apache/gora/mock/store/MockDataStore.java @@ -166,5 +166,10 @@ protected void clear() { } //do not clear the object in the store public boolean nextInner() throws IOException { return false ; } + + @Override + public int size() { + return 0; + } } } diff --git a/gora-couchdb/src/main/java/org/apache/gora/couchdb/query/CouchDBResult.java b/gora-couchdb/src/main/java/org/apache/gora/couchdb/query/CouchDBResult.java index 7d436825b..63f74dc85 100644 --- a/gora-couchdb/src/main/java/org/apache/gora/couchdb/query/CouchDBResult.java +++ b/gora-couchdb/src/main/java/org/apache/gora/couchdb/query/CouchDBResult.java @@ -87,4 +87,9 @@ public float getProgress() throws IOException, InterruptedException { public List getResultData() { return result; } + + @Override + public int size() { + return result.size(); + } } diff --git a/gora-dynamodb/src/main/java/org/apache/gora/dynamodb/query/DynamoDBResult.java b/gora-dynamodb/src/main/java/org/apache/gora/dynamodb/query/DynamoDBResult.java index 9aab6a30f..0013f4fc2 100644 --- a/gora-dynamodb/src/main/java/org/apache/gora/dynamodb/query/DynamoDBResult.java +++ b/gora-dynamodb/src/main/java/org/apache/gora/dynamodb/query/DynamoDBResult.java @@ -84,4 +84,9 @@ protected boolean nextInner() throws Exception { public void close() throws IOException { } + @Override + public int size() { + return dynamoDBResultSet.size(); + } + } diff --git a/gora-hbase/src/main/java/org/apache/gora/hbase/query/HBaseGetResult.java b/gora-hbase/src/main/java/org/apache/gora/hbase/query/HBaseGetResult.java index ddd13aad1..48923e778 100644 --- a/gora-hbase/src/main/java/org/apache/gora/hbase/query/HBaseGetResult.java +++ b/gora-hbase/src/main/java/org/apache/gora/hbase/query/HBaseGetResult.java @@ -61,4 +61,9 @@ public boolean nextInner() throws IOException { @Override public void close() throws IOException { } + + @Override + public int size() { + throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + } } diff --git a/gora-hbase/src/main/java/org/apache/gora/hbase/query/HBaseScannerResult.java b/gora-hbase/src/main/java/org/apache/gora/hbase/query/HBaseScannerResult.java index 8e482128d..b299eaf41 100644 --- a/gora-hbase/src/main/java/org/apache/gora/hbase/query/HBaseScannerResult.java +++ b/gora-hbase/src/main/java/org/apache/gora/hbase/query/HBaseScannerResult.java @@ -66,5 +66,10 @@ public float getProgress() throws IOException { //TODO: if limit is set, we know how far we have gone return 0; } + + @Override + public int size() { + throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + } } diff --git a/gora-infinispan/src/main/java/org/apache/gora/infinispan/query/InfinispanResult.java b/gora-infinispan/src/main/java/org/apache/gora/infinispan/query/InfinispanResult.java index 3429a271e..10fb17c8c 100644 --- a/gora-infinispan/src/main/java/org/apache/gora/infinispan/query/InfinispanResult.java +++ b/gora-infinispan/src/main/java/org/apache/gora/infinispan/query/InfinispanResult.java @@ -68,6 +68,7 @@ protected boolean nextInner() throws IOException { return true; } + @Override public int size() { return list.size(); } diff --git a/gora-jcache/src/main/java/org/apache/gora/jcache/query/JCacheResult.java b/gora-jcache/src/main/java/org/apache/gora/jcache/query/JCacheResult.java index dfe80832a..ea730e936 100644 --- a/gora-jcache/src/main/java/org/apache/gora/jcache/query/JCacheResult.java +++ b/gora-jcache/src/main/java/org/apache/gora/jcache/query/JCacheResult.java @@ -82,4 +82,9 @@ protected boolean nextInner() throws IOException { return true; } + @Override + public int size() { + return cacheKeySet.size(); + } + } diff --git a/gora-mongodb/src/main/java/org/apache/gora/mongodb/query/MongoDBResult.java b/gora-mongodb/src/main/java/org/apache/gora/mongodb/query/MongoDBResult.java index f20da3155..c0f88a7f4 100644 --- a/gora-mongodb/src/main/java/org/apache/gora/mongodb/query/MongoDBResult.java +++ b/gora-mongodb/src/main/java/org/apache/gora/mongodb/query/MongoDBResult.java @@ -90,4 +90,9 @@ public void setCursor(DBCursor cursor) { this.cursor = cursor; this.size = cursor.size(); } + + @Override + public int size() { + return size; + } } diff --git a/gora-orientdb/src/main/java/org/apache/gora/orientdb/query/OrientDBResult.java b/gora-orientdb/src/main/java/org/apache/gora/orientdb/query/OrientDBResult.java index 23df5fa9b..4a8d9d9e6 100644 --- a/gora-orientdb/src/main/java/org/apache/gora/orientdb/query/OrientDBResult.java +++ b/gora-orientdb/src/main/java/org/apache/gora/orientdb/query/OrientDBResult.java @@ -100,4 +100,9 @@ protected boolean nextInner() throws IOException { } } + @Override + public int size() { + return size; + } + } diff --git a/gora-solr/src/main/java/org/apache/gora/solr/query/SolrResult.java b/gora-solr/src/main/java/org/apache/gora/solr/query/SolrResult.java index 1f2cfe1e8..d69ad922e 100644 --- a/gora-solr/src/main/java/org/apache/gora/solr/query/SolrResult.java +++ b/gora-solr/src/main/java/org/apache/gora/solr/query/SolrResult.java @@ -124,4 +124,9 @@ public float getProgress() throws IOException { return 0; } } + + @Override + public int size() { + return list.size(); + } } From 0ee48ab3d96445a280852a1fd04206efb883baa9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Mu=C3=B1oz?= Date: Thu, 22 Mar 2018 00:59:02 -0500 Subject: [PATCH 2/7] Add #size() to Result API: Accumulo, Avro, HBase Set batch size using query.limit --- .../apache/gora/accumulo/query/AccumuloResult.java | 13 +++++++++---- .../java/org/apache/gora/avro/query/AvroResult.java | 9 ++++++--- .../apache/gora/avro/query/DataFileAvroResult.java | 2 +- .../org/apache/gora/hbase/query/HBaseGetResult.java | 2 +- .../apache/gora/hbase/query/HBaseScannerResult.java | 9 ++++++--- .../org/apache/gora/hbase/store/HBaseStore.java | 2 +- 6 files changed, 24 insertions(+), 13 deletions(-) diff --git a/gora-accumulo/src/main/java/org/apache/gora/accumulo/query/AccumuloResult.java b/gora-accumulo/src/main/java/org/apache/gora/accumulo/query/AccumuloResult.java index 072c004aa..23fdc1ceb 100644 --- a/gora-accumulo/src/main/java/org/apache/gora/accumulo/query/AccumuloResult.java +++ b/gora-accumulo/src/main/java/org/apache/gora/accumulo/query/AccumuloResult.java @@ -53,7 +53,9 @@ public AccumuloStore getDataStore() { public AccumuloResult(DataStore dataStore, Query query, Scanner scanner) { super(dataStore, query); - // TODO set batch size based on limit, and construct iterator later + if (this.limit>-1){ + scanner.setBatchSize((int)this.limit); + } iterator = new RowIterator(scanner.iterator()); } @@ -62,8 +64,11 @@ public AccumuloResult(DataStore dataStore, Query query, Scanner scanne */ @Override public float getProgress() throws IOException { - // TODO Auto-generated method stub - return 0; + if (this.limit!=-1){ + return (float)this.offset/(float)this.limit; + }else{ + return 0; + } } @Override @@ -91,7 +96,7 @@ protected boolean nextInner() throws IOException { @Override public int size() { - throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + return (int)this.limit; } } diff --git a/gora-core/src/main/java/org/apache/gora/avro/query/AvroResult.java b/gora-core/src/main/java/org/apache/gora/avro/query/AvroResult.java index 75d470f8a..ab421de53 100644 --- a/gora-core/src/main/java/org/apache/gora/avro/query/AvroResult.java +++ b/gora-core/src/main/java/org/apache/gora/avro/query/AvroResult.java @@ -48,8 +48,11 @@ public void close() throws IOException { @Override public float getProgress() throws IOException { - //TODO: FIXME - return 0; + if (this.limit!=-1){ + return (float)this.offset/(float)this.limit; + }else{ + return 0; + } } @Override @@ -70,6 +73,6 @@ public boolean nextInner() throws IOException { @Override public int size() { - throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + return (int)limit; } } diff --git a/gora-core/src/main/java/org/apache/gora/avro/query/DataFileAvroResult.java b/gora-core/src/main/java/org/apache/gora/avro/query/DataFileAvroResult.java index 45029a2b2..23dd87926 100644 --- a/gora-core/src/main/java/org/apache/gora/avro/query/DataFileAvroResult.java +++ b/gora-core/src/main/java/org/apache/gora/avro/query/DataFileAvroResult.java @@ -84,7 +84,7 @@ public boolean nextInner() throws IOException { @Override public int size() { - throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + return (int) (end - start); } } diff --git a/gora-hbase/src/main/java/org/apache/gora/hbase/query/HBaseGetResult.java b/gora-hbase/src/main/java/org/apache/gora/hbase/query/HBaseGetResult.java index 48923e778..c6c75cae5 100644 --- a/gora-hbase/src/main/java/org/apache/gora/hbase/query/HBaseGetResult.java +++ b/gora-hbase/src/main/java/org/apache/gora/hbase/query/HBaseGetResult.java @@ -64,6 +64,6 @@ public void close() throws IOException { @Override public int size() { - throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + return result != null && !result.isEmpty() ? 1 : 0; } } diff --git a/gora-hbase/src/main/java/org/apache/gora/hbase/query/HBaseScannerResult.java b/gora-hbase/src/main/java/org/apache/gora/hbase/query/HBaseScannerResult.java index b299eaf41..7f1dd90dd 100644 --- a/gora-hbase/src/main/java/org/apache/gora/hbase/query/HBaseScannerResult.java +++ b/gora-hbase/src/main/java/org/apache/gora/hbase/query/HBaseScannerResult.java @@ -63,13 +63,16 @@ public void close() throws IOException { @Override public float getProgress() throws IOException { - //TODO: if limit is set, we know how far we have gone - return 0; + if (this.limit!=-1){ + return (float)this.offset/(float)this.limit; + }else{ + return 0; + } } @Override public int size() { - throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + return (int)this.limit; } } diff --git a/gora-hbase/src/main/java/org/apache/gora/hbase/store/HBaseStore.java b/gora-hbase/src/main/java/org/apache/gora/hbase/store/HBaseStore.java index 349c6d938..75e918041 100644 --- a/gora-hbase/src/main/java/org/apache/gora/hbase/store/HBaseStore.java +++ b/gora-hbase/src/main/java/org/apache/gora/hbase/store/HBaseStore.java @@ -498,7 +498,7 @@ public org.apache.gora.query.Result execute(Query query) throws Gora public ResultScanner createScanner(Query query) throws IOException { final Scan scan = new Scan(); - + scan.setBatch((int)query.getLimit()); scan.setCaching(this.getScannerCaching()) ; if (query.getStartKey() != null) { From eb4937418e700af5f8518f66e3d29bfc4d110798 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Mu=C3=B1oz?= Date: Sat, 24 Mar 2018 14:53:46 -0500 Subject: [PATCH 3/7] fix 2 space indents --- .../gora/accumulo/query/AccumuloResult.java | 22 +++++++++---------- .../aerospike/query/AerospikeQueryResult.java | 8 +++---- .../cassandra/query/CassandraResultSet.java | 8 +++---- .../apache/gora/avro/query/AvroResult.java | 18 +++++++-------- .../gora/avro/query/DataFileAvroResult.java | 8 +++---- .../apache/gora/memory/store/MemStore.java | 8 +++---- .../apache/gora/mock/store/MockDataStore.java | 8 +++---- .../gora/couchdb/query/CouchDBResult.java | 8 +++---- .../gora/dynamodb/query/DynamoDBResult.java | 8 +++---- .../gora/hbase/query/HBaseGetResult.java | 8 +++---- .../gora/hbase/query/HBaseScannerResult.java | 18 +++++++-------- .../apache/gora/hbase/store/HBaseStore.java | 2 +- .../gora/jcache/query/JCacheResult.java | 8 +++---- .../gora/mongodb/query/MongoDBResult.java | 8 +++---- .../gora/orientdb/query/OrientDBResult.java | 8 +++---- .../apache/gora/solr/query/SolrResult.java | 8 +++---- 16 files changed, 78 insertions(+), 78 deletions(-) diff --git a/gora-accumulo/src/main/java/org/apache/gora/accumulo/query/AccumuloResult.java b/gora-accumulo/src/main/java/org/apache/gora/accumulo/query/AccumuloResult.java index 23fdc1ceb..7c208f816 100644 --- a/gora-accumulo/src/main/java/org/apache/gora/accumulo/query/AccumuloResult.java +++ b/gora-accumulo/src/main/java/org/apache/gora/accumulo/query/AccumuloResult.java @@ -53,8 +53,8 @@ public AccumuloStore getDataStore() { public AccumuloResult(DataStore dataStore, Query query, Scanner scanner) { super(dataStore, query); - if (this.limit>-1){ - scanner.setBatchSize((int)this.limit); + if (this.limit > -1) { + scanner.setBatchSize((int) this.limit); } iterator = new RowIterator(scanner.iterator()); } @@ -64,11 +64,11 @@ public AccumuloResult(DataStore dataStore, Query query, Scanner scanne */ @Override public float getProgress() throws IOException { - if (this.limit!=-1){ - return (float)this.offset/(float)this.limit; - }else{ - return 0; - } + if (this.limit != -1) { + return (float) this.offset / (float) this.limit; + } else { + return 0; + } } @Override @@ -94,9 +94,9 @@ protected boolean nextInner() throws IOException { return true; } - @Override - public int size() { - return (int)this.limit; - } + @Override + public int size() { + return (int) this.limit; + } } diff --git a/gora-aerospike/src/main/java/org/apache/gora/aerospike/query/AerospikeQueryResult.java b/gora-aerospike/src/main/java/org/apache/gora/aerospike/query/AerospikeQueryResult.java index bc5288f24..beef25d07 100644 --- a/gora-aerospike/src/main/java/org/apache/gora/aerospike/query/AerospikeQueryResult.java +++ b/gora-aerospike/src/main/java/org/apache/gora/aerospike/query/AerospikeQueryResult.java @@ -86,8 +86,8 @@ protected boolean nextInner() throws IOException { return true; } - @Override - public int size() { - return resultRecords.size(); - } + @Override + public int size() { + return resultRecords.size(); + } } diff --git a/gora-cassandra/src/main/java/org/apache/gora/cassandra/query/CassandraResultSet.java b/gora-cassandra/src/main/java/org/apache/gora/cassandra/query/CassandraResultSet.java index c1a5f8aee..215d7c75f 100644 --- a/gora-cassandra/src/main/java/org/apache/gora/cassandra/query/CassandraResultSet.java +++ b/gora-cassandra/src/main/java/org/apache/gora/cassandra/query/CassandraResultSet.java @@ -108,8 +108,8 @@ protected boolean isLimitReached() { return (limit > 0 && offset >= limit) || (offset >= size); } - @Override - public int size() { - return size; - } + @Override + public int size() { + return size; + } } diff --git a/gora-core/src/main/java/org/apache/gora/avro/query/AvroResult.java b/gora-core/src/main/java/org/apache/gora/avro/query/AvroResult.java index ab421de53..1f34b9110 100644 --- a/gora-core/src/main/java/org/apache/gora/avro/query/AvroResult.java +++ b/gora-core/src/main/java/org/apache/gora/avro/query/AvroResult.java @@ -48,11 +48,11 @@ public void close() throws IOException { @Override public float getProgress() throws IOException { - if (this.limit!=-1){ - return (float)this.offset/(float)this.limit; - }else{ - return 0; - } + if (this.limit != -1) { + return (float) this.offset / (float) this.limit; + } else { + return 0; + } } @Override @@ -71,8 +71,8 @@ public boolean nextInner() throws IOException { return persistent != null; } - @Override - public int size() { - return (int)limit; - } + @Override + public int size() { + return (int) limit; + } } diff --git a/gora-core/src/main/java/org/apache/gora/avro/query/DataFileAvroResult.java b/gora-core/src/main/java/org/apache/gora/avro/query/DataFileAvroResult.java index 23dd87926..089f692d1 100644 --- a/gora-core/src/main/java/org/apache/gora/avro/query/DataFileAvroResult.java +++ b/gora-core/src/main/java/org/apache/gora/avro/query/DataFileAvroResult.java @@ -82,9 +82,9 @@ public boolean nextInner() throws IOException { return true; } - @Override - public int size() { - return (int) (end - start); - } + @Override + public int size() { + return (int) (end - start); + } } diff --git a/gora-core/src/main/java/org/apache/gora/memory/store/MemStore.java b/gora-core/src/main/java/org/apache/gora/memory/store/MemStore.java index 76ac936d4..e1fe7f2bf 100644 --- a/gora-core/src/main/java/org/apache/gora/memory/store/MemStore.java +++ b/gora-core/src/main/java/org/apache/gora/memory/store/MemStore.java @@ -90,10 +90,10 @@ public boolean nextInner() throws IOException { return true; } - @Override - public int size() { - return map.navigableKeySet().size(); - } + @Override + public int size() { + return map.navigableKeySet().size(); + } } // This map behaves like DB, has to be static and concurrent collection diff --git a/gora-core/src/test/java/org/apache/gora/mock/store/MockDataStore.java b/gora-core/src/test/java/org/apache/gora/mock/store/MockDataStore.java index 8be4e66e2..98524d323 100644 --- a/gora-core/src/test/java/org/apache/gora/mock/store/MockDataStore.java +++ b/gora-core/src/test/java/org/apache/gora/mock/store/MockDataStore.java @@ -167,9 +167,9 @@ public boolean nextInner() throws IOException { return false ; } - @Override - public int size() { - return 0; - } + @Override + public int size() { + return 0; + } } } diff --git a/gora-couchdb/src/main/java/org/apache/gora/couchdb/query/CouchDBResult.java b/gora-couchdb/src/main/java/org/apache/gora/couchdb/query/CouchDBResult.java index 63f74dc85..28a628cd5 100644 --- a/gora-couchdb/src/main/java/org/apache/gora/couchdb/query/CouchDBResult.java +++ b/gora-couchdb/src/main/java/org/apache/gora/couchdb/query/CouchDBResult.java @@ -88,8 +88,8 @@ public List getResultData() { return result; } - @Override - public int size() { - return result.size(); - } + @Override + public int size() { + return result.size(); + } } diff --git a/gora-dynamodb/src/main/java/org/apache/gora/dynamodb/query/DynamoDBResult.java b/gora-dynamodb/src/main/java/org/apache/gora/dynamodb/query/DynamoDBResult.java index 0013f4fc2..c19188002 100644 --- a/gora-dynamodb/src/main/java/org/apache/gora/dynamodb/query/DynamoDBResult.java +++ b/gora-dynamodb/src/main/java/org/apache/gora/dynamodb/query/DynamoDBResult.java @@ -84,9 +84,9 @@ protected boolean nextInner() throws Exception { public void close() throws IOException { } - @Override - public int size() { - return dynamoDBResultSet.size(); - } + @Override + public int size() { + return dynamoDBResultSet.size(); + } } diff --git a/gora-hbase/src/main/java/org/apache/gora/hbase/query/HBaseGetResult.java b/gora-hbase/src/main/java/org/apache/gora/hbase/query/HBaseGetResult.java index c6c75cae5..34764342f 100644 --- a/gora-hbase/src/main/java/org/apache/gora/hbase/query/HBaseGetResult.java +++ b/gora-hbase/src/main/java/org/apache/gora/hbase/query/HBaseGetResult.java @@ -62,8 +62,8 @@ public boolean nextInner() throws IOException { public void close() throws IOException { } - @Override - public int size() { - return result != null && !result.isEmpty() ? 1 : 0; - } + @Override + public int size() { + return result != null && !result.isEmpty() ? 1 : 0; + } } diff --git a/gora-hbase/src/main/java/org/apache/gora/hbase/query/HBaseScannerResult.java b/gora-hbase/src/main/java/org/apache/gora/hbase/query/HBaseScannerResult.java index 7f1dd90dd..ce4ea51c7 100644 --- a/gora-hbase/src/main/java/org/apache/gora/hbase/query/HBaseScannerResult.java +++ b/gora-hbase/src/main/java/org/apache/gora/hbase/query/HBaseScannerResult.java @@ -63,16 +63,16 @@ public void close() throws IOException { @Override public float getProgress() throws IOException { - if (this.limit!=-1){ - return (float)this.offset/(float)this.limit; - }else{ - return 0; - } + if (this.limit != -1) { + return (float) this.offset / (float) this.limit; + } else { + return 0; + } } - @Override - public int size() { - return (int)this.limit; - } + @Override + public int size() { + return (int) this.limit; + } } diff --git a/gora-hbase/src/main/java/org/apache/gora/hbase/store/HBaseStore.java b/gora-hbase/src/main/java/org/apache/gora/hbase/store/HBaseStore.java index 75e918041..51fdc9c5e 100644 --- a/gora-hbase/src/main/java/org/apache/gora/hbase/store/HBaseStore.java +++ b/gora-hbase/src/main/java/org/apache/gora/hbase/store/HBaseStore.java @@ -498,7 +498,7 @@ public org.apache.gora.query.Result execute(Query query) throws Gora public ResultScanner createScanner(Query query) throws IOException { final Scan scan = new Scan(); - scan.setBatch((int)query.getLimit()); + scan.setMaxResultSize(query.getLimit()); scan.setCaching(this.getScannerCaching()) ; if (query.getStartKey() != null) { diff --git a/gora-jcache/src/main/java/org/apache/gora/jcache/query/JCacheResult.java b/gora-jcache/src/main/java/org/apache/gora/jcache/query/JCacheResult.java index ea730e936..0eba8f1d3 100644 --- a/gora-jcache/src/main/java/org/apache/gora/jcache/query/JCacheResult.java +++ b/gora-jcache/src/main/java/org/apache/gora/jcache/query/JCacheResult.java @@ -82,9 +82,9 @@ protected boolean nextInner() throws IOException { return true; } - @Override - public int size() { - return cacheKeySet.size(); - } + @Override + public int size() { + return cacheKeySet.size(); + } } diff --git a/gora-mongodb/src/main/java/org/apache/gora/mongodb/query/MongoDBResult.java b/gora-mongodb/src/main/java/org/apache/gora/mongodb/query/MongoDBResult.java index c0f88a7f4..3965333cf 100644 --- a/gora-mongodb/src/main/java/org/apache/gora/mongodb/query/MongoDBResult.java +++ b/gora-mongodb/src/main/java/org/apache/gora/mongodb/query/MongoDBResult.java @@ -91,8 +91,8 @@ public void setCursor(DBCursor cursor) { this.size = cursor.size(); } - @Override - public int size() { - return size; - } + @Override + public int size() { + return size; + } } diff --git a/gora-orientdb/src/main/java/org/apache/gora/orientdb/query/OrientDBResult.java b/gora-orientdb/src/main/java/org/apache/gora/orientdb/query/OrientDBResult.java index 4a8d9d9e6..c0bf7e5ca 100644 --- a/gora-orientdb/src/main/java/org/apache/gora/orientdb/query/OrientDBResult.java +++ b/gora-orientdb/src/main/java/org/apache/gora/orientdb/query/OrientDBResult.java @@ -100,9 +100,9 @@ protected boolean nextInner() throws IOException { } } - @Override - public int size() { - return size; - } + @Override + public int size() { + return size; + } } diff --git a/gora-solr/src/main/java/org/apache/gora/solr/query/SolrResult.java b/gora-solr/src/main/java/org/apache/gora/solr/query/SolrResult.java index d69ad922e..e4f3c6961 100644 --- a/gora-solr/src/main/java/org/apache/gora/solr/query/SolrResult.java +++ b/gora-solr/src/main/java/org/apache/gora/solr/query/SolrResult.java @@ -125,8 +125,8 @@ public float getProgress() throws IOException { } } - @Override - public int size() { - return list.size(); - } + @Override + public int size() { + return list.size(); + } } From 8d99c0554f4dcd620489eefd7963bce4d0a89dab Mon Sep 17 00:00:00 2001 From: dev Date: Tue, 1 May 2018 00:49:33 -0500 Subject: [PATCH 4/7] -Remove empty lines. -Implement tests within DataStoreTestBase and DataStoreTestUtil. -Fix size() implementation for MemStore, Accumulo, Solr, JCache and OrientDB. --- .../gora/accumulo/query/AccumuloResult.java | 3 +- .../accumulo/store/AccumuloStoreTest.java | 27 ++++++ .../gora/avro/query/DataFileAvroResult.java | 1 - .../apache/gora/memory/store/MemStore.java | 4 +- .../java/org/apache/gora/query/Result.java | 2 +- .../apache/gora/store/DataStoreTestBase.java | 48 +++++++++++ .../apache/gora/store/DataStoreTestUtil.java | 85 ++++++++++++++++++- .../gora/dynamodb/query/DynamoDBResult.java | 1 - .../gora/hbase/query/HBaseScannerResult.java | 1 - .../gora/hbase/store/TestHBaseStore.java | 24 +++++- .../gora/jcache/query/JCacheResult.java | 5 +- .../gora/mongodb/store/TestMongoStore.java | 14 ++- .../gora/orientdb/query/OrientDBResult.java | 5 +- .../apache/gora/solr/query/SolrResult.java | 4 +- 14 files changed, 209 insertions(+), 15 deletions(-) diff --git a/gora-accumulo/src/main/java/org/apache/gora/accumulo/query/AccumuloResult.java b/gora-accumulo/src/main/java/org/apache/gora/accumulo/query/AccumuloResult.java index 7c208f816..217a0c389 100644 --- a/gora-accumulo/src/main/java/org/apache/gora/accumulo/query/AccumuloResult.java +++ b/gora-accumulo/src/main/java/org/apache/gora/accumulo/query/AccumuloResult.java @@ -53,7 +53,7 @@ public AccumuloStore getDataStore() { public AccumuloResult(DataStore dataStore, Query query, Scanner scanner) { super(dataStore, query); - if (this.limit > -1) { + if (this.limit > 0) { scanner.setBatchSize((int) this.limit); } iterator = new RowIterator(scanner.iterator()); @@ -98,5 +98,4 @@ protected boolean nextInner() throws IOException { public int size() { return (int) this.limit; } - } diff --git a/gora-accumulo/src/test/java/org/apache/gora/accumulo/store/AccumuloStoreTest.java b/gora-accumulo/src/test/java/org/apache/gora/accumulo/store/AccumuloStoreTest.java index f8b75268e..54f5519bc 100644 --- a/gora-accumulo/src/test/java/org/apache/gora/accumulo/store/AccumuloStoreTest.java +++ b/gora-accumulo/src/test/java/org/apache/gora/accumulo/store/AccumuloStoreTest.java @@ -24,9 +24,13 @@ import org.apache.gora.store.DataStore; import org.apache.gora.store.DataStoreFactory; import org.apache.gora.store.DataStoreTestBase; +import static org.apache.gora.store.DataStoreTestBase.log; +import org.apache.gora.store.DataStoreTestUtil; +import static org.apache.gora.store.DataStoreTestUtil.testResultSize; import org.apache.hadoop.conf.Configuration; import org.junit.Before; import org.junit.Ignore; +import org.junit.Test; /** * Tests extending {@link org.apache.gora.store.DataStoreTestBase} @@ -57,4 +61,27 @@ public GoraAccumuloTestDriver getTestDriver() { @Override public void testDeleteByQueryFields() throws IOException { } + + @Test + @Ignore("Accumulo does not support Result#size() without limit set") + @Override + public void testResultSize() throws Exception { + } + + @Test + @Ignore("Accumulo does not support Result#size() without limit set") + @Override + public void testResultSizeStartKey() throws Exception { + } + + @Ignore("Accumulo does not support Result#size() without limit set") + @Override + public void testResultSizeEndKey() throws Exception { + } + + @Test + @Ignore("Accumulo does not support Result#size() without limit set") + @Override + public void testResultSizeKeyRange() throws Exception { + } } diff --git a/gora-core/src/main/java/org/apache/gora/avro/query/DataFileAvroResult.java b/gora-core/src/main/java/org/apache/gora/avro/query/DataFileAvroResult.java index 089f692d1..0adeb904b 100644 --- a/gora-core/src/main/java/org/apache/gora/avro/query/DataFileAvroResult.java +++ b/gora-core/src/main/java/org/apache/gora/avro/query/DataFileAvroResult.java @@ -86,5 +86,4 @@ public boolean nextInner() throws IOException { public int size() { return (int) (end - start); } - } diff --git a/gora-core/src/main/java/org/apache/gora/memory/store/MemStore.java b/gora-core/src/main/java/org/apache/gora/memory/store/MemStore.java index e1fe7f2bf..6f1b3e2f7 100644 --- a/gora-core/src/main/java/org/apache/gora/memory/store/MemStore.java +++ b/gora-core/src/main/java/org/apache/gora/memory/store/MemStore.java @@ -92,7 +92,9 @@ public boolean nextInner() throws IOException { @Override public int size() { - return map.navigableKeySet().size(); + int totalSize = map.navigableKeySet().size(); + int intLimit = (int)this.limit; + return intLimit > 0 && totalSize>intLimit ? intLimit : totalSize; } } diff --git a/gora-core/src/main/java/org/apache/gora/query/Result.java b/gora-core/src/main/java/org/apache/gora/query/Result.java index d1ead9a62..6854d8999 100644 --- a/gora-core/src/main/java/org/apache/gora/query/Result.java +++ b/gora-core/src/main/java/org/apache/gora/query/Result.java @@ -96,7 +96,7 @@ public interface Result { void close() throws IOException; /** - * Returns the number items the result has. + * Returns the number of items the result has. * * @return the number of items */ diff --git a/gora-core/src/test/java/org/apache/gora/store/DataStoreTestBase.java b/gora-core/src/test/java/org/apache/gora/store/DataStoreTestBase.java index 2de6a413e..625df3980 100644 --- a/gora-core/src/test/java/org/apache/gora/store/DataStoreTestBase.java +++ b/gora-core/src/test/java/org/apache/gora/store/DataStoreTestBase.java @@ -358,4 +358,52 @@ public void testGetPartitions() throws Exception { log.info("test method: testGetPartitions"); DataStoreTestUtil.testGetPartitions(webPageStore); } + + @Test + public void testResultSize() throws Exception { + log.info("test method: testResultSize"); + DataStoreTestUtil.testResultSizeWebPages(webPageStore); + } + + @Test + public void testResultSizeStartKey() throws Exception { + log.info("test method: testResultSizeStartKey"); + DataStoreTestUtil.testResultSizeWebPagesStartKey(webPageStore); + } + + @Test + public void testResultSizeEndKey() throws Exception { + log.info("test method: testResultSizeEndKey"); + DataStoreTestUtil.testResultSizeWebPagesEndKey(webPageStore); + } + + @Test + public void testResultSizeKeyRange() throws Exception { + log.info("test method: testResultSizeKeyRange"); + DataStoreTestUtil.testResultSizeWebPagesKeyRange(webPageStore); + } + + @Test + public void testResultSizeWithLimit() throws Exception { + log.info("test method: testResultSizeWithLimit"); + DataStoreTestUtil.testResultSizeWebPagesWithLimit(webPageStore); + } + + @Test + public void testResultSizeStartKeyWithLimit() throws Exception { + log.info("test method: testResultSizeStartKeyWithLimit"); + DataStoreTestUtil.testResultSizeWebPagesStartKeyWithLimit(webPageStore); + } + + @Test + public void testResultSizeEndKeyWithLimit() throws Exception { + log.info("test method: testResultSizeEndKeyWithLimit"); + DataStoreTestUtil.testResultSizeWebPagesEndKeyWithLimit(webPageStore); + } + + @Test + public void testResultSizeKeyRangeWithLimit() throws Exception { + log.info("test method: testResultSizeKeyRangeWithLimit"); + DataStoreTestUtil.testResultSizeWebPagesKeyRangeWithLimit(webPageStore); + } } diff --git a/gora-core/src/test/java/org/apache/gora/store/DataStoreTestUtil.java b/gora-core/src/test/java/org/apache/gora/store/DataStoreTestUtil.java index b6e3d7c90..5a38df408 100644 --- a/gora-core/src/test/java/org/apache/gora/store/DataStoreTestUtil.java +++ b/gora-core/src/test/java/org/apache/gora/store/DataStoreTestUtil.java @@ -814,7 +814,7 @@ public static void testQueryWebPageKeyRange(DataStore store, if(setEndKeys) query.setEndKey(sortedUrls.get(j)); Result result = query.execute(); - + int r=0; while(result.next()) { WebPage page = result.get(); @@ -1209,4 +1209,87 @@ public static String[] getFields(List schemaFields) { return fieldNames; } + public static void testResultSize(DataStore store, + boolean setStartKeys, boolean setEndKeys, boolean setLimit) + throws Exception { + createWebPageData(store); + + //create sorted set of urls + List sortedUrls = new ArrayList<>(); + Collections.addAll(sortedUrls, URLS); + Collections.sort(sortedUrls); + + //try all ranges + for(int i=0; i query = store.newQuery(); + if(setStartKeys) + query.setStartKey(sortedUrls.get(i)); + if(setEndKeys) + query.setEndKey(sortedUrls.get(j)); + int expectedLength = (setEndKeys ? j+1: sortedUrls.size()) - + (setStartKeys ? i: 0); + if (setLimit){ + //limit half of the expected results + int limit = expectedLength/2; + if (limit > 0){ + query.setLimit(limit); + } else { + continue; + } + } + Result result = query.execute(); + int size = result.size(); + int r=0; + while(result.next()) { + r++; + } + assertEquals(r, size); + if(!setEndKeys) + break; + } + if(!setStartKeys) + break; + } + } + + public static void testResultSizeWebPages(DataStore store) + throws Exception { + testResultSize(store, false, false, false); + } + + public static void testResultSizeWebPagesStartKey(DataStore store) + throws Exception { + testResultSize(store, true, false, false); + } + + public static void testResultSizeWebPagesEndKey(DataStore store) + throws Exception { + testResultSize(store, false, false, false); + } + + public static void testResultSizeWebPagesKeyRange(DataStore store) + throws Exception { + testResultSize(store, true, true, false); + } + + public static void testResultSizeWebPagesWithLimit(DataStore store) + throws Exception { + testResultSize(store, false, false, true); + } + + public static void testResultSizeWebPagesStartKeyWithLimit(DataStore store) + throws Exception { + testResultSize(store, true, false, true); + } + + public static void testResultSizeWebPagesEndKeyWithLimit(DataStore store) + throws Exception { + testResultSize(store, false, false, true); + } + + public static void testResultSizeWebPagesKeyRangeWithLimit(DataStore store) + throws Exception { + testResultSize(store, true, true, true); + } } diff --git a/gora-dynamodb/src/main/java/org/apache/gora/dynamodb/query/DynamoDBResult.java b/gora-dynamodb/src/main/java/org/apache/gora/dynamodb/query/DynamoDBResult.java index c19188002..61810e4e9 100644 --- a/gora-dynamodb/src/main/java/org/apache/gora/dynamodb/query/DynamoDBResult.java +++ b/gora-dynamodb/src/main/java/org/apache/gora/dynamodb/query/DynamoDBResult.java @@ -88,5 +88,4 @@ public void close() throws IOException { public int size() { return dynamoDBResultSet.size(); } - } diff --git a/gora-hbase/src/main/java/org/apache/gora/hbase/query/HBaseScannerResult.java b/gora-hbase/src/main/java/org/apache/gora/hbase/query/HBaseScannerResult.java index ce4ea51c7..72a64fa4e 100644 --- a/gora-hbase/src/main/java/org/apache/gora/hbase/query/HBaseScannerResult.java +++ b/gora-hbase/src/main/java/org/apache/gora/hbase/query/HBaseScannerResult.java @@ -74,5 +74,4 @@ public float getProgress() throws IOException { public int size() { return (int) this.limit; } - } diff --git a/gora-hbase/src/test/java/org/apache/gora/hbase/store/TestHBaseStore.java b/gora-hbase/src/test/java/org/apache/gora/hbase/store/TestHBaseStore.java index c79588a9a..b4440be14 100644 --- a/gora-hbase/src/test/java/org/apache/gora/hbase/store/TestHBaseStore.java +++ b/gora-hbase/src/test/java/org/apache/gora/hbase/store/TestHBaseStore.java @@ -245,5 +245,27 @@ public void assertConfigurationException() throws GoraException { exceptionalConf.set("gora.hbase.mapping.file","gora-hbase-mapping-mismatch.xml"); DataStoreFactory.createDataStore(HBaseStore.class, String.class, WebPage.class, exceptionalConf); } - + + @Test + @Ignore("HBase does not support Result#size() without limit set") + @Override + public void testResultSize() throws Exception { + } + + @Test + @Ignore("HBase does not support Result#size() without limit set") + @Override + public void testResultSizeStartKey() throws Exception { + } + + @Ignore("HBase does not support Result#size() without limit set") + @Override + public void testResultSizeEndKey() throws Exception { + } + + @Test + @Ignore("HBase does not support Result#size() without limit set") + @Override + public void testResultSizeKeyRange() throws Exception { + } } diff --git a/gora-jcache/src/main/java/org/apache/gora/jcache/query/JCacheResult.java b/gora-jcache/src/main/java/org/apache/gora/jcache/query/JCacheResult.java index 0eba8f1d3..6048e1279 100644 --- a/gora-jcache/src/main/java/org/apache/gora/jcache/query/JCacheResult.java +++ b/gora-jcache/src/main/java/org/apache/gora/jcache/query/JCacheResult.java @@ -84,7 +84,8 @@ protected boolean nextInner() throws IOException { @Override public int size() { - return cacheKeySet.size(); + int totalSize = cacheKeySet.size(); + int intLimit = (int)this.limit; + return intLimit > 0 && totalSize>intLimit ? intLimit : totalSize; } - } diff --git a/gora-mongodb/src/test/java/org/apache/gora/mongodb/store/TestMongoStore.java b/gora-mongodb/src/test/java/org/apache/gora/mongodb/store/TestMongoStore.java index 9deb90641..824cc9a9a 100644 --- a/gora-mongodb/src/test/java/org/apache/gora/mongodb/store/TestMongoStore.java +++ b/gora-mongodb/src/test/java/org/apache/gora/mongodb/store/TestMongoStore.java @@ -65,7 +65,19 @@ public void testDeleteByQueryFields() throws IOException { public void testQueryKeyRange() throws Exception { // Skip until GORA-66 is fixed: need better semantic for end/start keys } - + + @Ignore("Skip until GORA-66 is fixed: need better semantic for end/start keys") + @Override + public void testResultSizeKeyRange() throws Exception { + // Skip until GORA-66 is fixed: need better semantic for end/start keys + } + + @Ignore("Skip until GORA-66 is fixed: need better semantic for end/start keys") + @Override + public void testResultSizeKeyRangeWithLimit() throws Exception { + // Skip until GORA-66 is fixed: need better semantic for end/start keys + } + @Ignore("MongoStore doesn't support 3 types union field yet") @Override public void testGet3UnionField() throws Exception { diff --git a/gora-orientdb/src/main/java/org/apache/gora/orientdb/query/OrientDBResult.java b/gora-orientdb/src/main/java/org/apache/gora/orientdb/query/OrientDBResult.java index c0bf7e5ca..3d6a3e1d2 100644 --- a/gora-orientdb/src/main/java/org/apache/gora/orientdb/query/OrientDBResult.java +++ b/gora-orientdb/src/main/java/org/apache/gora/orientdb/query/OrientDBResult.java @@ -102,7 +102,8 @@ protected boolean nextInner() throws IOException { @Override public int size() { - return size; + int totalSize = size; + int intLimit = (int)this.limit; + return intLimit > 0 && totalSize>intLimit ? intLimit : totalSize; } - } diff --git a/gora-solr/src/main/java/org/apache/gora/solr/query/SolrResult.java b/gora-solr/src/main/java/org/apache/gora/solr/query/SolrResult.java index e4f3c6961..8524c8760 100644 --- a/gora-solr/src/main/java/org/apache/gora/solr/query/SolrResult.java +++ b/gora-solr/src/main/java/org/apache/gora/solr/query/SolrResult.java @@ -127,6 +127,8 @@ public float getProgress() throws IOException { @Override public int size() { - return list.size(); + int totalSize = list.size(); + int intLimit = (int)this.limit; + return intLimit > 0 && totalSize>intLimit ? intLimit : totalSize; } } From 3dada3ae68d58491197deb8a3c1cc3f5504a48f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Rodrigo=20Mu=C3=B1oz?= Date: Wed, 2 May 2018 14:48:22 -0500 Subject: [PATCH 5/7] Fix formatting code --- .../src/main/java/org/apache/gora/memory/store/MemStore.java | 2 +- .../main/java/org/apache/gora/jcache/query/JCacheResult.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/gora-core/src/main/java/org/apache/gora/memory/store/MemStore.java b/gora-core/src/main/java/org/apache/gora/memory/store/MemStore.java index 5d204ebc0..ce0d33618 100644 --- a/gora-core/src/main/java/org/apache/gora/memory/store/MemStore.java +++ b/gora-core/src/main/java/org/apache/gora/memory/store/MemStore.java @@ -94,7 +94,7 @@ public boolean nextInner() throws IOException { public int size() { int totalSize = map.navigableKeySet().size(); int intLimit = (int)this.limit; - return intLimit > 0 && totalSize>intLimit ? intLimit : totalSize; + return intLimit > 0 && totalSize > intLimit ? intLimit : totalSize; } } diff --git a/gora-jcache/src/main/java/org/apache/gora/jcache/query/JCacheResult.java b/gora-jcache/src/main/java/org/apache/gora/jcache/query/JCacheResult.java index 6048e1279..ee26c74f6 100644 --- a/gora-jcache/src/main/java/org/apache/gora/jcache/query/JCacheResult.java +++ b/gora-jcache/src/main/java/org/apache/gora/jcache/query/JCacheResult.java @@ -88,4 +88,4 @@ public int size() { int intLimit = (int)this.limit; return intLimit > 0 && totalSize>intLimit ? intLimit : totalSize; } -} +} \ No newline at end of file From 791e14cb9c8ac13fe4506470f2b8921c3cc542da Mon Sep 17 00:00:00 2001 From: carlosrmng <37358206+carlosrmng@users.noreply.github.com> Date: Wed, 2 May 2018 22:44:02 -0500 Subject: [PATCH 6/7] Add ending line --- .../main/java/org/apache/gora/jcache/query/JCacheResult.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gora-jcache/src/main/java/org/apache/gora/jcache/query/JCacheResult.java b/gora-jcache/src/main/java/org/apache/gora/jcache/query/JCacheResult.java index ee26c74f6..6048e1279 100644 --- a/gora-jcache/src/main/java/org/apache/gora/jcache/query/JCacheResult.java +++ b/gora-jcache/src/main/java/org/apache/gora/jcache/query/JCacheResult.java @@ -88,4 +88,4 @@ public int size() { int intLimit = (int)this.limit; return intLimit > 0 && totalSize>intLimit ? intLimit : totalSize; } -} \ No newline at end of file +} From fb4b3552a497ea082cec27c69512e7f91dbca619 Mon Sep 17 00:00:00 2001 From: dev Date: Sun, 6 May 2018 14:30:26 -0500 Subject: [PATCH 7/7] -Fix formatting code --- .../accumulo/store/AccumuloStoreTest.java | 6 +- .../apache/gora/memory/store/MemStore.java | 2 +- .../apache/gora/store/DataStoreTestBase.java | 14 ++--- .../apache/gora/store/DataStoreTestUtil.java | 63 ++++++++++--------- .../gora/hbase/store/TestHBaseStore.java | 6 +- .../gora/jcache/query/JCacheResult.java | 4 +- .../gora/orientdb/query/OrientDBResult.java | 4 +- .../apache/gora/solr/query/SolrResult.java | 4 +- 8 files changed, 53 insertions(+), 50 deletions(-) diff --git a/gora-accumulo/src/test/java/org/apache/gora/accumulo/store/AccumuloStoreTest.java b/gora-accumulo/src/test/java/org/apache/gora/accumulo/store/AccumuloStoreTest.java index 54f5519bc..adeb8b024 100644 --- a/gora-accumulo/src/test/java/org/apache/gora/accumulo/store/AccumuloStoreTest.java +++ b/gora-accumulo/src/test/java/org/apache/gora/accumulo/store/AccumuloStoreTest.java @@ -67,18 +67,18 @@ public void testDeleteByQueryFields() throws IOException { @Override public void testResultSize() throws Exception { } - + @Test @Ignore("Accumulo does not support Result#size() without limit set") @Override public void testResultSizeStartKey() throws Exception { } - + @Ignore("Accumulo does not support Result#size() without limit set") @Override public void testResultSizeEndKey() throws Exception { } - + @Test @Ignore("Accumulo does not support Result#size() without limit set") @Override diff --git a/gora-core/src/main/java/org/apache/gora/memory/store/MemStore.java b/gora-core/src/main/java/org/apache/gora/memory/store/MemStore.java index ce0d33618..4404e03a2 100644 --- a/gora-core/src/main/java/org/apache/gora/memory/store/MemStore.java +++ b/gora-core/src/main/java/org/apache/gora/memory/store/MemStore.java @@ -93,7 +93,7 @@ public boolean nextInner() throws IOException { @Override public int size() { int totalSize = map.navigableKeySet().size(); - int intLimit = (int)this.limit; + int intLimit = (int) this.limit; return intLimit > 0 && totalSize > intLimit ? intLimit : totalSize; } } diff --git a/gora-core/src/test/java/org/apache/gora/store/DataStoreTestBase.java b/gora-core/src/test/java/org/apache/gora/store/DataStoreTestBase.java index 625df3980..37a3deaa1 100644 --- a/gora-core/src/test/java/org/apache/gora/store/DataStoreTestBase.java +++ b/gora-core/src/test/java/org/apache/gora/store/DataStoreTestBase.java @@ -364,43 +364,43 @@ public void testResultSize() throws Exception { log.info("test method: testResultSize"); DataStoreTestUtil.testResultSizeWebPages(webPageStore); } - + @Test public void testResultSizeStartKey() throws Exception { log.info("test method: testResultSizeStartKey"); DataStoreTestUtil.testResultSizeWebPagesStartKey(webPageStore); } - + @Test public void testResultSizeEndKey() throws Exception { log.info("test method: testResultSizeEndKey"); DataStoreTestUtil.testResultSizeWebPagesEndKey(webPageStore); } - + @Test public void testResultSizeKeyRange() throws Exception { log.info("test method: testResultSizeKeyRange"); DataStoreTestUtil.testResultSizeWebPagesKeyRange(webPageStore); } - + @Test public void testResultSizeWithLimit() throws Exception { log.info("test method: testResultSizeWithLimit"); DataStoreTestUtil.testResultSizeWebPagesWithLimit(webPageStore); } - + @Test public void testResultSizeStartKeyWithLimit() throws Exception { log.info("test method: testResultSizeStartKeyWithLimit"); DataStoreTestUtil.testResultSizeWebPagesStartKeyWithLimit(webPageStore); } - + @Test public void testResultSizeEndKeyWithLimit() throws Exception { log.info("test method: testResultSizeEndKeyWithLimit"); DataStoreTestUtil.testResultSizeWebPagesEndKeyWithLimit(webPageStore); } - + @Test public void testResultSizeKeyRangeWithLimit() throws Exception { log.info("test method: testResultSizeKeyRangeWithLimit"); diff --git a/gora-core/src/test/java/org/apache/gora/store/DataStoreTestUtil.java b/gora-core/src/test/java/org/apache/gora/store/DataStoreTestUtil.java index 5a38df408..99cfd6b67 100644 --- a/gora-core/src/test/java/org/apache/gora/store/DataStoreTestUtil.java +++ b/gora-core/src/test/java/org/apache/gora/store/DataStoreTestUtil.java @@ -1210,8 +1210,8 @@ public static String[] getFields(List schemaFields) { } public static void testResultSize(DataStore store, - boolean setStartKeys, boolean setEndKeys, boolean setLimit) - throws Exception { + boolean setStartKeys, boolean setEndKeys, boolean setLimit) + throws Exception { createWebPageData(store); //create sorted set of urls @@ -1220,19 +1220,20 @@ public static void testResultSize(DataStore store, Collections.sort(sortedUrls); //try all ranges - for(int i=0; i query = store.newQuery(); - if(setStartKeys) + if (setStartKeys) { query.setStartKey(sortedUrls.get(i)); - if(setEndKeys) + } + if (setEndKeys) { query.setEndKey(sortedUrls.get(j)); - int expectedLength = (setEndKeys ? j+1: sortedUrls.size()) - - (setStartKeys ? i: 0); - if (setLimit){ + } + int expectedLength = (setEndKeys ? j + 1 : sortedUrls.size()) - (setStartKeys ? i : 0); + if (setLimit) { //limit half of the expected results - int limit = expectedLength/2; - if (limit > 0){ + int limit = expectedLength / 2; + if (limit > 0) { query.setLimit(limit); } else { continue; @@ -1240,56 +1241,58 @@ public static void testResultSize(DataStore store, } Result result = query.execute(); int size = result.size(); - int r=0; - while(result.next()) { + int r = 0; + while (result.next()) { r++; } assertEquals(r, size); - if(!setEndKeys) + if (!setEndKeys) { break; + } } - if(!setStartKeys) + if (!setStartKeys) { break; + } } } public static void testResultSizeWebPages(DataStore store) - throws Exception { + throws Exception { testResultSize(store, false, false, false); } - + public static void testResultSizeWebPagesStartKey(DataStore store) - throws Exception { + throws Exception { testResultSize(store, true, false, false); } - + public static void testResultSizeWebPagesEndKey(DataStore store) - throws Exception { + throws Exception { testResultSize(store, false, false, false); } - + public static void testResultSizeWebPagesKeyRange(DataStore store) - throws Exception { + throws Exception { testResultSize(store, true, true, false); } - + public static void testResultSizeWebPagesWithLimit(DataStore store) - throws Exception { + throws Exception { testResultSize(store, false, false, true); } - + public static void testResultSizeWebPagesStartKeyWithLimit(DataStore store) - throws Exception { + throws Exception { testResultSize(store, true, false, true); } - + public static void testResultSizeWebPagesEndKeyWithLimit(DataStore store) - throws Exception { + throws Exception { testResultSize(store, false, false, true); } - + public static void testResultSizeWebPagesKeyRangeWithLimit(DataStore store) - throws Exception { + throws Exception { testResultSize(store, true, true, true); } } diff --git a/gora-hbase/src/test/java/org/apache/gora/hbase/store/TestHBaseStore.java b/gora-hbase/src/test/java/org/apache/gora/hbase/store/TestHBaseStore.java index b4440be14..2ed7a09d9 100644 --- a/gora-hbase/src/test/java/org/apache/gora/hbase/store/TestHBaseStore.java +++ b/gora-hbase/src/test/java/org/apache/gora/hbase/store/TestHBaseStore.java @@ -251,18 +251,18 @@ public void assertConfigurationException() throws GoraException { @Override public void testResultSize() throws Exception { } - + @Test @Ignore("HBase does not support Result#size() without limit set") @Override public void testResultSizeStartKey() throws Exception { } - + @Ignore("HBase does not support Result#size() without limit set") @Override public void testResultSizeEndKey() throws Exception { } - + @Test @Ignore("HBase does not support Result#size() without limit set") @Override diff --git a/gora-jcache/src/main/java/org/apache/gora/jcache/query/JCacheResult.java b/gora-jcache/src/main/java/org/apache/gora/jcache/query/JCacheResult.java index 6048e1279..913e380a5 100644 --- a/gora-jcache/src/main/java/org/apache/gora/jcache/query/JCacheResult.java +++ b/gora-jcache/src/main/java/org/apache/gora/jcache/query/JCacheResult.java @@ -85,7 +85,7 @@ protected boolean nextInner() throws IOException { @Override public int size() { int totalSize = cacheKeySet.size(); - int intLimit = (int)this.limit; - return intLimit > 0 && totalSize>intLimit ? intLimit : totalSize; + int intLimit = (int) this.limit; + return intLimit > 0 && totalSize > intLimit ? intLimit : totalSize; } } diff --git a/gora-orientdb/src/main/java/org/apache/gora/orientdb/query/OrientDBResult.java b/gora-orientdb/src/main/java/org/apache/gora/orientdb/query/OrientDBResult.java index 3d6a3e1d2..3ee0d6fed 100644 --- a/gora-orientdb/src/main/java/org/apache/gora/orientdb/query/OrientDBResult.java +++ b/gora-orientdb/src/main/java/org/apache/gora/orientdb/query/OrientDBResult.java @@ -103,7 +103,7 @@ protected boolean nextInner() throws IOException { @Override public int size() { int totalSize = size; - int intLimit = (int)this.limit; - return intLimit > 0 && totalSize>intLimit ? intLimit : totalSize; + int intLimit = (int) this.limit; + return intLimit > 0 && totalSize > intLimit ? intLimit : totalSize; } } diff --git a/gora-solr/src/main/java/org/apache/gora/solr/query/SolrResult.java b/gora-solr/src/main/java/org/apache/gora/solr/query/SolrResult.java index 671b65e49..4cb1501ca 100644 --- a/gora-solr/src/main/java/org/apache/gora/solr/query/SolrResult.java +++ b/gora-solr/src/main/java/org/apache/gora/solr/query/SolrResult.java @@ -127,7 +127,7 @@ public float getProgress() throws IOException { @Override public int size() { int totalSize = list.size(); - int intLimit = (int)this.limit; - return intLimit > 0 && totalSize>intLimit ? intLimit : totalSize; + int intLimit = (int) this.limit; + return intLimit > 0 && totalSize > intLimit ? intLimit : totalSize; } }