/**
*
*/
package jframe.ext.dispatch;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.Properties;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* @author dzh
* @date Oct 16, 2014 12:21:47 PM
* @since 1.0
*/
public class MqConf {
static final Logger LOG = LoggerFactory.getLogger(MqConf.class);
/**
* 默认发送队列
*/
public static String DefMqSendQueue;
/**
* 默认接收队列
*/
public static String DefMqRecvQueue;
/**
* mq地址
*/
public static String MqUrl;
/**************************** MQ配置 *****************************/
public static boolean UseAsyncSend;
public static boolean CreateConnectionOnStartup;
public static int MaxConnections;
public static int MaximumActiveSessionPerConnection;
public static long ConsumerTimeout = 60000;
/**************************************************************/
public static long SendSleepTime = 0;
public static long RecvSleepTime = 0;
static boolean init = false;
static MsgTransfer Transfer;
public static int DeliveryMode = 2;
public synchronized static void init(String file) throws Exception {
if (init)
return;
try {
init(new FileInputStream(file));
} catch (Exception e) {
throw e;
}
init = true;
}
public synchronized static void init(InputStream is) throws Exception {
if (is == null)
return;
Properties props = new Properties();
try {
props.load(is);
DefMqSendQueue = props.getProperty("DefMqSendQueue");
DefMqRecvQueue = props.getProperty("DefMqRecvQueue");
// producer
MqUrl = props.getProperty("MqUrl");
UseAsyncSend = Boolean.parseBoolean(props.getProperty(
"UseAsyncSend", "false").trim());
CreateConnectionOnStartup = Boolean.parseBoolean(props.getProperty(
"CreateConnectionOnStartup", "false").trim());
MaxConnections = Integer.parseInt(props.getProperty(
"MaxConnections", "10").trim());
MaximumActiveSessionPerConnection = Integer.parseInt(props
.getProperty("MaximumActiveSessionPerConnection", "100")
.trim());
// consumer
ConsumerTimeout = Long.parseLong(props.getProperty(
"ConsumerTimeout", "60000").trim());
SendSleepTime = Long.parseLong(props.getProperty("SendSleepTime",
"0").trim());
RecvSleepTime = Long.parseLong(props.getProperty("RecvSleepTime",
"0").trim());
// transfer
Transfer = (MsgTransfer) Class.forName(
props.getProperty("MsgTransfer",
TextMsgTransfer.class.getName())).newInstance();
// message
DeliveryMode = Integer.parseInt(props.getProperty("DeliveryMode",
String.valueOf(javax.jms.DeliveryMode.PERSISTENT)));
} catch (Exception e) {
throw e;
} finally {
is.close();
}
}
}