Author: chirino
Date: Wed Sep 29 17:35:22 2010
New Revision: 1002773

URL: http://svn.apache.org/viewvc?rev=1002773&view=rev
Log:
Putting scenarios in traits so that they can more easily be mixed in to form 
different combinations.

Added:
    
activemq/activemq-apollo/trunk/apollo-broker/src/test/scala/org/apache/activemq/apollo/broker/perf/BasicScenarios.scala
      - copied, changed from r1002772, 
activemq/activemq-apollo/trunk/apollo-broker/src/test/scala/org/apache/activemq/apollo/broker/perf/BaseBrokerPerfSupport.scala
    
activemq/activemq-apollo/trunk/apollo-broker/src/test/scala/org/apache/activemq/apollo/broker/perf/DeepQueueScenarios.scala
      - copied, changed from r1002772, 
activemq/activemq-apollo/trunk/apollo-broker/src/test/scala/org/apache/activemq/apollo/broker/perf/BasePersistentBrokerPerfSupport.scala
    
activemq/activemq-apollo/trunk/apollo-broker/src/test/scala/org/apache/activemq/apollo/broker/perf/PersistentScenario.scala
Removed:
    
activemq/activemq-apollo/trunk/apollo-broker/src/test/scala/org/apache/activemq/apollo/broker/perf/BaseBrokerPerfSupport.scala
    
activemq/activemq-apollo/trunk/apollo-broker/src/test/scala/org/apache/activemq/apollo/broker/perf/BasePersistentBrokerPerfSupport.scala
Modified:
    
activemq/activemq-apollo/trunk/apollo-broker/src/test/scala/org/apache/activemq/apollo/broker/perf/BrokerPerfSupport.scala
    
activemq/activemq-apollo/trunk/apollo-stomp/src/test/scala/org/apache/activemq/apollo/stomp/perf/StompBrokerPerfTest.scala

Copied: 
activemq/activemq-apollo/trunk/apollo-broker/src/test/scala/org/apache/activemq/apollo/broker/perf/BasicScenarios.scala
 (from r1002772, 
activemq/activemq-apollo/trunk/apollo-broker/src/test/scala/org/apache/activemq/apollo/broker/perf/BaseBrokerPerfSupport.scala)
URL: 
http://svn.apache.org/viewvc/activemq/activemq-apollo/trunk/apollo-broker/src/test/scala/org/apache/activemq/apollo/broker/perf/BasicScenarios.scala?p2=activemq/activemq-apollo/trunk/apollo-broker/src/test/scala/org/apache/activemq/apollo/broker/perf/BasicScenarios.scala&p1=activemq/activemq-apollo/trunk/apollo-broker/src/test/scala/org/apache/activemq/apollo/broker/perf/BaseBrokerPerfSupport.scala&r1=1002772&r2=1002773&rev=1002773&view=diff
==============================================================================
--- 
activemq/activemq-apollo/trunk/apollo-broker/src/test/scala/org/apache/activemq/apollo/broker/perf/BaseBrokerPerfSupport.scala
 (original)
+++ 
activemq/activemq-apollo/trunk/apollo-broker/src/test/scala/org/apache/activemq/apollo/broker/perf/BasicScenarios.scala
 Wed Sep 29 17:35:22 2010
@@ -22,12 +22,9 @@ import java.net.URL
 /**
  * 
  */
