整理代码
This commit is contained in:
parent
b32d2d7c40
commit
ce43b10cc6
2
pom.xml
2
pom.xml
@ -28,7 +28,7 @@
|
||||
<dependency>
|
||||
<groupId>com.sunyard</groupId>
|
||||
<artifactId>sydapi4j</artifactId>
|
||||
<version>1.0.20220805</version>
|
||||
<version>1.13.20220908</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
|
||||
@ -29,7 +29,7 @@ public interface SydApi {
|
||||
throw new IllegalArgumentException("地址不能为空且等级范围为0到3");
|
||||
}
|
||||
Logger logger = LogFactory.createLogger(pcLogPath, iLogLevel);
|
||||
SydApi4j.setLogger(logger);
|
||||
// SydApi4j.setLogger(logger);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -6,13 +6,18 @@ import com.sunyard.sge.pool.CommWorker;
|
||||
import racal.sunyard.main.SydApi4j;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.Callable;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
import java.util.concurrent.FutureTask;
|
||||
|
||||
public class SydApi4Database extends SydApi4Function {
|
||||
|
||||
/**
|
||||
* 主要用于短连接
|
||||
*/
|
||||
public class SydApi4Database extends SydApiShortLink {
|
||||
private static final int BATCH_SIZE = 7680;
|
||||
// 长连接的所有处理
|
||||
private static final CommWorker longLinkWorks = new CommWorker();
|
||||
|
||||
public SydApi4Database() {
|
||||
@ -24,10 +29,6 @@ public class SydApi4Database extends SydApi4Function {
|
||||
}
|
||||
|
||||
|
||||
private List<byte[]> super_SYD_SM4_BatchData(int[] iKeyIndex, List<byte[]> pcData, int iFlag) {
|
||||
return super.SYD_SM4_BatchData(iKeyIndex, pcData, iFlag);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<byte[]> SYD_SM4_BatchData(int[] iKeyIndex, List<byte[]> pcData, int iFlag) {
|
||||
// 将数据进行分组,防止超长。
|
||||
@ -38,45 +39,42 @@ public class SydApi4Database extends SydApi4Function {
|
||||
List<byte[]> curDataGroup = new ArrayList<>();
|
||||
List<Integer> curKeyGroup = new ArrayList<>();
|
||||
|
||||
for (int i = 0 ; i < pcData.size(); i++ ) {
|
||||
byte[] data = pcData.get( i );
|
||||
for (int i = 0; i < pcData.size(); i++) {
|
||||
byte[] data = pcData.get(i);
|
||||
if (null == data) {
|
||||
data = new byte[0];
|
||||
}
|
||||
if (
|
||||
curDataGroup.size() <= 9 // 分组小于等于 9 个
|
||||
&& (totalLen + data.length < BATCH_SIZE) // 总大小小于 BATCH_SIZE
|
||||
) {
|
||||
curDataGroup.add(data);
|
||||
curKeyGroup.add( iKeyIndex[i] );
|
||||
totalLen += data.length;
|
||||
} else {
|
||||
// 扩展包
|
||||
curDataGroup.size() > 9 // 分组小于等于 9 个
|
||||
|| (totalLen + data.length > BATCH_SIZE) // 总大小小于 BATCH_SIZE
|
||||
) { // 扩展包
|
||||
dataGroups.add(curDataGroup);
|
||||
keyGroups.add( curKeyGroup );
|
||||
keyGroups.add(curKeyGroup);
|
||||
|
||||
curDataGroup = new ArrayList<>();
|
||||
curKeyGroup = new ArrayList<>();
|
||||
|
||||
curDataGroup.add(data);
|
||||
curKeyGroup.add( iKeyIndex[i] );
|
||||
|
||||
totalLen = data.length;
|
||||
}
|
||||
|
||||
|
||||
curDataGroup.add(data);
|
||||
curKeyGroup.add(iKeyIndex[i]);
|
||||
|
||||
totalLen = data.length;
|
||||
|
||||
}
|
||||
|
||||
dataGroups.add( curDataGroup );
|
||||
keyGroups.add( curKeyGroup );
|
||||
dataGroups.add(curDataGroup);
|
||||
keyGroups.add(curKeyGroup);
|
||||
|
||||
// 并发处理
|
||||
List<FutureTask<List<byte[]>>> tasks = new ArrayList<>();
|
||||
for ( int i = 0; i < dataGroups.size(); i++ ) {
|
||||
for (int i = 0; i < dataGroups.size(); i++) {
|
||||
|
||||
int finalI = i;
|
||||
FutureTask<List<byte[]>> task = longLinkWorks.fTask(new Callable<List<byte[]>>() {
|
||||
@Override
|
||||
public List<byte[]> call() throws Exception {
|
||||
return super_SYD_SM4_BatchData(toIntArray(keyGroups.get( finalI )), dataGroups.get( finalI ), iFlag);
|
||||
return SydApi4Database.super.SYD_SM4_BatchData(toIntArray(keyGroups.get(finalI)), dataGroups.get(finalI), iFlag);
|
||||
}
|
||||
});
|
||||
tasks.add(task);
|
||||
@ -90,26 +88,164 @@ public class SydApi4Database extends SydApi4Function {
|
||||
return ret;
|
||||
|
||||
} catch (Exception e) {
|
||||
throw new SydApiException("并行任务执行失败", 0xC101);
|
||||
throw new SydApiException("并行任务执行失败", 0xC101, e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] SYD_SM4Mac_BatchData(int[] iKeyIndex, List<byte[]> pcData) {
|
||||
return super.SYD_SM4Mac_BatchData(iKeyIndex, pcData);
|
||||
// 将数据进行分组,防止超长。
|
||||
List<List<byte[]>> dataGroups = new ArrayList<>();
|
||||
List<List<Integer>> keyGroups = new ArrayList<>();
|
||||
int totalLen = 0;
|
||||
|
||||
List<byte[]> curDataGroup = new ArrayList<>();
|
||||
List<Integer> curKeyGroup = new ArrayList<>();
|
||||
|
||||
for (int i = 0; i < pcData.size(); i++) {
|
||||
byte[] data = pcData.get(i);
|
||||
if (null == data) {
|
||||
data = new byte[0];
|
||||
}
|
||||
if (
|
||||
curDataGroup.size() > 9 // 分组小于等于 9 个
|
||||
|| (totalLen + data.length > BATCH_SIZE) // 总大小小于 BATCH_SIZE
|
||||
) {// 扩展包
|
||||
dataGroups.add(curDataGroup);
|
||||
keyGroups.add(curKeyGroup);
|
||||
|
||||
curDataGroup = new ArrayList<>();
|
||||
curKeyGroup = new ArrayList<>();
|
||||
}
|
||||
|
||||
curDataGroup.add(data);
|
||||
curKeyGroup.add(iKeyIndex[i]);
|
||||
|
||||
totalLen = data.length;
|
||||
}
|
||||
|
||||
dataGroups.add(curDataGroup);
|
||||
keyGroups.add(curKeyGroup);
|
||||
|
||||
// 并发处理
|
||||
List<FutureTask<String[]>> tasks = new ArrayList<>();
|
||||
for (int i = 0; i < dataGroups.size(); i++) {
|
||||
|
||||
int finalI = i;
|
||||
FutureTask<String[]> task = longLinkWorks.fTask(new Callable<String[]>() {
|
||||
@Override
|
||||
public String[] call() throws Exception {
|
||||
return SydApi4Database.super.SYD_SM4Mac_BatchData(toIntArray(keyGroups.get(finalI)), dataGroups.get(finalI));
|
||||
}
|
||||
});
|
||||
tasks.add(task);
|
||||
}
|
||||
|
||||
try {
|
||||
List<String> ret = new ArrayList<>();
|
||||
for (FutureTask<String[]> t : tasks) {
|
||||
String[] macs = t.get();
|
||||
ret.addAll(Arrays.asList(macs));
|
||||
}
|
||||
return ret.toArray(new String[0]);
|
||||
|
||||
} catch (Exception e) {
|
||||
throw new SydApiException("并行任务执行失败", 0xC101, e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean[] SYD_SM4Mac_BatchData(int[] iKeyIndex, List<byte[]> pcData, String[] pcMac) {
|
||||
return super.SYD_SM4Mac_BatchData(iKeyIndex, pcData, pcMac);
|
||||
// 将数据进行分组,防止超长。
|
||||
List<List<byte[]>> dataGroups = new ArrayList<>();
|
||||
List<List<Integer>> keyGroups = new ArrayList<>();
|
||||
List<List<String>> macGroups = new ArrayList<>();
|
||||
int totalLen = 0;
|
||||
|
||||
List<byte[]> curDataGroup = new ArrayList<>();
|
||||
List<Integer> curKeyGroup = new ArrayList<>();
|
||||
List<String> curMacGroup = new ArrayList<>();
|
||||
|
||||
for (int i = 0; i < pcData.size(); i++) {
|
||||
byte[] data = pcData.get(i);
|
||||
if (null == data) {
|
||||
data = new byte[0];
|
||||
}
|
||||
if (
|
||||
curDataGroup.size() > 9 // 分组小于等于 9 个
|
||||
|| (totalLen + data.length > BATCH_SIZE) // 总大小小于 BATCH_SIZE
|
||||
) {
|
||||
// 扩展包
|
||||
dataGroups.add(curDataGroup);
|
||||
keyGroups.add(curKeyGroup);
|
||||
macGroups.add(curMacGroup);
|
||||
|
||||
curDataGroup = new ArrayList<>();
|
||||
curKeyGroup = new ArrayList<>();
|
||||
curMacGroup = new ArrayList<>();
|
||||
}
|
||||
|
||||
|
||||
curDataGroup.add(data);
|
||||
curKeyGroup.add(iKeyIndex[i]);
|
||||
curMacGroup.add(pcMac[i]);
|
||||
totalLen = data.length;
|
||||
}
|
||||
|
||||
dataGroups.add(curDataGroup);
|
||||
keyGroups.add(curKeyGroup);
|
||||
macGroups.add(curMacGroup);
|
||||
|
||||
// 并发处理
|
||||
List<FutureTask<boolean[]>> tasks = new ArrayList<>();
|
||||
for (int i = 0; i < dataGroups.size(); i++) {
|
||||
|
||||
int finalI = i;
|
||||
FutureTask<boolean[]> task = longLinkWorks.fTask(new Callable<boolean[]>() {
|
||||
@Override
|
||||
public boolean[] call() throws Exception {
|
||||
return SydApi4Database.super.SYD_SM4Mac_BatchData(
|
||||
toIntArray(keyGroups.get(finalI)),
|
||||
dataGroups.get(finalI),
|
||||
macGroups.get(finalI).toArray(new String[0])
|
||||
);
|
||||
}
|
||||
});
|
||||
tasks.add(task);
|
||||
}
|
||||
|
||||
try {
|
||||
List<Boolean> ret = new ArrayList<>();
|
||||
for (FutureTask<boolean[]> t : tasks) {
|
||||
boolean[] rets = t.get();
|
||||
for (boolean r : rets) {
|
||||
ret.add(r);
|
||||
}
|
||||
}
|
||||
return toBoolArray(ret);
|
||||
|
||||
} catch (Exception e) {
|
||||
throw new SydApiException("并行任务执行失败", 0xC101, e);
|
||||
}
|
||||
}
|
||||
|
||||
private static int[] toIntArray(List<Integer> list){
|
||||
if ( null == list || 0 == list.size() ) {
|
||||
private static int[] toIntArray(List<Integer> list) {
|
||||
if (null == list || 0 == list.size()) {
|
||||
return new int[0];
|
||||
}
|
||||
int[] ia = new int[ list.size() ];
|
||||
for ( int i = 0 ; i < ia.length; i ++ ) {
|
||||
int[] ia = new int[list.size()];
|
||||
for (int i = 0; i < ia.length; i++) {
|
||||
ia[i] = list.get(i);
|
||||
}
|
||||
return ia;
|
||||
}
|
||||
|
||||
private static boolean[] toBoolArray(List<Boolean> list) {
|
||||
if (null == list || 0 == list.size()) {
|
||||
return new boolean[0];
|
||||
}
|
||||
boolean[] ia = new boolean[list.size()];
|
||||
for (int i = 0; i < ia.length; i++) {
|
||||
ia[i] = list.get(i);
|
||||
}
|
||||
return ia;
|
||||
|
||||
@ -17,10 +17,6 @@ import java.util.List;
|
||||
*/
|
||||
public class SydApi4Function implements SydApi {
|
||||
|
||||
static {
|
||||
SydApi.SYD_SetLogConfig("./logs/", 0);
|
||||
}
|
||||
|
||||
private SydApi4j[] hsms = null;
|
||||
private HsmLinkInfo[] linkInfos = null;
|
||||
private ObjectInPool oip = null;
|
||||
|
||||
253
src/main/java/com/sunyard/sge/database/SydApiShortLink.java
Normal file
253
src/main/java/com/sunyard/sge/database/SydApiShortLink.java
Normal file
@ -0,0 +1,253 @@
|
||||
package com.sunyard.sge.database;
|
||||
|
||||
import com.sunyard.SydApiException;
|
||||
import com.sunyard.sge.database.pool.HsmLinkInfo;
|
||||
import com.sunyard.sge.pool.CommWorker;
|
||||
import racal.sunyard.main.SydApi4j;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.Callable;
|
||||
import java.util.concurrent.FutureTask;
|
||||
|
||||
|
||||
/**
|
||||
* 主要用于短连接
|
||||
*/
|
||||
public class SydApiShortLink extends SydApi4Function {
|
||||
private static final int BATCH_SIZE = 7680;
|
||||
// 长连接的所有处理
|
||||
private static final CommWorker longLinkWorks = new CommWorker();
|
||||
|
||||
public SydApiShortLink() {
|
||||
super();
|
||||
}
|
||||
|
||||
public SydApiShortLink(SydApi4j[] hsms, HsmLinkInfo[] linkInfos) {
|
||||
super(hsms, linkInfos);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public List<byte[]> SYD_SM4_BatchData(int[] iKeyIndex, List<byte[]> pcData, int iFlag) {
|
||||
// 将数据进行分组,防止超长。
|
||||
List<List<byte[]>> dataGroups = new ArrayList<>();
|
||||
List<List<Integer>> keyGroups = new ArrayList<>();
|
||||
int totalLen = 0;
|
||||
|
||||
List<byte[]> curDataGroup = new ArrayList<>();
|
||||
List<Integer> curKeyGroup = new ArrayList<>();
|
||||
|
||||
for (int i = 0; i < pcData.size(); i++) {
|
||||
byte[] data = pcData.get(i);
|
||||
if (null == data) {
|
||||
data = new byte[0];
|
||||
}
|
||||
if (
|
||||
curDataGroup.size() > 9 // 分组小于等于 9 个
|
||||
|| (totalLen + data.length > BATCH_SIZE) // 总大小小于 BATCH_SIZE
|
||||
) { // 扩展包
|
||||
dataGroups.add(curDataGroup);
|
||||
keyGroups.add(curKeyGroup);
|
||||
|
||||
curDataGroup = new ArrayList<>();
|
||||
curKeyGroup = new ArrayList<>();
|
||||
}
|
||||
|
||||
|
||||
curDataGroup.add(data);
|
||||
curKeyGroup.add(iKeyIndex[i]);
|
||||
|
||||
totalLen = data.length;
|
||||
|
||||
}
|
||||
|
||||
dataGroups.add(curDataGroup);
|
||||
keyGroups.add(curKeyGroup);
|
||||
|
||||
// 并发处理
|
||||
List<FutureTask<List<byte[]>>> tasks = new ArrayList<>();
|
||||
for (int i = 0; i < dataGroups.size(); i++) {
|
||||
|
||||
int finalI = i;
|
||||
FutureTask<List<byte[]>> task = longLinkWorks.fTask(new Callable<List<byte[]>>() {
|
||||
@Override
|
||||
public List<byte[]> call() throws Exception {
|
||||
return SydApiShortLink.super.SYD_SM4_BatchData(toIntArray(keyGroups.get(finalI)), dataGroups.get(finalI), iFlag);
|
||||
}
|
||||
});
|
||||
tasks.add(task);
|
||||
}
|
||||
|
||||
try {
|
||||
List<byte[]> ret = new ArrayList<>();
|
||||
for (FutureTask<List<byte[]>> t : tasks) {
|
||||
ret.addAll(t.get());
|
||||
}
|
||||
return ret;
|
||||
|
||||
} catch (Exception e) {
|
||||
throw new SydApiException("并行任务执行失败", 0xC101, e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] SYD_SM4Mac_BatchData(int[] iKeyIndex, List<byte[]> pcData) {
|
||||
// 将数据进行分组,防止超长。
|
||||
List<List<byte[]>> dataGroups = new ArrayList<>();
|
||||
List<List<Integer>> keyGroups = new ArrayList<>();
|
||||
int totalLen = 0;
|
||||
|
||||
List<byte[]> curDataGroup = new ArrayList<>();
|
||||
List<Integer> curKeyGroup = new ArrayList<>();
|
||||
|
||||
for (int i = 0; i < pcData.size(); i++) {
|
||||
byte[] data = pcData.get(i);
|
||||
if (null == data) {
|
||||
data = new byte[0];
|
||||
}
|
||||
if (
|
||||
curDataGroup.size() > 9 // 分组小于等于 9 个
|
||||
|| (totalLen + data.length > BATCH_SIZE) // 总大小小于 BATCH_SIZE
|
||||
) {// 扩展包
|
||||
dataGroups.add(curDataGroup);
|
||||
keyGroups.add(curKeyGroup);
|
||||
|
||||
curDataGroup = new ArrayList<>();
|
||||
curKeyGroup = new ArrayList<>();
|
||||
}
|
||||
|
||||
curDataGroup.add(data);
|
||||
curKeyGroup.add(iKeyIndex[i]);
|
||||
|
||||
totalLen = data.length;
|
||||
}
|
||||
|
||||
dataGroups.add(curDataGroup);
|
||||
keyGroups.add(curKeyGroup);
|
||||
|
||||
// 并发处理
|
||||
List<FutureTask<String[]>> tasks = new ArrayList<>();
|
||||
for (int i = 0; i < dataGroups.size(); i++) {
|
||||
|
||||
int finalI = i;
|
||||
FutureTask<String[]> task = longLinkWorks.fTask(new Callable<String[]>() {
|
||||
@Override
|
||||
public String[] call() throws Exception {
|
||||
return SydApiShortLink.super.SYD_SM4Mac_BatchData(toIntArray(keyGroups.get(finalI)), dataGroups.get(finalI));
|
||||
}
|
||||
});
|
||||
tasks.add(task);
|
||||
}
|
||||
|
||||
try {
|
||||
List<String> ret = new ArrayList<>();
|
||||
for (FutureTask<String[]> t : tasks) {
|
||||
String[] macs = t.get();
|
||||
ret.addAll(Arrays.asList(macs));
|
||||
}
|
||||
return ret.toArray(new String[0]);
|
||||
|
||||
} catch (Exception e) {
|
||||
throw new SydApiException("并行任务执行失败", 0xC101, e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean[] SYD_SM4Mac_BatchData(int[] iKeyIndex, List<byte[]> pcData, String[] pcMac) {
|
||||
// 将数据进行分组,防止超长。
|
||||
List<List<byte[]>> dataGroups = new ArrayList<>();
|
||||
List<List<Integer>> keyGroups = new ArrayList<>();
|
||||
List<List<String>> macGroups = new ArrayList<>();
|
||||
int totalLen = 0;
|
||||
|
||||
List<byte[]> curDataGroup = new ArrayList<>();
|
||||
List<Integer> curKeyGroup = new ArrayList<>();
|
||||
List<String> curMacGroup = new ArrayList<>();
|
||||
|
||||
for (int i = 0; i < pcData.size(); i++) {
|
||||
byte[] data = pcData.get(i);
|
||||
if (null == data) {
|
||||
data = new byte[0];
|
||||
}
|
||||
if (
|
||||
curDataGroup.size() > 9 // 分组小于等于 9 个
|
||||
|| (totalLen + data.length > BATCH_SIZE) // 总大小小于 BATCH_SIZE
|
||||
) {
|
||||
// 扩展包
|
||||
dataGroups.add(curDataGroup);
|
||||
keyGroups.add(curKeyGroup);
|
||||
macGroups.add(curMacGroup);
|
||||
|
||||
curDataGroup = new ArrayList<>();
|
||||
curKeyGroup = new ArrayList<>();
|
||||
curMacGroup = new ArrayList<>();
|
||||
}
|
||||
|
||||
|
||||
curDataGroup.add(data);
|
||||
curKeyGroup.add(iKeyIndex[i]);
|
||||
curMacGroup.add(pcMac[i]);
|
||||
totalLen = data.length;
|
||||
}
|
||||
|
||||
dataGroups.add(curDataGroup);
|
||||
keyGroups.add(curKeyGroup);
|
||||
macGroups.add(curMacGroup);
|
||||
|
||||
// 并发处理
|
||||
List<FutureTask<boolean[]>> tasks = new ArrayList<>();
|
||||
for (int i = 0; i < dataGroups.size(); i++) {
|
||||
|
||||
int finalI = i;
|
||||
FutureTask<boolean[]> task = longLinkWorks.fTask(new Callable<boolean[]>() {
|
||||
@Override
|
||||
public boolean[] call() throws Exception {
|
||||
return SydApiShortLink.super.SYD_SM4Mac_BatchData(
|
||||
toIntArray(keyGroups.get(finalI)),
|
||||
dataGroups.get(finalI),
|
||||
macGroups.get(finalI).toArray(new String[0])
|
||||
);
|
||||
}
|
||||
});
|
||||
tasks.add(task);
|
||||
}
|
||||
|
||||
try {
|
||||
List<Boolean> ret = new ArrayList<>();
|
||||
for (FutureTask<boolean[]> t : tasks) {
|
||||
boolean[] rets = t.get();
|
||||
for (boolean r : rets) {
|
||||
ret.add(r);
|
||||
}
|
||||
}
|
||||
return toBoolArray(ret);
|
||||
|
||||
} catch (Exception e) {
|
||||
throw new SydApiException("并行任务执行失败", 0xC101, e);
|
||||
}
|
||||
}
|
||||
|
||||
private static int[] toIntArray(List<Integer> list) {
|
||||
if (null == list || 0 == list.size()) {
|
||||
return new int[0];
|
||||
}
|
||||
int[] ia = new int[list.size()];
|
||||
for (int i = 0; i < ia.length; i++) {
|
||||
ia[i] = list.get(i);
|
||||
}
|
||||
return ia;
|
||||
}
|
||||
|
||||
private static boolean[] toBoolArray(List<Boolean> list) {
|
||||
if (null == list || 0 == list.size()) {
|
||||
return new boolean[0];
|
||||
}
|
||||
boolean[] ia = new boolean[list.size()];
|
||||
for (int i = 0; i < ia.length; i++) {
|
||||
ia[i] = list.get(i);
|
||||
}
|
||||
return ia;
|
||||
}
|
||||
}
|
||||
105
src/main/java/com/sunyard/sge/database/SydApiWrap.java
Normal file
105
src/main/java/com/sunyard/sge/database/SydApiWrap.java
Normal file
@ -0,0 +1,105 @@
|
||||
package com.sunyard.sge.database;
|
||||
|
||||
import com.sunyard.sge.database.pool.Workers;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.concurrent.Callable;
|
||||
import java.util.concurrent.FutureTask;
|
||||
|
||||
/**
|
||||
* 长连接的真正执行过程转发到长连接线程池中执行。
|
||||
*/
|
||||
public class SydApiWrap implements SydApi{
|
||||
|
||||
private SydApiBuilder builder;
|
||||
|
||||
public SydApiWrap(SydApiBuilder builder) {
|
||||
this.builder = builder;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SydApi SYD_Short_Connect_Ex(String[] pcIpList, int[] iPortList, int iConnectTimeOut, int iDealTimeOut) {
|
||||
throw new UnsupportedOperationException("此对象为长连接专用");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void SYD_Disconnect_Ex() {
|
||||
// pass
|
||||
}
|
||||
|
||||
@Override
|
||||
public String SYD_SM3_Hash_ShortData(byte[] pcData) {
|
||||
FutureTask<String> task = Workers.getLongLinkWorks().fTask(new Callable<String>() {
|
||||
@Override
|
||||
public String call() throws Exception {
|
||||
return builder.build().SYD_SM3_Hash_ShortData(pcData);
|
||||
}
|
||||
});
|
||||
return task.get();
|
||||
}
|
||||
|
||||
@Override
|
||||
public LongDataReturn<String, String> SYD_SM3_Hash_LongData(byte[] pcData, int iPkgNum, String pcProcData) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public byte[] SYD_SM4_ShortData(int iKeyIndex, byte[] pcData, int iFlag) {
|
||||
return new byte[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<byte[]> SYD_SM4_BatchData(int[] iKeyIndex, List<byte[]> pcData, int iFlag) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public byte[] SYD_SM4_LongData(int iKeyIndex, byte[] pcData, int iPkgNum, int iFlag) {
|
||||
return new byte[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] SYD_SM4Mac_BatchData(int[] iKeyIndex, List<byte[]> pcData) {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean[] SYD_SM4Mac_BatchData(int[] iKeyIndex, List<byte[]> pcData, String[] pcMac) {
|
||||
return new boolean[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public LongDataReturn<String, String> SYD_SM4Mac_LongData(int iKeyIndex, byte[] pcData, int iPkgNum, String pcProcData) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public LongDataReturn<String, Boolean> SYD_SM4Mac_LongData(int iKeyIndex, byte[] pcData, int iPkgNum, String pcProcData, String pcMac) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String SYD_SM4Mac_ShortData(int iKeyIndex, byte[] pcData) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean SYD_SM4Mac_ShortData(int iKeyIndex, byte[] pcData, String pcMac) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SydApiSM4 initSM4(int iKeyIndex, int ende) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SydApiSM3 initSM3() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SydSM4Mac initSM4Mac(int iKeyIndex) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
19
src/main/java/com/sunyard/sge/database/pool/Workers.java
Normal file
19
src/main/java/com/sunyard/sge/database/pool/Workers.java
Normal file
@ -0,0 +1,19 @@
|
||||
package com.sunyard.sge.database.pool;
|
||||
|
||||
import com.sunyard.sge.pool.CommWorker;
|
||||
|
||||
public class Workers {
|
||||
// 长连接的所有处理
|
||||
private static final CommWorker longLinkWorks = new CommWorker();
|
||||
|
||||
// 短链接 批量处理
|
||||
private static final CommWorker shortLinkWorks = new CommWorker();
|
||||
|
||||
public static CommWorker getLongLinkWorks() {
|
||||
return longLinkWorks;
|
||||
}
|
||||
|
||||
public static CommWorker getShortLinkWorks() {
|
||||
return shortLinkWorks;
|
||||
}
|
||||
}
|
||||
51
src/test/java/sample/ConnectThread.java
Normal file
51
src/test/java/sample/ConnectThread.java
Normal file
@ -0,0 +1,51 @@
|
||||
package sample;
|
||||
|
||||
import com.sunyard.SydApi;
|
||||
import racal.sunyard.main.SydApi4j;
|
||||
import racal.sunyard.main.SydApiBuilder;
|
||||
|
||||
public class ConnectThread extends Thread {
|
||||
|
||||
public SydApi getApi() {
|
||||
SydApiBuilder builder = new SydApiBuilder().setIp("172.16.18.59");
|
||||
SydApi4j papi = (SydApi4j) builder.build();
|
||||
// SydApi4j papi = (SydApi4j) new SydApi4j().connect("172.16.18.59" , 8889, null,1000);
|
||||
return papi;
|
||||
}
|
||||
public static void main(String[] args) {
|
||||
|
||||
// logger.info("测试开始");
|
||||
int n = Runtime.getRuntime().availableProcessors();
|
||||
int max = 1001;
|
||||
Thread[] tList = new Thread[max];
|
||||
for (int i = 0; i < max; i++) {
|
||||
Thread thread = new Thread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
System.out.println(Thread.currentThread().getName() + "已运行");
|
||||
ConnectThread stable = new ConnectThread();
|
||||
SydApi api = stable.getApi();
|
||||
try {
|
||||
// SydApi api = stable.getApi();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
tList[i] = thread;
|
||||
}
|
||||
for (Thread t : tList) {
|
||||
t.start();
|
||||
}
|
||||
for (Thread t : tList) {
|
||||
try {
|
||||
t.join();
|
||||
} catch (InterruptedException e3) {
|
||||
e3.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,22 +1,60 @@
|
||||
package test;
|
||||
|
||||
import com.sunyard.proto.Util;
|
||||
import com.sunyard.sge.database.*;
|
||||
import org.checkerframework.checker.units.qual.A;
|
||||
import com.sunyard.sge.database.Consts;
|
||||
import com.sunyard.sge.database.SydApi;
|
||||
import com.sunyard.sge.database.SydApiBuilder;
|
||||
import org.junit.After;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.nio.ByteBuffer;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
public class BatchDataTest {
|
||||
|
||||
private SydApi api;
|
||||
private static class RandomTestData {
|
||||
private int size;
|
||||
private int[] keyIdx;
|
||||
private List<byte[]> data;
|
||||
|
||||
public int[] getKeyIdx() {
|
||||
return keyIdx;
|
||||
}
|
||||
|
||||
public List<byte[]> getData() {
|
||||
return data;
|
||||
}
|
||||
|
||||
public int getSize() {
|
||||
return size;
|
||||
}
|
||||
|
||||
public RandomTestData(int lucky) {
|
||||
this.size = lucky;
|
||||
this.keyIdx = new int[lucky];
|
||||
this.data = new ArrayList<>();
|
||||
for ( int i = 0 ; i < lucky; i++ ) {
|
||||
byte[] data = new byte[ new Random().nextInt(1024) ];
|
||||
new Random().nextBytes( data );
|
||||
this.data.add( data );
|
||||
}
|
||||
}
|
||||
public RandomTestData() {
|
||||
int lucky = new Random().nextInt(100);
|
||||
this.size = lucky;
|
||||
this.keyIdx = new int[lucky];
|
||||
this.data = new ArrayList<>();
|
||||
for ( int i = 0 ; i < lucky; i++ ) {
|
||||
byte[] data = new byte[ new Random().nextInt(1024) ];
|
||||
new Random().nextBytes( data );
|
||||
this.data.add( data );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Before
|
||||
public void init() {
|
||||
@ -33,41 +71,122 @@ public class BatchDataTest {
|
||||
}
|
||||
|
||||
@After
|
||||
public void end(){
|
||||
if ( null != api ) {
|
||||
public void end() {
|
||||
if (null != api) {
|
||||
api.SYD_Disconnect_Ex();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void batchSM4Case1(){
|
||||
public void batchSM4Case1() {
|
||||
// 密钥索引
|
||||
int[] keyIdx = new int[]{ 0, 1, 2 , 0, 1, 2, 0, 1, 2, 0, 1, 2}; // 12 组
|
||||
int[] keyIdx = new int[]{0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2}; // 12 组
|
||||
// 测试数据
|
||||
List<byte[]> data = new ArrayList<>();
|
||||
data.add( new byte[8] );
|
||||
data.add( new byte[16] );
|
||||
data.add( new byte[1024] );
|
||||
data.add( new byte[8] );
|
||||
data.add( new byte[16] );
|
||||
data.add( new byte[1024] );
|
||||
data.add( new byte[8] );
|
||||
data.add( new byte[16] );
|
||||
data.add( new byte[1024] );
|
||||
data.add( new byte[8] );
|
||||
data.add( new byte[16] );
|
||||
data.add( new byte[1024] );
|
||||
data.add(new byte[8]);
|
||||
data.add(new byte[16]);
|
||||
data.add(new byte[1024]);
|
||||
data.add(new byte[8]);
|
||||
data.add(new byte[16]);
|
||||
data.add(new byte[1024]);
|
||||
data.add(new byte[8]);
|
||||
data.add(new byte[16]);
|
||||
data.add(new byte[1024]);
|
||||
data.add(new byte[8]);
|
||||
data.add(new byte[16]);
|
||||
data.add(new byte[1024]);
|
||||
|
||||
List<byte[]> encData = api.SYD_SM4_BatchData( keyIdx , data, Consts.ECB_ENC );
|
||||
List<byte[]> orgData = api.SYD_SM4_BatchData( keyIdx , encData, Consts.ECB_DEC );
|
||||
List<byte[]> encData = api.SYD_SM4_BatchData(keyIdx, data, Consts.ECB_ENC);
|
||||
List<byte[]> orgData = api.SYD_SM4_BatchData(keyIdx, encData, Consts.ECB_DEC);
|
||||
|
||||
for ( int i = 0 ; i < data.size() ; i++ ) {
|
||||
System.out.println( "HEX=" + Util.bytes2HexString( encData.get( i ) ) );
|
||||
Assert.assertArrayEquals( orgData.get( i ), data.get( i ) );
|
||||
for (int i = 0; i < data.size(); i++) {
|
||||
System.out.println("HEX=" + Util.bytes2HexString(encData.get(i)));
|
||||
Assert.assertArrayEquals(orgData.get(i), data.get(i));
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void batchSM4Case2() {
|
||||
// 测试数据
|
||||
RandomTestData data = new RandomTestData();
|
||||
|
||||
List<byte[]> encData = api.SYD_SM4_BatchData(data.getKeyIdx(), data.getData(), Consts.ECB_ENC);
|
||||
List<byte[]> orgData = api.SYD_SM4_BatchData(data.getKeyIdx(), encData, Consts.ECB_DEC);
|
||||
|
||||
for (int i = 0; i < data.getSize(); i++) {
|
||||
System.out.println("HEX=" + Util.bytes2HexString(encData.get(i)));
|
||||
Assert.assertArrayEquals(orgData.get(i), data.getData().get(i));
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void batchSM4CaseZero() {
|
||||
// 测试数据
|
||||
RandomTestData data = new RandomTestData(0);
|
||||
|
||||
List<byte[]> encData = api.SYD_SM4_BatchData(data.getKeyIdx(), data.getData(), Consts.ECB_ENC);
|
||||
List<byte[]> orgData = api.SYD_SM4_BatchData(data.getKeyIdx(), encData, Consts.ECB_DEC);
|
||||
|
||||
for (int i = 0; i < data.getSize(); i++) {
|
||||
System.out.println("HEX=" + Util.bytes2HexString(encData.get(i)));
|
||||
Assert.assertArrayEquals(orgData.get(i), data.getData().get(i));
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void batchMACDataCase1() {
|
||||
// 密钥索引
|
||||
int[] keyIdx = new int[]{0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2}; // 12 组
|
||||
// 测试数据
|
||||
List<byte[]> data = new ArrayList<>();
|
||||
data.add(new byte[8]);
|
||||
data.add(new byte[16]);
|
||||
data.add(new byte[1024]);
|
||||
data.add(new byte[8]);
|
||||
data.add(new byte[16]);
|
||||
data.add(new byte[1024]);
|
||||
data.add(new byte[8]);
|
||||
data.add(new byte[16]);
|
||||
data.add(new byte[1024]);
|
||||
data.add(new byte[8]);
|
||||
data.add(new byte[16]);
|
||||
data.add(new byte[1024]);
|
||||
|
||||
String[] macs = api.SYD_SM4Mac_BatchData(keyIdx, data);
|
||||
boolean[] checks = api.SYD_SM4Mac_BatchData(keyIdx, data, macs);
|
||||
|
||||
for (int i = 0; i < data.size(); i++) {
|
||||
System.out.println("MAC[" + i + "]=" + macs[i]);
|
||||
Assert.assertTrue(checks[i]);
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void batchMACData() {
|
||||
// 测试数据
|
||||
RandomTestData data = new RandomTestData();
|
||||
|
||||
String[] macs = api.SYD_SM4Mac_BatchData(data.getKeyIdx(), data.getData());
|
||||
boolean[] checks = api.SYD_SM4Mac_BatchData(data.getKeyIdx(), data.getData(), macs);
|
||||
|
||||
for (int i = 0; i < data.getSize(); i++) {
|
||||
System.out.println("MAC[" + i + "]=" + macs[i]);
|
||||
Assert.assertTrue(checks[i]);
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void batchMACDataZero() {
|
||||
// 测试数据
|
||||
RandomTestData data = new RandomTestData(0);
|
||||
|
||||
String[] macs = api.SYD_SM4Mac_BatchData(data.getKeyIdx(), data.getData());
|
||||
boolean[] checks = api.SYD_SM4Mac_BatchData(data.getKeyIdx(), data.getData(), macs);
|
||||
|
||||
for (int i = 0; i < data.getSize(); i++) {
|
||||
System.out.println("MAC[" + i + "]=" + macs[i]);
|
||||
Assert.assertTrue(checks[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1,108 +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_1_8">
|
||||
<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/test/java" isTestSource="true" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/target" />
|
||||
</content>
|
||||
<orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.11" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.sunyard:sydapi4j:1.0.20220805" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.sunyard:proto:1.0-20220804" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.codehaus.groovy:groovy-all:2.4.15" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.10" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.17.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-core:2.17.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.owasp:dependency-check-maven:6.1.5" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.owasp:dependency-check-core:6.1.5" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.anarres.jdiagnostics:jdiagnostics:1.0.6" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.whitesource:pecoff4j:0.0.2.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.commons:commons-jcs-core:2.2.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: commons-logging:commons-logging:1.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.github.package-url:packageurl-java:1.2.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: us.springett:cpe-parser:2.0.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.vdurmont:semver4j:3.1.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.commons:commons-compress:1.20" level="project" />
|
||||
<orderEntry type="library" name="Maven: commons-io:commons-io:2.8.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.12.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.commons:commons-text:1.9" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.lucene:lucene-core:8.8.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.lucene:lucene-analyzers-common:8.8.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.lucene:lucene-queryparser:8.8.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.lucene:lucene-queries:8.8.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.lucene:lucene-sandbox:8.8.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.velocity:velocity-engine-core:2.3" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.h2database:h2:1.4.199" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.glassfish:javax.json:1.1.4" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.jsoup:jsoup:1.13.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.12.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.12.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.12.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-afterburner:2.12.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.h3xstream.retirejs:retirejs-core:3.0.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.json:json:20190722" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.esotericsoftware:minlog:1.3.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.github.spullara.mustache.java:compiler:0.9.6" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.sonatype.ossindex:ossindex-service-client:1.7.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.sonatype.ossindex:ossindex-service-api:1.7.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: javax.ws.rs:javax.ws.rs-api:2.0.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.sonatype.goodies:package-url-java:1.1.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: javax.inject:javax.inject:1" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.slf4j:jcl-over-slf4j:1.7.28" level="project" />
|
||||
<orderEntry type="library" name="Maven: joda-time:joda-time:2.10.4" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.google.code.gson:gson:2.8.5" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.google.guava:guava:30.1.1-jre" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.google.guava:failureaccess:1.0.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.google.code.findbugs:jsr305:3.0.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.checkerframework:checker-qual:3.8.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.google.errorprone:error_prone_annotations:2.5.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.google.j2objc:j2objc-annotations:1.3" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.moandjiezana.toml:toml4j:0.7.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.hankcs:aho-corasick-double-array-trie:1.2.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: commons-validator:commons-validator:1.7" level="project" />
|
||||
<orderEntry type="library" name="Maven: commons-digester:commons-digester:2.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.9.4" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.owasp:dependency-check-utils:6.1.5" level="project" />
|
||||
<orderEntry type="library" name="Maven: commons-codec:commons-codec:1.15" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.maven.shared:file-management:3.0.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.maven:maven-plugin-api:3.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.maven:maven-model:3.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.sonatype.sisu:sisu-inject-plexus:1.4.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.sonatype.sisu:sisu-inject-bean:1.4.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.sonatype.sisu:sisu-guice:noaop:2.1.7" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.maven.shared:maven-shared-io:3.0.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.maven:maven-compat:3.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.maven.wagon:wagon-provider-api:2.10" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.maven.shared:maven-shared-utils:3.0.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.codehaus.plexus:plexus-utils:3.3.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.maven.reporting:maven-reporting-api:3.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.maven.doxia:doxia-sink-api:1.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.sonatype.plexus:plexus-sec-dispatcher:1.4" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.sonatype.plexus:plexus-cipher:1.4" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.maven.shared:maven-dependency-tree:3.0.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.codehaus.plexus:plexus-component-annotations:1.6" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.eclipse.aether:aether-util:0.9.0.M2" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.maven.shared:maven-artifact-transfer:0.13.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.maven:maven-core:3.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.maven:maven-settings:3.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.maven:maven-settings-builder:3.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.maven:maven-repository-metadata:3.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.maven:maven-model-builder:3.0" level="project" />
|
||||
<orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.maven:maven-aether-provider:3.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.sonatype.aether:aether-impl:1.7" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.sonatype.aether:aether-spi:1.7" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.sonatype.aether:aether-api:1.7" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.sonatype.aether:aether-util:1.7" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.codehaus.plexus:plexus-interpolation:1.14" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.codehaus.plexus:plexus-classworlds:2.2.3" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.maven:maven-artifact:3.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.maven.shared:maven-common-artifact-filters:3.1.0" level="project" />
|
||||
</component>
|
||||
</module>
|
||||
Loading…
Reference in New Issue
Block a user