You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ch...@apache.org on 2010/07/07 06:20:55 UTC

svn commit: r961209 [1/2] - in /activemq/sandbox/activemq-apollo-actor: activemq-broker/src/main/scala/org/apache/activemq/apollo/broker/ activemq-broker/src/test/scala/org/apache/activemq/apollo/broker/jaxb/ activemq-broker/src/test/scala/org/apache/a...

Author: chirino
Date: Wed Jul  7 04:20:53 2010
New Revision: 961209

URL: http://svn.apache.org/viewvc?rev=961209&view=rev
Log:
- changed the DTOs to use lower case + under scores for the feilds.
- html view now does a better rendering of memory based fields and time fields.

Added:
    activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/HawtDBStoreStatusDTO.java
      - copied, changed from r961208, activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/IdListDTO.java
    activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/IntMetricDTO.java
      - copied, changed from r961208, activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/EntryStatusDTO.java
    activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/StoreStatusDTO.java
    activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/TimeMetricDTO.java
      - copied, changed from r961208, activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/EntryStatusDTO.java
    activemq/sandbox/activemq-apollo-actor/activemq-util/src/main/scala/org/apache/activemq/apollo/util/JavaBaseService.java
      - copied, changed from r961208, activemq/sandbox/activemq-apollo-actor/activemq-util/src/main/scala/org/apache/activemq/apollo/util/BaseService.java
    activemq/sandbox/activemq-apollo-actor/activemq-web/src/main/webapp/WEB-INF/org/apache/activemq/apollo/dto/HawtDBStoreStatusDTO.scaml
Removed:
    activemq/sandbox/activemq-apollo-actor/activemq-util/src/main/scala/org/apache/activemq/apollo/util/BaseService.java
Modified:
    activemq/sandbox/activemq-apollo-actor/activemq-broker/src/main/scala/org/apache/activemq/apollo/broker/Broker.scala
    activemq/sandbox/activemq-apollo-actor/activemq-broker/src/main/scala/org/apache/activemq/apollo/broker/VirtualHost.scala
    activemq/sandbox/activemq-apollo-actor/activemq-broker/src/test/scala/org/apache/activemq/apollo/broker/jaxb/XMLBrokerFactoryTest.scala
    activemq/sandbox/activemq-apollo-actor/activemq-broker/src/test/scala/org/apache/activemq/apollo/broker/perf/BrokerPerfSupport.scala
    activemq/sandbox/activemq-apollo-actor/activemq-cassandra/src/main/scala/org/apache/activemq/broker/store/cassandra/CassandraStore.scala
    activemq/sandbox/activemq-apollo-actor/activemq-cassandra/src/test/scala/org/apache/activemq/broker/store/cassandra/CassandraStoreTest.scala
    activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/BrokerDTO.java
    activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/BrokerStatusDTO.java
    activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/ConnectionStatusDTO.java
    activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/ConnectorStatusDTO.java
    activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/DestinationStatusDTO.java
    activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/DestinationSummaryDTO.java
    activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/EntryStatusDTO.java
    activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/HawtDBStoreDTO.java
    activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/IdListDTO.java
    activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/LongIdDTO.java
    activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/QueueStatusDTO.java
    activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/ServiceDTO.java
    activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/ServiceStatusDTO.java
    activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/StoreDTO.java
    activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/StringIdDTO.java
    activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/VirtualHostDTO.java
    activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/VirtualHostStatusDTO.java
    activemq/sandbox/activemq-apollo-actor/activemq-dto/src/test/java/org/apache/activemq/apollo/dto/XmlEncoderDecoderTest.java
    activemq/sandbox/activemq-apollo-actor/activemq-hawtdb/src/main/scala/org/apache/activemq/broker/store/hawtdb/HawtDBClient.scala
    activemq/sandbox/activemq-apollo-actor/activemq-hawtdb/src/main/scala/org/apache/activemq/broker/store/hawtdb/HawtDBStore.scala
    activemq/sandbox/activemq-apollo-actor/activemq-hawtdb/src/test/scala/org/apache/activemq/broker/store/hawtdb/HawtDBStoreBenchmark.scala
    activemq/sandbox/activemq-apollo-actor/activemq-hawtdb/src/test/scala/org/apache/activemq/broker/store/hawtdb/HawtDBStoreTest.scala
    activemq/sandbox/activemq-apollo-actor/activemq-stomp/src/main/scala/org/apache/activemq/apollo/stomp/StompBroker.scala
    activemq/sandbox/activemq-apollo-actor/activemq-stomp/src/test/scala/org/apache/activemq/apollo/stomp/perf/StompBrokerPerfTest.scala
    activemq/sandbox/activemq-apollo-actor/activemq-store/src/main/scala/org/apache/activemq/apollo/store/Store.scala
    activemq/sandbox/activemq-apollo-actor/activemq-tcp/src/main/java/org/apache/activemq/transport/tcp/TcpTransport.java
    activemq/sandbox/activemq-apollo-actor/activemq-util/src/main/scala/org/apache/activemq/apollo/util/TimeCounter.scala
    activemq/sandbox/activemq-apollo-actor/activemq-web/src/main/scala/org/apache/activemq/apollo/web/resources/RootResource.scala
    activemq/sandbox/activemq-apollo-actor/activemq-web/src/main/scala/org/apache/activemq/apollo/web/resources/RuntimeResource.scala
    activemq/sandbox/activemq-apollo-actor/activemq-web/src/main/webapp/WEB-INF/org/apache/activemq/apollo/dto/BrokerStatusDTO.scaml
    activemq/sandbox/activemq-apollo-actor/activemq-web/src/main/webapp/WEB-INF/org/apache/activemq/apollo/dto/ConnectionStatusDTO.scaml
    activemq/sandbox/activemq-apollo-actor/activemq-web/src/main/webapp/WEB-INF/org/apache/activemq/apollo/dto/ConnectorStatusDTO.scaml
    activemq/sandbox/activemq-apollo-actor/activemq-web/src/main/webapp/WEB-INF/org/apache/activemq/apollo/dto/QueueStatusDTO.scaml
    activemq/sandbox/activemq-apollo-actor/activemq-web/src/main/webapp/WEB-INF/org/apache/activemq/apollo/dto/VirtualHostStatusDTO.scaml
    activemq/sandbox/activemq-apollo-actor/activemq-web/src/main/webapp/WEB-INF/org/apache/activemq/apollo/web/resources/RootResource.index.scaml

