1.20 发布

This commit is contained in:
cheney 2025-07-14 14:55:40 +08:00
parent a936011a8d
commit 729b6b217e
12 changed files with 336 additions and 272 deletions

34
pom.xml
View File

@ -6,7 +6,7 @@
<groupId>com.sunyard.sge.database</groupId> <groupId>com.sunyard.sge.database</groupId>
<artifactId>sydapi-database</artifactId> <artifactId>sydapi-database</artifactId>
<version>1.19</version> <version>1.20</version>
<name>sydapi-database</name> <name>sydapi-database</name>
@ -29,25 +29,35 @@
<artifactId>groovy</artifactId> <artifactId>groovy</artifactId>
<version>2.4.15</version> <version>2.4.15</version>
</dependency> </dependency>
<dependency>
<groupId>com.sunyard</groupId>
<artifactId>proto</artifactId>
<version>1.0-20220905</version>
</dependency>
<dependency> <dependency>
<groupId>com.sunyard</groupId> <groupId>com.sunyard</groupId>
<artifactId>sydapi4j</artifactId> <artifactId>sydapi4j</artifactId>
<version>1.15.20250711</version> <version>1.15.20250711</version>
</dependency> <exclusions>
<dependency> <!-- 排除 log4j-api -->
<exclusion>
<groupId>org.apache.logging.log4j</groupId> <groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId> <artifactId>log4j-api</artifactId>
<version>${log.version}</version> </exclusion>
</dependency> <!-- 排除 log4j-core -->
<dependency> <exclusion>
<groupId>org.apache.logging.log4j</groupId> <groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId> <artifactId>log4j-core</artifactId>
<version>${log.version}</version> </exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy</artifactId>
<version>2.4.15</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.11</version>
<scope>provided</scope>
</dependency> </dependency>
<dependency> <dependency>

View File

