提交 6034dc37 编写于 作者: W wangliang

protocol recode

上级 e49df8d5
package com.codingapi.example.protocol.controller;
import com.codingapi.txlcn.protocol.ProtocolServer;
import com.codingapi.txlcn.protocol.Protocoler;
import com.codingapi.txlcn.protocol.message.Connection;
import com.codingapi.txlcn.protocol.message.separate.AbsTxCreateGroupMsg;
import com.codingapi.txlcn.protocol.ProtocolServer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
......@@ -29,21 +28,12 @@ public class DemoController {
return 1;
}
@GetMapping("/all")
public Collection<Connection> all(){
Protocoler protocoler = protocolServer.getProtocoler();
return protocoler.getConnections();
}
@GetMapping("/send")
public int send(@RequestParam("uniqueKey")String uniqueKey,@RequestParam("msg")String msg){
Protocoler protocoler = protocolServer.getProtocoler();
protocoler.sendMsg(uniqueKey,new AbsTxCreateGroupMsg(msg));
return 1;
}
@GetMapping("/stop")
public int stop(){
Protocoler protocoler = protocolServer.getProtocoler();
......
......@@ -22,7 +22,12 @@
<modules>
<module>txlcn-protocol</module>
<module>txlcn-tc</module>
<module>txlcn-tm</module>
<module>starter-txlcn-protocol</module>
<module>starter-txlcn-tc</module>
<module>example</module>
</modules>
......
......@@ -5,26 +5,25 @@
<parent>
<artifactId>tx-lcn</artifactId>
<groupId>com.codingapi.txlcn</groupId>
<version>6.0.0.SNAPSHOT</version>
<version>6.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.codingapi.txlcn</groupId>
<artifactId>starter-txlcn-tc</artifactId>
<version>6.0.0.SNAPSHOT</version>
<version>6.0.0</version>
<dependencies>
<dependency>
<groupId>com.codingapi.txlcn</groupId>
<artifactId>txlcn-tc</artifactId>
<version>6.0.0.SNAPSHOT</version>
<version>6.0.0</version>
</dependency>
<dependency>
<groupId>com.codingapi.txlcn</groupId>
<artifactId>starter-txlcn-protocol</artifactId>
<version>6.0.0.SNAPSHOT</version>
<version>6.0.0</version>
</dependency>
</dependencies>
......
......@@ -6,7 +6,7 @@
<parent>
<groupId>com.codingapi.txlcn</groupId>
<artifactId>tx-lcn</artifactId>
<version>6.0.0.SNAPSHOT</version>
<version>6.0.0</version>
</parent>
<artifactId>txlcn-tc</artifactId>
......@@ -17,11 +17,10 @@
<dependency>
<groupId>com.codingapi.txlcn</groupId>
<artifactId>txlcn-protocol</artifactId>
<version>6.0.0.SNAPSHOT</version>
<artifactId>starter-txlcn-protocol</artifactId>
<version>6.0.0</version>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
......
package com.codingapi.txlcn.tc.config;
import com.codingapi.txlcn.protocol.Config;
import com.codingapi.txlcn.protocol.config.Config;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
......@@ -14,9 +14,5 @@ public class TcConfigConfiguration {
return new TxConfig(config);
}
@Bean
@ConfigurationProperties(prefix = "txlcn.tc.protocol")
public Config config() {
return new Config();
}
}
package com.codingapi.txlcn.tc.config;
import com.codingapi.txlcn.protocol.Config;
import java.net.InetSocketAddress;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import com.codingapi.txlcn.protocol.config.Config;
import lombok.Data;
/**
......
package com.codingapi.txlcn.tc.runner;
import com.codingapi.txlcn.protocol.client.TCHandle;
import com.codingapi.txlcn.protocol.ProtocolServer;
import com.codingapi.txlcn.tc.config.TxConfig;
import java.net.InetSocketAddress;
import java.util.List;
......@@ -14,18 +14,16 @@ public class TMServerRunner {
private TxConfig txConfig;
private TCHandle tcHandle;
private ProtocolServer protocolServer;
public void init() {
tcHandle.setConfig(txConfig.getProtocol());
String applicationName = txConfig.getApplicationName();
List<String> list = txConfig.getTms();
log.info("TM servers:{}", list);
if (list != null) {
for (String item : list) {
Optional<InetSocketAddress> optional = Optional.of(txConfig.addressFormat(item));
optional.ifPresent(address -> tcHandle
.connectTo(applicationName, address.getHostString(), address.getPort()));
optional.ifPresent(address -> protocolServer
.connectTo(address.getHostString(), address.getPort()));
}
}
}
......
package com.codingapi.txlcn.tc.runner;
import com.codingapi.txlcn.protocol.client.TCHandle;
import com.codingapi.txlcn.protocol.ProtocolServer;
import com.codingapi.txlcn.tc.config.TxConfig;
import javax.annotation.PostConstruct;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -14,8 +14,8 @@ public class TcRunnerConfiguration {
private TMServerRunner tmServerRunner;
@Bean
public TMServerRunner tmServerRunner(TxConfig txConfig, TCHandle peerClientHandle) {
return new TMServerRunner(txConfig, peerClientHandle);
public TMServerRunner tmServerRunner(TxConfig txConfig, ProtocolServer protocolServer) {
return new TMServerRunner(txConfig, protocolServer);
}
@PostConstruct
......
package com.codingapi.txlcn.tc.runner;
import com.codingapi.txlcn.protocol.Config;
import com.codingapi.txlcn.protocol.PeerEventLoopGroup;
import com.codingapi.txlcn.protocol.client.TCHandle;
import com.codingapi.txlcn.protocol.ProtocolServer;
import com.codingapi.txlcn.protocol.config.Config;
import com.codingapi.txlcn.tc.config.TxConfig;
import com.google.common.collect.Lists;
import org.junit.Before;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.context.ApplicationContext;
public class TMServerRunnerTest {
private TxConfig txConfig;
private TCHandle tcHandle;
private ProtocolServer protocolServer;
@MockBean
private TMServerRunner serverRunner;
@Autowired
private ApplicationContext springContext;
@Before
public void before() {
txConfig = new TxConfig(new Config());
Config protocolConfig = new Config();
txConfig = new TxConfig(protocolConfig);
txConfig.setTms(Lists.newArrayList("127.0.0.1:8070,127.0.0.1:8072"));
tcHandle = new TCHandle(new PeerEventLoopGroup("127.0.0.1",8265));
serverRunner = new TMServerRunner(txConfig, tcHandle);
protocolServer = new ProtocolServer(protocolConfig,springContext);
serverRunner = new TMServerRunner(txConfig, protocolServer);
}
@Test
......
......@@ -6,11 +6,11 @@
<parent>
<groupId>com.codingapi.txlcn</groupId>
<artifactId>tx-lcn</artifactId>
<version>6.0.0.SNAPSHOT</version>
<version>6.0.0</version>
</parent>
<artifactId>txlcn-tm</artifactId>
<version>6.0.0.SNAPSHOT</version>
<version>6.0.0</version>
<packaging>jar</packaging>
<dependencies>
......@@ -18,7 +18,7 @@
<dependency>
<groupId>com.codingapi.txlcn</groupId>
<artifactId>starter-txlcn-protocol</artifactId>
<version>6.0.0.SNAPSHOT</version>
<version>6.0.0</version>
</dependency>
<dependency>
......
package com.codingapi.txlcn.tm.runner;
import com.codingapi.txlcn.protocol.manager.TMHandle;
import com.codingapi.txlcn.protocol.ProtocolServer;
import lombok.extern.slf4j.Slf4j;
@Slf4j
public class ProtocolRunner {
private final TMHandle peerHandle;
private final ProtocolServer protocolServer;
public ProtocolRunner(TMHandle peerHandle) {
this.peerHandle = peerHandle;
public ProtocolRunner(ProtocolServer protocolServer) {
this.protocolServer = protocolServer;
}
public void start() {
try {
peerHandle.start();
protocolServer.start();
} catch (InterruptedException e) {
log.error("peer start error.", e);
throw new RuntimeException(e);
}
}
}
package com.codingapi.txlcn.tm.runner;
import com.codingapi.txlcn.protocol.manager.TMHandle;
import javax.annotation.PostConstruct;
import com.codingapi.txlcn.protocol.ProtocolServer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.annotation.PostConstruct;
@Configuration
public class RunnerConfiguration {
......@@ -13,8 +14,8 @@ public class RunnerConfiguration {
private ProtocolRunner protocolRunner;
@Bean
public ProtocolRunner protocolRunner(TMHandle peerHandle) {
return new ProtocolRunner(peerHandle);
public ProtocolRunner protocolRunner(ProtocolServer protocolServer) {
return new ProtocolRunner(protocolServer);
}
@PostConstruct
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册