Author: rmannibucau
Date: Thu Oct  2 12:26:27 2014
New Revision: 1628958

URL: http://svn.apache.org/r1628958
Log:
TOMEE-1371 if using kahadb or leveldb or any persistence adapter force broker 
to be persistent

Modified:
    
tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/ActiveMQ5Factory.java

Modified: 
tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/ActiveMQ5Factory.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/ActiveMQ5Factory.java?rev=1628958&r1=1628957&r2=1628958&view=diff
==============================================================================
--- 
tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/ActiveMQ5Factory.java
 (original)
+++ 
tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/ActiveMQ5Factory.java
 Thu Oct  2 12:26:27 2014
@@ -22,6 +22,7 @@ import org.apache.activemq.broker.Broker
 import org.apache.activemq.broker.BrokerService;
 import org.apache.activemq.ra.ActiveMQResourceAdapter;
 import org.apache.activemq.store.PersistenceAdapter;
+import org.apache.activemq.store.PersistenceAdapterFactory;
 import org.apache.activemq.store.jdbc.JDBCPersistenceAdapter;
 import org.apache.activemq.store.kahadb.KahaDBPersistenceAdapter;
 import org.apache.activemq.store.memory.MemoryPersistenceAdapter;
@@ -36,6 +37,7 @@ import org.apache.xbean.propertyeditor.P
 import javax.naming.Context;
 import javax.naming.NamingException;
 import javax.sql.DataSource;
+import java.io.IOException;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
@@ -89,6 +91,8 @@ public class ActiveMQ5Factory implements
 
             if (persistenceAdapter != null) {
                 broker.setPersistenceAdapter(persistenceAdapter);
+                // if user didn't set persistent to true then 
setPersistenceAdapter() alone is ignored so forcing it with the factory
+                broker.setPersistenceFactory(new 
ProvidedPersistenceAdapterPersistenceAdapterFactory(persistenceAdapter));
                 broker.setPersistent(true);
                 tomeeConfig(broker);
             } else {
@@ -316,4 +320,17 @@ public class ActiveMQ5Factory implements
     public Collection<BrokerService> getBrokers() {
         return brokers.values();
     }
+
+    private static class ProvidedPersistenceAdapterPersistenceAdapterFactory 
implements PersistenceAdapterFactory {
+        private final PersistenceAdapter instance;
+
+        public ProvidedPersistenceAdapterPersistenceAdapterFactory(final 
PersistenceAdapter persistenceAdapter) {
+            this.instance = persistenceAdapter;
+        }
+
+        @Override
+        public PersistenceAdapter createPersistenceAdapter() throws 
IOException {
+            return instance;
+        }
+    }
 }


Reply via email to