📄 xbconnectionmetadata.java
字号:
/*------------------------------------------------------------------------------Name: XBConnectionMetaData.javaProject: xmlBlaster.orgCopyright: xmlBlaster.org, see xmlBlaster-LICENSE file------------------------------------------------------------------------------*/package org.xmlBlaster.jms;import java.io.Serializable;import java.util.Collections;import java.util.Enumeration;import java.util.HashSet;import java.util.Set;import java.util.StringTokenizer;import javax.jms.ConnectionMetaData;import javax.jms.JMSException;import org.xmlBlaster.util.Global;import org.xmlBlaster.util.def.ErrorCode;/** * XBConnectionMetaData * * @author <a href="mailto:michele@laghi.eu">Michele Laghi</a> * */public class XBConnectionMetaData extends XBPropertyNames implements ConnectionMetaData, Serializable, Cloneable { /** * */ private static final long serialVersionUID = 1L; private final static String ME = "XBConnectionMetaData"; final static int MAJOR_VERSION = 1; final static int MINOR_VERSION = 1; /** The receiver Timestamp which is a property specific to XmlBlaster */ public final static String JMSX_RCV_TIMESTAMP = "JMSXRcvTimestamp"; /** The maximum size for the data to be transmitted in one single message */ public final static String JMSX_MAX_CHUNK_SIZE = "JMSXMaxChunkSize"; public final static String JMSX_PTP_DESTINATION = "JMSXPtPDest"; /** * When using chunked messages this belongs to a specified group. */ public final static String JMSX_GROUP_ID = "JMSXGroupID"; /** * The internal sequence number within a group. If this is set, then JMSXGroupID must * be set too. */ public final static String JMSX_GROUP_SEQ = "JMSXGroupSeq"; /** * If this exists it is always set to boolean 'true' and tells this is the EOF * message of a sequence (a group) */ public final static String JMSX_GROUP_EOF = "JMSXGroupEof"; /** If set, an exception occured in this chunk. It contains the * exception. It is used to perform clean up in case of exceptions. */ public final static String JMSX_GROUP_EX = "JMSXGroupEx"; /** * These properties are specific to our implementation and must start with the prefix JMSX * */ public final static Set getReservedProps() { final Set ret = new HashSet(); ret.add(JMSX_GROUP_ID); ret.add(JMSX_GROUP_SEQ); ret.add(JMSX_GROUP_EOF); ret.add(JMSX_GROUP_EX); ret.add(JMSX_RCV_TIMESTAMP); ret.add(JMSX_MAX_CHUNK_SIZE); ret.add("JMSX"); return ret; } XBConnectionMetaData() { } private int getProviderVersion(boolean isMinor) throws JMSException { String version = getProviderVersion(); StringTokenizer tok = new StringTokenizer(version, "."); if (tok.countTokens() < 2) throw new JMSException(ME + ".getProviderVersion: exception when parsing version '" + version + "' since it has no separator", ErrorCode.INTERNAL_ILLEGALARGUMENT.getErrorCode()); try { if (isMinor) tok.nextToken(); return Integer.parseInt(tok.nextToken().trim()); } catch (Exception ex) { throw new JMSException(ME + ".getProviderVersion: exception when parsing version '" + version + "' reason: " + ex.getMessage(), ErrorCode.INTERNAL_ILLEGALARGUMENT.getErrorCode()); } } public String getJMSVersion() throws JMSException { return getJMSMajorVersion() + "." + getJMSMinorVersion(); } public int getJMSMajorVersion() throws JMSException { return MAJOR_VERSION; } public int getJMSMinorVersion() throws JMSException { return MINOR_VERSION; } public String getJMSProviderName() throws JMSException { return "xmlBlaster"; } public String getProviderVersion() throws JMSException { return Global.instance().getVersion(); } public int getProviderMajorVersion() throws JMSException { return getProviderVersion(false); } public int getProviderMinorVersion() throws JMSException { return getProviderVersion(true); } public Enumeration getJMSXPropertyNames() throws JMSException { return Collections.enumeration(getReservedProps()); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -