blob: 97350ff09f4e55e0c6c545fe8312bc29b55f0d6a [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.activemq.artemis.ra;
import javax.jms.Session;
import javax.resource.spi.ConnectionRequestInfo;
/**
* Connection request information
*/
public class ActiveMQRAConnectionRequestInfo implements ConnectionRequestInfo {
/**
* Trace enabled
*/
private static boolean trace = ActiveMQRALogger.LOGGER.isTraceEnabled();
/**
* The user name
*/
private String userName;
/**
* The password
*/
private String password;
/**
* The client id
*/
private String clientID;
/**
* The type
*/
private final int type;
/**
* Use transactions
*/
private final boolean transacted;
/**
* The acknowledge mode
*/
private final int acknowledgeMode;
/**
* Constructor
*
* @param prop The resource adapter properties
* @param type The connection type
*/
public ActiveMQRAConnectionRequestInfo(final ActiveMQRAProperties prop, final int type) {
if (ActiveMQRAConnectionRequestInfo.trace) {
ActiveMQRALogger.LOGGER.trace("constructor(" + prop + ")");
}
userName = prop.getUserName();
password = prop.getPassword();
clientID = prop.getClientID();
this.type = type;
transacted = true;
acknowledgeMode = Session.AUTO_ACKNOWLEDGE;
}
/**
* Constructor
*
* @param transacted Use transactions
* @param acknowledgeMode The acknowledge mode
* @param type The connection type
*/
public ActiveMQRAConnectionRequestInfo(final boolean transacted, final int acknowledgeMode, final int type) {
if (ActiveMQRAConnectionRequestInfo.trace) {
ActiveMQRALogger.LOGGER.trace("constructor(" + transacted +
", " +
acknowledgeMode +
", " +
type +
")");
}
this.transacted = transacted;
this.acknowledgeMode = acknowledgeMode;
this.type = type;
}
/**
* Fill in default values if they are missing
*
* @param prop The resource adapter properties
*/
public void setDefaults(final ActiveMQRAProperties prop) {
if (ActiveMQRAConnectionRequestInfo.trace) {
ActiveMQRALogger.LOGGER.trace("setDefaults(" + prop + ")");
}
if (userName == null) {
userName = prop.getUserName();
}
if (password == null) {
password = prop.getPassword();
}
if (clientID == null) {
clientID = prop.getClientID();
}
}
/**
* Get the user name
*
* @return The value
*/
public String getUserName() {
if (ActiveMQRAConnectionRequestInfo.trace) {
ActiveMQRALogger.LOGGER.trace("getUserName()");
}
return userName;
}
/**
* Set the user name
*
* @param userName The value
*/
public void setUserName(final String userName) {
if (ActiveMQRAConnectionRequestInfo.trace) {
ActiveMQRALogger.LOGGER.trace("setUserName(" + userName + ")");
}
this.userName = userName;
}
/**
* Get the password
*
* @return The value
*/
public String getPassword() {
if (ActiveMQRAConnectionRequestInfo.trace) {
ActiveMQRALogger.LOGGER.trace("getPassword()");
}
return password;
}
/**
* Set the password
*
* @param password The value
*/
public void setPassword(final String password) {
if (ActiveMQRAConnectionRequestInfo.trace) {
ActiveMQRALogger.LOGGER.trace("setPassword(****)");
}
this.password = password;
}
/**
* Get the client id
*
* @return The value
*/
public String getClientID() {
if (ActiveMQRAConnectionRequestInfo.trace) {
ActiveMQRALogger.LOGGER.trace("getClientID()");
}
return clientID;
}
/**
* Set the client id
*
* @param clientID The value
*/
public void setClientID(final String clientID) {
if (ActiveMQRAConnectionRequestInfo.trace) {
ActiveMQRALogger.LOGGER.trace("setClientID(" + clientID + ")");
}
this.clientID = clientID;
}
/**
* Get the connection type
*
* @return The type
*/
public int getType() {
if (ActiveMQRAConnectionRequestInfo.trace) {
ActiveMQRALogger.LOGGER.trace("getType()");
}
return type;
}
/**
* Use transactions
*
* @return True if transacted; otherwise false
*/
public boolean isTransacted() {
if (ActiveMQRAConnectionRequestInfo.trace) {
ActiveMQRALogger.LOGGER.trace("isTransacted() " + transacted);
}
return transacted;
}
/**
* Get the acknowledge mode
*
* @return The mode
*/
public int getAcknowledgeMode() {
if (ActiveMQRAConnectionRequestInfo.trace) {
ActiveMQRALogger.LOGGER.trace("getAcknowledgeMode()");
}
return acknowledgeMode;
}
/**
* Indicates whether some other object is "equal to" this one.
*
* @param obj Object with which to compare
* @return True if this object is the same as the obj argument; false otherwise.
*/
@Override
public boolean equals(final Object obj) {
if (ActiveMQRAConnectionRequestInfo.trace) {
ActiveMQRALogger.LOGGER.trace("equals(" + obj + ")");
}
if (obj == null) {
return false;
}
if (obj instanceof ActiveMQRAConnectionRequestInfo) {
ActiveMQRAConnectionRequestInfo you = (ActiveMQRAConnectionRequestInfo) obj;
return ActiveMQRaUtils.compare(userName, you.getUserName()) && ActiveMQRaUtils.compare(password, you.getPassword()) &&
ActiveMQRaUtils.compare(clientID, you.getClientID()) &&
type == you.getType() &&
transacted == you.isTransacted() &&
acknowledgeMode == you.getAcknowledgeMode();
}
else {
return false;
}
}
/**
* Return the hash code for the object
*
* @return The hash code
*/
@Override
public int hashCode() {
if (ActiveMQRAConnectionRequestInfo.trace) {
ActiveMQRALogger.LOGGER.trace("hashCode()");
}
int hash = 7;
hash += 31 * hash + (userName != null ? userName.hashCode() : 0);
hash += 31 * hash + (password != null ? password.hashCode() : 0);
hash += 31 * hash + Integer.valueOf(type).hashCode();
hash += 31 * hash + (transacted ? 1 : 0);
hash += 31 * hash + Integer.valueOf(acknowledgeMode).hashCode();
return hash;
}
@Override
public String toString() {
return "ActiveMQRAConnectionRequestInfo[type=" + type +
", transacted=" + transacted + ", acknowledgeMode=" + acknowledgeMode +
", clientID=" + clientID + ", userName=" + userName + ", password=****]";
}
}