ARTEMIS-3331 - RA improvements to work well with more Servers

https://issues.apache.org/jira/browse/ARTEMIS-3331
This commit is contained in:
Andy Taylor 2021-06-02 10:59:43 +01:00 committed by clebertsuconic
parent 3ff70cb7d3
commit 88122e0cd1
10 changed files with 173 additions and 56 deletions

View File

@ -958,7 +958,9 @@ public class ActiveMQConnectionFactory extends JNDIStorable implements Connectio
@Override @Override
protected void finalize() throws Throwable { protected void finalize() throws Throwable {
try { try {
if (serverLocator != null) {
serverLocator.close(); serverLocator.close();
}
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
//not much we can do here //not much we can do here

View File

@ -47,9 +47,11 @@ import javax.jms.IllegalStateException;
public interface ActiveMQRALogger extends BasicLogger { public interface ActiveMQRALogger extends BasicLogger {
/** /**
* The default logger. * The default logger. Note this uses ActiveMQRALogger.class.getName() instead of ActiveMQRALogger.class.getPackage().getName()
* like the other loggers, this is because some Application Servers use introspection to identify properties which can
* sometimes use a classloader when the rar is uploaded and its possible getpackage() can return null
*/ */
ActiveMQRALogger LOGGER = Logger.getMessageLogger(ActiveMQRALogger.class, ActiveMQRALogger.class.getPackage().getName()); ActiveMQRALogger LOGGER = Logger.getMessageLogger(ActiveMQRALogger.class, ActiveMQRALogger.class.getName());
@LogMessage(level = Logger.Level.INFO) @LogMessage(level = Logger.Level.INFO)
@Message(id = 151000, value = "awaiting topic/queue creation {0}", format = Message.Format.MESSAGE_FORMAT) @Message(id = 151000, value = "awaiting topic/queue creation {0}", format = Message.Format.MESSAGE_FORMAT)

View File

@ -39,7 +39,16 @@ public class ActiveMQRAMCFProperties extends ConnectionFactoryProperties impleme
* The topic type * The topic type
*/ */
private static final String TOPIC_TYPE = Topic.class.getName(); private static final String TOPIC_TYPE = Topic.class.getName();
protected boolean allowLocalTransactions; /**
* If true then for outbound connections a local tx will be used if no JTA is configured
*/
private boolean allowLocalTransactions;
/**
* If true then for outbound connections will always assume that they are part of a transaction.
* This is helpful when running in containers where access to the Transaction manager can't be configured
*/
private boolean inJtaTransaction;
private String strConnectorClassName; private String strConnectorClassName;
@ -176,4 +185,12 @@ public class ActiveMQRAMCFProperties extends ConnectionFactoryProperties impleme
public void setAllowLocalTransactions(boolean allowLocalTransactions) { public void setAllowLocalTransactions(boolean allowLocalTransactions) {
this.allowLocalTransactions = allowLocalTransactions; this.allowLocalTransactions = allowLocalTransactions;
} }
public boolean isInJtaTransaction() {
return inJtaTransaction;
}
public void setInJtaTransaction(boolean inJtaTransaction) {
this.inJtaTransaction = inJtaTransaction;
}
} }

View File

@ -63,11 +63,16 @@ public final class ActiveMQRAManagedConnectionFactory implements ManagedConnecti
*/ */
private ActiveMQConnectionFactory recoveryConnectionFactory; private ActiveMQConnectionFactory recoveryConnectionFactory;
/* /**
* The resource recovery if there is one * The resource recovery if there is one
* */ */
private XARecoveryConfig resourceRecovery; private XARecoveryConfig resourceRecovery;
/**
* Used to configure whether the connection should be part of the JTA TX. This is when the RA doesn not have access to the Transaction manager to deduct whether this is the case.
*/
private boolean inJtaTransaction;
/** /**
* Constructor * Constructor
*/ */
@ -508,6 +513,13 @@ public final class ActiveMQRAManagedConnectionFactory implements ManagedConnecti
mcfProperties.setMinLargeMessageSize(minLargeMessageSize); mcfProperties.setMinLargeMessageSize(minLargeMessageSize);
} }
/**
* A getter as well as a setter for those servers that use introspection
*/
public Boolean getBlockOnAcknowledge() {
return mcfProperties.isBlockOnAcknowledge();
}
public Boolean isBlockOnAcknowledge() { public Boolean isBlockOnAcknowledge() {
return mcfProperties.isBlockOnAcknowledge(); return mcfProperties.isBlockOnAcknowledge();
} }
@ -516,6 +528,13 @@ public final class ActiveMQRAManagedConnectionFactory implements ManagedConnecti
mcfProperties.setBlockOnAcknowledge(blockOnAcknowledge); mcfProperties.setBlockOnAcknowledge(blockOnAcknowledge);
} }
/**
* A getter as well as a setter for those servers that use introspection
*/
public Boolean getBlockOnNonDurableSend() {
return mcfProperties.isBlockOnNonDurableSend();
}
public Boolean isBlockOnNonDurableSend() { public Boolean isBlockOnNonDurableSend() {
return mcfProperties.isBlockOnNonDurableSend(); return mcfProperties.isBlockOnNonDurableSend();
} }
@ -524,6 +543,13 @@ public final class ActiveMQRAManagedConnectionFactory implements ManagedConnecti
mcfProperties.setBlockOnNonDurableSend(blockOnNonDurableSend); mcfProperties.setBlockOnNonDurableSend(blockOnNonDurableSend);
} }
/**
* A getter as well as a setter for those servers that use introspection
*/
public Boolean getBlockOnDurableSend() {
return mcfProperties.isBlockOnDurableSend();
}
public Boolean isBlockOnDurableSend() { public Boolean isBlockOnDurableSend() {
return mcfProperties.isBlockOnDurableSend(); return mcfProperties.isBlockOnDurableSend();
} }
@ -532,6 +558,13 @@ public final class ActiveMQRAManagedConnectionFactory implements ManagedConnecti
mcfProperties.setBlockOnDurableSend(blockOnDurableSend); mcfProperties.setBlockOnDurableSend(blockOnDurableSend);
} }
/**
* A getter as well as a setter for those servers that use introspection
*/
public Boolean getAutoGroup() {
return mcfProperties.isAutoGroup();
}
public Boolean isAutoGroup() { public Boolean isAutoGroup() {
return mcfProperties.isAutoGroup(); return mcfProperties.isAutoGroup();
} }
@ -540,6 +573,13 @@ public final class ActiveMQRAManagedConnectionFactory implements ManagedConnecti
mcfProperties.setAutoGroup(autoGroup); mcfProperties.setAutoGroup(autoGroup);
} }
/**
* A getter as well as a setter for those servers that use introspection
*/
public Boolean getPreAcknowledge() {
return mcfProperties.isPreAcknowledge();
}
public Boolean isPreAcknowledge() { public Boolean isPreAcknowledge() {
return mcfProperties.isPreAcknowledge(); return mcfProperties.isPreAcknowledge();
} }
@ -572,6 +612,13 @@ public final class ActiveMQRAManagedConnectionFactory implements ManagedConnecti
mcfProperties.setReconnectAttempts(reconnectAttempts); mcfProperties.setReconnectAttempts(reconnectAttempts);
} }
/**
* A getter as well as a setter for those servers that use introspection
*/
public Boolean getUseGlobalPools() {
return mcfProperties.isUseGlobalPools();
}
public Boolean isUseGlobalPools() { public Boolean isUseGlobalPools() {
return mcfProperties.isUseGlobalPools(); return mcfProperties.isUseGlobalPools();
} }
@ -580,6 +627,13 @@ public final class ActiveMQRAManagedConnectionFactory implements ManagedConnecti
mcfProperties.setUseGlobalPools(useGlobalPools); mcfProperties.setUseGlobalPools(useGlobalPools);
} }
/**
* A getter as well as a setter for those servers that use introspection
*/
public Boolean getCacheDestinations() {
return mcfProperties.isCacheDestinations();
}
public Boolean isCacheDestinations() { public Boolean isCacheDestinations() {
return mcfProperties.isCacheDestinations(); return mcfProperties.isCacheDestinations();
} }
@ -588,6 +642,13 @@ public final class ActiveMQRAManagedConnectionFactory implements ManagedConnecti
mcfProperties.setCacheDestinations(cacheDestinations); mcfProperties.setCacheDestinations(cacheDestinations);
} }
/**
* A getter as well as a setter for those servers that use introspection
*/
public Boolean getEnable1xPrefixes() {
return mcfProperties.isEnable1xPrefixes();
}
public Boolean isEnable1xPrefixes() { public Boolean isEnable1xPrefixes() {
return mcfProperties.isEnable1xPrefixes(); return mcfProperties.isEnable1xPrefixes();
} }
@ -612,6 +673,13 @@ public final class ActiveMQRAManagedConnectionFactory implements ManagedConnecti
mcfProperties.setThreadPoolMaxSize(threadPoolMaxSize); mcfProperties.setThreadPoolMaxSize(threadPoolMaxSize);
} }
/**
* A getter as well as a setter for those servers that use introspection
*/
public Boolean getHA() {
return mcfProperties.isHA();
}
public Boolean isHA() { public Boolean isHA() {
return mcfProperties.isHA(); return mcfProperties.isHA();
} }
@ -620,10 +688,32 @@ public final class ActiveMQRAManagedConnectionFactory implements ManagedConnecti
mcfProperties.setAllowLocalTransactions(allowLocalTransactions); mcfProperties.setAllowLocalTransactions(allowLocalTransactions);
} }
/**
* A getter as well as a setter for those servers that use introspection
*/
public Boolean getAllowLocalTransactions() {
return mcfProperties.isAllowLocalTransactions();
}
public Boolean isAllowLocalTransactions() { public Boolean isAllowLocalTransactions() {
return mcfProperties.isAllowLocalTransactions(); return mcfProperties.isAllowLocalTransactions();
} }
/**
* A getter as well as a setter for those servers that use introspection
*/
public Boolean getInJtaTransaction() {
return mcfProperties.isInJtaTransaction();
}
public Boolean isInJtaTransaction() {
return mcfProperties.isInJtaTransaction();
}
public void setInJtaTransaction(Boolean inJtaTransaction) {
mcfProperties.setInJtaTransaction(inJtaTransaction);
}
public void setHA(Boolean ha) { public void setHA(Boolean ha) {
mcfProperties.setHA(ha); mcfProperties.setHA(ha);
} }

