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/