增加默认协议添加接口
This commit is contained in:
parent
6ca937a3d9
commit
47ebc48edb
|
|
@ -36,6 +36,16 @@ public class FileInfo {
|
|||
|
||||
private Map<String, Object> others;
|
||||
|
||||
private String accessUrl;
|
||||
|
||||
public void withBasePath(String apiBashPath) {
|
||||
if (!apiBashPath.endsWith("/")) {
|
||||
apiBashPath = apiBashPath + "/";
|
||||
}
|
||||
accessUrl = apiBashPath + "file/" + id + "?accessKey=" + accessKey().orElse("");
|
||||
}
|
||||
|
||||
|
||||
public MediaType mediaType() {
|
||||
if (!StringUtils.hasText(extension)) {
|
||||
return MediaType.APPLICATION_OCTET_STREAM;
|
||||
|
|
|
|||
|
|
@ -1,11 +1,13 @@
|
|||
package org.jetlinks.community.device.web;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import io.netty.buffer.ByteBufAllocator;
|
||||
import io.swagger.v3.oas.annotations.Hidden;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import lombok.Getter;
|
||||
import org.apache.commons.codec.digest.DigestUtils;
|
||||
import org.hswebframework.utils.StringUtils;
|
||||
import org.hswebframework.web.api.crud.entity.QueryParamEntity;
|
||||
import org.hswebframework.web.authorization.annotation.Authorize;
|
||||
|
|
@ -21,6 +23,7 @@ import org.jetlinks.community.device.web.protocol.ProtocolInfo;
|
|||
import org.jetlinks.community.device.web.protocol.TransportInfo;
|
||||
import org.jetlinks.community.device.web.request.ProtocolDecodeRequest;
|
||||
import org.jetlinks.community.device.web.request.ProtocolEncodeRequest;
|
||||
import org.jetlinks.community.io.file.FileManager;
|
||||
import org.jetlinks.community.protocol.TransportDetail;
|
||||
import org.jetlinks.core.ProtocolSupport;
|
||||
import org.jetlinks.core.ProtocolSupports;
|
||||
|
|
@ -32,6 +35,9 @@ import org.jetlinks.supports.protocol.management.ProtocolSupportDefinition;
|
|||
import org.jetlinks.supports.protocol.management.ProtocolSupportLoader;
|
||||
import org.jetlinks.supports.protocol.management.ProtocolSupportLoaderProvider;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.core.io.ClassPathResource;
|
||||
import org.springframework.core.io.buffer.DataBufferUtils;
|
||||
import org.springframework.core.io.buffer.NettyDataBufferFactory;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
|
@ -39,7 +45,9 @@ import reactor.util.function.Tuple2;
|
|||
import reactor.util.function.Tuples;
|
||||
|
||||
import java.util.Comparator;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/protocol")
|
||||
|
|
@ -62,6 +70,9 @@ public class ProtocolSupportController
|
|||
@Autowired
|
||||
private ProtocolSupportLoader supportLoader;
|
||||
|
||||
@Autowired
|
||||
private FileManager fileManager;
|
||||
|
||||
@PostMapping("/{id}/_deploy")
|
||||
@SaveAction
|
||||
@Operation(summary = "发布协议")
|
||||
|
|
@ -233,4 +244,34 @@ public class ProtocolSupportController
|
|||
.flatMap(ProtocolDetail::of);
|
||||
}
|
||||
|
||||
|
||||
@PostMapping("/default-protocol/_save")
|
||||
@SaveAction
|
||||
@Operation(summary = "保存默认协议")
|
||||
public Mono<Void> saveDefaultProtocol() {
|
||||
|
||||
String defaultProtocolName = "JetLinks官方协议";
|
||||
String fileNeme = "jetlinks-official-protocol-3.0-SNAPSHOT.zip";
|
||||
return fileManager
|
||||
.saveFile(fileNeme,
|
||||
DataBufferUtils.read(new ClassPathResource(fileNeme),
|
||||
new NettyDataBufferFactory(ByteBufAllocator.DEFAULT),
|
||||
1024))
|
||||
.flatMap(fileInfo -> {
|
||||
Map<String, Object> conf = new HashMap<>();
|
||||
conf.put("fileId", fileInfo.getId());
|
||||
conf.put("provider", "org.jetlinks.protocol.official.JetLinksProtocolSupportProvider");
|
||||
conf.put("location", fileInfo.getAccessUrl());
|
||||
ProtocolSupportEntity entity = new ProtocolSupportEntity();
|
||||
entity.setId(DigestUtils.md5Hex(defaultProtocolName));
|
||||
entity.setType("jar");
|
||||
entity.setName(defaultProtocolName);
|
||||
entity.setState((byte) 1);
|
||||
entity.setDescription("JetLinks官方协议包");
|
||||
entity.setConfiguration(conf);
|
||||
return getService().save(entity);
|
||||
})
|
||||
.then();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue