Skip to content

Commit

Permalink
ARTEMIS-2074 URI not transposing ServerLocator on ConnectionFactory
Browse files Browse the repository at this point in the history
This closes #2286
As it superceedes it
  • Loading branch information
clebertsuconic committed Sep 4, 2018
1 parent 0d9f5eb commit 1ce0c77
Show file tree
Hide file tree
Showing 7 changed files with 34 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,14 @@ public class ActiveMQConnectionFactory extends JNDIStorable implements Connectio

private static final long serialVersionUID = 6730844785641767519L;

public ServerLocator setUseTopologyForLoadBalancing(boolean useTopologyForLoadBalancing) {
return serverLocator.setUseTopologyForLoadBalancing(useTopologyForLoadBalancing);
}

public boolean getUseTopologyForLoadBalancing() {
return serverLocator.getUseTopologyForLoadBalancing();
}

private ServerLocator serverLocator;

private String clientID;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,4 +36,13 @@ protected JMSConnectionOptions newConectionOptions(URI uri, Map<String, String>
return BeanSupport.setData(uri, new JMSConnectionOptions(), query);
}


protected ActiveMQConnectionFactory setData(URI uri,
Map<String, String> query,
ActiveMQConnectionFactory factory) throws Exception {
BeanSupport.setData(uri, factory.getServerLocator(), query);
return BeanSupport.setData(uri, factory, query);
}


}
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,9 @@ protected ActiveMQConnectionFactory internalNewObject(URI uri,
String name) throws Exception {
JMSConnectionOptions options = newConectionOptions(uri, query);
ActiveMQConnectionFactory factory = ActiveMQJMSClient.createConnectionFactoryWithoutHA(options.getFactoryTypeEnum(), InVMTransportConfigurationSchema.createTransportConfiguration(uri, query, name, "org.apache.activemq.artemis.core.remoting.impl.invm.InVMConnectorFactory"));
return BeanSupport.setData(uri, factory, query);
BeanSupport.setData(uri, factory, query);
BeanSupport.setData(uri, factory.getServerLocator(), query);
return factory;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ public ActiveMQConnectionFactory internalNewObject(URI uri,
} else {
factory = ActiveMQJMSClient.createConnectionFactoryWithoutHA(dcConfig, options.getFactoryTypeEnum());
}
return BeanSupport.setData(uri, factory, query);
return setData(uri, query, factory);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ protected ActiveMQConnectionFactory internalNewObject(URI uri,
factory = ActiveMQJMSClient.createConnectionFactoryWithoutHA(options.getFactoryTypeEnum(), tcs);
}

return BeanSupport.setData(uri, factory, query);
return setData(uri, query, factory);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ public ActiveMQConnectionFactory internalNewObject(URI uri,
} else {
factory = ActiveMQJMSClient.createConnectionFactoryWithoutHA(dgc, options.getFactoryTypeEnum());
}
return BeanSupport.setData(uri, factory, query);
return setData(uri, query, factory);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -719,4 +719,15 @@ public void test1xNamingNegative() throws NamingException, JMSException {

connection.close();
}

@Test
public void testUseTopologyForLoadBalancing() throws Exception {
Hashtable<String, String> props = new Hashtable<>();
props.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.activemq.artemis.jndi.ActiveMQInitialContextFactory");
props.put("connectionFactory.ConnectionFactory", "vm://0?useTopologyForLoadBalancing=false");
Context ctx = new InitialContext(props);

ConnectionFactory connectionFactory = (ConnectionFactory) ctx.lookup("ConnectionFactory");
assertFalse(((ActiveMQConnectionFactory)connectionFactory).getServerLocator().getUseTopologyForLoadBalancing());
}
}

0 comments on commit 1ce0c77

Please sign in to comment.