From d848b43ba9f62fc010c2101399ce6fb25bb39b42 Mon Sep 17 00:00:00 2001 From: gaohoward Date: Fri, 14 Dec 2012 19:09:32 +0800 Subject: [PATCH] change the way to handle initialConnectors (null or empty array) in order to support backward compatibility. added spaces before ifs. --- .../api/core/DiscoveryGroupConfiguration.java | 6 ++-- .../core/client/impl/ServerLocatorImpl.java | 34 ++++++++++++------- 2 files changed, 25 insertions(+), 15 deletions(-) diff --git a/hornetq-core-client/src/main/java/org/hornetq/api/core/DiscoveryGroupConfiguration.java b/hornetq-core-client/src/main/java/org/hornetq/api/core/DiscoveryGroupConfiguration.java index 2796cf040e0..4a4e03509a2 100644 --- a/hornetq-core-client/src/main/java/org/hornetq/api/core/DiscoveryGroupConfiguration.java +++ b/hornetq-core-client/src/main/java/org/hornetq/api/core/DiscoveryGroupConfiguration.java @@ -68,7 +68,7 @@ public DiscoveryGroupConfiguration(final String name, this.refreshTimeout = refreshTimeout; this.discoveryInitialWaitTimeout = discoveryInitialWaitTimeout; this.endpointFactoryConfiguration = endpointFactoryConfiguration; - if(endpointFactoryConfiguration instanceof DiscoveryGroupConfigurationCompatibilityHelper) + if (endpointFactoryConfiguration instanceof DiscoveryGroupConfigurationCompatibilityHelper) { DiscoveryGroupConfigurationCompatibilityHelper dgcch = (DiscoveryGroupConfigurationCompatibilityHelper) endpointFactoryConfiguration; localBindAddress = dgcch.getLocalBindAddress(); @@ -135,7 +135,7 @@ public BroadcastEndpointFactoryConfiguration getBroadcastEndpointFactoryConfigur private void writeObject(ObjectOutputStream out) throws IOException { out.defaultWriteObject(); - if(groupPort < 0) + if (groupPort < 0) { out.writeObject(endpointFactoryConfiguration); } @@ -144,7 +144,7 @@ private void writeObject(ObjectOutputStream out) throws IOException private void readObject(ObjectInputStream in) throws ClassNotFoundException, IOException { in.defaultReadObject(); - if(groupPort < 0) + if (groupPort < 0) { endpointFactoryConfiguration = (BroadcastEndpointFactoryConfiguration) in.readObject(); } diff --git a/hornetq-core-client/src/main/java/org/hornetq/core/client/impl/ServerLocatorImpl.java b/hornetq-core-client/src/main/java/org/hornetq/core/client/impl/ServerLocatorImpl.java index 05f35c378aa..09650cace61 100644 --- a/hornetq-core-client/src/main/java/org/hornetq/core/client/impl/ServerLocatorImpl.java +++ b/hornetq-core-client/src/main/java/org/hornetq/core/client/impl/ServerLocatorImpl.java @@ -415,7 +415,7 @@ private ServerLocatorImpl(final Topology topology, this.discoveryGroupConfiguration = discoveryGroupConfiguration; - this.initialConnectors = transportConfigs != null ? transportConfigs : new TransportConfiguration[] {}; + this.initialConnectors = transportConfigs != null ? transportConfigs : null; this.nodeID = UUIDGenerator.getInstance().generateStringUUID(); @@ -603,7 +603,7 @@ private ClientSessionFactoryInternal connect(final boolean skipWarnings) throws synchronized (this) { // static list of initial connectors - if (initialConnectors.length > 0 && discoveryGroup == null) + if (getNumInitialConnectors() > 0 && discoveryGroup == null) { ClientSessionFactoryInternal sf = (ClientSessionFactoryInternal)staticConnector.connect(skipWarnings); addFactory(sf); @@ -773,7 +773,7 @@ public ClientSessionFactory createSessionFactory() throws HornetQException initialise(); - if (initialConnectors.length == 0 && discoveryGroup != null) + if (this.getNumInitialConnectors() == 0 && discoveryGroup != null) { // Wait for an initial broadcast to give us at least one node in the cluster long timeout = clusterConnection ? 0 : discoveryGroupConfiguration.getDiscoveryInitialWaitTimeout(); @@ -845,7 +845,7 @@ public ClientSessionFactory createSessionFactory() throws HornetQException { throw HornetQClientMessageBundle.BUNDLE.cannotConnectToServers(); } - if (topologyArray == null && attempts == initialConnectors.length) + if (topologyArray == null && attempts == this.getNumInitialConnectors()) { throw HornetQClientMessageBundle.BUNDLE.cannotConnectToServers(); } @@ -1194,6 +1194,7 @@ public void setConnectionLoadBalancingPolicyClassName(final String loadBalancing public TransportConfiguration[] getStaticTransportConfigurations() { + if (initialConnectors == null) return new TransportConfiguration[]{}; return Arrays.copyOf(initialConnectors, initialConnectors.length); } @@ -1278,6 +1279,12 @@ private void checkWrite() } } } + + private int getNumInitialConnectors() + { + if (initialConnectors == null) return 0; + return initialConnectors.length; + } public void setIdentity(String identity) { @@ -1542,12 +1549,12 @@ public String toString() { return "ServerLocatorImpl (identity=" + identity + ") [initialConnectors=" + - Arrays.toString(initialConnectors) + + Arrays.toString(initialConnectors == null ? new TransportConfiguration[0] : initialConnectors) + ", discoveryGroupConfiguration=" + discoveryGroupConfiguration + "]"; } - return "ServerLocatorImpl [initialConnectors=" + Arrays.toString(initialConnectors) + + return "ServerLocatorImpl [initialConnectors=" + Arrays.toString(initialConnectors == null ? new TransportConfiguration[0] : initialConnectors) + ", discoveryGroupConfiguration=" + discoveryGroupConfiguration + "]"; @@ -1594,9 +1601,9 @@ public synchronized void connectorsChanged(List newConnectors) } } - this.initialConnectors = newInitialconnectors; + this.initialConnectors = newInitialconnectors.length == 0 ? null : newInitialconnectors; - if (clusterConnection && !receivedTopology && initialConnectors.length > 0) + if (clusterConnection && !receivedTopology && this.getNumInitialConnectors() > 0) { // The node is alone in the cluster. We create a connection to the new node // to trigger the node notification to form the cluster. @@ -1821,9 +1828,11 @@ private synchronized void createConnectors() } } connectors = new ArrayList(); - for (TransportConfiguration initialConnector : initialConnectors) + if (initialConnectors != null) { - ClientSessionFactoryInternal factory = new ClientSessionFactoryImpl(ServerLocatorImpl.this, + for (TransportConfiguration initialConnector : initialConnectors) + { + ClientSessionFactoryInternal factory = new ClientSessionFactoryImpl(ServerLocatorImpl.this, initialConnector, callTimeout, callFailoverTimeout, @@ -1839,9 +1848,10 @@ private synchronized void createConnectors() outgoingInterceptors, packetDecoder); - factory.disableFinalizeCheck(); + factory.disableFinalizeCheck(); - connectors.add(new Connector(initialConnector, factory)); + connectors.add(new Connector(initialConnector, factory)); + } } }