From c76144ec7c375463148eec4de0cf588e1283e17e Mon Sep 17 00:00:00 2001 From: 杜云山 <870666625@qq.com> Date: Sat, 6 Mar 2021 11:25:45 +0800 Subject: [PATCH] 抽取properties及server --- src/main/java/com/example/mina/box1/AeroflexVirtualBoxHandler.java | 139 ------------------------------------------------------------------------------------------------------------------------------------------- src/main/java/com/example/mina/box1/Rbm3000VirtualBoxHander.java | 176 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- src/main/java/com/example/mina/boxhandler/AeroflexVirtualBoxHandler.java | 139 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/example/mina/boxhandler/Rbm3000VirtualBoxHander.java | 176 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/example/mina/boxserver/AbstractVirtualBoxServer.java | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/example/mina/boxserver/AeroflexVirtualBoxServer.java | 20 ++++++++++++++++++++ src/main/java/com/example/mina/boxserver/Rbm3000VirtualBoxServer.java | 20 ++++++++++++++++++++ src/main/java/com/example/mina/config/AeroflexVirtualBoxConfiguration.java | 50 -------------------------------------------------- src/main/java/com/example/mina/config/Rbm3000VirtualBoxConfiguration.java | 51 --------------------------------------------------- src/main/java/com/example/mina/property/AbstractVirtualBoxProperties.java | 20 ++++++++++++++++++++ src/main/java/com/example/mina/property/AeroflexVirtualBoxProperties.java | 6 +----- src/main/java/com/example/mina/property/Rbm3000VitualBoxProperties.java | 6 +----- src/main/resources/application.yml | 2 ++ 13 files changed, 435 insertions(+), 426 deletions(-) delete mode 100644 src/main/java/com/example/mina/box1/AeroflexVirtualBoxHandler.java delete mode 100644 src/main/java/com/example/mina/box1/Rbm3000VirtualBoxHander.java create mode 100644 src/main/java/com/example/mina/boxhandler/AeroflexVirtualBoxHandler.java create mode 100644 src/main/java/com/example/mina/boxhandler/Rbm3000VirtualBoxHander.java create mode 100644 src/main/java/com/example/mina/boxserver/AbstractVirtualBoxServer.java create mode 100644 src/main/java/com/example/mina/boxserver/AeroflexVirtualBoxServer.java create mode 100644 src/main/java/com/example/mina/boxserver/Rbm3000VirtualBoxServer.java delete mode 100644 src/main/java/com/example/mina/config/AeroflexVirtualBoxConfiguration.java delete mode 100644 src/main/java/com/example/mina/config/Rbm3000VirtualBoxConfiguration.java create mode 100644 src/main/java/com/example/mina/property/AbstractVirtualBoxProperties.java diff --git a/src/main/java/com/example/mina/box1/AeroflexVirtualBoxHandler.java b/src/main/java/com/example/mina/box1/AeroflexVirtualBoxHandler.java deleted file mode 100644 index 4424c26..0000000 --- a/src/main/java/com/example/mina/box1/AeroflexVirtualBoxHandler.java +++ /dev/null @@ -1,139 +0,0 @@ -package com.example.mina.box1; - -import com.example.mina.base.AbstractVirtualBoxHandler; -import com.example.mina.entity.AeroflexDataBuffer; -import com.example.mina.util.StrUtil; -import lombok.extern.slf4j.Slf4j; -import org.apache.mina.core.buffer.IoBuffer; -import org.apache.mina.core.session.IoSession; - -/** - * @author 杜云山 - * @date 21/03/05 - */ -@Slf4j -public class AeroflexVirtualBoxHandler extends AbstractVirtualBoxHandler { - - private static final byte[] ERROR = "ERROR".getBytes(); - - private static final byte[] NONE = "OK".getBytes(); - - private static final String SET_ALL = "ATTN ALL MAX"; - - private static final String SET_ONE = "ATTN"; - - private static final String GET_ONE = "ATTN?"; - - private static final String SPACE_SPLIT = " "; - - private static final String SEMICOLON_SPLIT = ";"; - - private AeroflexDataBuffer dataBuffer; - - public AeroflexVirtualBoxHandler() { - this.initMatrix(); - } - - @Override - protected void initMatrix() { - - int row = 10; - int col = 1; - int maxAttenuate = 888; - - dataBuffer = new AeroflexDataBuffer(row, maxAttenuate); - } - - @Override - public void messageReceived(IoSession session, Object message) { - - IoBuffer ioBuffer = (IoBuffer) message; - byte[] bytes = ioBuffer.array(); - - byte[] result = handleMessage(bytes, bytes.length); - - session.write(IoBuffer.wrap(result)); - } - - @Override - protected byte[] handleMessage(byte[] cmd, int len) { - String command = new String(cmd).trim(); - - log.info("aeroflexVirtualBoxHandler receive: {}", command); - - if (command.startsWith(SET_ALL)) { - //set all to max - for (int i = 1; i < dataBuffer.getMaxRow(); i++) { - dataBuffer.setOffset(i, dataBuffer.getMaxAttenuate()); - } - - return NONE; - } else if (command.startsWith(GET_ONE)) { - //get - String[] sss = command.split(SPACE_SPLIT); - if (sss.length >= 2) { - - int row = StrUtil.toInt(sss[1]); - if (row >= 0 && row <= dataBuffer.getMaxRow()) { - String str = String.valueOf(dataBuffer.getOffset(row)); - log.info("aeroflexVirtualBoxHandler return: {}", str); - return str.getBytes(); - } - } - return ERROR; - - } else if (command.startsWith(SET_ONE)) { - //Set, Follow by ATTN? - String[] aa = command.split(SEMICOLON_SPLIT); - - String[] sss = aa[0].split(SPACE_SPLIT); - - if (sss.length >= 3) { - - int row = StrUtil.toInt(sss[1]); - int val = StrUtil.toInt(sss[2]); - - if (row >= 0 && row <= dataBuffer.getMaxRow()) { - if (val >= 0 && val <= dataBuffer.getMaxAttenuate()) { - dataBuffer.setOffset(row, val); - - String str = String.valueOf(dataBuffer.getOffset(row)); - log.info("aeroflexVirtualBoxHandler return =====> {}", str); - return str.getBytes(); - } - } - } - - return ERROR; - - } else { - return ERROR; - } - - } - - @Override - public void sessionCreated(IoSession session) { - - log.info("--- abstractVirtual server session created"); - } - - @Override - public void sessionOpened(IoSession session) { - - log.info("--- abstractVirtual server session Opened"); - } - - @Override - public void sessionClosed(IoSession session) { - - log.info("--- abstractVirtual server session Closed"); - } - - @Override - public void messageSent(IoSession session, Object message) { - - log.info("--- abstractVirtual 发送数据成功!{}", message); - } - -} diff --git a/src/main/java/com/example/mina/box1/Rbm3000VirtualBoxHander.java b/src/main/java/com/example/mina/box1/Rbm3000VirtualBoxHander.java deleted file mode 100644 index a3f1509..0000000 --- a/src/main/java/com/example/mina/box1/Rbm3000VirtualBoxHander.java +++ /dev/null @@ -1,176 +0,0 @@ -package com.example.mina.box1; - -import com.example.mina.base.AbstractVirtualBoxHandler; -import com.example.mina.base.CommandHelper; -import com.example.mina.entity.AeroflexDataBuffer; -import com.example.mina.entity.Entry; -import lombok.extern.slf4j.Slf4j; -import org.apache.mina.core.buffer.IoBuffer; -import org.apache.mina.core.session.IoSession; - -/** - * @author dy - * @date 2021/3/5 - */ -@Slf4j -public class Rbm3000VirtualBoxHander extends AbstractVirtualBoxHandler { - - private AeroflexDataBuffer dataBuffer; - - public Rbm3000VirtualBoxHander() { - this.initMatrix(); - } - - @Override - protected void initMatrix() { - - int row = 6; - int col = 8; - int maxAtten = 222; - - dataBuffer = new AeroflexDataBuffer(row, maxAtten); - } - - @Override - protected byte[] handleMessage(byte[] cmd, int len) { - return new byte[0]; - } - - @Override - public void messageReceived(IoSession session, Object message) { - - IoBuffer ioBuffer = (IoBuffer) message; - byte[] bytes = new byte[ioBuffer.limit()]; - ioBuffer.get(bytes, ioBuffer.position(), ioBuffer.limit()); - - byte[] result = handleCommand(bytes, bytes.length); - - session.write(IoBuffer.wrap(result)); - } - - @Override - public void sessionCreated(IoSession session) { - - log.info("---server session created"); - } - - @Override - public void sessionOpened(IoSession session) { - - log.info("---server session Opened"); - } - - @Override - public void sessionClosed(IoSession session) { - - log.info("---server session Closed"); - } - - @Override - public void messageSent(IoSession session, Object message) { - - log.info("---发送数据成功了。。。{}", message); - } - - protected byte[] handleCommand(byte[] cmd, int len) { - - byte[] buffer; - Entry[][] entries = dataBuffer.getMatrixData(); - - if (len == 8) { - switch (cmd[0]) { - case 0x30: - int row = CommandHelper.BCD_REV[cmd[3]]; - int col = CommandHelper.BCD_REV[cmd[4]]; - - int rowCol = 0; - int colRow = 0; - - for (int i = 0; i < dataBuffer.getMaxCol(); i++) { - if (entries[row - 1][i].getValue() == 1) { - rowCol = i + 1; - break; - } - } - for (int i = 0; i < dataBuffer.getMaxRow(); i++) { - if (entries[i][col - 1].getValue() == 1) { - colRow = i + 1; - } - } - - dataBuffer.setAttenuation(row, rowCol, 0); - dataBuffer.setAttenuation(row, col, 1); - dataBuffer.setAttenuation(colRow, col, 0); - dataBuffer.setAttenuation(colRow, rowCol, 1); - - buffer = new byte[8]; - buffer[0] = cmd[0]; - buffer[1] = cmd[1]; - buffer[2] = cmd[2]; - buffer[3] = cmd[3]; - buffer[4] = cmd[4]; - buffer[5] = CommandHelper.BCD[colRow]; - buffer[6] = CommandHelper.BCD[rowCol]; - buffer[7] = (byte) 0x03; - - return buffer; - case 0x68: - boolean isA = (cmd[3] == (byte) 0x0A); - int callPort = CommandHelper.BCD_REV[cmd[4]]; - int returnPort = 0; - - if (isA) { - for (int i = 0; i < dataBuffer.getMaxCol(); i++) { - if (entries[callPort - 1][i].getValue() == 1) { - returnPort = i + 1; - break; - } - } - } else { - for (int i = 0; i < dataBuffer.getMaxRow(); i++) { - if (entries[i][callPort - 1].getValue() == 1) { - returnPort = i + 1; - } - } - } - - buffer = new byte[8]; - buffer[0] = cmd[0]; - buffer[1] = cmd[1]; - buffer[2] = cmd[2]; - if (isA) { - buffer[3] = 0x0B; - } else { - buffer[3] = 0x0A; - } - buffer[4] = CommandHelper.BCD[returnPort]; - buffer[5] = 0x00; - buffer[6] = 0x06; - buffer[7] = (byte) 0x03; - - return buffer; - case 0x62: - buffer = new byte[8]; - buffer[0] = cmd[0]; - buffer[1] = cmd[1]; - buffer[2] = cmd[2]; - buffer[3] = cmd[3]; - buffer[4] = cmd[4]; - buffer[5] = cmd[5]; - buffer[6] = cmd[6]; - buffer[7] = (byte) 0x03; - - return buffer; - default: - break; - } - } - - buffer = new byte[len + 2]; - buffer[0] = (byte) 0xFE; - buffer[1] = (byte) 0xFE; - System.arraycopy(cmd, 0, buffer, 2, len); - - return buffer; - } -} diff --git a/src/main/java/com/example/mina/boxhandler/AeroflexVirtualBoxHandler.java b/src/main/java/com/example/mina/boxhandler/AeroflexVirtualBoxHandler.java new file mode 100644 index 0000000..24de7df --- /dev/null +++ b/src/main/java/com/example/mina/boxhandler/AeroflexVirtualBoxHandler.java @@ -0,0 +1,139 @@ +package com.example.mina.boxhandler; + +import com.example.mina.base.AbstractVirtualBoxHandler; +import com.example.mina.entity.AeroflexDataBuffer; +import com.example.mina.util.StrUtil; +import lombok.extern.slf4j.Slf4j; +import org.apache.mina.core.buffer.IoBuffer; +import org.apache.mina.core.session.IoSession; + +/** + * @author 杜云山 + * @date 21/03/05 + */ +@Slf4j +public class AeroflexVirtualBoxHandler extends AbstractVirtualBoxHandler { + + private static final byte[] ERROR = "ERROR".getBytes(); + + private static final byte[] NONE = "OK".getBytes(); + + private static final String SET_ALL = "ATTN ALL MAX"; + + private static final String SET_ONE = "ATTN"; + + private static final String GET_ONE = "ATTN?"; + + private static final String SPACE_SPLIT = " "; + + private static final String SEMICOLON_SPLIT = ";"; + + private AeroflexDataBuffer dataBuffer; + + public AeroflexVirtualBoxHandler() { + this.initMatrix(); + } + + @Override + protected void initMatrix() { + + int row = 10; + int col = 1; + int maxAttenuate = 888; + + dataBuffer = new AeroflexDataBuffer(row, maxAttenuate); + } + + @Override + public void messageReceived(IoSession session, Object message) { + + IoBuffer ioBuffer = (IoBuffer) message; + byte[] bytes = ioBuffer.array(); + + byte[] result = handleMessage(bytes, bytes.length); + + session.write(IoBuffer.wrap(result)); + } + + @Override + protected byte[] handleMessage(byte[] cmd, int len) { + String command = new String(cmd).trim(); + + log.info("aeroflexVirtualBoxHandler receive: {}", command); + + if (command.startsWith(SET_ALL)) { + //set all to max + for (int i = 1; i < dataBuffer.getMaxRow(); i++) { + dataBuffer.setOffset(i, dataBuffer.getMaxAttenuate()); + } + + return NONE; + } else if (command.startsWith(GET_ONE)) { + //get + String[] sss = command.split(SPACE_SPLIT); + if (sss.length >= 2) { + + int row = StrUtil.toInt(sss[1]); + if (row >= 0 && row <= dataBuffer.getMaxRow()) { + String str = String.valueOf(dataBuffer.getOffset(row)); + log.info("aeroflexVirtualBoxHandler return: {}", str); + return str.getBytes(); + } + } + return ERROR; + + } else if (command.startsWith(SET_ONE)) { + //Set, Follow by ATTN? + String[] aa = command.split(SEMICOLON_SPLIT); + + String[] sss = aa[0].split(SPACE_SPLIT); + + if (sss.length >= 3) { + + int row = StrUtil.toInt(sss[1]); + int val = StrUtil.toInt(sss[2]); + + if (row >= 0 && row <= dataBuffer.getMaxRow()) { + if (val >= 0 && val <= dataBuffer.getMaxAttenuate()) { + dataBuffer.setOffset(row, val); + + String str = String.valueOf(dataBuffer.getOffset(row)); + log.info("aeroflexVirtualBoxHandler return =====> {}", str); + return str.getBytes(); + } + } + } + + return ERROR; + + } else { + return ERROR; + } + + } + + @Override + public void sessionCreated(IoSession session) { + + log.info("--- abstractVirtual server session created"); + } + + @Override + public void sessionOpened(IoSession session) { + + log.info("--- abstractVirtual server session Opened"); + } + + @Override + public void sessionClosed(IoSession session) { + + log.info("--- abstractVirtual server session Closed"); + } + + @Override + public void messageSent(IoSession session, Object message) { + + log.info("--- abstractVirtual 发送数据成功!{}", message); + } + +} diff --git a/src/main/java/com/example/mina/boxhandler/Rbm3000VirtualBoxHander.java b/src/main/java/com/example/mina/boxhandler/Rbm3000VirtualBoxHander.java new file mode 100644 index 0000000..3cbfe3c --- /dev/null +++ b/src/main/java/com/example/mina/boxhandler/Rbm3000VirtualBoxHander.java @@ -0,0 +1,176 @@ +package com.example.mina.boxhandler; + +import com.example.mina.base.AbstractVirtualBoxHandler; +import com.example.mina.base.CommandHelper; +import com.example.mina.entity.AeroflexDataBuffer; +import com.example.mina.entity.Entry; +import lombok.extern.slf4j.Slf4j; +import org.apache.mina.core.buffer.IoBuffer; +import org.apache.mina.core.session.IoSession; + +/** + * @author dy + * @date 2021/3/5 + */ +@Slf4j +public class Rbm3000VirtualBoxHander extends AbstractVirtualBoxHandler { + + private AeroflexDataBuffer dataBuffer; + + public Rbm3000VirtualBoxHander() { + this.initMatrix(); + } + + @Override + protected void initMatrix() { + + int row = 6; + int col = 8; + int maxAtten = 222; + + dataBuffer = new AeroflexDataBuffer(row, maxAtten); + } + + @Override + protected byte[] handleMessage(byte[] cmd, int len) { + return new byte[0]; + } + + @Override + public void messageReceived(IoSession session, Object message) { + + IoBuffer ioBuffer = (IoBuffer) message; + byte[] bytes = new byte[ioBuffer.limit()]; + ioBuffer.get(bytes, ioBuffer.position(), ioBuffer.limit()); + + byte[] result = handleCommand(bytes, bytes.length); + + session.write(IoBuffer.wrap(result)); + } + + @Override + public void sessionCreated(IoSession session) { + + log.info("---server session created"); + } + + @Override + public void sessionOpened(IoSession session) { + + log.info("---server session Opened"); + } + + @Override + public void sessionClosed(IoSession session) { + + log.info("---server session Closed"); + } + + @Override + public void messageSent(IoSession session, Object message) { + + log.info("---发送数据成功了。。。{}", message); + } + + protected byte[] handleCommand(byte[] cmd, int len) { + + byte[] buffer; + Entry[][] entries = dataBuffer.getMatrixData(); + + if (len == 8) { + switch (cmd[0]) { + case 0x30: + int row = CommandHelper.BCD_REV[cmd[3]]; + int col = CommandHelper.BCD_REV[cmd[4]]; + + int rowCol = 0; + int colRow = 0; + + for (int i = 0; i < dataBuffer.getMaxCol(); i++) { + if (entries[row - 1][i].getValue() == 1) { + rowCol = i + 1; + break; + } + } + for (int i = 0; i < dataBuffer.getMaxRow(); i++) { + if (entries[i][col - 1].getValue() == 1) { + colRow = i + 1; + } + } + + dataBuffer.setAttenuation(row, rowCol, 0); + dataBuffer.setAttenuation(row, col, 1); + dataBuffer.setAttenuation(colRow, col, 0); + dataBuffer.setAttenuation(colRow, rowCol, 1); + + buffer = new byte[8]; + buffer[0] = cmd[0]; + buffer[1] = cmd[1]; + buffer[2] = cmd[2]; + buffer[3] = cmd[3]; + buffer[4] = cmd[4]; + buffer[5] = CommandHelper.BCD[colRow]; + buffer[6] = CommandHelper.BCD[rowCol]; + buffer[7] = (byte) 0x03; + + return buffer; + case 0x68: + boolean isA = (cmd[3] == (byte) 0x0A); + int callPort = CommandHelper.BCD_REV[cmd[4]]; + int returnPort = 0; + + if (isA) { + for (int i = 0; i < dataBuffer.getMaxCol(); i++) { + if (entries[callPort - 1][i].getValue() == 1) { + returnPort = i + 1; + break; + } + } + } else { + for (int i = 0; i < dataBuffer.getMaxRow(); i++) { + if (entries[i][callPort - 1].getValue() == 1) { + returnPort = i + 1; + } + } + } + + buffer = new byte[8]; + buffer[0] = cmd[0]; + buffer[1] = cmd[1]; + buffer[2] = cmd[2]; + if (isA) { + buffer[3] = 0x0B; + } else { + buffer[3] = 0x0A; + } + buffer[4] = CommandHelper.BCD[returnPort]; + buffer[5] = 0x00; + buffer[6] = 0x06; + buffer[7] = (byte) 0x03; + + return buffer; + case 0x62: + buffer = new byte[8]; + buffer[0] = cmd[0]; + buffer[1] = cmd[1]; + buffer[2] = cmd[2]; + buffer[3] = cmd[3]; + buffer[4] = cmd[4]; + buffer[5] = cmd[5]; + buffer[6] = cmd[6]; + buffer[7] = (byte) 0x03; + + return buffer; + default: + break; + } + } + + buffer = new byte[len + 2]; + buffer[0] = (byte) 0xFE; + buffer[1] = (byte) 0xFE; + System.arraycopy(cmd, 0, buffer, 2, len); + + return buffer; + } +} diff --git a/src/main/java/com/example/mina/boxserver/AbstractVirtualBoxServer.java b/src/main/java/com/example/mina/boxserver/AbstractVirtualBoxServer.java new file mode 100644 index 0000000..a48d021 --- /dev/null +++ b/src/main/java/com/example/mina/boxserver/AbstractVirtualBoxServer.java @@ -0,0 +1,56 @@ +package com.example.mina.boxserver; + +import com.example.mina.base.AbstractVirtualBoxHandler; +import com.example.mina.property.AbstractVirtualBoxProperties; +import lombok.extern.slf4j.Slf4j; +import org.apache.mina.transport.socket.nio.NioSocketAcceptor; +import org.springframework.boot.ApplicationArguments; +import org.springframework.boot.ApplicationRunner; + +import java.net.InetSocketAddress; + +/** + * @author 杜云山 + * @date 21/03/05 + */ +@Slf4j +public class AbstractVirtualBoxServer implements ApplicationRunner { + + private final AbstractVirtualBoxProperties abstractVirtualBoxProperties; + + private final AbstractVirtualBoxHandler abstractVirtualBoxHandler; + + public AbstractVirtualBoxServer(AbstractVirtualBoxProperties abstractVirtualBoxProperties, + AbstractVirtualBoxHandler abstractVirtualBoxHandler) { + this.abstractVirtualBoxProperties = abstractVirtualBoxProperties; + this.abstractVirtualBoxHandler = abstractVirtualBoxHandler; + } + + @Override + public void run(ApplicationArguments args) { + + String name = abstractVirtualBoxProperties.getName(); + Integer port = abstractVirtualBoxProperties.getPort(); + + if (!abstractVirtualBoxProperties.getEnable()) { + log.info("{}服务端 配置未开启", name); + return; + } + + if (port == null) { + log.info("{}服务端 端口未配置", name); + return; + } + + try { + NioSocketAcceptor acceptor = new NioSocketAcceptor(); + acceptor.setHandler(abstractVirtualBoxHandler); + acceptor.setReuseAddress(true); + acceptor.bind(new InetSocketAddress(port)); + log.info("{}服务端已经启动,监听端口: {}", name, port); + } catch (Exception e) { + log.error("无法启动{}服务端, {}", name, e.getMessage(), e); + } + } + +} diff --git a/src/main/java/com/example/mina/boxserver/AeroflexVirtualBoxServer.java b/src/main/java/com/example/mina/boxserver/AeroflexVirtualBoxServer.java new file mode 100644 index 0000000..bb074f6 --- /dev/null +++ b/src/main/java/com/example/mina/boxserver/AeroflexVirtualBoxServer.java @@ -0,0 +1,20 @@ +package com.example.mina.boxserver; + +import com.example.mina.boxhandler.AeroflexVirtualBoxHandler; +import com.example.mina.property.AeroflexVirtualBoxProperties; +import lombok.extern.slf4j.Slf4j; +import org.springframework.context.annotation.Configuration; + +/** + * @author 杜云山 + * @date 21/03/05 + */ +@Slf4j +@Configuration(proxyBeanMethods = false) +public class AeroflexVirtualBoxServer extends AbstractVirtualBoxServer { + + public AeroflexVirtualBoxServer(AeroflexVirtualBoxProperties aeroflexVirtualBoxProperties) { + super(aeroflexVirtualBoxProperties, new AeroflexVirtualBoxHandler()); + } + +} diff --git a/src/main/java/com/example/mina/boxserver/Rbm3000VirtualBoxServer.java b/src/main/java/com/example/mina/boxserver/Rbm3000VirtualBoxServer.java new file mode 100644 index 0000000..ccf2dfd --- /dev/null +++ b/src/main/java/com/example/mina/boxserver/Rbm3000VirtualBoxServer.java @@ -0,0 +1,20 @@ +package com.example.mina.boxserver; + +import com.example.mina.boxhandler.Rbm3000VirtualBoxHander; +import com.example.mina.property.Rbm3000VitualBoxProperties; +import lombok.extern.slf4j.Slf4j; +import org.springframework.context.annotation.Configuration; + +/** + * @author 杜云山 + * @date 21/03/05 + */ +@Slf4j +@Configuration(proxyBeanMethods = false) +public class Rbm3000VirtualBoxServer extends AbstractVirtualBoxServer { + + public Rbm3000VirtualBoxServer(Rbm3000VitualBoxProperties rbm3000VitualBoxProperties) { + super(rbm3000VitualBoxProperties, new Rbm3000VirtualBoxHander()); + } + +} diff --git a/src/main/java/com/example/mina/config/AeroflexVirtualBoxConfiguration.java b/src/main/java/com/example/mina/config/AeroflexVirtualBoxConfiguration.java deleted file mode 100644 index b299e6c..0000000 --- a/src/main/java/com/example/mina/config/AeroflexVirtualBoxConfiguration.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.example.mina.config; - -import com.example.mina.box1.AeroflexVirtualBoxHandler; -import com.example.mina.property.AeroflexVirtualBoxProperties; -import lombok.extern.slf4j.Slf4j; -import org.apache.mina.transport.socket.nio.NioSocketAcceptor; -import org.springframework.context.annotation.Configuration; - -import javax.annotation.PostConstruct; -import java.net.InetSocketAddress; - -/** - * @author 杜云山 - * @date 21/03/05 - */ -@Slf4j -@Configuration(proxyBeanMethods = false) -public class AeroflexVirtualBoxConfiguration { - - private final AeroflexVirtualBoxProperties aeroflexVirtualBoxProperties; - - public AeroflexVirtualBoxConfiguration(AeroflexVirtualBoxProperties aeroflexVirtualBoxProperties) { - this.aeroflexVirtualBoxProperties = aeroflexVirtualBoxProperties; - } - - @PostConstruct - public void init() { - - if (!aeroflexVirtualBoxProperties.getEnable()) { - log.info("AeroflexVirtual服务端 配置未开启"); - return; - } - - if (aeroflexVirtualBoxProperties.getPort() == null) { - log.info("AeroflexVirtual服务端 端口未配置"); - return; - } - - try { - NioSocketAcceptor acceptor = new NioSocketAcceptor(); - acceptor.setHandler(new AeroflexVirtualBoxHandler()); - acceptor.setReuseAddress(true); - acceptor.bind(new InetSocketAddress(aeroflexVirtualBoxProperties.getPort())); - log.info("AeroflexVirtual服务端已经启动,监听端口: {}", aeroflexVirtualBoxProperties.getPort()); - } catch (Exception e) { - log.error("无法启动AeroflexVirtual服务端, {}", e.getMessage(), e); - } - } - -} diff --git a/src/main/java/com/example/mina/config/Rbm3000VirtualBoxConfiguration.java b/src/main/java/com/example/mina/config/Rbm3000VirtualBoxConfiguration.java deleted file mode 100644 index 222e02a..0000000 --- a/src/main/java/com/example/mina/config/Rbm3000VirtualBoxConfiguration.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.example.mina.config; - -import com.example.mina.box1.Rbm3000VirtualBoxHander; -import com.example.mina.property.Rbm3000VitualBoxProperties; -import lombok.extern.slf4j.Slf4j; -import org.apache.mina.transport.socket.nio.NioSocketAcceptor; -import org.springframework.context.annotation.Configuration; - -import javax.annotation.PostConstruct; -import java.net.InetSocketAddress; - -/** - * @author 杜云山 - * @date 21/03/05 - */ -@Slf4j -@Configuration(proxyBeanMethods = false) -public class Rbm3000VirtualBoxConfiguration { - - private final Rbm3000VitualBoxProperties rbm3000VitualBoxProperties; - - public Rbm3000VirtualBoxConfiguration(Rbm3000VitualBoxProperties rbm3000VitualBoxProperties) { - this.rbm3000VitualBoxProperties = rbm3000VitualBoxProperties; - } - - - @PostConstruct - public void init() { - - if (!rbm3000VitualBoxProperties.getEnable()) { - log.info("Rbm3000Virtual服务端 配置未开启"); - return; - } - - if (rbm3000VitualBoxProperties.getPort() == null) { - log.info("Rbm3000Virtual服务端 端口未配置"); - return; - } - - try { - NioSocketAcceptor acceptor = new NioSocketAcceptor(); - acceptor.setHandler(new Rbm3000VirtualBoxHander()); - acceptor.setReuseAddress(true); - acceptor.bind(new InetSocketAddress(rbm3000VitualBoxProperties.getPort())); - log.info("Rbm3000Virtual服务端已经启动,监听端口: {}", rbm3000VitualBoxProperties.getPort()); - } catch (Exception e) { - log.error("无法启动Rbm3000Virtual服务端, {}", e.getMessage(), e); - } - } - -} diff --git a/src/main/java/com/example/mina/property/AbstractVirtualBoxProperties.java b/src/main/java/com/example/mina/property/AbstractVirtualBoxProperties.java new file mode 100644 index 0000000..7c18dda --- /dev/null +++ b/src/main/java/com/example/mina/property/AbstractVirtualBoxProperties.java @@ -0,0 +1,20 @@ +package com.example.mina.property; + +import lombok.Getter; +import lombok.Setter; + +/** + * @author 杜云山 + * @date 2021/03/05 + */ +@Getter +@Setter +public abstract class AbstractVirtualBoxProperties { + + protected String name = ""; + + protected Boolean enable = false; + + protected Integer port = null; + +} \ No newline at end of file diff --git a/src/main/java/com/example/mina/property/AeroflexVirtualBoxProperties.java b/src/main/java/com/example/mina/property/AeroflexVirtualBoxProperties.java index 57f38b0..2c84714 100644 --- a/src/main/java/com/example/mina/property/AeroflexVirtualBoxProperties.java +++ b/src/main/java/com/example/mina/property/AeroflexVirtualBoxProperties.java @@ -17,10 +17,6 @@ import org.springframework.context.annotation.Configuration; @ConfigurationProperties(prefix = "aeroflex-virtual") @Configuration @EnableConfigurationProperties(AeroflexVirtualBoxProperties.class) -public class AeroflexVirtualBoxProperties { - - private Boolean enable = false; - - private Integer port = null; +public class AeroflexVirtualBoxProperties extends AbstractVirtualBoxProperties { } \ No newline at end of file diff --git a/src/main/java/com/example/mina/property/Rbm3000VitualBoxProperties.java b/src/main/java/com/example/mina/property/Rbm3000VitualBoxProperties.java index 26937dd..0087296 100644 --- a/src/main/java/com/example/mina/property/Rbm3000VitualBoxProperties.java +++ b/src/main/java/com/example/mina/property/Rbm3000VitualBoxProperties.java @@ -17,10 +17,6 @@ import org.springframework.context.annotation.Configuration; @ConfigurationProperties(prefix = "rbm3000-vitualbox-virtual") @Configuration @EnableConfigurationProperties(Rbm3000VitualBoxProperties.class) -public class Rbm3000VitualBoxProperties { - - private Boolean enable = false; - - private Integer port = null; +public class Rbm3000VitualBoxProperties extends AbstractVirtualBoxProperties { } \ No newline at end of file diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 34116b8..f5400a5 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -1,6 +1,8 @@ aeroflex-virtual: + name: aeroflex-virtual enable: true port: 9100 rbm3000-vitualbox-virtual: + name: rbm3000-vitualbox-virtual enable: true port: 9101 -- libgit2 0.21.2