From 1c73a49470fceb6c8b43cc7bb51f49e7e0ba7667 Mon Sep 17 00:00:00 2001
From: boli <boli@localhost>
Date: Fri, 17 Sep 2010 17:11:12 +0000
Subject: [PATCH] - Improved usage information for searchrate and modrate - maxIteration is now for the entire run - Better error handling with the --argument option
---
sdk/src/com/sun/opends/sdk/tools/DataSource.java | 177 +++++++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 142 insertions(+), 35 deletions(-)
diff --git a/sdk/src/com/sun/opends/sdk/tools/DataSource.java b/sdk/src/com/sun/opends/sdk/tools/DataSource.java
index bb529f7..49caa30 100644
--- a/sdk/src/com/sun/opends/sdk/tools/DataSource.java
+++ b/sdk/src/com/sun/opends/sdk/tools/DataSource.java
@@ -34,8 +34,9 @@
import java.io.IOException;
import java.util.*;
+import com.sun.opends.sdk.util.StaticUtils;
import com.sun.opends.sdk.util.Validator;
-
+import org.opends.sdk.LocalizableMessage;
/**
@@ -104,6 +105,12 @@
return lines.get(next++);
}
+
+ public static LocalizableMessage getUsage()
+ {
+ return LocalizableMessage.raw(
+ "\"inc({filename})\" Consecutive, incremental line from file");
+ }
}
@@ -141,6 +148,12 @@
return next++;
}
+
+ public static LocalizableMessage getUsage()
+ {
+ return LocalizableMessage.raw(
+ "\"inc({min},{max})\" Consecutive, incremental number");
+ }
}
@@ -185,6 +198,12 @@
{
return lines.get(random.nextInt(lines.size()));
}
+
+ public static LocalizableMessage getUsage()
+ {
+ return LocalizableMessage.raw(
+ "\"rand({filename})\" Random line from file");
+ }
}
@@ -218,6 +237,12 @@
{
return random.nextInt(range) + offset;
}
+
+ public static LocalizableMessage getUsage()
+ {
+ return LocalizableMessage.raw(
+ "\"rand({min},{max})\" Random number");
+ }
}
@@ -277,6 +302,17 @@
}
return new String(str);
}
+
+ public static LocalizableMessage getUsage()
+ {
+ return LocalizableMessage.raw(
+ "\"randStr({length},<charSet>)\" Random string of specified " +
+ "length and optionally from characters in " +
+ "the charSet string. A range of character " +
+ "can be specified with [start-end] charSet notation. " +
+ "If no charSet is specified, the default charSet of " +
+ "[A-Z][a-z][0-9] will be used");
+ }
}
@@ -351,11 +387,11 @@
* @param sources
* The list of source definitions to parse.
* @return The array of parsed data sources.
- * @throws IOException
- * If an exception occurs while reading a file.
+ * @throws ArgumentException
+ * If an exception occurs while parsing.
*/
public static DataSource[] parse(final List<String> sources)
- throws IOException
+ throws ArgumentException
{
Validator.ensureNotNull(sources);
final DataSource[] dataSources = new DataSource[sources.size()];
@@ -367,22 +403,47 @@
final int lparenPos = dataSourceDef.indexOf("(");
final int commaPos = dataSourceDef.indexOf(",");
final int rparenPos = dataSourceDef.indexOf(")");
+
if (commaPos < 0)
{
- // This is a file name
- dataSources[i] = new DataSource(new RandomLineFileDataSource(0,
- dataSourceDef.substring(lparenPos + 1, rparenPos)));
+ try
+ {
+ // This is a file name
+ dataSources[i] = new DataSource(new RandomLineFileDataSource(0,
+ dataSourceDef.substring(lparenPos + 1, rparenPos)));
+ }
+ catch(IOException ioe)
+ {
+ throw new ArgumentException(LocalizableMessage.raw(
+ "Error opening file %s: %s",
+ dataSourceDef.substring(lparenPos + 1, rparenPos),
+ ioe.getMessage()), ioe);
+ }
+ catch(Exception e)
+ {
+ throw new ArgumentException(LocalizableMessage.raw(
+ "Error parsing value generator: %s", e.getMessage()), e);
+ }
}
else
{
- // This range of integers
- final int low = Integer.parseInt(dataSourceDef.substring(
- lparenPos + 1, commaPos));
- final int high = Integer.parseInt(dataSourceDef.substring(
- commaPos + 1, rparenPos));
- dataSources[i] = new DataSource(new RandomNumberDataSource(Thread
- .currentThread().getId(), low, high));
+ try
+ {
+ // This range of integers
+ final int low = Integer.parseInt(dataSourceDef.substring(
+ lparenPos + 1, commaPos));
+ final int high = Integer.parseInt(dataSourceDef.substring(
+ commaPos + 1, rparenPos));
+ dataSources[i] = new DataSource(new RandomNumberDataSource(Thread
+ .currentThread().getId(), low, high));
+ }
+ catch(Exception e)
+ {
+ throw new ArgumentException(LocalizableMessage.raw(
+ "Error parsing value generator: %s", e.getMessage()), e);
+ }
}
+
}
else if (dataSourceDef.startsWith("randstr(")
&& dataSourceDef.endsWith(")"))
@@ -392,22 +453,29 @@
final int rparenPos = dataSourceDef.indexOf(")");
int length;
String charSet;
- if (commaPos < 0)
+ try
{
- length = Integer.parseInt(dataSourceDef.substring(lparenPos + 1,
- rparenPos));
- charSet = "[A-Z][a-z][0-9]";
+ if (commaPos < 0)
+ {
+ length = Integer.parseInt(dataSourceDef.substring(lparenPos + 1,
+ rparenPos));
+ charSet = "[A-Z][a-z][0-9]";
+ }
+ else
+ {
+ // length and charSet
+ length = Integer.parseInt(dataSourceDef.substring(lparenPos + 1,
+ commaPos));
+ charSet = dataSourceDef.substring(commaPos + 1, rparenPos);
+ }
+ dataSources[i] = new DataSource(new RandomStringDataSource(0, length,
+ charSet));
}
- else
+ catch(Exception e)
{
- // length and charSet
- length = Integer.parseInt(dataSourceDef.substring(lparenPos + 1,
- commaPos));
- charSet = dataSourceDef.substring(commaPos + 1, rparenPos);
+ throw new ArgumentException(LocalizableMessage.raw(
+ "Error parsing value generator: %s", e.getMessage()), e);
}
- dataSources[i] = new DataSource(new RandomStringDataSource(0, length,
- charSet));
-
}
else if (dataSourceDef.startsWith("inc(") && dataSourceDef.endsWith(")"))
{
@@ -416,18 +484,41 @@
final int rparenPos = dataSourceDef.indexOf(")");
if (commaPos < 0)
{
- // This is a file name
- dataSources[i] = new DataSource(new IncrementLineFileDataSource(
- dataSourceDef.substring(lparenPos + 1, rparenPos)));
+ try
+ {
+ // This is a file name
+ dataSources[i] = new DataSource(new IncrementLineFileDataSource(
+ dataSourceDef.substring(lparenPos + 1, rparenPos)));
+ }
+ catch(IOException ioe)
+ {
+ throw new ArgumentException(LocalizableMessage.raw(
+ "Error opening file %s: %s",
+ dataSourceDef.substring(lparenPos + 1, rparenPos),
+ ioe.getMessage()), ioe);
+ }
+ catch(Exception e)
+ {
+ throw new ArgumentException(LocalizableMessage.raw(
+ "Error parsing value generator: %s", e.getMessage()), e);
+ }
}
else
{
- final int low = Integer.parseInt(dataSourceDef.substring(
- lparenPos + 1, commaPos));
- final int high = Integer.parseInt(dataSourceDef.substring(
- commaPos + 1, rparenPos));
- dataSources[i] = new DataSource(new IncrementNumberDataSource(low,
- high));
+ try
+ {
+ final int low = Integer.parseInt(dataSourceDef.substring(
+ lparenPos + 1, commaPos));
+ final int high = Integer.parseInt(dataSourceDef.substring(
+ commaPos + 1, rparenPos));
+ dataSources[i] = new DataSource(new IncrementNumberDataSource(low,
+ high));
+ }
+ catch(Exception e)
+ {
+ throw new ArgumentException(LocalizableMessage.raw(
+ "Error parsing value generator: %s", e.getMessage()), e);
+ }
}
}
else
@@ -448,6 +539,22 @@
}
+ public static LocalizableMessage getUsage()
+ {
+ StringBuilder builder = new StringBuilder();
+ builder.append(IncrementLineFileDataSource.getUsage());
+ builder.append(StaticUtils.EOL);
+ builder.append(IncrementNumberDataSource.getUsage());
+ builder.append(StaticUtils.EOL);
+ builder.append(RandomLineFileDataSource.getUsage());
+ builder.append(StaticUtils.EOL);
+ builder.append(RandomNumberDataSource.getUsage());
+ builder.append(StaticUtils.EOL);
+ builder.append(RandomStringDataSource.getUsage());
+ return LocalizableMessage.raw(builder.toString());
+ }
+
+
private final IDataSource impl;
--
Gitblit v1.10.0