This is an automated email from the ASF dual-hosted git repository.
clebertsuconic pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/activemq-artemis.git
The following commit(s) were added to refs/heads/main by this push:
new 12a93e3 Revert "ARTEMIS-3576 Fix toString methods throwing exceptions"
12a93e3 is described below
commit 12a93e3c7e03e32306c07c70aa0e02c381c019ae
Author: Clebert Suconic <[email protected]>
AuthorDate: Mon Nov 29 13:21:24 2021 -0500
Revert "ARTEMIS-3576 Fix toString methods throwing exceptions"
This reverts commit fcd512f9de9630e9f064f2b352e079d981f6218c.
this will be re-applied after fixing the build and tests
---
.../core/remoting/impl/netty/NettyConnection.java | 4 -
.../artemis/jms/client/ActiveMQMessage.java | 15 +--
.../artemis/core/journal/impl/JournalRecord.java | 4 -
.../artemis/protocol/amqp/broker/AMQPMessage.java | 7 +-
.../artemis/protocol/amqp/util/NettyReadable.java | 4 -
.../ra/ActiveMQRAManagedConnectionFactory.java | 2 +-
.../activemq/artemis/ra/ActiveMQRAMessage.java | 5 -
.../core/paging/cursor/impl/PageReader.java | 4 -
.../core/persistence/config/PersistedRole.java | 15 +--
.../impl/journal/codec/DuplicateIDEncoding.java | 7 +-
.../codec/PersistentAddressBindingEncoding.java | 5 -
.../impl/nullpm/NullStorageLargeServerMessage.java | 2 +-
.../BackupReplicationStartFailedMessage.java | 7 +-
.../core/server/cluster/qourum/QuorumManager.java | 5 -
.../core/server/impl/MessageReferenceImpl.java | 15 +--
tests/unit-tests/pom.xml | 4 -
.../artemis/tests/unit/AllClassesTest.java | 138 ---------------------
17 files changed, 18 insertions(+), 225 deletions(-)
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 6d4d5d1..75c092e 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
@@ -45,8 +45,6 @@ import org.apache.activemq.artemis.utils.Env;
import org.apache.activemq.artemis.utils.IPV6Util;
import org.jboss.logging.Logger;
-import static org.apache.activemq.artemis.utils.Preconditions.checkNotNull;
-
public class NettyConnection implements Connection {
private static final Logger logger =
Logger.getLogger(NettyConnection.class);
@@ -76,8 +74,6 @@ public class NettyConnection implements Connection {
final BaseConnectionLifeCycleListener<?> listener,
boolean batchingEnabled,
boolean directDeliver) {
- checkNotNull(channel);
-
this.configuration = configuration;
this.channel = channel;
diff --git
a/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQMessage.java
b/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQMessage.java
index 9ca9918..0991fbc 100644
---
a/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQMessage.java
+++
b/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQMessage.java
@@ -54,7 +54,6 @@ import static
org.apache.activemq.artemis.jms.client.ActiveMQDestination.QUEUE_Q
import static
org.apache.activemq.artemis.jms.client.ActiveMQDestination.TEMP_QUEUE_QUALIFED_PREFIX;
import static
org.apache.activemq.artemis.jms.client.ActiveMQDestination.TEMP_TOPIC_QUALIFED_PREFIX;
import static
org.apache.activemq.artemis.jms.client.ActiveMQDestination.TOPIC_QUALIFIED_PREFIX;
-import static org.apache.activemq.artemis.utils.Preconditions.checkNotNull;
/**
* ActiveMQ Artemis implementation of a JMS Message.
@@ -220,8 +219,6 @@ public class ActiveMQMessage implements javax.jms.Message {
* Constructor for when receiving a message from the server
*/
public ActiveMQMessage(final ClientMessage message, final ClientSession
session) {
- checkNotNull(message);
-
this.message = message;
readOnly = true;
@@ -856,14 +853,10 @@ public class ActiveMQMessage implements javax.jms.Message
{
@Override
public String toString() {
StringBuffer sb = new StringBuffer("ActiveMQMessage[");
- if (message != null) {
- sb.append(getJMSMessageID());
- sb.append("]:");
- sb.append(message.isDurable() ? "PERSISTENT" : "NON-PERSISTENT");
- sb.append("/" + message.toString());
- } else {
- sb.append("]");
- }
+ sb.append(getJMSMessageID());
+ sb.append("]:");
+ sb.append(message.isDurable() ? "PERSISTENT" : "NON-PERSISTENT");
+ sb.append("/" + message.toString());
return sb.toString();
}
diff --git
a/artemis-journal/src/main/java/org/apache/activemq/artemis/core/journal/impl/JournalRecord.java
b/artemis-journal/src/main/java/org/apache/activemq/artemis/core/journal/impl/JournalRecord.java
index 7a2722e..0be90c2 100644
---
a/artemis-journal/src/main/java/org/apache/activemq/artemis/core/journal/impl/JournalRecord.java
+++
b/artemis-journal/src/main/java/org/apache/activemq/artemis/core/journal/impl/JournalRecord.java
@@ -16,8 +16,6 @@
*/
package org.apache.activemq.artemis.core.journal.impl;
-import static org.apache.activemq.artemis.utils.Preconditions.checkNotNull;
-
/**
* This holds the relationship a record has with other files in regard to
reference counting.
* Note: This class used to be called PosFiles
@@ -37,8 +35,6 @@ public class JournalRecord {
private ObjIntIntArrayList<JournalFile> fileUpdates;
public JournalRecord(final JournalFile addFile, final int size) {
- checkNotNull(addFile);
-
this.addFile = addFile;
this.size = size;
diff --git
a/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/broker/AMQPMessage.java
b/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/broker/AMQPMessage.java
index ea838b1..7925563 100644
---
a/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/broker/AMQPMessage.java
+++
b/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/broker/AMQPMessage.java
@@ -1779,16 +1779,11 @@ public abstract class AMQPMessage extends
RefCountMessage implements org.apache.
@Override
public String toString() {
- MessageDataScanningStatus scanningStatus = getDataScanningStatus();
- Map<String, Object> applicationProperties = scanningStatus ==
MessageDataScanningStatus.SCANNED ?
- getApplicationPropertiesMap(false) : Collections.EMPTY_MAP;
-
return this.getClass().getSimpleName() + "( [durable=" + isDurable() +
", messageID=" + getMessageID() +
", address=" + getAddress() +
", size=" + getEncodeSize() +
- ", scanningStatus=" + scanningStatus +
- ", applicationProperties=" + applicationProperties +
+ ", applicationProperties=" + getApplicationPropertiesMap(false) +
", messageAnnotations=" + getMessageAnnotationsMap(false) +
", properties=" + properties +
", extraProperties = " + getExtraProperties() +
diff --git
a/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/util/NettyReadable.java
b/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/util/NettyReadable.java
index b0679b5..2d7bf55 100644
---
a/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/util/NettyReadable.java
+++
b/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/util/NettyReadable.java
@@ -26,8 +26,6 @@ import org.apache.qpid.proton.codec.WritableBuffer;
import io.netty.buffer.ByteBuf;
-import static org.apache.activemq.artemis.utils.Preconditions.checkNotNull;
-
/**
* {@link ReadableBuffer} implementation that wraps a Netty {@link ByteBuf} to
* allow use of Netty buffers to be used when decoding AMQP messages.
@@ -39,8 +37,6 @@ public class NettyReadable implements ReadableBuffer {
private final ByteBuf buffer;
public NettyReadable(ByteBuf buffer) {
- checkNotNull(buffer);
-
this.buffer = buffer;
}
diff --git
a/artemis-ra/src/main/java/org/apache/activemq/artemis/ra/ActiveMQRAManagedConnectionFactory.java
b/artemis-ra/src/main/java/org/apache/activemq/artemis/ra/ActiveMQRAManagedConnectionFactory.java
index be26712..2154a4a 100644
---
a/artemis-ra/src/main/java/org/apache/activemq/artemis/ra/ActiveMQRAManagedConnectionFactory.java
+++
b/artemis-ra/src/main/java/org/apache/activemq/artemis/ra/ActiveMQRAManagedConnectionFactory.java
@@ -332,7 +332,7 @@ public final class ActiveMQRAManagedConnectionFactory
implements ManagedConnecti
}
int hash = mcfProperties.hashCode();
- hash += 31 * (ra != null ? ra.hashCode() : 0);
+ hash += 31 * ra.hashCode();
return hash;
}
diff --git
a/artemis-ra/src/main/java/org/apache/activemq/artemis/ra/ActiveMQRAMessage.java
b/artemis-ra/src/main/java/org/apache/activemq/artemis/ra/ActiveMQRAMessage.java
index 48eff16..39d9fa9 100644
---
a/artemis-ra/src/main/java/org/apache/activemq/artemis/ra/ActiveMQRAMessage.java
+++
b/artemis-ra/src/main/java/org/apache/activemq/artemis/ra/ActiveMQRAMessage.java
@@ -22,8 +22,6 @@ import javax.jms.Message;
import java.util.Arrays;
import java.util.Enumeration;
-import static org.apache.activemq.artemis.utils.Preconditions.checkNotNull;
-
/**
* A wrapper for a message
*/
@@ -46,9 +44,6 @@ public class ActiveMQRAMessage implements Message {
* @param session the session
*/
public ActiveMQRAMessage(final Message message, final ActiveMQRASession
session) {
- checkNotNull(message);
- checkNotNull(session);
-
if (ActiveMQRALogger.LOGGER.isTraceEnabled()) {
ActiveMQRALogger.LOGGER.trace("constructor(" + message + ", " +
session + ")");
}
diff --git
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/cursor/impl/PageReader.java
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/cursor/impl/PageReader.java
index 5d8e141..83ad21e 100644
---
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/cursor/impl/PageReader.java
+++
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/cursor/impl/PageReader.java
@@ -24,8 +24,6 @@ import
org.apache.activemq.artemis.core.paging.cursor.PagePosition;
import org.apache.activemq.artemis.core.paging.impl.Page;
import org.jboss.logging.Logger;
-import static org.apache.activemq.artemis.utils.Preconditions.checkNotNull;
-
public class PageReader implements PageCache {
private static final Logger logger = Logger.getLogger(PageReader.class);
@@ -33,8 +31,6 @@ public class PageReader implements PageCache {
private final int numberOfMessages;
public PageReader(Page page, int numberOfMessages) {
- checkNotNull(page);
-
this.page = page;
this.numberOfMessages = numberOfMessages;
}
diff --git
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/config/PersistedRole.java
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/config/PersistedRole.java
index 38307e8..1af8864 100644
---
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/config/PersistedRole.java
+++
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/config/PersistedRole.java
@@ -24,8 +24,6 @@ import
org.apache.activemq.artemis.core.journal.EncodingSupport;
import org.apache.activemq.artemis.utils.BufferHelper;
import org.apache.activemq.artemis.utils.DataConstants;
-import static org.apache.activemq.artemis.utils.Preconditions.checkNotNull;
-
public class PersistedRole implements EncodingSupport {
private long storeId;
@@ -38,9 +36,6 @@ public class PersistedRole implements EncodingSupport {
}
public PersistedRole(String username, List<String> roles) {
- checkNotNull(username);
- checkNotNull(roles);
-
this.username = username;
this.roles = roles;
}
@@ -100,12 +95,10 @@ public class PersistedRole implements EncodingSupport {
result.append("PersistedRole [storeId=").append(storeId);
result.append(", username=").append(username);
result.append(", roles [");
- if (roles != null) {
- for (int i = 0; i < roles.size(); i++) {
- result.append(roles.get(i));
- if (i < roles.size() - 1) {
- result.append(", ");
- }
+ for (int i = 0; i < roles.size(); i++) {
+ result.append(roles.get(i));
+ if (i < roles.size() - 1) {
+ result.append(", ");
}
}
result.append("]]");
diff --git
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/journal/codec/DuplicateIDEncoding.java
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/journal/codec/DuplicateIDEncoding.java
index 11b4eea..1dd41ff 100644
---
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/journal/codec/DuplicateIDEncoding.java
+++
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/journal/codec/DuplicateIDEncoding.java
@@ -25,8 +25,6 @@ import org.apache.activemq.artemis.utils.ByteUtil;
import org.apache.activemq.artemis.utils.DataConstants;
import org.apache.activemq.artemis.utils.UUID;
-import static org.apache.activemq.artemis.utils.Preconditions.checkNotNull;
-
public class DuplicateIDEncoding implements EncodingSupport {
public SimpleString address;
@@ -34,9 +32,6 @@ public class DuplicateIDEncoding implements EncodingSupport {
public byte[] duplID;
public DuplicateIDEncoding(final SimpleString address, final byte[] duplID)
{
- checkNotNull(address);
- checkNotNull(duplID);
-
this.address = address;
this.duplID = duplID;
@@ -83,7 +78,7 @@ public class DuplicateIDEncoding implements EncodingSupport {
// The bridge will generate IDs on these terms:
// This will make them easier to read
- if (address != null && address.toString().startsWith("BRIDGE") &&
duplID.length == 24) {
+ if (address.toString().startsWith("BRIDGE") && duplID.length == 24) {
try {
ByteBuffer buff = ByteBuffer.wrap(duplID);
diff --git
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/journal/codec/PersistentAddressBindingEncoding.java
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/journal/codec/PersistentAddressBindingEncoding.java
index fdd74a2..e23c69d 100644
---
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/journal/codec/PersistentAddressBindingEncoding.java
+++
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/journal/codec/PersistentAddressBindingEncoding.java
@@ -25,8 +25,6 @@ import
org.apache.activemq.artemis.core.persistence.AddressBindingInfo;
import org.apache.activemq.artemis.api.core.RoutingType;
import org.apache.activemq.artemis.utils.DataConstants;
-import static org.apache.activemq.artemis.utils.Preconditions.checkNotNull;
-
public class PersistentAddressBindingEncoding implements EncodingSupport,
AddressBindingInfo {
public long id;
@@ -61,9 +59,6 @@ public class PersistentAddressBindingEncoding implements
EncodingSupport, Addres
public PersistentAddressBindingEncoding(final SimpleString name,
final EnumSet<RoutingType>
routingTypes,
final boolean autoCreated) {
- checkNotNull(name);
- checkNotNull(routingTypes);
-
this.name = name;
this.routingTypes = routingTypes;
this.autoCreated = autoCreated;
diff --git
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/nullpm/NullStorageLargeServerMessage.java
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/nullpm/NullStorageLargeServerMessage.java
index 4f63931..68c7f88 100644
---
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/nullpm/NullStorageLargeServerMessage.java
+++
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/nullpm/NullStorageLargeServerMessage.java
@@ -125,7 +125,7 @@ class NullStorageLargeServerMessage extends CoreMessage
implements CoreLargeServ
@Override
public String toString() {
- return "NullStorageLargeServerMessage[messageID=" + messageID + ",
durable=" + durable + ", address=" + getAddress() + ",properties=" + properties
+ "]";
+ return "NullStorageLargeServerMessage[messageID=" + messageID + ",
durable=" + durable + ", address=" + getAddress() + ",properties=" +
properties.toString() + "]";
}
@Override
diff --git
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/protocol/core/impl/wireformat/BackupReplicationStartFailedMessage.java
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/protocol/core/impl/wireformat/BackupReplicationStartFailedMessage.java
index b08e53f..fc381c2 100644
---
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/protocol/core/impl/wireformat/BackupReplicationStartFailedMessage.java
+++
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/protocol/core/impl/wireformat/BackupReplicationStartFailedMessage.java
@@ -24,8 +24,6 @@ import java.util.Map;
import org.apache.activemq.artemis.api.core.ActiveMQBuffer;
import org.apache.activemq.artemis.core.protocol.core.impl.PacketImpl;
-import static org.apache.activemq.artemis.utils.Preconditions.checkNotNull;
-
/**
* Informs the Backup trying to start replicating of an error.
*/
@@ -59,9 +57,6 @@ public final class BackupReplicationStartFailedMessage
extends PacketImpl {
public BackupReplicationStartFailedMessage(BackupRegistrationProblem
registrationProblem) {
super(BACKUP_REGISTRATION_FAILED);
-
- checkNotNull(registrationProblem);
-
problem = registrationProblem;
}
@@ -109,6 +104,6 @@ public final class BackupReplicationStartFailedMessage
extends PacketImpl {
@Override
protected String getPacketString() {
- return super.getPacketString() + ", problem=" + (problem != null ?
problem.name() : null);
+ return super.getPacketString() + ", problem=" + problem.name();
}
}
diff --git
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/cluster/qourum/QuorumManager.java
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/cluster/qourum/QuorumManager.java
index 5da3bcd..11be907 100644
---
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/cluster/qourum/QuorumManager.java
+++
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/cluster/qourum/QuorumManager.java
@@ -42,8 +42,6 @@ import
org.apache.activemq.artemis.core.server.ActiveMQServerLogger;
import org.apache.activemq.artemis.core.server.cluster.ClusterControl;
import org.apache.activemq.artemis.core.server.cluster.ClusterController;
-import static org.apache.activemq.artemis.utils.Preconditions.checkNotNull;
-
/**
* A QourumManager can be used to register a {@link
org.apache.activemq.artemis.core.server.cluster.qourum.Quorum} to receive
notifications
* about changes to the cluster. A {@link
org.apache.activemq.artemis.core.server.cluster.qourum.Quorum} can then issue a
vote to the
@@ -75,9 +73,6 @@ public final class QuorumManager implements
ClusterTopologyListener, ActiveMQCom
private int maxClusterSize = 0;
public QuorumManager(ExecutorService threadPool, ClusterController
clusterController) {
- checkNotNull(threadPool);
- checkNotNull(clusterController);
-
this.clusterController = clusterController;
this.executor = threadPool;
}
diff --git
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/MessageReferenceImpl.java
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/MessageReferenceImpl.java
index ca12180..bf81e74 100644
---
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/MessageReferenceImpl.java
+++
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/MessageReferenceImpl.java
@@ -319,16 +319,11 @@ public class MessageReferenceImpl extends
LinkedListImpl.Node<MessageReferenceIm
@Override
public String toString() {
- Message message = getMessage();
- if (message != null) {
- return "Reference[" + message.getMessageID() +
- "]:" +
- (message.isDurable() ? "RELIABLE" : "NON-RELIABLE") +
- ":" +
- message;
- } else {
- return "Reference[]";
- }
+ return "Reference[" + getMessage().getMessageID() +
+ "]:" +
+ (getMessage().isDurable() ? "RELIABLE" : "NON-RELIABLE") +
+ ":" +
+ getMessage();
}
@Override
diff --git a/tests/unit-tests/pom.xml b/tests/unit-tests/pom.xml
index 486f94f..ababdce 100644
--- a/tests/unit-tests/pom.xml
+++ b/tests/unit-tests/pom.xml
@@ -174,10 +174,6 @@
<groupId>com.google.errorprone</groupId>
<artifactId>error_prone_core</artifactId>
</dependency>
- <dependency>
- <groupId>org.mockito</groupId>
- <artifactId>mockito-core</artifactId>
- </dependency>
</dependencies>
diff --git
a/tests/unit-tests/src/test/java/org/apache/activemq/artemis/tests/unit/AllClassesTest.java
b/tests/unit-tests/src/test/java/org/apache/activemq/artemis/tests/unit/AllClassesTest.java
deleted file mode 100644
index 6183e9c..0000000
---
a/tests/unit-tests/src/test/java/org/apache/activemq/artemis/tests/unit/AllClassesTest.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * <p>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p>
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.activemq.artemis.tests.unit;
-
-import com.google.common.collect.ImmutableSet;
-import com.google.common.reflect.ClassPath;
-import org.apache.activemq.artemis.tests.util.RandomUtil;
-import org.jboss.logging.Logger;
-import org.junit.Assume;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-import org.mockito.Mockito;
-
-import java.lang.reflect.Constructor;
-import java.lang.reflect.Modifier;
-import java.lang.reflect.Parameter;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-
-@RunWith(value = Parameterized.class)
-public class AllClassesTest {
- private static final Logger log = Logger.getLogger(AllClassesTest.class);
-
- private static ClassLoader classLoader =
AllClassesTest.class.getClassLoader();
-
- @Parameterized.Parameters(name = "classInfo={0}")
- public static Collection getParameters() {
- List<Class> parameters = new ArrayList<>();
- ClassLoader classLoader = AllClassesTest.class.getClassLoader();
-
- try {
- ClassPath classPath = ClassPath.from(classLoader);
- ImmutableSet<ClassPath.ClassInfo> classInfos =
classPath.getTopLevelClassesRecursive("org.apache.activemq.artemis");
-
- for (ClassPath.ClassInfo classInfo : classInfos) {
- if (!classInfo.getPackageName().contains("tests")) {
- try {
- Class loadedClass = classInfo.load();
- if (!loadedClass.isEnum() && !loadedClass.isInterface() &&
!Modifier.isAbstract(loadedClass.getModifiers())) {
- parameters.add(loadedClass);
- }
- } catch (Throwable loadThrowable) {
- log.debug("cannot load " + classInfo.getName() + ": " +
loadThrowable);
- }
- }
- }
- return parameters;
- } catch (Exception e) {
- log.warn("Exception on loading all classes: " + e);
- }
-
- return parameters;
- }
-
- private Class targetClass;
-
- public AllClassesTest(Class targetClass) {
- this.targetClass = targetClass;
- }
-
-
- @Test
- public void testToString() {
- Object targetInstance = newInstance(targetClass);
- Assume.assumeTrue("cannot create " + targetClass.getName(),
targetInstance != null);
-
- String targetOutput = targetInstance.toString();
- log.debug("targetOutput: " + targetOutput);
- }
-
- private Object newInstance(Class targetClass) {
-
- Constructor[] targetConstructors = targetClass.getDeclaredConstructors();
- Arrays.sort(targetConstructors, (c1, c2) -> c2.getParameterCount() -
c1.getParameterCount());
- for (Constructor targetConstructor : targetConstructors) {
- List<Object> initArgs = new ArrayList<>();
- Parameter[] constructorParameters = targetConstructor.getParameters();
-
- for (Parameter constructorParameter : constructorParameters) {
- Object initArg = null;
- if (constructorParameter.getType().isAssignableFrom(byte.class)) {
- initArg = RandomUtil.randomByte();
- } else if
(constructorParameter.getType().isAssignableFrom(byte[].class)) {
- initArg = RandomUtil.randomBytes();
- } else if
(constructorParameter.getType().isAssignableFrom(boolean.class)) {
- initArg = RandomUtil.randomBoolean();
- } else if
(constructorParameter.getType().isAssignableFrom(char.class)) {
- initArg = RandomUtil.randomChar();
- } else if
(constructorParameter.getType().isAssignableFrom(double.class)) {
- initArg = RandomUtil.randomDouble();
- } else if
(constructorParameter.getType().isAssignableFrom(float.class)) {
- initArg = RandomUtil.randomFloat();
- } else if
(constructorParameter.getType().isAssignableFrom(int.class)) {
- initArg = RandomUtil.randomInt() / 1024;
- } else if
(constructorParameter.getType().isAssignableFrom(long.class)) {
- initArg = RandomUtil.randomLong();
- } else if
(constructorParameter.getType().isAssignableFrom(String.class)) {
- initArg = RandomUtil.randomString();
- } else {
- initArg = null;
- }
- initArgs.add(initArg);
- }
-
- try {
- return targetConstructor.newInstance(initArgs.toArray());
- } catch (Throwable createThrowable) {
- log.debug("cannot construct " + targetClass.getName() + ": " +
createThrowable);
- }
- }
-
- try {
- return Mockito.spy(targetClass);
- } catch (Throwable spyThrowable) {
- log.debug("cannot spy " + targetClass.getName() + ": " +
spyThrowable);
- }
-
- return null;
- }
-}