[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