From fdadf11c9317e276be3bfdd6cff8ad5383ae25b6 Mon Sep 17 00:00:00 2001 From: cheney Date: Wed, 26 Oct 2022 17:44:10 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=9E=E6=8E=A5=E6=B1=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/sunyard/SydApi.java | 4 +- src/main/java/com/sunyard/inf/SydCertApi.java | 8 ---- .../sunyard/pool/ThreadBasedConnectPool.java | 8 ++-- .../sunyard/proxy/ProxyInvocationHandler.java | 9 ++++ .../java/racal/sunyard/main/SydApi4j.java | 12 +++++ src/test/java/sample/HSMPoolLongLink.java | 29 ++++++------ src/test/java/sample/HSMPoolShortLink.java | 46 +++++++++---------- 7 files changed, 64 insertions(+), 52 deletions(-) diff --git a/src/main/java/com/sunyard/SydApi.java b/src/main/java/com/sunyard/SydApi.java index 257a955..c3901c0 100644 --- a/src/main/java/com/sunyard/SydApi.java +++ b/src/main/java/com/sunyard/SydApi.java @@ -1,6 +1,6 @@ package com.sunyard; - +import com.sunyard.inf.cryption.*; import com.sunyard.inf.*; import com.sunyard.inf.customize.Syd4DigitalEnvelope; import com.sunyard.inf.customize.SydHAApi; @@ -13,7 +13,7 @@ import racal.sunyard.main.SydApiBuilder; * 程序调用接口 */ public interface SydApi extends - SydRawApi, SydCertApi, SydCryptionApi, SydGenApi, + SydRawApi, SydCertApi, SydGenApi, SydSYMApi, SydASYMApi, SydHashApi, SydSVApi, SydHAApi, SydQNUCApi, SydPledge, SydPINOpt, SydManufactureApi, SydZYOption, SydUnionPayApi ,Syd4DigitalEnvelope{ diff --git a/src/main/java/com/sunyard/inf/SydCertApi.java b/src/main/java/com/sunyard/inf/SydCertApi.java index 613d906..5aa14af 100644 --- a/src/main/java/com/sunyard/inf/SydCertApi.java +++ b/src/main/java/com/sunyard/inf/SydCertApi.java @@ -126,14 +126,6 @@ public interface SydCertApi { RetWrap importCert(byte[] certData, byte[] organizationId); - /** - * 从加密设备中删除指定 DN 的公钥证书 - * @param dn:传入的证书 - * - * @return - */ - boolean deleteCert(String dn); - /** * 从加密设备中删除指定 DN 的公钥证书 * @param dn:传入的证书 diff --git a/src/main/java/com/sunyard/pool/ThreadBasedConnectPool.java b/src/main/java/com/sunyard/pool/ThreadBasedConnectPool.java index 49ced4b..330c92f 100644 --- a/src/main/java/com/sunyard/pool/ThreadBasedConnectPool.java +++ b/src/main/java/com/sunyard/pool/ThreadBasedConnectPool.java @@ -10,7 +10,7 @@ import java.util.concurrent.TimeUnit; public class ThreadBasedConnectPool { // ThreadLocal - private final Map> map = new HashMap<>(); + private final Map> map = new HashMap>(); // 守护 private final ScheduledExecutorService threadPool = Executors.newScheduledThreadPool(1); @@ -18,7 +18,7 @@ public class ThreadBasedConnectPool { // 配置 private PoolConfig config; - public ThreadBasedConnectPool(PoolConfig config) { + public ThreadBasedConnectPool(final PoolConfig config) { this.config = config; threadPool.scheduleAtFixedRate(new Runnable() { @Override @@ -103,7 +103,7 @@ public class ThreadBasedConnectPool { // 设置 public void set(T o) { - map.put(Thread.currentThread(), new ObjectInPool<>(o)); + map.put(Thread.currentThread(), new ObjectInPool(o)); } // 清除 @@ -117,7 +117,7 @@ public class ThreadBasedConnectPool { private T setInitialValue() { T value = initialValue(); - ObjectInPool opi = new ObjectInPool<>(value); + ObjectInPool opi = new ObjectInPool(value); map.put(Thread.currentThread(), opi); afterInit( opi , value); return value; diff --git a/src/main/java/com/sunyard/proxy/ProxyInvocationHandler.java b/src/main/java/com/sunyard/proxy/ProxyInvocationHandler.java index 1810f04..9975d16 100644 --- a/src/main/java/com/sunyard/proxy/ProxyInvocationHandler.java +++ b/src/main/java/com/sunyard/proxy/ProxyInvocationHandler.java @@ -2,6 +2,8 @@ package com.sunyard.proxy; import com.sunyard.SydApi; import com.sunyard.SydApiException; +import com.sunyard.log.ILogFactory; +import com.sunyard.log.ILogger; import com.sunyard.pool.HsmLinkInfo; import racal.sunyard.main.SydApi4j; import racal.sunyard.main.SydApiMuti; @@ -144,6 +146,13 @@ public class ProxyInvocationHandler implements InvocationHandler { continue; } throw e; + } catch ( Exception e ) { + ILogFactory factory = SydApi4j.getLogFactory(); + if ( null != factory ) { + ILogger logger = factory.getLogger(ProxyInvocationHandler.class); + logger.error( "调用方法 {} 失败", method.getName() ); + } + throw e; } } } diff --git a/src/main/java/racal/sunyard/main/SydApi4j.java b/src/main/java/racal/sunyard/main/SydApi4j.java index a44779b..0c25180 100644 --- a/src/main/java/racal/sunyard/main/SydApi4j.java +++ b/src/main/java/racal/sunyard/main/SydApi4j.java @@ -69,6 +69,8 @@ public class SydApi4j implements SydApi { private int readTimeout; private int retryWhenNetError = 0; + private Object bindObject = null; + //初始化变量 static { @@ -10473,6 +10475,16 @@ public class SydApi4j implements SydApi { return bytes; } + @Override + public Object getBindObject() { + return bindObject; + } + + @Override + public void setBindObject(Object bindObject) { + this.bindObject = bindObject; + } + @Override public String SYMEncrytByKeyIndex(String index, String intPutData) { diff --git a/src/test/java/sample/HSMPoolLongLink.java b/src/test/java/sample/HSMPoolLongLink.java index dac017e..1292f3b 100644 --- a/src/test/java/sample/HSMPoolLongLink.java +++ b/src/test/java/sample/HSMPoolLongLink.java @@ -2,11 +2,8 @@ package sample; import com.sunyard.SydApi; import com.sunyard.proto.Util; -import org.junit.Assert; import racal.sunyard.main.SydApiPoolBuilder; -import java.nio.charset.StandardCharsets; - /** * 集群模式 - 长连接 @@ -19,33 +16,35 @@ public class HSMPoolLongLink { System.setProperty("com.sunyard.sydapi4j.debug", "true"); // 建立链接 - String[] pcipList = {"172.16.18.59","192.168.0.200"}; - int[] iportList = {8889,8889}; + final String[] pcipList = {"172.16.18.59", "192.168.0.200"}; + final int[] iportList = {8889, 8889}; - for (int i = 0; i < 1000; i++) { - int tmp = i; - new Thread(() -> { + for (int i = 0; i < 10; i++) { + int tmp = i; + new Thread(new Runnable() { + @Override + public void run() { SydApiPoolBuilder builder = new SydApiPoolBuilder(pcipList, iportList, 10, 1000); SydApi api = builder.build(); try { for (int j = 0; j < 20; j++) { - byte[] data = api.SM3Hash("test".getBytes(StandardCharsets.UTF_8)); + byte[] data = api.SM3Hash("test".getBytes()); System.out.println("hex=" + Util.bytes2HexString(data)); // boolean sign = api.deleteCert("C=CN,O=CFCA OCA1,OU=YCCA,OU=Individual-2,CN=YCCA@黄金交易所@Zhuangj@1"); // System.out.println(sign); } - } catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); - } - finally { + } finally { if (null != api) { api.disconnect(); } } - }, i + "t").start(); - } - System.out.println(1); + } + }, i + "t").start(); } + System.out.println(1); + } } diff --git a/src/test/java/sample/HSMPoolShortLink.java b/src/test/java/sample/HSMPoolShortLink.java index 4768248..81a6681 100644 --- a/src/test/java/sample/HSMPoolShortLink.java +++ b/src/test/java/sample/HSMPoolShortLink.java @@ -1,12 +1,9 @@ package sample; import com.sunyard.SydApi; -import com.sunyard.cert.X509; import com.sunyard.proto.Util; import racal.sunyard.main.SydApiClusterBuilder; -import java.nio.charset.StandardCharsets; - /** * 集群模式 - 短连接 @@ -19,34 +16,37 @@ public class HSMPoolShortLink { System.setProperty("com.sunyard.sydapi4j.debug", "true"); // 建立链接 - String[] pcipList = {"172.16.18.59", "192.168.0.200"}; - int[] iportList = {8889, 8889}; + final String[] pcipList = {"172.16.18.59", "192.168.0.200"}; + final int[] iportList = {8889, 8889}; - for (int i = 0; i < 1000; i++) { + for (int i = 0; i < 10; i++) { int tmp = i; - new Thread(() -> { - SydApi api = SydApiClusterBuilder.SYD_Short_Connect_Ex( - pcipList, - iportList, - 10, - 1000); - try { - for (int j = 0; j < 20; j++) { - byte[] data = api.SM3Hash("test".getBytes(StandardCharsets.UTF_8)); - System.out.println("hex=" + Util.bytes2HexString(data)); + new Thread(new Runnable() { + @Override + public void run() { + SydApi api = SydApiClusterBuilder.SYD_Short_Connect_Ex( + pcipList, + iportList, + 10, + 1000); + try { + for (int j = 0; j < 20; j++) { + byte[] data = api.SM3Hash("test".getBytes()); + System.out.println("hex=" + Util.bytes2HexString(data)); // boolean sign = api.deleteCert("C=CN,O=CFCA OCA1,OU=YCCA,OU=Individual-2,CN=YCCA@黄金交易所@Zhuangj@1"); // System.out.println(sign); - } + } - } catch (Exception e) { - e.printStackTrace(); - } finally { - if (null != api) { - api.disconnect(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (null != api) { + api.disconnect(); + } } } - }, i + "t").start(); + }).start(); } } }