Repository: cassandra
Updated Branches:
  refs/heads/trunk c0aa7467e -> 67feb71ee


http://git-wip-us.apache.org/repos/asf/cassandra/blob/3e2c6105/tools/stress/src/org/apache/cassandra/stress/settings/SettingsCommandMulti.java
----------------------------------------------------------------------
diff --git 
a/tools/stress/src/org/apache/cassandra/stress/settings/SettingsCommandMulti.java
 
b/tools/stress/src/org/apache/cassandra/stress/settings/SettingsCommandMulti.java
deleted file mode 100644
index 79937b6..0000000
--- 
a/tools/stress/src/org/apache/cassandra/stress/settings/SettingsCommandMulti.java
+++ /dev/null
@@ -1,90 +0,0 @@
-package org.apache.cassandra.stress.settings;
-/*
- * 
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * 
- */
-
-
-import java.util.ArrayList;
-import java.util.List;
-
-// Settings common to commands that operate over multiple keys at once
-public class SettingsCommandMulti extends SettingsCommand
-{
-
-    public final int keysAtOnce;
-
-    public SettingsCommandMulti(Command type, Options options)
-    {
-        super(type, options.parent);
-        this.keysAtOnce = Integer.parseInt(options.maxKeys.value());
-    }
-
-    // Option Declarations
-
-    static final class Options extends GroupedOptions
-    {
-        final GroupedOptions parent;
-        Options(GroupedOptions parent)
-        {
-            this.parent = parent;
-        }
-        final OptionSimple maxKeys = new OptionSimple("at-once=", "[0-9]+", 
"1000", "Number of keys per operation", false);
-
-        @Override
-        public List<? extends Option> options()
-        {
-            final List<Option> options = new ArrayList<>();
-            options.add(maxKeys);
-            options.addAll(parent.options());
-            return options;
-        }
-    }
-
-    // CLI Utility Methods
-
-    public static SettingsCommand build(Command type, String[] params)
-    {
-        GroupedOptions options = GroupedOptions.select(params, new Options(new 
Uncertainty()), new Options(new Count()));
-        if (options == null)
-        {
-            printHelp(type);
-            System.out.println("Invalid " + type + " options provided, see 
output for valid options");
-            System.exit(1);
-        }
-        return new SettingsCommandMulti(type, (Options) options);
-    }
-
-    public static void printHelp(Command type)
-    {
-        GroupedOptions.printOptions(System.out, type.toString().toLowerCase(), 
new Options(new Uncertainty()), new Options(new Count()));
-    }
-
-    public static Runnable helpPrinter(final Command type)
-    {
-        return new Runnable()
-        {
-            @Override
-            public void run()
-            {
-                printHelp(type);
-            }
-        };
-    }
-}

http://git-wip-us.apache.org/repos/asf/cassandra/blob/3e2c6105/tools/stress/src/org/apache/cassandra/stress/settings/SettingsKey.java
----------------------------------------------------------------------
diff --git 
a/tools/stress/src/org/apache/cassandra/stress/settings/SettingsKey.java 
b/tools/stress/src/org/apache/cassandra/stress/settings/SettingsKey.java
index c742274..9818d363 100644
--- a/tools/stress/src/org/apache/cassandra/stress/settings/SettingsKey.java
+++ b/tools/stress/src/org/apache/cassandra/stress/settings/SettingsKey.java
@@ -63,7 +63,7 @@ public class SettingsKey implements Serializable
 
         public DistributionOptions(String defaultLimit)
         {
-            dist = new OptionDistribution("dist=", "GAUSSIAN(1.." + 
defaultLimit + ")");
+            dist = new OptionDistribution("dist=", "GAUSSIAN(1.." + 
defaultLimit + ")", "Keys are selected from this distribution");
         }
 
         @Override

http://git-wip-us.apache.org/repos/asf/cassandra/blob/3e2c6105/tools/stress/src/org/apache/cassandra/stress/settings/SettingsMisc.java
----------------------------------------------------------------------
diff --git 
a/tools/stress/src/org/apache/cassandra/stress/settings/SettingsMisc.java 
b/tools/stress/src/org/apache/cassandra/stress/settings/SettingsMisc.java
index dfb29c5..e47f85f 100644
--- a/tools/stress/src/org/apache/cassandra/stress/settings/SettingsMisc.java
+++ b/tools/stress/src/org/apache/cassandra/stress/settings/SettingsMisc.java
@@ -43,7 +43,7 @@ public class SettingsMisc implements Serializable
 
     static final class PrintDistribution extends GroupedOptions
     {
-        final OptionDistribution dist = new OptionDistribution("dist=", null);
+        final OptionDistribution dist = new OptionDistribution("dist=", null, 
"A mathematical distribution");
 
         @Override
         public List<? extends Option> options()
@@ -180,7 +180,7 @@ public class SettingsMisc implements Serializable
                     @Override
                     public List<? extends Option> options()
                     {
-                        return Arrays.asList(new OptionDistribution("dist=", 
null));
+                        return Arrays.asList(new OptionDistribution("dist=", 
null, "A mathematical distribution"));
                     }
                 });
             }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/3e2c6105/tools/stress/src/org/apache/cassandra/stress/settings/SettingsMode.java
