[jboss-svn-commits] JBoss Common SVN: r4454 - in arquillian/trunk/extensions/performance: src/main/java/org/jboss/arquillian/performance/event and 2 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri May 28 21:39:14 EDT 2010


Author: stalep
Date: 2010-05-28 21:39:13 -0400 (Fri, 28 May 2010)
New Revision: 4454

Modified:
   arquillian/trunk/extensions/performance/pom.xml
   arquillian/trunk/extensions/performance/src/main/java/org/jboss/arquillian/performance/event/PerformanceResultStore.java
   arquillian/trunk/extensions/performance/src/main/java/org/jboss/arquillian/performance/event/PerformanceTestParser.java
   arquillian/trunk/extensions/performance/src/main/java/org/jboss/arquillian/performance/event/TestPerformanceVerifier.java
   arquillian/trunk/extensions/performance/src/main/java/org/jboss/arquillian/performance/meta/PerformanceClassResult.java
   arquillian/trunk/extensions/performance/src/main/java/org/jboss/arquillian/performance/meta/PerformanceMethodResult.java
   arquillian/trunk/extensions/performance/src/main/java/org/jboss/arquillian/performance/meta/PerformanceSuiteResult.java
   arquillian/trunk/extensions/performance/src/test/java/org/jboss/arquillian/performance/cdi/WorkHardCdiTestCase.java
Log:
[ARQ-147]
further improvements on comparing old results


Modified: arquillian/trunk/extensions/performance/pom.xml
===================================================================
--- arquillian/trunk/extensions/performance/pom.xml	2010-05-29 01:13:58 UTC (rev 4453)
+++ arquillian/trunk/extensions/performance/pom.xml	2010-05-29 01:39:13 UTC (rev 4454)
@@ -24,8 +24,15 @@
 
    <!-- Properties -->
    <properties>
+      	<!-- Versioning -->
+		<version.weld_core>1.0.1-SP1</version.weld_core>
+		<version.org.apache.openejb_openejb.core>3.1.2</version.org.apache.openejb_openejb.core>
+		<version.openwebbeans>1.0.0-M4</version.openwebbeans>
+		<version.jboss_60>6.0.0.20100429-M3</version.jboss_60>
+		<version.jboss_51>5.1.0.GA</version.jboss_51>
+		<version.glassfish_30>3.0.1-b02</version.glassfish_30>
+		<version.jboss_ejb3>3.1.0</version.jboss_ejb3>
 
-
    </properties>
 
    <profiles>
@@ -38,7 +45,7 @@
             <dependency> <!-- Need on all profiles except Glassfish to compile, api is not 100% up to date with final spec -->
                <groupId>org.jboss.ejb3</groupId> 
                <artifactId>jboss-ejb3-api</artifactId> 
-               <version>3.1.0</version>
+               <version>${version.jboss_ejb3}</version>
                <scope>test</scope>
             </dependency>
          </dependencies>
@@ -66,10 +73,39 @@
             <dependency> 
                <groupId>org.jboss.ejb3</groupId> 
                <artifactId>jboss-ejb3-api</artifactId> 
-               <version>3.1.0</version>
+               <version>${version.jboss_ejb3}</version>
                <scope>test</scope>
             </dependency>
+            <dependency>
+              <groupId>org.jboss.weld</groupId>
+              <artifactId>weld-core</artifactId>
+            </dependency>
+            <dependency>
+              <groupId>org.jboss.weld</groupId>
+              <artifactId>weld-api</artifactId>
+            </dependency>
+            <dependency>
+              <groupId>org.slf4j</groupId>
+              <artifactId>slf4j-simple</artifactId>
+            </dependency>
+            <dependency>
+              <groupId>javax.el</groupId>
+              <artifactId>el-api</artifactId>
+              <version>1.2</version>
+            </dependency>
          </dependencies>
+         <dependencyManagement>
+           <dependencies>
+             <!-- org.jboss.weld -->
+             <dependency>
+               <groupId>org.jboss.weld</groupId>
+               <artifactId>weld-core-bom</artifactId>
+               <version>${version.weld_core}</version>
+               <type>pom</type>
+               <scope>import</scope>
+             </dependency>
+           </dependencies>
+         </dependencyManagement>
          <build>
             <plugins>
                <plugin>
