You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2015/01/08 14:29:52 UTC

tomee git commit: TOMEE-1489 just deactivating our forced schedulersupport = false

Repository: tomee
Updated Branches:
  refs/heads/tomee-1.7.x 50c306e14 -> 1d1d7d00a


TOMEE-1489 just deactivating our forced schedulersupport = false


Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/1d1d7d00
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/1d1d7d00
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/1d1d7d00

Branch: refs/heads/tomee-1.7.x
Commit: 1d1d7d00afaf88678256b407327e92d7715c75e4
Parents: 50c306e
Author: Romain Manni-Bucau <rm...@apache.org>
Authored: Thu Jan 8 14:29:44 2015 +0100
Committer: Romain Manni-Bucau <rm...@apache.org>
Committed: Thu Jan 8 14:29:44 2015 +0100

----------------------------------------------------------------------
 .../resource/activemq/ActiveMQ5Factory.java     | 28 ++--------------
 .../activemq/ActiveMQResourceAdapterTest.java   | 34 ++++++++++++++++++++
 2 files changed, 37 insertions(+), 25 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tomee/blob/1d1d7d00/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/ActiveMQ5Factory.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/ActiveMQ5Factory.java b/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/ActiveMQ5Factory.java
index bf52201..eb34606 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/ActiveMQ5Factory.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/ActiveMQ5Factory.java
@@ -70,18 +70,12 @@ public class ActiveMQ5Factory implements BrokerFactoryHandler {
         if (null == broker || !broker.isStarted()) {
 
             final Properties properties = getLowerCaseProperties();
-            boolean scheduleSupport = false;
 
             final URISupport.CompositeData compositeData = URISupport.parseComposite(new URI(brokerURI.getRawSchemeSpecificPart()));
             final Map<String, String> params = new HashMap<String, String>(compositeData.getParameters());
             final PersistenceAdapter persistenceAdapter;
             if ("true".equals(params.remove("usekahadb"))) {
                 persistenceAdapter = createPersistenceAdapter("org.apache.activemq.store.kahadb.KahaDBPersistenceAdapter", "kahadb", params);
-
-                if ("true".equals(params.remove("scheduler"))) {
-                    scheduleSupport = true;
-                }
-
             } else if ("true".equals(params.remove("useleveldb"))) {
                 persistenceAdapter = createPersistenceAdapter("org.apache.activemq.store.leveldb.LevelDBPersistenceAdapter", "leveldb", params);
             } else if (params.get("persistenceadapter") != null) {
@@ -100,7 +94,7 @@ public class ActiveMQ5Factory implements BrokerFactoryHandler {
                 // 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, scheduleSupport);
+                tomeeConfig(broker);
             } else {
                 final boolean notXbean = !uri.getScheme().toLowerCase().startsWith("xbean");
                 if (notXbean) {
@@ -155,7 +149,7 @@ public class ActiveMQ5Factory implements BrokerFactoryHandler {
                         broker.setPersistenceAdapter(new MemoryPersistenceAdapter());
                     }
 
-                    tomeeConfig(broker, scheduleSupport);
+                    tomeeConfig(broker);
                 }
             }
 
@@ -290,27 +284,11 @@ public class ActiveMQ5Factory implements BrokerFactoryHandler {
         return persistenceAdapter;
     }
 
-    private void tomeeConfig(final BrokerService broker, final boolean scheduleSupport) {
-        //New since 5.4.x
-        setSchedulerSupport(broker, scheduleSupport);
-
+    private void tomeeConfig(final BrokerService broker) {
         //Notify when an error occurs on shutdown.
         broker.setUseLoggingForShutdownErrors(Logger.getInstance(LogCategory.OPENEJB_STARTUP, ActiveMQ5Factory.class).isErrorEnabled());
     }
 
-    private static void setSchedulerSupport(final BrokerService broker, final boolean scheduleSupport) {
-        try {
-            final Class<?> clazz = Class.forName("org.apache.activemq.broker.BrokerService");
-            final Method method = clazz.getMethod("setSchedulerSupport", new Class[]{Boolean.class});
-            method.invoke(broker, scheduleSupport);
-        } catch (final Throwable e) {
-            if (scheduleSupport) {
-                final Logger logger = Logger.getInstance(LogCategory.OPENEJB_STARTUP, ActiveMQ5Factory.class);
-                logger.error("Failed to activate scheduler support", e);
-            }
-        }
-    }
-
     private Properties getLowerCaseProperties() {
         final Properties newProperties = new Properties();
         if (properties != null) {

http://git-wip-us.apache.org/repos/asf/tomee/blob/1d1d7d00/container/openejb-core/src/test/java/org/apache/openejb/resource/activemq/ActiveMQResourceAdapterTest.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/test/java/org/apache/openejb/resource/activemq/ActiveMQResourceAdapterTest.java b/container/openejb-core/src/test/java/org/apache/openejb/resource/activemq/ActiveMQResourceAdapterTest.java
index dfad874..7764b80 100644
--- a/container/openejb-core/src/test/java/org/apache/openejb/resource/activemq/ActiveMQResourceAdapterTest.java
+++ b/container/openejb-core/src/test/java/org/apache/openejb/resource/activemq/ActiveMQResourceAdapterTest.java
@@ -18,12 +18,29 @@
 package org.apache.openejb.resource.activemq;
 
 import junit.framework.TestCase;
+import org.apache.activemq.broker.BrokerService;
 import org.apache.openejb.util.Duration;
 import org.apache.openejb.util.NetworkUtil;
+import org.apache.openejb.util.reflection.Reflections;
 
 import java.util.concurrent.TimeUnit;
 
 public class ActiveMQResourceAdapterTest extends TestCase {
+    @Override
+    protected void tearDown() throws Exception {
+        cleanup();
+    }
+    @Override
+    protected void setUp() throws Exception {
+        cleanup();
+    }
+
+    private void cleanup() throws Exception {
+        for (final BrokerService bs : ActiveMQFactory.getBrokers()) {
+            bs.stop();
+        }
+    }
+
     public void test() throws Exception {
         final ActiveMQResourceAdapter resourceAdapter = new ActiveMQResourceAdapter();
         resourceAdapter.setServerUrl("vm://localhost?waitForStart=30000&async=false");
@@ -36,4 +53,21 @@ public class ActiveMQResourceAdapterTest extends TestCase {
         //
         resourceAdapter.start(null);
     }
+
+    public void testSchedulerSupport() throws Exception {
+        final ActiveMQResourceAdapter resourceAdapter = new ActiveMQResourceAdapter();
+        resourceAdapter.setServerUrl("vm://localhost?waitForStart=30000&async=false");
+        resourceAdapter.setStartupTimeout(new Duration(10, TimeUnit.SECONDS));
+
+        final String brokerAddress = NetworkUtil.getLocalAddress("broker:(tcp://", ")?useJmx=false&schedulerSupport=true");
+        resourceAdapter.setBrokerXmlConfig(brokerAddress);
+        resourceAdapter.start(null);
+        assertTrue(Boolean.class.cast(Reflections.get(ActiveMQFactory.getBrokers().iterator().next(), "schedulerSupport")));
+        resourceAdapter.stop();
+
+        resourceAdapter.setBrokerXmlConfig(NetworkUtil.getLocalAddress("broker:(tcp://", ")?useJmx=false&schedulerSupport=false"));
+        resourceAdapter.start(null);
+        assertFalse(Boolean.class.cast(Reflections.get(ActiveMQFactory.getBrokers().iterator().next(), "schedulerSupport")));
+        resourceAdapter.stop();
+    }
 }