Author: rmannibucau
Date: Thu Oct 2 12:26:00 2014
New Revision: 1628957
URL: http://svn.apache.org/r1628957
Log:
TOMEE-1371 if using kahadb or leveldb or any persistence adapter force broker
to be persistent
Modified:
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/ActiveMQ5Factory.java
Modified:
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/ActiveMQ5Factory.java
URL:
http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/ActiveMQ5Factory.java?rev=1628957&r1=1628956&r2=1628957&view=diff
==============================================================================
---
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/ActiveMQ5Factory.java
(original)
+++
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/ActiveMQ5Factory.java
Thu Oct 2 12:26:00 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;
+ }
+ }
}