[jboss-cvs] JBossAS SVN: r111846 - projects/jboss-jca/branches/performance/perfenv/src/main/java/org/jboss/jca/performance/perfenv/tests.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Jul 26 08:50:36 EDT 2011
Author: jesper.pedersen
Date: 2011-07-26 08:50:35 -0400 (Tue, 26 Jul 2011)
New Revision: 111846
Modified:
projects/jboss-jca/branches/performance/perfenv/src/main/java/org/jboss/jca/performance/perfenv/tests/DatabaseTester.java
Log:
Do all setup in the setup method
Modified: projects/jboss-jca/branches/performance/perfenv/src/main/java/org/jboss/jca/performance/perfenv/tests/DatabaseTester.java
===================================================================
--- projects/jboss-jca/branches/performance/perfenv/src/main/java/org/jboss/jca/performance/perfenv/tests/DatabaseTester.java 2011-07-26 12:14:08 UTC (rev 111845)
+++ projects/jboss-jca/branches/performance/perfenv/src/main/java/org/jboss/jca/performance/perfenv/tests/DatabaseTester.java 2011-07-26 12:50:35 UTC (rev 111846)
@@ -75,6 +75,15 @@
/** The list of SQL statements to execute */
private List<String> sqls;
+ /** Naming context */
+ private Context context;
+
+ /** User transaction */
+ private UserTransaction userTransaction;
+
+ /** Datasource */
+ private DataSource dataSource;
+
/**
* Constructor
*/
@@ -86,20 +95,87 @@
this.iterations = 100000;
this.sqls = new ArrayList<String>(1);
this.sqls.add("SELECT 1");
+ this.context = null;
+ this.userTransaction = null;
+ this.dataSource = null;
}
/**
- * {@inheritDoc}
+ * Set multi thread
+ * @param v The value
*/
- public Serializable setup(Serializable[] args)
+ void setMultiThreaded(boolean v)
{
- return null;
+ multiThreaded = v;
}
+
+ /**
+ * Set max threads
+ * @param v The value
+ */
+ void setMaxThreads(int v)
+ {
+ maxThreads = v;
+ }
+
+ /**
+ * Set db jndi name
+ * @param v The value
+ */
+ void setDbJndiName(String v)
+ {
+ dbJndiName = v;
+ }
+
+ /**
+ * Set iterations
+ * @param v The value
+ */
+ void setIterations(int v)
+ {
+ iterations = v;
+ }
/**
+ * Set SQLs
+ * @param v The value
+ */
+ void setSQLs(List<String> v)
+ {
+ sqls = v;
+ }
+
+ /**
+ * Set context
+ * @param v The value
+ */
+ void setContext(Context v)
+ {
+ context = v;
+ }
+
+ /**
+ * Set user transaction
+ * @param v The value
+ */
+ void setUserTransaction(UserTransaction v)
+ {
+ userTransaction = v;
+ }
+
+ /**
+ * Set datasource
+ * @param v The value
+ */
+ void setDatasource(DataSource v)
+ {
+ dataSource = v;
+ }
+
+ /**
* {@inheritDoc}
*/
- public Serializable run(Serializable[] args)
+ public Serializable setup(Serializable[] args)
{
if (args == null || args.length == 0)
return new IllegalArgumentException("Unsupported argument list: " + Arrays.toString(args));
@@ -120,13 +196,34 @@
if (dbJndiName == null || dbJndiName.trim().equals(""))
throw new IllegalArgumentException("No datasource JNDI name defined");
+ context = new InitialContext();
+ userTransaction = (UserTransaction)context.lookup(JNDI_USER_TRANSACTION);
+ dataSource = (DataSource)context.lookup(dbJndiName);
+
+ return Boolean.TRUE;
+ }
+ catch (Throwable t)
+ {
+ StringWriter sw = new StringWriter();
+ sw.write(t.getMessage());
+ sw.write('\n');
+
+ t.printStackTrace(new PrintWriter(sw));
+
+ return new Exception(sw.toString());
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public Serializable run(Serializable[] args)
+ {
+ try
+ {
long start = 0;
long end = 0;
- Context context = new InitialContext();
- UserTransaction userTransaction = (UserTransaction)context.lookup(JNDI_USER_TRANSACTION);
- DataSource dataSource = (DataSource)context.lookup(dbJndiName);
-
if (multiThreaded)
{
try
@@ -159,8 +256,8 @@
}
else
{
+ TestCase t = new TestCase(dataSource, userTransaction, sqls);
start = System.currentTimeMillis();
- TestCase t = new TestCase(dataSource, userTransaction, sqls);
for (int counter = 0; counter < iterations; counter++)
{
t.run();
@@ -176,8 +273,6 @@
log.info("Took: " + elapsed + " ms");
log.info("Unit of work/ms: " + (iterations / (double)elapsed));
- context.close();
-
return new Double((iterations * 1000L) / (double)elapsed);
}
catch (Throwable t)
@@ -197,7 +292,23 @@
*/
public Serializable teardown(Serializable[] args)
{
- return null;
+ try
+ {
+ if (context != null)
+ context.close();
+
+ return Boolean.TRUE;
+ }
+ catch (Throwable t)
+ {
+ StringWriter sw = new StringWriter();
+ sw.write(t.getMessage());
+ sw.write('\n');
+
+ t.printStackTrace(new PrintWriter(sw));
+
+ return new Exception(sw.toString());
+ }
}
/**
@@ -206,6 +317,14 @@
public Test clone() throws CloneNotSupportedException
{
DatabaseTester t = (DatabaseTester)super.clone();
+ t.setMultiThreaded(multiThreaded);
+ t.setMaxThreads(maxThreads);
+ t.setDbJndiName(dbJndiName);
+ t.setIterations(iterations);
+ t.setSQLs(sqls);
+ t.setContext(context);
+ t.setUserTransaction(userTransaction);
+ t.setDatasource(dataSource);
return t;
}
More information about the jboss-cvs-commits
mailing list