You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by kt...@apache.org on 2013/02/21 16:55:22 UTC
svn commit: r1448692 - in /accumulo/branches/1.5/core/src:
main/java/org/apache/accumulo/core/iterators/user/TransformingIterator.java
test/java/org/apache/accumulo/core/iterators/user/TransformingIteratorTest.java
Author: kturner
Date: Thu Feb 21 15:55:22 2013
New Revision: 1448692
URL: http://svn.apache.org/r1448692
Log:
ACCUMULO-1001 implemented verifyopts for TransformingIterator
Modified:
accumulo/branches/1.5/core/src/main/java/org/apache/accumulo/core/iterators/user/TransformingIterator.java
accumulo/branches/1.5/core/src/test/java/org/apache/accumulo/core/iterators/user/TransformingIteratorTest.java
Modified: accumulo/branches/1.5/core/src/main/java/org/apache/accumulo/core/iterators/user/TransformingIterator.java
URL: http://svn.apache.org/viewvc/accumulo/branches/1.5/core/src/main/java/org/apache/accumulo/core/iterators/user/TransformingIterator.java?rev=1448692&r1=1448691&r2=1448692&view=diff
==============================================================================
--- accumulo/branches/1.5/core/src/main/java/org/apache/accumulo/core/iterators/user/TransformingIterator.java (original)
+++ accumulo/branches/1.5/core/src/main/java/org/apache/accumulo/core/iterators/user/TransformingIterator.java Thu Feb 21 15:55:22 2013
@@ -140,9 +140,22 @@ abstract public class TransformingIterat
@Override
public boolean validateOptions(Map<String,String> options) {
+
+ for (String opt : options.keySet()) {
+ try {
+ if (options.equals(AUTH_OPT)) {
+ new Authorizations(options.get(opt).getBytes());
+ } else if (opt.equals(MAX_BUFFER_SIZE_OPT)) {
+ AccumuloConfiguration.getMemoryInBytes(options.get(opt));
+ }
+ } catch (Exception e) {
+ throw new IllegalArgumentException("Failed to parse opt " + opt + " " + options.get(opt), e);
+ }
+ }
+
return true;
}
-
+
@Override
public SortedKeyValueIterator<Key,Value> deepCopy(IteratorEnvironment env) {
TransformingIterator copy;
Modified: accumulo/branches/1.5/core/src/test/java/org/apache/accumulo/core/iterators/user/TransformingIteratorTest.java
URL: http://svn.apache.org/viewvc/accumulo/branches/1.5/core/src/test/java/org/apache/accumulo/core/iterators/user/TransformingIteratorTest.java?rev=1448692&r1=1448691&r2=1448692&view=diff
==============================================================================
--- accumulo/branches/1.5/core/src/test/java/org/apache/accumulo/core/iterators/user/TransformingIteratorTest.java (original)
+++ accumulo/branches/1.5/core/src/test/java/org/apache/accumulo/core/iterators/user/TransformingIteratorTest.java Thu Feb 21 15:55:22 2013
@@ -25,6 +25,7 @@ import java.io.IOException;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
+import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
@@ -55,6 +56,7 @@ import org.apache.accumulo.core.iterator
import org.apache.accumulo.core.security.Authorizations;
import org.apache.accumulo.core.security.ColumnVisibility;
import org.apache.hadoop.io.Text;
+import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
@@ -388,6 +390,28 @@ public class TransformingIteratorTest {
assertEquals(81, count);
}
+ @Test
+ public void testValidateOptions() {
+ TransformingIterator ti = new ColFamReversingKeyTransformingIterator();
+ IteratorSetting is = new IteratorSetting(100, "cfrkt", ColFamReversingKeyTransformingIterator.class);
+ TransformingIterator.setAuthorizations(is, new Authorizations("A", "B"));
+ TransformingIterator.setMaxBufferSize(is, 10000000);
+ Assert.assertTrue(ti.validateOptions(is.getOptions()));
+
+ Map<String,String> opts = new HashMap<String,String>();
+
+ opts.put(TransformingIterator.MAX_BUFFER_SIZE_OPT, "10M");
+ Assert.assertTrue(ti.validateOptions(is.getOptions()));
+
+ opts.clear();
+ opts.put(TransformingIterator.MAX_BUFFER_SIZE_OPT, "A,B");
+ try {
+ ti.validateOptions(opts);
+ Assert.assertFalse(true);
+ } catch (IllegalArgumentException e) {}
+
+ }
+
private Key createDeleteKey(String row, String colFam, String colQual, String colVis, long timestamp) {
Key key = new Key(row, colFam, colQual, colVis, timestamp);
key.setDeleted(true);