@@ -95,7 +131,7 @@
             <dependency> <!-- Need on all profiles except Glassfish to compile, api is not 100% up to date with final spec -->
                <groupId>org.jboss.ejb3</groupId> 
                <artifactId>jboss-ejb3-api</artifactId> 
-               <version>3.1.0</version>
+               <version>${version.jboss_ejb3}</version>
                <scope>test</scope>
             </dependency>
          </dependencies>
@@ -138,7 +174,7 @@
       <dependency> 
          <groupId>org.jboss.ejb3</groupId> 
          <artifactId>jboss-ejb3-api</artifactId> 
-         <version>3.1.0</version>
+         <version>${version.jboss_ejb3}</version>
          <scope>test</scope>
       </dependency>
       <dependency>
@@ -167,18 +203,6 @@
          <scope>test</scope>
       </dependency>
 
-            <dependency>
-               <groupId>org.jboss.arquillian.container</groupId>
-               <artifactId>arquillian-weld-embedded</artifactId>
-               <version>${project.version}</version>
-            </dependency>
-            <dependency> 
-               <groupId>org.jboss.ejb3</groupId> 
-               <artifactId>jboss-ejb3-api</artifactId> 
-               <version>3.1.0</version>
-               <scope>test</scope>
-            </dependency>
- 
       <!-- External Projects -->
       <dependency>
          <groupId>org.mockito</groupId>

Modified: arquillian/trunk/extensions/performance/src/main/java/org/jboss/arquillian/performance/event/PerformanceResultStore.java
===================================================================
--- arquillian/trunk/extensions/performance/src/main/java/org/jboss/arquillian/performance/event/PerformanceResultStore.java	2010-05-29 01:13:58 UTC (rev 4453)
+++ arquillian/trunk/extensions/performance/src/main/java/org/jboss/arquillian/performance/event/PerformanceResultStore.java	2010-05-29 01:39:13 UTC (rev 4454)
@@ -1,5 +1,13 @@
 package org.jboss.arquillian.performance.event;
 
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.ObjectOutputStream;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+
 import org.jboss.arquillian.performance.meta.PerformanceSuiteResult;
 import org.jboss.arquillian.spi.Context;
 import org.jboss.arquillian.spi.event.suite.EventHandler;
@@ -17,17 +25,66 @@
 
 public class PerformanceResultStore implements EventHandler<SuiteEvent>
 {
+   private final String folder = "arq-perf";
+   private static final SimpleDateFormat fileFormat = new SimpleDateFormat("dd.MM.yy.mm.ss");
+//   private final String filename = ""
    
-   
    public void callback(Context context, SuiteEvent event) throws Exception
    {
       PerformanceSuiteResult suiteResult = (PerformanceSuiteResult) context.get(PerformanceSuiteResult.class);
    
+      
       if(suiteResult != null)
       {
          //TODO: compare, fetch, save.
          System.out.println("SuiteResult is ON!!!");
+         comparePerformanceSuiteResults(suiteResult);
       }
+      else
+         System.out.println("SUITERESULT IS NULL");
    }
+   
+   private void comparePerformanceSuiteResults(PerformanceSuiteResult suiteResult)
+   {
+      storePerformanceSuiteResult(suiteResult);
+   }
+   
+   private List<PerformanceSuiteResult> findEarlierResults(PerformanceSuiteResult suiteResult)
+   {
+       
+      return null;
+   }
+   
+   /**
+    * 1. make sure folder exists, if not create folder
+    * 2. generate file name
+    * 3. save file
+    * 
+    * @param suiteResult
+    */
+   private void storePerformanceSuiteResult(PerformanceSuiteResult suiteResult)
+   {
+      String filename = suiteResult.getName()+"-"+fileFormat.format(new Date())+".ser";
+      String currentPath = System.getProperty("user.dir")+File.separator+folder+File.separator;
+      boolean filestatus = true;
+      if(!new File(currentPath).isDirectory())
+         filestatus = new File(currentPath).mkdirs();
+      if(filestatus)
+      {
+         FileOutputStream fos = null;
+         ObjectOutputStream out = null;
+         try
+         {
+            fos = new FileOutputStream(currentPath+filename);
+            out = new ObjectOutputStream(fos);
+            out.writeObject(suiteResult);
+            out.close();
+         }
+         catch(IOException ex)
+         {
+            ex.printStackTrace();
+         }
+      }
+   }
 
 }

