in azure-webapp-maven-plugin/src/main/java/com/microsoft/azure/maven/webapp/ConfigMojo.java [249:294]
private WebAppConfiguration getWebAppConfiguration(WebAppConfiguration configuration)
throws MojoFailureException {
final WebAppConfiguration.WebAppConfigurationBuilder<?, ?> builder = configuration.toBuilder();
final String defaultSubscriptionId = StringUtils.isNotBlank(configuration.subscriptionId) ? configuration.subscriptionId : null;
final String subscriptionId = StringUtils.isNotBlank(defaultSubscriptionId) ? queryer.assureInputFromUser("subscriptionId", defaultSubscriptionId,
SUBSCRIPTION_ID_PATTERN, null, null) : null;
final String defaultAppName =
getDefaultValue(configuration.appName, getProject().getArtifactId(), APP_NAME_PATTERN);
final String appName = queryer.assureInputFromUser("appName", defaultAppName,
APP_NAME_PATTERN, null, null);
final String defaultResourceGroup = getDefaultValue(configuration.resourceGroup,
String.format("%s-rg", appName), RESOURCE_GROUP_PATTERN);
final String resourceGroup = queryer.assureInputFromUser("resourceGroup",
defaultResourceGroup,
RESOURCE_GROUP_PATTERN, null, null);
final String defaultRegion = configuration.getRegionOrDefault();
final String region = queryer.assureInputFromUser("region", defaultRegion, NOT_EMPTY_REGEX,
null, null);
final boolean isJBoss = isJBossRuntime(WebContainer.fromString(configuration.getWebContainer()));
final PricingTier defaultPricingTierFromRuntime = isJBoss ?
WebAppConfiguration.DEFAULT_JBOSS_PRICING_TIER : WebAppConfiguration.DEFAULT_PRICINGTIER;
final String currentPricingTier = configuration.getPricingTier();
final List<String> availablePriceList = getAvailablePricingTierList(configuration.getOs(), WebContainer.fromString(configuration.getWebContainer()));
String defaultPricingTier = currentPricingTier;
if (availablePriceList.stream().noneMatch(price -> StringUtils.equalsIgnoreCase(price, currentPricingTier))) {
defaultPricingTier = defaultPricingTierFromRuntime.toString();
if (StringUtils.isNotBlank(currentPricingTier)) {
Log.warn(String.format(PRICE_TIER_NOT_AVAIL, currentPricingTier, defaultPricingTier));
}
}
final String pricingTier = queryer.assureInputFromUser("pricingTier", defaultPricingTier,
availablePriceList, String.format(PRICING_TIER_PROMPT, defaultPricingTier));
return builder
.subscriptionId(subscriptionId)
.appName(appName)
.resourceGroup(resourceGroup)
.region(Region.fromName(region))
.pricingTier(pricingTier)
.build();
}