diff --git a/pom.xml b/pom.xml
index 0d56ae1..d39e475 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
com.sunyard.sge.database
sydapi-database
- 1.19
+ 1.20
sydapi-database
@@ -29,25 +29,35 @@
groovy
2.4.15
-
- com.sunyard
- proto
- 1.0-20220905
-
com.sunyard
sydapi4j
1.15.20250711
+
+
+
+ org.apache.logging.log4j
+ log4j-api
+
+
+
+ org.apache.logging.log4j
+ log4j-core
+
+
+
- org.apache.logging.log4j
- log4j-api
- ${log.version}
+ org.codehaus.groovy
+ groovy
+ 2.4.15
+
- org.apache.logging.log4j
- log4j-core
- ${log.version}
+ ch.qos.logback
+ logback-classic
+ 1.2.11
+ provided
diff --git a/src/main/java/com/sunyard/sge/database/SydApi.java b/src/main/java/com/sunyard/sge/database/SydApi.java
index 3f780c4..a9e5146 100644
--- a/src/main/java/com/sunyard/sge/database/SydApi.java
+++ b/src/main/java/com/sunyard/sge/database/SydApi.java
@@ -1,9 +1,6 @@
package com.sunyard.sge.database;
-import com.sunyard.sge.log.LogFactory;
import com.sunyard.sge.plus.SydLibrary;
-import org.apache.logging.log4j.Logger;
-import racal.sunyard.main.SydApi4j;
import java.util.List;
@@ -29,8 +26,7 @@ public interface SydApi {
if (pcLogPath == null || iLogLevel < 0 || iLogLevel > 3) {
throw new IllegalArgumentException("地址不能为空且等级范围为0到3");
}
- Logger logger = LogFactory.createLogger(pcLogPath, iLogLevel);
- SydApi4j.setLogger(logger);
+ // logback 版本的日志直接由外部配置文件控制
// 初始化 C 部分日志
SydLibrary.INSTANCE.SYD_SetLogConfig(pcLogPath, pcLogPath.getBytes().length, iLogLevel);
@@ -278,10 +274,10 @@ public interface SydApi {
*
* @param iEncKeyIndex:输入。加密所需要的密钥索引值
* @param iMacKeyIndex:输入。计算mac所需要的密钥索引值
- * @param pcData: 输入。计算mac所需要的数据。
+ * @param pcData: 输入。计算mac所需要的数据。
* @return DataAndMac
- * - data 密文
- * - mac值 (固定长度16字节)转HEX 字符串格式
+ * - data 密文
+ * - mac值 (固定长度16字节)转HEX 字符串格式
*/
DataAndMac SYD_SM4_EncryptAndMac_ShortData(
int iEncKeyIndex,
@@ -291,10 +287,11 @@ public interface SydApi {
/**
* 短数据校验 MAC 并解密
+ *
* @param iEncKeyIndex:输入。加密所需要的密钥索引值
* @param iMacKeyIndex:输入。计算mac所需要的密钥索引值
- * @param pcData 输入。密文。
- * @param mac 输入。密文的 MAC。
+ * @param pcData 输入。密文。
+ * @param mac 输入。密文的 MAC。
* @return 明文
*/
DataAndMacCheck SYD_SM4_CheckMacAndDecrypt_ShortData(
@@ -310,6 +307,7 @@ public interface SydApi {
int[] iMacKeyIndex,
List pcData
);
+
List SYD_SM4_CheckMacAndDecrypt_BatchData(
int[] iEncKeyIndex,
int[] iMacKeyIndex,
diff --git a/src/main/java/com/sunyard/sge/database/SydApi4Database.java b/src/main/java/com/sunyard/sge/database/SydApi4Database.java
index 344c98e..1c0f4de 100644
--- a/src/main/java/com/sunyard/sge/database/SydApi4Database.java
+++ b/src/main/java/com/sunyard/sge/database/SydApi4Database.java
@@ -1,6 +1,9 @@
package com.sunyard.sge.database;
+import com.sunyard.log.ILogFactory;
+import com.sunyard.log.ILogger;
import com.sunyard.sge.database.pool.HsmLinkInfo;
+import com.sunyard.sge.log.LogbackFactory;
import racal.sunyard.main.SydApi4j;
import java.util.ArrayList;
diff --git a/src/main/java/com/sunyard/sge/database/SydApiBaseFunction.java b/src/main/java/com/sunyard/sge/database/SydApiBaseFunction.java
index 03f09dc..563bddf 100644
--- a/src/main/java/com/sunyard/sge/database/SydApiBaseFunction.java
+++ b/src/main/java/com/sunyard/sge/database/SydApiBaseFunction.java
@@ -1,12 +1,13 @@
package com.sunyard.sge.database;
import com.sunyard.SydApiException;
+import com.sunyard.log.ILogFactory;
+import com.sunyard.log.ILogger;
import com.sunyard.proto.Util;
import com.sunyard.sge.database.pool.HsmLinkInfo;
-import com.sunyard.sge.log.LogFactory;
+import com.sunyard.sge.log.LogbackFactory;
import com.sunyard.sge.pool.ObjectInPool;
import com.sunyard.util.SYMUtil;
-import org.apache.logging.log4j.Logger;
import racal.sunyard.main.SydApi4j;
import java.util.ArrayList;
@@ -20,8 +21,10 @@ public class SydApiBaseFunction implements SydApi {
private SydApi4j[] hsms = null;
private HsmLinkInfo[] linkInfos = null;
private ObjectInPool oip = null;
- Logger log = LogFactory.getLogger();
private boolean isShortLinkMode = false;
+ private ILogFactory iLogFactory = new LogbackFactory();
+ private ILogger log = iLogFactory.getLogger(SydApiBaseFunction.class);
+
public SydApiBaseFunction() {
isShortLinkMode = true;
@@ -52,8 +55,8 @@ public class SydApiBaseFunction implements SydApi {
@Override
public SydApi SYD_Short_Connect_Ex(String[] pcIpList, int[] iPortList, int iConnectTimeOut, int allDealTimeOut) {
- Logger log = LogFactory.getLogger();
- if (LogFactory.iLogLevel == 3) {
+
+ if (log.isDebugEnabled()) {
log.debug("SYD_Connect_Ex方法接收参数:pcIpList:{},iPortList:{},iConnectTimeOut:{},iDealTimeOut:{}", Arrays.toString(pcIpList), Arrays.toString(iPortList), iConnectTimeOut, allDealTimeOut);
}
@@ -118,7 +121,7 @@ public class SydApiBaseFunction implements SydApi {
@Override
public byte[] SYD_SM3_Hash_ShortData(byte[] pcData) {
- if (LogFactory.iLogLevel == 3) {
+ if (log.isDebugEnabled()) {
log.debug("SYD_SM3_Hash_ShortData方法接收参数:pcData:{}", Arrays.toString(pcData));
}
if (null == this.hsms || this.hsms.length < 1) {
@@ -179,8 +182,8 @@ public class SydApiBaseFunction implements SydApi {
@Override
public LongDataReturn SYD_SM3_Hash_LongData(byte[] pcData, int iPkgNum, byte[] pcProcData) {
- Logger log = LogFactory.getLogger();
- if (LogFactory.iLogLevel == 3) {
+
+ if (log.isDebugEnabled()) {
log.debug("SYD_SM3_Hash_LongData 方法接收参数:pcData:{},iPkgNum:{},pcProcData:{}", Arrays.toString(pcData), iPkgNum, pcProcData);
}
@@ -246,11 +249,11 @@ public class SydApiBaseFunction implements SydApi {
@Override
public byte[] SYD_SM4_ShortData(int iKeyIndex, byte[] pcData, int iFlag) {
- Logger log = LogFactory.getLogger();
+
if (iKeyIndex < 0) {
throw new SydApiException(0x01000001);
}
- if (LogFactory.iLogLevel == 3) {
+ if ( log.isDebugEnabled() ) {
log.debug("SYD_SM4_ShortData方法接收参数:iKeyIndex:{},pcData:{},iFlag:{}", iKeyIndex, Arrays.toString(pcData), iFlag);
}
if (iFlag == Consts.ECB_DEC && null == pcData) {
@@ -333,8 +336,8 @@ public class SydApiBaseFunction implements SydApi {
@Override
public List SYD_SM4_BatchData(int[] iKeyIndex, List pcData, int iFlag) {
- Logger log = LogFactory.getLogger();
- if (LogFactory.iLogLevel == 3) {
+
+ if (log.isDebugEnabled()) {
log.debug("SYD_SM4_BatchData方法接收参数:iKeyIndex:{},pcData元素个数为:{},iFlag:{}", iKeyIndex, pcData.size(), iFlag);
}
@@ -422,8 +425,8 @@ public class SydApiBaseFunction implements SydApi {
@Override
public byte[] SYD_SM4_LongData(int iKeyIndex, byte[] pcData, int iPkgNum, int iFlag) {
- Logger log = LogFactory.getLogger();
- if (LogFactory.iLogLevel == 3) {
+
+ if (log.isDebugEnabled()) {
log.debug("SYD_SM4_LongData方法接收参数:iKeyIndex:{},pcData:{},iPkgNum:{},iFlag:{}", iKeyIndex, Arrays.toString(pcData), iPkgNum, iFlag);
}
@@ -512,8 +515,8 @@ public class SydApiBaseFunction implements SydApi {
@Override
public List SYD_SM4Mac_BatchData(int[] iKeyIndex, List pcData) {
- Logger log = LogFactory.getLogger();
- if (LogFactory.iLogLevel == 3) {
+
+ if (log.isDebugEnabled()) {
log.debug("SYD_SM4Mac_BatchData:iKeyIndex:{},pcData元素个数为:{}", iKeyIndex, pcData.size());
}
@@ -590,8 +593,8 @@ public class SydApiBaseFunction implements SydApi {
@Override
public boolean[] SYD_SM4Mac_BatchData(int[] iKeyIndex, List pcData, List pcMac) {
- Logger log = LogFactory.getLogger();
- if (LogFactory.iLogLevel == 3) {
+
+ if (log.isDebugEnabled()) {
log.debug("SYD_SM4Mac_BatchData 方法接收参数:iKeyIndex:{}, pcData元素个数为:{},pcMac:{}", iKeyIndex, pcData.size(), pcMac.size());
}
@@ -666,8 +669,8 @@ public class SydApiBaseFunction implements SydApi {
@Override
public LongDataReturn SYD_SM4Mac_LongData(int iKeyIndex, byte[] pcData, int iPkgNum, byte[] pcProcData) {
- Logger log = LogFactory.getLogger();
- if (LogFactory.iLogLevel == 3) {
+
+ if (log.isDebugEnabled()) {
log.debug("SYD_SM4Mac_LongData方法接收参数:iKeyIndex:{},pcData:{},iPkgNum:{},pcProcData:{}", iKeyIndex, Arrays.toString(pcData), iPkgNum, pcProcData);
}
if (null == this.hsms || this.hsms.length < 1) {
@@ -756,8 +759,8 @@ public class SydApiBaseFunction implements SydApi {
@Override
public LongDataReturn SYD_SM4Mac_LongData(int iKeyIndex, byte[] pcData, int iPkgNum, byte[] pcProcData, byte[] pcMac) {
- Logger log = LogFactory.getLogger();
- if (LogFactory.iLogLevel == 3) {
+
+ if (log.isDebugEnabled()) {
log.debug("SYD_SM4Mac_LongData方法接收参数:iKeyIndex:{}, iPkgNum:{},pcProcData:{}", iKeyIndex, iPkgNum, pcProcData);
}
updateLastUseTime();
@@ -778,8 +781,8 @@ public class SydApiBaseFunction implements SydApi {
}
public byte[] SYD_SM4Mac_ShortData(int iKeyIndex, byte[] pcData, int limitDataLen) {
- Logger log = LogFactory.getLogger();
- if (LogFactory.iLogLevel == 3) {
+
+ if (log.isDebugEnabled()) {
log.debug("SYD_SM4Mac_ShortData方法接收参数:iKeyIndex:{},pcData:{},iFlag:{}", iKeyIndex, Arrays.toString(pcData));
}
@@ -844,8 +847,8 @@ public class SydApiBaseFunction implements SydApi {
public boolean SYD_SM4Mac_ShortData(int iKeyIndex, byte[] pcData, int limitDataLen, byte[] pcMac) {
- Logger log = LogFactory.getLogger();
- if (LogFactory.iLogLevel == 3) {
+
+ if (log.isDebugEnabled()) {
log.debug("SYD_SM4Mac_ShortData 方法接收参数:{}", iKeyIndex, Util.bytes2HexString(pcData), Util.bytes2HexString(pcMac));
}
@@ -877,8 +880,8 @@ public class SydApiBaseFunction implements SydApi {
*/
@Override
public DataAndMac SYD_SM4_EncryptAndMac_ShortData(int iEncKeyIndex, int iMacKeyIndex, byte[] pcData) {
- Logger log = LogFactory.getLogger();
- if (LogFactory.iLogLevel == 3) {
+
+ if (log.isDebugEnabled()) {
log.debug("SYD_SM4_EncryptAndMac_ShortData:k1={} k2={}", iEncKeyIndex, iMacKeyIndex);
}
// 参数检查在函数内部
@@ -891,8 +894,8 @@ public class SydApiBaseFunction implements SydApi {
@Override
public DataAndMacCheck SYD_SM4_CheckMacAndDecrypt_ShortData(int iEncKeyIndex, int iMacKeyIndex, byte[] pcData, byte[] mac) {
- Logger log = LogFactory.getLogger();
- if (LogFactory.iLogLevel == 3) {
+
+ if (log.isDebugEnabled()) {
log.debug("SYD_SM4_CheckMacAndDecrypt_ShortData:k1={} k2={}", iEncKeyIndex, iMacKeyIndex);
}
@@ -909,7 +912,7 @@ public class SydApiBaseFunction implements SydApi {
@Override
public List SYD_SM4_EncryptAndMac_BatchData(int[] iEncKeyIndex, int[] iMacKeyIndex, List pcData) {
- if (LogFactory.iLogLevel == 3) {
+ if (log.isDebugEnabled()) {
log.debug("SYD_SM4_EncryptAndMac_BatchData");
}
@@ -940,7 +943,7 @@ public class SydApiBaseFunction implements SydApi {
@Override
public List SYD_SM4_CheckMacAndDecrypt_BatchData(int[] iEncKeyIndex, int[] iMacKeyIndex, List pcData) {
- if (LogFactory.iLogLevel == 3) {
+ if (log.isDebugEnabled()) {
log.debug("SYD_SM4_CheckMacAndDecrypt_BatchData");
}
diff --git a/src/main/java/com/sunyard/sge/database/SydApiBuilder.java b/src/main/java/com/sunyard/sge/database/SydApiBuilder.java
index ab0e2b0..e11a966 100644
--- a/src/main/java/com/sunyard/sge/database/SydApiBuilder.java
+++ b/src/main/java/com/sunyard/sge/database/SydApiBuilder.java
@@ -3,12 +3,11 @@ package com.sunyard.sge.database;
import com.sunyard.SydApiException;
import com.sunyard.sge.database.pool.HsmLinkInfo;
import com.sunyard.sge.database.pool.SydApiPool;
-import com.sunyard.sge.log.LogFactory;
import com.sunyard.sge.plus.ConnectHandlerManager;
-import com.sunyard.sge.plus.SydLibrary;
import com.sunyard.sge.pool.CommWorker;
import com.sunyard.sge.pool.PoolConfig;
-import org.apache.logging.log4j.Logger;
+import com.sunyard.sge.pool.ThreadBasedConnectPool;
+import org.slf4j.LoggerFactory;
import java.util.Arrays;
@@ -22,9 +21,10 @@ public class SydApiBuilder {
int[] iPortList,
int iConnectTimeOut,
int iDealTimeOut
- ) {
- this( pcIpList, iPortList, iConnectTimeOut, iDealTimeOut, new PoolConfig() );
+ ) {
+ this(pcIpList, iPortList, iConnectTimeOut, iDealTimeOut, new PoolConfig());
}
+
public SydApiBuilder(
String[] pcIpList,
int[] iPortList,
@@ -32,18 +32,18 @@ public class SydApiBuilder {
int iDealTimeOut,
PoolConfig config
) {
- Logger log = LogFactory.getLogger();
+ org.slf4j.Logger log = LoggerFactory.getLogger(ThreadBasedConnectPool.class);
- if ( log.isDebugEnabled() ) {
+ if (log.isDebugEnabled()) {
log.debug("创建链接");
- log.debug("SydApiBuilder构造方法接收参数:pcIpList:{},iPortList:{},iConnectTimeOut:{},iDealTimeOut:{}", Arrays.toString(pcIpList),Arrays.toString(iPortList),iConnectTimeOut,iDealTimeOut);
+ log.debug("SydApiBuilder构造方法接收参数:pcIpList:{},iPortList:{},iConnectTimeOut:{},iDealTimeOut:{}", Arrays.toString(pcIpList), Arrays.toString(iPortList), iConnectTimeOut, iDealTimeOut);
log.debug("pool config {}", config);
}
// 同时初始化 jna 下 c 的链接
int ret = ConnectHandlerManager.init(pcIpList, iPortList, iConnectTimeOut, iDealTimeOut);
- if ( 0 != ret ) {
+ if (0 != ret) {
throw new SydApiException(-1);
}
@@ -51,7 +51,7 @@ public class SydApiBuilder {
HsmLinkInfo[] linkInfo = HsmLinkInfo.mutiHsmLinkInfo(pcIpList, iPortList, iConnectTimeOut, iDealTimeOut);
this.pool = new SydApiPool(config, linkInfo);
longLinkWorks = new CommWorker();
- warmUp( pcIpList, iPortList, iConnectTimeOut, iDealTimeOut );
+ warmUp(pcIpList, iPortList, iConnectTimeOut, iDealTimeOut);
}
public CommWorker getLongLinkWorks() {
@@ -60,52 +60,54 @@ public class SydApiBuilder {
/**
* 获取池内对象
+ *
* @return 池内对象
*/
- public SydApi get(){
+ public SydApi get() {
return pool.get();
}
/**
* 升级
* 修改了原实现
+ *
* @return 包装对象
*/
public SydApi build() {
- return new SydApiLongLinkWrap( this );
+ return new SydApiLongLinkWrap(this);
}
private void warmUp(String[] pcIpList,
int[] iPortList,
int iConnectTimeOut,
- int iDealTimeOut){
+ int iDealTimeOut) {
SydApi api = null;
try {
api = new SydApi4Database();
- api.SYD_Short_Connect_Ex( pcIpList, iPortList, iConnectTimeOut, iDealTimeOut );
+ api.SYD_Short_Connect_Ex(pcIpList, iPortList, iConnectTimeOut, iDealTimeOut);
try {
- api.SYD_SM3_Hash_ShortData( new byte[8] );
+ api.SYD_SM3_Hash_ShortData(new byte[8]);
- }catch ( Exception e) {
+ } catch (Exception e) {
// 忽略
}
try {
- api.SYD_SM4_ShortData( 0 , new byte[16], Consts.ECB_ENC );
+ api.SYD_SM4_ShortData(0, new byte[16], Consts.ECB_ENC);
- }catch ( Exception e) {
+ } catch (Exception e) {
// 忽略
}
- } catch ( Exception e ){
+ } catch (Exception e) {
// 忽略预热失败
} finally {
- if ( null != api ) {
+ if (null != api) {
api.SYD_Disconnect_Ex();
}
}
diff --git a/src/main/java/com/sunyard/sge/database/SydApiLongLinkWrap.java b/src/main/java/com/sunyard/sge/database/SydApiLongLinkWrap.java
index 8a8794b..d359c4b 100644
--- a/src/main/java/com/sunyard/sge/database/SydApiLongLinkWrap.java
+++ b/src/main/java/com/sunyard/sge/database/SydApiLongLinkWrap.java
@@ -6,10 +6,10 @@ import com.sun.jna.ptr.IntByReference;
import com.sunyard.SydApiException;
import com.sunyard.proto.Util;
import com.sunyard.sge.bytes.BytesUtil;
-import com.sunyard.sge.log.LogFactory;
import com.sunyard.sge.plus.ConnectHandlerManager;
import com.sunyard.sge.plus.SydLibrary;
-import org.apache.logging.log4j.Logger;
+import com.sunyard.sge.pool.ThreadBasedConnectPool;
+import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.List;
@@ -26,7 +26,7 @@ import static com.sunyard.sge.database.SydApiConfig.BATCH_SIZE;
*/
public class SydApiLongLinkWrap implements SydApi {
- private Logger log = LogFactory.getLogger();
+ org.slf4j.Logger log = LoggerFactory.getLogger(ThreadBasedConnectPool.class);
private SydApiBuilder builder;
@@ -55,7 +55,7 @@ public class SydApiLongLinkWrap implements SydApi {
try {
return task.get();
} catch (Exception e) {
- if ( e.getCause() instanceof SydApiException) {
+ if (e.getCause() instanceof SydApiException) {
throw (SydApiException) e.getCause();
}
throw new SydApiException("并行任务执行失败", 0xC101, e);
@@ -73,7 +73,7 @@ public class SydApiLongLinkWrap implements SydApi {
try {
return task.get();
} catch (Exception e) {
- if ( e.getCause() instanceof SydApiException) {
+ if (e.getCause() instanceof SydApiException) {
throw (SydApiException) e.getCause();
}
throw new SydApiException("并行任务执行失败", 0xC101, e);
@@ -91,7 +91,7 @@ public class SydApiLongLinkWrap implements SydApi {
try {
return task.get();
} catch (Exception e) {
- if ( e.getCause() instanceof SydApiException) {
+ if (e.getCause() instanceof SydApiException) {
throw (SydApiException) e.getCause();
}
throw new SydApiException("并行任务执行失败", 0xC101, e);
@@ -109,7 +109,7 @@ public class SydApiLongLinkWrap implements SydApi {
try {
return task.get();
} catch (Exception e) {
- if ( e.getCause() instanceof SydApiException) {
+ if (e.getCause() instanceof SydApiException) {
throw (SydApiException) e.getCause();
}
throw new SydApiException("并行任务执行失败", 0xC101, e);
@@ -128,7 +128,7 @@ public class SydApiLongLinkWrap implements SydApi {
try {
return task.get();
} catch (Exception e) {
- if ( e.getCause() instanceof SydApiException) {
+ if (e.getCause() instanceof SydApiException) {
throw (SydApiException) e.getCause();
}
throw new SydApiException("并行任务执行失败", 0xC101, e);
@@ -146,7 +146,7 @@ public class SydApiLongLinkWrap implements SydApi {
try {
return task.get();
} catch (Exception e) {
- if ( e.getCause() instanceof SydApiException) {
+ if (e.getCause() instanceof SydApiException) {
throw (SydApiException) e.getCause();
}
throw new SydApiException("并行任务执行失败", 0xC101, e);
@@ -164,7 +164,7 @@ public class SydApiLongLinkWrap implements SydApi {
try {
return task.get();
} catch (Exception e) {
- if ( e.getCause() instanceof SydApiException) {
+ if (e.getCause() instanceof SydApiException) {
throw (SydApiException) e.getCause();
}
throw new SydApiException("并行任务执行失败", 0xC101, e);
@@ -182,14 +182,14 @@ public class SydApiLongLinkWrap implements SydApi {
try {
return task.get();
} catch (Exception e) {
- if ( e.getCause() instanceof SydApiException) {
+ if (e.getCause() instanceof SydApiException) {
throw (SydApiException) e.getCause();
}
throw new SydApiException("并行任务执行失败", 0xC101, e);
}
}
- private DataAndMac SYD_SM4_AllInOne(int iEncKeyIndex, int iMacKeyIndex, byte[] pcData){
+ private DataAndMac SYD_SM4_AllInOne(int iEncKeyIndex, int iMacKeyIndex, byte[] pcData) {
try {
FutureTask taskEnc = builder.getLongLinkWorks().fTask(new Callable() {
@Override
@@ -209,12 +209,10 @@ public class SydApiLongLinkWrap implements SydApi {
byte[] mac = taskMac.get();
return new DataAndMac(enData, mac);
- }
- catch (SydApiException e) {
+ } catch (SydApiException e) {
throw e;
- }
- catch (Exception e) {
- if ( e.getCause() instanceof SydApiException) {
+ } catch (Exception e) {
+ if (e.getCause() instanceof SydApiException) {
throw (SydApiException) e.getCause();
}
throw new SydApiException("并行任务执行失败", 0xC101, e);
@@ -225,7 +223,7 @@ public class SydApiLongLinkWrap implements SydApi {
public DataAndMac SYD_SM4_EncryptAndMac_ShortData(int iEncKeyIndex, int iMacKeyIndex, byte[] pcData) {
log.info("SYD_SM4_EncryptAndMac_ShortData {} {}", iEncKeyIndex, iMacKeyIndex);
try {
- if ( ! ConnectHandlerManager.isInited() ) {
+ if (!ConnectHandlerManager.isInited()) {
throw new SydApiException(-1);
}
@@ -245,9 +243,9 @@ public class SydApiLongLinkWrap implements SydApi {
mac
);
- if ( 0 == i ){
+ if (0 == i) {
byte[] data = new byte[encDataLen.getValue()];
- if( data.length == encData.length ) {
+ if (data.length == encData.length) {
data = encData;
} else {
System.arraycopy(encData, 0, data, 0, data.length);
@@ -318,12 +316,10 @@ public class SydApiLongLinkWrap implements SydApi {
//
//
// return new DataAndMac(enData, mac.getData());
- }
- catch (SydApiException e) {
+ } catch (SydApiException e) {
throw e;
- }
- catch (Exception e) {
- if ( e.getCause() instanceof SydApiException) {
+ } catch (Exception e) {
+ if (e.getCause() instanceof SydApiException) {
throw (SydApiException) e.getCause();
}
throw new SydApiException("并行任务执行失败", 0xC101, e);
@@ -334,7 +330,7 @@ public class SydApiLongLinkWrap implements SydApi {
public DataAndMacCheck SYD_SM4_CheckMacAndDecrypt_ShortData(int iEncKeyIndex, int iMacKeyIndex, byte[] pcData, byte[] macs) {
log.info("SYD_SM4_CheckMacAndDecrypt_ShortData {} {}", iEncKeyIndex, iMacKeyIndex);
try {
- if ( ! ConnectHandlerManager.isInited() ) {
+ if (!ConnectHandlerManager.isInited()) {
throw new SydApiException(-1);
}
@@ -357,19 +353,18 @@ public class SydApiLongLinkWrap implements SydApi {
System.arraycopy(decryptedData, 0, data, 0, data.length);
System.out.println("outlen=" + data.length);
- if ( 0 == i ){
+ if (0 == i) {
return new DataAndMacCheck(data, true);
- } if (0x01000010 == i) {
+ }
+ if (0x01000010 == i) {
return new DataAndMacCheck(data, false);
} else {
throw new SydApiException(i);
}
- }
- catch (SydApiException e) {
+ } catch (SydApiException e) {
throw e;
- }
- catch (Exception e) {
- if ( e.getCause() instanceof SydApiException) {
+ } catch (Exception e) {
+ if (e.getCause() instanceof SydApiException) {
throw (SydApiException) e.getCause();
}
throw new SydApiException("并行任务执行失败", 0xC101, e);
@@ -393,7 +388,7 @@ public class SydApiLongLinkWrap implements SydApi {
public List SYD_SM4_EncryptAndMac_BatchData(int[] iEncKeyIndex, int[] iMacKeyIndex, List pcData) {
log.info("SYD_SM4_EncryptAndMac_BatchData {} {}", iEncKeyIndex, iMacKeyIndex);
- if ( ! ConnectHandlerManager.isInited() ) {
+ if (!ConnectHandlerManager.isInited()) {
throw new SydApiException(-1);
}
@@ -420,7 +415,7 @@ public class SydApiLongLinkWrap implements SydApi {
pcDataArray[i] = memory;
iDataLen[i] = bytes.length;
iEncDataLen[i] = BytesUtil.calculatePaddedLength(bytes.length);
- pcEncArray[i] = new Memory( iEncDataLen[i] );
+ pcEncArray[i] = new Memory(iEncDataLen[i]);
pcMacArray[i] = new Memory(16);
}
@@ -440,19 +435,17 @@ public class SydApiLongLinkWrap implements SydApi {
// 转换结果为Java风格的对象列表
List results = new ArrayList<>();
for (int i = 0; i < size; i++) {
- results.add(new DataAndMac(pcEncArray[i].getByteArray(0, iEncDataLen[i]), pcMacArray[i].getByteArray(0,16)));
+ results.add(new DataAndMac(pcEncArray[i].getByteArray(0, iEncDataLen[i]), pcMacArray[i].getByteArray(0, 16)));
}
return results;
} else {
throw new SydApiException(result);
}
- }
- catch (SydApiException e) {
+ } catch (SydApiException e) {
throw e;
- }
- catch (Exception e) {
- if ( e.getCause() instanceof SydApiException) {
+ } catch (Exception e) {
+ if (e.getCause() instanceof SydApiException) {
throw (SydApiException) e.getCause();
}
throw new SydApiException("并行任务执行失败", 0xC101, e);
@@ -478,7 +471,7 @@ public class SydApiLongLinkWrap implements SydApi {
log.info("SYD_SM4_CheckMacAndDecrypt_BatchData {} {}", iEncKeyIndex, iMacKeyIndex);
int size = pcData.size();
- log.debug("size {}" , size);
+ log.debug("size {}", size);
// 1. 准备明文参数
Pointer[] pcDataArray = new Pointer[pcData.size()];
@@ -499,23 +492,23 @@ public class SydApiLongLinkWrap implements SydApi {
// 为每个 byte[] 分配本地内存并复制数据
- Memory memory = new Memory( dm.getData().length );
+ Memory memory = new Memory(dm.getData().length);
memory.write(0, dm.getData(), 0, dm.getData().length);
pcEncArray[i] = memory;
iEncDataLen[i] = dm.getData().length;
- log.debug("pcEncArray={}" , dm.getData().length);
+ log.debug("pcEncArray={}", dm.getData().length);
- pcDataArray[i] = new Memory( dm.getData().length );
+ pcDataArray[i] = new Memory(dm.getData().length);
iDataLen[i] = dm.getData().length;
- log.debug("iDataLen= {}" , dm.getData().length);
+ log.debug("iDataLen= {}", dm.getData().length);
Memory mem_mac = new Memory(16);
mem_mac.write(0, dm.getMac(), 0, 16);
pcMacArray[i] = mem_mac;
- if ( log.isDebugEnabled() ) {
+ if (log.isDebugEnabled()) {
log.debug("mem_mac=" + Util.bytes2HexString(dm.getMac()));
}
}
@@ -577,15 +570,15 @@ public class SydApiLongLinkWrap implements SydApi {
@Override
public List SYD_SM4_BatchData(int[] iKeyIndex, List pcData, int iFlag) {
- if ( null == iKeyIndex || null == pcData ) {
+ if (null == iKeyIndex || null == pcData) {
throw new IllegalArgumentException("批量输入数据为 null");
}
- if ( iKeyIndex.length != pcData.size() ) {
+ if (iKeyIndex.length != pcData.size()) {
throw new IllegalArgumentException("批量输入数据密钥和数据数量不等");
}
- if ( 0 == iKeyIndex.length ) {
+ if (0 == iKeyIndex.length) {
return new ArrayList<>();
}
// 将数据进行分组,防止超长。
@@ -646,30 +639,28 @@ public class SydApiLongLinkWrap implements SydApi {
}
return ret;
- }
- catch (ExecutionException e) {
+ } catch (ExecutionException e) {
Throwable cause = e.getCause();
if (cause instanceof SydApiException) {
throw (SydApiException) cause;
}
throw new SydApiException("并行任务执行失败", 0xC101);
- }
- catch (Exception e) {
+ } catch (Exception e) {
throw new SydApiException("并行任务执行失败", 0xC101, e);
}
}
@Override
public List SYD_SM4Mac_BatchData(int[] iKeyIndex, List pcData) {
- if ( null == iKeyIndex || null == pcData ) {
+ if (null == iKeyIndex || null == pcData) {
throw new IllegalArgumentException("批量输入数据为 null");
}
- if ( iKeyIndex.length != pcData.size() ) {
+ if (iKeyIndex.length != pcData.size()) {
throw new IllegalArgumentException("批量输入数据密钥和数据数量不等");
}
- if ( 0 == iKeyIndex.length ) {
+ if (0 == iKeyIndex.length) {
return new ArrayList<>();
}
// 将数据进行分组,防止超长。
@@ -730,7 +721,7 @@ public class SydApiLongLinkWrap implements SydApi {
return ret;
} catch (Exception e) {
- if ( e.getCause() instanceof SydApiException) {
+ if (e.getCause() instanceof SydApiException) {
throw (SydApiException) e.getCause();
}
throw new SydApiException("并行任务执行失败", 0xC101, e);
@@ -739,15 +730,15 @@ public class SydApiLongLinkWrap implements SydApi {
@Override
public boolean[] SYD_SM4Mac_BatchData(int[] iKeyIndex, List pcData, List pcMac) {
- if ( null == iKeyIndex || null == pcData ) {
+ if (null == iKeyIndex || null == pcData) {
throw new IllegalArgumentException("批量输入数据为 null");
}
- if ( iKeyIndex.length != pcData.size() ) {
+ if (iKeyIndex.length != pcData.size()) {
throw new IllegalArgumentException("批量输入数据密钥和数据数量不等");
}
- if ( 0 == iKeyIndex.length ) {
+ if (0 == iKeyIndex.length) {
return new boolean[0];
}
@@ -822,7 +813,7 @@ public class SydApiLongLinkWrap implements SydApi {
return toBoolArray(ret);
} catch (Exception e) {
- if ( e.getCause() instanceof SydApiException) {
+ if (e.getCause() instanceof SydApiException) {
throw (SydApiException) e.getCause();
}
throw new SydApiException("并行任务执行失败", 0xC101, e);
diff --git a/src/main/java/com/sunyard/sge/database/pool/SydApiPool.java b/src/main/java/com/sunyard/sge/database/pool/SydApiPool.java
index 1279220..c85850a 100644
--- a/src/main/java/com/sunyard/sge/database/pool/SydApiPool.java
+++ b/src/main/java/com/sunyard/sge/database/pool/SydApiPool.java
@@ -4,11 +4,11 @@ import com.sunyard.SydApiException;
import com.sunyard.sge.database.SydApi;
import com.sunyard.sge.database.SydApi4Database;
import com.sunyard.sge.database.SydApiBaseFunction;
-import com.sunyard.sge.log.LogFactory;
import com.sunyard.sge.pool.ObjectInPool;
import com.sunyard.sge.pool.PoolConfig;
import com.sunyard.sge.pool.ThreadBasedConnectPool;
-import org.apache.logging.log4j.Logger;
+
+import org.slf4j.LoggerFactory;
import racal.sunyard.main.SydApi4j;
public class SydApiPool extends ThreadBasedConnectPool {
@@ -24,7 +24,7 @@ public class SydApiPool extends ThreadBasedConnectPool {
// 继承 初始化
protected SydApi initialValue() {
- Logger log = LogFactory.getLogger();
+ org.slf4j.Logger log = LoggerFactory.getLogger(ThreadBasedConnectPool.class);
// 所有加密机一次性链接
SydApi4j[] apis = new SydApi4j[linkInfos.length];
diff --git a/src/main/java/com/sunyard/sge/log/LogFactory.java b/src/main/java/com/sunyard/sge/log/LogFactory.java
index 3731849..4c016c7 100644
--- a/src/main/java/com/sunyard/sge/log/LogFactory.java
+++ b/src/main/java/com/sunyard/sge/log/LogFactory.java
@@ -1,122 +1,122 @@
-package com.sunyard.sge.log;
-
-import com.sunyard.sge.database.Consts;
-import org.apache.logging.log4j.Level;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.core.Appender;
-import org.apache.logging.log4j.core.Layout;
-import org.apache.logging.log4j.core.LoggerContext;
-import org.apache.logging.log4j.core.appender.FileAppender;
-import org.apache.logging.log4j.core.appender.rolling.SizeBasedTriggeringPolicy;
-import org.apache.logging.log4j.core.appender.rolling.TriggeringPolicy;
-import org.apache.logging.log4j.core.config.AppenderRef;
-import org.apache.logging.log4j.core.config.Configuration;
-import org.apache.logging.log4j.core.config.LoggerConfig;
-import org.apache.logging.log4j.core.layout.PatternLayout;
-import org.apache.logging.log4j.Logger;
-
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-/**
- * 金交所定制日志
- */
-public class LogFactory {
-
- // 金交所定制日志
- public static final String logName = "sge-hsm-sydapi-log";
-
- // 日志级别
- public static int iLogLevel = Consts.LogLevelOFF;
-
- // Levels
- private static final Level[] levels = new Level[]{ Level.OFF, Level.ERROR, Level.INFO, Level.DEBUG };
-
- // 日志目录
- private static String pcLogPath = "./sydapi-logs/";
-
-// // 日期格式
-// private SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
-
- private LogFactory() {
- }
-
- public static void start() {
- // 上下文
- final LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
- final Configuration config = ctx.getConfiguration();
-
- // 创建一个展示的样式
- Layout layout = PatternLayout.createLayout(
- "[%level{DEBUG=3, INFO=2, ERROR=1, OFF=0}: %d{ISO8601} <%thread>] %message%n%throwable",
- null,
- config, null, null, true, false, null, null);
-
-
- TriggeringPolicy tp = SizeBasedTriggeringPolicy.createPolicy("10MB");
-
-// Appender appender = RollingFileAppender.createAppender(String.format("logs/test/syncshows-job-%s.log", jobID),
-// "/logs/test/" + jobID + "/syncshows-job-" + jobID + ".log.gz",
-// "true", jobID, null, null, null, tp, null, layout, null,
-// null, null, null, config);
- SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
- // 日志打印方式——输出为文件
- Appender appender = FileAppender.createAppender(
- String.format( pcLogPath + "sydapi_"+ format.format(new Date()) + ".log"),
- "true", "false",
- logName, null, "true", "true", null, layout, null, null, null, config);
-
- appender.start();
- config.addAppender(appender);
- AppenderRef ref = AppenderRef.createAppenderRef( logName, levels[ iLogLevel ], null);
- AppenderRef[] refs = new AppenderRef[]{ref};
- LoggerConfig loggerConfig = LoggerConfig.createLogger("false", levels[ iLogLevel ], logName,
- "true", refs, null, config, null);
- loggerConfig.addAppender(appender, levels[ iLogLevel ], null);
- config.addLogger( logName, loggerConfig);
- ctx.updateLoggers();
- }
-
-
- public static void stop() {
- final LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
- final Configuration config = ctx.getConfiguration();
- config.getAppender( logName ).stop();
- config.getLoggerConfig(logName).removeAppender( logName);
- config.removeLogger(logName);
- ctx.updateLoggers();
- }
-
- public static int getiLogLevel() {
- return iLogLevel;
- }
-
- /**
- * 创建 Logger
- * @return Logger
- */
- public static Logger createLogger(String pcLogPath, int iLogLevel) {
- if( null == pcLogPath || pcLogPath.trim().equals("") ) {
- pcLogPath = "./";
- }
- if( ! pcLogPath.endsWith("/") ) {
- pcLogPath = pcLogPath + "/";
- }
-
- LogFactory.pcLogPath = pcLogPath;
- LogFactory.iLogLevel = iLogLevel;
- start();
- return LogManager.getLogger(logName);
-
- }
-
- /**
- * 获取 Logger
- * @return Logger
- */
- public static Logger getLogger() {
- return LogManager.getLogger(logName);
- }
-
-
-}
+//package com.sunyard.sge.log;
+//
+//import com.sunyard.sge.database.Consts;
+//import org.apache.logging.log4j.Level;
+//import org.apache.logging.log4j.LogManager;
+//import org.apache.logging.log4j.core.Appender;
+//import org.apache.logging.log4j.core.Layout;
+//import org.apache.logging.log4j.core.LoggerContext;
+//import org.apache.logging.log4j.core.appender.FileAppender;
+//import org.apache.logging.log4j.core.appender.rolling.SizeBasedTriggeringPolicy;
+//import org.apache.logging.log4j.core.appender.rolling.TriggeringPolicy;
+//import org.apache.logging.log4j.core.config.AppenderRef;
+//import org.apache.logging.log4j.core.config.Configuration;
+//import org.apache.logging.log4j.core.config.LoggerConfig;
+//import org.apache.logging.log4j.core.layout.PatternLayout;
+//import org.apache.logging.log4j.Logger;
+//
+//import java.text.SimpleDateFormat;
+//import java.util.Date;
+//
+///**
+// * 金交所定制日志
+// */
+//public class LogFactory {
+//
+// // 金交所定制日志
+// public static final String logName = "sge-hsm-sydapi-log";
+//
+// // 日志级别
+// public static int iLogLevel = Consts.LogLevelOFF;
+//
+// // Levels
+// private static final Level[] levels = new Level[]{ Level.OFF, Level.ERROR, Level.INFO, Level.DEBUG };
+//
+// // 日志目录
+// private static String pcLogPath = "./sydapi-logs/";
+//
+//// // 日期格式
+//// private SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+//
+// private LogFactory() {
+// }
+//
+// public static void start() {
+// // 上下文
+// final LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
+// final Configuration config = ctx.getConfiguration();
+//
+// // 创建一个展示的样式
+// Layout layout = PatternLayout.createLayout(
+// "[%level{DEBUG=3, INFO=2, ERROR=1, OFF=0}: %d{ISO8601} <%thread>] %message%n%throwable",
+// null,
+// config, null, null, true, false, null, null);
+//
+//
+// TriggeringPolicy tp = SizeBasedTriggeringPolicy.createPolicy("10MB");
+//
+//// Appender appender = RollingFileAppender.createAppender(String.format("logs/test/syncshows-job-%s.log", jobID),
+//// "/logs/test/" + jobID + "/syncshows-job-" + jobID + ".log.gz",
+//// "true", jobID, null, null, null, tp, null, layout, null,
+//// null, null, null, config);
+// SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+// // 日志打印方式——输出为文件
+// Appender appender = FileAppender.createAppender(
+// String.format( pcLogPath + "sydapi_"+ format.format(new Date()) + ".log"),
+// "true", "false",
+// logName, null, "true", "true", null, layout, null, null, null, config);
+//
+// appender.start();
+// config.addAppender(appender);
+// AppenderRef ref = AppenderRef.createAppenderRef( logName, levels[ iLogLevel ], null);
+// AppenderRef[] refs = new AppenderRef[]{ref};
+// LoggerConfig loggerConfig = LoggerConfig.createLogger("false", levels[ iLogLevel ], logName,
+// "true", refs, null, config, null);
+// loggerConfig.addAppender(appender, levels[ iLogLevel ], null);
+// config.addLogger( logName, loggerConfig);
+// ctx.updateLoggers();
+// }
+//
+//
+// public static void stop() {
+// final LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
+// final Configuration config = ctx.getConfiguration();
+// config.getAppender( logName ).stop();
+// config.getLoggerConfig(logName).removeAppender( logName);
+// config.removeLogger(logName);
+// ctx.updateLoggers();
+// }
+//
+// public static int getiLogLevel() {
+// return iLogLevel;
+// }
+//
+// /**
+// * 创建 Logger
+// * @return Logger
+// */
+// public static Logger createLogger(String pcLogPath, int iLogLevel) {
+// if( null == pcLogPath || pcLogPath.trim().equals("") ) {
+// pcLogPath = "./";
+// }
+// if( ! pcLogPath.endsWith("/") ) {
+// pcLogPath = pcLogPath + "/";
+// }
+//
+// LogFactory.pcLogPath = pcLogPath;
+// LogFactory.iLogLevel = iLogLevel;
+// start();
+// return LogManager.getLogger(logName);
+//
+// }
+//
+// /**
+// * 获取 Logger
+// * @return Logger
+// */
+// public static Logger getLogger() {
+// return LogManager.getLogger(logName);
+// }
+//
+//
+//}
diff --git a/src/main/java/com/sunyard/sge/log/LogbackFactory.java b/src/main/java/com/sunyard/sge/log/LogbackFactory.java
new file mode 100644
index 0000000..ee025cc
--- /dev/null
+++ b/src/main/java/com/sunyard/sge/log/LogbackFactory.java
@@ -0,0 +1,19 @@
+package com.sunyard.sge.log;
+
+import com.sunyard.log.ILogFactory;
+import com.sunyard.log.ILogger;
+import racal.sunyard.main.SydApi4j;
+
+
+public class LogbackFactory implements ILogFactory {
+ static {
+ SydApi4j.setLogFactory(new LogbackFactory());
+ }
+
+ @Override
+ public ILogger getLogger(Class cls) {
+ return new LogbackLogger(cls);
+ }
+
+
+}
diff --git a/src/main/java/com/sunyard/sge/log/LogbackLogger.java b/src/main/java/com/sunyard/sge/log/LogbackLogger.java
new file mode 100644
index 0000000..e3fd1f9
--- /dev/null
+++ b/src/main/java/com/sunyard/sge/log/LogbackLogger.java
@@ -0,0 +1,44 @@
+package com.sunyard.sge.log;
+
+import com.sunyard.log.ILogger;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class LogbackLogger implements ILogger {
+
+
+ private Class aClass;
+
+ public LogbackLogger(Class cls) {
+ this.aClass = cls;
+ }
+
+ @Override
+ public int getCurrentLogLevel() {
+ return -1;
+ }
+
+ @Override
+ public void error(String msg, Object... params) {
+ Logger logger = LoggerFactory.getLogger(aClass);
+ logger.error(msg, params);
+ }
+
+ @Override
+ public void info(String msg, Object... params) {
+ Logger logger = LoggerFactory.getLogger(aClass);
+ logger.info(msg, params);
+ }
+
+ @Override
+ public void debug(String msg, Object... params) {
+ Logger logger = LoggerFactory.getLogger(aClass);
+ logger.debug(msg, params);
+ }
+
+ @Override
+ public boolean isDebugEnabled() {
+ Logger logger = LoggerFactory.getLogger(aClass);
+ return logger.isDebugEnabled();
+ }
+}
diff --git a/src/main/java/com/sunyard/sge/pool/ThreadBasedConnectPool.java b/src/main/java/com/sunyard/sge/pool/ThreadBasedConnectPool.java
index c556f63..3044e38 100644
--- a/src/main/java/com/sunyard/sge/pool/ThreadBasedConnectPool.java
+++ b/src/main/java/com/sunyard/sge/pool/ThreadBasedConnectPool.java
@@ -1,10 +1,8 @@
package com.sunyard.sge.pool;
-
-
-import com.sunyard.sge.log.LogFactory;
-import org.apache.logging.log4j.Logger;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import java.util.HashMap;
import java.util.Iterator;
@@ -24,9 +22,11 @@ public class ThreadBasedConnectPool {
// 配置
private PoolConfig config;
+ private Logger log = LoggerFactory.getLogger(ThreadBasedConnectPool.class);
+
public ThreadBasedConnectPool(PoolConfig config) {
this.config = config;
- Logger log = LogFactory.getLogger();
+
threadPool.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
diff --git a/src/test/java/test/FuncTest.java b/src/test/java/test/FuncTest.java
index 60bb201..e6db9d5 100644
--- a/src/test/java/test/FuncTest.java
+++ b/src/test/java/test/FuncTest.java
@@ -3,12 +3,6 @@ package test;
import com.sunyard.SydApiException;
import com.sunyard.proto.Util;
import com.sunyard.sge.database.*;
-import com.sunyard.sge.log.LogFactory;
-import com.sunyard.sge.plus.ConnectHandlerManager;
-import org.apache.logging.log4j.Logger;
-import org.junit.Before;
-import org.junit.Test;
-
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;