Modified: arquillian/trunk/extensions/performance/src/main/java/org/jboss/arquillian/performance/event/PerformanceTestParser.java
===================================================================
--- arquillian/trunk/extensions/performance/src/main/java/org/jboss/arquillian/performance/event/PerformanceTestParser.java	2010-05-29 01:13:58 UTC (rev 4453)
+++ arquillian/trunk/extensions/performance/src/main/java/org/jboss/arquillian/performance/event/PerformanceTestParser.java	2010-05-29 01:39:13 UTC (rev 4454)
@@ -52,7 +52,8 @@
             context.getParentContext().get(PerformanceSuiteResult.class);
          if(suitePerformance == null)
          {
-            suitePerformance = new PerformanceSuiteResult();
+            suitePerformance = new PerformanceSuiteResult(classPerformance.getTestClassName());
+            System.out.println("adding performancesuiteresult to context");
             context.getParentContext().add(PerformanceSuiteResult.class, suitePerformance);
          }
          

Modified: arquillian/trunk/extensions/performance/src/main/java/org/jboss/arquillian/performance/event/TestPerformanceVerifier.java
===================================================================
--- arquillian/trunk/extensions/performance/src/main/java/org/jboss/arquillian/performance/event/TestPerformanceVerifier.java	2010-05-29 01:13:58 UTC (rev 4453)
+++ arquillian/trunk/extensions/performance/src/main/java/org/jboss/arquillian/performance/event/TestPerformanceVerifier.java	2010-05-29 01:39:13 UTC (rev 4454)
@@ -66,11 +66,14 @@
             // fetch suiteResult, get the correct classResult and append the test to that
             // classResult.
             PerformanceSuiteResult suiteResult = context.getParentContext().getParentContext().get(PerformanceSuiteResult.class);
-            suiteResult.getResult(event.getTestClass().getName()).addMethodResult(
-                  new PerformanceMethodResult(
-                        performance.time(), 
-                        (result.getEnd()-result.getStart()), 
-                        event.getTestMethod()));
+            if(suiteResult != null)
+               suiteResult.getResult(event.getTestClass().getName()).addMethodResult(
+                     new PerformanceMethodResult(
+                           performance.time(), 
+                           (result.getEnd()-result.getStart()), 
+                           event.getTestMethod()));
+            else
+               System.out.println("PerformanceVerifier didnt get PerformanceSuiteResult!");
          }
       }
    }

Modified: arquillian/trunk/extensions/performance/src/main/java/org/jboss/arquillian/performance/meta/PerformanceClassResult.java
===================================================================
--- arquillian/trunk/extensions/performance/src/main/java/org/jboss/arquillian/performance/meta/PerformanceClassResult.java	2010-05-29 01:13:58 UTC (rev 4453)
+++ arquillian/trunk/extensions/performance/src/main/java/org/jboss/arquillian/performance/meta/PerformanceClassResult.java	2010-05-29 01:39:13 UTC (rev 4454)
@@ -16,6 +16,7 @@
  */
 package org.jboss.arquillian.performance.meta;
 
+import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -27,11 +28,15 @@
  * @author <a href="mailto:stale.pedersen at jboss.org">Stale W. Pedersen</a>
  * @version $Revision: 1.1 $
  */