----------------------------------------------------------------------
diff --git 
a/tools/stress/src/org/apache/cassandra/stress/settings/SettingsMode.java 
b/tools/stress/src/org/apache/cassandra/stress/settings/SettingsMode.java
index eef8c39..95c3da3 100644
--- a/tools/stress/src/org/apache/cassandra/stress/settings/SettingsMode.java
+++ b/tools/stress/src/org/apache/cassandra/stress/settings/SettingsMode.java
@@ -42,7 +42,7 @@ public class SettingsMode implements Serializable
         {
             cqlVersion = CqlVersion.CQL3;
             Cql3Options opts = (Cql3Options) options;
-            api = opts.useNative.setByUser() ? 
ConnectionAPI.JAVA_DRIVER_NATIVE : ConnectionAPI.THRIFT;
+            api = opts.mode().displayPrefix.equals("native") ? 
ConnectionAPI.JAVA_DRIVER_NATIVE : ConnectionAPI.THRIFT;
             style = opts.usePrepared.setByUser() ? 
ConnectionStyle.CQL_PREPARED : ConnectionStyle.CQL;
             compression = 
ProtocolOptions.Compression.valueOf(opts.useCompression.value().toUpperCase()).name();
         }
@@ -54,11 +54,11 @@ public class SettingsMode implements Serializable
             style = opts.usePrepared.setByUser() ? 
ConnectionStyle.CQL_PREPARED : ConnectionStyle.CQL;
             compression = ProtocolOptions.Compression.NONE.name();
         }
-        else if (options instanceof Cql2Options)
+        else if (options instanceof Cql2ThriftOptions)
         {
             cqlVersion = CqlVersion.CQL2;
             api = ConnectionAPI.THRIFT;
-            Cql2Options opts = (Cql2Options) options;
+            Cql2ThriftOptions opts = (Cql2ThriftOptions) options;
             style = opts.usePrepared.setByUser() ? 
ConnectionStyle.CQL_PREPARED : ConnectionStyle.CQL;
             compression = ProtocolOptions.Compression.NONE.name();
         }
@@ -81,21 +81,40 @@ public class SettingsMode implements Serializable
 
     // Option Declarations
 
-    private static final class Cql3Options extends GroupedOptions
+    private static final class Cql3NativeOptions extends Cql3Options
+    {
+        final OptionSimple mode = new OptionSimple("native", "", null, "", 
true);
+        OptionSimple mode()
+        {
+            return mode;
+        }
+    }
+
+    private static final class Cql3ThriftOptions extends Cql3Options
+    {
+        final OptionSimple mode = new OptionSimple("thrift", "", null, "", 
true);
+        OptionSimple mode()
+        {
+            return mode;
+        }
+    }
+
+    private static abstract class Cql3Options extends GroupedOptions
     {
         final OptionSimple api = new OptionSimple("cql3", "", null, "", true);
-        final OptionSimple useNative = new OptionSimple("native", "", null, 
"", false);
         final OptionSimple usePrepared = new OptionSimple("prepared", "", 
null, "", false);
         final OptionSimple useCompression = new OptionSimple("compression=", 
"none|lz4|snappy", "none", "", false);
         final OptionSimple port = new OptionSimple("port=", "[0-9]+", "9046", 
"", false);
 
+        abstract OptionSimple mode();
         @Override
         public List<? extends Option> options()
         {
-            return Arrays.asList(useNative, usePrepared, api, useCompression, 
port);
+            return Arrays.asList(mode(), usePrepared, api, useCompression, 
port);
         }
     }
 
+
     private static final class Cql3SimpleNativeOptions extends GroupedOptions
     {
         final OptionSimple api = new OptionSimple("cql3", "", null, "", true);
@@ -110,15 +129,16 @@ public class SettingsMode implements Serializable
         }
     }
 
