Support part of JMS build-int properties
Project: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/commit/53cb5348 Tree: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/tree/53cb5348 Diff: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/diff/53cb5348 Branch: refs/heads/jms-dev-1.1.0 Commit: 53cb5348afbfee2d2c21eaebdd6614aab3af9a93 Parents: 815f2f2 Author: zhangke <zhangke_beij...@qq.com> Authored: Tue Feb 28 07:36:23 2017 +0800 Committer: zhangke <zhangke_beij...@qq.com> Committed: Tue Feb 28 07:36:23 2017 +0800 ---------------------------------------------------------------------- .../rocketmq/jms/DeliverMessageService.java | 13 ++++-- .../apache/rocketmq/jms/RocketMQConnection.java | 19 ++++++--- .../rocketmq/jms/RocketMQConnectionFactory.java | 4 +- .../jms/RocketMQConnectionMetaData.java | 31 ++++++-------- .../apache/rocketmq/jms/RocketMQProducer.java | 4 ++ .../jms/exception/MessageExpiredException.java | 31 ++++++++++++++ .../rocketmq/jms/hook/ReceiveMessageHook.java | 44 ++++++++++++++++++++ .../rocketmq/jms/hook/SendMessageHook.java | 11 ++++- .../jms/msg/convert/RMQ2JMSMessageConvert.java | 7 +++- .../jms/msg/enums/JMSPropertiesEnum.java | 26 ++++++++++++ .../rocketmq/jms/support/ObjectTypeCast.java | 10 ++--- .../rocketmq/jms/support/PrimitiveTypeCast.java | 20 ++++----- 12 files changed, 173 insertions(+), 47 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/53cb5348/core/src/main/java/org/apache/rocketmq/jms/DeliverMessageService.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/rocketmq/jms/DeliverMessageService.java b/core/src/main/java/org/apache/rocketmq/jms/DeliverMessageService.java index da37adf..e86ce92 100644 --- a/core/src/main/java/org/apache/rocketmq/jms/DeliverMessageService.java +++ b/core/src/main/java/org/apache/rocketmq/jms/DeliverMessageService.java @@ -38,6 +38,8 @@ import org.apache.rocketmq.client.exception.MQClientException; import org.apache.rocketmq.common.ServiceThread; import org.apache.rocketmq.common.message.MessageExt; import org.apache.rocketmq.common.message.MessageQueue; +import org.apache.rocketmq.jms.exception.MessageExpiredException; +import org.apache.rocketmq.jms.hook.ReceiveMessageHook; import org.apache.rocketmq.jms.msg.convert.RMQ2JMSMessageConvert; import org.apache.rocketmq.jms.support.JMSUtils; import org.slf4j.Logger; @@ -63,6 +65,7 @@ public class DeliverMessageService extends ServiceThread { /** only support RMQ subExpression */ private String messageSelector; + private ReceiveMessageHook hook = new ReceiveMessageHook(); /** * If durable is true, consume message from the offset consumed last time. @@ -184,10 +187,14 @@ public class DeliverMessageService extends ServiceThread { */ private void handleMessage(MessageExt msg, MessageQueue mq) throws InterruptedException, JMSException { Message jmsMessage = RMQ2JMSMessageConvert.convert(msg); - if (jmsMessage.getJMSExpiration() != 0 && System.currentTimeMillis() > jmsMessage.getJMSExpiration()) { - log.debug("The message[id={}] has been expired", msg.getMsgId()); - return; + + try { + hook.before(jmsMessage); } + catch (MessageExpiredException e) { + log.debug(e.getMessage()); + } + final MessageWrapper wrapper = new MessageWrapper(jmsMessage, this.consumer, mq, msg.getQueueOffset()); switch (this.consumeModel) { http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/53cb5348/core/src/main/java/org/apache/rocketmq/jms/RocketMQConnection.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/rocketmq/jms/RocketMQConnection.java b/core/src/main/java/org/apache/rocketmq/jms/RocketMQConnection.java index c68f04a..282c86e 100644 --- a/core/src/main/java/org/apache/rocketmq/jms/RocketMQConnection.java +++ b/core/src/main/java/org/apache/rocketmq/jms/RocketMQConnection.java @@ -17,10 +17,6 @@ package org.apache.rocketmq.jms; -import org.apache.rocketmq.client.ClientConfig; -import org.apache.rocketmq.client.exception.MQClientException; -import org.apache.rocketmq.client.impl.MQClientManager; -import org.apache.rocketmq.client.impl.factory.MQClientInstance; import java.util.ArrayList; import java.util.List; import java.util.concurrent.atomic.AtomicBoolean; @@ -36,6 +32,10 @@ import javax.jms.ServerSessionPool; import javax.jms.Session; import javax.jms.Topic; import org.apache.commons.lang.builder.ToStringBuilder; +import org.apache.rocketmq.client.ClientConfig; +import org.apache.rocketmq.client.exception.MQClientException; +import org.apache.rocketmq.client.impl.MQClientManager; +import org.apache.rocketmq.client.impl.factory.MQClientInstance; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -52,12 +52,17 @@ public class RocketMQConnection implements Connection { private String clientID; private ClientConfig clientConfig; private MQClientInstance clientInstance; + private String userName; + private String password; private List<RocketMQSession> sessionList = new ArrayList(); private AtomicBoolean started = new AtomicBoolean(false); - protected RocketMQConnection(String nameServerAddress, String clientID, String instanceName) { + protected RocketMQConnection(String nameServerAddress, String clientID, String instanceName, String userName, + String password) { this.clientID = clientID; + this.userName = userName; + this.password = password; this.clientConfig = new ClientConfig(); this.clientConfig.setNamesrvAddr(nameServerAddress); @@ -216,6 +221,10 @@ public class RocketMQConnection implements Connection { return clientConfig; } + public String getUserName() { + return userName; + } + @Override public String toString() { return new ToStringBuilder(this) .append("nameServerAddress", this.clientConfig.getNamesrvAddr()) http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/53cb5348/core/src/main/java/org/apache/rocketmq/jms/RocketMQConnectionFactory.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/rocketmq/jms/RocketMQConnectionFactory.java b/core/src/main/java/org/apache/rocketmq/jms/RocketMQConnectionFactory.java index aff3839..c81e8b5 100644 --- a/core/src/main/java/org/apache/rocketmq/jms/RocketMQConnectionFactory.java +++ b/core/src/main/java/org/apache/rocketmq/jms/RocketMQConnectionFactory.java @@ -17,11 +17,11 @@ package org.apache.rocketmq.jms; -import org.apache.rocketmq.client.impl.factory.MQClientInstance; import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.JMSContext; import javax.jms.JMSException; +import org.apache.rocketmq.client.impl.factory.MQClientInstance; import org.apache.rocketmq.jms.support.JMSUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -80,7 +80,7 @@ public class RocketMQConnectionFactory implements ConnectionFactory { private Connection createRocketMQConnection(String userName, String password) throws JMSException { final String instanceName = JMSUtils.uuid(); - RocketMQConnection connection = new RocketMQConnection(this.nameServerAddress, this.clientId, instanceName); + RocketMQConnection connection = new RocketMQConnection(this.nameServerAddress, this.clientId, instanceName, userName, password); log.info("Create a connection successfully[instanceName:{},clientIdentifier:{},userName:{}", instanceName, clientId, userName); return connection; http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/53cb5348/core/src/main/java/org/apache/rocketmq/jms/RocketMQConnectionMetaData.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/rocketmq/jms/RocketMQConnectionMetaData.java b/core/src/main/java/org/apache/rocketmq/jms/RocketMQConnectionMetaData.java index 1f88002..e4353e1 100644 --- a/core/src/main/java/org/apache/rocketmq/jms/RocketMQConnectionMetaData.java +++ b/core/src/main/java/org/apache/rocketmq/jms/RocketMQConnectionMetaData.java @@ -17,16 +17,16 @@ package org.apache.rocketmq.jms; -import org.apache.rocketmq.jms.support.ProviderVersion; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import javax.jms.ConnectionMetaData; -import javax.jms.JMSException; import java.util.Enumeration; import java.util.Vector; import java.util.regex.Matcher; import java.util.regex.Pattern; +import javax.jms.ConnectionMetaData; +import javax.jms.JMSException; +import org.apache.rocketmq.jms.msg.enums.JMSPropertiesEnum; +import org.apache.rocketmq.jms.support.ProviderVersion; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class RocketMQConnectionMetaData implements ConnectionMetaData { @@ -59,7 +59,8 @@ public class RocketMQConnectionMetaData implements ConnectionMetaData { jmsMinor = Integer.parseInt(m.group(2)); } } - } catch (Throwable e) { + } + catch (Throwable e) { log.error("Error during getting jms version", e); } @@ -105,17 +106,11 @@ public class RocketMQConnectionMetaData implements ConnectionMetaData { } public Enumeration<?> getJMSXPropertyNames() throws JMSException { - Vector<String> jmxProperties = new Vector<String>(); - jmxProperties.add("jmsXUserId"); - jmxProperties.add("jmsXAppId"); - jmxProperties.add("jmsXGroupID"); - jmxProperties.add("jmsXGroupSeq"); - jmxProperties.add("jmsXState"); - jmxProperties.add("jmsXDeliveryCount"); - jmxProperties.add("jmsXProducerTXID"); - jmxProperties.add("jmsConsumerTXID"); - jmxProperties.add("jmsRecvTimeStamp"); - return jmxProperties.elements(); + Vector<String> result = new Vector<String>(); + for (JMSPropertiesEnum e : JMSPropertiesEnum.values()) { + result.add(e.name()); + } + return result.elements(); } } http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/53cb5348/core/src/main/java/org/apache/rocketmq/jms/RocketMQProducer.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/rocketmq/jms/RocketMQProducer.java b/core/src/main/java/org/apache/rocketmq/jms/RocketMQProducer.java index 83b760a..6b4f394 100644 --- a/core/src/main/java/org/apache/rocketmq/jms/RocketMQProducer.java +++ b/core/src/main/java/org/apache/rocketmq/jms/RocketMQProducer.java @@ -243,6 +243,10 @@ public class RocketMQProducer implements MessageProducer { sendAsync(rmqMsg, completionListener); } + public RocketMQSession getSession() { + return session; + } + public void setSession(RocketMQSession session) { this.session = session; } http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/53cb5348/core/src/main/java/org/apache/rocketmq/jms/exception/MessageExpiredException.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/rocketmq/jms/exception/MessageExpiredException.java b/core/src/main/java/org/apache/rocketmq/jms/exception/MessageExpiredException.java new file mode 100644 index 0000000..d35b7b1 --- /dev/null +++ b/core/src/main/java/org/apache/rocketmq/jms/exception/MessageExpiredException.java @@ -0,0 +1,31 @@ +/* + * 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.rocketmq.jms.exception; + +import javax.jms.JMSException; + +public class MessageExpiredException extends JMSException { + + public MessageExpiredException(String reason, String errorCode) { + super(reason, errorCode); + } + + public MessageExpiredException(String reason) { + super(reason); + } +} http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/53cb5348/core/src/main/java/org/apache/rocketmq/jms/hook/ReceiveMessageHook.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/rocketmq/jms/hook/ReceiveMessageHook.java b/core/src/main/java/org/apache/rocketmq/jms/hook/ReceiveMessageHook.java new file mode 100644 index 0000000..2bf9bd3 --- /dev/null +++ b/core/src/main/java/org/apache/rocketmq/jms/hook/ReceiveMessageHook.java @@ -0,0 +1,44 @@ +/* + * 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.rocketmq.jms.hook; + +import javax.jms.JMSException; +import javax.jms.Message; +import org.apache.rocketmq.jms.exception.MessageExpiredException; +import org.apache.rocketmq.jms.msg.enums.JMSPropertiesEnum; + +public class ReceiveMessageHook { + + public void before(Message message) throws JMSException { + + validate(message); + + setProviderProperties(message); + } + + private void validate(Message message) throws JMSException { + if (message.getJMSExpiration() != 0 && System.currentTimeMillis() > message.getJMSExpiration()) { + throw new MessageExpiredException(String.format("This message[id=%s] has been expired", message.getJMSMessageID())); + } + } + + public void setProviderProperties(Message message) throws JMSException { + //JMSXRcvTimestamp + message.setLongProperty(JMSPropertiesEnum.JMSXRcvTimestamp.name(), System.currentTimeMillis()); + } +} http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/53cb5348/core/src/main/java/org/apache/rocketmq/jms/hook/SendMessageHook.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/rocketmq/jms/hook/SendMessageHook.java b/core/src/main/java/org/apache/rocketmq/jms/hook/SendMessageHook.java index fcd0579..a20fb98 100644 --- a/core/src/main/java/org/apache/rocketmq/jms/hook/SendMessageHook.java +++ b/core/src/main/java/org/apache/rocketmq/jms/hook/SendMessageHook.java @@ -26,6 +26,7 @@ import org.apache.rocketmq.jms.exception.UnsupportDeliveryModelException; import org.apache.rocketmq.jms.msg.enums.JMSHeaderEnum; import static org.apache.rocketmq.jms.Constant.MESSAGE_ID_PREFIX; +import static org.apache.rocketmq.jms.msg.enums.JMSPropertiesEnum.JMSXUserID; /** * Hook that executes before sending message. @@ -46,11 +47,12 @@ public class SendMessageHook { validate(deliveryMode); - setHeader(message, destination, deliveryMode, priority, timeToLive); + setProviderHeader(message, destination, deliveryMode, priority, timeToLive); + setProviderProperties(message); } - private void setHeader(Message message, Destination destination, int deliveryMode, int priority, + private void setProviderHeader(Message message, Destination destination, int deliveryMode, int priority, long timeToLive) throws JMSException { // destination message.setJMSDestination(destination); @@ -89,6 +91,11 @@ public class SendMessageHook { } } + public void setProviderProperties(Message message) throws JMSException { + // JMSXUserID + message.setStringProperty(JMSXUserID.name(), this.producer.getSession().getConnection().getUserName()); + } + public void setProducer(RocketMQProducer producer) { this.producer = producer; } http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/53cb5348/core/src/main/java/org/apache/rocketmq/jms/msg/convert/RMQ2JMSMessageConvert.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/rocketmq/jms/msg/convert/RMQ2JMSMessageConvert.java b/core/src/main/java/org/apache/rocketmq/jms/msg/convert/RMQ2JMSMessageConvert.java index 89f551a..a86efd8 100644 --- a/core/src/main/java/org/apache/rocketmq/jms/msg/convert/RMQ2JMSMessageConvert.java +++ b/core/src/main/java/org/apache/rocketmq/jms/msg/convert/RMQ2JMSMessageConvert.java @@ -21,14 +21,15 @@ import java.util.Map; import javax.jms.JMSException; import javax.jms.Message; import org.apache.rocketmq.common.message.MessageExt; -import org.apache.rocketmq.jms.msg.enums.JMSHeaderEnum; -import org.apache.rocketmq.jms.msg.enums.JMSMessageModelEnum; import org.apache.rocketmq.jms.RocketMQTopic; import org.apache.rocketmq.jms.msg.AbstractJMSMessage; import org.apache.rocketmq.jms.msg.JMSBytesMessage; import org.apache.rocketmq.jms.msg.JMSMapMessage; import org.apache.rocketmq.jms.msg.JMSObjectMessage; import org.apache.rocketmq.jms.msg.JMSTextMessage; +import org.apache.rocketmq.jms.msg.enums.JMSHeaderEnum; +import org.apache.rocketmq.jms.msg.enums.JMSMessageModelEnum; +import org.apache.rocketmq.jms.msg.enums.JMSPropertiesEnum; import org.apache.rocketmq.jms.msg.serialize.MapSerialize; import org.apache.rocketmq.jms.msg.serialize.ObjectSerialize; import org.apache.rocketmq.jms.msg.serialize.StringSerialize; @@ -83,6 +84,8 @@ public class RMQ2JMSMessageConvert { } private static void setProperties(MessageExt rmqMsg, AbstractJMSMessage jmsMsg) { + jmsMsg.setIntProperty(JMSPropertiesEnum.JMSXDeliveryCount.name(), rmqMsg.getReconsumeTimes() + 1); + Map<String, String> propertiesMap = rmqMsg.getProperties(); if (propertiesMap != null) { for (String properName : propertiesMap.keySet()) { http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/53cb5348/core/src/main/java/org/apache/rocketmq/jms/msg/enums/JMSPropertiesEnum.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/rocketmq/jms/msg/enums/JMSPropertiesEnum.java b/core/src/main/java/org/apache/rocketmq/jms/msg/enums/JMSPropertiesEnum.java new file mode 100644 index 0000000..dd5955b --- /dev/null +++ b/core/src/main/java/org/apache/rocketmq/jms/msg/enums/JMSPropertiesEnum.java @@ -0,0 +1,26 @@ +/* + * 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.rocketmq.jms.msg.enums; + +public enum JMSPropertiesEnum { + JMSXUserID, + JMSXDeliveryCount, + JMSXGroupID, + JMSXGroupSeq, + JMSXRcvTimestamp +} http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/53cb5348/core/src/main/java/org/apache/rocketmq/jms/support/ObjectTypeCast.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/rocketmq/jms/support/ObjectTypeCast.java b/core/src/main/java/org/apache/rocketmq/jms/support/ObjectTypeCast.java index 15d3190..3ff1d69 100644 --- a/core/src/main/java/org/apache/rocketmq/jms/support/ObjectTypeCast.java +++ b/core/src/main/java/org/apache/rocketmq/jms/support/ObjectTypeCast.java @@ -30,7 +30,7 @@ public class ObjectTypeCast { if (String.class.isInstance(obj)) { return (String) obj; } - throw new ClassCastException("To converted object is " + obj.getClass() + ", not String.class"); + throw new ClassCastException("To casted object is " + obj.getClass() + ", not String.class"); } public static Long cast2Long(Object obj) { @@ -40,7 +40,7 @@ public class ObjectTypeCast { if (Long.class.isInstance(obj)) { return (Long) obj; } - throw new ClassCastException("To converted object is " + obj.getClass() + ", not Long.class"); + throw new ClassCastException("To casted object is " + obj.getClass() + ", not Long.class"); } public static Integer cast2Integer(Object obj) { @@ -50,7 +50,7 @@ public class ObjectTypeCast { if (Integer.class.isInstance(obj)) { return (Integer) obj; } - throw new ClassCastException("To converted object is " + obj.getClass() + ", not Integer.class"); + throw new ClassCastException("To casted object is " + obj.getClass() + ", not Integer.class"); } public static Boolean cast2Boolean(Object obj) { @@ -60,7 +60,7 @@ public class ObjectTypeCast { if (Boolean.class.isInstance(obj)) { return (Boolean) obj; } - throw new ClassCastException("To converted object is " + obj.getClass() + ", not Boolean.class"); + throw new ClassCastException("To casted object is " + obj.getClass() + ", not Boolean.class"); } public static <T> T cast2Object(Object obj, Class<T> target) { @@ -70,6 +70,6 @@ public class ObjectTypeCast { if (target.isInstance(obj)) { return (T) obj; } - throw new ClassCastException("To converted object is " + obj.getClass() + ", not " + target.getSimpleName() + ".class"); + throw new ClassCastException("To casted object is " + obj.getClass() + ", not " + target.getSimpleName() + ".class"); } } http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/53cb5348/core/src/main/java/org/apache/rocketmq/jms/support/PrimitiveTypeCast.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/rocketmq/jms/support/PrimitiveTypeCast.java b/core/src/main/java/org/apache/rocketmq/jms/support/PrimitiveTypeCast.java index c6cda19..6e24ab0 100644 --- a/core/src/main/java/org/apache/rocketmq/jms/support/PrimitiveTypeCast.java +++ b/core/src/main/java/org/apache/rocketmq/jms/support/PrimitiveTypeCast.java @@ -63,7 +63,7 @@ public class PrimitiveTypeCast { return Boolean.valueOf((String) obj); } - throw new JMSException("Incorrect type[" + obj.getClass() + "] to convert"); + throw new JMSException("Incorrect type[" + obj.getClass() + "] to cast"); } public static byte cast2Byte(Object obj) throws JMSException { @@ -78,7 +78,7 @@ public class PrimitiveTypeCast { return Byte.valueOf((String) obj); } - throw new JMSException("Incorrect type[" + obj.getClass() + "] to convert"); + throw new JMSException("Incorrect type[" + obj.getClass() + "] to cast"); } public static short cast2Short(Object obj) throws JMSException { @@ -96,7 +96,7 @@ public class PrimitiveTypeCast { return Short.valueOf((String) obj); } - throw new JMSException("Incorrect type[" + obj.getClass() + "] to convert"); + throw new JMSException("Incorrect type[" + obj.getClass() + "] to cast"); } public static char cast2Char(Object obj) throws JMSException { @@ -108,7 +108,7 @@ public class PrimitiveTypeCast { return (Character) obj; } - throw new JMSException("Incorrect type[" + obj.getClass() + "] to convert"); + throw new JMSException("Incorrect type[" + obj.getClass() + "] to cast"); } public static int cast2Int(Object obj) throws JMSException { @@ -129,7 +129,7 @@ public class PrimitiveTypeCast { return Integer.parseInt((String) obj); } - throw new JMSException("Incorrect type[" + obj.getClass() + "] to convert"); + throw new JMSException("Incorrect type[" + obj.getClass() + "] to cast"); } public static long cast2Long(Object obj) throws JMSException { @@ -153,7 +153,7 @@ public class PrimitiveTypeCast { return Long.parseLong((String) obj); } - throw new JMSException("Incorrect type[" + obj.getClass() + "] to convert"); + throw new JMSException("Incorrect type[" + obj.getClass() + "] to cast"); } public static float cast2Float(Object obj) throws JMSException { @@ -168,7 +168,7 @@ public class PrimitiveTypeCast { return Float.parseFloat((String) obj); } - throw new JMSException("Incorrect type[" + obj.getClass() + "] to convert"); + throw new JMSException("Incorrect type[" + obj.getClass() + "] to cast"); } public static double cast2Double(Object obj) throws JMSException { @@ -186,7 +186,7 @@ public class PrimitiveTypeCast { return Double.parseDouble((String) obj); } - throw new JMSException("Incorrect type[" + obj.getClass() + "] to convert"); + throw new JMSException("Incorrect type[" + obj.getClass() + "] to cast"); } public static String cast2String(Object obj) throws JMSException { @@ -207,7 +207,7 @@ public class PrimitiveTypeCast { return obj.toString(); } - throw new JMSException("Incorrect type[" + obj.getClass() + "] to convert"); + throw new JMSException("Incorrect type[" + obj.getClass() + "] to cast"); } public static byte[] cast2ByteArray(Object obj) throws JMSException { @@ -215,6 +215,6 @@ public class PrimitiveTypeCast { return (byte[]) obj; } - throw new JMSException("Incorrect type[" + obj.getClass() + "] to convert"); + throw new JMSException("Incorrect type[" + obj.getClass() + "] to cast"); } }