Merge pull request 'build : 添加skywalking' (#88) from skywalking into master
Reviewed-on: http://git.feashow.cn/clay/fateverse/pulls/88
This commit is contained in:
@@ -74,7 +74,7 @@ volumes:
|
|||||||
path: /home/build/fateverse
|
path: /home/build/fateverse
|
||||||
- name: skywalking
|
- name: skywalking
|
||||||
host:
|
host:
|
||||||
path: /home/skywalking-agent
|
path: /home/build/skywalking-agent
|
||||||
- name: config # k8s对接的配置文件
|
- name: config # k8s对接的配置文件
|
||||||
host:
|
host:
|
||||||
path: /home/kubect
|
path: /home/kubect
|
||||||
|
|||||||
@@ -2,17 +2,15 @@ FROM azul/zulu-openjdk:11.0.22-jdk
|
|||||||
VOLUME /tmp
|
VOLUME /tmp
|
||||||
RUN useradd -b /home -m -s /bin/bash clay
|
RUN useradd -b /home -m -s /bin/bash clay
|
||||||
RUN chmod a+xr -R /home/clay && chown clay:clay -R /home/clay
|
RUN chmod a+xr -R /home/clay && chown clay:clay -R /home/clay
|
||||||
#COPY skywalking /home/clay/skywalking-agent
|
COPY skywalking /home/clay/skywalking-agent
|
||||||
#RUN chmod a+xr -R /home/clay/skywalking-agent && chown clay:clay -R /home/clay/skywalking-agent
|
RUN chmod a+xr -R /home/clay/skywalking-agent && chown clay:clay -R /home/clay/skywalking-agent
|
||||||
USER clay
|
USER clay
|
||||||
ARG NAME=$DRONE_COMMIT_BRANCH
|
ARG NAME=$DRONE_COMMIT_BRANCH
|
||||||
COPY ./$NAME.jar /home/clay/$NAME.jar
|
COPY ./$NAME.jar /home/clay/$NAME.jar
|
||||||
COPY start.sh /home/clay/start.sh
|
COPY start.sh /home/clay/start.sh
|
||||||
WORKDIR /home/clay
|
WORKDIR /home/clay
|
||||||
RUN mkdir -p /home/clay/logs && touch /home/clay/logs/spring.log
|
RUN mkdir -p /home/clay/logs && touch /home/clay/logs/spring.log
|
||||||
#RUN mkdir -p /home/clay/code
|
RUN mkdir -p /home/clay/skywalking-agent/logs && touch /home/clay/skywalking-agent/logs/skywalking-api.log
|
||||||
#RUN chmod 777 /home/clay/code
|
|
||||||
#RUN mkdir -p /home/clay/skywalking-agent/logs && touch /home/clay/skywalking-agent/logs/skywalking-api.log
|
|
||||||
ENV REF_NAME dev
|
ENV REF_NAME dev
|
||||||
EXPOSE 8080
|
EXPOSE 8080
|
||||||
CMD bash /home/clay/start.sh $REF_NAME && echo "start logging..." && : > /home/clay/logs/spring.log && tail -F -n 500 /home/clay/logs/spring.log
|
CMD bash /home/clay/start.sh $REF_NAME && echo "start logging..." && : > /home/clay/logs/spring.log && tail -F -n 500 /home/clay/logs/spring.log
|
||||||
@@ -22,8 +22,8 @@
|
|||||||
| 依赖 | 版本 |
|
| 依赖 | 版本 |
|
||||||
|----------------------|------------|
|
|----------------------|------------|
|
||||||
| Spring Boot | 2.7.3 |
|
| Spring Boot | 2.7.3 |
|
||||||
| Spring Cloud | 2021.0.5 |
|
| Spring Cloud | 2021.0.3 |
|
||||||
| Spring Cloud Alibaba | 2021.0.4.0 |
|
| Spring Cloud Alibaba | 2021.0.1.0 |
|
||||||
| Mybatis | 3.5.2 |
|
| Mybatis | 3.5.2 |
|
||||||
| Vue | 3.1.3 |
|
| Vue | 3.1.3 |
|
||||||
| React | 18.2.0 |
|
| React | 18.2.0 |
|
||||||
|
|||||||
@@ -96,7 +96,7 @@ public class JavaScriptEngine {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private static void remove(String functionName) {
|
public static void remove(String functionName) {
|
||||||
SegmentLock.lock(functionName, () -> {
|
SegmentLock.lock(functionName, () -> {
|
||||||
functionMap.remove(functionName);
|
functionMap.remove(functionName);
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import cn.fateverse.common.decrypt.annotation.EncryptField;
|
|||||||
import cn.fateverse.query.entity.dto.DataAdapterCodeDto;
|
import cn.fateverse.query.entity.dto.DataAdapterCodeDto;
|
||||||
import cn.fateverse.query.entity.dto.MockParam;
|
import cn.fateverse.query.entity.dto.MockParam;
|
||||||
import cn.fateverse.query.entity.dto.PortalDto;
|
import cn.fateverse.query.entity.dto.PortalDto;
|
||||||
|
import cn.fateverse.query.entity.dto.PortalPublish;
|
||||||
import cn.fateverse.query.entity.query.PortalQuery;
|
import cn.fateverse.query.entity.query.PortalQuery;
|
||||||
import cn.fateverse.query.entity.vo.PortalIdWrapper;
|
import cn.fateverse.query.entity.vo.PortalIdWrapper;
|
||||||
import cn.fateverse.query.entity.vo.PortalVo;
|
import cn.fateverse.query.entity.vo.PortalVo;
|
||||||
@@ -116,6 +117,25 @@ public class PortalController {
|
|||||||
return Result.ok();
|
return Result.ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation("列表接口发布")
|
||||||
|
@PostMapping("/list/publish")
|
||||||
|
@Encrypt(Encrypt.Position.IN)
|
||||||
|
@PreAuthorize("@ss.hasPermission('query:portal:edit')")
|
||||||
|
public Result<Void> listPublish(@RequestBody @Validated PortalPublish portalPublish) {
|
||||||
|
portalService.publish(portalPublish, Boolean.TRUE);
|
||||||
|
return Result.ok();
|
||||||
|
}
|
||||||
|
@ApiOperation("设计器接口发布")
|
||||||
|
@PostMapping("/publish")
|
||||||
|
@PreAuthorize("@ss.hasPermission('query:portal:edit')")
|
||||||
|
public Result<Void> publish(@RequestBody @Validated PortalPublish portalPublish) {
|
||||||
|
if (ObjectUtils.isEmpty(portalPublish.getCode())){
|
||||||
|
return Result.error("代码不能为空!");
|
||||||
|
}
|
||||||
|
portalService.publish(portalPublish, Boolean.FALSE);
|
||||||
|
return Result.ok();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@ApiOperation("撤销发布")
|
@ApiOperation("撤销发布")
|
||||||
@Encrypt
|
@Encrypt
|
||||||
|
|||||||
@@ -1,7 +1,11 @@
|
|||||||
package cn.fateverse.query.dubbo;
|
package cn.fateverse.query.dubbo;
|
||||||
|
|
||||||
import cn.fateverse.query.constant.QueryConstant;
|
import cn.fateverse.query.constant.QueryConstant;
|
||||||
|
import cn.fateverse.query.entity.Portal;
|
||||||
|
import cn.fateverse.query.entity.PortalMapping;
|
||||||
import cn.fateverse.query.entity.bo.PortalBo;
|
import cn.fateverse.query.entity.bo.PortalBo;
|
||||||
|
import cn.fateverse.query.mapper.PortalMapper;
|
||||||
|
import cn.fateverse.query.mapper.PortalMappingMapper;
|
||||||
import cn.fateverse.query.portal.service.HandlerMethodService;
|
import cn.fateverse.query.portal.service.HandlerMethodService;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.dubbo.config.annotation.DubboService;
|
import org.apache.dubbo.config.annotation.DubboService;
|
||||||
@@ -9,6 +13,7 @@ import org.springframework.data.redis.core.RedisTemplate;
|
|||||||
import org.springframework.web.bind.annotation.RequestMethod;
|
import org.springframework.web.bind.annotation.RequestMethod;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Clay
|
* @author Clay
|
||||||
@@ -18,10 +23,14 @@ import javax.annotation.Resource;
|
|||||||
@DubboService(scope = "remote")
|
@DubboService(scope = "remote")
|
||||||
public class DubboDispatchServletPublishImpl implements DubboDispatchServletPublish {
|
public class DubboDispatchServletPublishImpl implements DubboDispatchServletPublish {
|
||||||
|
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private HandlerMethodService methodService;
|
private HandlerMethodService methodService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private PortalMapper portalMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private PortalMappingMapper portalMappingMapper;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private RedisTemplate<String, PortalBo> redisTemplate;
|
private RedisTemplate<String, PortalBo> redisTemplate;
|
||||||
@@ -30,7 +39,13 @@ public class DubboDispatchServletPublishImpl implements DubboDispatchServletPubl
|
|||||||
public Boolean publish(String path, String requestMethod) {
|
public Boolean publish(String path, String requestMethod) {
|
||||||
PortalBo portalBo = redisTemplate.opsForValue().get(QueryConstant.PORTAL_KEY + path + ":" + requestMethod);
|
PortalBo portalBo = redisTemplate.opsForValue().get(QueryConstant.PORTAL_KEY + path + ":" + requestMethod);
|
||||||
if (portalBo == null) {
|
if (portalBo == null) {
|
||||||
return Boolean.FALSE;
|
Portal portal = portalMapper.selectByPath(path, requestMethod);
|
||||||
|
if (portal == null) {
|
||||||
|
return Boolean.FALSE;
|
||||||
|
}
|
||||||
|
List<PortalMapping> portalMappings = portalMappingMapper.selectByPortalId(portal.getPortalId());
|
||||||
|
portalBo = PortalBo.toPortalBo(portal, portalMappings);
|
||||||
|
redisTemplate.opsForValue().set(QueryConstant.PORTAL_KEY + portalBo.getPath() + ":" + portalBo.getRequestMethod(), portalBo);
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
log.info("registerMapping, path:{}, requestMethod:{}", path, requestMethod);
|
log.info("registerMapping, path:{}, requestMethod:{}", path, requestMethod);
|
||||||
|
|||||||
@@ -0,0 +1,26 @@
|
|||||||
|
package cn.fateverse.query.entity.dto;
|
||||||
|
|
||||||
|
import cn.fateverse.common.decrypt.annotation.EncryptField;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotBlank;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Clay
|
||||||
|
* @date 2024/4/30 16:58
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class PortalPublish {
|
||||||
|
|
||||||
|
@EncryptField
|
||||||
|
@NotBlank(message = "接口id不能为空")
|
||||||
|
private String portalId;
|
||||||
|
|
||||||
|
private String code;
|
||||||
|
|
||||||
|
|
||||||
|
public Long getLongPortalId() {
|
||||||
|
return Long.valueOf(portalId);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -61,6 +61,11 @@ public class JavaScriptEngineExecuteHandler implements EngineExecuteHandler {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Boolean remove(DataAdapter dataAdapter) {
|
public Boolean remove(DataAdapter dataAdapter) {
|
||||||
return Boolean.FALSE;
|
if (!DataAdapterType.JAVA_SCRIPT.equals(dataAdapter.getType())) {
|
||||||
|
return Boolean.FALSE;
|
||||||
|
}
|
||||||
|
JavaScriptEngine.remove("execute" + dataAdapter.getAdapterId());
|
||||||
|
return Boolean.TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ import cn.fateverse.query.entity.Portal;
|
|||||||
import cn.fateverse.query.entity.PortalMapping;
|
import cn.fateverse.query.entity.PortalMapping;
|
||||||
import cn.fateverse.query.entity.bo.PortalBo;
|
import cn.fateverse.query.entity.bo.PortalBo;
|
||||||
import cn.fateverse.query.handler.reader.DataAdapterHandlerReader;
|
import cn.fateverse.query.handler.reader.DataAdapterHandlerReader;
|
||||||
import cn.fateverse.query.mapper.DataAdapterMapper;
|
|
||||||
import cn.fateverse.query.mapper.PortalMapper;
|
import cn.fateverse.query.mapper.PortalMapper;
|
||||||
import cn.fateverse.query.mapper.PortalMappingMapper;
|
import cn.fateverse.query.mapper.PortalMappingMapper;
|
||||||
import org.springframework.data.redis.core.RedisTemplate;
|
import org.springframework.data.redis.core.RedisTemplate;
|
||||||
@@ -31,19 +30,14 @@ public class PortalDispatchServlet {
|
|||||||
|
|
||||||
private final PortalMapper portalMapper;
|
private final PortalMapper portalMapper;
|
||||||
|
|
||||||
private final DataAdapterMapper dataAdapterMapper;
|
|
||||||
|
|
||||||
private final PortalMappingMapper portalMappingMapper;
|
private final PortalMappingMapper portalMappingMapper;
|
||||||
|
|
||||||
private final DataAdapterHandlerReader dataAdapterHandler;
|
private final DataAdapterHandlerReader dataAdapterHandler;
|
||||||
|
|
||||||
|
|
||||||
public PortalDispatchServlet(PortalMapper portalMapper,
|
public PortalDispatchServlet(PortalMapper portalMapper,
|
||||||
DataAdapterMapper dataAdapterMapper,
|
|
||||||
PortalMappingMapper portalMappingMapper,
|
PortalMappingMapper portalMappingMapper,
|
||||||
DataAdapterHandlerReader dataAdapterHandler) {
|
DataAdapterHandlerReader dataAdapterHandler) {
|
||||||
this.portalMapper = portalMapper;
|
this.portalMapper = portalMapper;
|
||||||
this.dataAdapterMapper = dataAdapterMapper;
|
|
||||||
this.portalMappingMapper = portalMappingMapper;
|
this.portalMappingMapper = portalMappingMapper;
|
||||||
this.dataAdapterHandler = dataAdapterHandler;
|
this.dataAdapterHandler = dataAdapterHandler;
|
||||||
}
|
}
|
||||||
@@ -67,12 +61,7 @@ public class PortalDispatchServlet {
|
|||||||
redisTemplate.opsForValue().set(QueryConstant.PORTAL_KEY + portalBo.getPath() + ":" + portalBo.getRequestMethod(), portalBo);
|
redisTemplate.opsForValue().set(QueryConstant.PORTAL_KEY + portalBo.getPath() + ":" + portalBo.getRequestMethod(), portalBo);
|
||||||
}
|
}
|
||||||
//进行数据适配器的执行逻辑
|
//进行数据适配器的执行逻辑
|
||||||
Object result = null;
|
Object result = dataAdapterHandler.execute(portalBo, request);
|
||||||
// if (portalBo.getState() == 1 || portalBo.getState() == 2) {
|
|
||||||
result = dataAdapterHandler.execute(portalBo, request);
|
|
||||||
// } else {
|
|
||||||
// result = dataAdapterHandler.mockExecute(portalBo, request);
|
|
||||||
// }
|
|
||||||
//将返回结果放入response
|
//将返回结果放入response
|
||||||
ResponseRender.renderString(response, Result.ok(result));
|
ResponseRender.renderString(response, Result.ok(result));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,28 +2,12 @@ package cn.fateverse.query.portal.service;
|
|||||||
|
|
||||||
import cn.fateverse.common.core.exception.CustomException;
|
import cn.fateverse.common.core.exception.CustomException;
|
||||||
import cn.fateverse.common.core.utils.SpringContextHolder;
|
import cn.fateverse.common.core.utils.SpringContextHolder;
|
||||||
import cn.fateverse.query.dubbo.DubboDispatchServletPublish;
|
|
||||||
import cn.fateverse.query.portal.PortalDispatchServlet;
|
import cn.fateverse.query.portal.PortalDispatchServlet;
|
||||||
import cn.fateverse.query.portal.config.DubboServiceBean;
|
|
||||||
import cn.fateverse.query.portal.event.DispatchSyncEvent;
|
import cn.fateverse.query.portal.event.DispatchSyncEvent;
|
||||||
import com.alibaba.cloud.nacos.NacosDiscoveryProperties;
|
|
||||||
import com.alibaba.cloud.nacos.NacosServiceManager;
|
|
||||||
import com.alibaba.cloud.nacos.registry.NacosRegistration;
|
|
||||||
import com.alibaba.nacos.api.PropertyKeyConst;
|
|
||||||
import com.alibaba.nacos.api.exception.NacosException;
|
|
||||||
import com.alibaba.nacos.api.naming.NamingService;
|
|
||||||
import com.alibaba.nacos.api.naming.pojo.Instance;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.dubbo.config.annotation.DubboReference;
|
|
||||||
import org.apache.dubbo.rpc.RpcContext;
|
|
||||||
import org.apache.dubbo.rpc.RpcContextAttachment;
|
|
||||||
import org.apache.dubbo.rpc.cluster.specifyaddress.Address;
|
|
||||||
import org.apache.dubbo.rpc.cluster.specifyaddress.UserSpecifiedAddressUtil;
|
|
||||||
import org.springframework.beans.BeansException;
|
import org.springframework.beans.BeansException;
|
||||||
import org.springframework.context.ApplicationContext;
|
import org.springframework.context.ApplicationContext;
|
||||||
import org.springframework.context.ApplicationContextAware;
|
import org.springframework.context.ApplicationContextAware;
|
||||||
import org.springframework.core.env.Environment;
|
|
||||||
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.util.ObjectUtils;
|
import org.springframework.util.ObjectUtils;
|
||||||
import org.springframework.web.bind.annotation.RequestMethod;
|
import org.springframework.web.bind.annotation.RequestMethod;
|
||||||
@@ -32,12 +16,7 @@ import org.springframework.web.servlet.mvc.method.RequestMappingInfo;
|
|||||||
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;
|
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;
|
||||||
|
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Optional;
|
|
||||||
import java.util.Properties;
|
|
||||||
import java.util.concurrent.ArrayBlockingQueue;
|
|
||||||
import java.util.concurrent.BlockingQueue;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Clay
|
* @author Clay
|
||||||
@@ -49,7 +28,7 @@ public class HandlerMethodService implements ApplicationContextAware {
|
|||||||
|
|
||||||
public static final String CUSTOM_INTERFACE = "customInterface:";
|
public static final String CUSTOM_INTERFACE = "customInterface:";
|
||||||
|
|
||||||
private RequestMappingHandlerMapping mapping;
|
private RequestMappingHandlerMapping handlerMapping;
|
||||||
|
|
||||||
private Method mappingMethod;
|
private Method mappingMethod;
|
||||||
|
|
||||||
@@ -73,7 +52,7 @@ public class HandlerMethodService implements ApplicationContextAware {
|
|||||||
@Override
|
@Override
|
||||||
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
|
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
|
||||||
//获取到web mvc的接口存储mapping
|
//获取到web mvc的接口存储mapping
|
||||||
mapping = (RequestMappingHandlerMapping) applicationContext.getBean("requestMappingHandlerMapping");
|
handlerMapping = (RequestMappingHandlerMapping) applicationContext.getBean("requestMappingHandlerMapping");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -92,12 +71,12 @@ public class HandlerMethodService implements ApplicationContextAware {
|
|||||||
.consumes(empty)
|
.consumes(empty)
|
||||||
.produces(empty)
|
.produces(empty)
|
||||||
.mappingName(CUSTOM_INTERFACE + path);
|
.mappingName(CUSTOM_INTERFACE + path);
|
||||||
RequestMappingInfo requestMappingInfo = builder.options(mapping.getBuilderConfiguration()).build();
|
RequestMappingInfo requestMappingInfo = builder.options(handlerMapping.getBuilderConfiguration()).build();
|
||||||
Map<RequestMappingInfo, HandlerMethod> handlerMethods = mapping.getHandlerMethods();
|
Map<RequestMappingInfo, HandlerMethod> handlerMethods = handlerMapping.getHandlerMethods();
|
||||||
if (handlerMethods.containsKey(requestMappingInfo)) {
|
if (handlerMethods.containsKey(requestMappingInfo)) {
|
||||||
throw new CustomException("path is exist");
|
throw new CustomException("path is exist");
|
||||||
}
|
}
|
||||||
mapping.registerMapping(requestMappingInfo, "portalDispatchServlet", mappingMethod);
|
handlerMapping.registerMapping(requestMappingInfo, "portalDispatchServlet", mappingMethod);
|
||||||
// 判断是否需要发起同步
|
// 判断是否需要发起同步
|
||||||
if (sync) {
|
if (sync) {
|
||||||
//使用事件监听机制,避免循环注入
|
//使用事件监听机制,避免循环注入
|
||||||
@@ -112,12 +91,12 @@ public class HandlerMethodService implements ApplicationContextAware {
|
|||||||
* @param requestMethod 请求类型
|
* @param requestMethod 请求类型
|
||||||
*/
|
*/
|
||||||
public void unregisterMapping(String path, RequestMethod requestMethod, Boolean sync) {
|
public void unregisterMapping(String path, RequestMethod requestMethod, Boolean sync) {
|
||||||
Map<RequestMappingInfo, HandlerMethod> handlerMethods = mapping.getHandlerMethods();
|
Map<RequestMappingInfo, HandlerMethod> handlerMethods = handlerMapping.getHandlerMethods();
|
||||||
for (RequestMappingInfo mappingInfo : handlerMethods.keySet()) {
|
for (RequestMappingInfo mappingInfo : handlerMethods.keySet()) {
|
||||||
if (!ObjectUtils.isEmpty(mappingInfo.getName())
|
if (!ObjectUtils.isEmpty(mappingInfo.getName())
|
||||||
&& (CUSTOM_INTERFACE + path).equals(mappingInfo.getName())
|
&& (CUSTOM_INTERFACE + path).equals(mappingInfo.getName())
|
||||||
&& mappingInfo.getMethodsCondition().getMethods().contains(requestMethod)) {
|
&& mappingInfo.getMethodsCondition().getMethods().contains(requestMethod)) {
|
||||||
mapping.unregisterMapping(mappingInfo);
|
handlerMapping.unregisterMapping(mappingInfo);
|
||||||
if (sync) {
|
if (sync) {
|
||||||
SpringContextHolder.publishEvent(new DispatchSyncEvent(path, requestMethod.name(), Boolean.FALSE));
|
SpringContextHolder.publishEvent(new DispatchSyncEvent(path, requestMethod.name(), Boolean.FALSE));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import cn.fateverse.common.core.result.page.TableDataInfo;
|
|||||||
import cn.fateverse.query.entity.dto.DataAdapterCodeDto;
|
import cn.fateverse.query.entity.dto.DataAdapterCodeDto;
|
||||||
import cn.fateverse.query.entity.dto.MockParam;
|
import cn.fateverse.query.entity.dto.MockParam;
|
||||||
import cn.fateverse.query.entity.dto.PortalDto;
|
import cn.fateverse.query.entity.dto.PortalDto;
|
||||||
|
import cn.fateverse.query.entity.dto.PortalPublish;
|
||||||
import cn.fateverse.query.entity.query.PortalQuery;
|
import cn.fateverse.query.entity.query.PortalQuery;
|
||||||
import cn.fateverse.query.entity.vo.PortalIdWrapper;
|
import cn.fateverse.query.entity.vo.PortalIdWrapper;
|
||||||
import cn.fateverse.query.entity.vo.PortalVo;
|
import cn.fateverse.query.entity.vo.PortalVo;
|
||||||
@@ -79,6 +80,14 @@ public interface PortalService {
|
|||||||
*/
|
*/
|
||||||
PortalIdWrapper edit(PortalDto portalDto);
|
PortalIdWrapper edit(PortalDto portalDto);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 发布接口
|
||||||
|
*
|
||||||
|
* @param portalPublish 发布接口对象
|
||||||
|
* @param isList 是否为list发布
|
||||||
|
*/
|
||||||
|
void publish(PortalPublish portalPublish, Boolean isList);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 取消发布
|
* 取消发布
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -7,11 +7,13 @@ import cn.fateverse.query.entity.*;
|
|||||||
import cn.fateverse.query.entity.bo.PortalBo;
|
import cn.fateverse.query.entity.bo.PortalBo;
|
||||||
import cn.fateverse.query.entity.dto.DataAdapterCodeDto;
|
import cn.fateverse.query.entity.dto.DataAdapterCodeDto;
|
||||||
import cn.fateverse.query.entity.dto.MockParam;
|
import cn.fateverse.query.entity.dto.MockParam;
|
||||||
|
import cn.fateverse.query.entity.dto.PortalPublish;
|
||||||
import cn.fateverse.query.entity.vo.DataAdapterVo;
|
import cn.fateverse.query.entity.vo.DataAdapterVo;
|
||||||
import cn.fateverse.query.entity.vo.PortalIdWrapper;
|
import cn.fateverse.query.entity.vo.PortalIdWrapper;
|
||||||
import cn.fateverse.query.enums.DataAdapterType;
|
import cn.fateverse.query.enums.DataAdapterType;
|
||||||
import cn.fateverse.query.enums.PortalPremEnum;
|
import cn.fateverse.query.enums.PortalPremEnum;
|
||||||
import cn.fateverse.query.handler.reader.DataAdapterHandlerReader;
|
import cn.fateverse.query.handler.reader.DataAdapterHandlerReader;
|
||||||
|
import cn.fateverse.query.handler.reader.EngineExecuteHandlerReader;
|
||||||
import cn.fateverse.query.mapper.*;
|
import cn.fateverse.query.mapper.*;
|
||||||
import cn.fateverse.query.portal.service.HandlerMethodService;
|
import cn.fateverse.query.portal.service.HandlerMethodService;
|
||||||
import cn.fateverse.query.constant.QueryConstant;
|
import cn.fateverse.query.constant.QueryConstant;
|
||||||
@@ -60,6 +62,8 @@ public class PortalServiceImpl implements PortalService {
|
|||||||
|
|
||||||
private final DataAdapterHandlerReader handlerReader;
|
private final DataAdapterHandlerReader handlerReader;
|
||||||
|
|
||||||
|
private final EngineExecuteHandlerReader executeHandlerReader;
|
||||||
|
|
||||||
public PortalServiceImpl(PortalMapper portalMapper,
|
public PortalServiceImpl(PortalMapper portalMapper,
|
||||||
UniQueryMapper queryMapper,
|
UniQueryMapper queryMapper,
|
||||||
DataAdapterMapper adapterMapper,
|
DataAdapterMapper adapterMapper,
|
||||||
@@ -67,7 +71,8 @@ public class PortalServiceImpl implements PortalService {
|
|||||||
ThreadPoolTaskExecutor taskExecuteExecutor,
|
ThreadPoolTaskExecutor taskExecuteExecutor,
|
||||||
HandlerMethodService methodService,
|
HandlerMethodService methodService,
|
||||||
PortalInterfaceMapper portalInterfaceMapper,
|
PortalInterfaceMapper portalInterfaceMapper,
|
||||||
DataAdapterHandlerReader handlerReader) {
|
DataAdapterHandlerReader handlerReader,
|
||||||
|
EngineExecuteHandlerReader executeHandlerReader) {
|
||||||
this.portalMapper = portalMapper;
|
this.portalMapper = portalMapper;
|
||||||
this.queryMapper = queryMapper;
|
this.queryMapper = queryMapper;
|
||||||
this.adapterMapper = adapterMapper;
|
this.adapterMapper = adapterMapper;
|
||||||
@@ -75,6 +80,7 @@ public class PortalServiceImpl implements PortalService {
|
|||||||
this.methodService = methodService;
|
this.methodService = methodService;
|
||||||
this.portalInterfaceMapper = portalInterfaceMapper;
|
this.portalInterfaceMapper = portalInterfaceMapper;
|
||||||
this.handlerReader = handlerReader;
|
this.handlerReader = handlerReader;
|
||||||
|
this.executeHandlerReader = executeHandlerReader;
|
||||||
taskExecuteExecutor.execute(() -> {
|
taskExecuteExecutor.execute(() -> {
|
||||||
PortalQuery query = new PortalQuery();
|
PortalQuery query = new PortalQuery();
|
||||||
// query.setState(QueryConstant.PORTAL_PUBLISH);
|
// query.setState(QueryConstant.PORTAL_PUBLISH);
|
||||||
@@ -354,6 +360,24 @@ public class PortalServiceImpl implements PortalService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void publish(PortalPublish portalPublish, Boolean isList) {
|
||||||
|
Long portalId = portalPublish.getLongPortalId();
|
||||||
|
Portal portal = portalMapper.selectById(portalId);
|
||||||
|
List<PortalMapping> mappings = portalMappingMapper.selectByPortalId(portalId);
|
||||||
|
if (!isList && portal.getCreateDataAdapter() && !ObjectUtils.isEmpty(portal.getAdapterId())) {
|
||||||
|
DataAdapter dataAdapter = adapterMapper.selectById(portal.getAdapterId());
|
||||||
|
dataAdapter.setCode(portalPublish.getCode());
|
||||||
|
adapterMapper.updateCode(dataAdapter);
|
||||||
|
}
|
||||||
|
portalMapper.updateState(portalId, QueryConstant.PORTAL_PUBLISH);
|
||||||
|
if (PortalPremEnum.EXTERNAL.equals(portal.getPermissionType()) || PortalPremEnum.ANONYMITY.equals(portal.getPermissionType())) {
|
||||||
|
publishPortal(portal, mappings, Boolean.TRUE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void delete(Long portalId) {
|
public void delete(Long portalId) {
|
||||||
|
|||||||
14
start.sh
14
start.sh
@@ -31,13 +31,13 @@ batch=${DRONE_COMMIT_BRANCH}
|
|||||||
|
|
||||||
ignoreArr=("monitor","sentinel-dashboard-pro","sentinel-dashboard")
|
ignoreArr=("monitor","sentinel-dashboard-pro","sentinel-dashboard")
|
||||||
|
|
||||||
#if [[ "${ignoreArr[*]}" =~ "${batch}" ]]; then
|
if [[ "${ignoreArr[*]}" =~ "${batch}" ]]; then
|
||||||
# JAVA_AGENT="-javaagent:/home/clay/skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=$DRONE_COMMIT_BRANCH -Dskywalking.trace.ignore_path=/actuator/** -Dskywalking.collector.backend_service=10.7.89.101:11800 --add-opens java.base/jdk.internal.misc=ALL-UNNAMED -Dio.netty.tryReflectionSetAccessible=true"
|
JAVA_AGENT="-javaagent:/home/clay/skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=$DRONE_COMMIT_BRANCH -Dskywalking.trace.ignore_path=/actuator/** -Dskywalking.collector.backend_service=10.7.125.151:11800 --add-opens java.base/jdk.internal.misc=ALL-UNNAMED -Dio.netty.tryReflectionSetAccessible=true"
|
||||||
# nohup java -jar $JAVA_AGENT $JAVA_OPTS $JAVA_MEM_OPTS $DRONE_COMMIT_BRANCH.jar --spring.profiles.active=pro --server.port=8080 >./logs/spring.log 2>&1 &
|
nohup java -jar $JAVA_AGENT $JAVA_OPTS $JAVA_MEM_OPTS $DRONE_COMMIT_BRANCH.jar --spring.profiles.active=pro --server.port=8080 >./logs/spring.log 2>&1 &
|
||||||
#else
|
else
|
||||||
# echo "exist";
|
echo "exist";
|
||||||
# nohup java -jar $JAVA_OPTS $JAVA_MEM_OPTS $DRONE_COMMIT_BRANCH.jar --spring.profiles.active=pro --server.port=8080 >./logs/spring.log 2>&1 &
|
nohup java -jar $JAVA_OPTS $JAVA_MEM_OPTS $DRONE_COMMIT_BRANCH.jar --spring.profiles.active=pro --server.port=8080 >./logs/spring.log 2>&1 &
|
||||||
#fi
|
fi
|
||||||
|
|
||||||
nohup java -jar $JAVA_OPTS $JAVA_MEM_OPTS $DRONE_COMMIT_BRANCH.jar --spring.profiles.active=pro --server.port=8080 >./logs/spring.log 2>&1 &
|
nohup java -jar $JAVA_OPTS $JAVA_MEM_OPTS $DRONE_COMMIT_BRANCH.jar --spring.profiles.active=pro --server.port=8080 >./logs/spring.log 2>&1 &
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user