View File

@ -816,7 +816,7 @@ public final class ActiveMQRASessionFactoryImpl extends ActiveMQConnectionForCon
//Both arguments {@code transacted} and {@code acknowledgeMode} are ignored. //Both arguments {@code transacted} and {@code acknowledgeMode} are ignored.
// fix of ARTEMIS-1669 - when a JMSConnectionFactoryDefinition annotation with the transactional attribute set to false="false" is set // fix of ARTEMIS-1669 - when a JMSConnectionFactoryDefinition annotation with the transactional attribute set to false="false" is set
// then it should not be included in any JTA transaction and behave like that there is no JTA transaction. // then it should not be included in any JTA transaction and behave like that there is no JTA transaction.
if (!mcf.isIgnoreJTA() && inJtaTransaction()) { if (!mcf.isIgnoreJTA() && (inJtaTransaction() || mcf.isInJtaTransaction())) {
transacted = true; transacted = true;
//from getAcknowledgeMode //from getAcknowledgeMode
// If the session is transacted, returns SESSION_TRANSACTED. // If the session is transacted, returns SESSION_TRANSACTED.

View File

@ -750,12 +750,15 @@ public class ConnectionFactoryProperties implements ConnectionFactoryOptions {
return hasBeenUpdated; return hasBeenUpdated;
} }
/*
* This is here just for backward compatibility and not used
* */
public void setEnableSharedClientID(boolean enable) { public void setEnableSharedClientID(boolean enable) {
this.enableSharedClientID = enable; this.enableSharedClientID = enable;
} }
public boolean isEnableSharedClientID() { public boolean isEnableSharedClientID() {
return enableSharedClientID; return enableSharedClientID != null ? enableSharedClientID : false;
} }
@Override @Override

View File

@ -143,7 +143,8 @@ public class ActiveMQActivationSpec extends ConnectionFactoryProperties implemen
logger.trace("constructor()"); logger.trace("constructor()");
} }
ra = null; // we create an Adapter here but only for Application Servers that do introspection on loading to avoid an NPE
ra = new ActiveMQResourceAdapter();
destination = null; destination = null;
destinationType = null; destinationType = null;
messageSelector = null; messageSelector = null;

