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/09/26 17:24:48 UTC
activemq-artemis git commit: NO-JIRA: Allow subclasses to more easily
override BroadcastEndpointFactory used during connection factory creation.
[Forced Update!]
Repository: activemq-artemis
Updated Branches:
refs/heads/master 1229c73ae -> 4bf204c01 (forced update)
NO-JIRA: Allow subclasses to more easily override BroadcastEndpointFactory used during connection factory creation.
Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/4bf204c0
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/4bf204c0
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/4bf204c0
Branch: refs/heads/master
Commit: 4bf204c01225e058a5b723e301e53a79f3128f3a
Parents: 266ead74
Author: Paul Ferraro <pa...@redhat.com>
Authored: Wed Aug 23 19:51:30 2017 -0400
Committer: Clebert Suconic <cl...@apache.org>
Committed: Tue Sep 26 13:24:37 2017 -0400
----------------------------------------------------------------------
.../artemis/ra/ActiveMQResourceAdapter.java | 87 ++++++++------------
1 file changed, 35 insertions(+), 52 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/4bf204c0/artemis-ra/src/main/java/org/apache/activemq/artemis/ra/ActiveMQResourceAdapter.java
----------------------------------------------------------------------
diff --git a/artemis-ra/src/main/java/org/apache/activemq/artemis/ra/ActiveMQResourceAdapter.java b/artemis-ra/src/main/java/org/apache/activemq/artemis/ra/ActiveMQResourceAdapter.java
index bd4b8c9..a43d37b 100644
--- a/artemis-ra/src/main/java/org/apache/activemq/artemis/ra/ActiveMQResourceAdapter.java
+++ b/artemis-ra/src/main/java/org/apache/activemq/artemis/ra/ActiveMQResourceAdapter.java
@@ -1697,38 +1697,15 @@ public class ActiveMQResourceAdapter implements ResourceAdapter, Serializable {
ActiveMQConnectionFactory cf;
List<String> connectorClassName = overrideProperties.getParsedConnectorClassNames() != null ? overrideProperties.getParsedConnectorClassNames() : raProperties.getParsedConnectorClassNames();
- String discoveryAddress = overrideProperties.getDiscoveryAddress() != null ? overrideProperties.getDiscoveryAddress() : getDiscoveryAddress();
-
Boolean ha = overrideProperties.isHA() != null ? overrideProperties.isHA() : getHA();
- String jgroupsFileName = overrideProperties.getJgroupsFile() != null ? overrideProperties.getJgroupsFile() : getJgroupsFile();
-
- String jgroupsChannel = overrideProperties.getJgroupsChannelName() != null ? overrideProperties.getJgroupsChannelName() : getJgroupsChannelName();
-
- String jgroupsLocatorClassName = raProperties.getJgroupsChannelLocatorClass();
-
if (ha == null) {
ha = ActiveMQClient.DEFAULT_IS_HA;
}
- if (discoveryAddress != null || jgroupsFileName != null || jgroupsLocatorClassName != null) {
- BroadcastEndpointFactory endpointFactory = null;
-
- if (jgroupsLocatorClassName != null) {
- String jchannelRefName = raProperties.getJgroupsChannelRefName();
- JChannel jchannel = ActiveMQRaUtils.locateJGroupsChannel(jgroupsLocatorClassName, jchannelRefName);
- endpointFactory = new ChannelBroadcastEndpointFactory(jchannel, jgroupsChannel);
- } else if (discoveryAddress != null) {
- Integer discoveryPort = overrideProperties.getDiscoveryPort() != null ? overrideProperties.getDiscoveryPort() : getDiscoveryPort();
- if (discoveryPort == null) {
- discoveryPort = ActiveMQClient.DEFAULT_DISCOVERY_PORT;
- }
+ BroadcastEndpointFactory endpointFactory = this.createBroadcastEndpointFactory(overrideProperties);
- String localBindAddress = overrideProperties.getDiscoveryLocalBindAddress() != null ? overrideProperties.getDiscoveryLocalBindAddress() : raProperties.getDiscoveryLocalBindAddress();
- endpointFactory = new UDPBroadcastEndpointFactory().setGroupAddress(discoveryAddress).setGroupPort(discoveryPort).setLocalBindAddress(localBindAddress).setLocalBindPort(-1);
- } else if (jgroupsFileName != null) {
- endpointFactory = new JGroupsFileBroadcastEndpointFactory().setChannelName(jgroupsChannel).setFile(jgroupsFileName);
- }
+ if (endpointFactory != null) {
Long refreshTimeout = overrideProperties.getDiscoveryRefreshTimeout() != null ? overrideProperties.getDiscoveryRefreshTimeout() : raProperties.getDiscoveryRefreshTimeout();
if (refreshTimeout == null) {
refreshTimeout = ActiveMQClient.DEFAULT_DISCOVERY_REFRESH_TIMEOUT;
@@ -1795,34 +1772,10 @@ public class ActiveMQResourceAdapter implements ResourceAdapter, Serializable {
ActiveMQConnectionFactory cf;
List<String> connectorClassName = overrideProperties.getParsedConnectorClassNames() != null ? overrideProperties.getParsedConnectorClassNames() : raProperties.getParsedConnectorClassNames();
- String discoveryAddress = overrideProperties.getDiscoveryAddress() != null ? overrideProperties.getDiscoveryAddress() : getDiscoveryAddress();
-
- String jgroupsFileName = overrideProperties.getJgroupsFile() != null ? overrideProperties.getJgroupsFile() : getJgroupsFile();
-
- String jgroupsChannel = overrideProperties.getJgroupsChannelName() != null ? overrideProperties.getJgroupsChannelName() : getJgroupsChannelName();
-
if (connectorClassName == null) {
- BroadcastEndpointFactory endpointFactory = null;
- if (discoveryAddress != null) {
- Integer discoveryPort = overrideProperties.getDiscoveryPort() != null ? overrideProperties.getDiscoveryPort() : getDiscoveryPort();
- if (discoveryPort == null) {
- discoveryPort = ActiveMQClient.DEFAULT_DISCOVERY_PORT;
- }
-
- String localBindAddress = overrideProperties.getDiscoveryLocalBindAddress() != null ? overrideProperties.getDiscoveryLocalBindAddress() : raProperties.getDiscoveryLocalBindAddress();
- endpointFactory = new UDPBroadcastEndpointFactory().setGroupAddress(discoveryAddress).setGroupPort(discoveryPort).setLocalBindAddress(localBindAddress).setLocalBindPort(-1);
- } else if (jgroupsFileName != null) {
- endpointFactory = new JGroupsFileBroadcastEndpointFactory().setChannelName(jgroupsChannel).setFile(jgroupsFileName);
- } else {
- String jgroupsLocatorClass = raProperties.getJgroupsChannelLocatorClass();
- if (jgroupsLocatorClass != null) {
- String jgroupsChannelRefName = raProperties.getJgroupsChannelRefName();
- JChannel jchannel = ActiveMQRaUtils.locateJGroupsChannel(jgroupsLocatorClass, jgroupsChannelRefName);
- endpointFactory = new ChannelBroadcastEndpointFactory(jchannel, jgroupsChannel);
- }
- if (endpointFactory == null) {
- throw new IllegalArgumentException("must provide either TransportType or DiscoveryGroupAddress and DiscoveryGroupPort for ResourceAdapter Connection Factory");
- }
+ BroadcastEndpointFactory endpointFactory = this.createBroadcastEndpointFactory(overrideProperties);
+ if (endpointFactory == null) {
+ throw new IllegalArgumentException("must provide either TransportType or DiscoveryGroupAddress and DiscoveryGroupPort for ResourceAdapter Connection Factory");
}
Long refreshTimeout = overrideProperties.getDiscoveryRefreshTimeout() != null ? overrideProperties.getDiscoveryRefreshTimeout() : raProperties.getDiscoveryRefreshTimeout();
@@ -1880,6 +1833,36 @@ public class ActiveMQResourceAdapter implements ResourceAdapter, Serializable {
return cf;
}
+ protected BroadcastEndpointFactory createBroadcastEndpointFactory(final ConnectionFactoryProperties overrideProperties) {
+
+ String discoveryAddress = overrideProperties.getDiscoveryAddress() != null ? overrideProperties.getDiscoveryAddress() : getDiscoveryAddress();
+ if (discoveryAddress != null) {
+ Integer discoveryPort = overrideProperties.getDiscoveryPort() != null ? overrideProperties.getDiscoveryPort() : getDiscoveryPort();
+ if (discoveryPort == null) {
+ discoveryPort = ActiveMQClient.DEFAULT_DISCOVERY_PORT;
+ }
+
+ String localBindAddress = overrideProperties.getDiscoveryLocalBindAddress() != null ? overrideProperties.getDiscoveryLocalBindAddress() : raProperties.getDiscoveryLocalBindAddress();
+ return new UDPBroadcastEndpointFactory().setGroupAddress(discoveryAddress).setGroupPort(discoveryPort).setLocalBindAddress(localBindAddress).setLocalBindPort(-1);
+ }
+
+ String jgroupsChannel = overrideProperties.getJgroupsChannelName() != null ? overrideProperties.getJgroupsChannelName() : getJgroupsChannelName();
+
+ String jgroupsLocatorClassName = raProperties.getJgroupsChannelLocatorClass();
+ if (jgroupsLocatorClassName != null) {
+ String jchannelRefName = raProperties.getJgroupsChannelRefName();
+ JChannel jchannel = ActiveMQRaUtils.locateJGroupsChannel(jgroupsLocatorClassName, jchannelRefName);
+ return new ChannelBroadcastEndpointFactory(jchannel, jgroupsChannel);
+ }
+
+ String jgroupsFileName = overrideProperties.getJgroupsFile() != null ? overrideProperties.getJgroupsFile() : getJgroupsFile();
+ if (jgroupsFileName != null) {
+ return new JGroupsFileBroadcastEndpointFactory().setChannelName(jgroupsChannel).setFile(jgroupsFileName);
+ }
+
+ return null;
+ }
+
public Map<String, Object> overrideConnectionParameters(final Map<String, Object> connectionParams,
final Map<String, Object> overrideConnectionParams) {
Map<String, Object> map = new HashMap<>();