-public class PerformanceClassResult
+public class PerformanceClassResult implements Serializable
 {
+   /** The serialVersionUID */
+   private static final long serialVersionUID = 6743015614324029428L;
+   
    private List<PerformanceMethodResult> methodResults;
    private PerformanceTest performanceSpecs;
    private String testClassName;
+   
    public PerformanceClassResult(PerformanceTest performanceSpecs, String testClassName)
    {
       setPerformanceSpecs(performanceSpecs);

Modified: arquillian/trunk/extensions/performance/src/main/java/org/jboss/arquillian/performance/meta/PerformanceMethodResult.java
===================================================================
--- arquillian/trunk/extensions/performance/src/main/java/org/jboss/arquillian/performance/meta/PerformanceMethodResult.java	2010-05-29 01:13:58 UTC (rev 4453)
+++ arquillian/trunk/extensions/performance/src/main/java/org/jboss/arquillian/performance/meta/PerformanceMethodResult.java	2010-05-29 01:39:13 UTC (rev 4454)
@@ -16,6 +16,7 @@
  */
 package org.jboss.arquillian.performance.meta;
 
+import java.io.Serializable;
 import java.lang.reflect.Method;
 
 /**
@@ -24,18 +25,21 @@
  * @author <a href="mailto:stale.pedersen at jboss.org">Stale W. Pedersen</a>
  * @version $Revision: 1.1 $
  */
-public class PerformanceMethodResult
+public class PerformanceMethodResult implements Serializable
 {
 
+   /** The serialVersionUID */
+   private static final long serialVersionUID = 1249191155205920067L;
+   
    private double maxTime;
    private double actualTime;
-   private Method testMethod;
+   private String testMethod;
    
    public PerformanceMethodResult(double maxTime, double actualTime, Method testMethod)
    {
       setMaxTime(maxTime);
       setActualTime(actualTime);
-      setTestMethod(testMethod);
+      setTestMethod(testMethod.getName());
    }
    public double getMaxTime()
    {
@@ -53,11 +57,11 @@
    {
       this.actualTime = actualTime;
    }
-   public Method getTestMethod()
+   public String getTestMethod()
    {
       return testMethod;
    }
-   private void setTestMethod(Method testMethod)
+   private void setTestMethod(String testMethod)
    {
       this.testMethod = testMethod;
    }

Modified: arquillian/trunk/extensions/performance/src/main/java/org/jboss/arquillian/performance/meta/PerformanceSuiteResult.java
===================================================================
--- arquillian/trunk/extensions/performance/src/main/java/org/jboss/arquillian/performance/meta/PerformanceSuiteResult.java	2010-05-29 01:13:58 UTC (rev 4453)
+++ arquillian/trunk/extensions/performance/src/main/java/org/jboss/arquillian/performance/meta/PerformanceSuiteResult.java	2010-05-29 01:39:13 UTC (rev 4454)
@@ -28,10 +28,15 @@
  */
 public class PerformanceSuiteResult implements Serializable
 {
+   /** The serialVersionUID */
+   private static final long serialVersionUID = 1487390574111894654L;
+   
+   private String name;
    private Map<String, PerformanceClassResult> classResults;
 
-   public PerformanceSuiteResult()
+   public PerformanceSuiteResult(String name)
    {
+      setName(name);
       classResults = new HashMap<String, PerformanceClassResult>();
    }
    
@@ -50,4 +55,14 @@
       classResults.put(className, result);
    }
 
+   public String getName()
+   {
+      return name;
+   }
+
+   private void setName(String name)
+   {
+      this.name = name;
+   }
+
 }

Modified: arquillian/trunk/extensions/performance/src/test/java/org/jboss/arquillian/performance/cdi/WorkHardCdiTestCase.java
===================================================================
--- arquillian/trunk/extensions/performance/src/test/java/org/jboss/arquillian/performance/cdi/WorkHardCdiTestCase.java	2010-05-29 01:13:58 UTC (rev 4453)
+++ arquillian/trunk/extensions/performance/src/test/java/org/jboss/arquillian/performance/cdi/WorkHardCdiTestCase.java	2010-05-29 01:39:13 UTC (rev 4454)
@@ -45,7 +45,8 @@
     * @throws Exception
     */
    @Test
-   @Performance(time=0.01)
+   //@Performance(time=0.01)
+   @Performance(time=10)
    public void doHardWorkThatFails() throws Exception
    {
       Assert.assertEquals(21, hardWorker, 0d);



More information about the jboss-svn-commits mailing list