From ee6e575076ba17c1fc8f4ba33253b7ea0fba45f8 Mon Sep 17 00:00:00 2001 From: wuzeyu <1223318623@qq.com> Date: 星期四, 30 十一月 2023 10:25:04 +0800 Subject: [PATCH] Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV --- pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/rmiClient/Code.java | 8 pipIrr-platform/pipIrr-web/pipIrr-web-sso/.gitignore | 1 pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpClient/LocalCodecFactory.java | 8 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/threadPool/ThreadPoolImp.java | 95 +- pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Data.java | 4 pipIrr-platform/pipIrr-mw/pom.xml | 13 pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/rmiClient/RmiClUnit.java | 33 pipIrr-platform/文档/文件加入了 .gitignore,但还是被 git 跟踪.docx | 0 pipIrr-platform/pipIrr-web/.gitignore | 2 pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/ServerProperties.java | 22 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Command.java | 11 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mybatis/envm/Deleted.java | 8 pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/resources/log4j2.xml | 39 + pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpClient/LocalDecoder.java | 31 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/fastjson/FastJsonConfig.java | 7 pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpClient/MyThreadJob.java | 130 +++ pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpClient/TcpConnect.java | 18 pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/forRmi/MwConfigVo.java | 103 +++ pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/Server.java | 169 +++++ pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/forRmi/MwTestClientStatus.java | 58 + pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mybatis/envm/Disabled.java | 8 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/deal/p206V1_0_0/TkPreGenObjs.java | 82 ++ pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/ServerProperties.java | 8 pipIrr-platform/pipIrr-global/.gitignore | 2 pipIrr-platform/pipIrr-mw/.gitignore | 32 pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpClient/TcpClUnitConfigVo.java | 2 pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/console/CommandConsole.java | 91 ++ pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/console/Command.java | 128 +++ pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpClient/LocalEncoder.java | 22 pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/pom.xml | 119 +++ pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/AdapterImp_TcpClUnit.java | 0 pipIrr-platform/pipIrr-web/pom.xml | 6 pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/forRmi/Manager.java | 192 +++++ pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpClient/TcpHandler.java | 77 ++ pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/resources/Config.xml | 8 /dev/null | 154 ---- pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/Server.java | 28 pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/rmiClient/ResConfigVo.java | 42 pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/resources/Config.xml | 35 + pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/forRmi/Code.java | 16 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/channel/tcp/DataDecoder.java | 14 pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/rmiClient/RmiResponseVo.java | 12 pipIrr-platform/pipIrr-common/pom.xml | 6 pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpClient/TcpClUnit.java | 55 + pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/resources/log4j2.xml | 31 45 files changed, 1,603 insertions(+), 327 deletions(-) diff --git a/pipIrr-platform/pipIrr-common/pom.xml b/pipIrr-platform/pipIrr-common/pom.xml index dac97f0..2b86036 100644 --- a/pipIrr-platform/pipIrr-common/pom.xml +++ b/pipIrr-platform/pipIrr-common/pom.xml @@ -56,6 +56,12 @@ <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-yaml</artifactId> + <exclusions> + <exclusion> + <groupId>*</groupId> + <artifactId>*</artifactId> + </exclusion> + </exclusions> </dependency> <!-- api鍦ㄧ嚎鏂囨。 https://springdoc.org/#modules--> diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/fastjson/FastJsonConfig.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/fastjson/FastJsonConfig.java index 477f78a..e57c5dc 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/fastjson/FastJsonConfig.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/fastjson/FastJsonConfig.java @@ -12,6 +12,9 @@ import java.util.ArrayList; import java.util.List; +/** + * 蹇呴』瀹炵幇WebMvcConfigurer鍚﹀垯涓嶅惎浣滅敤锛屽嵆Controller杞琷son鏃朵笉鐢╢astjson + */ @Configuration public class FastJsonConfig implements WebMvcConfigurer { /** @@ -29,12 +32,12 @@ JSONWriter.Feature.WriteMapNullValue, //杈撳嚭null鐨刡oolean 涓� false JSONWriter.Feature.WriteNullBooleanAsFalse, - //鎶奓ong鍨嬭緭鍑轰负String + //鎶奓ong鍨嬭緭鍑轰负String锛屽湪pojo鐨勫睘鎬т腑涓�ц缃� //JSONWriter.Feature.WriteLongAsString, //杈撳嚭null鐨刲ist 涓� [] JSONWriter.Feature.WriteNullListAsEmpty, //杈撳嚭null鐨刵umber 涓� 0 - JSONWriter.Feature.WriteNullNumberAsZero, + //JSONWriter.Feature.WriteNullNumberAsZero, //杈撳嚭null瀛楃涓� 涓� "" JSONWriter.Feature.WriteNullStringAsEmpty, //瀵筸ap杩涜鎺掑簭 diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/channel/tcp/DataDecoder.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/channel/tcp/DataDecoder.java index 28720a5..b359815 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/channel/tcp/DataDecoder.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/channel/tcp/DataDecoder.java @@ -28,15 +28,15 @@ * org.apache.mina.filter.codec.ProtocolDecoderOutput) */ protected boolean doDecode(IoSession session, IoBuffer in, ProtocolDecoderOutput out) { - String meterNo = (String)session.getAttribute(TcpIoSessionAttrIdIsRtuAddr.sessionArrIdKey) ; - if(meterNo == null){ + String rtuAddr = (String)session.getAttribute(TcpIoSessionAttrIdIsRtuAddr.sessionArrIdKey) ; + if(rtuAddr == null){ //浼氳瘽鏈绠$悊 //浼氳瘽绠$悊鍣ㄤ腑涓嶅瓨鍦ㄦ浼氳瘽锛岃鏄庡垰寤虹珛缃戠粶杩炴帴锛� return this.doDecode_onLineData(session, in, out) ; }else{ //浼氳瘽宸茶绠$悊 //浼氳瘽绠$悊鍣ㄤ腑瀛樺湪姝や細璇濓紝璇存槑宸茬粡涓婄嚎浜嗭紝 - return this.doDecode_data(session, in, out, meterNo) ; + return this.doDecode_data(session, in, out, rtuAddr) ; } } @@ -73,16 +73,16 @@ * @param session IO浼氳瘽 * @param in 杈撳叆Buffer * @param out 鍗忚杈撳嚭缂栫爜 - * @param meterNo 鎺у埗鍣ㄧ紪鍙� + * @param rtuAddr 鎺у埗鍣ㄥ湴鍧� * @return 鏄惁姝eソ鎴栫矘鍖� */ @SuppressWarnings("unused") - private boolean doDecode_data(IoSession session, IoBuffer in, ProtocolDecoderOutput out, String meterNo) { + private boolean doDecode_data(IoSession session, IoBuffer in, ProtocolDecoderOutput out, String rtuAddr) { //闈炰笂绾挎暟鎹紝鍙兘浼氬嚭鐜版柇鍖呮垨绮樺寘鐜拌薄 PrefixedDataAvailableStatus dataStatus = this.pdaHandle.forUpData(in) ; if(dataStatus == null){ //涓嶅彲鑳藉彂鐢� - log.error("涓ラ噸閿欒锛孯tu (姘磋〃鍙蜂负" + meterNo + ")涓婅鏁版嵁瀹屾暣鎬ф鏌ユ椂锛岃繑鍥炵殑瀵硅薄涓虹┖銆�") ; + log.error("涓ラ噸閿欒锛孯tu (RTU" + rtuAddr + ")涓婅鏁版嵁瀹屾暣鎬ф鏌ユ椂锛岃繑鍥炵殑瀵硅薄涓虹┖銆�") ; this.nextDeal(in, null, out) ; return true; }else{ @@ -94,7 +94,7 @@ this.nextDeal(in, dataStatus.getDataLen(), out) ; if(dataStatus.isAdjoined()){ //璇存槑绮樺寘浜嗭紝杩樻湁鏁版嵁锛岄渶瑕佸杩欎簺鏁版嵁鍐嶆鎵цdoDecode_鏂规硶. - return this.doDecode_data(session, in, out, meterNo) ;//鍔犱笂閫掑綊 + return this.doDecode_data(session, in, out, rtuAddr) ;//鍔犱笂閫掑綊 }else if(dataStatus.isCompleted()){ //鏁版嵁涓嶆柇涓嶇矘 return true; diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Command.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Command.java index 674046b..39bd450 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Command.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Command.java @@ -177,17 +177,6 @@ return this ; } - /* - public static void main(String[] args){ - String json = "{\"attachment\":null,\"code\":\"03\",\"deviceId\":\"d8c9601f214747d98d47a4736e5\",\"id\":\"999999999\",\"meterNo\":\"23040600377\",\"productId\":16873252,\"param\":\"0002\",\"protocol\":\"HAC_NBhV2_5\",\"rtuAddr\":\"863318060168996\",\"type\":\"outerCommand\"}" ; - try { - Command com = jsonToObject(json) ; - System.out.println(com.param); - } catch (Exception e) { - e.printStackTrace(); - } - } - */ public String getId() { return id; diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Data.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Data.java index cbc9b69..3df78c2 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Data.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Data.java @@ -60,12 +60,10 @@ Data d = new Data() ; d.code = "01" ; d.rtuAddr = "123234" ; - d.meterNo = "1234567890123456" ; DataV1_0_1 subD = new DataV1_0_1() ; subD.rtuAddr = "2342345" ; - subD.meterNo = "1234567890123456" ; - + d.subData = subD ; diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mybatis/envm/Deleted.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mybatis/envm/Deleted.java index 6e073f7..923f23e 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mybatis/envm/Deleted.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mybatis/envm/Deleted.java @@ -16,6 +16,14 @@ this.name = name ; } + /** + * 瀹為檯涓婅浆json锛岃Pojo鐨勫搴斿睘鎬� + * @return json + */ +// public String toString(){ +// return "{\"code\":" + this.code + "," + "\"name\":" + this.name + "}" ; +// } + @Override public Byte getCode() { return this.code ; diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mybatis/envm/Disabled.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mybatis/envm/Disabled.java index b16444b..830a561 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mybatis/envm/Disabled.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mybatis/envm/Disabled.java @@ -16,6 +16,14 @@ this.name = name ; } + /** + * 瀹為檯涓婅浆json锛岃Pojo鐨勫搴斿睘鎬� + * @return json + */ + //public String toString(){ + // return "{\"code\":" + this.code + "," + "\"name\":" + this.name + "}" ; + //} + @Override public Byte getCode() { return this.code ; diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/threadPool/ThreadPoolImp.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/threadPool/ThreadPoolImp.java index 204d758..15cb864 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/threadPool/ThreadPoolImp.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/threadPool/ThreadPoolImp.java @@ -73,38 +73,7 @@ /** * 鏃ュ織 */ - private Logger log = LogManager.getLogger(MonitorThread.class.getName()); - - /** - * 寰楀埌榛樿鍞竴瀹炰緥 - * @return - */ -// public MyThreadPool getDefaultInstance(){ -// if(myPool == null){ -// myPool = new MyThreadPool(null, null, null, null, null) ; -// } -// return myPool ; -// } - /** - * 寰楀埌鍞竴瀹炰緥 - * @param poolName - * @param maxNum - * @param minNum - * @param freeTimeout - * @param busyTimeout - * @return - */ -// public MyThreadPool getInstance( -// String poolName , -// Integer maxNum , -// Integer minNum , -// Long freeTimeout , -// Long busyTimeout){ -// if(myPool == null){ -// myPool = new MyThreadPool(poolName, maxNum, minNum, freeTimeout, busyTimeout) ; -// } -// return myPool ; -// } + private static final Logger log = LogManager.getLogger(MonitorThread.class) ; /** * 绾跨▼姹犳瀯閫犳柟娉� @@ -125,8 +94,8 @@ } this.poolName = poolName ; - if(maxNum == null || maxNum.intValue() <= 0){ - maxNum = -1 ; + if(maxNum == null || maxNum.intValue() < 0){ + maxNum = 65535 ; } if(minNum == null || minNum.intValue() < 0){ minNum = 0 ; @@ -148,20 +117,19 @@ }else{ this.busyTimeout = busyTimeout ; } - - this.busiThreads = new ArrayList<MyThread>(); - this.freeThreads = new ArrayList<MyThread>(); - - //鏈�灏忓寲绾跨▼姹� - for (int i = 0; i < this.minNum ; i++) { - MyThread t = new MyThread(this); - t.start(); - this.freeThreads.add(t); - this.currNum++; + if(maxNum != 0){ + this.busiThreads = new ArrayList<>(); + this.freeThreads = new ArrayList<>(); + //鏈�灏忓寲绾跨▼姹� + for (int i = 0; i < this.minNum ; i++) { + MyThread t = new MyThread(this); + t.start(); + this.freeThreads.add(t); + this.currNum++; + } + this.monitorThread = new MonitorThread(this) ; + this.monitorThread.start() ; } - - this.monitorThread = new MonitorThread(this) ; - this.monitorThread.start() ; } /** @@ -171,6 +139,9 @@ */ @Override public void putJob(Job job) throws Exception { + if(this.busiThreads == null || this.freeThreads == null){ + throw new Exception("绾跨▼姹犳湭鍚姩") ; + } synchronized(this.synObj) { //log.debug("宸ヤ綔浠诲姟鍒嗛厤鍒扮嚎绋嬫睜涓��") ; MyThread t = null ; @@ -215,7 +186,10 @@ /** * 绾跨▼宸ヤ綔瀹屾垚锛屼粠busiThreads鍥炲綊freeThreads */ - protected void freeThread(MyThread t) { + protected void freeThread(MyThread t) throws Exception { + if(this.busiThreads == null || this.freeThreads == null){ + throw new Exception("绾跨▼姹犳湭鍚姩") ; + } synchronized (synObj) { busiThreads.remove(t); freeThreads.add(t); @@ -236,7 +210,7 @@ /** * - * @param pool + * @param pool 姹� */ public MonitorThread(MyThreadPool pool){ this.pool = pool ; @@ -302,6 +276,7 @@ } }//end synchronized (pool.synObj) }catch(Exception e){ + e.printStackTrace(); }finally{ continue ; } @@ -354,7 +329,7 @@ /** * 璁剧疆绾跨▼宸ヤ綔瀵硅薄 - * @param job + * @param job 宸ヤ綔 */ protected void putJob(Job job) throws Exception { if(job == null){ @@ -418,13 +393,19 @@ } public void free(){ - //浣挎湰绾跨▼鍥炲綊绌洪棽绾跨▼姹� - pool.freeThread(this); - //绌洪棽寮�濮嬭鏃� - this.time = System.currentTimeMillis() ; - // 娌℃湁鍙仛鐨勪簡 - this.canJob = false; - log.debug("绾跨▼姹�(" + this.pool.poolName + ")涓殑绾跨▼鍥炲綊绌洪棽闆嗗悎銆�"); + try{ + //浣挎湰绾跨▼鍥炲綊绌洪棽绾跨▼姹� + pool.freeThread(this); + //绌洪棽寮�濮嬭鏃� + this.time = System.currentTimeMillis() ; + // 娌℃湁鍙仛鐨勪簡 + this.canJob = false; + log.debug("绾跨▼姹�(" + this.pool.poolName + ")涓殑绾跨▼鍥炲綊绌洪棽闆嗗悎銆�"); + }catch (Exception e){ + log.error("绾跨▼姹�(" + pool.poolName + ")鐨勫伐浣滅嚎绋嬮噴鏀惧洖褰掓椂鍙戠敓寮傚父:\n" + e.getMessage(), e); + e.printStackTrace(); + } + } /** diff --git a/pipIrr-platform/pipIrr-global/.gitignore b/pipIrr-platform/pipIrr-global/.gitignore index 586e5b4..bc1fdd3 100644 --- a/pipIrr-platform/pipIrr-global/.gitignore +++ b/pipIrr-platform/pipIrr-global/.gitignore @@ -1,2 +1,2 @@ target/ -/pipIrr-global.iml +/pipIrr-global.iml \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/pipIrr-global.iml b/pipIrr-platform/pipIrr-global/pipIrr-global.iml deleted file mode 100644 index 016a445..0000000 --- a/pipIrr-platform/pipIrr-global/pipIrr-global.iml +++ /dev/null @@ -1,91 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4"> - <component name="FacetManager"> - <facet type="web" name="Web"> - <configuration> - <webroots /> - <sourceRoots> - <root url="file://$MODULE_DIR$/src/main/java" /> - <root url="file://$MODULE_DIR$/src/main/resources" /> - </sourceRoots> - </configuration> - </facet> - <facet type="Spring" name="Spring"> - <configuration /> - </facet> - </component> - <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_16"> - <output url="file://$MODULE_DIR$/target/classes" /> - <output-test url="file://$MODULE_DIR$/target/test-classes" /> - <content url="file://$MODULE_DIR$"> - <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" /> - <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" /> - <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" /> - <excludeFolder url="file://$MODULE_DIR$/target" /> - </content> - <orderEntry type="jdk" jdkName="20" jdkType="JavaSDK" /> - <orderEntry type="sourceFolder" forTests="false" /> - <orderEntry type="module" module-name="pipIrr-common" scope="PROVIDED" /> - <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-validation:3.1.3" level="project" /> - <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:3.1.3" level="project" /> - <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:3.1.3" level="project" /> - <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:3.1.3" level="project" /> - <orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.4.11" level="project" /> - <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.4.11" level="project" /> - <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.20.0" level="project" /> - <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.20.0" level="project" /> - <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:2.0.7" level="project" /> - <orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:2.1.1" level="project" /> - <orderEntry type="library" name="Maven: org.springframework:spring-core:6.0.11" level="project" /> - <orderEntry type="library" name="Maven: org.springframework:spring-jcl:6.0.11" level="project" /> - <orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.33" level="project" /> - <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:10.1.12" level="project" /> - <orderEntry type="library" name="Maven: org.hibernate.validator:hibernate-validator:8.0.1.Final" level="project" /> - <orderEntry type="library" name="Maven: jakarta.validation:jakarta.validation-api:3.0.2" level="project" /> - <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.5.3.Final" level="project" /> - <orderEntry type="library" name="Maven: com.fasterxml:classmate:1.5.1" level="project" /> - <orderEntry type="library" name="Maven: org.springdoc:springdoc-openapi-starter-webmvc-ui:2.2.0" level="project" /> - <orderEntry type="library" name="Maven: org.webjars:swagger-ui:5.2.0" level="project" /> - <orderEntry type="library" name="Maven: org.springdoc:springdoc-openapi-starter-webmvc-api:2.2.0" level="project" /> - <orderEntry type="library" name="Maven: org.springdoc:springdoc-openapi-starter-common:2.2.0" level="project" /> - <orderEntry type="library" name="Maven: io.swagger.core.v3:swagger-core-jakarta:2.2.15" level="project" /> - <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.12.0" level="project" /> - <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:2.0.7" level="project" /> - <orderEntry type="library" name="Maven: io.swagger.core.v3:swagger-annotations-jakarta:2.2.15" level="project" /> - <orderEntry type="library" name="Maven: io.swagger.core.v3:swagger-models-jakarta:2.2.15" level="project" /> - <orderEntry type="library" name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:4.0.0" level="project" /> - <orderEntry type="library" name="Maven: jakarta.activation:jakarta.activation-api:2.1.2" level="project" /> - <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.15.2" level="project" /> - <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.15.2" level="project" /> - <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.15.2" level="project" /> - <orderEntry type="library" name="Maven: com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.15.2" level="project" /> - <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.15.2" level="project" /> - <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:6.0.11" level="project" /> - <orderEntry type="library" name="Maven: org.springframework:spring-aop:6.0.11" level="project" /> - <orderEntry type="library" name="Maven: org.springframework:spring-beans:6.0.11" level="project" /> - <orderEntry type="library" name="Maven: org.springframework:spring-context:6.0.11" level="project" /> - <orderEntry type="library" name="Maven: org.springframework:spring-expression:6.0.11" level="project" /> - <orderEntry type="library" name="Maven: org.springframework:spring-web:6.0.11" level="project" /> - <orderEntry type="library" name="Maven: io.micrometer:micrometer-observation:1.11.2" level="project" /> - <orderEntry type="library" name="Maven: io.micrometer:micrometer-commons:1.11.2" level="project" /> - <orderEntry type="library" name="Maven: org.projectlombok:lombok:1.18.28" level="project" /> - <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-boot-starter:3.5.3.2" level="project" /> - <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus:3.5.3.2" level="project" /> - <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-extension:3.5.3.2" level="project" /> - <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-core:3.5.3.2" level="project" /> - <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-annotation:3.5.3.2" level="project" /> - <orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:4.6" level="project" /> - <orderEntry type="library" name="Maven: org.mybatis:mybatis:3.5.13" level="project" /> - <orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:2.1.1" level="project" /> - <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:3.1.3" level="project" /> - <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:3.1.3" level="project" /> - <orderEntry type="library" name="Maven: com.zaxxer:HikariCP:5.0.1" level="project" /> - <orderEntry type="library" name="Maven: org.springframework:spring-jdbc:6.0.11" level="project" /> - <orderEntry type="library" name="Maven: org.springframework:spring-tx:6.0.11" level="project" /> - <orderEntry type="library" name="Maven: com.alibaba.fastjson2:fastjson2:2.0.40" level="project" /> - <orderEntry type="library" name="Maven: com.alibaba.fastjson2:fastjson2-extension-spring6:2.0.40" level="project" /> - <orderEntry type="library" name="Maven: com.alibaba.fastjson2:fastjson2-extension:2.0.40" level="project" /> - <orderEntry type="library" name="Maven: org.mapstruct:mapstruct:1.5.5.Final" level="project" /> - <orderEntry type="library" name="Maven: org.mapstruct:mapstruct-processor:1.5.5.Final" level="project" /> - </component> -</module> \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-mw/.gitignore b/pipIrr-platform/pipIrr-mw/.gitignore index a23b84b..95a2783 100644 --- a/pipIrr-platform/pipIrr-mw/.gitignore +++ b/pipIrr-platform/pipIrr-mw/.gitignore @@ -1,2 +1,34 @@ +HELP.md target/ /pipIrr-mw.iml +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/deal/p206V1_0_0/TkPreGenObjs.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/deal/p206V1_0_0/TkPreGenObjs.java new file mode 100644 index 0000000..8ef9515 --- /dev/null +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/deal/p206V1_0_0/TkPreGenObjs.java @@ -0,0 +1,82 @@ +package com.dy.aceMw.server.busi.deal.p206V1_0_0; + +import com.dy.aceMw.server.busi.deal.TaskSurpport; +import com.dy.common.mw.protocol.Data; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +public class TkPreGenObjs extends TaskSurpport { + + private static final Logger log = LogManager.getLogger(TkPreGenObjs.class.getName()) ; + + //绫籌D锛屼竴瀹氫笌Tree.xml閰嶇疆鏂囦欢涓厤缃竴鑷� + public static final String taskId = "TkPreGenObjs" ; + + /** + * 鎵ц鑺傜偣浠诲姟 + * @param data 闇�瑕佸鐞嗙殑鏁版嵁 + */ + @Override + public void execute(Object data) { + Data d = (Data)data ; + String rtuAddr = d.getRtuAddr() ; + //寰楀埌鏈湴RTU 鏁版嵁锛屼互澶囧悗闈㈣妭鐐瑰簲鐢� + /* + BuziInterface baseBusi = BuziGeter.getBaseBusi() ; + BuziInterface orgBusi = null ; + SyRtu nbRtu = null ; + SyRtuTramp rtuTramp = null ; + if(baseBusi != null){ + nbRtu = DbSyBuzi.getRtu(baseBusi, imei) ; + if(nbRtu != null){ + //鏁版嵁搴撲腑鏌ヨ鍒癗B浜у搧锛圧TU瀹炰綋锛� + if(nbRtu.orgTag != null && !nbRtu.orgTag.trim().equals("")){ + orgBusi = BuziGeter.getBusi(nbRtu.orgTag) ; + if(orgBusi == null){ + log.error("涓ラ噸閿欒锛屾湭鑳藉緱鍒版爣绛句负" + nbRtu.orgTag + "鐨勪緵姘存満鏋勬暟鎹簱涓氬姟Busi"); + }else{ + BaMeter meter = DbOrgBuzi.getMeterByImeiAndNo(orgBusi, imei, rtuAddr) ; + //鍙兘鏈煡璇㈠埌meter锛屽嵆浠嶆槸娴佹氮鑰匯TU锛屼絾浠嶈鍚庣画澶勭悊锛氾紙1锛夈�佷粛鑳借瘑鍒嚭娴佹氮鑰匯TU锛岋紙2锛夈�佷粛瑕佽褰曞叾涓婃姤鏁版嵁 + if(meter != null){ + String protocol = d.getProtocol() ; + if(protocol != null){ + protocol = protocol.trim(); + if(!protocol.equals("")){ + if(meter.protocol == null + || meter.protocol.trim().equals("") + || !meter.protocol.trim().equals(protocol)){ + //闇�瑕佹洿鏂板崗璁悕绉� + DbOrgBuzi.updateMeter4Protocol(orgBusi, meter.id, protocol); + } + } + } + } + this.taskResult = new Object[]{baseBusi, orgBusi, nbRtu, null, meter} ; + this.toNextTasks(data); + } + }else{ + //NB浜у搧锛圧TU瀹炰綋锛夋湭鍒嗛厤缁欏叿浣撶殑渚涙按鏈烘瀯 + //娴佹氮鑰匯TU + rtuTramp = DbSyBuzi.getSyRtuTramp(baseBusi, imei, rtuAddr) ; + if(rtuTramp == null){ + rtuTramp = new SyRtuTramp(imei, rtuAddr) ; + } + this.taskResult = new Object[]{baseBusi, orgBusi, nbRtu, rtuTramp, null} ; + this.toNextOneTask(data, TkDealRtuTramp.taskId); + } + }else{ + //鏁版嵁搴撲腑鏈煡璇㈠埌NB浜у搧锛圧TU瀹炰綋锛� + //娴佹氮鑰匯TU + rtuTramp = DbSyBuzi.getSyRtuTramp(baseBusi, imei, rtuAddr) ; + if(rtuTramp == null){ + rtuTramp = new SyRtuTramp(imei, rtuAddr) ; + } + this.taskResult = new Object[]{baseBusi, orgBusi, nbRtu, rtuTramp, null} ; + this.toNextOneTask(data, TkDealRtuTramp.taskId); + } + }else{ + log.error("涓ラ噸閿欒锛屾湭鑳藉緱鍒癇aseBusi瀵硅薄"); + } + */ + } +} diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw.iml b/pipIrr-platform/pipIrr-mw/pipIrr-mw.iml deleted file mode 100644 index 7054b2a..0000000 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mw.iml +++ /dev/null @@ -1,35 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4"> - <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_16"> - <output url="file://$MODULE_DIR$/target/classes" /> - <output-test url="file://$MODULE_DIR$/target/test-classes" /> - <content url="file://$MODULE_DIR$"> - <excludeFolder url="file://$MODULE_DIR$/target" /> - </content> - <orderEntry type="inheritedJdk" /> - <orderEntry type="sourceFolder" forTests="false" /> - <orderEntry type="module" module-name="pipIrr-common" scope="PROVIDED" /> - <orderEntry type="module" module-name="pipIrr-global" scope="PROVIDED" /> - <orderEntry type="library" name="Maven: org.projectlombok:lombok:1.18.28" level="project" /> - <orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.9.20" level="project" /> - <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:2.0.7" level="project" /> - <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-log4j2:3.1.3" level="project" /> - <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-slf4j2-impl:2.20.0" level="project" /> - <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.20.0" level="project" /> - <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-core:2.20.0" level="project" /> - <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-jul:2.20.0" level="project" /> - <orderEntry type="library" name="Maven: com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.15.2" level="project" /> - <orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.33" level="project" /> - <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.15.2" level="project" /> - <orderEntry type="library" name="Maven: com.alibaba.fastjson2:fastjson2:2.0.40" level="project" /> - <orderEntry type="library" name="Maven: com.alibaba.fastjson2:fastjson2-extension-spring6:2.0.40" level="project" /> - <orderEntry type="library" name="Maven: com.alibaba.fastjson2:fastjson2-extension:2.0.40" level="project" /> - <orderEntry type="library" name="Maven: org.mapstruct:mapstruct:1.5.5.Final" level="project" /> - <orderEntry type="library" name="Maven: org.mapstruct:mapstruct-processor:1.5.5.Final" level="project" /> - <orderEntry type="library" name="Maven: cn.hutool:hutool-all:5.8.21" level="project" /> - <orderEntry type="library" name="Maven: org.jdom:jdom2:2.0.6.1" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.13.2" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:2.2" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest:2.2" level="project" /> - </component> -</module> \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/AdapterImp_HttpClUnit.java b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/AdapterImp_TcpClUnit.java similarity index 100% rename from pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/AdapterImp_HttpClUnit.java rename to pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/AdapterImp_TcpClUnit.java diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/Server.java b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/Server.java index 7aa1596..ef09342 100644 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/Server.java +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/Server.java @@ -68,20 +68,40 @@ //鏀寔妯″潡锛� springHibernate鍜� 绾跨▼姹� SupportUnitConfigVo supVo = new SupportUnitConfigVo() ; //鐭伐浣滄椂闀跨嚎绋嬫睜锛岀嚎绋嬭礋璐g敤鏃惰緝鐭殑宸ヤ綔浠诲姟 - supVo.short_maxThread = conf.getSetAttrPlusInt(doc, "config.support", "short_maxThread", null, 1, 1000, null) ;//姹犱腑鏈�澶х嚎绋嬫暟涓烘墍鏈塁PU鏍告暟+1 - supVo.short_minThread = conf.getSetAttrPlusInt(doc, "config.support", "short_minThread", null, 1, 5, null) ;//姹犱腑鏈�灏忕嚎绋嬫暟 + supVo.short_maxThread = conf.getSetAttrPlusInt(doc, "config.support", "short_maxThread", null, -1, 1000, null) ;//姹犱腑鏈�澶х嚎绋嬫暟涓烘墍鏈塁PU鏍告暟+1 + if(supVo.short_maxThread < 0){ + supVo.short_maxThread = -1 ; + } + supVo.short_minThread = conf.getSetAttrPlusInt(doc, "config.support", "short_minThread", null, -1, 100, null) ;//姹犱腑鏈�灏忕嚎绋嬫暟 + if(supVo.short_minThread < 0){ + supVo.short_minThread = -1 ; + } supVo.short_freeTimeout = conf.getSetAttrPlusInt(doc, "config.support", "short_freeTimeout", null, 1, 90, null) * 1000 ;//绾跨▼鏁扮┖闂叉椂闀匡紝鑻ユ睜涓嚎绋嬫暟閲忓ぇ浜巑inThread锛屼笖鏈夌殑绾跨▼绌洪棽鏃堕暱瓒呰繃freeTimeout锛屽垯娓呴櫎璇ョ嚎绋嬶紝涓轰簡涓嶆竻闄わ紝鎶妋inThread涓巑axThread璁剧疆鐩哥瓑 supVo.short_busyTimeout = conf.getSetAttrPlusInt(doc, "config.support", "short_busyTimeout", null, 1, 10, null) * 1000 ;//绾跨▼涓嶉棿鏂伐浣滄椂闀匡紙鍗曚綅涓虹)瓒呮椂闄愶紝璁や负绾跨▼宸茬粡浜嗗穿婧冿紝灏嗗己鍒舵竻闄わ紝鐭伐浣滄椂闀胯缃负5绉� + if(supVo.short_maxThread == 0 || supVo.short_minThread == 0){ + supVo.enableShortThreadPool = false ; + }else{ + supVo.enableShortThreadPool = true ; + } + //闀垮伐浣滄椂闀跨嚎绋嬫睜锛岀嚎绋嬭礋璐g敤鏃惰緝闀跨殑宸ヤ綔浠诲姟 supVo.long_maxThread = conf.getSetAttrInt(doc, "config.support", "long_maxThread", null, -1, 1000, null) ;//姹犱腑鏈�澶х嚎绋嬫暟,鑻ヤ负-1锛屼笉鍙楅檺鍒� if(supVo.long_maxThread < 0){ supVo.long_maxThread = -1 ; } - supVo.long_minThread = conf.getSetAttrPlusInt(doc, "config.support", "long_minThread", null, 0, 5, null) ;//姹犱腑鏈�灏忕嚎绋嬫暟 + supVo.long_minThread = conf.getSetAttrPlusInt(doc, "config.support", "long_minThread", null, -1, 100, null) ;//姹犱腑鏈�灏忕嚎绋嬫暟 + if(supVo.long_minThread < 0){ + supVo.long_minThread = -1 ; + } supVo.long_freeTimeout = conf.getSetAttrPlusInt(doc, "config.support", "long_freeTimeout", null, 1, 90, null) * 1000 ;//绾跨▼鏁扮┖闂叉椂闀匡紝鑻ユ睜涓嚎绋嬫暟閲忓ぇ浜巑inThread锛屼笖鏈夌殑绾跨▼绌洪棽鏃堕暱瓒呰繃freeTimeout锛屽垯娓呴櫎璇ョ嚎绋� supVo.long_busyTimeout = conf.getSetAttrInt(doc, "config.support", "long_busyTimeout", null, -1, 10, null) ;//绾跨▼涓嶉棿鏂伐浣滄椂闀匡紙鍗曚綅涓虹)瓒呮椂闄愶紝鑻ヤ负-1锛屼笉鍙楅檺鍒� if(supVo.long_busyTimeout < 0){ supVo.long_busyTimeout = -1 ; + } + if(supVo.long_maxThread == 0 || supVo.long_minThread == 0){ + supVo.enableLongThreadPool = false ; + }else{ + supVo.enableLongThreadPool = true ; } supVo.showStartInfo = showStartInfo ; @@ -113,8 +133,6 @@ // Tcp Client 妯″潡 TcpClUnitConfigVo tcpClVo = new TcpClUnitConfigVo(); tcpClVo.enable = conf.getSetAttrBoolean(doc, "config.tcpCl", "enable", null, null) ; - tcpClVo.heartbeatTimes = conf.getSetAttrPlusInt(doc, "config.tcpCl", "heartbeatTimes", null, 1, 10, null) ;//杩炵画閰嶇疆娆℃暟蹇冭烦鍚庡彂閫佷竴娆℃暟鎹� - tcpClVo.sendInterval = conf.getSetAttrPlusInt(doc, "config.tcpCl", "sendInterval", null, 1, 60, null) ;//鍙戦�佸績璺虫垨鏁版嵁鐨勬椂闂撮棿闅� if(tcpClVo.enable){ AdapterImp_TcpClUnit httpClAdap = new AdapterImp_TcpClUnit(); httpClAdap.setConfig(tcpClVo); diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/ServerProperties.java b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/ServerProperties.java index 7379686..a5f18cf 100644 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/ServerProperties.java +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/ServerProperties.java @@ -7,9 +7,13 @@ //RTU鎴鍦板潃 public static Long rtuAddrEnd = 0L ; //鏈嶅姟绔疘P - public static String serverIp = "" ; + public static String tcpServerIp = "" ; //鏈嶅姟绔笂涓嬫枃 - public static Integer serverPort = 0 ; + public static Integer tcpServerPort = 0 ; + //鍙戦�佹暟鎹暟鎹棿闅� + public static Integer sendInterval = 0 ;//绉� + //姣忎竴杞鍙戦�佹暟鎹紝鍏朵腑鍖呮嫭蹇冭烦鏁版嵁鐨勬鏁� + public static Integer heartbeatTimes = 3 ; //鍙戦�佹暟鎹鏁� public static Integer sendTimes = 0 ; diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/httpCl/HttpClUnit.java b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/httpCl/HttpClUnit.java deleted file mode 100644 index 9851e91..0000000 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/httpCl/HttpClUnit.java +++ /dev/null @@ -1,112 +0,0 @@ -package com.dy.testClient.httpCl; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; - -import com.dy.testClient.rmiClient.RmiClUnit; -import com.dy.testClient.ServerProperties; -import com.dy.common.threadPool.ThreadPool; -import com.dy.common.threadPool.TreadPoolFactory; -import com.dy.common.mw.UnitAdapterInterface; -import com.dy.common.mw.UnitInterface; -import com.dy.common.mw.UnitStartedCallbackInterface; - -public class HttpClUnit implements UnitInterface { - - private static Logger log = LogManager.getLogger(HttpClUnit.class) ; - - private static HttpClUnit instance = new HttpClUnit() ; - - public static HttpClUnitAdapter adapter ; - public static HttpClUnitConfigVo confVo ; - - private static ThreadPool.Pool pool ; - - private static Integer totalRunedClientCount = 0; - private static Integer totalOverClientCount = 0; - - private static Long startTime = 0L ; - - private HttpClUnit(){} ; - - public static HttpClUnit getInstance(){ - return instance ; - } - - @Override - public void setAdapter(UnitAdapterInterface adapter) throws Exception { - if(adapter == null){ - throw new Exception("Http Client妯″潡閫傞厤鍣ㄥ璞′笉鑳戒负绌猴紒") ; - } - HttpClUnit.adapter = (HttpClUnitAdapter)adapter ; - HttpClUnit.confVo = HttpClUnit.adapter.getConfig() ; - if(HttpClUnit.confVo == null){ - throw new Exception("Http Client妯″潡閰嶇疆瀵硅薄涓嶈兘涓虹┖锛�") ; - } - } - - @Override - public void start(UnitStartedCallbackInterface callback) throws Exception { - pool = TreadPoolFactory.getThreadPoolLong() ; - System.out.println("Http Client妯″潡鎴愬姛鍚姩"); - this.doStart(); - callback.call(null) ; - } - - @Override - public void stop(UnitStartedCallbackInterface callback) throws Exception { - callback.call(null); - } - - private void doStart(){ - new Thread(new Runnable(){ - @Override - public void run() { - try { - while(true){ - if(!ServerProperties.startWork){ - Thread.sleep(100L); - }else{ - startTime = System.currentTimeMillis() ; - for(Long i = ServerProperties.rtuAddrStart ; i <= ServerProperties.rtuAddrEnd; i++){ - totalRunedClientCount++ ; - startClient(i) ; - } - while(true){ - if(totalOverClientCount.longValue() >= totalRunedClientCount.longValue()){ - Long seconds = (System.currentTimeMillis() - startTime)/1000 ; - RmiClUnit.getInstance().reportHadReportOver(seconds) ; - System.out.println("鍏辩敤鏃�" + seconds + "绉�"); - break ; - }else{ - Thread.sleep(100L); - } - } - break; - } - } - } catch (Exception e) { - e.printStackTrace(); - } - } - }).start(); - } - - private void startClient(Long imei){ - try { - pool.putJob(new MyThreadJob("" + imei)); - } catch (Exception e) { - log.error("HttpClUnit.startClient() ", e); - } - } - - - public static synchronized void clientOver(){ - totalOverClientCount++; - if(totalOverClientCount % 100 == 0){ - RmiClUnit.getInstance().reportHadReportCount(totalOverClientCount); - System.out.println("宸茬粡鍙戦��" + totalOverClientCount + "鏉℃暟鎹�"); - } - } - -} diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/httpCl/HttpClUnitAdapter.java b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/httpCl/HttpClUnitAdapter.java deleted file mode 100644 index 8f80484..0000000 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/httpCl/HttpClUnitAdapter.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.dy.testClient.httpCl; - -import com.dy.common.mw.UnitAdapterInterface; - -public interface HttpClUnitAdapter extends UnitAdapterInterface { - - public HttpClUnitConfigVo getConfig() ; - -} diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/httpCl/HttpClUnitConfigVo.java b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/httpCl/HttpClUnitConfigVo.java deleted file mode 100644 index 7b3513d..0000000 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/httpCl/HttpClUnitConfigVo.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.dy.testClient.httpCl; - -public class HttpClUnitConfigVo { - public boolean enable ; -} diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/httpCl/HttpPost.java b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/httpCl/HttpPost.java deleted file mode 100644 index 3b8e37b..0000000 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/httpCl/HttpPost.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.dy.testClient.httpCl; - -import com.dy.testClient.ServerProperties; -import com.dy.common.util.HttpUtils; - -public class HttpPost { - - public static synchronized void post(byte[] bytes) throws Exception{ - //HttpUtils.doPost(ServerProperties.serverUrl, ServerProperties.serverContext, null, null, bytes) ; - } -} diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/httpCl/MyThreadJob.java b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/httpCl/MyThreadJob.java deleted file mode 100644 index d3494c5..0000000 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/httpCl/MyThreadJob.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.dy.testClient.httpCl; - -import java.util.Base64; - -import com.dy.common.threadPool.ThreadPool; - -public class MyThreadJob implements ThreadPool.Job { - - public String imei ; - - public MyThreadJob(){ - } - public MyThreadJob(String imei){ - this.imei = imei ; - } - - @Override - public void execute() throws Exception { - testMeterV1_0() ; - //testHAC_NBhV2_5() ; - } - - private void testMeterV1_0(){ - try{ - RtuData4MeterV1_0 rd = new RtuData4MeterV1_0() ; - byte[] bs = rd.create(imei) ; - bs = Base64.getEncoder().encode(bs) ; - - UpDataPayloadVo payloadVo = new UpDataPayloadVo() ; - payloadVo.APPdata = new String(bs, "UTF-8") ; - - UpDataVo vo = new UpDataVo(imei, "8086" + imei ) ; - vo.payload = payloadVo ; - String json = vo.toJson() ; - byte[] bytes = json.getBytes() ; - HttpPost.post(bytes); - }catch(Exception e){ - e.printStackTrace(); - }finally{ - HttpClUnit.clientOver() ; - } - } - - @SuppressWarnings("unused") - private void testHAC_NBhV2_5(){ - try{ - RtuData4HAC_NBhV2_5 rd = new RtuData4HAC_NBhV2_5() ; - byte[] bs = rd.create(imei) ; - bs = Base64.getEncoder().encode(bs) ; - - UpDataPayloadVo payloadVo = new UpDataPayloadVo() ; - payloadVo.APPdata = new String(bs, "UTF-8") ; - - UpDataVo vo = new UpDataVo(imei, "8086" + imei ) ; - vo.payload = payloadVo ; - String json = vo.toJson() ; - byte[] bytes = json.getBytes() ; - HttpPost.post(bytes); - }catch(Exception e){ - e.printStackTrace(); - }finally{ - HttpClUnit.clientOver() ; - } - } - - @Override - public void destroy() { - } - - @Override - public boolean isDestroy() { - return false; - } - - -} diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/httpCl/RtuData4HAC_NBhV2_5.java b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/httpCl/RtuData4HAC_NBhV2_5.java deleted file mode 100644 index 52c839f..0000000 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/httpCl/RtuData4HAC_NBhV2_5.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.dy.testClient.httpCl; - -import com.dy.common.util.ByteUtil; - -public class RtuData4HAC_NBhV2_5 { - public byte[] create(String imei) throws Exception{ - /* - * 0101 - * 00 - * 02 - * 4643 - * 3C - * 00BE - * FF - * 86AB62626E642F332F30026A313233343536373839300D1A64B8FCE60E655554432B3801634E42680719016E110112655056332E30136C56332E30345F32323034323214001701A762626E652F38302F3001020600101A00000000171A00000000181A1A00000000181F00A462626E652F38312F30030101000201A462626E652F38322F30000001000200A262626E652F38342F30001A00015180A462626E652F39392F30016F3836333331383036303136393235390D3903010E390013 - * EA77 - * - */ - String hex = "0101024570753C001AFFA30D1B000001898AB2E3160E655554432B3862626E642F332F303190" ; - //String hex = "0101000246433C00BEFF86AB62626E642F332F30026A313233343536373839300D1A64B8FCE60E655554432B3801634E42680719016E110112655056332E30136C56332E30345F32323034323214001701A762626E652F38302F3001020600101A00000000171A00000000181A1A00000000181F00A462626E652F38312F30030101000201A462626E652F38322F30000001000200A262626E652F38342F30001A00015180A462626E652F39392F30016F3836333331383036303136393235390D3903010E390013EA77" ; - return ByteUtil.hex2Bytes(hex) ; - } - /* - * -86AB62626E642F332F30 -026A3132333435363738 -39300D1A64B8FCE60E65 -5554432B3801634E4268 -0719016E110112655056 -332E30136C56332E3034 -5F323230343232140017 -01A762626E652F38302F -3001020600101A000000 -00171A00000000181A1A -00000000181F00A46262 -6E652F38312F30030101 -000201A462626E652F38 -322F30000001000200A2 -62626E652F38342F3000 -1A00015180A462626E65 -2F39392F30016F383633 -33313830363031363932 -35390D3903010E390013 - */ - -} diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/httpCl/RtuData4MeterV1_0.java b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/httpCl/RtuData4MeterV1_0.java deleted file mode 100644 index daf8340..0000000 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/httpCl/RtuData4MeterV1_0.java +++ /dev/null @@ -1,165 +0,0 @@ -package com.dy.testClient.httpCl; - -import com.dy.common.mw.protocol.pMeterV1_0_1.ProtocolConstantV1_0_1; -import com.dy.common.util.ByteUtil; -import com.dy.common.util.ByteUtilUnsigned; -import com.dy.common.util.CreateRadom; -import com.dy.common.util.DateTime; - -public class RtuData4MeterV1_0 { - public byte[] create(String imei) throws Exception{ - /* - * 68 - * 0051 - * 01 - * 0300000000000001 - * 12233445566778 - * 01 - * 221128152107 - * 0001E240 - * 000004D2 - * 24 - * 0129 - * 11 - * 002D - * 0035 - * 003D - * 006E - * 0038 - * 00C3 - * 00AC - * 004C - * 0028 - * 0081 - * 001B - * 005E - * 003D - * 0063 - * 00AB - * 0071 - * 00BB - * 0046 - * 004A - * 009B - * 0087 - * 00BE - * 0022 - * 00B0 - * DA - * 16 - */ - int len = 89 ; - byte[] bs = new byte[len] ; - bs[0] = ProtocolConstantV1_0_1.P_Head_Byte ; - ByteUtilUnsigned.short2Bytes_BE(bs, len, 1);//闀垮害 - bs[3] = (byte)101 ;//鍗忚鐗堟湰鍙� - while(true){ - if(imei.length() >= 16){ - break ; - }else{ - imei = "0" + imei ; - } - } - ByteUtil.string2BCD_BE(bs, imei, 4) ;//IMEI鍙� - - String meterNo = "" + (Long.valueOf(imei) + 1); - while(true){ - if(meterNo.length() >= 16){ - break ; - }else{ - meterNo = "0" + meterNo ; - } - } - ByteUtil.string2BCD_BE(bs, meterNo, 12) ;//姘磋〃鍙� - - bs[20] = 1 ;//鍔熻兘鐮� - - ByteUtil.string2BCD_BE(bs, DateTime.yyMMddhhmmss(), 21) ;//鏃堕棿 - - ByteUtilUnsigned.int2Bytes_BE(bs, 123456, 27);//瀹炴椂绱姘撮噺 - - ByteUtilUnsigned.int2Bytes_BE(bs, 54321, 31);//鏃ョ疮璁℃按閲� - - bs[35] = (byte)36;//鐢垫睜鐢靛帇 - - ByteUtilUnsigned.short2Bytes_BE(bs, 297, 36);//淇″彿寮哄害 - - byte sta = 0 ; - int num = CreateRadom.radom_4() ; - if(num%2 == 0){ - sta += 1 ;//闃�闂ㄧ姸鎬� - } - num = CreateRadom.radom_4() ; - if(num%2 == 0){ - sta += 4 ;//闃�闂ㄦ晠闅� - } - num = CreateRadom.radom_4() ; - if(num%2 == 0){ - sta += 8 ;//寮虹 - } - num = CreateRadom.radom_4() ; - if(num%2 == 0){ - sta += 16 ;//鐢垫睜娆犲帇 - } - bs[38] = sta;//琛ㄧ姸鎬� - - num = CreateRadom.radom(200, 10) ; - ByteUtilUnsigned.short2Bytes_BE(bs, num, 39);//1鐐瑰皬鏃剁敤姘撮噺 - num = CreateRadom.radom(200, 10) ; - ByteUtilUnsigned.short2Bytes_BE(bs, num, 41);//2鐐瑰皬鏃剁敤姘撮噺 - num = CreateRadom.radom(200, 10) ; - ByteUtilUnsigned.short2Bytes_BE(bs, num, 43);//3 - num = CreateRadom.radom(200, 10) ; - ByteUtilUnsigned.short2Bytes_BE(bs, num, 45);//4 - num = CreateRadom.radom(200, 10) ; - ByteUtilUnsigned.short2Bytes_BE(bs, num, 47);//5 - num = CreateRadom.radom(200, 10) ; - ByteUtilUnsigned.short2Bytes_BE(bs, num, 49);//6 - num = CreateRadom.radom(200, 10) ; - ByteUtilUnsigned.short2Bytes_BE(bs, num, 51);//7 - num = CreateRadom.radom(200, 10) ; - ByteUtilUnsigned.short2Bytes_BE(bs, num, 53);//8 - num = CreateRadom.radom(200, 10) ; - ByteUtilUnsigned.short2Bytes_BE(bs, num, 55);//9 - num = CreateRadom.radom(200, 10) ; - ByteUtilUnsigned.short2Bytes_BE(bs, num, 57);//10 - num = CreateRadom.radom(200, 10) ; - ByteUtilUnsigned.short2Bytes_BE(bs, num, 59);//11 - num = CreateRadom.radom(200, 10) ; - ByteUtilUnsigned.short2Bytes_BE(bs, num, 61);//12 - num = CreateRadom.radom(200, 10) ; - ByteUtilUnsigned.short2Bytes_BE(bs, num, 63);//13 - num = CreateRadom.radom(200, 10) ; - ByteUtilUnsigned.short2Bytes_BE(bs, num, 65);//14 - num = CreateRadom.radom(200, 10) ; - ByteUtilUnsigned.short2Bytes_BE(bs, num, 67);//15 - num = CreateRadom.radom(200, 10) ; - ByteUtilUnsigned.short2Bytes_BE(bs, num, 69);//16 - num = CreateRadom.radom(200, 10) ; - ByteUtilUnsigned.short2Bytes_BE(bs, num, 71);//17 - num = CreateRadom.radom(200, 10) ; - ByteUtilUnsigned.short2Bytes_BE(bs, num, 73);//18 - num = CreateRadom.radom(200, 10) ; - ByteUtilUnsigned.short2Bytes_BE(bs, num, 75);//19 - num = CreateRadom.radom(200, 10) ; - ByteUtilUnsigned.short2Bytes_BE(bs, num, 77);//20 - num = CreateRadom.radom(200, 10) ; - ByteUtilUnsigned.short2Bytes_BE(bs, num, 79);//21 - num = CreateRadom.radom(200, 10) ; - ByteUtilUnsigned.short2Bytes_BE(bs, num, 81);//22 - num = CreateRadom.radom(200, 10) ; - ByteUtilUnsigned.short2Bytes_BE(bs, num, 83);//23 - num = CreateRadom.radom(200, 10) ; - ByteUtilUnsigned.short2Bytes_BE(bs, num, 85);//24 - - byte he = 0 ; - for(byte i = 0 ; i <= 86; i++){ - he = (byte)(he + bs[i]) ; - } - ByteUtilUnsigned.byte2Byte(bs, he, 87) ; - bs[88] = ProtocolConstantV1_0_1.P_Tail_Byte ; - - return bs ; - } - -} diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/httpCl/TestBase64.java b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/httpCl/TestBase64.java deleted file mode 100644 index 8bdda86..0000000 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/httpCl/TestBase64.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.dy.testClient.httpCl; - -import java.io.UnsupportedEncodingException; -import java.util.Base64; - -import com.dy.common.util.ByteUtil; - -public class TestBase64 { - - public static void main(String[] args) throws UnsupportedEncodingException{ - String hex1 = "6838363235393230353934333439373000002002303231310000000000000032003005002E000000000001000000000200000000032101010012330400300521010100123306016907016908000009FF0000FC16" ; - System.out.println(hex1); - byte[] bs = ByteUtil.hex2Bytes(hex1) ; - bs = Base64.getEncoder().encode(bs) ; - String base64 = new String(bs, "UTF-8") ; - System.out.println(base64); - - bs = Base64.getDecoder().decode(base64); - String hex2 = ByteUtil.bytes2Hex(bs, false) ; - System.out.println(hex2); - - } -} diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/httpCl/UpDataPayloadVo.java b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/httpCl/UpDataPayloadVo.java deleted file mode 100644 index 8e1e7ff..0000000 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/httpCl/UpDataPayloadVo.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.dy.testClient.httpCl; - -public class UpDataPayloadVo { - - public String APPdata ; - - - public String getAPPdata() { - return APPdata; - } - - public void setAPPdata(String aPPdata) { - APPdata = aPPdata; - } - -} diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/httpCl/UpDataVo.java b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/httpCl/UpDataVo.java deleted file mode 100644 index 88f1e19..0000000 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/httpCl/UpDataVo.java +++ /dev/null @@ -1,174 +0,0 @@ -package com.dy.testClient.httpCl; - - -import com.alibaba.fastjson2.JSON; - -public class UpDataVo { - - public Integer upPacketSN; //:-1, - public Integer upDataSN; //:-1, - public String topic; //:"v1/up/ad", - public Long timestamp; //:1667302244541, - public String tenantId; //:"2000114347", - public String serviceId; //:"", - public String protocol; //:"lwm2m", - public String productId; //:"15410798", - public UpDataPayloadVo payload; //:{"APPdata":"pQAYWhAGFQEmECIgETMgIQEBACASARckZFoAAFeq"}, - public String messageType; //:"dataReport", - public String deviceType; //:"", - public String deviceId; //:"59a4d90bf7a04aeea4d3523fe15d6f3f", - public String assocAssetId; //:"", - public String imsi; //:"undefined", - public String imei; //:"862592059434970" - - public UpDataVo(String imei, String deviceId){ - this.upPacketSN = - 1 ; - this.upDataSN = - 1 ; - this.topic = "v1/up/ad" ; - this.timestamp = System.currentTimeMillis() ; - this.tenantId = "2000114347" ; - this.serviceId = "" ; - this.protocol = "lwm2m" ; - this.productId = "15410798" ; - this.messageType = "dataReport" ; - this.deviceType = "" ; - this.deviceId = deviceId ; - this.assocAssetId = "" ; - this.imsi = "" ; - this.imei = imei ; - } - - public String toString(){ - StringBuffer sb = new StringBuffer() ; - sb.append("\nproductId锛�" + productId + "\n") ; - sb.append("deviceId锛�" + deviceId + "\n") ; - sb.append("imei锛�" + imei + "\n") ; - sb.append("payload锛�" + (payload==null?"":payload.APPdata) + "\n") ; - sb.append("timestamp锛�" + timestamp + "\n") ; - return sb.toString() ; - } - - /** - * 瀵硅薄杞垚json - * @return json - * @throws Exception 寮傚父 - */ - public String toJson()throws Exception{ - try{ - return JSON.toJSONString(this) ; - //return new JSONSerializer().exclude(new String[]{"class", "*.class"}).deepSerialize(this); - }catch(Exception e){ - throw new Exception(e.getMessage() , e ) ; - } - } - /** - * json杞垚瀵硅薄 - * @param json json - * @return 瀵硅薄 - * @throws Exception 寮傚父 - */ - public static UpDataVo jsonToObject(String json)throws Exception{ - try{ - return JSON.parseObject(json, UpDataVo.class) ; - //return new JSONDeserializer<UpDataVo>() - // .use("payload", UpDataPayloadVo.class) - // .deserialize(json, UpDataVo.class) ; - }catch(Exception e){ - throw new Exception(e.getMessage() , e ) ; - } - } - - - public Integer getUpPacketSN() { - return upPacketSN; - } - public void setUpPacketSN(Integer upPacketSN) { - this.upPacketSN = upPacketSN; - } - public Integer getUpDataSN() { - return upDataSN; - } - public void setUpDataSN(Integer upDataSN) { - this.upDataSN = upDataSN; - } - public String getTopic() { - return topic; - } - public void setTopic(String topic) { - this.topic = topic; - } - public Long getTimestamp() { - return timestamp; - } - public void setTimestamp(Long timestamp) { - this.timestamp = timestamp; - } - public String getTenantId() { - return tenantId; - } - public void setTenantId(String tenantId) { - this.tenantId = tenantId; - } - public String getServiceId() { - return serviceId; - } - public void setServiceId(String serviceId) { - this.serviceId = serviceId; - } - public String getProtocol() { - return protocol; - } - public void setProtocol(String protocol) { - this.protocol = protocol; - } - public String getProductId() { - return productId; - } - public void setProductId(String productId) { - this.productId = productId; - } - public UpDataPayloadVo getPayload() { - return payload; - } - public void setPayload(UpDataPayloadVo payload) { - this.payload = payload; - } - public String getMessageType() { - return messageType; - } - public void setMessageType(String messageType) { - this.messageType = messageType; - } - public String getDeviceType() { - return deviceType; - } - public void setDeviceType(String deviceType) { - this.deviceType = deviceType; - } - public String getDeviceId() { - return deviceId; - } - public void setDeviceId(String deviceId) { - this.deviceId = deviceId; - } - public String getAssocAssetId() { - return assocAssetId; - } - public void setAssocAssetId(String assocAssetId) { - this.assocAssetId = assocAssetId; - } - public String getIMSI() { - return imsi; - } - public void setIMSI(String iMSI) { - imsi = iMSI; - } - public String getIMEI() { - return imei; - } - public void setIMEI(String iMEI) { - imei = iMEI; - } - - -} diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/rmiClient/Code.java b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/rmiClient/Code.java index 4fcd76b..9dc631e 100644 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/rmiClient/Code.java +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/rmiClient/Code.java @@ -9,7 +9,9 @@ public static String cd3 = "003" ;//璇锋眰寮�濮嬪伐浣� public static String cd4 = "004" ;//鍚戞湇鍔$涓婃姤淇℃伅 - - public static String cd5 = "005" ;//鍚戞湇鍔$涓婃姤 鏁版嵁涓婃姤宸ヤ綔宸茬粡瀹屾垚 - + + public static String cd5 = "005" ;//鍚戞湇鍔$涓婃姤 瀹屾垚浠诲姟鐨勬暟閲� + + public static String cd6 = "006" ;//鍚戞湇鍔$涓婃姤 鍏ㄩ儴浠诲姟瀹屾垚 + } diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/rmiClient/ResConfigVo.java b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/rmiClient/ResConfigVo.java index c3affa5..59df2ce 100644 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/rmiClient/ResConfigVo.java +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/rmiClient/ResConfigVo.java @@ -8,12 +8,16 @@ //妯℃嫙瀹㈡埛鐨処MEI鍙锋埅姝㈠彿 public Long rtuAddrEnd = 0L ; //鏈嶅姟绔疘P - public String serverIp = "" ; + public String tcpServerIp = "" ; //鏈嶅姟绔笂涓嬫枃 - public Integer serverPort = 0 ; + public Integer tcpServerPort = 0 ; + //鍙戦�佹暟鎹棿闅� + public Integer sendInterval = 2 ;//绉� + //姣忎竴杞鍙戦�佹暟鎹紝鍏朵腑鍖呮嫭蹇冭烦鍙戦�佹鏁� + public Integer heartbeatTimes = 3 ; //鍙戦�佹暟鎹鏁� public Integer sendTimes = 0 ; - + /** * 瀵硅薄杞垚json * @return 瀵硅薄json @@ -58,20 +62,36 @@ this.rtuAddrEnd = rtuAddrEnd; } - public String getServerIp() { - return serverIp; + public String getTcpServerIp() { + return tcpServerIp; } - public void setServerIp(String serverIp) { - this.serverIp = serverIp; + public void setTcpServerIp(String tcpServerIp) { + this.tcpServerIp = tcpServerIp; } - public Integer getServerPort() { - return serverPort; + public Integer getTcpServerPort() { + return tcpServerPort; } - public void setServerPort(Integer serverPort) { - this.serverPort = serverPort; + public void setTcpServerPort(Integer tcpServerPort) { + this.tcpServerPort = tcpServerPort; + } + + public Integer getSendInterval() { + return sendInterval; + } + + public void setSendInterval(Integer sendInterval) { + this.sendInterval = sendInterval; + } + + public Integer getHeartbeatTimes() { + return heartbeatTimes; + } + + public void setHeartbeatTimes(Integer heartbeatTimes) { + this.heartbeatTimes = heartbeatTimes; } public Integer getSendTimes() { diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/rmiClient/RmiClUnit.java b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/rmiClient/RmiClUnit.java index 8d30bb8..008ed2a 100644 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/rmiClient/RmiClUnit.java +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/rmiClient/RmiClUnit.java @@ -94,13 +94,30 @@ } //鎶婃暟鎹笂鎶ュ畬鎴愭儏鍐� 涓婃姤缁檓wTestServer - public void reportHadReportOver(Long seconds){ + public void reportHadReportOver(Integer count){ try { Thread.sleep(100L); RmiRequestVo rqVo = new RmiRequestVo() ; rqVo.id = id ; rqVo.token = token ; rqVo.code = Code.cd5 ; + rqVo.count = count ; + String json = rqVo.toJson() ; + frmWork.syncRequest(json) ; + } catch (Exception e) { + log.error("鎶婃暟鎹笂鎶ュ畬鎴愭儏鍐� 涓婃姤缁檓wTestServer澶辫触" + e.getMessage()); + } + } + + + //鎶婃暟鎹笂鎶ュ畬鎴愭儏鍐� 涓婃姤缁檓wTestServer + public void allOver(Long seconds){ + try { + Thread.sleep(100L); + RmiRequestVo rqVo = new RmiRequestVo() ; + rqVo.id = id ; + rqVo.token = token ; + rqVo.code = Code.cd6 ; rqVo.over = true ; rqVo.seconds = seconds ; String json = rqVo.toJson() ; @@ -178,15 +195,19 @@ if(rVo != null){ ServerProperties.rtuAddrStart = rVo.rtuAddrStart; ServerProperties.rtuAddrEnd = rVo.rtuAddrEnd; - ServerProperties.serverIp = rVo.serverIp; - ServerProperties.serverPort = rVo.serverPort; + ServerProperties.tcpServerIp = rVo.tcpServerIp; + ServerProperties.tcpServerPort = rVo.tcpServerPort; + ServerProperties.sendInterval = rVo.sendInterval ; + ServerProperties.heartbeatTimes = rVo.heartbeatTimes ; ServerProperties.sendTimes = rVo.sendTimes ; log.info("寰楀埌閰嶇疆鎴愬姛"); log.info(" 寮�濮婻tuAddr=" + ServerProperties.rtuAddrStart); log.info(" 鎴RtuAddr=" + ServerProperties.rtuAddrEnd); - log.info(" mwAccept鏈嶅姟IP=" + ServerProperties.serverIp); - log.info(" mwAccept鏈嶅姟绔彛=" + ServerProperties.serverPort); - log.info(" 姣廼mei涓婃姤鏁版嵁娆℃暟=" + ServerProperties.sendTimes); + log.info(" mwAccept鏈嶅姟IP=" + ServerProperties.tcpServerIp); + log.info(" mwAccept鏈嶅姟绔彛=" + ServerProperties.tcpServerPort); + log.info(" 鍙戦�佹暟鎹棿闅�=" + ServerProperties.sendTimes); + log.info(" 姣忚疆娆″彂閫佸績璺虫鏁�=" + ServerProperties.heartbeatTimes); + log.info(" 姣廟TU涓婃姤鏁版嵁杞=" + ServerProperties.sendTimes); break ; }else{ log.error("rmi寰楀埌閰嶇疆澶辫触锛歫son杞琑esConfigVo涓簄ull"); diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/rmiClient/RmiResponseVo.java b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/rmiClient/RmiResponseVo.java index 658591a..8d952a7 100644 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/rmiClient/RmiResponseVo.java +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/rmiClient/RmiResponseVo.java @@ -1,6 +1,7 @@ package com.dy.testClient.rmiClient; import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONObject; public class RmiResponseVo { @@ -9,7 +10,7 @@ public String errorInfo ; public String code ; - + public Object obj ; /** @@ -33,11 +34,10 @@ */ public static RmiResponseVo jsonToObject(String json, Class<?> clazz)throws Exception{ try{ - return JSON.parseObject(json, RmiResponseVo.class) ; - //JSONDeserializer<RmiResponseVo> jsonD = new JSONDeserializer<RmiResponseVo>() ; - //jsonD.use("obj", clazz) ; - //RmiResponseVo resp = jsonD.deserialize(json, RmiResponseVo.class) ; - //return resp ; + JSONObject jsonObject = JSON.parseObject(json); + RmiResponseVo vo = jsonObject.to(RmiResponseVo.class) ; + vo.obj = jsonObject.getObject("obj", clazz); + return vo ; }catch(Exception e){ throw new Exception(e.getMessage() , e ) ; } diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpConnect/LocalCodecFactory.java b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpClient/LocalCodecFactory.java similarity index 95% rename from pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpConnect/LocalCodecFactory.java rename to pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpClient/LocalCodecFactory.java index 9f59b93..0251296 100644 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpConnect/LocalCodecFactory.java +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpClient/LocalCodecFactory.java @@ -1,9 +1,9 @@ -package com.dy.testClient.tcpConnect; +package com.dy.testClient.tcpClient; -import org.apache.mina.filter.codec.ProtocolCodecFactory; -import org.apache.mina.filter.codec.ProtocolEncoder; -import org.apache.mina.filter.codec.ProtocolDecoder; import org.apache.mina.core.session.IoSession; +import org.apache.mina.filter.codec.ProtocolCodecFactory; +import org.apache.mina.filter.codec.ProtocolDecoder; +import org.apache.mina.filter.codec.ProtocolEncoder; public class LocalCodecFactory implements ProtocolCodecFactory { private ProtocolEncoder encoder; diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpClient/LocalDecoder.java b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpClient/LocalDecoder.java new file mode 100644 index 0000000..16ea1df --- /dev/null +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpClient/LocalDecoder.java @@ -0,0 +1,31 @@ +package com.dy.testClient.tcpClient; + +import org.apache.mina.core.buffer.IoBuffer; +import org.apache.mina.core.session.IoSession; +import org.apache.mina.filter.codec.CumulativeProtocolDecoder; +import org.apache.mina.filter.codec.ProtocolDecoderOutput; + +import java.io.IOException; + +public class LocalDecoder extends CumulativeProtocolDecoder { + + private static final String DECODER_STATE_KEY = LocalDecoder.class.getName() + ".STATE"; + + public static final int MAX_SIZE = 2147483647 ; + + + /** + * 瀵圭綉缁滀紶杈撴潵鐨勬暟鎹繘琛岃В鐮� + */ + protected boolean doDecode(IoSession session, IoBuffer in, ProtocolDecoderOutput out) throws IOException, Exception{ + int remain = in.remaining() ; + if(remain > 0){ + byte[] preByte = new byte[remain]; + in.get(preByte) ; + in.position(0) ; + } + return true; + } + + +} diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpClient/LocalEncoder.java b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpClient/LocalEncoder.java new file mode 100644 index 0000000..fdf716e --- /dev/null +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpClient/LocalEncoder.java @@ -0,0 +1,22 @@ +package com.dy.testClient.tcpClient; + +import org.apache.mina.core.buffer.IoBuffer; +import org.apache.mina.core.session.IoSession; +import org.apache.mina.filter.codec.ProtocolEncoderAdapter; +import org.apache.mina.filter.codec.ProtocolEncoderOutput; + +import java.io.IOException; + +public class LocalEncoder extends ProtocolEncoderAdapter { + + /** + * 瀵规暟鎹繘琛岀紪鐮侊紝浠ュ缃戠粶浼犺緭 + */ + public void encode(IoSession session, Object message, ProtocolEncoderOutput out) throws IOException, Exception{ + byte[] data = (byte[])message; + //log.info("涓嬭鏁版嵁锛�" + ByteUtil.bytes2Hex(data, true)); + + out.write(IoBuffer.allocate((data==null?0:data.length), false).put(data).flip()); + } + +} diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpClient/MyThreadJob.java b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpClient/MyThreadJob.java index eee927c..0a07ff7 100644 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpClient/MyThreadJob.java +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpClient/MyThreadJob.java @@ -1,46 +1,126 @@ package com.dy.testClient.tcpClient; +import com.dy.common.mw.protocol.p206V1_0_0.CommonV1_0_1; +import com.dy.common.mw.protocol.p206V1_0_0.ProtocolConstantV206V1_0_0; +import com.dy.common.mw.protocol.p206V1_0_0.parse.global.GlCreate; import com.dy.common.threadPool.ThreadPool; -import com.dy.testClient.httpCl.*; - -import java.util.Base64; +import com.dy.common.util.ByteUtil; +import com.dy.testClient.ServerProperties; +import org.apache.mina.core.future.CloseFuture; +import org.apache.mina.core.session.IoSession; public class MyThreadJob implements ThreadPool.Job { public String rtuAddr; + public String serverIp; + public Integer serverPort; + + public IoSession session ; + + public static final int connectTimeout = 3000 ; + + public int sendTimes = 0 ;//鍙戦�佹暟鎹鏁� + public int heartbeatTimes = 0 ;//涓婃姤蹇冭烦娆℃暟 + + public boolean isOver = false ; public MyThreadJob(){ } - public MyThreadJob(String rtuAddr){ + public MyThreadJob(String rtuAddr, String serverIp, Integer serverPort){ this.rtuAddr = rtuAddr ; + this.serverIp = serverIp ; + this.serverPort = serverPort ; } @Override public void execute() throws Exception { - testP206V1_0_0() ; - } - - private void testP206V1_0_0(){ - try{ - RtuData4MeterV1_0 rd = new RtuData4MeterV1_0() ; - byte[] bs = rd.create(rtuAddr) ; - bs = Base64.getEncoder().encode(bs) ; - - UpDataPayloadVo payloadVo = new UpDataPayloadVo() ; - payloadVo.APPdata = new String(bs, "UTF-8") ; - - UpDataVo vo = new UpDataVo(rtuAddr, "8086" + rtuAddr) ; - vo.payload = payloadVo ; - String json = vo.toJson() ; - byte[] bytes = json.getBytes() ; - HttpPost.post(bytes); - }catch(Exception e){ - e.printStackTrace(); - }finally{ - HttpClUnit.clientOver() ; + if(session == null){ + IoSession se = new TcpConnect().createSession(this.rtuAddr, this, this.serverIp, this.serverPort, connectTimeout, new TcpHandler()) ; + if(se != null){ + this.session = se ; + } + }else{ + if(sendTimes <= ServerProperties.sendTimes){ + sendDataOfP206V1_0_0() ; + }else{ + this.jobOver() ; + } } } + private void sendDataOfP206V1_0_0(){ + try{ + if(heartbeatTimes >= ServerProperties.heartbeatTimes){ + heartbeatTimes = 0 ; + this.sendReportData() ; + sendTimes++ ; + }else{ + this.sendHeartbeat() ; + heartbeatTimes++ ; + } + }catch(Exception e){ + e.printStackTrace(); + } + } + private void sendHeartbeat(){ + try{ + byte[] bs = this.createHeartbeat() ; + this.session.write(bs) ; + }catch (Exception e){ + e.printStackTrace(); + } + } + + private void sendReportData(){ + TcpClUnit.clientSendData(); + } + + private void jobOver(){ + CloseFuture closeFuture = session.closeOnFlush() ; + this.isOver = true ; + TcpClUnit.clientOver() ; + } + + /** + * 鏋勯�犱笅琛屾暟鎹� + * @return 瀛楄妭鏁扮粍 + * @throws Exception 寮傚父 + */ + public byte[] createHeartbeat( ) throws Exception { + CommonV1_0_1 commonV1_0_1 = new CommonV1_0_1() ; + byte[] bytes ; + byte[] bsHead = new byte[ProtocolConstantV206V1_0_0.lenHead2Code] ; + byte index = 0 ; + bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte ; + + index++ ; + bsHead[index] = 0 ;//甯ч暱搴� + + index++ ; + bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte ; + + index++ ; + bsHead[index] = commonV1_0_1.createCtrl((byte)0) ; + + index++ ; + GlCreate.createRtuAddr(this.rtuAddr, bsHead, index); + index += 5 ; + + ByteUtil.hex2Bytes("02", bsHead, index) ; + + byte[] bs = new byte[1] ; + bs[0] = (byte)0xF2 ;//鏁版嵁鍩燂細 1 涓瓧鑺傦紝F0 鐧诲綍锛� F1 閫�鍑虹櫥褰曪紝F2 鍦ㄧ嚎淇濇寔銆� + + bytes = ByteUtil.bytesMerge(bsHead, bs) ; + + GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑 + + bytes = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬鍙犲姞瀛楄妭鏁扮粍涓� + + return bytes ; + } + + @Override public void destroy() { diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpClient/TcpClUnit.java b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpClient/TcpClUnit.java index 1189f3b..167adde 100644 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpClient/TcpClUnit.java +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpClient/TcpClUnit.java @@ -10,6 +10,10 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; + public class TcpClUnit implements UnitInterface { private static final Logger log = LogManager.getLogger(TcpClUnit.class) ; @@ -20,8 +24,10 @@ public static TcpClUnitConfigVo confVo ; private static ThreadPool.Pool pool ; + private static Map<String, MyThreadJob> jobMap = new HashMap<>() ; private static Integer totalRunedClientCount = 0; + private static Integer totalSendDataCount = 0; private static Integer totalOverClientCount = 0; private static Long startTime = 0L ; @@ -69,12 +75,13 @@ startTime = System.currentTimeMillis() ; for(Long addr = ServerProperties.rtuAddrStart; addr <= ServerProperties.rtuAddrEnd; addr++){ totalRunedClientCount++ ; - startClient(addr) ; + createImitate(addr) ; } + startJob() ; while(true){ if(totalOverClientCount.longValue() >= totalRunedClientCount.longValue()){ Long seconds = (System.currentTimeMillis() - startTime)/1000 ; - RmiClUnit.getInstance().reportHadReportOver(seconds) ; + RmiClUnit.getInstance().allOver(seconds) ; System.out.println("鍏辩敤鏃�" + seconds + "绉�"); break ; }else{ @@ -91,20 +98,48 @@ }).start(); } - private void startClient(Long rtuAddr){ - try { - pool.putJob(new MyThreadJob("" + rtuAddr)); - } catch (Exception e) { - log.error("TcpClUnit.startClient() ", e); - } + /** + * 鍒涘缓RTU妯℃嫙MyThreadJob + * @param rtuAddr rtu鍦板潃 + */ + private void createImitate(Long rtuAddr){ + jobMap.put("" + rtuAddr, new MyThreadJob("" + rtuAddr, ServerProperties.tcpServerIp, ServerProperties.tcpServerPort)) ; } + private void startJob(){ + new Thread(new Runnable(){ + @Override + public void run() { + try { + Thread.sleep(1000L); + while(true){ + Collection<MyThreadJob> collection = jobMap.values() ; + for(MyThreadJob job : collection){ + pool.putJob(job); + } + Thread.sleep(ServerProperties.sendInterval * 1000); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + }).start(); + } + + + public static synchronized void clientSendData(){ + totalSendDataCount++; + if(totalSendDataCount % 100 == 0){ + RmiClUnit.getInstance().reportHadReportCount(totalSendDataCount); + System.out.println("宸茬粡鍙戦��" + totalSendDataCount + "鏉℃暟鎹�"); + } + } public static synchronized void clientOver(){ totalOverClientCount++; if(totalOverClientCount % 100 == 0){ - RmiClUnit.getInstance().reportHadReportCount(totalOverClientCount); - System.out.println("宸茬粡鍙戦��" + totalOverClientCount + "鏉℃暟鎹�"); + RmiClUnit.getInstance().reportHadReportOver(totalOverClientCount); + System.out.println("宸叉湁" + totalOverClientCount + "瀹屾垚浜嗕换鍔�"); } } } diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpClient/TcpClUnitConfigVo.java b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpClient/TcpClUnitConfigVo.java index 0cc19ba..972b18e 100644 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpClient/TcpClUnitConfigVo.java +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpClient/TcpClUnitConfigVo.java @@ -2,6 +2,4 @@ public class TcpClUnitConfigVo { public boolean enable ; - public int heartbeatTimes ; - public int sendInterval ; } diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpConnect/MinaConnect.java b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpClient/TcpConnect.java similarity index 69% rename from pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpConnect/MinaConnect.java rename to pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpClient/TcpConnect.java index 2d85f19..cdf2c8e 100644 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpConnect/MinaConnect.java +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpClient/TcpConnect.java @@ -1,38 +1,44 @@ -package com.dy.testClient.tcpConnect; +package com.dy.testClient.tcpClient; import org.apache.mina.core.future.ConnectFuture; import org.apache.mina.core.session.IoSession; - import org.apache.mina.filter.codec.ProtocolCodecFilter; import org.apache.mina.transport.socket.SocketConnector; import org.apache.mina.transport.socket.nio.NioSocketConnector; import java.net.InetSocketAddress; -public class MinaConnect { +public class TcpConnect { + + public static final String rtuAddrKey = "rtuAddr" ; + public static final String threadJobKey = "threadJob" ; /** * 鍒ゆ柇浼氳瘽鏄惁鏈夋晥 * @param se 缃戠粶浼氳瘽 * @return 鏄惁杩炴帴 */ - protected boolean isConnected(IoSession se) { + public boolean isConnected(IoSession se) { return (se != null && se.isConnected()); } /** * 鍒涘缓鏂颁細璇� + * @param rtuAddr rtu鍦板潃 + * @param job rtu宸ヤ綔绫� * @param host 鏈嶅姟鍣║RI * @param port 鏈嶅姟鍣ㄧ鍙� * @return 缃戠粶浼氳瘽 */ - protected IoSession createSession(String host , int port , int connectTimeout , MinaHandler handler) throws Exception{ + public IoSession createSession(String rtuAddr, MyThreadJob job, String host , int port , int connectTimeout , TcpHandler handler) throws Exception{ SocketConnector connector = new NioSocketConnector(); connector.getFilterChain().addLast("codec", new ProtocolCodecFilter(new LocalCodecFactory())); connector.setHandler(handler); ConnectFuture connectFuture = connector.connect(new InetSocketAddress(host, port)); connectFuture.awaitUninterruptibly(connectTimeout); IoSession se = connectFuture.getSession(); + se.setAttribute(rtuAddrKey, rtuAddr) ; + se.setAttribute(threadJobKey, job) ; return se ; } @@ -42,7 +48,7 @@ * @param se * @param connectTimeout */ - protected void disconnect(IoSession se , int connectTimeout) { + public void disconnect(IoSession se , int connectTimeout) { if (se != null) { try{ se.closeNow().awaitUninterruptibly(connectTimeout); diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpClient/TcpHandler.java b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpClient/TcpHandler.java new file mode 100644 index 0000000..fbd9ed7 --- /dev/null +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpClient/TcpHandler.java @@ -0,0 +1,77 @@ +package com.dy.testClient.tcpClient; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.apache.mina.core.service.IoHandlerAdapter; +import org.apache.mina.core.session.IdleStatus; +import org.apache.mina.core.session.IoSession; +import org.apache.mina.filter.FilterEvent; + +public class TcpHandler extends IoHandlerAdapter { + + private static Logger log = LogManager.getLogger(TcpHandler.class.getName()) ; + + /** + * {@inheritDoc} + */ + @Override + public void sessionCreated(IoSession session) throws Exception { + } + + /** + * {@inheritDoc} + */ + @Override + public void sessionOpened(IoSession session) throws Exception { + } + + /** + * {@inheritDoc} + */ + @Override + public void sessionClosed(IoSession session) throws Exception { + } + + /** + * {@inheritDoc} + */ + @Override + public void sessionIdle(IoSession session, IdleStatus status) throws Exception { + } + + /** + * {@inheritDoc} + */ + @Override + public void exceptionCaught(IoSession session, Throwable cause) throws Exception { + } + + /** + * {@inheritDoc} + */ + @Override + public void messageReceived(IoSession session, Object message) throws Exception { + } + + /** + * {@inheritDoc} + */ + @Override + public void messageSent(IoSession session, Object message) throws Exception { + } + + /** + * {@inheritDoc} + */ + @Override + public void inputClosed(IoSession session) throws Exception { + session.closeNow(); + } + + /** + * {@inheritDoc} + */ + @Override + public void event(IoSession session, FilterEvent event) throws Exception { + } +} diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpConnect/LocalDecoder.java b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpConnect/LocalDecoder.java deleted file mode 100644 index 05aad53..0000000 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpConnect/LocalDecoder.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.dy.testClient.tcpConnect; -import java.io.*; - -import org.apache.mina.core.buffer.IoBuffer; -import org.apache.mina.core.session.IoSession; -import org.apache.mina.filter.codec.CumulativeProtocolDecoder; -import org.apache.mina.filter.codec.ProtocolDecoderOutput; - -import com.am.cs12.command.*; - -public class LocalDecoder extends CumulativeProtocolDecoder { - - private static final String DECODER_STATE_KEY = LocalDecoder.class.getName() + ".STATE"; - - public static final int MAX_SIZE = 2147483647 ; - - private class DecoderState { - Command com; - } - - /** - * 瀵圭綉缁滀紶杈撴潵鐨勬暟鎹繘琛岃В鐮� - */ - protected boolean doDecode(IoSession session, IoBuffer in, ProtocolDecoderOutput out) throws IOException, Exception{ - //浠庝細璇濅腑寰楀埌宸茬粡瑙g爜鐨勬暟鎹� - DecoderState decoderState = (DecoderState) session.getAttribute(DECODER_STATE_KEY); - if (decoderState == null) { - decoderState = new DecoderState(); - session.setAttribute(DECODER_STATE_KEY, decoderState); - } - if (decoderState.com == null) { - //璇曠潃璇诲彇鍛戒护鍖哄煙鏁版嵁 - //MAX_IMAGE_SIZE 鐩殑鏄槻姝㈠ぇ鏁版嵁閲忔敾鍑� - if (in.prefixedDataAvailable(4, MAX_SIZE)) { - decoderState.com = readCommand(in); - } else { - //鍛戒护鍖哄煙鏃犺冻澶熺殑鏁版嵁 - return false; - } - } - if (decoderState.com != null) { - //璇曠潃璇诲彇鏁版嵁(鏂囦欢)鍖哄煙鏁版嵁 - //MAX_IMAGE_SIZE 鐩殑鏄槻姝㈠ぇ鏁版嵁閲忔敾鍑� - if (in.prefixedDataAvailable(4, MAX_SIZE)) { - byte[] bs = getDataBytes(in); - MinaData minaCom = new MinaData() ; - minaCom.setCom(decoderState.com) ; - minaCom.setAttachment(bs) ; - out.write(minaCom); - - decoderState.com = null; - return true; - } else { - //鏁版嵁(鏂囦欢)鍖哄煙鏃犺冻澶熺殑鏁版嵁 - return false; - } - } - return false; - } - - /** - * 璇诲彇Command鍛戒护 - * @param in - * @return - * @throws IOException - */ - private Command readCommand(IoBuffer iob) throws IOException , Exception{ - int length = iob.getInt(); - byte[] bytes = new byte[length]; - iob.get(bytes); - Command com = new Command().toObject(bytes); - return com; - } - - /** - * 寰楀埌鏁版嵁鍩熸暟鎹殑瀛楄妭鏁扮粍 - * @param in - * @return - * @throws IOException - */ - private byte[] getDataBytes(IoBuffer iob) throws IOException { - int length = iob.getInt(); - if(length == 0){ - return null ; - } - byte[] bytes = new byte[length]; - iob.get(bytes); - return bytes ; - } - -} diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpConnect/LocalEncoder.java b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpConnect/LocalEncoder.java deleted file mode 100644 index f895d68..0000000 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpConnect/LocalEncoder.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.dy.testClient.tcpConnect; - -import org.apache.mina.filter.codec.ProtocolEncoderOutput; -import org.apache.mina.filter.codec.ProtocolEncoderAdapter; -import org.apache.mina.core.buffer.IoBuffer; -import org.apache.mina.core.session.IoSession; - -import java.io.*; - -public class LocalEncoder extends ProtocolEncoderAdapter { - - /** - * 瀵规暟鎹繘琛岀紪鐮侊紝浠ュ缃戠粶浼犺緭 - */ - public void encode(IoSession session, Object message, ProtocolEncoderOutput out) throws IOException, Exception{ - MinaData minaData = null ; - if(message instanceof Command){ - minaData = new MinaData() ; - minaData.setCom((Command)message) ; - }else{ - minaData = (MinaData) message; - } - byte[] bytes1 = getCommandBytes(minaData.getCom()); - byte[] bytes2 = minaData.getAttachment() ; - int capacity = (bytes1==null?0:bytes1.length) + (bytes2==null?0:bytes2.length) + 8; - IoBuffer buffer = IoBuffer.allocate(capacity, false); - buffer.putInt(bytes1.length); - buffer.put(bytes1); - if(bytes2 == null){ - buffer.putInt(0); - }else{ - buffer.putInt(bytes2.length); - buffer.put(bytes2); - } - buffer.flip(); - out.write(buffer); - } - - /** - * 灏嗗懡浠よ浆鎹㈡垚瀛楄妭鏁扮粍 - * @param com - * @return - * @throws IOException - * @throws Exception - */ - private byte[] getCommandBytes(Command com) throws IOException, Exception { - String xml = com.toXml() ; - byte[] bytes = xml.getBytes() ; - return bytes ; - } -} diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpConnect/MinaConnectPool.java b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpConnect/MinaConnectPool.java deleted file mode 100644 index 0f3321f..0000000 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpConnect/MinaConnectPool.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.dy.testClient.tcpConnect; - -import java.util.*; -import org.apache.mina.core.session.IoSession; - - -public class MinaConnectPool { - /** - * 绌洪棽浼氳瘽鐨勬睜(Hashtable鏄嚎绋嬪畨鍏ㄧ殑) - */ - private static Hashtable<String , Vector<IoSession>> freeSessions = new Hashtable<String ,Vector<IoSession>>(); - - /** - * 浠庝細璇濇睜涓緱鍒扮┖闂茬殑浼氳瘽锛屽鏋滄病鏈夌┖闂茬殑浼氳瘽锛屾湰鐫�蹇�熷弽搴旂殑鍘熷垯锛屾柊寤轰竴涓細璇濓紝涓嶅啀绛夊緟绻佸繖浼氳瘽鐨勯噴鏀� - * @param host - * @param port - * @return - * @throws Exception - */ - public static IoSession getSession(String host , int port , int connectTimeout) throws Exception{ - Vector<IoSession> vecter = freeSessions.get(getKey(host , port)) ; - if(vecter == null){ - vecter = new Vector<IoSession>() ; - freeSessions.put(getKey(host , port), vecter) ; - } - - MinaConnect con = new MinaConnect() ; - - IoSession se = popSession(vecter , con) ; - if(se == null){ - MinaHandler handler = new MinaHandler(connectTimeout) ; - se = createNewSession(host, port, connectTimeout, con, handler) ; - } - return se ; - } - - /** - * 灏嗕細璇濇斁鍥炴睜涓� - * @param host - * @param port - * @param se - */ - public static void freeSession(String host , int port , IoSession se){ - if(se == null){ - return ; - } - Vector<IoSession> vecter = freeSessions.get(getKey(host , port)) ; - if(vecter == null){ - vecter = new Vector<IoSession>() ; - freeSessions.put(getKey(host , port), vecter) ; - } - putSession(vecter, se) ; - } - - /** - * 浠庝細璇濇睜涓彇寰楃┖闂茬殑浼氳瘽 - * @param vecter - * @return - */ - private static IoSession popSession(Vector<IoSession> vecter , MinaConnect con){ - IoSession se = null ; - while(se == null && !vecter.isEmpty()){ - se = (IoSession)vecter.firstElement() ; - if(se != null){ - vecter.removeElementAt(0) ; - } - if(!con.isConnected(se)){ - se = null ; - } - } - return se ; - } - - /** - * 鏀炬柊浼氳瘽 - * @param vecter - * @param se - */ - private static void putSession(Vector<IoSession> vecter , IoSession se){ - vecter.addElement(se) ; - } - - /** - * 鍒涘缓鏂颁細璇� - * @param host - * @param port - * @param connectTimeout - * @param con - * @return - * @throws Exception - */ - private static IoSession createNewSession(String host , int port , int connectTimeout, MinaConnect con , MinaHandler handler) throws Exception{ - return con.createSession(host, port, connectTimeout , handler) ; - } - - /** - * 寰楀埌浼氳瘽姹犵殑key - * @param url - * @param port - * @return - */ - private static String getKey(String host , int port){ - return host + port ; - } - -} - diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpConnect/MinaHandler.java b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpConnect/MinaHandler.java deleted file mode 100644 index 8749cca..0000000 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpConnect/MinaHandler.java +++ /dev/null @@ -1,94 +0,0 @@ -package com.dy.testClient.tcpConnect; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.apache.mina.core.service.IoHandlerAdapter; -import org.apache.mina.core.session.IdleStatus; -import org.apache.mina.core.session.IoSession; - -public class MinaHandler extends IoHandlerAdapter { - - private static Logger log = LogManager.getLogger(MinaHandler.class.getName()) ; - - private Object synObj ; - private int connectTimeout ; - private MinaData minaData ; - - public MinaHandler( int connectTimeout){ - this.connectTimeout = connectTimeout ; - this.synObj = new Object() ; - } - - /** - * 鍙戦�佸懡浠� - * @param session - * @param minaData - */ - public void sendCommand(IoSession session, MinaData minaData){ - session.write(minaData) ; - } - - /** - * 鍙栧緱鍛戒护缁撴灉 - * @param waitTimeout - */ - public MinaData getAnswer(int waitTimeout){ - synchronized (synObj) { - try { - synObj.wait(waitTimeout); - } catch (InterruptedException e) { - e.printStackTrace(); - } - } - return this.minaData; - } - - - - @Override - public void exceptionCaught(IoSession session, Throwable cause) throws Exception { - new MinaConnect().disconnect(session, this.connectTimeout) ; - log.error(cause.getMessage()) ; - } - - @Override - public void messageReceived(IoSession session, Object message) throws Exception { - this.minaData = (MinaData) message; - synchronized (synObj) { - if (synObj != null) { - synObj.notifyAll(); - } - } - } - - @Override - public void messageSent(IoSession session, Object message) throws Exception { - super.messageSent(session, message); - log.info("鍛戒护宸茬粡鍙戦�併��") ; - } - - @Override - public void sessionClosed(IoSession session) throws Exception { - super.sessionClosed(session); - log.info("缃戠粶浼氳瘽宸茬粡鍏抽棴銆�") ; - } - - @Override - public void sessionCreated(IoSession session) throws Exception { - super.sessionCreated(session); - log.info("缃戠粶浼氳瘽宸茬粡鍒涘缓銆�") ; - } - - @Override - public void sessionIdle(IoSession session, IdleStatus status) throws Exception { - super.sessionIdle(session, status); - } - - @Override - public void sessionOpened(IoSession session) throws Exception { - super.sessionOpened(session); - log.info("缃戠粶浼氳瘽宸茬粡鎵撳紑銆�") ; - } - - -} diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/resources/Config.xml b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/resources/Config.xml index aec0502..7ac7aec 100644 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/resources/Config.xml +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/resources/Config.xml @@ -32,17 +32,13 @@ --> <rmiCl rmiSvUrl="127.0.0.1" - rmiSvContext="mwTestServer" - rmiSvPort="9898" + rmiSvContext="mwTestSv" + rmiSvPort="12345" /> <!-- enable:鏄惁鍚姩 - heartbeatTimes:杩炵画閰嶇疆娆℃暟蹇冭烦鍚庡彂閫佷竴娆℃暟鎹� - sendInterval:鍙戦�佸績璺虫垨鏁版嵁鐨勬椂闂撮棿闅� --> <tcpCl enable="true" - heartbeatTimes="3" - sendInterval="3" /> </config> \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/resources/application.yml b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/resources/application.yml deleted file mode 100644 index 8b13789..0000000 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/resources/application.yml +++ /dev/null @@ -1 +0,0 @@ - diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/resources/log4j2.xml b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/resources/log4j2.xml new file mode 100644 index 0000000..104ed67 --- /dev/null +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/resources/log4j2.xml @@ -0,0 +1,39 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Configuration status="OFF"> + <Appenders> + <Console name="Console" target="SYSTEM_OUT"> + <PatternLayout charset="GBK" pattern="%d %-5p [%t] (%F:%L) - %m%n%throwable"/> + </Console> + <!-- + fileName="${sys:user.home}/logs/aepTest.log" filePattern="${sys:user.home}/logs/aepTest-%d{yyyy-MM}-%i.log.gz" + fileName="/logs/testJgroups.log" filePattern="/logs/testJgroups-%d{yyyyMMdd}-%i.log.gz" + fileName="logs/testJgroups.log" filePattern="logs/testJgroups-%d{yyyyMMdd}-%i.log.gz" + sys:user.home褰撳墠鐢ㄦ埛鍦ㄦ搷浣滅郴缁熶腑鐨勬枃妗g洰褰� + /logs/testJgroups.log褰撳墠杞欢鎵�鍦ㄧ‖鐩樻牴鐩綍 + logs/testJgroups.log褰撳墠杞欢鎵�鍦ㄧ洰褰� + --> + <RollingFile name="File" fileName="logs/mwTestCl.log" filePattern="logs/aepTest-%d{yyyyMMdd}-%i.log"> + <PatternLayout charset="UTF-8" pattern="%d %-5p [%t] (%class.%method:%L) - %m%n%throwable"/> + <Policies> + <TimeBasedTriggeringPolicy interval="7" /> + <SizeBasedTriggeringPolicy size="10MB"/> + </Policies> + <DefaultRolloverStrategy max="50" /> + </RollingFile> + </Appenders> + <Loggers> + <!-- + <Logger name="com.zhzc.jgTest" level="debug"> + <AppenderRef ref="Console"/> + </Logger> + <Logger name="org.jgroups" level="info"> + <AppenderRef ref="File"/> + </Logger> + --> + <!-- Root涓庡悇涓狶ogger鍚屾椂璧蜂綔鐢� --> + <Root level="info"> + <AppenderRef ref="Console"/> + <AppenderRef ref="File"/> + </Root> + </Loggers> +</Configuration> diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/resources/log4j2.yml b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/resources/log4j2.yml deleted file mode 100644 index 375972f..0000000 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/resources/log4j2.yml +++ /dev/null @@ -1,64 +0,0 @@ -Configuration: - #status锛岃繖涓敤浜庤缃甽og4j2鑷韩鍐呴儴鐨勪俊鎭緭鍑猴紝鍙互涓嶈缃紝褰撹缃垚trace鏃讹紝浣犱細鐪嬪埌log4j2鍐呴儴鍚勭璇︾粏杈撳嚭锛涘彲浠ヨ缃垚Off(鍏抽棴)鎴朎rror(鍙緭鍑洪敊璇俊鎭�) - status: Error - - Properties: # 瀹氫箟鍏ㄥ眬鍙橀噺 - Property: - #鏃ュ織鏂囦欢瀛樺偍鐨勭洰褰� - - name: log.path - value: ./logs - #鏃ュ織鏂囦欢瀛樺偍鍚嶇О - - name: project.name - value: mwTestClient - - #瀹氫箟杈撳嚭鍣紝鍙互杈撳嚭鍒版帶鍒跺彴鍜屾枃浠�. - Appenders: - #杈撳嚭鍒版帶鍒跺彴 - Console: - #Appender鍛藉悕 - name: CONSOLE - target: SYSTEM_OUT - ThresholdFilter: - level: debug #杈撳嚭鏃ュ織绾у埆锛岃緭鍑烘棩蹇楁椂锛岄鍏堢敱Loggers.Root.level鎴朙oggers.Logger.level鍒ゆ柇鏄惁杈撳嚭锛岀劧鍚庡啀鐢辨湰level鍒ゆ柇鏄惁杈撳嚭 - onMatch: ACCEPT #onMatch=ACCEPT 澶т簬绛変簬 "level" 閰嶇疆鐨勭瓑绾у湴鏃ュ織杈撳嚭 - onMismatch: DENY #onMismatch=DENY 灏忎簬 "level" 閰嶇疆鐨勭瓑绾у湴鏃ュ織涓嶈緭鍑� - #鏃ュ織鍐呭鏍峰紡 - PatternLayout: - #%n-鎹㈣ - #%m-鏃ュ織鍐呭锛岃緭鍑轰唬鐮佷腑鎸囧畾鐨勬棩蹇椾俊鎭� - #%p-杈撳嚭浼樺厛绾э紝鍗矰EBUG,INFO,WARN,ERROR,FATAL - #%r-绋嬪簭鍚姩鍒扮幇鍦ㄧ殑姣鏁� - #%%- 杈撳嚭涓�涓�"%" 瀛楃 - #%t-褰撳墠绾跨▼鍚� - #%d-鏃ユ湡鍜屾椂闂�, 甯哥敤鐨勬牸寮忔湁%d{DATE},%d{ABSOLUTE},%d{HH:mm:ss,SSS},%d{ddMMyyyyHH:mm:ss,SSS} - #%l-鍚�%F%L%C%M - #%F-java婧愭枃浠跺悕 - #%L-java婧愮爜琛屾暟 - #%C-java绫诲悕,%C{1}杈撳嚭鏈�鍚庝竴涓厓绱� - #%M-java鏂规硶鍚� - pattern: "%d{yyyy-MM-dd HH:mm:ss,SSS}:%4p %t (%C.%M:%L) - %m%n" - # 杈撳嚭鍒版枃浠讹紝瓒呰繃10MB褰掓。 - RollingFile: - - name: ROLLING_FILE - ignoreExceptions: false - fileName: ${log.path}/${project.name}.log - filePattern: "${log.path}/$${date:yyyy-MM}/${project.name}-%d{yyyy-MM-dd}-%i.log.gz" - ThresholdFilter: - level: error #杈撳嚭鏃ュ織绾у埆锛岃緭鍑烘棩蹇楁椂锛岄鍏堢敱Loggers.Root.level鎴朙oggers.Logger.level鍒ゆ柇鏄惁杈撳嚭锛岀劧鍚庡啀鐢辨湰level鍒ゆ柇鏄惁杈撳嚭 - onMatch: ACCEPT #onMatch=ACCEPT 澶т簬绛変簬 "level" 閰嶇疆鐨勭瓑绾у湴鏃ュ織杈撳嚭 - onMismatch: DENY #onMismatch=DENY 灏忎簬 "level" 閰嶇疆鐨勭瓑绾у湴鏃ュ織涓嶈緭鍑� - #鏃ュ織鍐呭鏍峰紡 - PatternLayout: - pattern: "%d{yyyy-MM-dd HH:mm:ss,SSS}:%4p %t (%C.%M:%L) - %m%n" - Policies: - SizeBasedTriggeringPolicy: - size: "10 MB" - DefaultRolloverStrategy: - max: 1000 - - Loggers: - Root: - level: info #鏃ュ織杈撳嚭绾у埆锛屽叡鏈�8涓骇鍒紝鎸夌収浠庝綆鍒伴珮涓猴細all < trace < debug < info < warn < error < fatal < off - AppenderRef: #Root鐨勫瓙鑺傜偣锛岀敤鏉ユ寚瀹氳鏃ュ織杈撳嚭鍒板摢涓狝ppender. - - ref: CONSOLE #杈撳嚭鏃ュ織鏃讹紝棣栧厛鐢辨湰level鍒ゆ柇鏄惁杈撳嚭锛岀劧鍚庡啀鐢变笂闈㈢殑Appenders.Console.ThresholdFilter.level鍒ゆ柇鏄惁杈撳嚭 - - ref: ROLLING_FILE #杈撳嚭鏃ュ織鏃讹紝棣栧厛鐢辨湰level鍒ゆ柇鏄惁杈撳嚭锛岀劧鍚庡啀鐢变笂闈㈢殑Appenders.RollingFile.ThresholdFilter.level鍒ゆ柇鏄惁杈撳嚭 diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/pom.xml b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/pom.xml new file mode 100644 index 0000000..18bf9de --- /dev/null +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/pom.xml @@ -0,0 +1,119 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <parent> + <artifactId>pipIrr-mw</artifactId> + <groupId>com.dy</groupId> + <version>1.0.0</version> + <relativePath>../pom.xml</relativePath> + </parent> + + <packaging>jar</packaging> + <artifactId>pipIrr-mwTest-server</artifactId> + <version>1.0.0</version> + <name>pipIrr-mwTest-server</name> + <description>涓烘ā鎷烺TU娴嬭瘯绔彁渚涙湇鍔�</description> + + <dependencies> + </dependencies> + + <build> + <resources> + <resource> + <directory>src/main/java</directory> + <includes> + <include>**/*.xml</include> + </includes> + </resource> + <resource> + <directory>src/main/resources</directory> + <includes> + <include>**/*.xml</include> + <include>**/*.yml</include> + </includes> + </resource> + </resources> + <plugins> + <plugin> + <!-- 璇ユ彃浠朵笉浼氬皢椤圭洰涓紩鍏ョ殑渚濊禆鎵撹繘鏈�缁堢殑 Jar 鏂囦欢 --> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-jar-plugin</artifactId> + <configuration> + <archive> + <!-- 鐢熸垚鐨刯ar涓紝涓嶈鍖呭惈pom.xml鍜宲om.properties杩欎袱涓枃浠� --> + <addMavenDescriptor>false</addMavenDescriptor> + <!-- 杩欓儴鍒嗗彲鏈夊彲鏃�,鍔犱笂鐨勮瘽鍒欑洿鎺ョ敓鎴愬彲杩愯jar鍖� --> + <manifest> + <mainClass>com.dy.testServer.Server</mainClass> + <useUniqueVersions>false</useUniqueVersions> + <addClasspath>true</addClasspath> + <classpathPrefix>lib/</classpathPrefix> + </manifest> + <!-- manifestEntries鐨勪綔鐢ㄦ槸鎸囧畾鏈湴锛堣嚜宸变笅杞界殑lib涓嬬殑锛塲ar鍖呮坊鍔犲埌MANIFEST.MF鏂囦欢涓幓 + <manifestEntries> + <Class-Path>.lib/alipay-sdk.java.jar</Class-Path> + </manifestEntries> + --> + </archive> + <!-- 鎺掗櫎鏌愪釜鏂囦欢 + <excludes> + <exclude>com/dy/App.class</exclude> + </excludes> + --> + <!-- 鍙墽琛宩ar杩涜鍛藉悕銆傝繖鏍蜂細鎵撳寘鎴愪袱涓猨ar鍖咃紝涓嶄細瀵规櫘閫歫ar閲嶆柊鍛藉悕銆� + <classifier>exec</classifier> + --> + </configuration> + </plugin> + <plugin> + <!-- 褰撻」鐩腑渚濊禆姣旇緝澶氭椂锛屾垜浠彲浠ュ�熷姪 maven-dependency-plugin 鎻掍欢鑷姩甯垜浠笅杞戒緷璧栫殑 Jar 鏂囦欢锛屾帹鑽愬皢璇ユ彃浠剁粦瀹氬埌package鐢熷懡鍛ㄦ湡涓� --> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-dependency-plugin</artifactId> + <executions> + <execution> + <!-- 缁戝畾鐢熷懡鍛ㄦ湡 --> + <phase>package</phase> + <goals> + <goal>copy-dependencies</goal> + </goals> + <!-- 璁剧疆渚濊禆鐨勫瓨鏀捐矾寰� --> + <configuration> + <outputDirectory>${project.build.directory}/lib</outputDirectory> + </configuration> + </execution> + </executions> + </plugin> + <plugin> + <!-- 璁剧疆java缂栬瘧鐗堟湰锛岃繍琛岀幆澧冪増鏈� --> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <!-- source锛� 婧愪唬鐮佺紪璇戠増鏈紱target锛� 鐩爣骞冲彴缂栬瘧鐗堟湰锛沞ncoding锛� 瀛楃闆嗙紪鐮併�� --> + <configuration> + <source>${java.version}</source> + <target>${java.version}</target> + <encoding>${encoding}</encoding> + </configuration> + </plugin> + <plugin> + <!-- 瑙e喅璧勬簮鏂囦欢鐨勭紪鐮侀棶棰� --> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-resources-plugin</artifactId> + <configuration> + <encoding>${encoding}</encoding> + </configuration> + </plugin> + + <plugin> + <!-- maven閲屾墽琛屾祴璇曠敤渚嬬殑鎻掍欢 --> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <configuration> + <skipTests>true</skipTests> + </configuration> + </plugin> + + </plugins> + </build> +</project> diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/Server.java b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/Server.java new file mode 100644 index 0000000..6e08a2e --- /dev/null +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/Server.java @@ -0,0 +1,169 @@ +package com.dy.testServer; + +import java.io.Console; +import java.util.ArrayList; +import java.util.List; + +import com.dy.testServer.console.CommandConsole; +import com.dy.testServer.forRmi.Manager; +import org.jdom2.Document; + +import com.dy.common.mw.UnitInterface; +import com.dy.common.mw.UnitStartedCallbackInterface; +import com.dy.common.mw.channel.rmi.RmiConfigVo; +import com.dy.common.mw.channel.rmi.RmiUnit; +import com.dy.common.util.ConfigXml; +import com.dy.common.util.NumUtil; + +public class Server{ + + private ConfigXml conf = null ; + private Document doc = null ; + private boolean showStartInfo = false ; + + private String RmiSvUrl ; + + private final List<UnitInterface> units = new ArrayList<>() ; + + /** + * @param args 鍙傛暟 + */ + public static void main(String[] args) { + new Server().startServer(args); + } + + /** + * 鍚姩鏈嶅姟 + */ + public void startServer(String[] args){ + Server sv = new Server(); + long start = System.currentTimeMillis() ; + try { + sv.conf = new ConfigXml() ; + sv.doc = sv.conf.createDom(sv.getClass(), "config.xml") ; + //////////////// + //鏈嶅姟 閰嶇疆 + sv.showStartInfo = sv.conf.getSetAttrBoolean(sv.doc, "config.server", "showStartInfo", null, null) ; + + sv.startUnits() ; + + String svName ; + try{ + svName = sv.conf.getSetAttrTxt(sv.doc, "config.server", "name", null, false, null) ; + }catch(Exception e){ + svName = "" ; + } + + System.out.println("OOOOOOOOOO OOOOOOOO OOOOOOOO") ; + System.out.println("@@@@@@@@@@@@@@@@#O $@@@@@@@@& @@@@@@@@#") ; + System.out.println("@@@@@@@@@@@@@@@@@@@# @@@@@@@@# $@@@@@@@@&") ; + System.out.println("@@@@@@@@@@@@@@@@@@@@@# #@@@@@@@@@@@@@@@@O") ; + System.out.println("@@@@@@@@@@@@@@@@@@@@@@@ &@@@@@@@@@@@@@@") ; + System.out.println("@@@@@@$ $@@@@@@@@@& O@@@@@@@@@@@#") ; + System.out.println("@@@@@@$ @@@@@@@@@ @@@@@@@@@& " + svName + "mwTestSv " ) ; + System.out.println("@@@@@@$ @@@@@@@@@ &@@@@@@@@") ; + System.out.println("@@@@@@$ O@@@@@@@@@ &@@@@@@@@") ; + if(sv.RmiSvUrl != null){ + System.out.println("@@@@@@$ #@@@@@@@@@$ &@@@@@@@@ RmiSv " + sv.RmiSvUrl ) ; + }else{ + System.out.println("@@@@@@$ #@@@@@@@@@$ &@@@@@@@@" ) ; + } + System.out.println("@@@@@@@@@@@@@@@@@@@@@@# &@@@@@@@@ Runing in standalone mode" ) ; + System.out.println("@@@@@@@@@@@@@@@@@@@@@& &@@@@@@@@ Startup in " + (System.currentTimeMillis() - start) + " MS" ) ; + System.out.println("@@@@@@@@@@@@@@@@@@@# &@@@@@@@@") ; + System.out.println("@@@@@@@@@@@@@@@@#O &@@@@@@@@") ; + + + + Console console = System.console(); + if (console == null) { + throw new IllegalStateException("涓ラ噸閿欒锛屾湭鑳藉緱鍒版帶鍒跺彴瀵硅薄!"); + } + CommandConsole mwConsole = new CommandConsole(console) ; + mwConsole.init(args); + boolean exit = mwConsole.clientConsole() ; + if(exit){ + System.exit(-1); + } + }catch(Exception e){ + e.printStackTrace(); + } + } + + private void startUnits(){ + try { + /////////////// + //鍩烘湰閰嶇疆 + String txt = conf.getSetAttrTxt(doc, "config.base", "rtuAddrStart", null, false, null) ; + if(txt == null || txt.trim().equals("")){ + throw new Exception("鍏冪礌config.base鐨勫睘鎬tuAddrStart鐨勫�间负绌哄瓧绗︿覆!"); + } + txt = txt.trim() ; + if(!NumUtil.isPlusIntNumber(txt)){ + throw new Exception("鍏冪礌config.base鐨勫睘鎬tuAddrStart鐨勫�煎繀椤讳负鏁板��!"); + } + if(txt.startsWith("0")){ + throw new Exception("鍏冪礌config.base鐨勫睘鎬tuAddrStart鐨勬暟鍊间笉鑳戒互0寮�澶�!"); + } + if(txt.length() != 10){ + throw new Exception("鍏冪礌config.base鐨勫睘鎬tuAddrStart鐨勬暟鍊奸暱搴﹀繀椤讳负10浣�!"); + } + ServerProperties.rtuAddrStart = Long.valueOf(txt) ; + + txt = conf.getSetAttrTxt(doc, "config.base", "rtuAddrEnd", null, false, null) ; + if(txt == null || txt.trim().equals("")){ + throw new Exception("鍏冪礌config.base鐨勫睘鎬tuAddrEnd鐨勫�间负绌哄瓧绗︿覆!"); + } + txt = txt.trim() ; + if(!NumUtil.isPlusIntNumber(txt)){ + throw new Exception("鍏冪礌config.base鐨勫睘鎬tuAddrEnd鐨勫�煎繀椤讳负鏁板��!"); + } + if(txt.startsWith("0")){ + throw new Exception("鍏冪礌config.base鐨勫睘鎬tuAddrEnd鐨勬暟鍊间笉鑳戒互0寮�澶�!"); + } + if(txt.length() != 10){ + throw new Exception("鍏冪礌config.base鐨勫睘鎬tuAddrEnd鐨勬暟鍊奸暱搴﹀繀椤讳负10浣�!"); + } + ServerProperties.rtuAddrEnd = Long.valueOf(txt) ; + if(ServerProperties.rtuAddrEnd <= ServerProperties.rtuAddrStart){ + throw new Exception("鍏冪礌config.base鐨勫睘鎬tuAddrEnd鐨勬暟鍊煎繀椤诲ぇ浜巖tuAddrStart!"); + } + + ServerProperties.rtuAddrPerMwTest = conf.getSetAttrPlusInt(doc, "config.base", "rtuAddrPerMwTest", null, 1, null, null) ; + if(ServerProperties.rtuAddrPerMwTest > ServerProperties.rtuAddrEnd - ServerProperties.rtuAddrStart){ + throw new Exception("鍏冪礌config.base鐨勫睘鎬tuAddrPerMwTest鐨勬暟鍊奸厤缃笉姝g‘!"); + } + ServerProperties.tcpServerIp = conf.getSetAttrTxt(doc, "config.base", "tcpServerIp", null, false, null) ; + ServerProperties.tcpServerPort = conf.getSetAttrPlusInt(doc, "config.base", "tcpServerPort", null, 1, 65535, null) ; + ServerProperties.sendInterval = conf.getSetAttrPlusInt(doc, "config.base", "sendInterval", null, 1, null, null) ; + ServerProperties.heartbeatTimes = conf.getSetAttrPlusInt(doc, "config.base", "heartbeatTimes", null, 1, null, null) ; + ServerProperties.sendTimes = conf.getSetAttrPlusInt(doc, "config.base", "sendTimes", null, 1, null, null) ; + + + ///////////////// + //RMI妯″潡 + Manager.init(); + RmiConfigVo rmiVo = new RmiConfigVo(); + rmiVo.enable = conf.getSetAttrBoolean(doc, "config.rmi", "enable", null, null) ; + if(rmiVo.enable){ + rmiVo.port = conf.getSetAttrPlusInt(doc, "config.rmi", "port", null, 100, 65535, null); + rmiVo.context = conf.getSetAttrTxt(doc, "config.rmi", "context", null, false, null); + rmiVo.showStartInfo = showStartInfo ; + AdapterImp_RmiUnit rmiAdap = new AdapterImp_RmiUnit(); + rmiAdap.setConfig(rmiVo); + RmiUnit rmiUnit = RmiUnit.getInstance(); + rmiUnit.setAdapter(rmiAdap); + rmiUnit.start(new UnitStartedCallbackInterface(){ + @Override + public void call(Object obj) { + } + }); + RmiSvUrl = "[ip]:" + rmiVo.port + "/" + rmiVo.context ; + units.add(rmiUnit) ; + } + } catch (Exception e) { + e.printStackTrace(); + } + } + +} diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/ServerProperties.java b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/ServerProperties.java new file mode 100644 index 0000000..7bada8e --- /dev/null +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/ServerProperties.java @@ -0,0 +1,22 @@ +package com.dy.testServer; + +public class ServerProperties { + + //妯℃嫙瀹㈡埛鐨剅tuAddr璧峰鍙� + public static Long rtuAddrStart = 0L ; + //妯℃嫙瀹㈡埛鐨剅tuAddr鎴鍙� + public static Long rtuAddrEnd = 0L ; + //姣忎釜mwTest鍒嗛厤鐨剅tuAddr鏁� + public static Integer rtuAddrPerMwTest = 0 ; + //鏈嶅姟绔疷RL + public static String tcpServerIp = "" ; + //鏈嶅姟绔笂涓嬫枃 + public static Integer tcpServerPort = 60000 ; + //鍙戦�佹暟鎹棿闅� 绉� + public static Integer sendInterval = 0 ; + //姣忎竴杞鍙戦�佹暟鎹紝鍏朵腑鍖呮嫭蹇冭烦鍙戦�佹鏁� + public static Integer heartbeatTimes = 0 ; + //鍙戦�佹暟鎹鏁� + public static Integer sendTimes = 0 ; + +} diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/console/Command.java b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/console/Command.java new file mode 100644 index 0000000..e002217 --- /dev/null +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/console/Command.java @@ -0,0 +1,128 @@ +package com.dy.testServer.console; + +import java.io.PrintWriter; +import java.net.InetAddress; +import java.net.UnknownHostException; +import java.util.Iterator; +import java.util.Map; +import java.util.Set; + +import com.dy.common.mw.channel.rmi.RmiConfigVo; +import com.dy.common.mw.channel.rmi.RmiUnit; +import com.dy.testServer.ServerProperties; +import com.dy.testServer.forRmi.MwTestClientStatus; +import com.dy.testServer.forRmi.Manager; + +public class Command { + + private static final String[] commands ; + static{ + commands = new String[]{ + "config 鏌ョ湅閰嶇疆淇℃伅", + "show 鏄剧ずmwTest鎯呭喌", + "start 鍚姩mwTest涓婃姤鏁版嵁", + "exit 閫�鍑�", + }; + } + + + public static boolean dealCommand(String command, PrintWriter prtWrt){ + boolean exit = false ; + if (command.equals("help")) { + outCommand(prtWrt); + } else if (command.equals("config")) { + config(prtWrt); + } else if (command.equals("show")) { + show(prtWrt); + } else if (command.equals("start")) { + start(prtWrt); + } else if(command.equals("exit")){ + exit = true ; + } else { + outError(prtWrt); + } + return exit ; + } + private static void outCommand(PrintWriter prtWrt){ + prtWrt.println(""); + prtWrt.println("鍛戒护"); + for(String s : commands){ + prtWrt.println(" " + s); + } + prtWrt.println(""); + } + private static void outError(PrintWriter prtWrt){ + prtWrt.println(""); + prtWrt.println("鍛戒护涓嶅彲璇嗗埆锛�"); + prtWrt.println(""); + } + + private static void config(PrintWriter prtWrt){ + prtWrt.println(""); + prtWrt.println("鐩稿叧mwTest鐨勯厤缃�"); + prtWrt.println(" 妯℃嫙瀹㈡埛鐨凴tuAddr璧峰鍙凤細" + ServerProperties.rtuAddrStart); + prtWrt.println(" 妯℃嫙瀹㈡埛鐨凴tuAddr鎴鍙凤細" + ServerProperties.rtuAddrEnd); + prtWrt.println(" 姣忎釜mwTest鍒嗛厤鐨凴tuAddr鏁帮細" + ServerProperties.rtuAddrPerMwTest); + prtWrt.println(" 閫氫俊涓棿浠禝P锛�" + ServerProperties.tcpServerIp); + prtWrt.println(" 閫氫俊涓棿浠剁鍙o細" + ServerProperties.tcpServerPort); + prtWrt.println(" mwTest鍙戦�佹暟鎹棿闅旓紙绉掞級锛�" + ServerProperties.sendInterval); + prtWrt.println(" mwTest姣廟tuAddr鍙峰彂閫佹暟鎹鏁帮細" + ServerProperties.sendTimes); + prtWrt.println(" mwTest姣忎竴杞鍙戦�佹暟鎹紝鍏朵腑鍖呮嫭蹇冭烦鍙戦�佹鏁帮細" + ServerProperties.heartbeatTimes); + prtWrt.println("鏈湇鍔MI Server閰嶇疆"); + String ip = null ; + try { + ip = InetAddress.getLocalHost().getHostAddress(); + } catch (UnknownHostException e) { + e.printStackTrace(); + } + RmiConfigVo confVo = RmiUnit.getInstance().getAdapter().getConfig() ; + if(ip != null){ + prtWrt.println(" RMI Server锛�" + ip + ":" + confVo.port + "/" + confVo.context); + }else{ + prtWrt.println(" RMI Server锛歔ip]:" + confVo.port + "/" + confVo.context); + } + prtWrt.println(""); + } + + private static void show(PrintWriter prtWrt){ + prtWrt.println(""); + prtWrt.println("褰撳墠宸叉敞鍐宮wTest瀹㈡埛绔暟閲忥細" + Manager.id2TokenMap.size()); + if(Manager.id2TokenMap.size() > 0){ + prtWrt.println("mwTest瀹㈡埛绔強鍏跺伐浣滀俊鎭�"); + Set<Map.Entry<String, MwTestClientStatus>> set = Manager.token2ClientMap.entrySet() ; + Iterator<Map.Entry<String, MwTestClientStatus>> it = set.iterator() ; + Map.Entry<String, MwTestClientStatus> ent ; + while(it.hasNext()){ + ent = it.next() ; + prtWrt.println(" mwTest瀹㈡埛绔�(token=" + ent.getKey() + ")"); + MwTestClientStatus sta = ent.getValue() ; + if(sta != null){ + if(sta.confVo != null){ + prtWrt.println(" rtuAddr鑼冨洿锛�" + sta.confVo.rtuAddrStart + "--" + sta.confVo.rtuAddrEnd); + } + if(sta.startVo != null){ + prtWrt.println(" 涓婃姤鏁版嵁锛�" + (sta.startVo.start?"宸茬粡寮�濮�":"鏈紑濮�")); + }else{ + prtWrt.println(" 涓婃姤鏁版嵁锛氭湭寮�濮�") ; + } + if(sta.count != null){ + prtWrt.println(" 宸茬粡涓婃姤鏁版嵁锛�" + sta.count + "鏉�"); + } + if(sta.over != null && sta.over){ + prtWrt.println(" 涓婃姤鏁版嵁宸茬粡瀹屾垚锛屽叡鐢ㄦ椂锛�" + sta.seconds + "绉�"); + } + } + } + } + prtWrt.println(""); + } + + private static void start(PrintWriter prtWrt){ + prtWrt.println(""); + prtWrt.println(" 宸茬粡鍏佽mwTest涓婃姤鏁版嵁浜�"); + prtWrt.println(""); + Manager.enablemwTestStart = true ; + } + + +} diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/console/CommandConsole.java b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/console/CommandConsole.java new file mode 100644 index 0000000..1236153 --- /dev/null +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/console/CommandConsole.java @@ -0,0 +1,91 @@ +package com.dy.testServer.console; + +import java.io.Console; +import java.io.PrintWriter; + +public class CommandConsole { + + private Console console ; + private PrintWriter prtWrt ; + private static final String myPassword = "123456" ; + private static final String commandPrefix1 = ">>" ; + private static final String commandPrefix2 = "$: " ; + private static String commandPrefix = commandPrefix1 + commandPrefix2 ; + + + public CommandConsole(Console console)throws Exception{ + this.console = console ; + if(this.console == null){ + throw new Exception("涓ラ噸閿欒锛宩ava鎺у埗鍙板璞′负绌猴紒"); + } + prtWrt = console.writer() ; + } + + /** + * 鍒濆锛屾鏌ュ苟杈撳嚭涓�浜涗俊鎭� + * @param args 鍙傛暟 + * @throws Exception 寮傚父 + */ + public void init(String[] args) throws Exception{ + PrintWriter prtWrt = console.writer() ; + if(args != null && args.length > 0){ + String str = "" ; + for(String s : args){ + str += s ; + } + prtWrt.println("info锛氬惎鍔ㄥ弬鏁�" + str); + } + + prtWrt.println("----------------------------------------"); + prtWrt.println("-- --"); + prtWrt.println("-- 娆㈣繋浣跨敤mwTest 鏈嶅姟鎺у埗绔� --"); + prtWrt.println("-- --"); + prtWrt.println("----------------------------------------"); + } + + /** + * 鎵ц鎺у埗鍙版帶鍒� + * @return 杩斿洖 + */ + public boolean clientConsole(){ + boolean exit = false ; + try { + this.login() ; + exit = this.doConsole(); + } catch (Exception e) { + e.printStackTrace(); + } + return exit ; + } + + private boolean login(){ + while (true) { + //String username = console.readLine("Username: "); + char[] password = console.readPassword(">>Password: "); + String passwordStr = String.valueOf(password) ; + if (passwordStr.equals("help")) { + console.printf("瀵嗙爜鏄�%1$s.\n", "123456"); + // 浣跨敤鍚庡簲绔嬪嵆灏嗘暟缁勬竻绌猴紝浠ュ噺灏戝叾鍦ㄥ唴瀛樹腑鍗犵敤鐨勬椂闂达紝澧炲己瀹夊叏鎬� + password = null; + } else if(passwordStr.equals(myPassword)){ + return true; + } + } + } + + private boolean doConsole(){ + boolean exit = false ; + while (!exit) { + String command = console.readLine(commandPrefix); + exit = Command.dealCommand(command, prtWrt) ; + } + return exit ; + } + + public static void changeCommandPrefix(String prefix){ + commandPrefix = commandPrefix1 + prefix ; + } + public static void recoverCommandPrefix(){ + commandPrefix = commandPrefix1 + commandPrefix2 ; + } +} diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/forRmi/Code.java b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/forRmi/Code.java new file mode 100644 index 0000000..970c2f5 --- /dev/null +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/forRmi/Code.java @@ -0,0 +1,16 @@ +package com.dy.testServer.forRmi; + +public class Code { + + public static String cd1 = "001" ;//娉ㄥ唽 + + public static String cd2 = "002" ;//璇锋眰mwClient鐨勯厤缃� + + public static String cd3 = "003" ;//璇锋眰寮�濮嬪伐浣� + + public static String cd4 = "004" ;//鍚戞湇鍔$涓婃姤淇℃伅 + + public static String cd5 = "005" ;//鍚戞湇鍔$涓婃姤 瀹屾垚浠诲姟鐨勬暟閲� + + public static String cd6 = "006" ;//鍚戞湇鍔$涓婃姤 鍏ㄩ儴浠诲姟瀹屾垚 +} diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/forRmi/Manager.java b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/forRmi/Manager.java new file mode 100644 index 0000000..ca88a20 --- /dev/null +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/forRmi/Manager.java @@ -0,0 +1,192 @@ +package com.dy.testServer.forRmi; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import com.dy.testServer.ServerProperties; + +public class Manager { + + public static boolean enablemwTestStart = false ; + + public static int clientId = 1 ; + + public static long maxClient = 0 ; + + public static Map<String, String> id2TokenMap = new HashMap<>() ; + + public static Map<String, MwTestClientStatus> token2ClientMap = new HashMap<>() ; + + public static List<Object[]> rtuAddrList = new ArrayList<>() ; + + public static void init(){ + maxClient = (ServerProperties.rtuAddrEnd - ServerProperties.rtuAddrStart)/ServerProperties.rtuAddrPerMwTest ; + if((ServerProperties.rtuAddrEnd - ServerProperties.rtuAddrStart)%ServerProperties.rtuAddrPerMwTest > 0 ){ + maxClient = maxClient + 1 ; + } + int count = 0 ; + for(int i = 0; i < maxClient; i++){ + long start = ServerProperties.rtuAddrStart + (i * ServerProperties.rtuAddrPerMwTest) ; + long end = ServerProperties.rtuAddrStart + ((i + 1) * ServerProperties.rtuAddrPerMwTest - 1) ; + if(end > ServerProperties.rtuAddrEnd){ + end = ServerProperties.rtuAddrEnd ; + } + if(end < start){ + break ; + }else{ + rtuAddrList.add(count++, new Object[]{start, end}); + } + } + } + + public synchronized static String dealRequest(Object obj) throws Exception{ + RmiResponseVo resVo ; + if(obj == null){ + resVo = new RmiResponseVo() ; + resVo.success = false ; + resVo.errorInfo = "鏀跺埌鐨勬暟鎹负null" ; + }else if(!(obj instanceof String)){ + resVo = new RmiResponseVo() ; + resVo.success = false ; + resVo.errorInfo = "鏀跺埌鐨勬暟鎹笉鏄瓧绗︿覆绫诲瀷" ; + }else{ + RmiRequestVo rqVo = RmiRequestVo.jsonToObject((String)obj) ; + resVo = doDeal(rqVo) ; + } + return resVo.toJson() ; + } + + private static RmiResponseVo doDeal(RmiRequestVo rqVo){ + RmiResponseVo resVo = new RmiResponseVo() ; + resVo.code = rqVo.code ; + if(rqVo.code.equals(Code.cd1)){ + if(rqVo.id == null || rqVo.id.trim().equals("")){ + resVo.success = false ; + resVo.errorInfo = "娉ㄥ唽澶辫触锛屽繀椤绘彁渚涘鎴风ID " ; + }else{ + ResRegisterVo vo = doDealRegister(rqVo) ; + if(vo != null){ + resVo.obj = vo ; + }else{ + resVo.success = false ; + resVo.errorInfo = "rtuAddr宸茬粡鍒嗛厤瀹屾垚锛屾敞鍐屽け璐�" ; + } + } + }else if(rqVo.code.equals(Code.cd2)){ + resVo.obj = doDealGetConfig(rqVo) ; + }else if(rqVo.code.equals(Code.cd3)){ + resVo.obj = doDealGetStart(rqVo) ; + }else if(rqVo.code.equals(Code.cd4)){ + doDealReportCount(rqVo) ; + }else if(rqVo.code.equals(Code.cd5)){ + doDealReportOver(rqVo) ; + }else if(rqVo.code.equals(Code.cd6)){ + doDealAllOver(rqVo) ; + } + return resVo ; + } + + private static ResRegisterVo doDealRegister(RmiRequestVo rqVo){ + ResRegisterVo resVo = null ; + String token = id2TokenMap.get(rqVo.id) ; + if(token == null){ + if(clientId <= rtuAddrList.size()){ + resVo = new ResRegisterVo() ; + resVo.token = "" + clientId ; + id2TokenMap.put(rqVo.id, resVo.token) ; + clientId++ ; + } + }else{ + resVo = new ResRegisterVo() ; + resVo.token = token ; + } + return resVo ; + } + + private static MwConfigVo doDealGetConfig(RmiRequestVo rqVo){ + MwConfigVo conVo ; + int token = Integer.parseInt(rqVo.token) ; + MwTestClientStatus sta = token2ClientMap.get("" + token); + if(sta == null){ + Object[] rtuAddrs = rtuAddrList.get(token-1) ; + conVo = new MwConfigVo() ; + conVo.rtuAddrStart = (Long)rtuAddrs[0] ; + conVo.rtuAddrEnd = (Long)rtuAddrs[1] ; + conVo.tcpServerIp = ServerProperties.tcpServerIp ; + conVo.tcpServerPort = ServerProperties.tcpServerPort ; + conVo.sendInterval = ServerProperties.sendInterval ; + conVo.heartbeatTimes = ServerProperties.heartbeatTimes ; + conVo.sendTimes = ServerProperties.sendTimes ; + sta = new MwTestClientStatus() ; + sta.confVo = conVo ; + token2ClientMap.put("" + token, sta); + }else{ + conVo = sta.confVo; + } + return conVo ; + } + private static ResStartVo doDealGetStart(RmiRequestVo rqVo){ + ResStartVo rvo = new ResStartVo() ; + rvo.start = enablemwTestStart ; + int token = Integer.parseInt(rqVo.token) ; + MwTestClientStatus sta = token2ClientMap.get("" + token); + if(sta == null){ + sta = new MwTestClientStatus() ; + sta.startVo = rvo ; + token2ClientMap.put("" + token, sta); + }else{ + sta.startVo = rvo ; + } + return rvo ; + } + + + private static void doDealReportCount(RmiRequestVo rqVo){ + int token = Integer.parseInt(rqVo.token) ; + MwTestClientStatus sta = token2ClientMap.get("" + token); + if(sta == null){ + sta = new MwTestClientStatus() ; + sta.count = rqVo.count ; + token2ClientMap.put("" + token, sta); + }else{ + sta.count = rqVo.count ; + } + } + + + private static void doDealReportOver(RmiRequestVo rqVo){ + int token = Integer.parseInt(rqVo.token) ; + MwTestClientStatus sta = token2ClientMap.get("" + token); + if(sta == null){ + sta = new MwTestClientStatus() ; + sta.overCount = rqVo.count ; + token2ClientMap.put("" + token, sta); + }else{ + sta.count = rqVo.count ; + } + } + + + private static void doDealAllOver(RmiRequestVo rqVo){ + int token = Integer.parseInt(rqVo.token) ; + MwTestClientStatus sta = token2ClientMap.get("" + token); + if(sta == null){ + sta = new MwTestClientStatus() ; + if(rqVo.over != null && rqVo.over){ + sta.over = true ; + sta.seconds = rqVo.seconds ; + } + token2ClientMap.put("" + token, sta); + }else{ + if(rqVo.over != null && rqVo.over){ + sta.over = true ; + sta.seconds = rqVo.seconds ; + } + } + } + + + +} diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/forRmi/MwConfigVo.java b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/forRmi/MwConfigVo.java new file mode 100644 index 0000000..1ee9d72 --- /dev/null +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/forRmi/MwConfigVo.java @@ -0,0 +1,103 @@ +package com.dy.testServer.forRmi; + +import com.alibaba.fastjson2.JSON; + +public class MwConfigVo { + //妯℃嫙瀹㈡埛鐨凴tuAddr璧峰鍙� + public Long rtuAddrStart = 0L ; + //妯℃嫙瀹㈡埛鐨凴tuAddr鎴鍙� + public Long rtuAddrEnd = 0L ; + //閫氫俊涓棿浠禝P + public String tcpServerIp = "" ; + //閫氫俊涓棿浠剁鍙� + public Integer tcpServerPort = 0 ; + //鍙戦�佹暟鎹暟鎹棿闅� + public Integer sendInterval = 2 ;//绉� + //姣忎竴杞鍙戦�佹暟鎹紝鍏朵腑鍖呮嫭蹇冭烦鍙戦�佹鏁� + public Integer heartbeatTimes = 3 ; + //鍙戦�佹暟鎹鏁� + public Integer sendTimes = 0 ; + /** + * 瀵硅薄杞垚json + * @return 杩斿洖 json + * @throws Exception 寮傚父 + */ + public String toJson()throws Exception{ + try{ + return JSON.toJSONString(this) ; + //return new JSONSerializer().exclude(new String[]{"class", "*.class"}).deepSerialize(this); + }catch(Exception e){ + throw new Exception(e.getMessage() , e ) ; + } + } + /** + * json杞垚瀵硅薄 + * @param json 鍙傛暟 + * @return 杩斿洖瀵硅薄 + * @throws Exception 寮傚父 + */ + public static MwConfigVo jsonToObject(String json)throws Exception{ + try{ + return JSON.parseObject(json, MwConfigVo.class) ; + //return new JSONDeserializer<ResConfigVo>().deserialize(json, ResConfigVo.class) ; + }catch(Exception e){ + throw new Exception(e.getMessage() , e ) ; + } + } + + public Long getRtuAddrStart() { + return rtuAddrStart; + } + + public void setRtuAddrStart(Long rtuAddrStart) { + this.rtuAddrStart = rtuAddrStart; + } + + public Long getRtuAddrEnd() { + return rtuAddrEnd; + } + + public void setRtuAddrEnd(Long rtuAddrEnd) { + this.rtuAddrEnd = rtuAddrEnd; + } + + public String getTcpServerIp() { + return tcpServerIp; + } + + public void setTcpServerIp(String tcpServerIp) { + this.tcpServerIp = tcpServerIp; + } + + public Integer getTcpServerPort() { + return tcpServerPort; + } + + public void setTcpServerPort(Integer tcpServerPort) { + this.tcpServerPort = tcpServerPort; + } + + public Integer getSendInterval() { + return sendInterval; + } + + public void setSendInterval(Integer sendInterval) { + this.sendInterval = sendInterval; + } + + public Integer getHeartbeatTimes() { + return heartbeatTimes; + } + + public void setHeartbeatTimes(Integer heartbeatTimes) { + this.heartbeatTimes = heartbeatTimes; + } + + public Integer getSendTimes() { + return sendTimes; + } + + public void setSendTimes(Integer sendTimes) { + this.sendTimes = sendTimes; + } +} diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/forRmi/MwTestClientStatus.java b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/forRmi/MwTestClientStatus.java new file mode 100644 index 0000000..71af287 --- /dev/null +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/forRmi/MwTestClientStatus.java @@ -0,0 +1,58 @@ +package com.dy.testServer.forRmi; + +public class MwTestClientStatus { + + public MwConfigVo confVo ; + + public ResStartVo startVo ; + + public Integer count ;//mwTest涓婃姤鏁版嵁鏁伴噺 + + public Integer overCount ;//mwTest瀹屾垚鍏ㄩ儴涓婃姤鏁版嵁RTU鏁伴噺 + + public Boolean over ;//mwTest涓婃姤鏁版嵁缁撴潫 + + public Long seconds ;//mwTest涓婃姤鏁版嵁鐢ㄦ椂(绉�) + + public MwConfigVo getConfVo() { + return confVo; + } + + public void setConfVo(MwConfigVo confVo) { + this.confVo = confVo; + } + + public ResStartVo getStartVo() { + return startVo; + } + + public void setStartVo(ResStartVo startVo) { + this.startVo = startVo; + } + + public Integer getCount() { + return count; + } + + public void setCount(Integer count) { + this.count = count; + } + + public Boolean getOver() { + return over; + } + + public void setOver(Boolean over) { + this.over = over; + } + + public Long getSeconds() { + return seconds; + } + + public void setSeconds(Long seconds) { + this.seconds = seconds; + } + + +} diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/resources/Config.xml b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/resources/Config.xml new file mode 100644 index 0000000..9145942 --- /dev/null +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/resources/Config.xml @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="UTF-8"?> +<config> + <server name="mwTest娴嬭瘯鎺у埗绔�" showStartInfo="true" company="http://www.dyjs.com"/> + <!-- + 鍩烘湰閰嶇疆 + rtuAddrStart: 妯℃嫙瀹㈡埛鐨凴tuAddr璧峰鍙� + rtuAddrEnd: 妯℃嫙瀹㈡埛鐨凴tuAddr鎴鍙� + rtuAddrsPerMwTest: 姣忎釜mwTest鍒嗛厤鐨凴tuAddr鏁� + tcpServerIp: 閫氫俊涓棿浠禝P + tcpServerPort: 閫氫俊涓棿浠剁鍙� + sendInterval锛氬彂閫佹暟鎹棿闅� 绉� + heartbeatTimes锛氭瘡涓�杞鍙戦�佹暟鎹紝鍏朵腑鍖呮嫭蹇冭烦鍙戦�佹鏁� + sendTimes锛氬彂閫佹暟鎹鏁� + --> + <base + rtuAddrStart="5323280000" + rtuAddrEnd="5323289999" + rtuAddrPerMwTest="1" + tcpServerIp="127.0.0.1" + tcpServerPort="60000" + sendInterval="2" + heartbeatTimes="3" + sendTimes="1" + /> + + <!-- + port锛歳mi鏈嶅姟绔彛鍙� + context锛歳mi鏈嶅姟涓婁笅鏂� + --> + <rmi enable="true" + port="12345" + context="mwTestSv" + /> + +</config> \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/resources/log4j2.xml b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/resources/log4j2.xml new file mode 100644 index 0000000..6dae26f --- /dev/null +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/resources/log4j2.xml @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Configuration status="OFF"> + <Appenders> + <Console name="Console" target="SYSTEM_OUT"> + <PatternLayout charset="GBK" pattern="%d %-5p [%t] (%F:%L) - %m%n%throwable"/> + </Console> + <!-- + fileName="${sys:user.home}/logs/aepTest.log" filePattern="${sys:user.home}/logs/aepTest-%d{yyyy-MM}-%i.log.gz" + fileName="/logs/testJgroups.log" filePattern="/logs/testJgroups-%d{yyyyMMdd}-%i.log.gz" + fileName="logs/testJgroups.log" filePattern="logs/testJgroups-%d{yyyyMMdd}-%i.log.gz" + sys:user.home褰撳墠鐢ㄦ埛鍦ㄦ搷浣滅郴缁熶腑鐨勬枃妗g洰褰� + /logs/testJgroups.log褰撳墠杞欢鎵�鍦ㄧ‖鐩樻牴鐩綍 + logs/testJgroups.log褰撳墠杞欢鎵�鍦ㄧ洰褰� + --> + <RollingFile name="File" fileName="logs/mwTestSv.log" filePattern="logs/aepTest-%d{yyyyMMdd}-%i.log"> + <PatternLayout charset="UTF-8" pattern="%d %-5p [%t] (%class.%method:%L) - %m%n%throwable"/> + <Policies> + <TimeBasedTriggeringPolicy interval="7" /> + <SizeBasedTriggeringPolicy size="10MB"/> + </Policies> + <DefaultRolloverStrategy max="50" /> + </RollingFile> + </Appenders> + <Loggers> + <!-- Root涓庡悇涓狶ogger鍚屾椂璧蜂綔鐢� --> + <Root level="info"> + <AppenderRef ref="Console"/> + <AppenderRef ref="File"/> + </Root> + </Loggers> +</Configuration> diff --git a/pipIrr-platform/pipIrr-mw/pom.xml b/pipIrr-platform/pipIrr-mw/pom.xml index 9ce1ec9..90a65d1 100644 --- a/pipIrr-platform/pipIrr-mw/pom.xml +++ b/pipIrr-platform/pipIrr-mw/pom.xml @@ -25,7 +25,11 @@ <groupId>com.dy</groupId> <artifactId>pipIrr-common</artifactId> <version>1.0.0</version> - <scope>provided</scope> + <!-- + scope涓嶈兘鐢╬rovided锛屽惁鍒橲erver.java鐨勮繍琛屼笉璧锋潵 + scope涓嶈兘鐢╮untime锛屽惁鍒欎笉鑳界紪杈� + --> + <scope>compile</scope> <optional>true</optional> <exclusions> <exclusion> @@ -39,7 +43,7 @@ <groupId>com.dy</groupId> <artifactId>pipIrr-global</artifactId> <version>1.0.0</version> - <scope>provided</scope> + <scope>compile</scope> <optional>true</optional> <exclusions> <exclusion> @@ -76,9 +80,8 @@ <artifactId>jackson-dataformat-yaml</artifactId> <exclusions> <exclusion> - <!-- 鎺掗櫎鎺変緷璧� --> - <groupId>com.fasterxml.jackson.core</groupId> - <artifactId>jackson-databind</artifactId> + <groupId>*</groupId> + <artifactId>*</artifactId> </exclusion> </exclusions> </dependency> diff --git a/pipIrr-platform/pipIrr-platform.iml b/pipIrr-platform/pipIrr-platform.iml deleted file mode 100644 index 567993a..0000000 --- a/pipIrr-platform/pipIrr-platform.iml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4"> - <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_16"> - <output url="file://$MODULE_DIR$/target/classes" /> - <output-test url="file://$MODULE_DIR$/target/test-classes" /> - <content url="file://$MODULE_DIR$"> - <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" /> - <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" /> - <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" /> - <excludeFolder url="file://$MODULE_DIR$/target" /> - </content> - <orderEntry type="jdk" jdkName="20" jdkType="JavaSDK" /> - <orderEntry type="sourceFolder" forTests="false" /> - </component> -</module> \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-web/.gitignore b/pipIrr-platform/pipIrr-web/.gitignore index aa4ab25..14569d5 100644 --- a/pipIrr-platform/pipIrr-web/.gitignore +++ b/pipIrr-platform/pipIrr-web/.gitignore @@ -1,2 +1,2 @@ target/ -/pipIrr-web.iml +pipIrr-web.iml diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sso/.gitignore b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/.gitignore index c8fb6c3..b2b42bd 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-sso/.gitignore +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/.gitignore @@ -1,6 +1,7 @@ HELP.md target/ /pipIrr-web-sso.iml +mvnw !.mvn/wrapper/maven-wrapper.jar !**/src/main/**/target/ !**/src/test/**/target/ diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web.iml b/pipIrr-platform/pipIrr-web/pipIrr-web.iml deleted file mode 100644 index 6807133..0000000 --- a/pipIrr-platform/pipIrr-web/pipIrr-web.iml +++ /dev/null @@ -1,154 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4"> - <component name="FacetManager"> - <facet type="web" name="Web"> - <configuration> - <webroots /> - <sourceRoots> - <root url="file://$MODULE_DIR$/src/main/java" /> - <root url="file://$MODULE_DIR$/src/main/resources" /> - </sourceRoots> - </configuration> - </facet> - <facet type="Spring" name="Spring"> - <configuration /> - </facet> - </component> - <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_16"> - <output url="file://$MODULE_DIR$/target/classes" /> - <output-test url="file://$MODULE_DIR$/target/test-classes" /> - <content url="file://$MODULE_DIR$"> - <excludeFolder url="file://$MODULE_DIR$/target" /> - </content> - <orderEntry type="jdk" jdkName="20" jdkType="JavaSDK" /> - <orderEntry type="sourceFolder" forTests="false" /> - <orderEntry type="module" module-name="pipIrr-common" /> - <orderEntry type="library" name="Maven: org.apache.mina:mina-core:2.2.2" level="project" /> - <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.9" level="project" /> - <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.16" level="project" /> - <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.15" level="project" /> - <orderEntry type="library" name="Maven: org.apache.poi:poi:3.14" level="project" /> - <orderEntry type="library" name="Maven: org.quartz-scheduler:quartz:2.3.2" level="project" /> - <orderEntry type="library" name="Maven: com.mchange:mchange-commons-java:0.2.15" level="project" /> - <orderEntry type="module" module-name="pipIrr-global" /> - <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:3.1.3" level="project" /> - <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:3.1.3" level="project" /> - <orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:2.1.1" level="project" /> - <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:3.1.3" level="project" /> - <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:10.1.12" level="project" /> - <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:10.1.12" level="project" /> - <orderEntry type="library" name="Maven: org.springframework:spring-web:6.0.11" level="project" /> - <orderEntry type="library" name="Maven: org.springframework:spring-beans:6.0.11" level="project" /> - <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:6.0.11" level="project" /> - <orderEntry type="library" name="Maven: org.springframework:spring-aop:6.0.11" level="project" /> - <orderEntry type="library" name="Maven: org.springframework:spring-context:6.0.11" level="project" /> - <orderEntry type="library" name="Maven: org.springframework:spring-expression:6.0.11" level="project" /> - <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-validation:3.1.3" level="project" /> - <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:10.1.12" level="project" /> - <orderEntry type="library" name="Maven: org.hibernate.validator:hibernate-validator:8.0.1.Final" level="project" /> - <orderEntry type="library" name="Maven: jakarta.validation:jakarta.validation-api:3.0.2" level="project" /> - <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.5.3.Final" level="project" /> - <orderEntry type="library" name="Maven: com.fasterxml:classmate:1.5.1" level="project" /> - <orderEntry type="library" scope="RUNTIME" name="Maven: org.springframework.boot:spring-boot-devtools:3.1.3" level="project" /> - <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:3.1.3" level="project" /> - <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:3.1.3" level="project" /> - <orderEntry type="library" name="Maven: org.projectlombok:lombok:1.18.28" level="project" /> - <orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.9.20" level="project" /> - <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-log4j2:3.1.3" level="project" /> - <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-slf4j2-impl:2.20.0" level="project" /> - <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.20.0" level="project" /> - <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-core:2.20.0" level="project" /> - <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-jul:2.20.0" level="project" /> - <orderEntry type="library" name="Maven: com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.15.2" level="project" /> - <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.15.2" level="project" /> - <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.15.2" level="project" /> - <orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.33" level="project" /> - <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.15.2" level="project" /> - <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-actuator:3.1.3" level="project" /> - <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-actuator-autoconfigure:3.1.3" level="project" /> - <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-actuator:3.1.3" level="project" /> - <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.15.2" level="project" /> - <orderEntry type="library" name="Maven: io.micrometer:micrometer-observation:1.11.2" level="project" /> - <orderEntry type="library" name="Maven: io.micrometer:micrometer-commons:1.11.2" level="project" /> - <orderEntry type="library" name="Maven: io.micrometer:micrometer-core:1.11.2" level="project" /> - <orderEntry type="library" scope="RUNTIME" name="Maven: org.hdrhistogram:HdrHistogram:2.1.12" level="project" /> - <orderEntry type="library" scope="RUNTIME" name="Maven: org.latencyutils:LatencyUtils:2.0.3" level="project" /> - <orderEntry type="library" name="Maven: org.springdoc:springdoc-openapi-starter-webmvc-ui:2.2.0" level="project" /> - <orderEntry type="library" name="Maven: org.webjars:swagger-ui:5.2.0" level="project" /> - <orderEntry type="library" name="Maven: org.springdoc:springdoc-openapi-starter-webmvc-api:2.2.0" level="project" /> - <orderEntry type="library" name="Maven: org.springdoc:springdoc-openapi-starter-common:2.2.0" level="project" /> - <orderEntry type="library" name="Maven: io.swagger.core.v3:swagger-core-jakarta:2.2.15" level="project" /> - <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.12.0" level="project" /> - <orderEntry type="library" name="Maven: io.swagger.core.v3:swagger-annotations-jakarta:2.2.15" level="project" /> - <orderEntry type="library" name="Maven: io.swagger.core.v3:swagger-models-jakarta:2.2.15" level="project" /> - <orderEntry type="library" name="Maven: org.springdoc:springdoc-openapi-security:1.7.0" level="project" /> - <orderEntry type="library" name="Maven: org.springdoc:springdoc-openapi-common:1.7.0" level="project" /> - <orderEntry type="library" name="Maven: io.swagger.core.v3:swagger-core:2.2.9" level="project" /> - <orderEntry type="library" name="Maven: io.swagger.core.v3:swagger-annotations:2.2.9" level="project" /> - <orderEntry type="library" name="Maven: io.swagger.core.v3:swagger-models:2.2.9" level="project" /> - <orderEntry type="library" name="Maven: org.springframework.security:spring-security-core:6.1.2" level="project" /> - <orderEntry type="library" name="Maven: org.springframework.security:spring-security-crypto:6.1.2" level="project" /> - <orderEntry type="library" name="Maven: com.mysql:mysql-connector-j:8.0.33" level="project" /> - <orderEntry type="library" name="Maven: com.alibaba:druid-spring-boot-starter:1.2.20" level="project" /> - <orderEntry type="library" name="Maven: com.alibaba:druid:1.2.20" level="project" /> - <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:2.0.7" level="project" /> - <orderEntry type="library" name="Maven: org.glassfish.jaxb:jaxb-runtime:4.0.3" level="project" /> - <orderEntry type="library" name="Maven: org.glassfish.jaxb:jaxb-core:4.0.3" level="project" /> - <orderEntry type="library" scope="RUNTIME" name="Maven: org.eclipse.angus:angus-activation:2.0.1" level="project" /> - <orderEntry type="library" name="Maven: org.glassfish.jaxb:txw2:4.0.3" level="project" /> - <orderEntry type="library" name="Maven: com.sun.istack:istack-commons-runtime:4.1.2" level="project" /> - <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-boot-starter:3.5.3.2" level="project" /> - <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus:3.5.3.2" level="project" /> - <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-extension:3.5.3.2" level="project" /> - <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-core:3.5.3.2" level="project" /> - <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-annotation:3.5.3.2" level="project" /> - <orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:4.6" level="project" /> - <orderEntry type="library" name="Maven: org.mybatis:mybatis:3.5.13" level="project" /> - <orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:2.1.1" level="project" /> - <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:3.1.3" level="project" /> - <orderEntry type="library" name="Maven: com.zaxxer:HikariCP:5.0.1" level="project" /> - <orderEntry type="library" name="Maven: org.springframework:spring-jdbc:6.0.11" level="project" /> - <orderEntry type="library" name="Maven: org.springframework:spring-tx:6.0.11" level="project" /> - <orderEntry type="library" name="Maven: cglib:cglib:3.3.0" level="project" /> - <orderEntry type="library" name="Maven: org.ow2.asm:asm:7.1" level="project" /> - <orderEntry type="library" name="Maven: com.alibaba.fastjson2:fastjson2:2.0.40" level="project" /> - <orderEntry type="library" name="Maven: com.alibaba.fastjson2:fastjson2-extension-spring6:2.0.40" level="project" /> - <orderEntry type="library" name="Maven: com.alibaba.fastjson2:fastjson2-extension:2.0.40" level="project" /> - <orderEntry type="library" name="Maven: org.mapstruct:mapstruct:1.5.5.Final" level="project" /> - <orderEntry type="library" name="Maven: org.mapstruct:mapstruct-processor:1.5.5.Final" level="project" /> - <orderEntry type="library" name="Maven: cn.hutool:hutool-all:5.8.21" level="project" /> - <orderEntry type="library" name="Maven: org.jdom:jdom2:2.0.6.1" level="project" /> - <orderEntry type="library" name="Maven: org.apache.dubbo:dubbo:3.2.7" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:3.1.3" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:3.1.3" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:3.1.3" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: com.jayway.jsonpath:json-path:2.8.0" level="project" /> - <orderEntry type="library" name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:4.0.0" level="project" /> - <orderEntry type="library" name="Maven: jakarta.activation:jakarta.activation-api:2.1.2" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: net.minidev:json-smart:2.4.11" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: net.minidev:accessors-smart:2.4.11" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: org.assertj:assertj-core:3.24.2" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy:1.14.6" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest:2.2" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter:5.9.3" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-api:5.9.3" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: org.opentest4j:opentest4j:1.2.0" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-commons:1.9.3" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: org.apiguardian:apiguardian-api:1.1.2" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-params:5.9.3" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-engine:5.9.3" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-engine:1.9.3" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:5.3.1" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy-agent:1.14.6" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: org.objenesis:objenesis:3.3" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-junit-jupiter:5.3.1" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: org.skyscreamer:jsonassert:1.5.1" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: com.vaadin.external.google:android-json:0.0.20131108.vaadin1" level="project" /> - <orderEntry type="library" name="Maven: org.springframework:spring-core:6.0.11" level="project" /> - <orderEntry type="library" name="Maven: org.springframework:spring-jcl:6.0.11" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:6.0.11" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: org.xmlunit:xmlunit-core:2.9.1" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.13.2" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:2.2" level="project" /> - </component> -</module> \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-web/pom.xml b/pipIrr-platform/pipIrr-web/pom.xml index 568c48c..fb95ba5 100644 --- a/pipIrr-platform/pipIrr-web/pom.xml +++ b/pipIrr-platform/pipIrr-web/pom.xml @@ -80,6 +80,12 @@ <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-yaml</artifactId> + <exclusions> + <exclusion> + <groupId>*</groupId> + <artifactId>*</artifactId> + </exclusion> + </exclusions> </dependency> <!-- 绯荤粺鐩戠 --> diff --git "a/pipIrr-platform/\346\226\207\346\241\243/\346\226\207\344\273\266\345\212\240\345\205\245\344\272\206 .gitignore\357\274\214\344\275\206\350\277\230\346\230\257\350\242\253 git \350\267\237\350\270\252.docx" "b/pipIrr-platform/\346\226\207\346\241\243/\346\226\207\344\273\266\345\212\240\345\205\245\344\272\206 .gitignore\357\274\214\344\275\206\350\277\230\346\230\257\350\242\253 git \350\267\237\350\270\252.docx" new file mode 100644 index 0000000..db32b6b --- /dev/null +++ "b/pipIrr-platform/\346\226\207\346\241\243/\346\226\207\344\273\266\345\212\240\345\205\245\344\272\206 .gitignore\357\274\214\344\275\206\350\277\230\346\230\257\350\242\253 git \350\267\237\350\270\252.docx" Binary files differ -- Gitblit v1.8.0