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:18:44 UTC

svn commit: r961201 - in /activemq/sandbox/activemq-apollo-actor: activemq-hawtdb/src/main/resources/META-INF/services/org/apache/activemq/apollo/ activemq-hawtdb/src/main/scala/org/apache/activemq/broker/store/hawtdb/ activemq-util/src/main/scala/org/...

Author: chirino
Date: Wed Jul  7 04:18:44 2010
New Revision: 961201

URL: http://svn.apache.org/viewvc?rev=961201&view=rev
Log:
better memory pool interface

Modified:
    activemq/sandbox/activemq-apollo-actor/activemq-hawtdb/src/main/resources/META-INF/services/org/apache/activemq/apollo/memory-pools
    activemq/sandbox/activemq-apollo-actor/activemq-hawtdb/src/main/scala/org/apache/activemq/broker/store/hawtdb/HawtDBMemoryPoolSPI.scala
    activemq/sandbox/activemq-apollo-actor/activemq-util/src/main/scala/org/apache/activemq/apollo/MemoryPool.scala

Modified: activemq/sandbox/activemq-apollo-actor/activemq-hawtdb/src/main/resources/META-INF/services/org/apache/activemq/apollo/memory-pools
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-hawtdb/src/main/resources/META-INF/services/org/apache/activemq/apollo/memory-pools?rev=961201&r1=961200&r2=961201&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-hawtdb/src/main/resources/META-INF/services/org/apache/activemq/apollo/memory-pools (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-hawtdb/src/main/resources/META-INF/services/org/apache/activemq/apollo/memory-pools Wed Jul  7 04:18:44 2010
@@ -14,4 +14,4 @@
 ## See the License for the specific language governing permissions and
 ## limitations under the License.
 ## ---------------------------------------------------------------------------
-org.apache.activemq.broker.store.hawtdb.HawtDBStoreSPI
\ No newline at end of file
+org.apache.activemq.broker.store.hawtdb.HawtDBMemoryPoolSPI
\ No newline at end of file

Modified: activemq/sandbox/activemq-apollo-actor/activemq-hawtdb/src/main/scala/org/apache/activemq/broker/store/hawtdb/HawtDBMemoryPoolSPI.scala
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-hawtdb/src/main/scala/org/apache/activemq/broker/store/hawtdb/HawtDBMemoryPoolSPI.scala?rev=961201&r1=961200&r2=961201&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-hawtdb/src/main/scala/org/apache/activemq/broker/store/hawtdb/HawtDBMemoryPoolSPI.scala (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-hawtdb/src/main/scala/org/apache/activemq/broker/store/hawtdb/HawtDBMemoryPoolSPI.scala Wed Jul  7 04:18:44 2010
@@ -16,39 +16,35 @@
  */
 package org.apache.activemq.broker.store.hawtdb
 
-import org.apache.activemq.apollo.store.StoreFactory
-import org.apache.activemq.apollo.dto.{HawtDBStoreDTO, StoreDTO}
-import org.apache.activemq.apollo.broker.{Reporting, ReporterLevel, Reporter}
-import ReporterLevel._
+import java.io.File
+import java.lang.String
+import org.apache.activemq.apollo.MemoryPoolFactory
 
 /**
  * <p>
- * Hook to use a HawtDBStore when a HawtDBStoreDTO is
- * used in a broker configuration.
+ * Hook to use a HawtDBMemoryPool for the memory pool implementation.
  * </p>
  * <p>
  * This class is discovered using the following resource file:
- * <code>META-INF/services/org.apache.activemq.apollo/stores</code>
+ * <code>META-INF/services/org.apache.activemq.apollo/memory-pools</code>
  * </p>
  * 
  * @author <a href="http://hiramchirino.com">Hiram Chirino</a>
  */
-class HawtDBMemoryPoolSPI extends StoreFactory.SPI {
+class HawtDBMemoryPoolSPI extends MemoryPoolFactory.SPI {
 
-  def create(config: StoreDTO) = {
-    if( config.isInstanceOf[HawtDBStoreDTO]) {
-// TODO:      new HawtDBMemoryPool
-      null
+  val prefix: String = "hawtdb:"
+
+  def create(config: String) = {
+    if( config.startsWith(prefix) ) {
+      val file = new File(config.substring(prefix.length))
+      new HawtDBMemoryPool(file)
     } else {
       null
     }
   }
 
-   def validate(config: StoreDTO, reporter:Reporter):ReporterLevel = {
-     if( config.isInstanceOf[HawtDBStoreDTO]) {
-       HawtDBStore.validate(config.asInstanceOf[HawtDBStoreDTO], reporter)
-     } else {
-       null
-     }
+   def validate(config: String):Boolean = {
+     config.startsWith(prefix) && !config.substring(prefix.length).isEmpty
    }
 }
\ No newline at end of file

Modified: activemq/sandbox/activemq-apollo-actor/activemq-util/src/main/scala/org/apache/activemq/apollo/MemoryPool.scala
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-util/src/main/scala/org/apache/activemq/apollo/MemoryPool.scala?rev=961201&r1=961200&r2=961201&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-util/src/main/scala/org/apache/activemq/apollo/MemoryPool.scala (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-util/src/main/scala/org/apache/activemq/apollo/MemoryPool.scala Wed Jul  7 04:18:44 2010
@@ -17,8 +17,16 @@
 package org.apache.activemq.apollo
 
 import java.nio.ByteBuffer
+import org.fusesource.hawtdispatch.Retained
+import org.apache.activemq.Service
 
-trait MemoryAllocation {
+/**
+ * <p>
+ * </p>
+ *
+ * @author <a href="http://hiramchirino.com">Hiram Chirino</a>
+ */
+trait MemoryAllocation extends Retained {
   def size:Int
   def buffer:ByteBuffer
 }
@@ -29,7 +37,6 @@ trait MemoryAllocation {
  *
  * @author <a href="http://hiramchirino.com">Hiram Chirino</a>
  */
-trait MemoryPool {
+trait MemoryPool extends Service {
   def alloc(size:Int):MemoryAllocation
-  def free(ma:MemoryAllocation)
 }
\ No newline at end of file