-    private static final class Cql2Options extends GroupedOptions
+    private static final class Cql2ThriftOptions extends GroupedOptions
     {
         final OptionSimple api = new OptionSimple("cql2", "", null, "", true);
+        final OptionSimple mode = new OptionSimple("thrift", "", null, "", 
true);
         final OptionSimple usePrepared = new OptionSimple("prepared", "", 
null, "", false);
 
         @Override
         public List<? extends Option> options()
         {
-            return Arrays.asList(usePrepared, api);
+            return Arrays.asList(mode, api, usePrepared);
         }
     }
 
@@ -146,7 +166,7 @@ public class SettingsMode implements Serializable
             return new SettingsMode(opts);
         }
 
-        GroupedOptions options = GroupedOptions.select(params, new 
ThriftOptions(), new Cql2Options(), new Cql3Options(), new 
Cql3SimpleNativeOptions());
+        GroupedOptions options = GroupedOptions.select(params, new 
ThriftOptions(), new Cql3NativeOptions(), new Cql3ThriftOptions(), new 
Cql3SimpleNativeOptions(), new Cql2ThriftOptions());
         if (options == null)
         {
             printHelp();
@@ -158,7 +178,7 @@ public class SettingsMode implements Serializable
 
     public static void printHelp()
     {
-        GroupedOptions.printOptions(System.out, "-mode", new ThriftOptions(), 
new Cql2Options(), new Cql3Options(), new Cql3SimpleNativeOptions());
+        GroupedOptions.printOptions(System.out, "-mode", new ThriftOptions(), 
new Cql3NativeOptions(), new Cql3ThriftOptions(), new 
Cql3SimpleNativeOptions(), new Cql2ThriftOptions());
     }
 
     public static Runnable helpPrinter()

http://git-wip-us.apache.org/repos/asf/cassandra/blob/3e2c6105/tools/stress/src/org/apache/cassandra/stress/settings/SettingsSchema.java
----------------------------------------------------------------------
diff --git 
a/tools/stress/src/org/apache/cassandra/stress/settings/SettingsSchema.java 
b/tools/stress/src/org/apache/cassandra/stress/settings/SettingsSchema.java
index 5b5333c..33af446 100644
--- a/tools/stress/src/org/apache/cassandra/stress/settings/SettingsSchema.java
+++ b/tools/stress/src/org/apache/cassandra/stress/settings/SettingsSchema.java
@@ -45,7 +45,6 @@ public class SettingsSchema implements Serializable
     private final String compactionStrategy;
     private final Map<String, String> compactionStrategyOptions;
     public final String keyspace;
-    public final String columnFamily;
 
     public SettingsSchema(Options options)
     {
@@ -60,7 +59,6 @@ public class SettingsSchema implements Serializable
         compactionStrategy = options.compaction.getStrategy();
         compactionStrategyOptions = options.compaction.getOptions();
         keyspace = options.keyspace.value();
-        columnFamily = options.columnFamily.value();
     }
 
     public void createKeySpaces(StressSettings settings)
@@ -77,7 +75,7 @@ public class SettingsSchema implements Serializable
         KsDef ksdef = new KsDef();
 
         // column family for standard columns
-        CfDef standardCfDef = new CfDef(keyspace, columnFamily);
+        CfDef standardCfDef = new CfDef(keyspace, "Standard1");
         Map<String, String> compressionOptions = new HashMap<String, String>();
         if (compression != null)
             compressionOptions.put("sstable_compression", compression);
@@ -202,14 +200,13 @@ public class SettingsSchema implements Serializable
         final OptionCompaction compaction = new OptionCompaction();
         final OptionSimple index = new OptionSimple("index=", 
"KEYS|CUSTOM|COMPOSITES", null, "Type of index to create on needed column 
families (KEYS)", false);
         final OptionSimple keyspace = new OptionSimple("keyspace=", ".*", 
"Keyspace1", "The keyspace name to use", false);
-        final OptionSimple columnFamily = new OptionSimple("columnfamily=", 
".*", "Standard1", "The column family name to use", false);
         final OptionSimple noReplicateOnWrite = new 
OptionSimple("no-replicate-on-write", "", null, "Set replicate_on_write to 
false for counters. Only counter add with CL=ONE will work", false);
         final OptionSimple compression = new OptionSimple("compression=", 
".*", null, "Specify the compression to use for sstable, default:no 
compression", false);
 
         @Override
         public List<? extends Option> options()
         {
-            return Arrays.asList(replication, index, keyspace, columnFamily, 
compaction, noReplicateOnWrite, compression);
+            return Arrays.asList(replication, index, keyspace, compaction, 
noReplicateOnWrite, compression);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/cassandra/blob/3e2c6105/tools/stress/src/org/apache/cassandra/stress/settings/SettingsTransport.java
----------------------------------------------------------------------
diff --git 
a/tools/stress/src/org/apache/cassandra/stress/settings/SettingsTransport.java 
b/tools/stress/src/org/apache/cassandra/stress/settings/SettingsTransport.java
index ebf26b1..396095d 100644
--- 
a/tools/stress/src/org/apache/cassandra/stress/settings/SettingsTransport.java
+++ 
b/tools/stress/src/org/apache/cassandra/stress/settings/SettingsTransport.java
@@ -47,7 +47,7 @@ public class SettingsTransport implements Serializable
         {
             Class<?> clazz = Class.forName(fqFactoryClass);
             if (!ITransportFactory.class.isAssignableFrom(clazz))
-                throw new ClassCastException();
+                throw new IllegalArgumentException(clazz + " is not a valid 
transport factory");
             // check we can instantiate it
             clazz.newInstance();
         }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/3e2c6105/tools/stress/src/org/apache/cassandra/stress/settings/StressSettings.java
----------------------------------------------------------------------
diff --git 
a/tools/stress/src/org/apache/cassandra/stress/settings/StressSettings.java 
b/tools/stress/src/org/apache/cassandra/stress/settings/StressSettings.java
index 865f864..95ec75b 100644
--- a/tools/stress/src/org/apache/cassandra/stress/settings/StressSettings.java
+++ b/tools/stress/src/org/apache/cassandra/stress/settings/StressSettings.java
@@ -172,12 +172,21 @@ public class StressSettings implements Serializable
 
     public static StressSettings parse(String[] args)
     {
-        final Map<String, String[]> clArgs = parseMap(args);
-        if (clArgs.containsKey("legacy"))
-            return Legacy.build(Arrays.copyOfRange(args, 1, args.length));
-        if (SettingsMisc.maybeDoSpecial(clArgs))
+        try
+        {
+            final Map<String, String[]> clArgs = parseMap(args);
+            if (clArgs.containsKey("legacy"))
+                return Legacy.build(Arrays.copyOfRange(args, 1, args.length));
+            if (SettingsMisc.maybeDoSpecial(clArgs))
+                System.exit(1);
+            return get(clArgs);
+        }
+        catch (IllegalArgumentException e)
+        {
+            System.out.println(e.getMessage());
             System.exit(1);
-        return get(clArgs);
+            throw new AssertionError();
+        }
     }
 
     public static StressSettings get(Map<String, String[]> clArgs)
@@ -231,17 +240,24 @@ public class StressSettings implements Serializable
             if (i == 0 || args[i].startsWith("-"))
             {
                 if (i > 0)
-                    r.put(key, params.toArray(new String[0]));
+                    putParam(key, params.toArray(new String[0]), r);
                 key = args[i].toLowerCase();
                 params.clear();
             }
             else
                 params.add(args[i]);
         }
-        r.put(key, params.toArray(new String[0]));
+        putParam(key, params.toArray(new String[0]), r);
         return r;
     }
 
+    private static void putParam(String key, String[] args, Map<String, 
String[]> clArgs)
+    {
+        String[] prev = clArgs.put(key, args);
+        if (prev != null)
+            throw new IllegalArgumentException(key + " is defined multiple 
times. Each option/command can be specified at most once.");
+    }
+
     public static void printHelp()
     {
         SettingsMisc.printHelp();

http://git-wip-us.apache.org/repos/asf/cassandra/blob/3e2c6105/tools/stress/src/org/apache/cassandra/stress/util/JavaDriverClient.java
----------------------------------------------------------------------
diff --git 
a/tools/stress/src/org/apache/cassandra/stress/util/JavaDriverClient.java 
b/tools/stress/src/org/apache/cassandra/stress/util/JavaDriverClient.java
index 7bde900..f50aa81 100644
--- a/tools/stress/src/org/apache/cassandra/stress/util/JavaDriverClient.java
+++ b/tools/stress/src/org/apache/cassandra/stress/util/JavaDriverClient.java
@@ -103,11 +103,11 @@ public class JavaDriverClient
         return getSession().execute(stmt);
     }
 
-    public ResultSet executePrepared(PreparedStatement stmt, List<ByteBuffer> 
queryParams, org.apache.cassandra.db.ConsistencyLevel consistency)
+    public ResultSet executePrepared(PreparedStatement stmt, List<Object> 
queryParams, org.apache.cassandra.db.ConsistencyLevel consistency)
     {
 
         stmt.setConsistencyLevel(from(consistency));
-        BoundStatement bstmt = stmt.bind((Object[]) queryParams.toArray(new 
ByteBuffer[queryParams.size()]));
+        BoundStatement bstmt = stmt.bind((Object[]) queryParams.toArray(new 
Object[queryParams.size()]));
         return getSession().execute(bstmt);
     }
 

Reply via email to