Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
小五666\n哈哈
Rocketmq
提交
6f3d6097
R
Rocketmq
项目概览
小五666\n哈哈
/
Rocketmq
与 Fork 源项目一致
Fork自
Apache RocketMQ / Rocketmq
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
Rocketmq
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
6f3d6097
编写于
5月 15, 2019
作者:
Z
zhoubo0404
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Improve the oms 1.0.0 consumer implementation
上级
611e1b9f
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
90 addition
and
27 deletion
+90
-27
openmessaging/src/main/java/io/openmessaging/rocketmq/MessagingAccessPointImpl.java
...a/io/openmessaging/rocketmq/MessagingAccessPointImpl.java
+56
-3
openmessaging/src/main/java/io/openmessaging/rocketmq/consumer/LocalMessageCache.java
...io/openmessaging/rocketmq/consumer/LocalMessageCache.java
+0
-3
openmessaging/src/main/java/io/openmessaging/rocketmq/consumer/PullConsumerImpl.java
.../io/openmessaging/rocketmq/consumer/PullConsumerImpl.java
+0
-1
openmessaging/src/main/java/io/openmessaging/rocketmq/consumer/PushConsumerImpl.java
.../io/openmessaging/rocketmq/consumer/PushConsumerImpl.java
+8
-3
openmessaging/src/test/java/io/openmessaging/rocketmq/consumer/PullConsumerImplTest.java
...openmessaging/rocketmq/consumer/PullConsumerImplTest.java
+15
-11
openmessaging/src/test/java/io/openmessaging/rocketmq/consumer/PushConsumerImplTest.java
...openmessaging/rocketmq/consumer/PushConsumerImplTest.java
+11
-6
未找到文件。
openmessaging/src/main/java/io/openmessaging/rocketmq/MessagingAccessPointImpl.java
浏览文件 @
6f3d6097
...
...
@@ -19,13 +19,16 @@ package io.openmessaging.rocketmq;
import
io.openmessaging.KeyValue
;
import
io.openmessaging.MessagingAccessPoint
;
import
io.openmessaging.consumer.Consumer
;
import
io.openmessaging.exception.OMSUnsupportException
;
import
io.openmessaging.manager.ResourceManager
;
import
io.openmessaging.message.MessageFactory
;
import
io.openmessaging.producer.Producer
;
import
io.openmessaging.producer.TransactionStateCheckListener
;
import
io.openmessaging.rocketmq.consumer.PushConsumerImpl
;
import
io.openmessaging.rocketmq.producer.ProducerImpl
;
import
java.util.HashSet
;
import
java.util.Set
;
public
class
MessagingAccessPointImpl
implements
MessagingAccessPoint
{
private
final
KeyValue
accessPointProperties
;
...
...
@@ -54,12 +57,62 @@ public class MessagingAccessPointImpl implements MessagingAccessPoint {
}
@Override
public
Consumer
createConsumer
()
{
return
n
ull
;
return
n
ew
PushConsumerImpl
(
accessPointProperties
)
;
}
@Override
public
ResourceManager
resourceManager
()
{
throw
new
OMSUnsupportException
(-
1
,
"ResourceManager is not supported in current version."
);
return
new
ResourceManager
()
{
@Override
public
void
createNamespace
(
String
nsName
)
{
accessPointProperties
.
put
(
"CONSUMER_ID"
,
nsName
);
}
@Override
public
void
deleteNamespace
(
String
nsName
)
{
accessPointProperties
.
put
(
"CONSUMER_ID"
,
null
);
}
@Override
public
void
switchNamespace
(
String
targetNamespace
)
{
accessPointProperties
.
put
(
"CONSUMER_ID"
,
targetNamespace
);
}
@Override
public
Set
<
String
>
listNamespaces
()
{
return
new
HashSet
<
String
>()
{
{
add
(
accessPointProperties
.
getString
(
"CONSUMER_ID"
));
}
};
}
@Override
public
void
createQueue
(
String
queueName
)
{
}
@Override
public
void
deleteQueue
(
String
queueName
)
{
}
@Override
public
Set
<
String
>
listQueues
(
String
nsName
)
{
return
null
;
}
@Override
public
void
filter
(
String
queueName
,
String
filterString
)
{
}
@Override
public
void
routing
(
String
sourceQueue
,
String
targetQueue
)
{
}
};
}
@Override
public
MessageFactory
messageFactory
()
{
...
...
openmessaging/src/main/java/io/openmessaging/rocketmq/consumer/LocalMessageCache.java
浏览文件 @
6f3d6097
...
...
@@ -94,9 +94,6 @@ class LocalMessageCache implements ServiceLifecycle {
MessageExt
poll
(
final
KeyValue
properties
)
{
int
currentPollTimeout
=
clientConfig
.
getOperationTimeout
();
/* if (properties.containsKey(Message.BuiltinKeys.TIMEOUT)) {
currentPollTimeout = properties.getInt(Message.BuiltinKeys.TIMEOUT);
}*/
if
(
properties
.
containsKey
(
"TIMEOUT"
))
{
currentPollTimeout
=
properties
.
getInt
(
"TIMEOUT"
);
}
...
...
openmessaging/src/main/java/io/openmessaging/rocketmq/consumer/PullConsumerImpl.java
浏览文件 @
6f3d6097
...
...
@@ -88,7 +88,6 @@ public class PullConsumerImpl implements Consumer {
String
consumerId
=
OMSUtil
.
buildInstanceName
();
this
.
rocketmqPullConsumer
.
setInstanceName
(
consumerId
);
// properties.put(OMSBuiltinKeys.CONSUMER_ID, consumerId);
properties
.
put
(
"TIMEOUT"
,
consumerId
);
this
.
rocketmqPullConsumer
.
setLanguage
(
LanguageCode
.
OMS
);
...
...
openmessaging/src/main/java/io/openmessaging/rocketmq/consumer/PushConsumerImpl.java
浏览文件 @
6f3d6097
...
...
@@ -88,7 +88,6 @@ public class PushConsumerImpl implements Consumer {
String
consumerId
=
OMSUtil
.
buildInstanceName
();
this
.
rocketmqPushConsumer
.
setInstanceName
(
consumerId
);
// properties.put(OMSBuiltinKeys.CONSUMER_ID, consumerId);
properties
.
put
(
"CONSUMER_ID"
,
consumerId
);
this
.
rocketmqPushConsumer
.
setLanguage
(
LanguageCode
.
OMS
);
...
...
@@ -120,12 +119,18 @@ public class PushConsumerImpl implements Consumer {
@Override
public
void
bindQueue
(
String
queueName
)
{
throw
new
UnsupportedOperationException
();
try
{
rocketmqPushConsumer
.
subscribe
(
queueName
,
"*"
);
}
catch
(
MQClientException
e
)
{
throw
new
OMSRuntimeException
(-
1
,
String
.
format
(
"RocketMQ push consumer can't attach to %s."
,
queueName
));
}
}
@Override
public
void
bindQueue
(
List
<
String
>
queueNames
)
{
throw
new
UnsupportedOperationException
();
for
(
String
queueName
:
queueNames
)
{
bindQueue
(
queueName
);
}
}
@Override
...
...
openmessaging/src/test/java/io/openmessaging/rocketmq/consumer/PullConsumerImplTest.java
浏览文件 @
6f3d6097
...
...
@@ -18,6 +18,8 @@ package io.openmessaging.rocketmq.consumer;
import
io.openmessaging.*
;
import
io.openmessaging.consumer.Consumer
;
import
io.openmessaging.manager.ResourceManager
;
import
io.openmessaging.message.Message
;
import
io.openmessaging.rocketmq.config.ClientConfig
;
import
io.openmessaging.rocketmq.domain.NonStandardKeys
;
import
org.apache.rocketmq.client.consumer.DefaultMQPullConsumer
;
...
...
@@ -32,6 +34,7 @@ import java.lang.reflect.Field;
import
static
org
.
mockito
.
Mockito
.
spy
;
import
static
org
.
mockito
.
Mockito
.
when
;
import
static
org
.
assertj
.
core
.
api
.
Assertions
.
assertThat
;
@RunWith
(
MockitoJUnitRunner
.
class
)
public
class
PullConsumerImplTest
{
...
...
@@ -46,9 +49,12 @@ public class PullConsumerImplTest {
public
void
init
()
throws
NoSuchFieldException
,
IllegalAccessException
{
final
MessagingAccessPoint
messagingAccessPoint
=
OMS
.
getMessagingAccessPoint
(
"oms:rocketmq://IP1:9876,IP2:9876/namespace"
);
final
KeyValue
attributes
=
messagingAccessPoint
.
attributes
();
final
ResourceManager
resourceManager
=
messagingAccessPoint
.
resourceManager
();
resourceManager
.
createNamespace
(
"TestGroup"
);
consumer
=
messagingAccessPoint
.
createConsumer
();
// consumer = messagingAccessPoint.createPullConsumer(OMS.newKeyValue().put(OMSBuiltinKeys.CONSUMER_ID, "TestGroup"));
// consumer.attach
Queue(queueName);
consumer
.
bind
Queue
(
queueName
);
Field
field
=
PullConsumerImpl
.
class
.
getDeclaredField
(
"rocketmqPullConsumer"
);
field
.
setAccessible
(
true
);
...
...
@@ -61,9 +67,7 @@ public class PullConsumerImplTest {
field
=
PullConsumerImpl
.
class
.
getDeclaredField
(
"localMessageCache"
);
field
.
setAccessible
(
true
);
field
.
set
(
consumer
,
localMessageCache
);
// messagingAccessPoint.startup();
// consumer.startup();
consumer
.
start
();
}
@Test
...
...
@@ -77,17 +81,17 @@ public class PullConsumerImplTest {
when
(
localMessageCache
.
poll
()).
thenReturn
(
consumedMsg
);
// Message message = consumer.receive(
);
// assertThat(message.sysHeaders().getString(Message.BuiltinKeys.MESSAGE_ID
)).isEqualTo("NewMsgId");
// assertThat(((BytesMessage) message).getBody(byte[].class
)).isEqualTo(testBody);
Message
message
=
consumer
.
receive
(
3
*
1000
);
assertThat
(
message
.
header
().
getMessageId
(
)).
isEqualTo
(
"NewMsgId"
);
assertThat
(
message
.
getData
(
)).
isEqualTo
(
testBody
);
}
@Test
public
void
testPoll_WithTimeout
()
{
//
There is a default timeout value, @see ClientConfig#omsOperationTimeout.
// Message message = consumer.receive();
//
There is a default timeout value, @see ClientConfig#omsOperationTimeout.
// Message message = consumer.receive(
3 * 1000
);
// assertThat(message).isNull();
//
// message = consumer.receive(OMS.newKeyValue().put(Message.BuiltinKeys.TIMEOUT, 100));
// assertThat(message).isNull();
}
...
...
openmessaging/src/test/java/io/openmessaging/rocketmq/consumer/PushConsumerImplTest.java
浏览文件 @
6f3d6097
...
...
@@ -19,6 +19,8 @@ package io.openmessaging.rocketmq.consumer;
import
io.openmessaging.*
;
import
io.openmessaging.consumer.Consumer
;
import
io.openmessaging.consumer.MessageListener
;
import
io.openmessaging.manager.ResourceManager
;
import
io.openmessaging.message.Message
;
import
io.openmessaging.rocketmq.domain.NonStandardKeys
;
import
org.apache.rocketmq.client.consumer.DefaultMQPushConsumer
;
import
org.apache.rocketmq.client.consumer.listener.MessageListenerConcurrently
;
...
...
@@ -33,6 +35,7 @@ import java.lang.reflect.Field;
import
java.util.Collections
;
import
static
org
.
mockito
.
Mockito
.
when
;
import
static
org
.
assertj
.
core
.
api
.
Assertions
.
assertThat
;
@RunWith
(
MockitoJUnitRunner
.
class
)
public
class
PushConsumerImplTest
{
...
...
@@ -47,6 +50,9 @@ public class PushConsumerImplTest {
.
getMessagingAccessPoint
(
"oms:rocketmq://IP1:9876,IP2:9876/namespace"
);
/* consumer = messagingAccessPoint.createPushConsumer(
OMS.newKeyValue().put(OMSBuiltinKeys.CONSUMER_ID, "TestGroup"));*/
final
ResourceManager
resourceManager
=
messagingAccessPoint
.
resourceManager
();
resourceManager
.
createNamespace
(
"TestGroup"
);
consumer
=
messagingAccessPoint
.
createConsumer
();
Field
field
=
PushConsumerImpl
.
class
.
getDeclaredField
(
"rocketmqPushConsumer"
);
field
.
setAccessible
(
true
);
...
...
@@ -54,8 +60,7 @@ public class PushConsumerImplTest {
field
.
set
(
consumer
,
rocketmqPushConsumer
);
//Replace
when
(
rocketmqPushConsumer
.
getMessageListener
()).
thenReturn
(
innerConsumer
.
getMessageListener
());
// messagingAccessPoint.startup();
// consumer.startup();
consumer
.
start
();
}
@Test
...
...
@@ -67,14 +72,14 @@ public class PushConsumerImplTest {
consumedMsg
.
setBody
(
testBody
);
consumedMsg
.
putUserProperty
(
NonStandardKeys
.
MESSAGE_DESTINATION
,
"TOPIC"
);
consumedMsg
.
setTopic
(
"HELLO_QUEUE"
);
/* consumer.attach
Queue("HELLO_QUEUE", new MessageListener() {
consumer
.
bind
Queue
(
"HELLO_QUEUE"
,
new
MessageListener
()
{
@Override
public
void
onReceived
(
Message
message
,
Context
context
)
{
assertThat(message.
sysHeaders().getString(Message.BuiltinKeys.MESSAGE_ID
)).isEqualTo("NewMsgId");
assertThat(
((BytesMessage) message).getBody(byte[].class
)).isEqualTo(testBody);
assertThat
(
message
.
header
().
getMessageId
(
)).
isEqualTo
(
"NewMsgId"
);
assertThat
(
message
.
getData
(
)).
isEqualTo
(
testBody
);
context
.
ack
();
}
});
*/
});
((
MessageListenerConcurrently
)
rocketmqPushConsumer
.
getMessageListener
()).
consumeMessage
(
Collections
.
singletonList
(
consumedMsg
),
null
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录