From 58a0897ab7f9fc81249a98eb3332cd44d5452f30 Mon Sep 17 00:00:00 2001 From: Weix Sun Date: Sun, 18 Dec 2022 01:41:00 +0800 Subject: [PATCH] Support writing code to different modules Closes gh-26 --- .../extension/SampleCodeContributor.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/initializer-generator/src/main/java/com/alibaba/initializer/generation/extension/SampleCodeContributor.java b/initializer-generator/src/main/java/com/alibaba/initializer/generation/extension/SampleCodeContributor.java index 85f43bf..058e71e 100644 --- a/initializer-generator/src/main/java/com/alibaba/initializer/generation/extension/SampleCodeContributor.java +++ b/initializer-generator/src/main/java/com/alibaba/initializer/generation/extension/SampleCodeContributor.java @@ -27,6 +27,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Collectors; @@ -38,13 +39,14 @@ import com.alibaba.initializer.core.template.RepoRenderResult; import com.alibaba.initializer.core.template.loader.RootRepoTemplateLoader; import com.alibaba.initializer.generation.constants.BootstrapTemplateRenderConstants; -import com.alibaba.initializer.metadata.EnhancedDependency; import com.alibaba.initializer.metadata.Architecture; import com.alibaba.initializer.metadata.DependencyArchConfig; +import com.alibaba.initializer.metadata.EnhancedDependency; import com.alibaba.initializer.metadata.InitializerMetadata; import com.alibaba.initializer.metadata.Module; import com.alibaba.initializer.metadata.ModuleConfig; import com.alibaba.initializer.project.InitializerProjectDescription; +import com.google.common.collect.Sets; import io.spring.initializr.generator.buildsystem.Dependency; import io.spring.initializr.generator.language.Language; import io.spring.initializr.generator.language.SourceStructure; @@ -69,6 +71,11 @@ public class SampleCodeContributor implements ProjectContributor { private static final String PACKAGE_PATTEN = "package ([a-z0-9\\.]+)\\;"; + /** + * Constant for the resource path separator. + */ + private static final String RESOURCE_PATH_SEPARATOR = "/"; + @Autowired private Module module; @@ -100,8 +107,11 @@ public void contribute(Path projectRoot) throws IOException { SourceStructure structure = description.getBuildSystem().getMainSource(projectRoot, language); Map dependencyRepoUris = getRepos(description); - - dependencyRepoUris.forEach((dependency, uri) -> { + Set uris = Sets.newHashSet(dependencyRepoUris.values()); + dependencyRepoUris.values().forEach(uri -> { + uris.add(String.join(RESOURCE_PATH_SEPARATOR, uri, module.getName())); + }); + uris.forEach(uri -> { CodeTemplateRepo repo = loader.load(uri); RepoRenderResult result = renderer.render(repo, params);