From e3112811b7b9bdf60796d7fbf6d2eeaa832616b5 Mon Sep 17 00:00:00 2001 From: Stephane Nicoll Date: Thu, 3 Nov 2016 16:00:24 +0100 Subject: [PATCH] Prevent retrieval of Sagan metadata on startup This commit makes sure that sagan metadata are only requested on first use and when the cache infrastructure is active. Closes gh-278 --- .../project/AbstractInitializrController.groovy | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/initializr-web/src/main/groovy/io/spring/initializr/web/project/AbstractInitializrController.groovy b/initializr-web/src/main/groovy/io/spring/initializr/web/project/AbstractInitializrController.groovy index ea89253e..8a36a46a 100644 --- a/initializr-web/src/main/groovy/io/spring/initializr/web/project/AbstractInitializrController.groovy +++ b/initializr-web/src/main/groovy/io/spring/initializr/web/project/AbstractInitializrController.groovy @@ -16,7 +16,6 @@ package io.spring.initializr.web.project -import javax.annotation.PostConstruct import javax.servlet.http.HttpServletResponse import io.spring.initializr.generator.InvalidProjectRequestException @@ -37,7 +36,7 @@ abstract class AbstractInitializrController { protected final InitializrMetadataProvider metadataProvider private final GroovyTemplate groovyTemplate - private boolean forceSsl + private Boolean forceSsl protected AbstractInitializrController(InitializrMetadataProvider metadataProvider, GroovyTemplate groovyTemplate) { @@ -45,9 +44,12 @@ abstract class AbstractInitializrController { this.groovyTemplate = groovyTemplate } - @PostConstruct - void initialize() { - forceSsl = metadataProvider.get().configuration.env.forceSsl + boolean isForceSsl() { + if (this.forceSsl == null) { + this.forceSsl = metadataProvider.get().configuration.env.forceSsl + } + return this.forceSsl; + } @ExceptionHandler @@ -86,7 +88,7 @@ abstract class AbstractInitializrController { */ protected String generateAppUrl() { def builder = ServletUriComponentsBuilder.fromCurrentServletMapping() - if (this.forceSsl) { + if (isForceSsl()) { builder.scheme('https') } builder.build()