You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by cl...@apache.org on 2017/04/07 14:35:02 UTC
[2/3] activemq-artemis git commit: NO-JIRA: Using Env as the source
of isTestEnv
NO-JIRA: Using Env as the source of isTestEnv
Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/dbe1976b
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/dbe1976b
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/dbe1976b
Branch: refs/heads/master
Commit: dbe1976b47a15cea30f6dededcd68140b765c61f
Parents: a0f369a
Author: Clebert Suconic <cl...@apache.org>
Authored: Fri Apr 7 10:28:48 2017 -0400
Committer: Clebert Suconic <cl...@apache.org>
Committed: Fri Apr 7 10:31:03 2017 -0400
----------------------------------------------------------------------
.../java/org/apache/activemq/artemis/utils/Env.java | 15 +++++++++++++++
.../core/remoting/impl/netty/NettyConnection.java | 9 +++++++++
.../artemis/core/config/impl/ConfigurationImpl.java | 7 ++-----
.../activemq/artemis/core/server/impl/QueueImpl.java | 4 ++--
.../artemis/tests/util/ActiveMQTestBase.java | 3 ++-
5 files changed, 30 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/dbe1976b/artemis-commons/src/main/java/org/apache/activemq/artemis/utils/Env.java
----------------------------------------------------------------------
diff --git a/artemis-commons/src/main/java/org/apache/activemq/artemis/utils/Env.java b/artemis-commons/src/main/java/org/apache/activemq/artemis/utils/Env.java
index cb94d1c..d7fc48a 100644
--- a/artemis-commons/src/main/java/org/apache/activemq/artemis/utils/Env.java
+++ b/artemis-commons/src/main/java/org/apache/activemq/artemis/utils/Env.java
@@ -23,6 +23,13 @@ package org.apache.activemq.artemis.utils;
*/
public final class Env {
+ /** The system will change a few logs and semantics to be suitable to
+ * run a long testsuite.
+ * Like a few log entries that are only valid during a production system.
+ * or a few cases we need to know as warn on the testsuite and as log in production. */
+ private static boolean testEnv = false;
+
+
private static final String OS = System.getProperty("os.name").toLowerCase();
private static final boolean IS_LINUX = OS.startsWith("linux");
private static final boolean IS_64BIT = checkIs64bit();
@@ -31,6 +38,14 @@ public final class Env {
}
+ public static boolean isTestEnv() {
+ return testEnv;
+ }
+
+ public static void setTestEnv(boolean testEnv) {
+ Env.testEnv = testEnv;
+ }
+
public static boolean isLinuxOs() {
return IS_LINUX == true;
}
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/dbe1976b/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/remoting/impl/netty/NettyConnection.java
----------------------------------------------------------------------
diff --git a/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/remoting/impl/netty/NettyConnection.java b/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/remoting/impl/netty/NettyConnection.java
index 373c2f7..2181643 100644
--- a/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/remoting/impl/netty/NettyConnection.java
+++ b/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/remoting/impl/netty/NettyConnection.java
@@ -41,6 +41,7 @@ import org.apache.activemq.artemis.spi.core.protocol.RemotingConnection;
import org.apache.activemq.artemis.spi.core.remoting.BaseConnectionLifeCycleListener;
import org.apache.activemq.artemis.spi.core.remoting.Connection;
import org.apache.activemq.artemis.spi.core.remoting.ReadyListener;
+import org.apache.activemq.artemis.utils.Env;
import org.apache.activemq.artemis.utils.IPV6Util;
import org.jboss.logging.Logger;
@@ -295,6 +296,14 @@ public class NettyConnection implements Connection {
public final boolean blockUntilWritable(final int requiredCapacity, final long timeout, final TimeUnit timeUnit) {
final boolean isAllowedToBlock = isAllowedToBlock();
if (!isAllowedToBlock) {
+
+ if (Env.isTestEnv()) {
+ // this will only show when inside the testsuite.
+ // we may great the log for FAILURE
+ logger.warn("FAILURE! The code is using blockUntilWritable inside a Netty worker, which would block. " +
+ "The code will probably need fixing!", new Exception("trace"));
+ }
+
if (logger.isDebugEnabled()) {
logger.debug("Calling blockUntilWritable using a thread where it's not allowed");
}
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/dbe1976b/artemis-server/src/main/java/org/apache/activemq/artemis/core/config/impl/ConfigurationImpl.java
----------------------------------------------------------------------
diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/config/impl/ConfigurationImpl.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/config/impl/ConfigurationImpl.java
index f3455d0..3ab7468 100644
--- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/config/impl/ConfigurationImpl.java
+++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/config/impl/ConfigurationImpl.java
@@ -65,6 +65,7 @@ import org.apache.activemq.artemis.core.server.SecuritySettingPlugin;
import org.apache.activemq.artemis.core.server.group.impl.GroupingHandlerConfiguration;
import org.apache.activemq.artemis.core.settings.impl.AddressSettings;
import org.apache.activemq.artemis.core.settings.impl.ResourceLimitSettings;
+import org.apache.activemq.artemis.utils.Env;
import org.apache.activemq.artemis.utils.ObjectInputStreamWithClassLoader;
import org.apache.activemq.artemis.utils.uri.BeanSupport;
import org.jboss.logging.Logger;
@@ -74,10 +75,6 @@ public class ConfigurationImpl implements Configuration, Serializable {
private static final Logger logger = Logger.getLogger(ConfigurationImpl.class);
- // We want to turn of a few log.infos from the testsuite as they would be too verbose for tests
- // Only the testsuite should set this one up
- public static boolean TEST_MODE = false;
-
public static final JournalType DEFAULT_JOURNAL_TYPE = JournalType.ASYNCIO;
private static final long serialVersionUID = 4077088945050267843L;
@@ -357,7 +354,7 @@ public class ConfigurationImpl implements Configuration, Serializable {
public long getGlobalMaxSize() {
if (globalMaxSize == null) {
this.globalMaxSize = ActiveMQDefaultConfiguration.getDefaultMaxGlobalSize();
- if (!TEST_MODE) {
+ if (!Env.isTestEnv()) {
ActiveMQServerLogger.LOGGER.usingDefaultPaging(globalMaxSize);
}
}
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/dbe1976b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/QueueImpl.java
----------------------------------------------------------------------
diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/QueueImpl.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/QueueImpl.java
index 3901a84..dc4b090 100644
--- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/QueueImpl.java
+++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/QueueImpl.java
@@ -47,7 +47,6 @@ import org.apache.activemq.artemis.api.core.Pair;
import org.apache.activemq.artemis.api.core.SimpleString;
import org.apache.activemq.artemis.api.core.management.CoreNotificationType;
import org.apache.activemq.artemis.api.core.management.ManagementHelper;
-import org.apache.activemq.artemis.core.config.impl.ConfigurationImpl;
import org.apache.activemq.artemis.core.filter.Filter;
import org.apache.activemq.artemis.core.io.IOCallback;
import org.apache.activemq.artemis.core.paging.cursor.PagePosition;
@@ -86,6 +85,7 @@ import org.apache.activemq.artemis.core.transaction.impl.BindingsTransactionImpl
import org.apache.activemq.artemis.core.transaction.impl.TransactionImpl;
import org.apache.activemq.artemis.spi.core.protocol.RemotingConnection;
import org.apache.activemq.artemis.utils.ConcurrentHashSet;
+import org.apache.activemq.artemis.utils.Env;
import org.apache.activemq.artemis.utils.FutureLatch;
import org.apache.activemq.artemis.utils.LinkedListIterator;
import org.apache.activemq.artemis.utils.PriorityLinkedList;
@@ -3122,7 +3122,7 @@ public class QueueImpl implements Queue {
}
private void checkDeadLetterAddressAndExpiryAddress(final AddressSettings settings) {
- if (!ConfigurationImpl.TEST_MODE) {
+ if (!Env.isTestEnv()) {
if (settings.getDeadLetterAddress() == null) {
ActiveMQServerLogger.LOGGER.AddressSettingsNoDLA(name);
}
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/dbe1976b/artemis-server/src/test/java/org/apache/activemq/artemis/tests/util/ActiveMQTestBase.java
----------------------------------------------------------------------
diff --git a/artemis-server/src/test/java/org/apache/activemq/artemis/tests/util/ActiveMQTestBase.java b/artemis-server/src/test/java/org/apache/activemq/artemis/tests/util/ActiveMQTestBase.java
index 0ffb386..774b5f5 100644
--- a/artemis-server/src/test/java/org/apache/activemq/artemis/tests/util/ActiveMQTestBase.java
+++ b/artemis-server/src/test/java/org/apache/activemq/artemis/tests/util/ActiveMQTestBase.java
@@ -136,6 +136,7 @@ import org.apache.activemq.artemis.spi.core.security.ActiveMQJAASSecurityManager
import org.apache.activemq.artemis.spi.core.security.ActiveMQSecurityManager;
import org.apache.activemq.artemis.spi.core.security.jaas.InVMLoginModule;
import org.apache.activemq.artemis.utils.ActiveMQThreadFactory;
+import org.apache.activemq.artemis.utils.Env;
import org.apache.activemq.artemis.utils.FileUtil;
import org.apache.activemq.artemis.utils.OrderedExecutorFactory;
import org.apache.activemq.artemis.utils.RandomUtil;
@@ -158,7 +159,7 @@ import org.junit.runner.Description;
public abstract class ActiveMQTestBase extends Assert {
static {
- ConfigurationImpl.TEST_MODE = true;
+ Env.setTestEnv(true);
}
private static final Logger logger = Logger.getLogger(ActiveMQTestBase.class);