Merge branch 'dev'

This commit is contained in:
jmxd 2023-05-10 21:57:54 +08:00
commit b316c7f725
42 changed files with 161 additions and 110 deletions

View File

@ -51,7 +51,7 @@ magic-api 是一个基于Java的接口快速开发框架编写接口将通过
<dependency>
<groupId>org.ssssssss</groupId>
<artifactId>magic-api-spring-boot-starter</artifactId>
<version>2.1.0</version>
<version>2.1.1</version>
</dependency>
```
## 修改application.properties

View File

@ -6,7 +6,7 @@
<parent>
<groupId>org.ssssssss</groupId>
<artifactId>magic-api-plugins</artifactId>
<version>2.1.0</version>
<version>2.1.1</version>
</parent>
<artifactId>magic-api-plugin-cluster</artifactId>
<packaging>jar</packaging>

View File

@ -2,15 +2,11 @@ package org.ssssssss.magicapi.cluster;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.ObjectProvider;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.listener.ChannelTopic;
import org.springframework.data.redis.listener.RedisMessageListenerContainer;
import org.ssssssss.magicapi.core.config.MagicAPIProperties;
@ -19,9 +15,10 @@ import org.ssssssss.magicapi.core.model.MagicNotify;
import org.ssssssss.magicapi.core.model.Plugin;
import org.ssssssss.magicapi.core.service.MagicAPIService;
import org.ssssssss.magicapi.core.service.MagicNotifyService;
import org.ssssssss.magicapi.redis.RedisModule;
import org.ssssssss.magicapi.utils.JsonUtils;
import java.util.Objects;
import java.util.Arrays;
@EnableConfigurationProperties(ClusterConfig.class)
@ -32,14 +29,11 @@ public class MagicClusterConfiguration implements MagicPluginConfiguration {
private final MagicAPIProperties properties;
private final StringRedisTemplate stringRedisTemplate;
private final Logger logger = LoggerFactory.getLogger(MagicClusterConfiguration.class);
public MagicClusterConfiguration(MagicAPIProperties properties, ClusterConfig config, ObjectProvider<StringRedisTemplate> stringRedisTemplateProvider) {
public MagicClusterConfiguration(MagicAPIProperties properties, ClusterConfig config) {
this.properties = properties;
this.config = config;
this.stringRedisTemplate = stringRedisTemplateProvider.getIfAvailable();
}
@Override
@ -52,8 +46,8 @@ public class MagicClusterConfiguration implements MagicPluginConfiguration {
*/
@Bean
@ConditionalOnMissingBean
public MagicNotifyService magicNotifyService() {
return magicNotify -> stringRedisTemplate.convertAndSend(config.getChannel(), Objects.requireNonNull(JsonUtils.toJsonString(magicNotify)));
public MagicNotifyService magicNotifyService(RedisModule redisModule) {
return magicNotify -> redisModule.execute("publish", Arrays.asList(config.getChannel(), JsonUtils.toJsonString(magicNotify)));
}
/**

View File

@ -6,7 +6,7 @@
<parent>
<groupId>org.ssssssss</groupId>
<artifactId>magic-api-plugins</artifactId>
<version>2.1.0</version>
<version>2.1.1</version>
</parent>
<artifactId>magic-api-plugin-component</artifactId>
<packaging>jar</packaging>

View File

@ -6,7 +6,7 @@
<parent>
<groupId>org.ssssssss</groupId>
<artifactId>magic-api-plugins</artifactId>
<version>2.1.0</version>
<version>2.1.1</version>
</parent>
<artifactId>magic-api-plugin-elasticsearch</artifactId>
<packaging>jar</packaging>

View File

@ -6,7 +6,7 @@
<parent>
<groupId>org.ssssssss</groupId>
<artifactId>magic-api-plugins</artifactId>
<version>2.1.0</version>
<version>2.1.1</version>
</parent>
<artifactId>magic-api-plugin-git</artifactId>
<packaging>jar</packaging>

View File

@ -6,7 +6,7 @@
<parent>
<groupId>org.ssssssss</groupId>
<artifactId>magic-api-plugins</artifactId>
<version>2.1.0</version>
<version>2.1.1</version>
</parent>
<artifactId>magic-api-plugin-mongo</artifactId>
<packaging>jar</packaging>

View File

@ -6,7 +6,7 @@
<parent>
<groupId>org.ssssssss</groupId>
<artifactId>magic-api-plugins</artifactId>
<version>2.1.0</version>
<version>2.1.1</version>
</parent>
<artifactId>magic-api-plugin-redis</artifactId>
<packaging>jar</packaging>

View File

@ -6,7 +6,7 @@
<parent>
<groupId>org.ssssssss</groupId>
<artifactId>magic-api-plugins</artifactId>
<version>2.1.0</version>
<version>2.1.1</version>
</parent>
<artifactId>magic-api-plugin-springdoc</artifactId>
<packaging>jar</packaging>

View File

@ -6,7 +6,7 @@
<parent>
<groupId>org.ssssssss</groupId>
<artifactId>magic-api-plugins</artifactId>
<version>2.1.0</version>
<version>2.1.1</version>
</parent>
<artifactId>magic-api-plugin-swagger</artifactId>
<packaging>jar</packaging>

View File

@ -6,7 +6,7 @@
<parent>
<groupId>org.ssssssss</groupId>
<artifactId>magic-api-plugins</artifactId>
<version>2.1.0</version>
<version>2.1.1</version>
</parent>
<artifactId>magic-api-plugin-task</artifactId>
<packaging>jar</packaging>

View File

@ -1,5 +1,5 @@
{
"name": "magic-test",
"name": "magic-task",
"version": "1.0.0",
"description": "",
"main": "index.js",

View File

@ -6,10 +6,10 @@
<parent>
<groupId>org.ssssssss</groupId>
<artifactId>magic-api-parent</artifactId>
<version>2.1.0</version>
<version>2.1.1</version>
</parent>
<artifactId>magic-api-plugins</artifactId>
<version>2.1.0</version>
<version>2.1.1</version>
<packaging>pom</packaging>
<name>magic-api-plugins</name>
<description>auto generate http api</description>

View File

@ -6,7 +6,7 @@
<parent>
<groupId>org.ssssssss</groupId>
<artifactId>magic-api-servlet</artifactId>
<version>2.1.0</version>
<version>2.1.1</version>
</parent>
<artifactId>magic-api-servlet-jakarta</artifactId>
<packaging>jar</packaging>

View File

@ -21,7 +21,8 @@ public class MagicJakartaCookie implements MagicCookie {
return cookie.getValue();
}
public Cookie getOriginCookie(){
return cookie;
@Override
public <T> T getCookie() {
return (T) cookie;
}
}

View File

@ -116,6 +116,11 @@ public class MagicJakartaHttpServletRequest implements MagicHttpServletRequest {
return request.getUserPrincipal();
}
@Override
public <T> T getRequest() {
return (T) request;
}
public static class ArgumentsResolver implements HandlerMethodArgumentResolver {

View File

@ -39,8 +39,17 @@ public class MagicJakartaHttpServletResponse implements MagicHttpServletResponse
@Override
public void addCookie(MagicCookie cookie) {
MagicJakartaCookie javaEECookie = (MagicJakartaCookie) cookie;
response.addCookie(javaEECookie.getOriginCookie());
response.addCookie(cookie.getCookie());
}
@Override
public void setContentType(String contentType) {
response.setContentType(contentType);
}
@Override
public void setCharacterEncoding(String characterEncoding) {
response.setCharacterEncoding(characterEncoding);
}
@Override
@ -53,6 +62,11 @@ public class MagicJakartaHttpServletResponse implements MagicHttpServletResponse
return response.getHeaderNames();
}
@Override
public <T> T getResponse() {
return (T) response;
}
public static class ArgumentsResolver implements HandlerMethodArgumentResolver {
@Override

View File

@ -6,7 +6,7 @@ import org.ssssssss.magicapi.core.servlet.MagicHttpSession;
public class MagicJakartaHttpSession implements MagicHttpSession {
private HttpSession session;
private final HttpSession session;
public MagicJakartaHttpSession(HttpSession session) {
this.session = session;
@ -21,4 +21,9 @@ public class MagicJakartaHttpSession implements MagicHttpSession {
public void setAttribute(String key, Object value) {
session.setAttribute(key, value);
}
@Override
public <T> T getSession() {
return (T) session;
}
}

View File

@ -6,7 +6,7 @@
<parent>
<groupId>org.ssssssss</groupId>
<artifactId>magic-api-servlet</artifactId>
<version>2.1.0</version>
<version>2.1.1</version>
</parent>
<artifactId>magic-api-servlet-javaee</artifactId>
<packaging>jar</packaging>

View File

@ -22,7 +22,8 @@ public class MagicJavaEECookie implements MagicCookie {
return cookie.getValue();
}
public Cookie getOriginCookie() {
return cookie;
@Override
public <T> T getCookie() {
return (T) cookie;
}
}

View File

@ -116,6 +116,11 @@ public class MagicJavaEEHttpServletRequest implements MagicHttpServletRequest {
return request.getUserPrincipal();
}
@Override
public <T> T getRequest() {
return (T) request;
}
public static class ArgumentsResolver implements HandlerMethodArgumentResolver {
@Override

View File

@ -39,8 +39,17 @@ public class MagicJavaEEHttpServletResponse implements MagicHttpServletResponse
@Override
public void addCookie(MagicCookie cookie) {
MagicJavaEECookie javaEECookie = (MagicJavaEECookie) cookie;
response.addCookie(javaEECookie.getOriginCookie());
response.addCookie(cookie.getCookie());
}
@Override
public void setContentType(String contentType) {
response.setContentType(contentType);
}
@Override
public void setCharacterEncoding(String characterEncoding) {
response.setCharacterEncoding(characterEncoding);
}
@Override
@ -53,6 +62,11 @@ public class MagicJavaEEHttpServletResponse implements MagicHttpServletResponse
return response.getHeaderNames();
}
@Override
public <T> T getResponse() {
return (T) response;
}
public static class ArgumentsResolver implements HandlerMethodArgumentResolver {

View File

@ -6,7 +6,7 @@ import javax.servlet.http.HttpSession;
public class MagicJavaEEHttpSession implements MagicHttpSession {
private HttpSession session;
private final HttpSession session;
public MagicJavaEEHttpSession(HttpSession session) {
this.session = session;
@ -21,4 +21,9 @@ public class MagicJavaEEHttpSession implements MagicHttpSession {
public void setAttribute(String key, Object value) {
session.setAttribute(key, value);
}
@Override
public <T> T getSession() {
return (T) session;
}
}

View File

@ -48,8 +48,8 @@ public class MagicJavaEEServletConfiguration implements WebMvcConfigurer {
@Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> resolvers) {
resolvers.add(new MagicJavaEEHttpServletRequest.ArgumentsResolver());
resolvers.add(new MagicJavaEEHttpServletResponse.ArgumentsResolver());
resolvers.add(0, new MagicJavaEEHttpServletRequest.ArgumentsResolver());
resolvers.add(0, new MagicJavaEEHttpServletResponse.ArgumentsResolver());
}
@Bean

View File

@ -6,7 +6,7 @@
<parent>
<groupId>org.ssssssss</groupId>
<artifactId>magic-api-parent</artifactId>
<version>2.1.0</version>
<version>2.1.1</version>
</parent>
<artifactId>magic-api-servlet</artifactId>
<packaging>pom</packaging>

View File

@ -6,7 +6,7 @@
<parent>
<groupId>org.ssssssss</groupId>
<artifactId>magic-api-parent</artifactId>
<version>2.1.0</version>
<version>2.1.1</version>
</parent>
<artifactId>magic-api-spring-boot-starter</artifactId>
<packaging>jar</packaging>

View File

@ -6,7 +6,7 @@
<parent>
<groupId>org.ssssssss</groupId>
<artifactId>magic-api-parent</artifactId>
<version>2.1.0</version>
<version>2.1.1</version>
</parent>
<artifactId>magic-api</artifactId>
<packaging>jar</packaging>

View File

@ -5,4 +5,6 @@ public interface MagicCookie {
String getName();
String getValue();
<T> T getCookie();
}

View File

@ -41,6 +41,8 @@ public interface MagicHttpServletRequest {
MultipartRequest resolveMultipart();
Principal getUserPrincipal();
<T> T getRequest();
}

View File

@ -14,7 +14,13 @@ public interface MagicHttpServletResponse {
public void addCookie(MagicCookie cookie);
public void setContentType(String contentType);
public void setCharacterEncoding(String characterEncoding);
public OutputStream getOutputStream() throws IOException;
public Collection<String> getHeaderNames();
public <T> T getResponse();
}

View File

@ -5,4 +5,6 @@ public interface MagicHttpSession {
Object getAttribute(String key);
void setAttribute(String key, Object value);
<T> T getSession();
}

View File

@ -6,7 +6,6 @@ import org.slf4j.LoggerFactory;
import org.springframework.core.io.ClassPathResource;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.util.ResourceUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@ -22,7 +21,6 @@ import org.ssssssss.magicapi.core.service.MagicAPIService;
import org.ssssssss.magicapi.core.servlet.MagicHttpServletRequest;
import org.ssssssss.magicapi.core.servlet.MagicHttpServletResponse;
import org.ssssssss.magicapi.modules.db.SQLModule;
import org.ssssssss.magicapi.modules.servlet.ResponseModule;
import org.ssssssss.magicapi.utils.ClassScanner;
import org.ssssssss.magicapi.utils.IoUtils;
import org.ssssssss.magicapi.utils.SignUtils;
@ -33,10 +31,8 @@ import org.ssssssss.script.ScriptClass;
import org.ssssssss.script.parsing.Span;
import org.ssssssss.script.parsing.Tokenizer;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.*;
import java.net.URLEncoder;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.*;
@ -256,37 +252,45 @@ public class MagicWorkbenchController extends MagicController implements MagicEx
}
@RequestMapping(value = "/config-js")
@ResponseBody
@Valid(requireLogin = false)
public ResponseEntity<?> configJs() {
ResponseEntity.BodyBuilder responseBuilder = ResponseEntity.ok().contentType(MediaType.parseMediaType("application/javascript"));
public void configJs(MagicHttpServletResponse response) throws IOException {
response.setContentType("application/javascript");
response.setCharacterEncoding("UTF-8");
byte[] bytes = "var MAGIC_EDITOR_CONFIG = {}".getBytes();
if (configuration.getEditorConfig() != null) {
try {
String path = configuration.getEditorConfig();
if (path.startsWith(ResourceUtils.CLASSPATH_URL_PREFIX)) {
path = path.substring(ResourceUtils.CLASSPATH_URL_PREFIX.length());
return responseBuilder.body(IoUtils.bytes(new ClassPathResource(path).getInputStream()));
bytes = IoUtils.bytes(new ClassPathResource(path).getInputStream());
}
File file = ResourceUtils.getFile(configuration.getEditorConfig());
return responseBuilder.body(Files.readAllBytes(Paths.get(file.toURI())));
bytes = Files.readAllBytes(Paths.get(file.toURI()));
} catch (IOException e) {
logger.warn("读取编辑器配置文件{}失败", configuration.getEditorConfig());
}
}
return responseBuilder.body("var MAGIC_EDITOR_CONFIG = {}".getBytes());
try (OutputStream stream = response.getOutputStream()) {
stream.write(bytes);
stream.flush();
}
}
@RequestMapping("/download")
@Valid(authorization = Authorization.DOWNLOAD)
@ResponseBody
public ResponseEntity<?> download(String groupId, @RequestBody(required = false) List<SelectedResource> resources, MagicHttpServletRequest request) throws IOException {
public void download(String groupId, @RequestBody(required = false) List<SelectedResource> resources, MagicHttpServletRequest request, MagicHttpServletResponse response) throws IOException {
isTrue(allowVisit(request, Authorization.DOWNLOAD), PERMISSION_INVALID);
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
ByteArrayOutputStream os = new ByteArrayOutputStream();
magicAPIService.download(groupId, resources, os);
String filename = "magic-api-all.zip";
if (StringUtils.isBlank(groupId)) {
return ResponseModule.download(os.toByteArray(), "magic-api-group.zip");
} else {
return ResponseModule.download(os.toByteArray(), "magic-api-all.zip");
filename = "magic-api-group.zip";
}
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=" + URLEncoder.encode(filename, "UTF-8"));
try (OutputStream stream = response.getOutputStream()) {
stream.write(os.toByteArray());
stream.flush();
}
}

View File

@ -122,8 +122,4 @@ public class MybatisParser {
Node item = node.getAttributes().getNamedItem(attributeKey);
return item != null ? item.getNodeValue() : null;
}
public static void main(String[] args) {
System.out.println(escapeXml("<where> <if test=\"111\"> and 1 < 2 and 1<6 and 2>#{666}</if></where>"));
}
}

View File

@ -29,11 +29,6 @@ public class TrimSqlNode extends SqlNode {
*/
protected String suffixOverrides;
public static void main(String[] args) {
String sql = "11111?,";
System.out.println(sql.substring(0, sql.lastIndexOf(",")));
}
public void setPrefix(String prefix) {
this.prefix = prefix;
}

View File

@ -6,7 +6,7 @@
<parent>
<groupId>org.ssssssss</groupId>
<artifactId>magic-api-parent</artifactId>
<version>2.1.0</version>
<version>2.1.1</version>
</parent>
<artifactId>magic-editor</artifactId>
<packaging>jar</packaging>

View File

@ -1 +1 @@
import"./app.b15d6e90.js";import"./vue.6f28a6f0.js";import"./axios.23e7b955.js";import"./vendor.cc41f120.js";const s=function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const e of document.querySelectorAll('link[rel="modulepreload"]'))i(e);new MutationObserver(e=>{for(const r of e)if(r.type==="childList")for(const o of r.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&i(o)}).observe(document,{childList:!0,subtree:!0});function n(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerpolicy&&(r.referrerPolicy=e.referrerpolicy),e.crossorigin==="use-credentials"?r.credentials="include":e.crossorigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function i(e){if(e.ep)return;e.ep=!0;const r=n(e);fetch(e.href,r)}};s();
import"./app.a9d6cb03.js";import"./vue.6f28a6f0.js";import"./axios.23e7b955.js";import"./vendor.3be44c84.js";const s=function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const e of document.querySelectorAll('link[rel="modulepreload"]'))i(e);new MutationObserver(e=>{for(const r of e)if(r.type==="childList")for(const o of r.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&i(o)}).observe(document,{childList:!0,subtree:!0});function n(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerpolicy&&(r.referrerPolicy=e.referrerpolicy),e.crossorigin==="use-credentials"?r.credentials="include":e.crossorigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function i(e){if(e.ep)return;e.ep=!0;const r=n(e);fetch(e.href,r)}};s();

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -23,12 +23,12 @@
@keyframes stretch {0% {transform: scale(1);}25% {transform: scale(1.2);}50% {transform: scale(1);}100% {transform: scale(1);}}
@keyframes blink-loading {0% {opacity: 1;}50% {opacity: 0.5;}100% {opacity: 1;}}
</style>
<script type="module" crossorigin src="./assets/index.0cc26bfc.js"></script>
<script type="module" crossorigin src="./assets/index.ac5bc35e.js"></script>
<link rel="modulepreload" href="./assets/vue.6f28a6f0.js">
<link rel="modulepreload" href="./assets/axios.23e7b955.js">
<link rel="modulepreload" href="./assets/vendor.cc41f120.js">
<link rel="modulepreload" href="./assets/app.b15d6e90.js">
<link rel="stylesheet" href="./assets/style.63f02940.css">
<link rel="modulepreload" href="./assets/vendor.3be44c84.js">
<link rel="modulepreload" href="./assets/app.a9d6cb03.js">
<link rel="stylesheet" href="./assets/style.07c46cc4.css">
</head>
<body>
<div class="magic-loading-wrapper" id="magic-loading-wrapper">
@ -49,7 +49,7 @@
function showMaLoadingText(){
let defaultConfig = {
title: 'magic-api',
version: '2.1.0'
version: '2.1.1'
}
defaultConfig = { ...defaultConfig, ...window.MAGIC_EDITOR_CONFIG }
let $dom = document.getElementById('magic-loading-text')

View File

@ -5,7 +5,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.ssssssss</groupId>
<artifactId>magic-api-parent</artifactId>
<version>2.1.0</version>
<version>2.1.1</version>
<packaging>pom</packaging>
<name>magic-api-parent</name>
<description>auto generate http api</description>
@ -30,7 +30,7 @@
</scm>
<properties>
<spring-boot.version>2.4.5</spring-boot.version>
<magic-script.version>1.8.7</magic-script.version>
<magic-script.version>1.8.8</magic-script.version>
<commons-compress.version>1.21</commons-compress.version>
<commons-io.version>2.7</commons-io.version>
<commons-text.version>1.10.0</commons-text.version>