in axis-rt-transport-jms/src/main/java/org/apache/axis/transport/jms/JMSConnectorFactory.java [56:136]
public static JMSConnector matchConnector(java.util.Set connectors,
HashMap connectorProps,
HashMap cfProps,
String username,
String password,
JMSVendorAdapter adapter)
{
java.util.Iterator iter = connectors.iterator();
while (iter.hasNext())
{
JMSConnector conn = (JMSConnector) iter.next();
// username
String connectorUsername = conn.getUsername();
if (!( ((connectorUsername == null) && (username == null)) ||
((connectorUsername != null) && (username != null) && (connectorUsername.equals(username))) ))
continue;
// password
String connectorPassword = conn.getPassword();
if (!( ((connectorPassword == null) && (password == null)) ||
((connectorPassword != null) && (password != null) && (connectorPassword.equals(password))) ))
continue;
// num retries
int connectorNumRetries = conn.getNumRetries();
String propertyNumRetries = (String)connectorProps.get(JMSConstants.NUM_RETRIES);
int numRetries = JMSConstants.DEFAULT_NUM_RETRIES;
if (propertyNumRetries != null)
numRetries = Integer.parseInt(propertyNumRetries);
if (connectorNumRetries != numRetries)
continue;
// client id
String connectorClientID = conn.getClientID();
String clientID = (String)connectorProps.get(JMSConstants.CLIENT_ID);
if (!( ((connectorClientID == null) && (clientID == null))
||
((connectorClientID != null) && (clientID != null) && connectorClientID.equals(clientID)) ))
continue;
// domain
String connectorDomain = (conn instanceof QueueConnector) ? JMSConstants.DOMAIN_QUEUE : JMSConstants.DOMAIN_TOPIC;
String propertyDomain = (String)connectorProps.get(JMSConstants.DOMAIN);
String domain = JMSConstants.DOMAIN_DEFAULT;
if (propertyDomain != null)
domain = propertyDomain;
if (!( ((connectorDomain == null) && (domain == null))
||
((connectorDomain != null) && (domain != null) && connectorDomain.equalsIgnoreCase(domain)) ))
continue;
// the connection factory must also match for the connector to be reused
JMSURLHelper jmsurl = conn.getJMSURL();
if (adapter.isMatchingConnectionFactory(conn.getConnectionFactory(), jmsurl, cfProps))
{
// attempt to reserve the connector
try
{
JMSConnectorManager.getInstance().reserve(conn);
if (log.isDebugEnabled()) {
log.debug("JMSConnectorFactory: Found matching connector");
}
}
catch (Exception e)
{
// ignore. the connector may be in the process of shutting down, so try the next element
continue;
}
return conn;
}
}
if (log.isDebugEnabled()) {
log.debug("JMSConnectorFactory: No matching connectors found");
}
return null;
}