Remove guava dependency
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/f28dffe2 Tree: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/tree/f28dffe2 Diff: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/diff/f28dffe2 Branch: refs/heads/jms-dev-1.1.0 Commit: f28dffe232d8c2a59c415a89818258682e09bc5d Parents: 5b6ae8b Author: zhangke <zhangke_beij...@qq.com> Authored: Thu Mar 2 18:48:44 2017 +0800 Committer: zhangke <zhangke_beij...@qq.com> Committed: Thu Mar 2 18:54:59 2017 +0800 ---------------------------------------------------------------------- pom.xml | 13 +++--- .../apache/rocketmq/jms/RocketMQSession.java | 4 +- .../rocketmq/jms/msg/AbstractJMSMessage.java | 12 +++--- .../jms/msg/serialize/StringSerialize.java | 18 ++------ .../apache/rocketmq/jms/support/JMSUtils.java | 19 +++++++++ .../apache/rocketmq/jms/support/Prediction.java | 33 ++++++++++++++ .../jms/integration/source/RocketMQAdmin.java | 5 ++- .../rocketmq/jms/support/JMSUtilsTest.java | 6 +++ .../rocketmq/jms/support/PredictionTest.java | 45 ++++++++++++++++++++ 9 files changed, 123 insertions(+), 32 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/f28dffe2/pom.xml ---------------------------------------------------------------------- diff --git a/pom.xml b/pom.xml index 7bd3af1..2b5ce14 100644 --- a/pom.xml +++ b/pom.xml @@ -56,11 +56,11 @@ <artifactId>javax.jms-api</artifactId> <version>2.0.1</version> </dependency> - <dependency> - <groupId>com.google.guava</groupId> - <artifactId>guava</artifactId> - <version>18.0</version> - </dependency> + <!--<dependency>--> + <!--<groupId>com.google.guava</groupId>--> + <!--<artifactId>guava</artifactId>--> + <!--<version>18.0</version>--> + <!--</dependency>--> <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> @@ -139,7 +139,6 @@ <configuration> <forkCount>1</forkCount> <reuseForks>true</reuseForks> - <argLine>@{failsafeArgLine}</argLine> <includes> <include>**/integration/**</include> </includes> @@ -251,7 +250,7 @@ <limit implementation="org.jacoco.report.check.Limit"> <counter>COMPLEXITY</counter> <value>COVEREDRATIO</value> - <minimum>0.20</minimum> + <minimum>0.30</minimum> </limit> </limits> </rule> http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/f28dffe2/src/main/java/org/apache/rocketmq/jms/RocketMQSession.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/rocketmq/jms/RocketMQSession.java b/src/main/java/org/apache/rocketmq/jms/RocketMQSession.java index 59d5789..583b151 100644 --- a/src/main/java/org/apache/rocketmq/jms/RocketMQSession.java +++ b/src/main/java/org/apache/rocketmq/jms/RocketMQSession.java @@ -17,7 +17,6 @@ package org.apache.rocketmq.jms; -import com.google.common.base.Preconditions; import java.io.Serializable; import java.util.ArrayList; import java.util.HashSet; @@ -55,6 +54,7 @@ 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.support.JMSUtils; +import org.apache.rocketmq.jms.support.Prediction; import org.apache.rocketmq.remoting.exception.RemotingException; import org.apache.rocketmq.tools.admin.DefaultMQAdminExt; import org.slf4j.Logger; @@ -242,7 +242,7 @@ public class RocketMQSession implements Session { @Override public Topic createTopic(String topicName) throws JMSException { - Preconditions.checkNotNull(topicName); + Prediction.checkNotBlank(topicName, "TopicName could not be blank"); return new RocketMQTopic(topicName); } http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/f28dffe2/src/main/java/org/apache/rocketmq/jms/msg/AbstractJMSMessage.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/rocketmq/jms/msg/AbstractJMSMessage.java b/src/main/java/org/apache/rocketmq/jms/msg/AbstractJMSMessage.java index fecff14..b629024 100644 --- a/src/main/java/org/apache/rocketmq/jms/msg/AbstractJMSMessage.java +++ b/src/main/java/org/apache/rocketmq/jms/msg/AbstractJMSMessage.java @@ -17,16 +17,16 @@ package org.apache.rocketmq.jms.msg; -import com.google.common.collect.Maps; -import com.google.common.io.BaseEncoding; import java.util.Collections; import java.util.Enumeration; +import java.util.HashMap; import java.util.Map; import javax.jms.Destination; import javax.jms.JMSException; import javax.jms.MessageNotWriteableException; import org.apache.commons.lang.builder.ToStringBuilder; import org.apache.rocketmq.jms.msg.enums.JMSHeaderEnum; +import org.apache.rocketmq.jms.support.JMSUtils; import static org.apache.rocketmq.jms.msg.enums.JMSHeaderEnum.JMSCorrelationID; import static org.apache.rocketmq.jms.msg.enums.JMSHeaderEnum.JMSDeliveryMode; @@ -53,8 +53,8 @@ import static org.apache.rocketmq.jms.support.ObjectTypeCast.cast2String; public abstract class AbstractJMSMessage implements javax.jms.Message { - protected Map<JMSHeaderEnum, Object> headers = Maps.newHashMap(); - protected Map<String, Object> properties = Maps.newHashMap(); + protected Map<JMSHeaderEnum, Object> headers = new HashMap(); + protected Map<String, Object> properties = new HashMap(); protected boolean writeOnly; @@ -86,7 +86,7 @@ public abstract class AbstractJMSMessage implements javax.jms.Message { String jmsCorrelationID = getJMSCorrelationID(); if (jmsCorrelationID != null) { try { - return BaseEncoding.base64().decode(jmsCorrelationID); + return JMSUtils.string2Bytes(jmsCorrelationID); } catch (Exception e) { return jmsCorrelationID.getBytes(); @@ -97,7 +97,7 @@ public abstract class AbstractJMSMessage implements javax.jms.Message { @Override public void setJMSCorrelationIDAsBytes(byte[] correlationID) { - String encodedText = BaseEncoding.base64().encode(correlationID); + String encodedText = JMSUtils.bytes2String(correlationID); setJMSCorrelationID(encodedText); } http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/f28dffe2/src/main/java/org/apache/rocketmq/jms/msg/serialize/StringSerialize.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/rocketmq/jms/msg/serialize/StringSerialize.java b/src/main/java/org/apache/rocketmq/jms/msg/serialize/StringSerialize.java index 9ee0d3b..b6119a5 100644 --- a/src/main/java/org/apache/rocketmq/jms/msg/serialize/StringSerialize.java +++ b/src/main/java/org/apache/rocketmq/jms/msg/serialize/StringSerialize.java @@ -17,15 +17,13 @@ package org.apache.rocketmq.jms.msg.serialize; -import com.google.common.base.Charsets; -import java.nio.charset.Charset; import javax.jms.JMSException; +import org.apache.rocketmq.jms.support.JMSUtils; public class StringSerialize implements Serialize<String> { private static final String EMPTY_STRING = ""; private static final byte[] EMPTY_BYTES = new byte[0]; - private static final Charset DEFAULT_CHARSET = Charsets.UTF_8; private static StringSerialize ins = new StringSerialize(); public static StringSerialize instance() { @@ -39,23 +37,13 @@ public class StringSerialize implements Serialize<String> { if (null == s) { return EMPTY_BYTES; } - try { - return s.getBytes(DEFAULT_CHARSET); - } - catch (Exception e) { - throw new JMSException(e.getMessage()); - } + return JMSUtils.string2Bytes(s); } @Override public String deserialize(byte[] bytes) throws JMSException { if (null == bytes) { return EMPTY_STRING; } - try { - return new String(bytes, DEFAULT_CHARSET); - } - catch (Exception e) { - throw new JMSException(e.getMessage()); - } + return JMSUtils.bytes2String(bytes); } } http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/f28dffe2/src/main/java/org/apache/rocketmq/jms/support/JMSUtils.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/rocketmq/jms/support/JMSUtils.java b/src/main/java/org/apache/rocketmq/jms/support/JMSUtils.java index bed8165..3558167 100644 --- a/src/main/java/org/apache/rocketmq/jms/support/JMSUtils.java +++ b/src/main/java/org/apache/rocketmq/jms/support/JMSUtils.java @@ -17,6 +17,8 @@ package org.apache.rocketmq.jms.support; +import java.io.UnsupportedEncodingException; +import java.nio.charset.Charset; import java.util.UUID; import javax.jms.Destination; import javax.jms.JMSException; @@ -29,6 +31,8 @@ import org.apache.rocketmq.jms.RocketMQConsumer; public class JMSUtils { + public static final String DEFAULT_CHARSET = "UTF-8"; + public static String getDestinationName(Destination destination) { try { String topicName; @@ -91,4 +95,19 @@ public class JMSUtils { public static String uuid() { return UUID.randomUUID().toString(); } + + public static String bytes2String(byte[] bytes) { + Prediction.checkNotNull(bytes, "bytes could not be null"); + return new String(bytes, Charset.forName(DEFAULT_CHARSET)); + } + + public static byte[] string2Bytes(String source) { + Prediction.checkNotNull(source, "source could be null"); + try { + return source.getBytes(DEFAULT_CHARSET); + } + catch (UnsupportedEncodingException e) { + throw new JMSRuntimeException(ExceptionUtils.getStackTrace(e)); + } + } } http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/f28dffe2/src/main/java/org/apache/rocketmq/jms/support/Prediction.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/rocketmq/jms/support/Prediction.java b/src/main/java/org/apache/rocketmq/jms/support/Prediction.java new file mode 100644 index 0000000..868c5d8 --- /dev/null +++ b/src/main/java/org/apache/rocketmq/jms/support/Prediction.java @@ -0,0 +1,33 @@ +/* + * 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.support; + +public class Prediction { + + public static void checkNotNull(Object obj, String errorMsg) { + if (obj == null) { + throw new IllegalArgumentException(errorMsg); + } + } + + public static void checkNotBlank(String source, String errorMsg) { + if (source == null || source.trim().length() == 0) { + throw new IllegalArgumentException(errorMsg); + } + } +} http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/f28dffe2/src/test/java/org/apache/rocketmq/jms/integration/source/RocketMQAdmin.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/rocketmq/jms/integration/source/RocketMQAdmin.java b/src/test/java/org/apache/rocketmq/jms/integration/source/RocketMQAdmin.java index e602601..071dd5f 100644 --- a/src/test/java/org/apache/rocketmq/jms/integration/source/RocketMQAdmin.java +++ b/src/test/java/org/apache/rocketmq/jms/integration/source/RocketMQAdmin.java @@ -17,7 +17,8 @@ package org.apache.rocketmq.jms.integration.source; -import com.google.common.collect.Sets; +import java.util.Arrays; +import java.util.HashSet; import javax.annotation.PostConstruct; import javax.annotation.PreDestroy; import org.apache.commons.lang.exception.ExceptionUtils; @@ -84,7 +85,7 @@ public class RocketMQAdmin { public void deleteTopic(String topic) { try { - defaultMQAdminExt.deleteTopicInBroker(Sets.newHashSet(BROKER_ADDRESS), topic); + defaultMQAdminExt.deleteTopicInBroker(new HashSet(Arrays.asList(BROKER_ADDRESS)), topic); } catch (Exception e) { log.error("Delete topic:{}, addr:{} failed:{}", topic, BROKER_ADDRESS, ExceptionUtils.getStackTrace(e)); http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/f28dffe2/src/test/java/org/apache/rocketmq/jms/support/JMSUtilsTest.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/rocketmq/jms/support/JMSUtilsTest.java b/src/test/java/org/apache/rocketmq/jms/support/JMSUtilsTest.java index db15fee..2d9c901 100644 --- a/src/test/java/org/apache/rocketmq/jms/support/JMSUtilsTest.java +++ b/src/test/java/org/apache/rocketmq/jms/support/JMSUtilsTest.java @@ -59,4 +59,10 @@ public class JMSUtilsTest { assertThat(JMSUtils.uuid(), notNullValue()); } + @Test + public void string2Bytes() throws Exception { + String source = "source"; + + assertThat(JMSUtils.bytes2String(JMSUtils.string2Bytes(source)), is(source)); + } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/f28dffe2/src/test/java/org/apache/rocketmq/jms/support/PredictionTest.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/rocketmq/jms/support/PredictionTest.java b/src/test/java/org/apache/rocketmq/jms/support/PredictionTest.java new file mode 100644 index 0000000..50a29a8 --- /dev/null +++ b/src/test/java/org/apache/rocketmq/jms/support/PredictionTest.java @@ -0,0 +1,45 @@ +package org.apache.rocketmq.jms.support; + +import java.util.Date; +import org.junit.Test; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.core.Is.is; + +public class PredictionTest { + + @Test + public void checkNotNull() throws Exception { + Prediction.checkNotNull(new Date(), "Date could not be null"); + + try { + Prediction.checkNotNull(null, "Argument could not be null"); + assertThat("Haven't throw IllegalArgumentException", false); + } + catch (IllegalArgumentException e) { + assertThat(e.getMessage(), is("Argument could not be null")); + } + } + + @Test + public void checkNotBlank() throws Exception { + Prediction.checkNotBlank("name", "Name could not be null"); + + try { + Prediction.checkNotBlank(null, "Name could not be null"); + assertThat("Haven't throw IllegalArgumentException", false); + } + catch (IllegalArgumentException e) { + assertThat(e.getMessage(), is("Name could not be null")); + } + + try { + Prediction.checkNotBlank(" ", "Name could not be null"); + assertThat("Haven't throw IllegalArgumentException", false); + } + catch (IllegalArgumentException e) { + assertThat(e.getMessage(), is("Name could not be null")); + } + } + +} \ No newline at end of file