diff --git a/initializer-backend/src/main/java/com/schbrain/archetype/initializer/config/WebConfiguration.java b/initializer-backend/src/main/java/com/schbrain/archetype/initializer/config/WebConfiguration.java
index 1e7a6a1bdc80885b704df9a8bf9b6f23916a6471..910edb4ca6488f140ea7ad153c526d9de5fffc05 100644
--- a/initializer-backend/src/main/java/com/schbrain/archetype/initializer/config/WebConfiguration.java
+++ b/initializer-backend/src/main/java/com/schbrain/archetype/initializer/config/WebConfiguration.java
@@ -1,10 +1,10 @@
package com.schbrain.archetype.initializer.config;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.cloud.CloudPlatform;
+import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
-import org.springframework.core.env.Environment;
-import org.springframework.web.servlet.config.annotation.CorsRegistry;
+import org.springframework.web.cors.CorsConfiguration;
+import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
+import org.springframework.web.filter.CorsFilter;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
/**
@@ -14,20 +14,19 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration(proxyBeanMethods = false)
public class WebConfiguration implements WebMvcConfigurer {
- @Autowired
- private Environment environment;
+ @Bean
+ public CorsFilter corsFilter() {
+ CorsConfiguration corsConfiguration = new CorsConfiguration();
+ corsConfiguration.setAllowCredentials(true);
+ corsConfiguration.addAllowedOriginPattern("*");
+ corsConfiguration.addAllowedHeader("*");
+ corsConfiguration.addExposedHeader("*");
+ corsConfiguration.addAllowedMethod("*");
- @Override
- public void addCorsMappings(CorsRegistry registry) {
- if (CloudPlatform.KUBERNETES.isActive(environment)) {
- return;
- }
- registry.addMapping("/**")
- .allowedOrigins("*")
- .allowedMethods("*")
- .allowedHeaders("*")
- .exposedHeaders("*")
- .maxAge(3600);
+ UrlBasedCorsConfigurationSource configurationSource = new UrlBasedCorsConfigurationSource();
+ configurationSource.registerCorsConfiguration("/**", corsConfiguration);
+
+ return new CorsFilter(configurationSource);
}
}
\ No newline at end of file
diff --git a/initializer-backend/src/main/java/com/schbrain/archetype/initializer/config/properties/ArchetypeProperties.java b/initializer-backend/src/main/java/com/schbrain/archetype/initializer/config/properties/ArchetypeProperties.java
new file mode 100644
index 0000000000000000000000000000000000000000..b05abf90bc6620f7caa913f4c29f231444cb789d
--- /dev/null
+++ b/initializer-backend/src/main/java/com/schbrain/archetype/initializer/config/properties/ArchetypeProperties.java
@@ -0,0 +1,16 @@
+package com.schbrain.archetype.initializer.config.properties;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * @author liaozan
+ * @since 2022/5/11
+ */
+@Data
+@ConfigurationProperties(prefix = "archetype")
+public class ArchetypeProperties {
+
+ private String sourceUrl;
+
+}
\ No newline at end of file
diff --git a/initializer-backend/src/main/java/com/schbrain/archetype/initializer/runner/ArchetypePreparer.java b/initializer-backend/src/main/java/com/schbrain/archetype/initializer/runner/ArchetypePreparer.java
index cdd7b5e7d2b787ed2798de9d6e81db139f8ba696..69ffbfd86910b99ff014c8eb2a64e932d771a31c 100644
--- a/initializer-backend/src/main/java/com/schbrain/archetype/initializer/runner/ArchetypePreparer.java
+++ b/initializer-backend/src/main/java/com/schbrain/archetype/initializer/runner/ArchetypePreparer.java
@@ -2,14 +2,17 @@ package com.schbrain.archetype.initializer.runner;
import cn.hutool.core.io.FileUtil;
import cn.hutool.system.SystemUtil;
+import com.schbrain.archetype.initializer.config.properties.ArchetypeProperties;
import com.schbrain.archetype.initializer.maven.MavenUtils;
import com.schbrain.common.exception.BaseException;
import lombok.extern.slf4j.Slf4j;
import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.api.errors.GitAPIException;
import org.eclipse.jgit.transport.TagOpt;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.stereotype.Component;
import java.io.File;
@@ -20,9 +23,11 @@ import java.io.File;
*/
@Slf4j
@Component
+@EnableConfigurationProperties(ArchetypeProperties.class)
public class ArchetypePreparer implements ApplicationRunner {
- private static final String ARCHETYPE_REPO_URL = "http://gitlab.schbrain.com/gitlab/tools/schbrain-archetype.git";
+ @Autowired
+ private ArchetypeProperties archetypeProperties;
@Override
public void run(ApplicationArguments args) {
@@ -47,9 +52,9 @@ public class ArchetypePreparer implements ApplicationRunner {
.setTagOption(TagOpt.FETCH_TAGS)
.setNoCheckout(false)
.setDirectory(archetypeTemplateDirectory)
- .setURI(ARCHETYPE_REPO_URL)
+ .setURI(archetypeProperties.getSourceUrl())
.call()) {
- log.info("Success checkout archetype source from {}", ARCHETYPE_REPO_URL);
+ log.info("Success checkout archetype source from {}", archetypeProperties.getSourceUrl());
} catch (GitAPIException e) {
throw new BaseException("Failed to checkout archetype source from git repository", e);
}
diff --git a/initializer-backend/src/main/java/com/schbrain/archetype/initializer/service/ArchetypeService.java b/initializer-backend/src/main/java/com/schbrain/archetype/initializer/service/ArchetypeService.java
index 6bae63a899ed84aa09574305959a30f92ee70def..baeeddf65e50600e294814c9ce80cf065a31ee6a 100644
--- a/initializer-backend/src/main/java/com/schbrain/archetype/initializer/service/ArchetypeService.java
+++ b/initializer-backend/src/main/java/com/schbrain/archetype/initializer/service/ArchetypeService.java
@@ -3,13 +3,11 @@ package com.schbrain.archetype.initializer.service;
import cn.hutool.cache.impl.TimedCache;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.ZipUtil;
-import com.schbrain.archetype.initializer.config.properties.GitProperties;
import com.schbrain.archetype.initializer.maven.MavenUtils;
import com.schbrain.archetype.initializer.param.ArchetypeGenerateParam;
import com.schbrain.archetype.initializer.response.PreviewFileTree;
import com.schbrain.archetype.initializer.runner.ArchetypePreparer;
import com.schbrain.common.util.ServletUtils;
-import org.gitlab4j.api.GitLabApi;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ContentDisposition;
import org.springframework.http.HttpHeaders;
@@ -40,10 +38,6 @@ public class ArchetypeService {
@Autowired
private ArchetypePreparer archetypePreparer;
- @Autowired
- private GitLabApi gitLabApi;
- @Autowired
- private GitProperties gitProperties;
public String generate(ArchetypeGenerateParam param) {
String generateId = MavenUtils.generate(param);
diff --git a/initializer-backend/src/main/resources/application.yaml b/initializer-backend/src/main/resources/application.yaml
index 2a1bdfefb0bf2f4af1e8d8e7c2776236ff389cad..2f74af6005a6b56001c99134f796819ea1d60036 100644
--- a/initializer-backend/src/main/resources/application.yaml
+++ b/initializer-backend/src/main/resources/application.yaml
@@ -6,4 +6,6 @@ spring:
add-mappings: true
gitlab:
server-url: http://gitlab.schbrain.com/gitlab
- personal-access-token: AzRH1rZ2HysUkHeycsaU
\ No newline at end of file
+ personal-access-token: AzRH1rZ2HysUkHeycsaU
+archetype:
+ source-url: http://gitlab.schbrain.com/gitlab/tools/schbrain-archetype.git
\ No newline at end of file
diff --git a/initializer-ui/package.json b/initializer-ui/package.json
index f4014f47aa80b5deede4512408c6436bf98ebb8d..2baab52a741b0aea81fbdfdb141cd75ad69b7fe3 100644
--- a/initializer-ui/package.json
+++ b/initializer-ui/package.json
@@ -6,16 +6,16 @@
"build": "vite build --mode production"
},
"dependencies": {
- "vue": "^3.2.33",
+ "vue": "^3.2.37",
"axios": "^0.27.2",
- "ant-design-vue": "^3.2.2",
- "highlight.js": "^11.5.1",
+ "ant-design-vue": "^3.2.10",
+ "highlight.js": "^11.6.0",
"@highlightjs/vue-plugin": "^2.1.0"
},
"devDependencies": {
- "@vitejs/plugin-vue": "^2.3.1",
- "typescript": "^4.6.4",
- "vite": "^2.9.7",
- "vue-tsc": "^0.34.11"
+ "@vitejs/plugin-vue": "^3.0.1",
+ "typescript": "^4.7.4",
+ "vite": "^3.0.4",
+ "vue-tsc": "^0.39.4"
}
}
\ No newline at end of file
diff --git a/initializer-ui/pom.xml b/initializer-ui/pom.xml
index 35d263f9d259e9f2fdcb2280e3a1b51fdbdb4aa4..33ef794c0c87f1ef799265521ab703e1b3be7436 100644
--- a/initializer-ui/pom.xml
+++ b/initializer-ui/pom.xml
@@ -20,7 +20,7 @@
frontend-maven-plugin
${frontend-maven-plugin.version}
- v17.9.0
+ v18.7.0
https://mirrors.tuna.tsinghua.edu.cn/nodejs-release/