@ -1,9 +1,6 @@
package com.sunyard.sge.database; package com.sunyard.sge.database;
import com.sunyard.sge.log.LogFactory;
import com.sunyard.sge.plus.SydLibrary; import com.sunyard.sge.plus.SydLibrary;
import org.apache.logging.log4j.Logger;
import racal.sunyard.main.SydApi4j;
import java.util.List; import java.util.List;
@ -29,8 +26,7 @@ public interface SydApi {
if (pcLogPath == null || iLogLevel < 0 || iLogLevel > 3) { if (pcLogPath == null || iLogLevel < 0 || iLogLevel > 3) {
throw new IllegalArgumentException("地址不能为空且等级范围为0到3"); throw new IllegalArgumentException("地址不能为空且等级范围为0到3");
} }
Logger logger = LogFactory.createLogger(pcLogPath, iLogLevel); // logback 版本的日志直接由外部配置文件控制
SydApi4j.setLogger(logger);
// 初始化 C 部分日志 // 初始化 C 部分日志
SydLibrary.INSTANCE.SYD_SetLogConfig(pcLogPath, pcLogPath.getBytes().length, iLogLevel); SydLibrary.INSTANCE.SYD_SetLogConfig(pcLogPath, pcLogPath.getBytes().length, iLogLevel);
@ -291,6 +287,7 @@ public interface SydApi {
/** /**
* 短数据校验 MAC 并解密 * 短数据校验 MAC 并解密
*
* @param iEncKeyIndex输入加密所需要的密钥索引值 * @param iEncKeyIndex输入加密所需要的密钥索引值
* @param iMacKeyIndex输入计算mac所需要的密钥索引值 * @param iMacKeyIndex输入计算mac所需要的密钥索引值
* @param pcData 输入密文 * @param pcData 输入密文
@ -310,6 +307,7 @@ public interface SydApi {
int[] iMacKeyIndex, int[] iMacKeyIndex,
List<byte[]> pcData List<byte[]> pcData
); );
List<DataAndMacCheck> SYD_SM4_CheckMacAndDecrypt_BatchData( List<DataAndMacCheck> SYD_SM4_CheckMacAndDecrypt_BatchData(
int[] iEncKeyIndex, int[] iEncKeyIndex,
int[] iMacKeyIndex, int[] iMacKeyIndex,

View File

@ -1,6 +1,9 @@
package com.sunyard.sge.database; 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.database.pool.HsmLinkInfo;
import com.sunyard.sge.log.LogbackFactory;
import racal.sunyard.main.SydApi4j; import racal.sunyard.main.SydApi4j;
import java.util.ArrayList; import java.util.ArrayList;

View File

@ -1,12 +1,13 @@
package com.sunyard.sge.database; package com.sunyard.sge.database;
import com.sunyard.SydApiException; import com.sunyard.SydApiException;
import com.sunyard.log.ILogFactory;
import com.sunyard.log.ILogger;
import com.sunyard.proto.Util; import com.sunyard.proto.Util;
import com.sunyard.sge.database.pool.HsmLinkInfo; 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.sge.pool.ObjectInPool;
import com.sunyard.util.SYMUtil; import com.sunyard.util.SYMUtil;
import org.apache.logging.log4j.Logger;
import racal.sunyard.main.SydApi4j; import racal.sunyard.main.SydApi4j;
import java.util.ArrayList; import java.util.ArrayList;
@ -20,8 +21,10 @@ public class SydApiBaseFunction implements SydApi {
private SydApi4j[] hsms = null; private SydApi4j[] hsms = null;
private HsmLinkInfo[] linkInfos = null; private HsmLinkInfo[] linkInfos = null;
private ObjectInPool oip = null; private ObjectInPool oip = null;
Logger log = LogFactory.getLogger();
private boolean isShortLinkMode = false; private boolean isShortLinkMode = false;
private ILogFactory iLogFactory = new LogbackFactory();
private ILogger log = iLogFactory.getLogger(SydApiBaseFunction.class);
public SydApiBaseFunction() { public SydApiBaseFunction() {
isShortLinkMode = true; isShortLinkMode = true;
@ -52,8 +55,8 @@ public class SydApiBaseFunction implements SydApi {
@Override @Override
public SydApi SYD_Short_Connect_Ex(String[] pcIpList, int[] iPortList, int iConnectTimeOut, int allDealTimeOut) { 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); 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 @Override
public byte[] SYD_SM3_Hash_ShortData(byte[] pcData) { 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)); log.debug("SYD_SM3_Hash_ShortData方法接收参数pcData{}", Arrays.toString(pcData));
} }
if (null == this.hsms || this.hsms.length < 1) { if (null == this.hsms || this.hsms.length < 1) {
@ -179,8 +182,8 @@ public class SydApiBaseFunction implements SydApi {
@Override @Override
public LongDataReturn<byte[], byte[]> SYD_SM3_Hash_LongData(byte[] pcData, int iPkgNum, byte[] pcProcData) { public LongDataReturn<byte[], byte[]> 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); log.debug("SYD_SM3_Hash_LongData 方法接收参数pcData{},iPkgNum{},pcProcData{}", Arrays.toString(pcData), iPkgNum, pcProcData);
} }
@ -246,11 +249,11 @@ public class SydApiBaseFunction implements SydApi {
@Override @Override
public byte[] SYD_SM4_ShortData(int iKeyIndex, byte[] pcData, int iFlag) { public byte[] SYD_SM4_ShortData(int iKeyIndex, byte[] pcData, int iFlag) {
Logger log = LogFactory.getLogger();
if (iKeyIndex < 0) { if (iKeyIndex < 0) {
throw new SydApiException(0x01000001); throw new SydApiException(0x01000001);
} }
if (LogFactory.iLogLevel == 3) { if ( log.isDebugEnabled() ) {
log.debug("SYD_SM4_ShortData方法接收参数iKeyIndex{},pcData{},iFlag{}", iKeyIndex, Arrays.toString(pcData), iFlag); log.debug("SYD_SM4_ShortData方法接收参数iKeyIndex{},pcData{},iFlag{}", iKeyIndex, Arrays.toString(pcData), iFlag);
} }
if (iFlag == Consts.ECB_DEC && null == pcData) { if (iFlag == Consts.ECB_DEC && null == pcData) {
@ -333,8 +336,8 @@ public class SydApiBaseFunction implements SydApi {
@Override @Override
public List<byte[]> SYD_SM4_BatchData(int[] iKeyIndex, List<byte[]> pcData, int iFlag) { public List<byte[]> SYD_SM4_BatchData(int[] iKeyIndex, List<byte[]> 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); log.debug("SYD_SM4_BatchData方法接收参数iKeyIndex{},pcData元素个数为{},iFlag{}", iKeyIndex, pcData.size(), iFlag);
} }
@ -422,8 +425,8 @@ public class SydApiBaseFunction implements SydApi {
@Override @Override
public byte[] SYD_SM4_LongData(int iKeyIndex, byte[] pcData, int iPkgNum, int iFlag) { 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); 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 @Override
public List<byte[]> SYD_SM4Mac_BatchData(int[] iKeyIndex, List<byte[]> pcData) { public List<byte[]> SYD_SM4Mac_BatchData(int[] iKeyIndex, List<byte[]> pcData) {
Logger log = LogFactory.getLogger();
if (LogFactory.iLogLevel == 3) { if (log.isDebugEnabled()) {
log.debug("SYD_SM4Mac_BatchDataiKeyIndex{},pcData元素个数为{}", iKeyIndex, pcData.size()); log.debug("SYD_SM4Mac_BatchDataiKeyIndex{},pcData元素个数为{}", iKeyIndex, pcData.size());
} }
@ -590,8 +593,8 @@ public class SydApiBaseFunction implements SydApi {
@Override @Override
public boolean[] SYD_SM4Mac_BatchData(int[] iKeyIndex, List<byte[]> pcData, List<byte[]> pcMac) { public boolean[] SYD_SM4Mac_BatchData(int[] iKeyIndex, List<byte[]> pcData, List<byte[]> 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()); log.debug("SYD_SM4Mac_BatchData 方法接收参数iKeyIndex{}, pcData元素个数为{},pcMac{}", iKeyIndex, pcData.size(), pcMac.size());
} }
@ -666,8 +669,8 @@ public class SydApiBaseFunction implements SydApi {
@Override @Override
public LongDataReturn<byte[], byte[]> SYD_SM4Mac_LongData(int iKeyIndex, byte[] pcData, int iPkgNum, byte[] pcProcData) { public LongDataReturn<byte[], byte[]> 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); log.debug("SYD_SM4Mac_LongData方法接收参数iKeyIndex{},pcData{},iPkgNum{},pcProcData{}", iKeyIndex, Arrays.toString(pcData), iPkgNum, pcProcData);
} }
if (null == this.hsms || this.hsms.length < 1) { if (null == this.hsms || this.hsms.length < 1) {
@ -756,8 +759,8 @@ public class SydApiBaseFunction implements SydApi {
@Override @Override
public LongDataReturn<byte[], Boolean> SYD_SM4Mac_LongData(int iKeyIndex, byte[] pcData, int iPkgNum, byte[] pcProcData, byte[] pcMac) { public LongDataReturn<byte[], Boolean> 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); log.debug("SYD_SM4Mac_LongData方法接收参数iKeyIndex{}, iPkgNum{},pcProcData{}", iKeyIndex, iPkgNum, pcProcData);
} }
updateLastUseTime(); updateLastUseTime();
@ -778,8 +781,8 @@ public class SydApiBaseFunction implements SydApi {
} }
public byte[] SYD_SM4Mac_ShortData(int iKeyIndex, byte[] pcData, int limitDataLen) { 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)); 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) { 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)); log.debug("SYD_SM4Mac_ShortData 方法接收参数:{}", iKeyIndex, Util.bytes2HexString(pcData), Util.bytes2HexString(pcMac));
} }
@ -877,8 +880,8 @@ public class SydApiBaseFunction implements SydApi {
*/ */
@Override @Override
public DataAndMac SYD_SM4_EncryptAndMac_ShortData(int iEncKeyIndex, int iMacKeyIndex, byte[] pcData) { 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_ShortDatak1={} k2={}", iEncKeyIndex, iMacKeyIndex); log.debug("SYD_SM4_EncryptAndMac_ShortDatak1={} k2={}", iEncKeyIndex, iMacKeyIndex);
} }
// 参数检查在函数内部 // 参数检查在函数内部
@ -891,8 +894,8 @@ public class SydApiBaseFunction implements SydApi {
@Override @Override
public DataAndMacCheck SYD_SM4_CheckMacAndDecrypt_ShortData(int iEncKeyIndex, int iMacKeyIndex, byte[] pcData, byte[] mac) { 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_ShortDatak1={} k2={}", iEncKeyIndex, iMacKeyIndex); log.debug("SYD_SM4_CheckMacAndDecrypt_ShortDatak1={} k2={}", iEncKeyIndex, iMacKeyIndex);
} }
@ -909,7 +912,7 @@ public class SydApiBaseFunction implements SydApi {
@Override @Override
public List<DataAndMac> SYD_SM4_EncryptAndMac_BatchData(int[] iEncKeyIndex, int[] iMacKeyIndex, List<byte[]> pcData) { public List<DataAndMac> SYD_SM4_EncryptAndMac_BatchData(int[] iEncKeyIndex, int[] iMacKeyIndex, List<byte[]> pcData) {
if (LogFactory.iLogLevel == 3) { if (log.isDebugEnabled()) {
log.debug("SYD_SM4_EncryptAndMac_BatchData"); log.debug("SYD_SM4_EncryptAndMac_BatchData");
} }
@ -940,7 +943,7 @@ public class SydApiBaseFunction implements SydApi {
@Override @Override
public List<DataAndMacCheck> SYD_SM4_CheckMacAndDecrypt_BatchData(int[] iEncKeyIndex, int[] iMacKeyIndex, List<DataAndMac> pcData) { public List<DataAndMacCheck> SYD_SM4_CheckMacAndDecrypt_BatchData(int[] iEncKeyIndex, int[] iMacKeyIndex, List<DataAndMac> pcData) {
if (LogFactory.iLogLevel == 3) { if (log.isDebugEnabled()) {
log.debug("SYD_SM4_CheckMacAndDecrypt_BatchData"); log.debug("SYD_SM4_CheckMacAndDecrypt_BatchData");
} }

View File

@ -3,12 +3,11 @@ package com.sunyard.sge.database;
import com.sunyard.SydApiException; import com.sunyard.SydApiException;
import com.sunyard.sge.database.pool.HsmLinkInfo; import com.sunyard.sge.database.pool.HsmLinkInfo;
import com.sunyard.sge.database.pool.SydApiPool; import com.sunyard.sge.database.pool.SydApiPool;
import com.sunyard.sge.log.LogFactory;
import com.sunyard.sge.plus.ConnectHandlerManager; import com.sunyard.sge.plus.ConnectHandlerManager;
import com.sunyard.sge.plus.SydLibrary;
import com.sunyard.sge.pool.CommWorker; import com.sunyard.sge.pool.CommWorker;
import com.sunyard.sge.pool.PoolConfig; 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; import java.util.Arrays;
@ -25,6 +24,7 @@ public class SydApiBuilder {
) { ) {
this(pcIpList, iPortList, iConnectTimeOut, iDealTimeOut, new PoolConfig()); this(pcIpList, iPortList, iConnectTimeOut, iDealTimeOut, new PoolConfig());
} }
public SydApiBuilder( public SydApiBuilder(
String[] pcIpList, String[] pcIpList,
int[] iPortList, int[] iPortList,
@ -32,7 +32,7 @@ public class SydApiBuilder {
int iDealTimeOut, int iDealTimeOut,
PoolConfig config PoolConfig config
) { ) {
Logger log = LogFactory.getLogger(); org.slf4j.Logger log = LoggerFactory.getLogger(ThreadBasedConnectPool.class);
if (log.isDebugEnabled()) { if (log.isDebugEnabled()) {
log.debug("创建链接"); log.debug("创建链接");
@ -60,6 +60,7 @@ public class SydApiBuilder {
/** /**
* 获取池内对象 * 获取池内对象
*
* @return 池内对象 * @return 池内对象
*/ */
public SydApi get() { public SydApi get() {
@ -69,6 +70,7 @@ public class SydApiBuilder {
/** /**
* 升级 * 升级
* 修改了原实现 * 修改了原实现
*
* @return 包装对象 * @return 包装对象
*/ */
public SydApi build() { public SydApi build() {

View File

@ -6,10 +6,10 @@ import com.sun.jna.ptr.IntByReference;
import com.sunyard.SydApiException; import com.sunyard.SydApiException;
import com.sunyard.proto.Util; import com.sunyard.proto.Util;
import com.sunyard.sge.bytes.BytesUtil; import com.sunyard.sge.bytes.BytesUtil;
import com.sunyard.sge.log.LogFactory;
import com.sunyard.sge.plus.ConnectHandlerManager; import com.sunyard.sge.plus.ConnectHandlerManager;
import com.sunyard.sge.plus.SydLibrary; 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.ArrayList;
import java.util.List; import java.util.List;
@ -26,7 +26,7 @@ import static com.sunyard.sge.database.SydApiConfig.BATCH_SIZE;
*/ */
public class SydApiLongLinkWrap implements SydApi { public class SydApiLongLinkWrap implements SydApi {
private Logger log = LogFactory.getLogger(); org.slf4j.Logger log = LoggerFactory.getLogger(ThreadBasedConnectPool.class);
private SydApiBuilder builder; private SydApiBuilder builder;
@ -209,11 +209,9 @@ public class SydApiLongLinkWrap implements SydApi {
byte[] mac = taskMac.get(); byte[] mac = taskMac.get();
return new DataAndMac(enData, mac); return new DataAndMac(enData, mac);
} } catch (SydApiException e) {
catch (SydApiException e) {
throw e; throw e;
} } catch (Exception e) {
catch (Exception e) {
if (e.getCause() instanceof SydApiException) { if (e.getCause() instanceof SydApiException) {
throw (SydApiException) e.getCause(); throw (SydApiException) e.getCause();
} }
@ -318,11 +316,9 @@ public class SydApiLongLinkWrap implements SydApi {
// //
// //
// return new DataAndMac(enData, mac.getData()); // return new DataAndMac(enData, mac.getData());
} } catch (SydApiException e) {
catch (SydApiException e) {
throw e; throw e;
} } catch (Exception e) {
catch (Exception e) {
if (e.getCause() instanceof SydApiException) { if (e.getCause() instanceof SydApiException) {
throw (SydApiException) e.getCause(); throw (SydApiException) e.getCause();
} }
@ -359,16 +355,15 @@ public class SydApiLongLinkWrap implements SydApi {
if (0 == i) { if (0 == i) {
return new DataAndMacCheck(data, true); return new DataAndMacCheck(data, true);
} if (0x01000010 == i) { }
if (0x01000010 == i) {
return new DataAndMacCheck(data, false); return new DataAndMacCheck(data, false);
} else { } else {
throw new SydApiException(i); throw new SydApiException(i);
} }
} } catch (SydApiException e) {
catch (SydApiException e) {
throw e; throw e;
} } catch (Exception e) {
catch (Exception e) {
if (e.getCause() instanceof SydApiException) { if (e.getCause() instanceof SydApiException) {
throw (SydApiException) e.getCause(); throw (SydApiException) e.getCause();
} }
@ -447,11 +442,9 @@ public class SydApiLongLinkWrap implements SydApi {
} else { } else {
throw new SydApiException(result); throw new SydApiException(result);
} }
} } catch (SydApiException e) {
catch (SydApiException e) {
throw e; throw e;
} } catch (Exception e) {
catch (Exception e) {
if (e.getCause() instanceof SydApiException) { if (e.getCause() instanceof SydApiException) {
throw (SydApiException) e.getCause(); throw (SydApiException) e.getCause();
} }
@ -646,15 +639,13 @@ public class SydApiLongLinkWrap implements SydApi {
} }
return ret; return ret;
} } catch (ExecutionException e) {
catch (ExecutionException e) {
Throwable cause = e.getCause(); Throwable cause = e.getCause();
if (cause instanceof SydApiException) { if (cause instanceof SydApiException) {
throw (SydApiException) cause; throw (SydApiException) cause;
} }
throw new SydApiException("并行任务执行失败", 0xC101); throw new SydApiException("并行任务执行失败", 0xC101);
} } catch (Exception e) {
catch (Exception e) {
throw new SydApiException("并行任务执行失败", 0xC101, e); throw new SydApiException("并行任务执行失败", 0xC101, e);
} }
} }

View File

@ -4,11 +4,11 @@ import com.sunyard.SydApiException;
import com.sunyard.sge.database.SydApi; import com.sunyard.sge.database.SydApi;
import com.sunyard.sge.database.SydApi4Database; import com.sunyard.sge.database.SydApi4Database;
import com.sunyard.sge.database.SydApiBaseFunction; import com.sunyard.sge.database.SydApiBaseFunction;
import com.sunyard.sge.log.LogFactory;
import com.sunyard.sge.pool.ObjectInPool; import com.sunyard.sge.pool.ObjectInPool;
import com.sunyard.sge.pool.PoolConfig; import com.sunyard.sge.pool.PoolConfig;
import com.sunyard.sge.pool.ThreadBasedConnectPool; import com.sunyard.sge.pool.ThreadBasedConnectPool;
import org.apache.logging.log4j.Logger;
import org.slf4j.LoggerFactory;
import racal.sunyard.main.SydApi4j; import racal.sunyard.main.SydApi4j;
public class SydApiPool extends ThreadBasedConnectPool<SydApi> { public class SydApiPool extends ThreadBasedConnectPool<SydApi> {
@ -24,7 +24,7 @@ public class SydApiPool extends ThreadBasedConnectPool<SydApi> {
// 继承 初始化 // 继承 初始化
protected SydApi initialValue() { protected SydApi initialValue() {
Logger log = LogFactory.getLogger(); org.slf4j.Logger log = LoggerFactory.getLogger(ThreadBasedConnectPool.class);
// 所有加密机一次性链接 // 所有加密机一次性链接
SydApi4j[] apis = new SydApi4j[linkInfos.length]; SydApi4j[] apis = new SydApi4j[linkInfos.length];

View File

@ -1,122 +1,122 @@
package com.sunyard.sge.log; //package com.sunyard.sge.log;
//
import com.sunyard.sge.database.Consts; //import com.sunyard.sge.database.Consts;
import org.apache.logging.log4j.Level; //import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.LogManager; //import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.core.Appender; //import org.apache.logging.log4j.core.Appender;
import org.apache.logging.log4j.core.Layout; //import org.apache.logging.log4j.core.Layout;
import org.apache.logging.log4j.core.LoggerContext; //import org.apache.logging.log4j.core.LoggerContext;
import org.apache.logging.log4j.core.appender.FileAppender; //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.SizeBasedTriggeringPolicy;
import org.apache.logging.log4j.core.appender.rolling.TriggeringPolicy; //import org.apache.logging.log4j.core.appender.rolling.TriggeringPolicy;
import org.apache.logging.log4j.core.config.AppenderRef; //import org.apache.logging.log4j.core.config.AppenderRef;
import org.apache.logging.log4j.core.config.Configuration; //import org.apache.logging.log4j.core.config.Configuration;
import org.apache.logging.log4j.core.config.LoggerConfig; //import org.apache.logging.log4j.core.config.LoggerConfig;
import org.apache.logging.log4j.core.layout.PatternLayout; //import org.apache.logging.log4j.core.layout.PatternLayout;
import org.apache.logging.log4j.Logger; //import org.apache.logging.log4j.Logger;
//
import java.text.SimpleDateFormat; //import java.text.SimpleDateFormat;
import java.util.Date; //import java.util.Date;
//
/** ///**
* 金交所定制日志 // * 金交所定制日志
*/ // */
public class LogFactory { //public class LogFactory {
//
// 金交所定制日志 // // 金交所定制日志
public static final String logName = "sge-hsm-sydapi-log"; // public static final String logName = "sge-hsm-sydapi-log";
//
// 日志级别 // // 日志级别
public static int iLogLevel = Consts.LogLevelOFF; // public static int iLogLevel = Consts.LogLevelOFF;
//
// Levels // // Levels
private static final Level[] levels = new Level[]{ Level.OFF, Level.ERROR, Level.INFO, Level.DEBUG }; // private static final Level[] levels = new Level[]{ Level.OFF, Level.ERROR, Level.INFO, Level.DEBUG };
//
// 日志目录 // // 日志目录
private static String pcLogPath = "./sydapi-logs/"; // private static String pcLogPath = "./sydapi-logs/";
//
// // 日期格式 //// // 日期格式
// private SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); //// private SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
//
private LogFactory() { // private LogFactory() {
} // }
//
public static void start() { // public static void start() {
// 上下文 // // 上下文
final LoggerContext ctx = (LoggerContext) LogManager.getContext(false); // final LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
final Configuration config = ctx.getConfiguration(); // final Configuration config = ctx.getConfiguration();
//
// 创建一个展示的样式 // // 创建一个展示的样式
Layout layout = PatternLayout.createLayout( // Layout layout = PatternLayout.createLayout(
"[%level{DEBUG=3, INFO=2, ERROR=1, OFF=0}: %d{ISO8601} <%thread>] %message%n%throwable", // "[%level{DEBUG=3, INFO=2, ERROR=1, OFF=0}: %d{ISO8601} <%thread>] %message%n%throwable",
null, // null,
config, null, null, true, false, null, null); // config, null, null, true, false, null, null);
//
//
TriggeringPolicy tp = SizeBasedTriggeringPolicy.createPolicy("10MB"); // TriggeringPolicy tp = SizeBasedTriggeringPolicy.createPolicy("10MB");
//
// Appender appender = RollingFileAppender.createAppender(String.format("logs/test/syncshows-job-%s.log", jobID), //// Appender appender = RollingFileAppender.createAppender(String.format("logs/test/syncshows-job-%s.log", jobID),
// "/logs/test/" + jobID + "/syncshows-job-" + jobID + ".log.gz", //// "/logs/test/" + jobID + "/syncshows-job-" + jobID + ".log.gz",
// "true", jobID, null, null, null, tp, null, layout, null, //// "true", jobID, null, null, null, tp, null, layout, null,
// null, null, null, config); //// null, null, null, config);
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); // SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
// 日志打印方式输出为文件    // // 日志打印方式输出为文件   
Appender appender = FileAppender.createAppender( // Appender appender = FileAppender.createAppender(
String.format( pcLogPath + "sydapi_"+ format.format(new Date()) + ".log"), // String.format( pcLogPath + "sydapi_"+ format.format(new Date()) + ".log"),
"true", "false", // "true", "false",
logName, null, "true", "true", null, layout, null, null, null, config); // logName, null, "true", "true", null, layout, null, null, null, config);
//
appender.start(); // appender.start();
config.addAppender(appender); // config.addAppender(appender);
AppenderRef ref = AppenderRef.createAppenderRef( logName, levels[ iLogLevel ], null); // AppenderRef ref = AppenderRef.createAppenderRef( logName, levels[ iLogLevel ], null);
AppenderRef[] refs = new AppenderRef[]{ref}; // AppenderRef[] refs = new AppenderRef[]{ref};
LoggerConfig loggerConfig = LoggerConfig.createLogger("false", levels[ iLogLevel ], logName, // LoggerConfig loggerConfig = LoggerConfig.createLogger("false", levels[ iLogLevel ], logName,
"true", refs, null, config, null); // "true", refs, null, config, null);
loggerConfig.addAppender(appender, levels[ iLogLevel ], null); // loggerConfig.addAppender(appender, levels[ iLogLevel ], null);
config.addLogger( logName, loggerConfig); // config.addLogger( logName, loggerConfig);
ctx.updateLoggers(); // ctx.updateLoggers();
} // }
//
//
public static void stop() { // public static void stop() {
final LoggerContext ctx = (LoggerContext) LogManager.getContext(false); // final LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
final Configuration config = ctx.getConfiguration(); // final Configuration config = ctx.getConfiguration();
config.getAppender( logName ).stop(); // config.getAppender( logName ).stop();
config.getLoggerConfig(logName).removeAppender( logName); // config.getLoggerConfig(logName).removeAppender( logName);
config.removeLogger(logName); // config.removeLogger(logName);
ctx.updateLoggers(); // ctx.updateLoggers();
} // }
//
public static int getiLogLevel() { // public static int getiLogLevel() {
return iLogLevel; // return iLogLevel;
} // }
//
/** // /**
* 创建 Logger // * 创建 Logger
* @return Logger // * @return Logger
*/ // */
public static Logger createLogger(String pcLogPath, int iLogLevel) { // public static Logger createLogger(String pcLogPath, int iLogLevel) {
if( null == pcLogPath || pcLogPath.trim().equals("") ) { // if( null == pcLogPath || pcLogPath.trim().equals("") ) {
pcLogPath = "./"; // pcLogPath = "./";
} // }
if( ! pcLogPath.endsWith("/") ) { // if( ! pcLogPath.endsWith("/") ) {
pcLogPath = pcLogPath + "/"; // pcLogPath = pcLogPath + "/";
} // }
//
LogFactory.pcLogPath = pcLogPath; // LogFactory.pcLogPath = pcLogPath;
LogFactory.iLogLevel = iLogLevel; // LogFactory.iLogLevel = iLogLevel;
start(); // start();
return LogManager.getLogger(logName); // return LogManager.getLogger(logName);
//
} // }
//
/** // /**
* 获取 Logger // * 获取 Logger
* @return Logger // * @return Logger
*/ // */
public static Logger getLogger() { // public static Logger getLogger() {
return LogManager.getLogger(logName); // return LogManager.getLogger(logName);
} // }
//
//
} //}

View File

@ -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);
}
}

View File

@ -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();
}
}

View File

@ -1,10 +1,8 @@
package com.sunyard.sge.pool; package com.sunyard.sge.pool;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.sunyard.sge.log.LogFactory;
import org.apache.logging.log4j.Logger;
import java.util.HashMap; import java.util.HashMap;
import java.util.Iterator; import java.util.Iterator;
@ -24,9 +22,11 @@ public class ThreadBasedConnectPool<T> {
// 配置 // 配置
private PoolConfig config; private PoolConfig config;
private Logger log = LoggerFactory.getLogger(ThreadBasedConnectPool.class);
public ThreadBasedConnectPool(PoolConfig config) { public ThreadBasedConnectPool(PoolConfig config) {
this.config = config; this.config = config;
Logger log = LogFactory.getLogger();
threadPool.scheduleAtFixedRate(new Runnable() { threadPool.scheduleAtFixedRate(new Runnable() {
@Override @Override
public void run() { public void run() {

View File

@ -3,12 +3,6 @@ package test;
import com.sunyard.SydApiException; import com.sunyard.SydApiException;
import com.sunyard.proto.Util; import com.sunyard.proto.Util;
import com.sunyard.sge.database.*; 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.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;