mirror of
https://gitee.com/BDWare/cp.git
synced 2025-01-09 17:34:08 +00:00
support doip cluster mode
This commit is contained in:
parent
723c9c7a06
commit
fd1690c97b
@ -6,7 +6,7 @@ plugins {
|
||||
}
|
||||
|
||||
group = "org.bdware.sc"
|
||||
version = "1.8.5"
|
||||
version = "1.8.7"
|
||||
tasks.withType(JavaCompile) {
|
||||
// options.compilerArgs << '-Xlint:none'
|
||||
// options.compilerArgs << '-Xlint:deprecation' << "-Werror"
|
||||
@ -48,8 +48,8 @@ dependencies {
|
||||
implementation 'com.sun.mail:javax.mail:1.6.2'
|
||||
implementation 'com.squareup.okhttp3:okhttp:4.9.1'
|
||||
implementation 'org.bdware.bdcontract:sdk-java:1.0.2'
|
||||
implementation 'org.bdware.doip:doip-audit-tool:1.2.4'
|
||||
implementation 'org.bdware.doip:doip-sdk:1.4.0'
|
||||
implementation 'org.bdware.doip:doip-audit-tool:1.2.6'
|
||||
implementation 'org.bdware.doip:doip-sdk:1.4.2'
|
||||
implementation fileTree(dir: 'lib', include: '*.jar')
|
||||
testImplementation 'junit:junit:4.13.2'
|
||||
}
|
||||
@ -68,7 +68,7 @@ jar {
|
||||
// while develop at local use "false"
|
||||
configurations.runtimeClasspath.filter {
|
||||
it.getAbsolutePath().contains("/lib/")
|
||||
//false
|
||||
// false
|
||||
}.collect {
|
||||
it.isDirectory() ? it : zipTree(it)
|
||||
}
|
||||
|
@ -63,7 +63,7 @@ public class DebugMain {
|
||||
= new ResultCallback() {
|
||||
@Override
|
||||
public void onResult(String str) {
|
||||
if(str.contains("Error")) {
|
||||
if (str.contains("Error")) {
|
||||
LOGGER.error("Some error happens: " + str);
|
||||
}
|
||||
LOGGER.info("[PrintCB] " + str);
|
||||
@ -103,7 +103,7 @@ public class DebugMain {
|
||||
config.cPort = jsonObject.get("cPort").getAsInt();
|
||||
config.port = jsonObject.get("port").getAsInt();
|
||||
JsonObject ownerAndScript = new JsonObject();
|
||||
String arg = "abc&owner=" + config.publicKey + "&script=" + config.ypkPath;
|
||||
String arg = "abc&owner=" + config.publicKey + "&script=" + config.ypkPath + "&doipStartPort=" + config.doipStartPort;
|
||||
url = String.format(urlFormat, config.agentAddress, "allocateKeyPair", arg);
|
||||
resp = HttpUtil.httpGet(url);
|
||||
LOGGER.info(url);
|
||||
@ -133,6 +133,7 @@ public class DebugMain {
|
||||
String killBeforeStart;
|
||||
String ypkPath;
|
||||
String cpHost;
|
||||
int doipStartPort;
|
||||
//AutoAppend
|
||||
int port;
|
||||
String cmi;
|
||||
|
@ -728,7 +728,7 @@ public class ContractProcess {
|
||||
startPort = arg.getAsJsonObject().get("doipStartPort").getAsInt();
|
||||
}
|
||||
LOGGER.info("Fetch the onStartingDoipServerRes from router successfully, the result is " + onStartingDoipServerRes);
|
||||
int doipListenPort = DoipClusterServer.startDoipServer(startPort);
|
||||
int doipListenPort = DoipClusterServer.startDoipServer(startPort,onStartingDoipServerRes);
|
||||
returnValue.addProperty("doipListenPort", doipListenPort);
|
||||
this.contract.setDoipPort(doipListenPort);
|
||||
returnValue.addProperty("doipStartPort", startPort);
|
||||
|
15
src/main/java/org/bdware/sc/boundry/utils/DigestUtil.java
Normal file
15
src/main/java/org/bdware/sc/boundry/utils/DigestUtil.java
Normal file
@ -0,0 +1,15 @@
|
||||
package org.bdware.sc.boundry.utils;
|
||||
|
||||
import org.bdware.sc.compiler.PermissionStub;
|
||||
import org.bdware.sc.node.Permission;
|
||||
|
||||
@PermissionStub(permission = Permission.Digest)
|
||||
public class DigestUtil {
|
||||
public static String md5Hex(String arg) {
|
||||
return org.apache.commons.codec.digest.DigestUtils.md5Hex(arg);
|
||||
}
|
||||
|
||||
public static String sha256Hex(String arg) {
|
||||
return org.apache.commons.codec.digest.DigestUtils.sha256Hex(arg);
|
||||
}
|
||||
}
|
@ -1,8 +1,6 @@
|
||||
package org.bdware.sc.engine;
|
||||
|
||||
import com.google.gson.*;
|
||||
import org.bdware.doip.codec.doipMessage.DoipMessage;
|
||||
import org.bdware.sc.util.JsonUtil;
|
||||
import wrp.jdk.nashorn.api.scripting.ScriptObjectMirror;
|
||||
import wrp.jdk.nashorn.internal.objects.NativeArray;
|
||||
import wrp.jdk.nashorn.internal.runtime.PropertyMap;
|
||||
@ -44,7 +42,7 @@ public class JSONTool {
|
||||
}
|
||||
|
||||
public static Object convertJsonElementToMirror(Object input) {
|
||||
if(input instanceof JsonElement) {
|
||||
if (input instanceof JsonElement) {
|
||||
return convertJsonElementToMirror((JsonElement) input);
|
||||
} else {
|
||||
return input;
|
||||
@ -149,9 +147,7 @@ public class JSONTool {
|
||||
return jsonObject;
|
||||
} else if (obj.getClass() == jdk.internal.dynalink.beans.StaticClass.class) {
|
||||
return JsonNull.INSTANCE;
|
||||
} else if (obj.getClass() == DoipMessage.class) {
|
||||
return JsonUtil.fromJson(JsonUtil.toJson(obj), JsonObject.class);
|
||||
}else if (obj instanceof Number) {
|
||||
} else if (obj instanceof Number) {
|
||||
return new JsonPrimitive((Number) obj);
|
||||
} else if (obj instanceof String) {
|
||||
return new JsonPrimitive((String) obj);
|
||||
|
@ -57,7 +57,6 @@ public class AccessHandler implements AnnotationHook {
|
||||
LOGGER.info("verify success!" + argPacks.request.getRequester());
|
||||
if (acFunction == null) return argPacks;
|
||||
DesktopEngine de = (DesktopEngine) desktopEngine;
|
||||
|
||||
try {
|
||||
ContractRequest input = argPacks.request;
|
||||
JO jo = new JO(PropertyMap.newMap());
|
||||
|
@ -34,15 +34,20 @@ public class DOOPAfterExecHandler implements AnnotationHook {
|
||||
originDoipMsg = doipMessagePacker.rawDoipMsg;
|
||||
// if http, directly return
|
||||
if (doipMessagePacker.source.equals("http")) {
|
||||
if (argPacks.ret != null && argPacks.ret instanceof DoipMessage) {
|
||||
argPacks.ret = JsonUtil.parseObject(JsonDoipMessage.fromDoipMessage((DoipMessage) argPacks.ret));
|
||||
}
|
||||
return argPacks;
|
||||
} else {
|
||||
// pack
|
||||
JsonObject jsonObjectRes = JSONTool.convertMirrorToJson(argPacks.ret).getAsJsonObject();
|
||||
// validate json response
|
||||
ArgSchemaVisitor visitor = new ArgSchemaVisitor(jsonObjectRes);
|
||||
validateJsonElementRulesByArgSchemaVisitor(jsonResponseRules, visitor);
|
||||
JsonDoipMessage returnedMessage = JsonUtil.fromJson(jsonObjectRes, JsonDoipMessage.class);
|
||||
argPacks.ret = returnedMessage.toResponseDoipMessage(originDoipMsg);
|
||||
if (!(argPacks.ret instanceof DoipMessage)) {
|
||||
JsonObject jsonObjectRes = ((JsonElement)argPacks.ret).getAsJsonObject();
|
||||
// validate json response
|
||||
ArgSchemaVisitor visitor = new ArgSchemaVisitor(jsonObjectRes);
|
||||
validateJsonElementRulesByArgSchemaVisitor(jsonResponseRules, visitor);
|
||||
JsonDoipMessage returnedMessage = JsonUtil.fromJson(jsonObjectRes, JsonDoipMessage.class);
|
||||
argPacks.ret = returnedMessage.toResponseDoipMessage(originDoipMsg);
|
||||
}
|
||||
return argPacks;
|
||||
}
|
||||
} else {
|
||||
|
@ -3,8 +3,9 @@ package org.bdware.sc.engine.hook;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.JsonParser;
|
||||
import org.bdware.doip.codec.JsonDoipMessage;
|
||||
import org.bdware.doip.codec.doipMessage.DoipMessage;
|
||||
import org.bdware.doip.codec.doipMessage.DoipMessageFactory;
|
||||
import org.bdware.doip.codec.doipMessage.MessageCredential;
|
||||
import org.bdware.doip.codec.operations.BasicOperations;
|
||||
import org.bdware.sc.JSEngine;
|
||||
import org.bdware.sc.bean.ContractRequest;
|
||||
@ -12,10 +13,7 @@ import org.bdware.sc.boundry.ScriptReturnException;
|
||||
import org.bdware.sc.entity.DoipMessagePacker;
|
||||
import org.bdware.sc.node.AnnotationHook;
|
||||
import org.bdware.sc.node.ArgPacks;
|
||||
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import org.bdware.sc.util.JsonUtil;
|
||||
|
||||
public class DOOPBeforeExecHandler implements AnnotationHook {
|
||||
|
||||
@ -31,17 +29,20 @@ public class DOOPBeforeExecHandler implements AnnotationHook {
|
||||
public ArgPacks handle(JSEngine desktopEngine, ArgPacks argPacks) {
|
||||
Object arg = argPacks.arg;
|
||||
DoipMessagePacker doipMsgPackerArg = new DoipMessagePacker();
|
||||
|
||||
if (arg instanceof DoipMessagePacker) {
|
||||
doipMsgPackerArg = (DoipMessagePacker) arg;
|
||||
} else {
|
||||
// validate http request's params
|
||||
ContractRequest httpReq = argPacks.request;
|
||||
validateHTTPRequestArgs(httpReq);
|
||||
|
||||
// set doipMsgPackerArg struct's params
|
||||
doipMsgPackerArg.setSource("http");
|
||||
doipMsgPackerArg.rawDoipMsg = convertHttpRequestToDoipMessage(httpReq);
|
||||
if (httpReq.verifySignature()) {
|
||||
doipMsgPackerArg.rawDoipMsg.credential = new MessageCredential(httpReq.getRequester(), new byte[0]);
|
||||
} else {
|
||||
doipMsgPackerArg.rawDoipMsg.credential = null;
|
||||
}
|
||||
}
|
||||
|
||||
argPacks.arg = doipMsgPackerArg;
|
||||
@ -82,71 +83,8 @@ public class DOOPBeforeExecHandler implements AnnotationHook {
|
||||
|
||||
public DoipMessage convertHttpRequestToDoipMessage(ContractRequest httpReq) {
|
||||
JsonObject jsonParams = JsonParser.parseString(httpReq.getArg().getAsString()).getAsJsonObject();
|
||||
// taking Extension into consideration
|
||||
JsonObject header = jsonParams.get("header") != null ? jsonParams.get("header").getAsJsonObject() : null;
|
||||
String body = jsonParams.get("body") != null ? jsonParams.get("body").getAsString() : null;
|
||||
DoipMessage doipMessage = null;
|
||||
switch (httpOperation) {
|
||||
case Hello:
|
||||
case Delete:
|
||||
case ListOps:
|
||||
doipMessage = new DoipMessageFactory.DoipMessageBuilder().createRequest(header.get("identifier").getAsString(), httpOperation.getName()).create();
|
||||
break;
|
||||
case Create:
|
||||
case Update:
|
||||
doipMessage = new DoipMessageFactory.DoipMessageBuilder()
|
||||
.createRequest(header.get("identifier").getAsString(), httpOperation.getName())
|
||||
.setBody(body.getBytes(StandardCharsets.UTF_8))
|
||||
.create();
|
||||
break;
|
||||
case Search:
|
||||
DoipMessageFactory.DoipMessageBuilder searchBuilder = new DoipMessageFactory.DoipMessageBuilder()
|
||||
.createRequest(header.get("identifier").getAsString(), httpOperation.getName());
|
||||
JsonElement query = header.get("query");
|
||||
if (query != null) searchBuilder.addAttributes("query", query.getAsString());
|
||||
JsonElement pageNum = header.get("pageNum");
|
||||
if (pageNum != null) searchBuilder.addAttributes("pageNum", pageNum.getAsInt());
|
||||
JsonElement pageSize = header.get("pageSize");
|
||||
if (pageSize != null) searchBuilder.addAttributes("pageSize", pageSize.getAsInt());
|
||||
JsonElement type = header.get("type");
|
||||
if (type != null) searchBuilder.addAttributes("type", type.getAsString());
|
||||
|
||||
doipMessage = searchBuilder.create();
|
||||
break;
|
||||
case Retrieve:
|
||||
doipMessage = new DoipMessageFactory.DoipMessageBuilder().createRequest(header.get("identifier").getAsString(), httpOperation.getName()).create();
|
||||
JsonElement element = header.get("element");
|
||||
JsonElement includeElementData = header.get("includeElementData");
|
||||
if (element != null) doipMessage.header.parameters.addAttribute("element", element.getAsString());
|
||||
if (includeElementData != null && includeElementData.getAsBoolean())
|
||||
doipMessage.header.parameters.addAttribute("includeElementData", "true");
|
||||
break;
|
||||
case Extension:
|
||||
DoipMessageFactory.DoipMessageBuilder extensionBuilder = new DoipMessageFactory.DoipMessageBuilder();
|
||||
if (header != null) {
|
||||
if (header.get("identifier") != null) {
|
||||
extensionBuilder = extensionBuilder
|
||||
.createRequest(header.get("identifier").getAsString(), httpOperation.getName());
|
||||
}
|
||||
|
||||
Set<Map.Entry<String, JsonElement>> entries = header.entrySet();
|
||||
for (Map.Entry<String, JsonElement> entry : entries) {
|
||||
extensionBuilder.addAttributes(entry.getKey(), entry.getValue());
|
||||
}
|
||||
}
|
||||
|
||||
if (body != null) {
|
||||
extensionBuilder.setBody(body.getBytes(StandardCharsets.UTF_8));
|
||||
}
|
||||
|
||||
doipMessage = extensionBuilder.create();
|
||||
break;
|
||||
case Unknown:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return doipMessage;
|
||||
JsonDoipMessage doipMessage = JsonUtil.fromJson(jsonParams, JsonDoipMessage.class);
|
||||
return doipMessage.toRequestDoipMessage();
|
||||
}
|
||||
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
package org.bdware.sc.engine.hook;
|
||||
|
||||
import org.bdware.doip.codec.doipMessage.DoipMessage;
|
||||
import org.bdware.sc.JSEngine;
|
||||
import org.bdware.sc.engine.JSONTool;
|
||||
import org.bdware.sc.node.AnnotationHook;
|
||||
@ -8,6 +9,8 @@ import org.bdware.sc.node.ArgPacks;
|
||||
public class ObjToJsonHandler implements AnnotationHook {
|
||||
@Override
|
||||
public ArgPacks handle(JSEngine desktopEngine, ArgPacks argPacks) {
|
||||
if (argPacks.ret instanceof DoipMessage)
|
||||
return argPacks;
|
||||
argPacks.ret = JSONTool.convertMirrorToJson(argPacks.ret);
|
||||
return argPacks;
|
||||
}
|
||||
|
@ -11,7 +11,6 @@ import org.bdware.doip.codec.doipMessage.HeaderParameter;
|
||||
import org.bdware.doip.codec.operations.BasicOperations;
|
||||
import org.bdware.doip.endpoint.server.DoipRequestHandler;
|
||||
import org.bdware.doip.endpoint.server.NettyServerHandler;
|
||||
import org.bdware.doip.endpoint.server.RepositoryHandler;
|
||||
import org.bdware.sc.ContractProcess;
|
||||
import org.bdware.sc.bean.ContractRequest;
|
||||
import org.bdware.sc.boundry.JavaScriptEntry;
|
||||
@ -24,7 +23,7 @@ import java.io.PrintStream;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class DOOPRequestHandler implements DoipRequestHandler, RepositoryHandler {
|
||||
public class DOOPRequestHandler implements DoipRequestHandler {
|
||||
static Logger logger = LogManager.getLogger(NettyServerHandler.class);
|
||||
public Map<String, FunctionNode> doipFunctionNodeMap;
|
||||
|
||||
@ -71,81 +70,6 @@ public class DOOPRequestHandler implements DoipRequestHandler, RepositoryHandler
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DoipMessage handleHello(DoipMessage request) {
|
||||
FunctionNode fn = doipFunctionNodeMap.get(BasicOperations.Hello.getName());
|
||||
if (fn == null) fn = doipFunctionNodeMap.get(BasicOperations.Unknown.getName());
|
||||
if (fn != null) {
|
||||
return buildRequestAndInvokeEngine(fn, request);
|
||||
} else {
|
||||
logger.error("DoipOperation Hello is not provided");
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DoipMessage handleListOps(DoipMessage request) {
|
||||
FunctionNode fn = doipFunctionNodeMap.get(BasicOperations.ListOps.getName());
|
||||
if (fn == null) fn = doipFunctionNodeMap.get(BasicOperations.Unknown.getName());
|
||||
if (fn != null) {
|
||||
return buildRequestAndInvokeEngine(fn, request);
|
||||
} else {
|
||||
logger.error("DoipOperation ListOps is not provided");
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DoipMessage handleCreate(DoipMessage request) {
|
||||
FunctionNode fn = doipFunctionNodeMap.get(BasicOperations.Create.getName());
|
||||
if (fn == null) fn = doipFunctionNodeMap.get(BasicOperations.Unknown.getName());
|
||||
if (fn != null) {
|
||||
return buildRequestAndInvokeEngine(fn, request);
|
||||
} else {
|
||||
logger.error("DoipOperation Create is not provided");
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DoipMessage handleUpdate(DoipMessage request) {
|
||||
FunctionNode fn = doipFunctionNodeMap.get(BasicOperations.Update.getName());
|
||||
if (fn == null) fn = doipFunctionNodeMap.get(BasicOperations.Unknown.getName());
|
||||
if (fn != null) {
|
||||
return buildRequestAndInvokeEngine(fn, request);
|
||||
} else {
|
||||
logger.error("DoipOperation Update is not provided");
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DoipMessage handleDelete(DoipMessage request) {
|
||||
FunctionNode fn = doipFunctionNodeMap.get(BasicOperations.Delete.getName());
|
||||
if (fn == null) fn = doipFunctionNodeMap.get(BasicOperations.Unknown.getName());
|
||||
if (fn != null) {
|
||||
return buildRequestAndInvokeEngine(fn, request);
|
||||
} else {
|
||||
logger.error("DoipOperation Delete is not provided");
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DoipMessage handleRetrieve(DoipMessage request) {
|
||||
FunctionNode fn = doipFunctionNodeMap.get(BasicOperations.Retrieve.getName());
|
||||
if (fn == null) fn = doipFunctionNodeMap.get(BasicOperations.Unknown.getName());
|
||||
if (fn != null) {
|
||||
return buildRequestAndInvokeEngine(fn, request);
|
||||
} else {
|
||||
logger.error("DoipOperation Retrieve is not provided");
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public DoipMessage buildRequestAndInvokeEngine(FunctionNode fn, DoipMessage msg) {
|
||||
ContractRequest contractRequest = constructContractRequest(fn, msg);
|
||||
DoipMessagePacker arg = new DoipMessagePacker("doip", msg);
|
||||
|
@ -42,9 +42,9 @@ public class DoipClusterServer extends DoipServerImpl {
|
||||
return instance;
|
||||
}
|
||||
|
||||
public static int startDoipServer(int startPort) throws InterruptedException {
|
||||
public static int startDoipServer(int startPort, JsonElement otherConfigs) throws InterruptedException {
|
||||
try {
|
||||
int ret = DoipLocalSingleton.run(startPort);
|
||||
int ret = DoipLocalSingleton.run(startPort, otherConfigs);
|
||||
return ret;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
|
@ -1,7 +1,12 @@
|
||||
package org.bdware.sc.server;
|
||||
|
||||
import com.google.gson.JsonElement;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.bdware.doip.audit.EndpointConfig;
|
||||
import org.bdware.doip.audit.EndpointInfo;
|
||||
import org.bdware.doip.audit.client.AuditIrpClient;
|
||||
import org.bdware.doip.audit.config.TempConfigStorage;
|
||||
import org.bdware.doip.endpoint.server.DoipListenerConfig;
|
||||
import org.bdware.doip.endpoint.server.DoipServerImpl;
|
||||
import org.bdware.doip.endpoint.server.DoipServiceInfo;
|
||||
@ -12,6 +17,7 @@ import org.bdware.sc.handler.DOOPRequestHandler;
|
||||
import java.net.URI;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
public class DoipLocalSingleton {
|
||||
static Logger LOGGER = LogManager.getLogger(DoipLocalSingleton.class);
|
||||
@ -24,7 +30,7 @@ public class DoipLocalSingleton {
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
DoipLocalSingleton.run(port);
|
||||
DoipLocalSingleton.run(port, null);
|
||||
} catch (InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
@ -33,17 +39,17 @@ public class DoipLocalSingleton {
|
||||
doipServerThread.start();
|
||||
}
|
||||
|
||||
public static int run(int port) throws InterruptedException {
|
||||
public static int run(int port, JsonElement otherConfigs) throws InterruptedException {
|
||||
int i = -1;
|
||||
LOGGER.info("try to listener port:" + port);
|
||||
for (i = run("tcp://127.0.0.1:" + port++); i < 0; ) {
|
||||
for (i = run("tcp://127.0.0.1:" + port++, otherConfigs); i < 0; ) {
|
||||
LOGGER.info("try again to listener port:" + port);
|
||||
i = run("tcp://127.0.0.1:" + port++);
|
||||
i = run("tcp://127.0.0.1:" + port++, otherConfigs);
|
||||
}
|
||||
return i;
|
||||
}
|
||||
|
||||
public static int run(String doipAddr) throws InterruptedException {
|
||||
public static int run(String doipAddr, JsonElement otherConfigs) throws InterruptedException {
|
||||
List<DoipListenerConfig> infos = new ArrayList<>();
|
||||
int port = -1;
|
||||
try {
|
||||
@ -53,10 +59,28 @@ public class DoipLocalSingleton {
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
DoipServiceInfo info = new DoipServiceInfo("aibd.govdata.tj/do.3f9c41e6-9f8e-48a0-9220-53f438d40e43", "ownerDEF", "gateRepo", infos);
|
||||
String repoID = "bdtest/BDRepo/" + UUID.randomUUID().toString();
|
||||
String owner = ContractProcess.instance.getContract().getOwner();
|
||||
String repoType = "Repository";
|
||||
try {
|
||||
if (otherConfigs != null && otherConfigs.isJsonObject()) {
|
||||
EndpointConfig config = new TempConfigStorage(otherConfigs.toString()).loadAsEndpointConfig();
|
||||
if (config.routerURI != null) {
|
||||
AuditIrpClient irpClient = new AuditIrpClient(config);
|
||||
EndpointInfo endpointInfo = irpClient.getEndpointInfo();
|
||||
repoID = endpointInfo.getDoId();
|
||||
owner = endpointInfo.getPubKey();
|
||||
infos.clear();
|
||||
infos.add(new DoipListenerConfig(endpointInfo.getURI(), "2.1"));
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
DoipServiceInfo info = new DoipServiceInfo(repoID, owner, repoType, infos);
|
||||
server = new DoipServerImpl(info);
|
||||
DOOPRequestHandler handler = ContractProcess.instance.doopRequestHandler;
|
||||
server.setRepositoryHandler(handler);
|
||||
server.setRequestCallback(handler);
|
||||
ResultChecker checker = new ResultChecker();
|
||||
server.start(checker);
|
||||
checker.waitForResult(1000);
|
||||
|
Loading…
Reference in New Issue
Block a user