View File

@ -50,8 +50,12 @@ under the License.
<artifactId>artemis-jms-client</artifactId> <artifactId>artemis-jms-client</artifactId>
</exclusion> </exclusion>
<exclusion> <exclusion>
<groupId>org.apache.geronimo.specs</groupId> <groupId>jakarta.jms</groupId>
<artifactId>geronimo-jms_2.0_spec</artifactId> <artifactId>jakarta.jms-api</artifactId>
</exclusion>
<exclusion>
<groupId>jakarta.json</groupId>
<artifactId>jakarta.json-api</artifactId>
</exclusion> </exclusion>
<exclusion> <exclusion>
<groupId>org.apache.geronimo.specs</groupId> <groupId>org.apache.geronimo.specs</groupId>
@ -63,11 +67,35 @@ under the License.
<groupId>org.apache.activemq</groupId> <groupId>org.apache.activemq</groupId>
<artifactId>artemis-ra</artifactId> <artifactId>artemis-ra</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
<exclusions>
<exclusion>
<groupId>jakarta.transaction</groupId>
<artifactId>jakarta.transaction-api</artifactId>
</exclusion>
<exclusion>
<groupId>jakarta.jms</groupId>
<artifactId>jakarta.jms-api</artifactId>
</exclusion>
</exclusions>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.apache.activemq</groupId> <groupId>org.apache.activemq</groupId>
<artifactId>artemis-jms-server</artifactId> <artifactId>artemis-jms-server</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
<exclusions>
<exclusion>
<groupId>jakarta.transaction</groupId>
<artifactId>jakarta.transaction-api</artifactId>
</exclusion>
<exclusion>
<groupId>jakarta.jms</groupId>
<artifactId>jakarta.jms-api</artifactId>
</exclusion>
<exclusion>
<groupId>jakarta.json</groupId>
<artifactId>jakarta.json-api</artifactId>
</exclusion>
</exclusions>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.apache.activemq</groupId> <groupId>org.apache.activemq</groupId>
@ -78,6 +106,10 @@ under the License.
<groupId>org.apache.activemq</groupId> <groupId>org.apache.activemq</groupId>
<artifactId>artemis-core-client</artifactId> <artifactId>artemis-core-client</artifactId>
</exclusion> </exclusion>
<exclusion>
<groupId>jakarta.json</groupId>
<artifactId>jakarta.json-api</artifactId>
</exclusion>
</exclusions> </exclusions>
</dependency> </dependency>
<dependency> <dependency>