-abstract class BaseBrokerPerfSupport extends BrokerPerfSupport {
+trait BasicScenarios extends BrokerPerfSupport {
 
-  def reportResourceTemplate():URL = { 
classOf[BaseBrokerPerfSupport].getResource("report.html") }
-  def partitionedLoad = List(1, 2, 4, 8, 10)
-  def highContention = 10
-  def messageSizes = List(20,1024,1024*256)
+  def reportResourceTemplate():URL = { 
classOf[BasicScenarios].getResource("report.html") }
 
   // benchmark all the combinations
   for( ptp <- List(true,false) ; durable <- List(false) ; messageSize <- 
messageSizes ) {

Modified: 
activemq/activemq-apollo/trunk/apollo-broker/src/test/scala/org/apache/activemq/apollo/broker/perf/BrokerPerfSupport.scala
URL: 
http://svn.apache.org/viewvc/activemq/activemq-apollo/trunk/apollo-broker/src/test/scala/org/apache/activemq/apollo/broker/perf/BrokerPerfSupport.scala?rev=1002773&r1=1002772&r2=1002773&view=diff
==============================================================================
--- 
activemq/activemq-apollo/trunk/apollo-broker/src/test/scala/org/apache/activemq/apollo/broker/perf/BrokerPerfSupport.scala
 (original)
+++ 
activemq/activemq-apollo/trunk/apollo-broker/src/test/scala/org/apache/activemq/apollo/broker/perf/BrokerPerfSupport.scala
 Wed Sep 29 17:35:22 2010
@@ -82,6 +82,10 @@ abstract class BrokerPerfSupport extends
 
   var samples:List[(String, AnyRef)] = Nil
 
+  def partitionedLoad = List(1, 2, 4, 8, 10)
+  def highContention = 10
+  def messageSizes = List(20,1024,1024*256)
+
   override protected def beforeEach() = {
     totalProducerRate = new MetricAggregator().name("Aggregate Producer 
Rate").unit("items")
     totalConsumerRate = new MetricAggregator().name("Aggregate Consumer 
Rate").unit("items")
@@ -496,12 +500,15 @@ abstract class RemoteConnection extends 
 
   protected def incrementMessageCount() = {
     messageCount = messageCount + 1
-    if ( messageCount % (maxMessages / 10) == 0 ) {
-      trace(name + " message count : " + messageCount)
-    }
-    if (maxMessages > 0 && messageCount  == maxMessages) {
-      trace(name + " message count (" + messageCount + ") max (" + maxMessages 
+ ") reached, stopping connection")
-      doStop
+    if( maxMessages > 0 ) {
+      if ( messageCount % (maxMessages / 10) == 0 ) {
+        trace(name + " message count : " + messageCount)
+      }
+      if (messageCount == maxMessages) {
+        trace(name + " message count (" + messageCount + ") max (" + 
maxMessages + ") reached, stopping connection")
+        doStop
+      }
+
     }
   }
 

Copied: 
activemq/activemq-apollo/trunk/apollo-broker/src/test/scala/org/apache/activemq/apollo/broker/perf/DeepQueueScenarios.scala
 (from r1002772, 
activemq/activemq-apollo/trunk/apollo-broker/src/test/scala/org/apache/activemq/apollo/broker/perf/BasePersistentBrokerPerfSupport.scala)
URL: 
http://svn.apache.org/viewvc/activemq/activemq-apollo/trunk/apollo-broker/src/test/scala/org/apache/activemq/apollo/broker/perf/DeepQueueScenarios.scala?p2=activemq/activemq-apollo/trunk/apollo-broker/src/test/scala/org/apache/activemq/apollo/broker/perf/DeepQueueScenarios.scala&p1=activemq/activemq-apollo/trunk/apollo-broker/src/test/scala/org/apache/activemq/apollo/broker/perf/BasePersistentBrokerPerfSupport.scala&r1=1002772&r2=1002773&rev=1002773&view=diff
==============================================================================
--- 
activemq/activemq-apollo/trunk/apollo-broker/src/test/scala/org/apache/activemq/apollo/broker/perf/BasePersistentBrokerPerfSupport.scala
 (original)
+++ 
activemq/activemq-apollo/trunk/apollo-broker/src/test/scala/org/apache/activemq/apollo/broker/perf/DeepQueueScenarios.scala
 Wed Sep 29 17:35:22 2010
@@ -24,17 +24,17 @@ import java.net.URL
  *
  * @author <a href="http://hiramchirino.com";>Hiram Chirino</a>
  */
-abstract class BasePersistentBrokerPerfSupport extends BaseBrokerPerfSupport {
+trait DeepQueueScenarios extends PersistentScenario {
 
   PERSISTENT = true
 
-  override def reportResourceTemplate():URL = { 
classOf[BasePersistentBrokerPerfSupport].getResource("persistent-report.html") }
+  override def reportResourceTemplate():URL = { 
classOf[DeepQueueScenarios].getResource("persistent-report.html") }
 
   //override def partitionedLoad = List(1, 2, 4, 8, 10)
   override def highContention = 100
   //override def messageSizes = List(20, 1024, 1024*256)
 
-  for ( load <- partitionedLoad ; messageSize <- messageSizes ) {
+  for ( load <- partitionedLoad ; messageSize <- List(20,1024)  ) {
 
     val totalMessages = 100000
     val numMessages = totalMessages / load

Added: 
activemq/activemq-apollo/trunk/apollo-broker/src/test/scala/org/apache/activemq/apollo/broker/perf/PersistentScenario.scala
URL: 
http://svn.apache.org/viewvc/activemq/activemq-apollo/trunk/apollo-broker/src/test/scala/org/apache/activemq/apollo/broker/perf/PersistentScenario.scala?rev=1002773&view=auto
==============================================================================
--- 
activemq/activemq-apollo/trunk/apollo-broker/src/test/scala/org/apache/activemq/apollo/broker/perf/PersistentScenario.scala
 (added)
+++ 
activemq/activemq-apollo/trunk/apollo-broker/src/test/scala/org/apache/activemq/apollo/broker/perf/PersistentScenario.scala
 Wed Sep 29 17:35:22 2010
@@ -0,0 +1,29 @@
+/**
+ * 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.
+ */
+package org.apache.activemq.apollo.broker.perf
+
+/**
+ * <p>
+ * </p>
+ *
+ * @author <a href="http://hiramchirino.com";>Hiram Chirino</a>
+ */
+trait PersistentScenario extends BrokerPerfSupport {
+
+  PERSISTENT = true
+
+}
\ No newline at end of file

Modified: 
activemq/activemq-apollo/trunk/apollo-stomp/src/test/scala/org/apache/activemq/apollo/stomp/perf/StompBrokerPerfTest.scala
URL: 
http://svn.apache.org/viewvc/activemq/activemq-apollo/trunk/apollo-stomp/src/test/scala/org/apache/activemq/apollo/stomp/perf/StompBrokerPerfTest.scala?rev=1002773&r1=1002772&r2=1002773&view=diff
==============================================================================
--- 
activemq/activemq-apollo/trunk/apollo-stomp/src/test/scala/org/apache/activemq/apollo/stomp/perf/StompBrokerPerfTest.scala
 (original)
+++ 
activemq/activemq-apollo/trunk/apollo-stomp/src/test/scala/org/apache/activemq/apollo/stomp/perf/StompBrokerPerfTest.scala
 Wed Sep 29 17:35:22 2010
@@ -34,66 +34,38 @@ import org.apache.activemq.apollo.dto.{B
 import org.apache.activemq.apollo.store.bdb.dto.BDBStoreDTO
 
 
-class StompBrokerPerfTest extends BaseBrokerPerfSupport {
-
+class BasicNonPersistentTest extends BasicScenarios with StompScenario {
   override def description = "Using the STOMP protocol over TCP"
-
-  override def createProducer() = new StompRemoteProducer()
-
-  override def createConsumer() = new StompRemoteConsumer()
-
-  override def getRemoteProtocolName() = "stomp"
-
 }
 
-class StompPersistentBrokerPerfTest extends BasePersistentBrokerPerfSupport {
-
-  override def description = "Using the STOMP protocol over TCP with no store."
-
-  override def createProducer() = new StompRemoteProducer()
-
-  override def createConsumer() = new StompRemoteConsumer()
-
-  override def getRemoteProtocolName() = "stomp"
-
+class BasicHawtDBTest extends BasicScenarios with PersistentScenario with 
HawtDBScenario with StompScenario {
+  override def description = "Using the STOMP protocol over TCP"
 }
 
-class StompHawtDBPersistentBrokerPerfTest extends 
BasePersistentBrokerPerfSupport {
-  
+class DeepQueueHawtDBTest extends DeepQueueScenarios with HawtDBScenario with 
StompScenario {
   override def description = "Using the STOMP protocol over TCP persisting to 
the HawtDB store."
+}
 
-  println(getClass.getClassLoader.getResource("log4j.properties"))
+class DeepQueueBDBTest extends DeepQueueScenarios with BDBScenario with 
StompScenario {
+  override def description = "Using the STOMP protocol over TCP persisting to 
the BerkleyDB store."
+}
 
+trait StompScenario extends BrokerPerfSupport {
   override def createProducer() = new StompRemoteProducer()
-
   override def createConsumer() = new StompRemoteConsumer()
- 
   override def getRemoteProtocolName() = "stomp"
+}
 
+trait HawtDBScenario extends BrokerPerfSupport {
   override def createBrokerConfig(name: String, bindURI: String, connectUri: 
String): BrokerDTO = {
     val rc = super.createBrokerConfig(name, bindURI, connectUri)
-
     val store = new HawtDBStoreDTO
     store.directory = new File(new File(testDataDir, getClass.getName), name)
-
     rc.virtual_hosts.get(0).store = store
     rc
   }
-
 }
-
-class StompBDBPersistentBrokerPerfTest extends BasePersistentBrokerPerfSupport 
{
-
-  override def description = "Using the STOMP protocol over TCP persisting to 
the BerkleyDB store."
-
-  println(getClass.getClassLoader.getResource("log4j.properties"))
-
-  override def createProducer() = new StompRemoteProducer()
-
-  override def createConsumer() = new StompRemoteConsumer()
-
-  override def getRemoteProtocolName() = "stomp"
-
+trait BDBScenario extends BrokerPerfSupport {
   override def createBrokerConfig(name: String, bindURI: String, connectUri: 
String): BrokerDTO = {
     val rc = super.createBrokerConfig(name, bindURI, connectUri)
 
@@ -103,10 +75,8 @@ class StompBDBPersistentBrokerPerfTest e
     rc.virtual_hosts.get(0).store = store
     rc
   }
-
 }
 
-
 class StompRemoteConsumer extends RemoteConsumer with Logging {
   var outboundSink: OverflowSink[StompFrame] = null
 


Reply via email to