// Path: mbus-java/src/main/java/com/groupon/messagebus/api/DestinationType.java
// public enum DestinationType{
//         QUEUE,
//         TOPIC
// }
// 
// Path: mbus-java/src/main/java/com/groupon/messagebus/api/HostParams.java
// public class HostParams {
//     private String host;
//     private int port;
// 
//     public HostParams(String aHost, int aPort) {
//         host = aHost;
//         port = aPort;
//     }
// 
//     public String getHost() {
//         return host;
//     }
// 
//     public void setHost(String host) {
//         this.host = host;
//     }
// 
//     public int getPort() {
//         return port;
//     }
// 
//     public void setPort(int port) {
//         this.port = port;
//     }
// 
//     public String toString() {
//         return host + ":" + port;
//     }
// 
//     @Override
//     public int hashCode() {
//         String hostName = host + ":" + port;
//         return hostName.hashCode();
//     }
// 
//     @Override
//     public boolean equals(Object o) {
// 
//         if (o instanceof HostParams) {
//             HostParams other = (HostParams) o;
// 
//             return ((host + ":" + port).equalsIgnoreCase((other.getHost() + ":" + other.getPort())));
//         }
// 
//         return false;
//     }
// 
// }


import com.groupon.messagebus.api.DestinationType;
import com.groupon.messagebus.api.HostParams;
package com.groupon.messagebus.api;

/*
 * Copyright (c) 2013, Groupon, Inc.
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are
 * met:
 *
 * Redistributions of source code must retain the above copyright notice,
 * this list of conditions and the following disclaimer.
 *
 * Redistributions in binary form must reproduce the above copyright
 * notice, this list of conditions and the following disclaimer in the
 * documentation and/or other materials provided with the distribution.
 *
 * Neither the name of GROUPON nor the names of its contributors may be
 * used to endorse or promote products derived from this software without
 * specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
 * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
 * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
 * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */


public class ProducerConfig {

    private HostParams broker;
    private long connectionLifetime = 300000;
    private String destinationName;
    private DestinationType destinationType = DestinationType.QUEUE;
    private String userName = "guest";
    private String password = "guest";
    private int publishMaxRetryAttempts = 3;
    private boolean verboseLog = false;

    public boolean isVerboseLog() {
        return verboseLog;
    }

    public void setVerboseLog(boolean verboseLog) {
        this.verboseLog = verboseLog;
    }

	public int getPublishMaxRetryAttempts() {
        return publishMaxRetryAttempts;
    }

    public void setPublishMaxRetryAttempts(int publishMaxRetryAttempts) {
        this.publishMaxRetryAttempts = publishMaxRetryAttempts;
    }

    public HostParams getBroker() {
        return broker;
    }

// Path: mbus-java/src/main/java/com/groupon/messagebus/api/DestinationType.java
// public enum DestinationType{
//         QUEUE,
//         TOPIC
// }
// 
// Path: mbus-java/src/main/java/com/groupon/messagebus/api/HostParams.java
// public class HostParams {
//     private String host;
//     private int port;
// 
//     public HostParams(String aHost, int aPort) {
//         host = aHost;
//         port = aPort;
//     }
// 
//     public String getHost() {
//         return host;
//     }
// 
//     public void setHost(String host) {
//         this.host = host;
//     }
// 
//     public int getPort() {
//         return port;
//     }
// 
//     public void setPort(int port) {
//         this.port = port;
//     }
// 
//     public String toString() {
//         return host + ":" + port;
//     }
// 
//     @Override
//     public int hashCode() {
//         String hostName = host + ":" + port;
//         return hostName.hashCode();
//     }
// 
//     @Override
//     public boolean equals(Object o) {
// 
//         if (o instanceof HostParams) {
//             HostParams other = (HostParams) o;
// 
//             return ((host + ":" + port).equalsIgnoreCase((other.getHost() + ":" + other.getPort())));
//         }
// 
//         return false;
//     }
// 
// }


// Path: mbus-java/src/main/java/com/groupon/messagebus/api/ProducerConfig.java
import com.groupon.messagebus.api.DestinationType;
import com.groupon.messagebus.api.HostParams;

package com.groupon.messagebus.api;

/*
 * Copyright (c) 2013, Groupon, Inc.
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are
 * met:
 *
 * Redistributions of source code must retain the above copyright notice,
 * this list of conditions and the following disclaimer.
 *
 * Redistributions in binary form must reproduce the above copyright
 * notice, this list of conditions and the following disclaimer in the
 * documentation and/or other materials provided with the distribution.
 *
 * Neither the name of GROUPON nor the names of its contributors may be
 * used to endorse or promote products derived from this software without
 * specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
 * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
 * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
 * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */


public class ProducerConfig {

    private HostParams broker;
    private long connectionLifetime = 300000;
    private String destinationName;
    private DestinationType destinationType = DestinationType.QUEUE;
    private String userName = "guest";
    private String password = "guest";
    private int publishMaxRetryAttempts = 3;
    private boolean verboseLog = false;

    public boolean isVerboseLog() {
        return verboseLog;
    }

    public void setVerboseLog(boolean verboseLog) {
        this.verboseLog = verboseLog;
    }

	public int getPublishMaxRetryAttempts() {
        return publishMaxRetryAttempts;
    }

    public void setPublishMaxRetryAttempts(int publishMaxRetryAttempts) {
        this.publishMaxRetryAttempts = publishMaxRetryAttempts;
    }

    public HostParams getBroker() {
        return broker;
    }

    public void setBroker(HostParams broker) {