MessagedInstanceTest
This commit is contained in:
151
src/test/java/org/redkale/test/mq/MessagedInstanceTest.java
Normal file
151
src/test/java/org/redkale/test/mq/MessagedInstanceTest.java
Normal file
@@ -0,0 +1,151 @@
|
||||
/*
|
||||
|
||||
*/
|
||||
|
||||
package org.redkale.test.mq;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.net.InetSocketAddress;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.redkale.boot.Application;
|
||||
import org.redkale.boot.LoggingBaseHandler;
|
||||
import org.redkale.inject.ResourceEvent;
|
||||
import org.redkale.inject.ResourceFactory;
|
||||
import org.redkale.mq.spi.MessageAgent;
|
||||
import org.redkale.mq.spi.MessageAsmMethodBoost;
|
||||
import org.redkale.mq.spi.MessageClientProducer;
|
||||
import org.redkale.mq.spi.MessageModuleEngine;
|
||||
import org.redkale.net.AsyncGroup;
|
||||
import org.redkale.net.client.ClientAddress;
|
||||
import org.redkale.net.sncp.Sncp;
|
||||
import org.redkale.net.sncp.SncpClient;
|
||||
import org.redkale.net.sncp.SncpRpcGroups;
|
||||
import org.redkale.util.AnyValue;
|
||||
import org.redkale.util.Utility;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author zhangjx
|
||||
*/
|
||||
public class MessagedInstanceTest {
|
||||
|
||||
private static Application application;
|
||||
|
||||
private static MessageModuleEngine engine;
|
||||
|
||||
private static ResourceFactory resourceFactory;
|
||||
|
||||
public static void main(String[] args) throws Throwable {
|
||||
LoggingBaseHandler.initDebugLogConfig();
|
||||
MessagedInstanceTest test = new MessagedInstanceTest();
|
||||
init();
|
||||
test.run1();
|
||||
test.run2();
|
||||
}
|
||||
|
||||
@BeforeAll
|
||||
public static void init() throws Exception {
|
||||
application = Application.create(true);
|
||||
resourceFactory = application.getResourceFactory();
|
||||
engine = new MessageModuleEngine(application);
|
||||
|
||||
MessageAgent agent = createMessageAgent(application, "mymq");
|
||||
MessageAgent[] messageAgents = new MessageAgent[] {agent};
|
||||
Field field = MessageModuleEngine.class.getDeclaredField("messageAgents");
|
||||
field.setAccessible(true);
|
||||
field.set(engine, messageAgents);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void run1() throws Exception {
|
||||
Class<TestMessageService> serviceClass = TestMessageService.class;
|
||||
MessageAsmMethodBoost boost = new MessageAsmMethodBoost(false, serviceClass, engine);
|
||||
SncpRpcGroups grous = new SncpRpcGroups();
|
||||
AsyncGroup iGroup = AsyncGroup.create("", Utility.newScheduledExecutor(1), 0, 0);
|
||||
SncpClient client = new SncpClient(
|
||||
"", iGroup, "0", new InetSocketAddress("127.0.0.1", 8080), new ClientAddress(), "TCP", 1, 16);
|
||||
TestMessageService instance = Sncp.createLocalService(
|
||||
null, "", serviceClass, boost, resourceFactory, grous, client, null, null, null);
|
||||
resourceFactory.inject(instance);
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void run2() throws Exception {
|
||||
TestMessageFacade facade = new TestMessageFacade();
|
||||
engine.onServicePostInit(null, facade);
|
||||
}
|
||||
|
||||
public static MessageAgent createMessageAgent(Application application, String name) throws Exception {
|
||||
MessageAgent agent = new MessageAgent() {
|
||||
@Override
|
||||
protected void startMessageConsumer() {
|
||||
//
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void stopMessageConsumer() {
|
||||
//
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void startMessageProducer() {
|
||||
//
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void stopMessageProducer() {
|
||||
//
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void startMessageClientConsumer() {
|
||||
//
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void stopMessageClientConsumer() {
|
||||
//
|
||||
}
|
||||
|
||||
@Override
|
||||
protected MessageClientProducer startMessageClientProducer() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResourceChange(ResourceEvent[] events) {}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<Void> createTopic(String... topics) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<Void> deleteTopic(String... topics) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<List<String>> queryTopic() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean acceptsConf(AnyValue config) {
|
||||
return true;
|
||||
}
|
||||
};
|
||||
Field field = MessageAgent.class.getDeclaredField("application");
|
||||
field.setAccessible(true);
|
||||
field.set(agent, application);
|
||||
field = MessageAgent.class.getDeclaredField("environment");
|
||||
field.setAccessible(true);
|
||||
field.set(agent, application.getEnvironment());
|
||||
agent.init(AnyValue.create().addValue("name", name));
|
||||
return agent;
|
||||
}
|
||||
}
|
||||
@@ -13,7 +13,7 @@ import org.redkale.service.AbstractService;
|
||||
* @author zhangjx
|
||||
*/
|
||||
@Component
|
||||
public class TestMessageFacde extends AbstractService {
|
||||
public class TestMessageFacade extends AbstractService {
|
||||
|
||||
@Messaged(mq = "mymq", topics = "test_bean_topic", group = "group_5")
|
||||
public int runMessage5(TestBean message) {
|
||||
Reference in New Issue
Block a user