View File

@ -8,11 +8,10 @@
http://java.sun.com/xml/ns/j2ee/connector_1_5.xsd" http://java.sun.com/xml/ns/j2ee/connector_1_5.xsd"
version="1.5"> version="1.5">
<description>ActiveMQ Artemis 2.0 Resource Adapter</description> <display-name>ArtemisRA</display-name>
<display-name>ActiveMQ Artemis 2.0 Resource Adapter</display-name> <description>ActiveMQ Artemis Resource Adapter</description>
<vendor-name>Apache Software Foundation</vendor-name> <vendor-name>Apache Software Foundation</vendor-name>
<eis-type>JMS 1.1 Server</eis-type> <eis-type>JMS 2.0 Server</eis-type>
<resourceadapter-version>1.0</resourceadapter-version> <resourceadapter-version>1.0</resourceadapter-version>
<license> <license>
@ -44,7 +43,7 @@
</description> </description>
<config-property-name>ConnectorClassName</config-property-name> <config-property-name>ConnectorClassName</config-property-name>
<config-property-type>java.lang.String</config-property-type> <config-property-type>java.lang.String</config-property-type>
<config-property-value>org.apache.activemq.artemis.core.remoting.impl.invm.InVMConnectorFactory</config-property-value> <config-property-value>org.apache.activemq.artemis.core.remoting.impl.netty.NettyConnectorFactory</config-property-value>
</config-property> </config-property>
<config-property> <config-property>
<description>The transport configuration. These values must be in the form of key=val;key=val;, <description>The transport configuration. These values must be in the form of key=val;key=val;,
@ -53,217 +52,182 @@
</description> </description>
<config-property-name>ConnectionParameters</config-property-name> <config-property-name>ConnectionParameters</config-property-name>
<config-property-type>java.lang.String</config-property-type> <config-property-type>java.lang.String</config-property-type>
<config-property-value>server-id=0</config-property-value> <config-property-value>host=localhost,port=61616</config-property-value>
</config-property> </config-property>
<!--
<config-property> <!-- <config-property>
<description>Does we support HA</description> <description>Does we support HA</description>
<config-property-name>HA</config-property-name> <config-property-name>HA</config-property-name>
<config-property-type>java.lang.Boolean</config-property-type> <config-property-type>java.lang.Boolean</config-property-type>
<config-property-value>false</config-property-value>
</config-property> </config-property>
<config-property> <config-property>
<description>The method to use for locating the transactionmanager</description> <description>The method to use for locating the transactionmanager</description>
<config-property-name>TransactionManagerLocatorMethod</config-property-name> <config-property-name>TransactionManagerLocatorMethod</config-property-name>
<config-property-type>java.lang.String</config-property-type> <config-property-type>java.lang.String</config-property-type>
<config-property-value>getTm</config-property-value>
</config-property> </config-property>
<config-property> <config-property>
<description>Use A local Transaction instead of XA?</description> <description>Use A local Transaction instead of XA?</description>
<config-property-name>UseLocalTx</config-property-name> <config-property-name>UseLocalTx</config-property-name>
<config-property-type>java.lang.Boolean</config-property-type> <config-property-type>java.lang.Boolean</config-property-type>
<config-property-value>false</config-property-value>
</config-property> </config-property>
<config-property> <config-property>
<description>The user name used to login to the JMS server</description> <description>The user name used to login to the JMS server</description>
<config-property-name>UserName</config-property-name> <config-property-name>UserName</config-property-name>
<config-property-type>java.lang.String</config-property-type> <config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property> </config-property>
<config-property> <config-property>
<description>The password used to login to the JMS server</description> <description>The password used to login to the JMS server</description>
<config-property-name>Password</config-property-name> <config-property-name>Password</config-property-name>
<config-property-type>java.lang.String</config-property-type> <config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property> </config-property>
<config-property> <config-property>
<description>The jndi params to use to look up the jms resources if local jndi is not to be used</description> <description>The jndi params to use to look up the jms resources if local jndi is not to be used</description>
<config-property-name>JndiParams</config-property-name> <config-property-name>JndiParams</config-property-name>
<config-property-type>java.lang.String</config-property-type> <config-property-type>java.lang.String</config-property-type>
<config-property-value>java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory;java.naming.provider.url=jnp://localhost:1199;java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces</config-property-value>
</config-property> </config-property>
<config-property> <config-property>
<description>The jGroups File name</description> <description>The jGroups File name</description>
<config-property-name>JgroupsFile</config-property-name> <config-property-name>JgroupsFile</config-property-name>
<config-property-type>java.lang.String</config-property-type> <config-property-type>java.lang.String</config-property-type>
<config-property-value>jgroups.xml</config-property-value>
</config-property> </config-property>
<config-property> <config-property>
<description>The name of the channel used on this configuration</description> <description>The name of the channel used on this configuration</description>
<config-property-name>JgroupsChannelName</config-property-name> <config-property-name>JgroupsChannelName</config-property-name>
<config-property-type>java.lang.Integer</config-property-type> <config-property-type>java.lang.Integer</config-property-type>
<config-property-value>my-channel</config-property-value>
</config-property> </config-property>
<config-property> <config-property>
<description>The discovery group address</description> <description>The discovery group address</description>
<config-property-name>DiscoveryAddress</config-property-name> <config-property-name>DiscoveryAddress</config-property-name>
<config-property-type>java.lang.String</config-property-type> <config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property> </config-property>
<config-property> <config-property>
<description>The discovery group port</description> <description>The discovery group port</description>
<config-property-name>DiscoveryPort</config-property-name> <config-property-name>DiscoveryPort</config-property-name>
<config-property-type>java.lang.Integer</config-property-type> <config-property-type>java.lang.Integer</config-property-type>
<config-property-value></config-property-value>
</config-property> </config-property>
<config-property> <config-property>
<description>The discovery refresh timeout</description> <description>The discovery refresh timeout</description>
<config-property-name>DiscoveryRefreshTimeout</config-property-name> <config-property-name>DiscoveryRefreshTimeout</config-property-name>
<config-property-type>java.lang.Long</config-property-type> <config-property-type>java.lang.Long</config-property-type>
<config-property-value></config-property-value>
</config-property> </config-property>
<config-property> <config-property>
<description>The discovery initial wait timeout</description> <description>The discovery initial wait timeout</description>
<config-property-name>DiscoveryInitialWaitTimeout</config-property-name> <config-property-name>DiscoveryInitialWaitTimeout</config-property-name>
<config-property-type>java.lang.Long</config-property-type> <config-property-type>java.lang.Long</config-property-type>
<config-property-value></config-property-value>
</config-property> </config-property>
<config-property> <config-property>
<description>The load balancing policy class name</description> <description>The load balancing policy class name</description>
<config-property-name>LoadBalancingPolicyClassName</config-property-name> <config-property-name>LoadBalancingPolicyClassName</config-property-name>
<config-property-type>java.lang.String</config-property-type> <config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property> </config-property>
<config-property> <config-property>
<description>The client failure check period</description> <description>The client failure check period</description>
<config-property-name>ClientFailureCheckPeriod</config-property-name> <config-property-name>ClientFailureCheckPeriod</config-property-name>
<config-property-type>java.lang.Long</config-property-type> <config-property-type>java.lang.Long</config-property-type>
<config-property-value></config-property-value>
</config-property> </config-property>
<config-property> <config-property>
<description>The connection TTL</description> <description>The connection TTL</description>
<config-property-name>ConnectionTTL</config-property-name> <config-property-name>ConnectionTTL</config-property-name>
<config-property-type>java.lang.Long</config-property-type> <config-property-type>java.lang.Long</config-property-type>
<config-property-value></config-property-value>
</config-property> </config-property>
<config-property> <config-property>
<description>The call timeout</description> <description>The call timeout</description>
<config-property-name>CallTimeout</config-property-name> <config-property-name>CallTimeout</config-property-name>
<config-property-type>java.lang.Long</config-property-type> <config-property-type>java.lang.Long</config-property-type>
<config-property-value></config-property-value>
</config-property> </config-property>
<config-property> <config-property>
<description>The dups ok batch size</description> <description>The dups ok batch size</description>
<config-property-name>DupsOKBatchSize</config-property-name> <config-property-name>DupsOKBatchSize</config-property-name>
<config-property-type>java.lang.Integer</config-property-type> <config-property-type>java.lang.Integer</config-property-type>
<config-property-value></config-property-value>
</config-property> </config-property>
<config-property> <config-property>
<description>The transaction batch size</description> <description>The transaction batch size</description>
<config-property-name>TransactionBatchSize</config-property-name> <config-property-name>TransactionBatchSize</config-property-name>
<config-property-type>java.lang.Integer</config-property-type> <config-property-type>java.lang.Integer</config-property-type>
<config-property-value></config-property-value>
</config-property> </config-property>
<config-property> <config-property>
<description>The consumer window size</description> <description>The consumer window size</description>
<config-property-name>ConsumerWindowSize</config-property-name> <config-property-name>ConsumerWindowSize</config-property-name>
<config-property-type>java.lang.Integer</config-property-type> <config-property-type>java.lang.Integer</config-property-type>
<config-property-value></config-property-value>
</config-property> </config-property>
<config-property> <config-property>
<description>The consumer max rate</description> <description>The consumer max rate</description>
<config-property-name>ConsumerMaxRate</config-property-name> <config-property-name>ConsumerMaxRate</config-property-name>
<config-property-type>java.lang.Integer</config-property-type> <config-property-type>java.lang.Integer</config-property-type>
<config-property-value></config-property-value>
</config-property> </config-property>
<config-property> <config-property>
<description>The confirmation window size</description> <description>The confirmation window size</description>
<config-property-name>ConfirmationWindowSize</config-property-name> <config-property-name>ConfirmationWindowSize</config-property-name>
<config-property-type>java.lang.Integer</config-property-type> <config-property-type>java.lang.Integer</config-property-type>
<config-property-value></config-property-value>
</config-property> </config-property>
<config-property> <config-property>
<description>The producer max rate</description> <description>The producer max rate</description>
<config-property-name>ProducerMaxRate</config-property-name> <config-property-name>ProducerMaxRate</config-property-name>
<config-property-type>java.lang.Integer</config-property-type> <config-property-type>java.lang.Integer</config-property-type>
<config-property-value></config-property-value>
</config-property> </config-property>
<config-property> <config-property>
<description>The min large message size</description> <description>The min large message size</description>
<config-property-name>MinLargeMessageSize</config-property-name> <config-property-name>MinLargeMessageSize</config-property-name>
<config-property-type>java.lang.Integer</config-property-type> <config-property-type>java.lang.Integer</config-property-type>
<config-property-value></config-property-value>
</config-property> </config-property>
<config-property> <config-property>
<description>The block on acknowledge</description> <description>The block on acknowledge</description>
<config-property-name>BlockOnAcknowledge</config-property-name> <config-property-name>BlockOnAcknowledge</config-property-name>
<config-property-type>java.lang.Boolean</config-property-type> <config-property-type>java.lang.Boolean</config-property-type>
<config-property-value></config-property-value>
</config-property> </config-property>
<config-property> <config-property>
<description>The block on non durable send</description> <description>The block on non durable send</description>
<config-property-name>BlockOnNonDurableSend</config-property-name> <config-property-name>BlockOnNonDurableSend</config-property-name>
<config-property-type>java.lang.Boolean</config-property-type> <config-property-type>java.lang.Boolean</config-property-type>
<config-property-value></config-property-value>
</config-property> </config-property>
<config-property> <config-property>
<description>The block on durable send</description> <description>The block on durable send</description>
<config-property-name>BlockOnDurableSend</config-property-name> <config-property-name>BlockOnDurableSend</config-property-name>
<config-property-type>java.lang.Boolean</config-property-type> <config-property-type>java.lang.Boolean</config-property-type>
<config-property-value></config-property-value>
</config-property> </config-property>
<config-property> <config-property>
<description>The auto group</description> <description>The auto group</description>
<config-property-name>AutoGroup</config-property-name> <config-property-name>AutoGroup</config-property-name>
<config-property-type>java.lang.Boolean</config-property-type> <config-property-type>java.lang.Boolean</config-property-type>
<config-property-value></config-property-value>
</config-property> </config-property>
<config-property> <config-property>
<description>The max connections</description> <description>The max connections</description>
<config-property-type>java.lang.Integer</config-property-type> <config-property-type>java.lang.Integer</config-property-type>
<config-property-value></config-property-value>
</config-property> </config-property>
<config-property> <config-property>
<description>The pre acknowledge</description> <description>The pre acknowledge</description>
<config-property-name>PreAcknowledge</config-property-name> <config-property-name>PreAcknowledge</config-property-name>
<config-property-type>java.lang.Boolean</config-property-type> <config-property-type>java.lang.Boolean</config-property-type>
<config-property-value></config-property-value>
</config-property> </config-property>
<config-property> <config-property>
<description>The retry interval</description> <description>The retry interval</description>
<config-property-name>RetryInterval</config-property-name> <config-property-name>RetryInterval</config-property-name>
<config-property-type>java.lang.Long</config-property-type> <config-property-type>java.lang.Long</config-property-type>
<config-property-value></config-property-value>
</config-property> </config-property>
<config-property> <config-property>
<description>The retry interval multiplier</description> <description>The retry interval multiplier</description>
<config-property-name>RetryIntervalMultiplier</config-property-name> <config-property-name>RetryIntervalMultiplier</config-property-name>
<config-property-type>java.lang.Double</config-property-type> <config-property-type>java.lang.Double</config-property-type>
<config-property-value></config-property-value>
</config-property> </config-property>
<config-property> <config-property>
<description>The client id</description> <description>The client id</description>
<config-property-name>ClientID</config-property-name> <config-property-name>ClientID</config-property-name>
<config-property-type>java.lang.String</config-property-type> <config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property> </config-property>
<config-property> <config-property>
<description>Whether the password is cleartext or encrypted, default false</description> <description>Whether the password is cleartext or encrypted, default false</description>
<config-property-name>UseMaskedPassword</config-property-name> <config-property-name>UseMaskedPassword</config-property-name>
<config-property-type>java.lang.Boolean</config-property-type> <config-property-type>java.lang.Boolean</config-property-type>
<config-property-value></config-property-value>
</config-property> </config-property>
<config-property> <config-property>
<description>The class definition (full qualified name and its properties) used to encrypt the password</description> <description>The class definition (full qualified name and its properties) used to encrypt the password</description>
<config-property-name>PasswordCodec</config-property-name> <config-property-name>PasswordCodec</config-property-name>
<config-property-type>java.lang.String</config-property-type> <config-property-type>java.lang.String</config-property-type>
<config-property-value>org.apache.activemq.artemis.utils.DefaultSensitiveStringCodec;key=clusterpassword;algorithm=something</config-property-value>
</config-property> </config-property>
<config-property> <config-property>
<description>Cache destinations per session</description> <description>Cache destinations per session</description>
<config-property-name>CacheDestinations</config-property-name> <config-property-name>CacheDestinations</config-property-name>
<config-property-type>java.lang.Boolean</config-property-type> <config-property-type>java.lang.Boolean</config-property-type>
<config-property-value>false</config-property-value>
</config-property>--> </config-property>-->
<outbound-resourceadapter> <outbound-resourceadapter>
@ -276,6 +240,12 @@
<config-property-type>java.lang.String</config-property-type> <config-property-type>java.lang.String</config-property-type>
<config-property-value>javax.jms.Queue</config-property-value> <config-property-value>javax.jms.Queue</config-property-value>
</config-property> </config-property>
<config-property>
<description>Whether or not to participate in a JTA transaction, this is used if the RA does not have access to the Transaction Manager</description>
<config-property-name>InJtaTransaction</config-property-name>
<config-property-type>java.lang.Boolean</config-property-type>
<config-property-value>true</config-property-value>
</config-property>
<config-property> <config-property>
<description>Try to obtain a lock within specified number of seconds; less than or equal to 0 disable this functionality</description> <description>Try to obtain a lock within specified number of seconds; less than or equal to 0 disable this functionality</description>
<config-property-name>UseTryLock</config-property-name> <config-property-name>UseTryLock</config-property-name>

View File

@ -93,7 +93,7 @@
<commons.io.version>2.9.0</commons.io.version> <commons.io.version>2.9.0</commons.io.version>
<fuse.mqtt.client.version>1.16</fuse.mqtt.client.version> <fuse.mqtt.client.version>1.16</fuse.mqtt.client.version>
<guava.version>30.1-jre</guava.version> <guava.version>30.1-jre</guava.version>
<jboss.logging.version>3.4.0.Final</jboss.logging.version> <jboss.logging.version>3.4.2.Final</jboss.logging.version>
<jetty.version>9.4.40.v20210413</jetty.version> <jetty.version>9.4.40.v20210413</jetty.version>
<jgroups.version>3.6.13.Final</jgroups.version> <jgroups.version>3.6.13.Final</jgroups.version>
<errorprone.version>2.6.0</errorprone.version> <errorprone.version>2.6.0</errorprone.version>