From aa7e85e44817200921a0045b9b5ca95a6e1b642a Mon Sep 17 00:00:00 2001 From: Pan Li Date: Thu, 27 Sep 2018 18:22:08 +0800 Subject: [PATCH 1/2] Use MicroService modules for BI. (#191) Signed-off-by: Pan Li --- .../azure/springcloudplayground/controller/MainController.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/microsoft/azure/springcloudplayground/controller/MainController.java b/src/main/java/com/microsoft/azure/springcloudplayground/controller/MainController.java index ea3c3f8..f922e82 100644 --- a/src/main/java/com/microsoft/azure/springcloudplayground/controller/MainController.java +++ b/src/main/java/com/microsoft/azure/springcloudplayground/controller/MainController.java @@ -88,7 +88,8 @@ private void addBuildInformation(@NonNull Map model) { private void triggerGenerateEvent(@NonNull List services) { final Map properties = new HashMap<>(); - services.forEach(s -> properties.put(s.getName(), "selected")); + services.stream().map(MicroService::getModules).flatMap(List::stream) + .forEach(m -> properties.putIfAbsent(m, "selected")); this.telemetryProxy.trackEvent(TELEMETRY_EVENT_GENERATE, properties); } From e662f0c6a1ff15d8bbc17b9a95e777410921aa88 Mon Sep 17 00:00:00 2001 From: Pan Li Date: Fri, 28 Sep 2018 10:01:02 +0800 Subject: [PATCH 2/2] Align the schema of modules in use for BI. (#193) Signed-off-by: Pan Li --- .../controller/MainController.java | 9 +++++++-- .../springcloudplayground/module/ModuleNames.java | 12 +++++++++--- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/microsoft/azure/springcloudplayground/controller/MainController.java b/src/main/java/com/microsoft/azure/springcloudplayground/controller/MainController.java index f922e82..467d8dc 100644 --- a/src/main/java/com/microsoft/azure/springcloudplayground/controller/MainController.java +++ b/src/main/java/com/microsoft/azure/springcloudplayground/controller/MainController.java @@ -6,6 +6,7 @@ import com.microsoft.azure.springcloudplayground.generator.ProjectRequest; import com.microsoft.azure.springcloudplayground.github.GithubOperator; import com.microsoft.azure.springcloudplayground.metadata.GeneratorMetadataProvider; +import com.microsoft.azure.springcloudplayground.module.ModuleNames; import com.microsoft.azure.springcloudplayground.util.PropertyLoader; import com.microsoft.azure.springcloudplayground.util.TelemetryProxy; import com.samskivert.mustache.Mustache; @@ -39,6 +40,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; import static org.apache.commons.codec.digest.DigestUtils.sha256Hex; @@ -88,8 +90,11 @@ private void addBuildInformation(@NonNull Map model) { private void triggerGenerateEvent(@NonNull List services) { final Map properties = new HashMap<>(); - services.stream().map(MicroService::getModules).flatMap(List::stream) - .forEach(m -> properties.putIfAbsent(m, "selected")); + final List allModules = ModuleNames.getModuleNames(); + final List selectModules = + services.stream().map(MicroService::getModules).flatMap(List::stream).collect(Collectors.toList()); + + allModules.forEach(m -> properties.putIfAbsent(m, String.valueOf(selectModules.contains(m)))); this.telemetryProxy.trackEvent(TELEMETRY_EVENT_GENERATE, properties); } diff --git a/src/main/java/com/microsoft/azure/springcloudplayground/module/ModuleNames.java b/src/main/java/com/microsoft/azure/springcloudplayground/module/ModuleNames.java index 6307178..2854a10 100644 --- a/src/main/java/com/microsoft/azure/springcloudplayground/module/ModuleNames.java +++ b/src/main/java/com/microsoft/azure/springcloudplayground/module/ModuleNames.java @@ -5,9 +5,7 @@ import lombok.NoArgsConstructor; import org.springframework.lang.NonNull; -import java.util.Collections; -import java.util.HashMap; -import java.util.Map; +import java.util.*; @NoArgsConstructor(access = AccessLevel.PRIVATE) public class ModuleNames { @@ -36,6 +34,10 @@ public class ModuleNames { public static final String AZURE_KEY_VAULT = "azure-keyvault-secrets"; + private static final List MODULE_NAMES = Arrays.asList(CLOUD_GATEWAY, CLOUD_CONFIG_SERVER, + CLOUD_EUREKA_SERVER, CLOUD_HYSTRIX_DASHBOARD, AZURE_CACHE, AZURE_COSMOSDB, + AZURE_STORAGE, AZURE_EVENTHUB_BINDER, AZURE_ACTIVE_DIRECTORY, AZURE_KEY_VAULT); + private static final Map NAME_TO_MODULE; static { @@ -56,6 +58,10 @@ public class ModuleNames { NAME_TO_MODULE = Collections.unmodifiableMap(map); } + public static List getModuleNames() { + return MODULE_NAMES; + } + public static Module toModule(@NonNull String moduleName) { Module module = NAME_TO_MODULE.get(moduleName);