http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/27107abf/blur-core/src/main/java/org/apache/blur/thrift/BlurShardServer.java ---------------------------------------------------------------------- diff --git a/blur-core/src/main/java/org/apache/blur/thrift/BlurShardServer.java b/blur-core/src/main/java/org/apache/blur/thrift/BlurShardServer.java index c438fa8..c323d4e 100644 --- a/blur-core/src/main/java/org/apache/blur/thrift/BlurShardServer.java +++ b/blur-core/src/main/java/org/apache/blur/thrift/BlurShardServer.java @@ -31,6 +31,8 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicLongArray; +import org.apache.blur.command.ArgumentOverlay; +import org.apache.blur.command.BlurObject; import org.apache.blur.command.CommandUtil; import org.apache.blur.command.ExecutionId; import org.apache.blur.command.Response; @@ -607,7 +609,8 @@ public class BlurShardServer extends TableAdmin implements Iface { table)); } }; - Response response = _commandManager.execute(tableContextFactory, commandName, CommandUtil.toArgs(arguments)); + BlurObject args = CommandUtil.toBlurObject(arguments); + Response response = _commandManager.execute(tableContextFactory, commandName, new ArgumentOverlay(args)); return CommandUtil.fromObjectToThrift(response); } catch (Exception e) { if (e instanceof org.apache.blur.command.TimeoutException) {
http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/27107abf/blur-core/src/test/java/org/apache/blur/command/ShardCommandManagerTest.java ---------------------------------------------------------------------- diff --git a/blur-core/src/test/java/org/apache/blur/command/ShardCommandManagerTest.java b/blur-core/src/test/java/org/apache/blur/command/ShardCommandManagerTest.java index 6047bfa..8ca946e 100644 --- a/blur-core/src/test/java/org/apache/blur/command/ShardCommandManagerTest.java +++ b/blur-core/src/test/java/org/apache/blur/command/ShardCommandManagerTest.java @@ -29,6 +29,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.SortedSet; +import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; import org.apache.blur.manager.IndexServer; @@ -127,9 +128,10 @@ public class ShardCommandManagerTest { ShardCommandManager manager = new ShardCommandManager(getIndexServer(), _tmpPath, _commandPath, 10, 10, 1000, _config); { - Args args = new Args(); - args.set("table", "test"); - Response response = manager.execute(getTableContextFactory(), "test", args); + BlurObject args = new BlurObject(); + args.put("table", "test"); + ArgumentOverlay argumentOverlay = new ArgumentOverlay(args); + Response response = manager.execute(getTableContextFactory(), "test", argumentOverlay); Map<Shard, Object> shardResults = response.getShardResults(); for (Object o : shardResults.values()) { assertEquals("test1", o); @@ -148,9 +150,10 @@ public class ShardCommandManagerTest { assertEquals(1, manager.commandRefresh()); { - Args args = new Args(); - args.set("table", "test"); - Response response = manager.execute(getTableContextFactory(), "test", args); + BlurObject args = new BlurObject(); + args.put("table", "test"); + ArgumentOverlay argumentOverlay = new ArgumentOverlay(args); + Response response = manager.execute(getTableContextFactory(), "test", argumentOverlay); Map<Shard, Object> shardResults = response.getShardResults(); for (Object o : shardResults.values()) { assertEquals("test2", o); @@ -178,15 +181,21 @@ public class ShardCommandManagerTest { Response response; ExecutionId executionId = null; - Args args = new Args(); - args.set("seconds", 5); - args.set("table", "test"); + BlurObject args = new BlurObject(); + args.put("table", "test"); + args.put("seconds", 5); + ArgumentOverlay argumentOverlay = new ArgumentOverlay(args); + + long start = System.nanoTime(); while (true) { + if (System.nanoTime() - start >= TimeUnit.SECONDS.toNanos(7)) { + fail(); + } try { if (executionId == null) { TableContextFactory tableContextFactory = getTableContextFactory(); - response = _manager.execute(tableContextFactory, "wait", args); + response = _manager.execute(tableContextFactory, "wait", argumentOverlay); } else { response = _manager.reconnect(executionId); } @@ -200,12 +209,13 @@ public class ShardCommandManagerTest { @Test public void testShardCommandManagerErrorWait() throws IOException, TimeoutException, ExceptionCollector { - Args args = new Args(); - args.set("seconds", 1); - args.set("table", "test"); + BlurObject args = new BlurObject(); + args.put("table", "test"); + args.put("seconds", 1); + ArgumentOverlay argumentOverlay = new ArgumentOverlay(args); TableContextFactory tableContextFactory = getTableContextFactory(); try { - _manager.execute(tableContextFactory, "error", args); + _manager.execute(tableContextFactory, "error", argumentOverlay); fail(); } catch (ExceptionCollector e) { Throwable t = e.getCause(); @@ -219,13 +229,15 @@ public class ShardCommandManagerTest { Response response; ExecutionId executionId = null; - Args args = new Args(); - args.set("seconds", 5); - args.set("table", "test"); + BlurObject args = new BlurObject(); + args.put("table", "test"); + args.put("seconds", 5); + + ArgumentOverlay argumentOverlay = new ArgumentOverlay(args); try { TableContextFactory tableContextFactory = getTableContextFactory(); - response = _manager.execute(tableContextFactory, "wait", args); + response = _manager.execute(tableContextFactory, "wait", argumentOverlay); } catch (TimeoutException te) { _manager.cancel(te.getExecutionId()); // some how validate the threads have cancelled. http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/27107abf/blur-core/src/test/java/org/apache/blur/command/ThrowException.java ---------------------------------------------------------------------- diff --git a/blur-core/src/test/java/org/apache/blur/command/ThrowException.java b/blur-core/src/test/java/org/apache/blur/command/ThrowException.java index 06aa3cb..cfa1804 100644 --- a/blur-core/src/test/java/org/apache/blur/command/ThrowException.java +++ b/blur-core/src/test/java/org/apache/blur/command/ThrowException.java @@ -18,17 +18,9 @@ package org.apache.blur.command; import java.io.IOException; -import org.apache.blur.command.annotation.Argument; -import org.apache.blur.command.annotation.OptionalArguments; -import org.apache.blur.command.annotation.RequiredArguments; +import org.apache.blur.command.commandtype.IndexReadCommandSingleTable; -@RequiredArguments({ @Argument(name = "table", value = "The name of the table to execute the wait for N number of seconds command.", type = String.class) }) -@OptionalArguments({ - -@Argument(name = "shard", value = "The shard id to execute the wait for N number of seconds command.", type = String.class), - -}) -public class ThrowException extends IndexReadCommand<Boolean> { +public class ThrowException extends IndexReadCommandSingleTable<Boolean> { @Override public Boolean execute(IndexContext context) throws IOException, InterruptedException { http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/27107abf/blur-core/src/test/java/org/apache/blur/command/WaitForSeconds.java ---------------------------------------------------------------------- diff --git a/blur-core/src/test/java/org/apache/blur/command/WaitForSeconds.java b/blur-core/src/test/java/org/apache/blur/command/WaitForSeconds.java index 8cf6bf2..3216d7f 100644 --- a/blur-core/src/test/java/org/apache/blur/command/WaitForSeconds.java +++ b/blur-core/src/test/java/org/apache/blur/command/WaitForSeconds.java @@ -19,16 +19,16 @@ package org.apache.blur.command; import java.io.IOException; import java.util.concurrent.TimeUnit; -import org.apache.blur.command.annotation.Argument; -import org.apache.blur.command.annotation.OptionalArguments; +import org.apache.blur.command.annotation.OptionalArgument; +import org.apache.blur.command.commandtype.IndexReadCommandSingleTable; -@OptionalArguments({ @Argument(name = "seconds", value = "The number of seconds to sleep, the default is 30 seconds.", type = Integer.class) }) -public class WaitForSeconds extends IndexReadCommand<Boolean> { +public class WaitForSeconds extends IndexReadCommandSingleTable<Boolean> { + + @OptionalArgument("The number of seconds to sleep, the default is 30 seconds.") + private int seconds = 30; @Override public Boolean execute(IndexContext context) throws IOException, InterruptedException { - Args args = context.getArgs(); - int seconds = args.get("seconds", 30); Thread.sleep(TimeUnit.SECONDS.toMillis(seconds)); return true; } @@ -38,4 +38,12 @@ public class WaitForSeconds extends IndexReadCommand<Boolean> { return "wait"; } + public int getSeconds() { + return seconds; + } + + public void setSeconds(int seconds) { + this.seconds = seconds; + } + } http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/27107abf/blur-core/src/test/resources/org/apache/blur/command/test1/TestCommand.java ---------------------------------------------------------------------- diff --git a/blur-core/src/test/resources/org/apache/blur/command/test1/TestCommand.java b/blur-core/src/test/resources/org/apache/blur/command/test1/TestCommand.java index 349f508..c45da90 100644 --- a/blur-core/src/test/resources/org/apache/blur/command/test1/TestCommand.java +++ b/blur-core/src/test/resources/org/apache/blur/command/test1/TestCommand.java @@ -19,10 +19,10 @@ import java.io.IOException; import org.apache.blur.command.Command; import org.apache.blur.command.IndexContext; -import org.apache.blur.command.IndexReadCommand; +import org.apache.blur.command.commandtype.IndexReadCommandSingleTable; @SuppressWarnings("serial") -public class TestCommand extends IndexReadCommand<String> { +public class TestCommand extends IndexReadCommandSingleTable<String> { @Override public String getName() { http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/27107abf/blur-core/src/test/resources/org/apache/blur/command/test1/test1.jar ---------------------------------------------------------------------- diff --git a/blur-core/src/test/resources/org/apache/blur/command/test1/test1.jar b/blur-core/src/test/resources/org/apache/blur/command/test1/test1.jar index fb71b76..bf3cb7f 100644 Binary files a/blur-core/src/test/resources/org/apache/blur/command/test1/test1.jar and b/blur-core/src/test/resources/org/apache/blur/command/test1/test1.jar differ http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/27107abf/blur-core/src/test/resources/org/apache/blur/command/test2/TestCommand.java ---------------------------------------------------------------------- diff --git a/blur-core/src/test/resources/org/apache/blur/command/test2/TestCommand.java b/blur-core/src/test/resources/org/apache/blur/command/test2/TestCommand.java index 12e486e..b0902ba 100644 --- a/blur-core/src/test/resources/org/apache/blur/command/test2/TestCommand.java +++ b/blur-core/src/test/resources/org/apache/blur/command/test2/TestCommand.java @@ -19,10 +19,10 @@ import java.io.IOException; import org.apache.blur.command.Command; import org.apache.blur.command.IndexContext; -import org.apache.blur.command.IndexReadCommand; +import org.apache.blur.command.commandtype.IndexReadCommandSingleTable; @SuppressWarnings("serial") -public class TestCommand extends IndexReadCommand<String> { +public class TestCommand extends IndexReadCommandSingleTable<String> { @Override public String getName() { http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/27107abf/blur-core/src/test/resources/org/apache/blur/command/test2/test2.jar ---------------------------------------------------------------------- diff --git a/blur-core/src/test/resources/org/apache/blur/command/test2/test2.jar b/blur-core/src/test/resources/org/apache/blur/command/test2/test2.jar index 47dca03..daecf41 100644 Binary files a/blur-core/src/test/resources/org/apache/blur/command/test2/test2.jar and b/blur-core/src/test/resources/org/apache/blur/command/test2/test2.jar differ