Modified: activemq/sandbox/activemq-apollo-actor/activemq-broker/src/main/scala/org/apache/activemq/apollo/broker/Broker.scala
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-broker/src/main/scala/org/apache/activemq/apollo/broker/Broker.scala?rev=961209&r1=961208&r2=961209&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-broker/src/main/scala/org/apache/activemq/apollo/broker/Broker.scala (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-broker/src/main/scala/org/apache/activemq/apollo/broker/Broker.scala Wed Jul  7 04:20:53 2010
@@ -126,7 +126,7 @@ object Broker extends Log {
     rc.id = "default"
     rc.enabled = true
     rc.notes = "A default configuration"
-    rc.virtualHosts.add(VirtualHost.defaultConfig)
+    rc.virtual_hosts.add(VirtualHost.defaultConfig)
     rc.connectors.add(Connector.defaultConfig)
     rc.basedir = "./activemq-data/default"
     rc
@@ -140,14 +140,14 @@ object Broker extends Log {
       if( empty(config.id) ) {
         error("Broker id must be specified.")
       }
-      if( config.virtualHosts.isEmpty ) {
+      if( config.virtual_hosts.isEmpty ) {
         error("Broker must define at least one virtual host.")
       }
       if( empty(config.basedir) ) {
         error("Broker basedir must be defined.")
       }
 
-      for (host <- config.virtualHosts ) {
+      for (host <- config.virtual_hosts ) {
         result |= VirtualHost.validate(host, reporter)
       }
       for (connector <- config.connectors ) {
@@ -214,7 +214,7 @@ class Broker() extends BaseService with 
     {
       dataDirectory = new File(config.basedir)
       defaultVirtualHost = null
-      for (c <- config.virtualHosts) {
+      for (c <- config.virtual_hosts) {
         val host = new VirtualHost(this, virtual_host_id_counter.incrementAndGet)
         host.configure(c, this)
         virtualHosts += ascii(c.id)-> host

Modified: activemq/sandbox/activemq-apollo-actor/activemq-broker/src/main/scala/org/apache/activemq/apollo/broker/VirtualHost.scala
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-broker/src/main/scala/org/apache/activemq/apollo/broker/VirtualHost.scala?rev=961209&r1=961208&r2=961209&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-broker/src/main/scala/org/apache/activemq/apollo/broker/VirtualHost.scala (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-broker/src/main/scala/org/apache/activemq/apollo/broker/VirtualHost.scala Wed Jul  7 04:20:53 2010
@@ -54,7 +54,7 @@ object VirtualHost extends Log {
     val rc = new VirtualHostDTO
     rc.id = "default"
     rc.enabled = true
-    rc.hostNames.add("localhost")
+    rc.host_names.add("localhost")
 
 //    val store = new CassandraStoreDTO
 //    store.hosts.add("localhost:9160")
@@ -72,7 +72,7 @@ object VirtualHost extends Log {
   def validate(config: VirtualHostDTO, reporter:Reporter):ReporterLevel = {
      new Reporting(reporter) {
 
-      if( config.hostNames.isEmpty ) {
+      if( config.host_names.isEmpty ) {
         error("Virtual host must be configured with at least one host name.")
       }
 
@@ -145,7 +145,7 @@ class VirtualHost(val broker: Broker, va
           getKeyDone.run
         }
 
-        if( config.purgeOnStartup ) {
+        if( config.purge_on_startup ) {
           storeStartupDone.name = "store purge"
           store.purge {
             storeStartupDone.run
@@ -221,7 +221,7 @@ class VirtualHost(val broker: Broker, va
       cb(null)
     } else {
       var queue = queues.get(destination.getName);
-      if( queue==null && config.autoCreateQueues ) {
+      if( queue==null && config.auto_create_queues ) {
         addQueue(destination)(cb)
       } else  {
         cb(queue)

Modified: activemq/sandbox/activemq-apollo-actor/activemq-broker/src/test/scala/org/apache/activemq/apollo/broker/jaxb/XMLBrokerFactoryTest.scala
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-broker/src/test/scala/org/apache/activemq/apollo/broker/jaxb/XMLBrokerFactoryTest.scala?rev=961209&r1=961208&r2=961209&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-broker/src/test/scala/org/apache/activemq/apollo/broker/jaxb/XMLBrokerFactoryTest.scala (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-broker/src/test/scala/org/apache/activemq/apollo/broker/jaxb/XMLBrokerFactoryTest.scala Wed Jul  7 04:20:53 2010
@@ -47,7 +47,7 @@ class XMLBrokerFactoryTest extends FunSu
     }
 
     expect(2) {
-      broker.config.virtualHosts.size()
+      broker.config.virtual_hosts.size()
     }
 
     //		Assert.assertNotNull(broker.defaultVirtualHost().getDatabase())

Modified: activemq/sandbox/activemq-apollo-actor/activemq-broker/src/test/scala/org/apache/activemq/apollo/broker/perf/BrokerPerfSupport.scala
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-broker/src/test/scala/org/apache/activemq/apollo/broker/perf/BrokerPerfSupport.scala?rev=961209&r1=961208&r2=961209&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-broker/src/test/scala/org/apache/activemq/apollo/broker/perf/BrokerPerfSupport.scala (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-broker/src/test/scala/org/apache/activemq/apollo/broker/perf/BrokerPerfSupport.scala Wed Jul  7 04:20:53 2010
@@ -199,8 +199,8 @@ abstract class BrokerPerfSupport extends
     connector.advertise = connectUri
     connector.protocol = getBrokerWireFormat
 
-    val host = config.virtualHosts.get(0)
-    host.purgeOnStartup = true
+    val host = config.virtual_hosts.get(0)
+    host.purge_on_startup = true
     config
   }
 

Modified: activemq/sandbox/activemq-apollo-actor/activemq-cassandra/src/main/scala/org/apache/activemq/broker/store/cassandra/CassandraStore.scala
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-cassandra/src/main/scala/org/apache/activemq/broker/store/cassandra/CassandraStore.scala?rev=961209&r1=961208&r2=961209&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-cassandra/src/main/scala/org/apache/activemq/broker/store/cassandra/CassandraStore.scala (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-cassandra/src/main/scala/org/apache/activemq/broker/store/cassandra/CassandraStore.scala Wed Jul  7 04:20:53 2010
@@ -23,7 +23,6 @@ import java.util.concurrent.atomic.Atomi
 import collection.mutable.ListBuffer
 import java.util.HashMap
 import org.apache.activemq.apollo.broker.{Logging, Log, BaseService}
-import org.apache.activemq.apollo.dto.{CassandraStoreDTO, StoreDTO}
 import collection.{JavaConversions, Seq}
 import org.apache.activemq.apollo.broker.{Reporting, ReporterLevel, Reporter}
 import com.shorrockin.cascal.utils.Conversions._
@@ -32,6 +31,7 @@ import ReporterLevel._
 import java.util.concurrent._
 import org.apache.activemq.apollo.util.{TimeCounter, IntCounter}
 import org.apache.activemq.apollo.store._
+import org.apache.activemq.apollo.dto.{StoreStatusDTO, CassandraStoreDTO, StoreDTO}
 
 object CassandraStore extends Log {
 
@@ -80,7 +80,12 @@ class CassandraStore extends Store with 
   def configure(config: StoreDTO, reporter: Reporter) = configure(config.asInstanceOf[CassandraStoreDTO], reporter)
 
 
-  def storeType = "cassandra"
+  def storeStatusDTO(callback:(StoreStatusDTO)=>Unit) = dispatchQueue {
+    val rc = new StoreStatusDTO
+    rc.state = serviceState.toString
+    rc.state_since = serviceState.since
+    callback(rc)
+  }
 
   def configure(config: CassandraStoreDTO, reporter: Reporter) = {
     if ( CassandraStore.validate(config, reporter) < ERROR ) {
@@ -380,10 +385,10 @@ class CassandraStore extends Store with 
         }
       }
 
-      if( !uow.completeListeners.isEmpty || config.flushDelay <= 0 ) {
+      if( !uow.completeListeners.isEmpty || config.flush_delay <= 0 ) {
         flush(uow_id)
       } else {
-        dispatchQueue.dispatchAfter(config.flushDelay, TimeUnit.MILLISECONDS, ^{flush(uow_id)})
+        dispatchQueue.dispatchAfter(config.flush_delay, TimeUnit.MILLISECONDS, ^{flush(uow_id)})
       }
 
     }

Modified: activemq/sandbox/activemq-apollo-actor/activemq-cassandra/src/test/scala/org/apache/activemq/broker/store/cassandra/CassandraStoreTest.scala
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-cassandra/src/test/scala/org/apache/activemq/broker/store/cassandra/CassandraStoreTest.scala?rev=961209&r1=961208&r2=961209&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-cassandra/src/test/scala/org/apache/activemq/broker/store/cassandra/CassandraStoreTest.scala (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-cassandra/src/test/scala/org/apache/activemq/broker/store/cassandra/CassandraStoreTest.scala Wed Jul  7 04:20:53 2010
@@ -25,7 +25,7 @@ class CassandraStoreTest extends StoreFu
 
   def createStore(flushDelay:Long):Store = {
     val rc = new CassandraStore
-    rc.config.flushDelay = flushDelay
+    rc.config.flush_delay = flushDelay
     rc
   }
 

Modified: activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/BrokerDTO.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/BrokerDTO.java?rev=961209&r1=961208&r2=961209&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/BrokerDTO.java (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/BrokerDTO.java Wed Jul  7 04:20:53 2010
@@ -44,9 +44,8 @@ public class BrokerDTO extends ServiceDT
     /**
      * Used to track who last modified the configuration.
      */
-    @JsonProperty("modified_by")
     @XmlAttribute(name="modified-by")
-    public String modifiedBy;
+    public String modified_by;
 
     /**
      * Used to store any configuration notes.
@@ -58,9 +57,8 @@ public class BrokerDTO extends ServiceDT
     /**
      * A broker can service many virtual hosts.
      */
-    @JsonProperty("virtual_hosts")
     @XmlElement(name="virtual-host")
-    public List<VirtualHostDTO> virtualHosts = new ArrayList<VirtualHostDTO>();
+    public List<VirtualHostDTO> virtual_hosts = new ArrayList<VirtualHostDTO>();
 
     /**
      * A broker accepts connections via it's configured connectors.

Modified: activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/BrokerStatusDTO.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/BrokerStatusDTO.java?rev=961209&r1=961208&r2=961209&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/BrokerStatusDTO.java (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/BrokerStatusDTO.java Wed Jul  7 04:20:53 2010
@@ -36,28 +36,24 @@ public class
     /**
      * The current time on the broker machine.  In milliseconds since the epoch.
      */
-    @JsonProperty("current_time")
 	@XmlAttribute(name="current-time")
-	public long currentTime;
+	public long current_time;
 
     /**
      * Ids of all the virtual hosts running on the broker
      */
-    @JsonProperty("virtual_hosts")
     @XmlElement(name="virtual-host")
-    public List<Long> virtualHosts = new ArrayList<Long>();
+    public List<Long> virtual_hosts = new ArrayList<Long>();
 
     /**
      * Ids of all the connectors running on the broker
      */
-    @JsonProperty("connectors")
     @XmlElement(name="connector")
     public List<Long> connectors = new ArrayList<Long>();
 
     /**
      * Ids of all the connections running on the broker
      */
-    @JsonProperty("connections")
     @XmlElement(name="connection")
     public List<Long> connections = new ArrayList<Long>();
 

Modified: activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/ConnectionStatusDTO.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/ConnectionStatusDTO.java?rev=961209&r1=961208&r2=961209&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/ConnectionStatusDTO.java (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/ConnectionStatusDTO.java Wed Jul  7 04:20:53 2010
@@ -36,16 +36,14 @@ public class ConnectionStatusDTO extends
     /**
      * The number of bytes that have been read from the connection.
      */
-    @JsonProperty("read_counter")
 	@XmlAttribute(name="read-counter")
-	public Long readCounter;
+	public long read_counter;
 
     /**
      * The number of bytes that have been written to the connection.
      */
-    @JsonProperty("write_counter")
 	@XmlAttribute(name="write-counter")
-	public Long writeCounter;
+	public long write_counter;
 
     /**
      * The protocol the connection is using.
@@ -64,9 +62,8 @@ public class ConnectionStatusDTO extends
     /**
      * The remote address of the connection
      */
-    @JsonProperty("remote_address")
 	@XmlAttribute(name="remote-address")
-	public String remoteAddress;
+	public String remote_address;
 
     /**
      * The connected user

Modified: activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/ConnectorStatusDTO.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/ConnectorStatusDTO.java?rev=961209&r1=961208&r2=961209&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/ConnectorStatusDTO.java (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/ConnectorStatusDTO.java Wed Jul  7 04:20:53 2010
@@ -35,14 +35,12 @@ public class ConnectorStatusDTO extends 
     /**
      * The number of connections that this connector has accepted.
      */
-    @JsonProperty
-	@XmlAttribute
-	public Long accepted;
+    @XmlAttribute
+    public long accepted;
 
     /**
      * Ids of all open connections that the connector is managing.
      */
-    @JsonProperty("connections")
     @XmlElement(name="connection")
     public List<Long> connections = new ArrayList<Long>();
 

Modified: activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/DestinationStatusDTO.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/DestinationStatusDTO.java?rev=961209&r1=961208&r2=961209&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/DestinationStatusDTO.java (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/DestinationStatusDTO.java Wed Jul  7 04:20:53 2010
@@ -38,21 +38,18 @@ public class DestinationStatusDTO extend
     /**
      * Ids of all connections that are producing to the destination
      */
-    @JsonProperty("producers")
     @XmlElement(name="producer")
     public List<Long> producers = new ArrayList<Long>();
 
     /**
      * Ids of all connections that are consuming from the destination
      */
-    @JsonProperty("consumers")
     @XmlElement(name="consumer")
     public List<Long> consumers = new ArrayList<Long>();
 
     /**
      * Ids of all queues that are associated with the destination
      */
-    @JsonProperty("queues")
     @XmlElement(name="queue")
     public List<Long> queues = new ArrayList<Long>();
 }
\ No newline at end of file

Modified: activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/DestinationSummaryDTO.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/DestinationSummaryDTO.java?rev=961209&r1=961208&r2=961209&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/DestinationSummaryDTO.java (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/DestinationSummaryDTO.java Wed Jul  7 04:20:53 2010
@@ -33,15 +33,13 @@ public class DestinationSummaryDTO exten
     /**
      * The destination name
      */
-    @JsonProperty
-    @XmlElement
+    @XmlAttribute
     public String name;
 
     /**
      * The routing domain
      */
-    @JsonProperty
-    @XmlElement
+    @XmlAttribute
     public String domain;
     
 }
\ No newline at end of file

Modified: activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/EntryStatusDTO.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/EntryStatusDTO.java?rev=961209&r1=961208&r2=961209&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/EntryStatusDTO.java (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/EntryStatusDTO.java Wed Jul  7 04:20:53 2010
@@ -36,28 +36,22 @@ public class EntryStatusDTO {
     /**
      * A unique id of the object within it's container
      */
-    @JsonProperty
 	@XmlAttribute
 	public long seq;
 
-    @JsonProperty
     @XmlAttribute
     public int count;
 
-    @JsonProperty
     @XmlAttribute
     public int size;
 
-    @JsonProperty
     @XmlAttribute
     public String state;
 
-    @JsonProperty("consumer_count")
     @XmlAttribute(name = "consumer-count")
-    public int consumerCount;
+    public int consumer_count;
 
-    @JsonProperty("prefetch_count")
     @XmlAttribute(name = "prefetch-count")
-    public int prefetchCount;
+    public int prefetch_count;
 
 }
\ No newline at end of file

Modified: activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/HawtDBStoreDTO.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/HawtDBStoreDTO.java?rev=961209&r1=961208&r2=961209&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/HawtDBStoreDTO.java (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/HawtDBStoreDTO.java Wed Jul  7 04:20:53 2010
@@ -31,41 +31,32 @@ import java.io.File;
 @XmlAccessorType(XmlAccessType.FIELD)
 public class HawtDBStoreDTO extends StoreDTO {
 
-    @JsonProperty
     @XmlAttribute
     public File directory;
 
-    @JsonProperty("archive_directory")
     @XmlAttribute(name="archive-directory")
-    public File archiveDirectory;
+    public File archive_directory;
 
-    @JsonProperty("index_flush_interval")
 	@XmlAttribute(name="index-flush-interval")
-	public long indexFlushInterval = 5 * 1000L;
+	public long index_flush_interval = 5 * 1000L;
 
-    @JsonProperty("cleanup_interval")
 	@XmlAttribute(name="cleanup-interval")
-	public long cleanupInterval = 30 * 1000L;
+	public long cleanup_interval = 30 * 1000L;
 
-    @JsonProperty("journal_log_size")
 	@XmlAttribute(name="journal-log-size")
-	public int journalLogSize = 1024*1024*64;
+	public int journal_log_size = 1024*1024*64;
 
-    @JsonProperty("journal_batch_size")
     @XmlAttribute(name="journal-batch-size")
-    public int journalBatchSize = 1024*256;
+    public int journal_batch_size = 1024*256;
 
-    @JsonProperty("index_cache_size")
     @XmlAttribute(name="index-cache-size")
-    public int indexCacheSize = 5000;
+    public int index_cache_size = 5000;
 
-    @JsonProperty("index_page_size")
     @XmlAttribute(name="index-page-size")
-    public short indexPageSize = 512;
+    public short index_page_size = 512;
 
-    @JsonProperty("fail_if_locked")
     @XmlAttribute(name="fail-if-locked")
-    public boolean failIfLocked = false;
+    public boolean fail_if_locked = false;
 
 
 }

Copied: activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/HawtDBStoreStatusDTO.java (from r961208, activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/IdListDTO.java)
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/HawtDBStoreStatusDTO.java?p2=activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/HawtDBStoreStatusDTO.java&p1=activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/IdListDTO.java&r1=961208&r2=961209&rev=961209&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/IdListDTO.java (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/HawtDBStoreStatusDTO.java Wed Jul  7 04:20:53 2010
@@ -16,27 +16,25 @@
  */
 package org.apache.activemq.apollo.dto;
 
-import org.codehaus.jackson.annotate.JsonProperty;
-
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlRootElement;
-import java.util.ArrayList;
-import java.util.List;
 
 /**
  * @author <a href="http://hiramchirino.com">Hiram Chirino</a>
  */
-@XmlRootElement(name="id-list")
+@XmlRootElement(name="hawtdb-store-status")
 @XmlAccessorType(XmlAccessType.FIELD)
-public class IdListDTO {
+public class HawtDBStoreStatusDTO extends StoreStatusDTO {
+
+    @XmlElement(name="journal-append-latency")
+    public TimeMetricDTO journal_append_latency;
+
+    @XmlElement(name="index-update-latency")
+    public TimeMetricDTO index_update_latency;
 
-    /**
-     * A list of ids.
-     */
-    @JsonProperty("ids")
-    @XmlElement
-    public List<String> ids = new ArrayList<String>();
+    @XmlElement(name="message-load-batch-size")
+    public IntMetricDTO message_load_batch_size;
 
 }
\ No newline at end of file

Modified: activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/IdListDTO.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/IdListDTO.java?rev=961209&r1=961208&r2=961209&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/IdListDTO.java (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/IdListDTO.java Wed Jul  7 04:20:53 2010
@@ -35,8 +35,7 @@ public class IdListDTO {
     /**
      * A list of ids.
      */
-    @JsonProperty("ids")
-    @XmlElement
+    @XmlElement(name="id")
     public List<String> ids = new ArrayList<String>();
 
 }
\ No newline at end of file

Copied: activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/IntMetricDTO.java (from r961208, activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/EntryStatusDTO.java)
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/IntMetricDTO.java?p2=activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/IntMetricDTO.java&p1=activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/EntryStatusDTO.java&r1=961208&r2=961209&rev=961209&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/EntryStatusDTO.java (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/IntMetricDTO.java Wed Jul  7 04:20:53 2010
@@ -22,42 +22,46 @@ import javax.xml.bind.annotation.XmlAcce
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlRootElement;
+import java.util.concurrent.TimeUnit;
 
 /**
- * <p>
- * </p>
+ *
+ *
  *
  * @author <a href="http://hiramchirino.com">Hiram Chirino</a>
  */
-@XmlRootElement(name="entry-status")
+@XmlRootElement(name = "int-metric")
 @XmlAccessorType(XmlAccessType.FIELD)
-public class EntryStatusDTO {
+public class IntMetricDTO {
 
     /**
-     * A unique id of the object within it's container
+     * The number of events
      */
-    @JsonProperty
-	@XmlAttribute
-	public long seq;
-
-    @JsonProperty
     @XmlAttribute
     public int count;
 
-    @JsonProperty
+    /**
+     * The total amount added
+     */
     @XmlAttribute
-    public int size;
+    public int total;
 
-    @JsonProperty
+    /**
+     * The maximum amount added in an event
+     */
     @XmlAttribute
-    public String state;
+    public int max;
+
+    /**
+     * The minimum amount added in an event
+     */
+    @XmlAttribute
+    public int min;
+
+
+    public float avg() {
+        return count==0 ? 0f : ((float)total) / count;
+    }
 
-    @JsonProperty("consumer_count")
-    @XmlAttribute(name = "consumer-count")
-    public int consumerCount;
-
-    @JsonProperty("prefetch_count")
-    @XmlAttribute(name = "prefetch-count")
-    public int prefetchCount;
 
 }
\ No newline at end of file

Modified: activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/LongIdDTO.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/LongIdDTO.java?rev=961209&r1=961208&r2=961209&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/LongIdDTO.java (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/LongIdDTO.java Wed Jul  7 04:20:53 2010
@@ -33,7 +33,6 @@ public class LongIdDTO {
     /**
      * A unique id of the object within it's container
      */
-    @JsonProperty
 	@XmlAttribute
 	public long id;
 

Modified: activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/QueueStatusDTO.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/QueueStatusDTO.java?rev=961209&r1=961208&r2=961209&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/QueueStatusDTO.java (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/QueueStatusDTO.java Wed Jul  7 04:20:53 2010
@@ -35,66 +35,51 @@ public class QueueStatusDTO extends Long
     /**
      * A unique id of the object within it's container
      */
-    @JsonProperty
 	@XmlAttribute
 	public long id;
 
-    @JsonProperty("enqueue_item_counter")
     @XmlAttribute(name="enqueue-item-counter")
-    public long enqueueItemCounter;
+    public long enqueue_item_counter;
 
-    @JsonProperty("dequeue_item_counter")
     @XmlAttribute(name="dequeue-item-counter")
-    public long dequeueItemCounter;
+    public long dequeue_item_counter;
 
-    @JsonProperty("enqueue_size_counter")
     @XmlAttribute(name="enqueue-size-counter")
-    public long enqueueSizeCounter;
+    public long enqueue_size_counter;
 
-    @JsonProperty("dequeue_size_counter")
     @XmlAttribute(name="dequeue-size-counter")
-    public long dequeueSizeCounter;
+    public long dequeue_size_counter;
 
-    @JsonProperty("nack_item_counter")
     @XmlAttribute(name="nack-item-counter")
-    public long nackItemCounter;
+    public long nack_item_counter;
 
-    @JsonProperty("nack_size_counter")
     @XmlAttribute(name="nack-size-counter")
-    public long nackSizeCounter;
+    public long nack_size_counter;
 
-    @JsonProperty("queue_size")
     @XmlAttribute(name="queue-size")
-    public long queueSize;
+    public long queue_size;
 
-    @JsonProperty("queue_items")
     @XmlAttribute(name="queue-items")
-    public long queueItems;
+    public long queue_items;
 
-    @JsonProperty("loading_size")
     @XmlAttribute(name="loading-size")
-    public int loadingSize;
+    public int loading_size;
 
-    @JsonProperty("flushing_size")
     @XmlAttribute(name="flushing-size")
-    public int flushingSize;
+    public int flushing_size;
 
-    @JsonProperty("flushing_items")
     @XmlAttribute(name="flushed-items")
-    public int flushedItems;
+    public int flushed_items;
 
-    @JsonProperty("capacity_used")
     @XmlAttribute(name="capacity-used")
-    public int capacityUsed;
+    public int capacity_used;
 
-    @JsonProperty
     @XmlAttribute
     public int capacity;
 
     /**
      * Status of the entries in the queue
      */
-    @JsonProperty("entries")
     @XmlElement(name="entry")
     public List<EntryStatusDTO> entries = new ArrayList<EntryStatusDTO>();
 

Modified: activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/ServiceDTO.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/ServiceDTO.java?rev=961209&r1=961208&r2=961209&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/ServiceDTO.java (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/ServiceDTO.java Wed Jul  7 04:20:53 2010
@@ -33,7 +33,6 @@ public class ServiceDTO<ID> extends Stri
     /**
      * Should this service be running?
      */
-    @JsonProperty
     @XmlAttribute
     public boolean enabled = true;
 

Modified: activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/ServiceStatusDTO.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/ServiceStatusDTO.java?rev=961209&r1=961208&r2=961209&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/ServiceStatusDTO.java (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/ServiceStatusDTO.java Wed Jul  7 04:20:53 2010
@@ -16,8 +16,6 @@
  */
 package org.apache.activemq.apollo.dto;
 
-import org.codehaus.jackson.annotate.JsonProperty;
-
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlAttribute;
@@ -32,16 +30,15 @@ public class ServiceStatusDTO extends Lo
 
     /**
      * The state of the service.
+	 * @XmlAttribute
      */
-    @JsonProperty
-	@XmlAttribute
+    @XmlAttribute
 	public String state;
 
     /**
      * Since when has the broker in in this state?  In milliseconds since the epoch. 
      */
-    @JsonProperty("state_since")
 	@XmlAttribute(name="state-since")
-	public long stateSince;
+	public long state_since;
 
 }
\ No newline at end of file

Modified: activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/StoreDTO.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/StoreDTO.java?rev=961209&r1=961208&r2=961209&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/StoreDTO.java (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/StoreDTO.java Wed Jul  7 04:20:53 2010
@@ -38,9 +38,8 @@ public abstract class StoreDTO {
      * be invalidated shortly thereafter by another unit of work which
      * would negate the operation.
      */
-    @JsonProperty("flush_delay")
     @XmlAttribute(name="flush-delay", required=false)
-    public long flushDelay = 100;
+    public long flush_delay = 100;
 
 
 }

Added: activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/StoreStatusDTO.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/StoreStatusDTO.java?rev=961209&view=auto
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/StoreStatusDTO.java (added)
+++ activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/StoreStatusDTO.java Wed Jul  7 04:20:53 2010
@@ -0,0 +1,83 @@
+/**
+ * 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.dto;
+
+import org.codehaus.jackson.annotate.JsonProperty;
+import org.codehaus.jackson.annotate.JsonTypeInfo;
+
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSeeAlso;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * @author <a href="http://hiramchirino.com">Hiram Chirino</a>
+ */
+@XmlType(name = "store-status-type")
+@XmlSeeAlso({HawtDBStoreStatusDTO.class})
+@JsonTypeInfo(use=JsonTypeInfo.Id.CLASS, include=JsonTypeInfo.As.PROPERTY, property="@class")
+public class StoreStatusDTO {
+
+    /**
+     * The state of the service.
+     */
+	@XmlAttribute
+	public String state;
+
+    /**
+     * Since when has the service been in in this state?  In milliseconds since the epoch. 
+     */
+	@XmlAttribute(name="state-since")
+	public long state_since;
+
+    /**
+     * The number of message stores that were canceled before they were flushed.
+     */
+    @XmlAttribute(name="canceled-message-counter")
+    public long canceled_message_counter;
+
+    /**
+     * The number of message stores that were flushed.
+     */
+    @XmlAttribute(name="flushed-message-counter")
+    public long flushed_message_counter;
+
+    /**
+     * The number of enqueues that were canceled before they were flushed.
+     */
+    @XmlAttribute(name="canceled-enqueue-counter")
+    public long canceled_enqueue_counter;
+
+    /**
+     * The number of enqueues that were flushed.
+     */
+    @XmlAttribute(name="flushed-enqueue-counter")
+    public long flushed_enqueue_counter;
+
+    /**
+     * The amount of time it takes to load a message from the store.
+     */
+    @XmlElement(name="message-load-latency")
+    public TimeMetricDTO message_load_latency;
+
+    /**
+     * The amount of time it takes to flush a unit of work to the store
+     */
+    @XmlElement(name="flush-latency")
+    public TimeMetricDTO flush_latency;
+
+}
\ No newline at end of file

Modified: activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/StringIdDTO.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/StringIdDTO.java?rev=961209&r1=961208&r2=961209&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/StringIdDTO.java (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/StringIdDTO.java Wed Jul  7 04:20:53 2010
@@ -32,7 +32,6 @@ public class StringIdDTO {
     /**
      * A unique id of the object within it's container
      */
-    @JsonProperty
 	@XmlAttribute
 	public String id;
 

Copied: activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/TimeMetricDTO.java (from r961208, activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/EntryStatusDTO.java)
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/TimeMetricDTO.java?p2=activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/TimeMetricDTO.java&p1=activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/EntryStatusDTO.java&r1=961208&r2=961209&rev=961209&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/EntryStatusDTO.java (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/TimeMetricDTO.java Wed Jul  7 04:20:53 2010
@@ -22,42 +22,59 @@ import javax.xml.bind.annotation.XmlAcce
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlRootElement;
+import java.util.concurrent.TimeUnit;
 
 /**
- * <p>
- * </p>
+ *
+ *
  *
  * @author <a href="http://hiramchirino.com">Hiram Chirino</a>
  */
-@XmlRootElement(name="entry-status")
+@XmlRootElement(name = "time-metric")
 @XmlAccessorType(XmlAccessType.FIELD)
-public class EntryStatusDTO {
+public class TimeMetricDTO {
 
     /**
-     * A unique id of the object within it's container
+     * The number of timed events
      */
-    @JsonProperty
-	@XmlAttribute
-	public long seq;
+    @XmlAttribute
+    public long count;
 
-    @JsonProperty
+    /**
+     * The total time in nanoseconds
+     */
     @XmlAttribute
-    public int count;
+    public long total;
 
-    @JsonProperty
+    /**
+     * The maximum time in nanoseconds spent in an event
+     */
     @XmlAttribute
-    public int size;
+    public long max;
 
-    @JsonProperty
+    /**
+     * The minimum time in nanoseconds spent in an event
+     */
     @XmlAttribute
-    public String state;
+    public long min;
 
-    @JsonProperty("consumer_count")
-    @XmlAttribute(name = "consumer-count")
-    public int consumerCount;
-
-    @JsonProperty("prefetch_count")
-    @XmlAttribute(name = "prefetch-count")
-    public int prefetchCount;
 
+    public float max(TimeUnit unit) {
+        return ((float)max) / unit.toNanos(1);
+    }
+    public float min(TimeUnit unit) {
+        return ((float)min) / unit.toNanos(1);
+    }
+    public float total(TimeUnit unit) {
+        return ((float)total) / unit.toNanos(1);
+    }
+
+    public float avg(TimeUnit unit) {
+        return count==0 ? 0f : total(unit) / count;
+    }
+
+    public float frequency(TimeUnit unit) {
+        return ((float)1) / avg(unit);
+    }
+    
 }
\ No newline at end of file

Modified: activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/VirtualHostDTO.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/VirtualHostDTO.java?rev=961209&r1=961208&r2=961209&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/VirtualHostDTO.java (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/VirtualHostDTO.java Wed Jul  7 04:20:53 2010
@@ -29,11 +29,9 @@ import javax.xml.bind.annotation.*;
 @XmlAccessorType(XmlAccessType.FIELD)
 public class VirtualHostDTO extends ServiceDTO<String> {
 
-    @JsonProperty("host_names")
     @XmlElement(name="host-name", required=true)
-    public ArrayList<String> hostNames = new ArrayList<String>();
+    public ArrayList<String> host_names = new ArrayList<String>();
 
-    @JsonProperty
     @XmlElementRef
     public StoreDTO store;
 
@@ -43,12 +41,11 @@ public class VirtualHostDTO extends Serv
      */
     @JsonProperty("auto_create_queues")
     @XmlAttribute(name="auto-create-queues")
-    public boolean autoCreateQueues = true;
+    public boolean auto_create_queues = true;
 
     /**
      * Should queues be purged on startup?
      */
-    @JsonProperty("purge_on_startup")
     @XmlAttribute(name="purge-on-startup")
-    public boolean purgeOnStartup = false;
+    public boolean purge_on_startup = false;
 }

Modified: activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/VirtualHostStatusDTO.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/VirtualHostStatusDTO.java?rev=961209&r1=961208&r2=961209&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/VirtualHostStatusDTO.java (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/java/org/apache/activemq/apollo/dto/VirtualHostStatusDTO.java Wed Jul  7 04:20:53 2010
@@ -33,16 +33,14 @@ import java.util.List;
 public class VirtualHostStatusDTO extends ServiceStatusDTO {
 
     /**
-     * The type of store the virtual host is using.
+     * The status of the store
      */
-    @JsonProperty("store_type")
-    @XmlAttribute(name="store-type")
-    public String storeType;
+    @XmlElementRef
+    public StoreStatusDTO store;
 
     /**
      * Ids of all the destinations running on the broker
      */
-    @JsonProperty("destinations")
     @XmlElement(name="destination")
     public List<DestinationSummaryDTO> destinations = new ArrayList<DestinationSummaryDTO>();
 
@@ -50,7 +48,6 @@ public class VirtualHostStatusDTO extend
     /**
      * The current running configuration of the object
      */
-    @JsonProperty
     @XmlElement
     public VirtualHostDTO config = null;
 

Modified: activemq/sandbox/activemq-apollo-actor/activemq-dto/src/test/java/org/apache/activemq/apollo/dto/XmlEncoderDecoderTest.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-dto/src/test/java/org/apache/activemq/apollo/dto/XmlEncoderDecoderTest.java?rev=961209&r1=961208&r2=961209&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-dto/src/test/java/org/apache/activemq/apollo/dto/XmlEncoderDecoderTest.java (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-dto/src/test/java/org/apache/activemq/apollo/dto/XmlEncoderDecoderTest.java Wed Jul  7 04:20:53 2010
@@ -39,10 +39,10 @@ public class XmlEncoderDecoderTest {
         assertNotNull(dto);
         assertEquals("default", dto.id);
         assertEquals(true, dto.enabled);
-        assertEquals("vh-local", dto.virtualHosts.get(0).id);
-        assertEquals(true, dto.virtualHosts.get(0).enabled);
-        assertEquals("localhost", dto.virtualHosts.get(0).hostNames.get(0));
-        assertEquals("example.com", dto.virtualHosts.get(0).hostNames.get(1));
+        assertEquals("vh-local", dto.virtual_hosts.get(0).id);
+        assertEquals(true, dto.virtual_hosts.get(0).enabled);
+        assertEquals("localhost", dto.virtual_hosts.get(0).host_names.get(0));
+        assertEquals("example.com", dto.virtual_hosts.get(0).host_names.get(1));
     }
 
 
@@ -55,9 +55,9 @@ public class XmlEncoderDecoderTest {
         VirtualHostDTO host = new VirtualHostDTO();
         host.id = "vh-local";
         host.enabled = true;
-        host.hostNames.add("localhost");
-        host.hostNames.add("example.com");
-        broker.virtualHosts.add(host);
+        host.host_names.add("localhost");
+        host.host_names.add("example.com");
+        broker.virtual_hosts.add(host);
 
         ConnectorDTO connector = new ConnectorDTO();
         connector.id = "port-61616";

Modified: activemq/sandbox/activemq-apollo-actor/activemq-hawtdb/src/main/scala/org/apache/activemq/broker/store/hawtdb/HawtDBClient.scala
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-hawtdb/src/main/scala/org/apache/activemq/broker/store/hawtdb/HawtDBClient.scala?rev=961209&r1=961208&r2=961209&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-hawtdb/src/main/scala/org/apache/activemq/broker/store/hawtdb/HawtDBClient.scala (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-hawtdb/src/main/scala/org/apache/activemq/broker/store/hawtdb/HawtDBClient.scala Wed Jul  7 04:20:53 2010
@@ -97,13 +97,13 @@ class HawtDBClient(hawtDBStore: HawtDBSt
 
   private def directory = config.directory
 
-  private def journalMaxFileLength = config.journalLogSize
+  private def journalMaxFileLength = config.journal_log_size
 
-  private def checkpointInterval = config.indexFlushInterval
+  private def checkpointInterval = config.index_flush_interval
 
-  private def cleanupInterval = config.cleanupInterval
+  private def cleanupInterval = config.cleanup_interval
 
-  private def failIfDatabaseIsLocked = config.failIfLocked
+  private def failIfDatabaseIsLocked = config.fail_if_locked
 
   private def indexFile = indexFileFactory.getTxPageFile()
 
@@ -150,8 +150,8 @@ class HawtDBClient(hawtDBStore: HawtDBSt
 
       journal = new Journal()
       journal.setDirectory(directory)
-      journal.setMaxFileLength(config.journalLogSize)
-      journal.setMaxWriteBatchSize(config.journalBatchSize);
+      journal.setMaxFileLength(config.journal_log_size)
+      journal.setMaxWriteBatchSize(config.journal_batch_size);
       journal.setChecksum(true);
       journal.setListener( new JournalListener{
         def synced(writes: Array[JournalListener.Write]) = {
@@ -168,8 +168,8 @@ class HawtDBClient(hawtDBStore: HawtDBSt
         }
       })
 
-      if( config.archiveDirectory!=null ) {
-        journal.setDirectoryArchive(config.archiveDirectory)
+      if( config.archive_directory!=null ) {
+        journal.setDirectoryArchive(config.archive_directory)
         journal.setArchiveDataLogs(true)
       }
       journal.start
@@ -178,8 +178,8 @@ class HawtDBClient(hawtDBStore: HawtDBSt
       indexFileFactory.setDrainOnClose(false)
       indexFileFactory.setSync(true)
       indexFileFactory.setUseWorkerThread(true)
-      indexFileFactory.setPageSize(config.indexPageSize)
-      indexFileFactory.setCacheSize(config.indexCacheSize);
+      indexFileFactory.setPageSize(config.index_page_size)
+      indexFileFactory.setCacheSize(config.index_cache_size);
 
       indexFileFactory.open
 
@@ -372,15 +372,18 @@ class HawtDBClient(hawtDBStore: HawtDBSt
     rc
   }
 
-  val metric_load_from_index = new TimeCounter
-  val metric_load_from_journal = new TimeCounter
+  val metric_load_from_index_counter = new TimeCounter
+  var metric_load_from_index = metric_load_from_index_counter(false)
+
+  val metric_load_from_journal_counter = new TimeCounter
+  var metric_load_from_journal = metric_load_from_journal_counter(false)
 
   def loadMessages(requests: ListBuffer[(Long, (Option[MessageRecord])=>Unit)]) = {
     val locations = withTx { tx =>
       val helper = new TxHelper(tx)
       import helper._
       requests.flatMap { case (messageKey, callback)=>
-        val location = metric_load_from_index.time {
+        val location = metric_load_from_index_counter.time {
           messageKeyIndex.get(messageKey)
         }
         if( location==null ) {
@@ -394,7 +397,7 @@ class HawtDBClient(hawtDBStore: HawtDBSt
     }
 
     locations.foreach { case (location, callback)=>
-      val addMessage = metric_load_from_journal.time {
+      val addMessage = metric_load_from_journal_counter.time {
         load(location, classOf[AddMessage.Getter])
       }
       callback( addMessage.map( x => toMessageRecord(x) ) )
@@ -403,7 +406,7 @@ class HawtDBClient(hawtDBStore: HawtDBSt
   }
 
   def loadMessage(messageKey: Long): Option[MessageRecord] = {
-    metric_load_from_index.start { end =>
+    metric_load_from_index_counter.start { end =>
       withTx { tx =>
         val helper = new TxHelper(tx)
         import helper._
@@ -412,7 +415,7 @@ class HawtDBClient(hawtDBStore: HawtDBSt
         end()
 
         if (location != null) {
-          metric_load_from_journal.time {
+          metric_load_from_journal_counter.time {
             load(location, classOf[AddMessage.Getter]) match {
               case Some(x) =>
                 val messageRecord: MessageRecord = x
@@ -462,8 +465,11 @@ class HawtDBClient(hawtDBStore: HawtDBSt
 
   private def _store(update: TypeCreatable, onComplete: Runnable): Unit = _store(-1, update, onComplete)
 
-  val metric_journal_append = new TimeCounter
-  val metric_index_update = new TimeCounter
+  val metric_journal_append_counter = new TimeCounter
+  var metric_journal_append = metric_journal_append_counter(false)
+
+  val metric_index_update_counter = new TimeCounter
+  var metric_index_update = metric_index_update_counter(false)
 
   /**
    * All updated are are funneled through this method. The updates are logged to
@@ -482,7 +488,7 @@ class HawtDBClient(hawtDBStore: HawtDBSt
 
     val buffer = baos.toBuffer()
     append(buffer) { (helper, location) =>
-      metric_index_update.time {
+      metric_index_update_counter.time {
         executeStore(helper, location, batch, update, onComplete)
       }
     }
@@ -636,7 +642,7 @@ class HawtDBClient(hawtDBStore: HawtDBSt
   /////////////////////////////////////////////////////////////////////
 
   private def append(data: Buffer)(cb: (TxHelper, Location) => List[Runnable]): Unit = {
-    metric_journal_append.start { end =>
+    metric_journal_append_counter.start { end =>
       def cbintercept(tx:TxHelper,location:Location) = {
         end()
         cb(tx, location)
@@ -934,7 +940,7 @@ class HawtDBClient(hawtDBStore: HawtDBSt
         }
       }
     }
-    dispatchQueue.dispatchAfter(config.indexFlushInterval, TimeUnit.MILLISECONDS, ^ {try_flush})
+    dispatchQueue.dispatchAfter(config.index_flush_interval, TimeUnit.MILLISECONDS, ^ {try_flush})
   }
 
   def flush() = {
@@ -957,7 +963,7 @@ class HawtDBClient(hawtDBStore: HawtDBSt
         }
       }
     }
-    dispatchQueue.dispatchAfter(config.cleanupInterval, TimeUnit.MILLISECONDS, ^ {try_cleanup})
+    dispatchQueue.dispatchAfter(config.cleanup_interval, TimeUnit.MILLISECONDS, ^ {try_cleanup})
   }
 
   /**

Modified: activemq/sandbox/activemq-apollo-actor/activemq-hawtdb/src/main/scala/org/apache/activemq/broker/store/hawtdb/HawtDBStore.scala
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-hawtdb/src/main/scala/org/apache/activemq/broker/store/hawtdb/HawtDBStore.scala?rev=961209&r1=961208&r2=961209&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-hawtdb/src/main/scala/org/apache/activemq/broker/store/hawtdb/HawtDBStore.scala (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-hawtdb/src/main/scala/org/apache/activemq/broker/store/hawtdb/HawtDBStore.scala Wed Jul  7 04:20:53 2010
@@ -20,7 +20,6 @@ import org.fusesource.hawtdispatch.BaseR
 import java.util.concurrent.atomic.AtomicLong
 import collection.mutable.ListBuffer
 import java.util.HashMap
-import org.apache.activemq.apollo.dto.{HawtDBStoreDTO, StoreDTO}
 import collection.{JavaConversions, Seq}
 import org.fusesource.hawtdispatch.ScalaDispatch._
 import org.apache.activemq.apollo.broker._
@@ -28,8 +27,9 @@ import java.io.File
 import ReporterLevel._
 import java.util.concurrent._
 import org.apache.activemq.apollo.store._
-import org.apache.activemq.apollo.util.{IntMetricCounter, TimeCounter, IntCounter}
 import org.apache.activemq.broker.store.{StoreUOW, Store}
+import org.apache.activemq.apollo.dto._
+import org.apache.activemq.apollo.util._
 
 object HawtDBStore extends Log {
   val DATABASE_LOCKED_WAIT_DELAY = 10 * 1000;
@@ -79,8 +79,6 @@ class HawtDBStore extends Store with Bas
 
   def configure(config: StoreDTO, reporter: Reporter) = configure(config.asInstanceOf[HawtDBStoreDTO], reporter)
 
-  def storeType = "hawtdb"
-
   def configure(config: HawtDBStoreDTO, reporter: Reporter) = {
     if ( HawtDBStore.validate(config, reporter) < ERROR ) {
       if( serviceState.isStarted ) {
@@ -101,7 +99,7 @@ class HawtDBStore extends Store with Bas
       }
     })
     client.config = config
-    schedualDisplayStats
+    poll_stats
     executor_pool {
       client.start(^{
         next_msg_key.set( client.rootBuffer.getLastMessageKey.longValue +1 )
@@ -184,7 +182,7 @@ class HawtDBStore extends Store with Bas
 
 
   def loadMessage(messageKey: Long)(callback: (Option[MessageRecord]) => Unit) = {
-    message_load_latency.start { end=>
+    message_load_latency_counter.start { end=>
       load_source.merge((messageKey, { (result)=>
         end()
         callback(result)
@@ -194,7 +192,7 @@ class HawtDBStore extends Store with Bas
 
   def drain_loads = {
     var data = load_source.getData
-    message_load_batch_size += data.size
+    message_load_batch_size_counter += data.size
     executor_pool ^{
       client.loadMessages(data)
     }
@@ -262,7 +260,7 @@ class HawtDBStore extends Store with Bas
 
     var delayable_actions = 0
 
-    def delayable = !disableDelay && delayable_actions>0 && config.flushDelay>=0
+    def delayable = !disableDelay && delayable_actions>0 && config.flush_delay>=0
 
     def rm(msg:Long) = {
       actions -= msg
@@ -327,7 +325,7 @@ class HawtDBStore extends Store with Bas
     }
 
     def onPerformed() = this.synchronized {
-      commit_latency += System.nanoTime-dispose_start
+      commit_latency_counter += System.nanoTime-dispose_start
       completeListeners.foreach { x=>
         x.run
       }
@@ -340,9 +338,14 @@ class HawtDBStore extends Store with Bas
   var metric_flushed_message_counter:Long = 0
   var metric_flushed_enqueue_counter:Long = 0
 
-  val commit_latency = new TimeCounter
-  val message_load_batch_size = new IntMetricCounter
-  val message_load_latency = new TimeCounter
+  val commit_latency_counter = new TimeCounter
+  var commit_latency = commit_latency_counter(false)
+
+  val message_load_latency_counter = new TimeCounter
+  var message_load_latency = message_load_latency_counter(false)
+
+  val message_load_batch_size_counter = new IntMetricCounter
+  var message_load_batch_size = message_load_batch_size_counter(false)
 
   var canceled_add_message:Long = 0
   var canceled_enqueue:Long = 0
@@ -360,49 +363,62 @@ class HawtDBStore extends Store with Bas
 
   var next_batch_id = new IntCounter(1)
 
-  def schedualDisplayStats:Unit = {
-    val st = System.nanoTime
-    val ss = (metric_canceled_message_counter, metric_canceled_enqueue_counter, metric_flushed_message_counter, metric_flushed_enqueue_counter)
+  implicit def toTimeMetricDTO( m: TimeMetric) = {
+    val rc = new TimeMetricDTO()
+    rc.count = m.count
+    rc.max = m.max
+    rc.min = m.min
+    rc.total = m.total
+    rc
+  }
+
+  implicit def toIntMetricDTO( m: IntMetric) = {
+    val rc = new IntMetricDTO()
+    rc.count = m.count
+    rc.max = m.max
+    rc.min = m.min
+    rc.total = m.total
+    rc
+  }
+
+  def storeStatusDTO(callback:(StoreStatusDTO)=>Unit) = dispatchQueue {
+    val rc = new HawtDBStoreStatusDTO
+
+    rc.state = serviceState.toString
+    rc.state_since = serviceState.since
+
+    rc.flush_latency = flush_latency
+    rc.message_load_latency = message_load_latency
+    rc.message_load_batch_size = message_load_batch_size
+
+    rc.journal_append_latency = client.metric_journal_append
+    rc.index_update_latency = client.metric_index_update
+
+    rc.canceled_message_counter = metric_canceled_message_counter
+    rc.canceled_enqueue_counter = metric_canceled_enqueue_counter
+    rc.flushed_message_counter = metric_flushed_message_counter
+    rc.flushed_enqueue_counter = metric_flushed_enqueue_counter
+
+    callback(rc)
+  }
+
+
+  def poll_stats:Unit = {
     def displayStats = {
       if( serviceState.isStarted ) {
-        val et = System.nanoTime
-        val es = (metric_canceled_message_counter, metric_canceled_enqueue_counter, metric_flushed_message_counter, metric_flushed_enqueue_counter)
-        def rate(x:Long, y:Long):Float = ((y-x)*1000.0f)/TimeUnit.NANOSECONDS.toMillis(et-st)
-
-        val m1 = rate(ss._1,es._1)
-        val m2 = rate(ss._2,es._2)
-        val m3 = rate(ss._3,es._3)
-        val m4 = rate(ss._4,es._4)
-
-        if( m1>0f || m2>0f || m3>0f || m4>0f ) {
-          info("metrics: cancled: { messages: %,.3f, enqeues: %,.3f }, flushed: { messages: %,.3f, enqeues: %,.3f }",
-            m1, m2, m3, m4 )
-        }
 
-        def displayTime(name:String, counter:TimeCounter) = {
-          var t = counter.apply(true)
-          if( t.count > 0 ) {
-            info("%s latency in ms: avg: %,.3f, min: %,.3f, max: %,.3f", name, t.avgTime(TimeUnit.MILLISECONDS), t.minTime(TimeUnit.MILLISECONDS), t.maxTime(TimeUnit.MILLISECONDS))
-          }
-        }
-        def displayInt(name:String, counter:IntMetricCounter) = {
-          var t = counter.apply(true)
-          if( t.count > 0 ) {
-            info("%s: avg: %,.3f, min: %d, max: %d", name, t.avg, t.min, t.max )
-          }
-        }
-
-        displayTime("commit", commit_latency)
-        displayTime("store", store_latency)
-        displayTime("message load", message_load_latency)
-        displayTime("journal append", client.metric_journal_append)
-        displayTime("index update", client.metric_index_update)
-        displayInt("load batch size", message_load_batch_size)
+        flush_latency = flush_latency_counter(true)
+        message_load_latency = message_load_latency_counter(true)
+        client.metric_journal_append = client.metric_journal_append_counter(true)
+        client.metric_index_update = client.metric_index_update_counter(true)
+        commit_latency = commit_latency_counter(true)
+        message_load_batch_size =  message_load_batch_size_counter(true)
 
-        schedualDisplayStats
+        poll_stats
       }
     }
-    dispatchQueue.dispatchAfter(5, TimeUnit.SECONDS, ^{ displayStats })
+    
+    dispatchQueue.dispatchAfter(1, TimeUnit.SECONDS, ^{ displayStats })
   }
 
   def drain_uows = {
@@ -455,7 +471,7 @@ class HawtDBStore extends Store with Bas
 
       val batch_id = uow.uow_id
       if( uow.delayable ) {
-        dispatchQueue.dispatchAfter(config.flushDelay, TimeUnit.MILLISECONDS, ^{flush(batch_id)})
+        dispatchQueue.dispatchAfter(config.flush_delay, TimeUnit.MILLISECONDS, ^{flush(batch_id)})
       } else {
         flush(batch_id)
       }
@@ -471,7 +487,8 @@ class HawtDBStore extends Store with Bas
   flush_source.setEventHandler(^{drain_flushes});
   flush_source.resume
 
-  val store_latency = new TimeCounter
+  val flush_latency_counter = new TimeCounter
+  var flush_latency = flush_latency_counter(false)
 
   def drain_flushes:Unit = {
 
@@ -493,7 +510,7 @@ class HawtDBStore extends Store with Bas
     }
 
     if( !uows.isEmpty ) {
-      store_latency.start { end=>
+      flush_latency_counter.start { end=>
         executor_pool {
           client.store(uows, ^{
             dispatchQueue {

Modified: activemq/sandbox/activemq-apollo-actor/activemq-hawtdb/src/test/scala/org/apache/activemq/broker/store/hawtdb/HawtDBStoreBenchmark.scala
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-hawtdb/src/test/scala/org/apache/activemq/broker/store/hawtdb/HawtDBStoreBenchmark.scala?rev=961209&r1=961208&r2=961209&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-hawtdb/src/test/scala/org/apache/activemq/broker/store/hawtdb/HawtDBStoreBenchmark.scala (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-hawtdb/src/test/scala/org/apache/activemq/broker/store/hawtdb/HawtDBStoreBenchmark.scala Wed Jul  7 04:20:53 2010
@@ -26,7 +26,7 @@ class HawtDBStoreBenchmark extends Store
 
   def createStore(flushDelay:Long):Store = {
     val rc = new HawtDBStore
-    rc.config.flushDelay = flushDelay
+    rc.config.flush_delay = flushDelay
     rc
   }
 

Modified: activemq/sandbox/activemq-apollo-actor/activemq-hawtdb/src/test/scala/org/apache/activemq/broker/store/hawtdb/HawtDBStoreTest.scala
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-hawtdb/src/test/scala/org/apache/activemq/broker/store/hawtdb/HawtDBStoreTest.scala?rev=961209&r1=961208&r2=961209&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-hawtdb/src/test/scala/org/apache/activemq/broker/store/hawtdb/HawtDBStoreTest.scala (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-hawtdb/src/test/scala/org/apache/activemq/broker/store/hawtdb/HawtDBStoreTest.scala Wed Jul  7 04:20:53 2010
@@ -26,7 +26,7 @@ class HawtDBStoreTest extends StoreFunSu
 
   def createStore(flushDelay:Long):Store = {
     val rc = new HawtDBStore
-    rc.config.flushDelay = flushDelay
+    rc.config.flush_delay = flushDelay
     rc
   }
 

Modified: activemq/sandbox/activemq-apollo-actor/activemq-stomp/src/main/scala/org/apache/activemq/apollo/stomp/StompBroker.scala
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-stomp/src/main/scala/org/apache/activemq/apollo/stomp/StompBroker.scala?rev=961209&r1=961208&r2=961209&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-stomp/src/main/scala/org/apache/activemq/apollo/stomp/StompBroker.scala (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-stomp/src/main/scala/org/apache/activemq/apollo/stomp/StompBroker.scala Wed Jul  7 04:20:53 2010
@@ -61,8 +61,8 @@ object StompBroker {
         rc.hosts.add("localhost:9160")
         rc
     }
-    broker.config.virtualHosts.get(0).store = store
-    broker.config.virtualHosts.get(0).purgeOnStartup = purge
+    broker.config.virtual_hosts.get(0).store = store
+    broker.config.virtual_hosts.get(0).purge_on_startup = purge
 
 
 

Modified: activemq/sandbox/activemq-apollo-actor/activemq-stomp/src/test/scala/org/apache/activemq/apollo/stomp/perf/StompBrokerPerfTest.scala
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-stomp/src/test/scala/org/apache/activemq/apollo/stomp/perf/StompBrokerPerfTest.scala?rev=961209&r1=961208&r2=961209&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-stomp/src/test/scala/org/apache/activemq/apollo/stomp/perf/StompBrokerPerfTest.scala (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-stomp/src/test/scala/org/apache/activemq/apollo/stomp/perf/StompBrokerPerfTest.scala Wed Jul  7 04:20:53 2010
@@ -74,7 +74,7 @@ class StompHawtDBPersistentBrokerPerfTes
     val store = new HawtDBStoreDTO
     store.directory = new File(new File(testDataDir, getClass.getName), name)
 
-    rc.virtualHosts.get(0).store = store
+    rc.virtual_hosts.get(0).store = store
     rc
   }
 

Modified: activemq/sandbox/activemq-apollo-actor/activemq-store/src/main/scala/org/apache/activemq/apollo/store/Store.scala
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-store/src/main/scala/org/apache/activemq/apollo/store/Store.scala?rev=961209&r1=961208&r2=961209&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-store/src/main/scala/org/apache/activemq/apollo/store/Store.scala (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-store/src/main/scala/org/apache/activemq/apollo/store/Store.scala Wed Jul  7 04:20:53 2010
@@ -18,8 +18,8 @@ package org.apache.activemq.broker.store
 
 import org.apache.activemq.apollo.store._
 import org.apache.activemq.apollo.broker.Reporter
-import org.apache.activemq.apollo.dto.StoreDTO
 import org.apache.activemq.apollo.ServiceTrait
+import org.apache.activemq.apollo.dto.{StoreStatusDTO, StoreDTO}
 
 /**
  * <p>
@@ -31,7 +31,7 @@ import org.apache.activemq.apollo.Servic
  */
 trait Store extends ServiceTrait {
 
-  def storeType:String
+  def storeStatusDTO(callback:(StoreStatusDTO)=>Unit)
 
   /**
    * Creates a store uow which is used to perform persistent

Modified: activemq/sandbox/activemq-apollo-actor/activemq-tcp/src/main/java/org/apache/activemq/transport/tcp/TcpTransport.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-tcp/src/main/java/org/apache/activemq/transport/tcp/TcpTransport.java?rev=961209&r1=961208&r2=961209&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-tcp/src/main/java/org/apache/activemq/transport/tcp/TcpTransport.java (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-tcp/src/main/java/org/apache/activemq/transport/tcp/TcpTransport.java Wed Jul  7 04:20:53 2010
@@ -16,22 +16,19 @@
  */
 package org.apache.activemq.transport.tcp;
 
-import org.apache.activemq.apollo.util.BaseService;
+import org.apache.activemq.apollo.util.JavaBaseService;
 import org.apache.activemq.transport.Transport;
 import org.apache.activemq.transport.TransportListener;
 import org.apache.activemq.wireformat.WireFormat;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.fusesource.hawtbuf.DataByteArrayOutputStream;
 import org.fusesource.hawtdispatch.Dispatch;
 import org.fusesource.hawtdispatch.DispatchQueue;
 import org.fusesource.hawtdispatch.DispatchSource;
 import org.fusesource.hawtdispatch.Retained;
 
-import java.io.EOFException;
 import java.io.IOException;
 import java.net.*;
-import java.nio.ByteBuffer;
 import java.nio.channels.SelectionKey;
 import java.nio.channels.SocketChannel;
 import java.util.LinkedList;
@@ -42,7 +39,7 @@ import java.util.Map;
  *
  * @author <a href="http://hiramchirino.com">Hiram Chirino</a>
  */
-public class TcpTransport extends BaseService implements Transport {
+public class TcpTransport extends JavaBaseService implements Transport {
 
     private static final Log LOG = LogFactory.getLog(TcpTransport.class);
 

Copied: activemq/sandbox/activemq-apollo-actor/activemq-util/src/main/scala/org/apache/activemq/apollo/util/JavaBaseService.java (from r961208, activemq/sandbox/activemq-apollo-actor/activemq-util/src/main/scala/org/apache/activemq/apollo/util/BaseService.java)
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-util/src/main/scala/org/apache/activemq/apollo/util/JavaBaseService.java?p2=activemq/sandbox/activemq-apollo-actor/activemq-util/src/main/scala/org/apache/activemq/apollo/util/JavaBaseService.java&p1=activemq/sandbox/activemq-apollo-actor/activemq-util/src/main/scala/org/apache/activemq/apollo/util/BaseService.java&r1=961208&r2=961209&rev=961209&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-util/src/main/scala/org/apache/activemq/apollo/util/BaseService.java (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-util/src/main/scala/org/apache/activemq/apollo/util/JavaBaseService.java Wed Jul  7 04:20:53 2010
@@ -28,7 +28,7 @@ import java.util.LinkedList;
  *
  * @author <a href="http://hiramchirino.com">Hiram Chirino</a>
  */
-public abstract class BaseService implements Service {
+public abstract class JavaBaseService implements Service {
 
     public static class State {
         public String toString() {

Modified: activemq/sandbox/activemq-apollo-actor/activemq-util/src/main/scala/org/apache/activemq/apollo/util/TimeCounter.scala
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-util/src/main/scala/org/apache/activemq/apollo/util/TimeCounter.scala?rev=961209&r1=961208&r2=961209&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-util/src/main/scala/org/apache/activemq/apollo/util/TimeCounter.scala (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-util/src/main/scala/org/apache/activemq/apollo/util/TimeCounter.scala Wed Jul  7 04:20:53 2010
@@ -31,7 +31,11 @@ class TimeCounter extends MetricProducer
   private var count = 0
 
   def apply(reset: Boolean):TimeMetric = {
-    val rc = TimeMetric(count, total, min, max)
+    val rc = if(count==0) {
+      TimeMetric(0, 0, 0, 0)
+    } else {
+      TimeMetric(count, total, min, max)
+    }
     if (reset) {
       clear()
     }

Modified: activemq/sandbox/activemq-apollo-actor/activemq-web/src/main/scala/org/apache/activemq/apollo/web/resources/RootResource.scala
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-web/src/main/scala/org/apache/activemq/apollo/web/resources/RootResource.scala?rev=961209&r1=961208&r2=961209&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-web/src/main/scala/org/apache/activemq/apollo/web/resources/RootResource.scala (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-web/src/main/scala/org/apache/activemq/apollo/web/resources/RootResource.scala Wed Jul  7 04:20:53 2010
@@ -33,6 +33,7 @@ import org.apache.activemq.apollo.broker
 import collection.JavaConversions._
 import com.sun.jersey.api.core.ResourceContext
 import org.fusesource.scalate.RenderContext
+import java.util.concurrent.TimeUnit
 
 /**
  * Defines the default representations to be used on resources
@@ -60,7 +61,23 @@ abstract class Resource(private val pare
 
 }
 
+object ViewHelper {
+
+  val KB: Long = 1024
+  val MB: Long = KB * 1024
+  val GB: Long = MB * 1024
+  val TB: Long = GB * 1024
+
+  val SECONDS: Long = TimeUnit.SECONDS.toMillis(1)
+  val MINUTES: Long = TimeUnit.MINUTES.toMillis(1)
+  val HOURS: Long = TimeUnit.HOURS.toMillis(1)
+  val DAYS: Long = TimeUnit.DAYS.toMillis(1)
+  val YEARS: Long = DAYS * 365
+
+
+}
 class ViewHelper {
+  import ViewHelper._
 
   lazy val uri_info = RenderContext().attribute[UriInfo]("uri_info")
 
@@ -68,6 +85,38 @@ class ViewHelper {
     uri_info.getAbsolutePathBuilder().path(value.toString).build()
   }
 
+  def memory(value:Int):String = memory(value.toLong)
+  def memory(value:Long):String = {
+
+    if( value < KB ) {
+      "%d bytes".format(value)
+    } else if( value < MB ) {
+       "%,.2f kb".format(value.toFloat/KB)
+    } else if( value < GB ) {
+      "%,.3f mb".format(value.toFloat/MB)
+    } else if( value < TB ) {
+      "%,.4f gb".format(value.toDouble/GB)
+    } else {
+      "%,.5f tb".format(value.toDouble/TB)
+    }
+  }
+
+  def uptime(value:Long):String = {
+    val duration = System.currentTimeMillis - value
+    if( duration < SECONDS ) {
+      "%d ms".format(duration)
+    } else if (duration < MINUTES) {
+      "%,.2f seconds".format(duration.toFloat / SECONDS)
+    } else if (duration < HOURS) {
+      "%,.2f minutes".format(duration.toFloat / MINUTES)
+    } else if (duration < DAYS) {
+      "%,.2f hours".format(duration.toFloat / HOURS)
+    } else if (duration < YEARS) {
+      "%,.2f days".format(duration.toDouble / DAYS)
+    } else {
+      "%,.2f years".format(duration.toDouble / YEARS)
+    }
+  }
 }
 
 /**

Modified: activemq/sandbox/activemq-apollo-actor/activemq-web/src/main/scala/org/apache/activemq/apollo/web/resources/RuntimeResource.scala
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-web/src/main/scala/org/apache/activemq/apollo/web/resources/RuntimeResource.scala?rev=961209&r1=961208&r2=961209&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-web/src/main/scala/org/apache/activemq/apollo/web/resources/RuntimeResource.scala (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-web/src/main/scala/org/apache/activemq/apollo/web/resources/RuntimeResource.scala Wed Jul  7 04:20:53 2010
@@ -71,13 +71,13 @@ case class RuntimeResource(parent:Broker
       val result = new BrokerStatusDTO
 
       result.id = broker.id
-      result.currentTime = System.currentTimeMillis
+      result.current_time = System.currentTimeMillis
       result.state = broker.serviceState.toString
-      result.stateSince - broker.serviceState.since
+      result.state_since - broker.serviceState.since
       result.config = broker.config
 
       broker.virtualHosts.values.foreach{ host=>
-        result.virtualHosts.add( host.id )
+        result.virtual_hosts.add( host.id )
       }
 
       broker.connectors.foreach{ c=>
@@ -97,7 +97,7 @@ case class RuntimeResource(parent:Broker
 
   @GET @Path("virtual-hosts")
   def virtualHosts :Array[jl.Long] = {
-    val list: List[jl.Long] = get.virtualHosts
+    val list: List[jl.Long] = get.virtual_hosts
     list.toArray(new Array[jl.Long](list.size))
   }
 
@@ -107,13 +107,9 @@ case class RuntimeResource(parent:Broker
       val result = new VirtualHostStatusDTO
       result.id = virtualHost.id
       result.state = virtualHost.serviceState.toString
-      result.stateSince = virtualHost.serviceState.since
+      result.state_since = virtualHost.serviceState.since
       result.config = virtualHost.config
 
-
-      if( virtualHost.store != null ) {
-        result.storeType = virtualHost.store.storeType
-      }
       virtualHost.router.destinations.valuesIterator.foreach { node=>
         val summary = new DestinationSummaryDTO
         summary.id = node.id
@@ -121,8 +117,25 @@ case class RuntimeResource(parent:Broker
         summary.domain = node.destination.getDomain.toString
         result.destinations.add(summary)
       }
-      cb(Some(result))
+
+      if( virtualHost.store != null ) {
+        virtualHost.store.storeStatusDTO { x=>
+          result.store = x
+          cb(Some(result))
+        }
+      } else {
+        cb(Some(result))
+      }
+    }
+  }
+
+  @GET @Path("virtual-hosts/{id}/store")
+  def store(@PathParam("id") id : Long):StoreStatusDTO = {
+    val rc =  virtualHost(id).store
+    if( rc == null ) {
+      result(NOT_FOUND)
     }
+    rc
   }
 
   @GET @Path("virtual-hosts/{id}/destinations/{dest}")
@@ -154,22 +167,22 @@ case class RuntimeResource(parent:Broker
 
             val result = new QueueStatusDTO
             result.id = q.id
-            result.capacityUsed = q.capacity_used
+            result.capacity_used = q.capacity_used
             result.capacity = q.capacity
 
-            result.enqueueItemCounter = q.enqueue_item_counter
-            result.dequeueItemCounter = q.dequeue_item_counter
-            result.enqueueSizeCounter = q.enqueue_size_counter
-            result.dequeueSizeCounter = q.dequeue_size_counter
-            result.nackItemCounter = q.nack_item_counter
-            result.nackSizeCounter = q.nack_size_counter
-
-            result.queueSize = q.queue_size
-            result.queueItems = q.queue_items
-
-            result.loadingSize = q.loading_size
-            result.flushingSize = q.flushing_size
-            result.flushedItems = q.flushed_items
+            result.enqueue_item_counter = q.enqueue_item_counter
+            result.dequeue_item_counter = q.dequeue_item_counter
+            result.enqueue_size_counter = q.enqueue_size_counter
+            result.dequeue_size_counter = q.dequeue_size_counter
+            result.nack_item_counter = q.nack_item_counter
+            result.nack_size_counter = q.nack_size_counter
+
+            result.queue_size = q.queue_size
+            result.queue_items = q.queue_items
+
+            result.loading_size = q.loading_size
+            result.flushing_size = q.flushing_size
+            result.flushed_items = q.flushed_items
 
             if( entries ) {
               var cur = q.head_entry
@@ -179,8 +192,8 @@ case class RuntimeResource(parent:Broker
                 e.seq = cur.seq
                 e.count = cur.count
                 e.size = cur.size
-                e.consumerCount = cur.parked.size
-                e.prefetchCount = cur.prefetched
+                e.consumer_count = cur.parked.size
+                e.prefetch_count = cur.prefetched
                 e.state = cur.label
 
                 result.entries.add(e)
@@ -218,7 +231,7 @@ case class RuntimeResource(parent:Broker
           val result = new ConnectorStatusDTO
           result.id = connector.id
           result.state = connector.serviceState.toString
-          result.stateSince = connector.serviceState.since
+          result.state_since = connector.serviceState.since
           result.config = connector.config
 
           result.accepted = connector.accept_counter.get
@@ -255,14 +268,14 @@ case class RuntimeResource(parent:Broker
             val result = new ConnectionStatusDTO
             result.id = connection.id
             result.state = connection.serviceState.toString
-            result.stateSince = connection.serviceState.since
+            result.state_since = connection.serviceState.since
             result.protocol = connection.protocol
             result.transport = connection.transport.getTypeId
-            result.remoteAddress = connection.transport.getRemoteAddress
+            result.remote_address = connection.transport.getRemoteAddress
             val wf = connection.transport.getWireformat
             if( wf!=null ) {
-              result.writeCounter = wf.getWriteCounter
-              result.readCounter = wf.getReadCounter
+              result.write_counter = wf.getWriteCounter
+              result.read_counter = wf.getReadCounter
             }
             cb(Some(result))
           }

Modified: activemq/sandbox/activemq-apollo-actor/activemq-web/src/main/webapp/WEB-INF/org/apache/activemq/apollo/dto/BrokerStatusDTO.scaml
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-web/src/main/webapp/WEB-INF/org/apache/activemq/apollo/dto/BrokerStatusDTO.scaml?rev=961209&r1=961208&r2=961209&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-web/src/main/webapp/WEB-INF/org/apache/activemq/apollo/dto/BrokerStatusDTO.scaml (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-web/src/main/webapp/WEB-INF/org/apache/activemq/apollo/dto/BrokerStatusDTO.scaml Wed Jul  7 04:20:53 2010
@@ -2,11 +2,11 @@
 - val helper = new org.apache.activemq.apollo.web.resources.ViewHelper
 - import helper._
 
-%p state: #{state} since: #{ new java.util.Date(stateSince) }
+%p state: #{state} for #{ uptime(state_since) }
 
 %h2 Virtual Hosts
 %ul
-  - for( x <- virtualHosts )
+  - for( x <- virtual_hosts )
     %li
       %a(href="runtime/virtual-hosts/#{x}") #{x}