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..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,7 +90,11 @@ 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")); + 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);