diff --git a/jkube-kit/common/src/main/java/org/eclipse/jkube/kit/common/util/PropertiesUtil.java b/jkube-kit/common/src/main/java/org/eclipse/jkube/kit/common/util/PropertiesUtil.java
index 932c82a554..5d7c1edfa6 100644
--- a/jkube-kit/common/src/main/java/org/eclipse/jkube/kit/common/util/PropertiesUtil.java
+++ b/jkube-kit/common/src/main/java/org/eclipse/jkube/kit/common/util/PropertiesUtil.java
@@ -33,6 +33,8 @@
public class PropertiesUtil {
+ public static final String JKUBE_INTERNAL_APP_CONFIG_FILE_LOCATION = "jkube.internal.application-config-file.path";
+
private PropertiesUtil() {}
/**
@@ -102,14 +104,16 @@ public static Properties fromApplicationConfig(JavaProject javaProject, String[]
final URLClassLoader urlClassLoader = getClassLoader(javaProject);
for (String source : appConfigSources) {
final Properties properties;
+ URL applicationConfigSource = urlClassLoader.findResource(source);
if (source.endsWith(".properties")) {
- properties = getPropertiesFromResource(urlClassLoader.findResource(source));
+ properties = getPropertiesFromResource(applicationConfigSource);
} else {
- properties = getPropertiesFromYamlResource(urlClassLoader.findResource(source));
+ properties = getPropertiesFromYamlResource(applicationConfigSource);
}
// Consider only the first non-empty application config source
if (!properties.isEmpty()) {
properties.putAll(toMap(javaProject.getProperties()));
+ properties.put(JKUBE_INTERNAL_APP_CONFIG_FILE_LOCATION, applicationConfigSource);
return properties;
}
}
diff --git a/jkube-kit/common/src/main/java/org/eclipse/jkube/kit/common/util/SpringBootUtil.java b/jkube-kit/common/src/main/java/org/eclipse/jkube/kit/common/util/SpringBootUtil.java
index 186fc4c51e..669dfa9671 100644
--- a/jkube-kit/common/src/main/java/org/eclipse/jkube/kit/common/util/SpringBootUtil.java
+++ b/jkube-kit/common/src/main/java/org/eclipse/jkube/kit/common/util/SpringBootUtil.java
@@ -24,6 +24,7 @@
import org.eclipse.jkube.kit.common.JavaProject;
import org.eclipse.jkube.kit.common.Plugin;
+import static org.eclipse.jkube.kit.common.util.PropertiesUtil.JKUBE_INTERNAL_APP_CONFIG_FILE_LOCATION;
import static org.eclipse.jkube.kit.common.util.PropertiesUtil.getPropertiesFromResource;
/**
@@ -71,8 +72,13 @@ public static Properties getSpringBootApplicationProperties(String springActiveP
Properties props = YamlUtil.getPropertiesFromYamlResource(springActiveProfile, ymlResource);
props.putAll(getPropertiesFromResource(propertiesResource));
+ if (ymlResource != null) {
+ props.put(JKUBE_INTERNAL_APP_CONFIG_FILE_LOCATION, ymlResource.toString());
+ } else if (propertiesResource != null) {
+ props.put(JKUBE_INTERNAL_APP_CONFIG_FILE_LOCATION, propertiesResource.toString());
+ }
return new SpringBootPropertyPlaceholderHelper(PLACEHOLDER_PREFIX, PLACEHOLDER_SUFFIX, VALUE_SEPARATOR, true)
- .replaceAllPlaceholders(props);
+ .replaceAllPlaceholders(props);
}
/**
diff --git a/jkube-kit/common/src/test/java/org/eclipse/jkube/kit/common/util/PropertiesUtilTest.java b/jkube-kit/common/src/test/java/org/eclipse/jkube/kit/common/util/PropertiesUtilTest.java
index 5618ff6f2a..ca9e9f41e6 100644
--- a/jkube-kit/common/src/test/java/org/eclipse/jkube/kit/common/util/PropertiesUtilTest.java
+++ b/jkube-kit/common/src/test/java/org/eclipse/jkube/kit/common/util/PropertiesUtilTest.java
@@ -154,8 +154,10 @@ void yml() {
// When
Properties properties = PropertiesUtil.fromApplicationConfig(javaProject, new String[]{"application.yml"});
// Then
- assertThat(properties).containsExactly(
- entry("application.name", "name-via-yaml"));
+ assertThat(properties)
+ .containsOnly(
+ entry("jkube.internal.application-config-file.path", PropertiesUtilTest.class.getResource("/util/properties-util/yaml/application.yml")),
+ entry("application.name", "name-via-yaml"));
}
@Test
@@ -164,8 +166,10 @@ void properties() {
// When
Properties properties = PropertiesUtil.fromApplicationConfig(javaProject, new String[]{"application.properties"});
// Then
- assertThat(properties).containsExactly(
- entry("application.name", "name-via-properties"));
+ assertThat(properties)
+ .containsOnly(
+ entry("jkube.internal.application-config-file.path", PropertiesUtilTest.class.getResource("/util/properties-util/properties/application.properties")),
+ entry("application.name", "name-via-properties"));
}
@Test
@@ -174,8 +178,10 @@ void multipleSources_thenFirstOneTakesPrecedence() {
// When
Properties properties = PropertiesUtil.fromApplicationConfig(javaProject, new String[]{"application.properties", "application.yml"});
// Then
- assertThat(properties).containsExactly(
- entry("application.name", "name-via-properties"));
+ assertThat(properties)
+ .containsOnly(
+ entry("jkube.internal.application-config-file.path", PropertiesUtilTest.class.getResource("/util/properties-util/properties/application.properties")),
+ entry("application.name", "name-via-properties"));
}
@Test
@@ -184,8 +190,10 @@ void multipleSourcesWithEmpty_thenFirstNonEmptyTakesPrecedence() {
// When
Properties properties = PropertiesUtil.fromApplicationConfig(javaProject, new String[]{"not-there", "application.yml", "application.properties"});
// Then
- assertThat(properties).containsExactly(
- entry("application.name", "name-via-yaml"));
+ assertThat(properties)
+ .containsOnly(
+ entry("jkube.internal.application-config-file.path", PropertiesUtilTest.class.getResource("/util/properties-util/yaml/application.yml")),
+ entry("application.name", "name-via-yaml"));
}
}
}
diff --git a/jkube-kit/common/src/test/java/org/eclipse/jkube/kit/common/util/SpringBootUtilTest.java b/jkube-kit/common/src/test/java/org/eclipse/jkube/kit/common/util/SpringBootUtilTest.java
index 44ef5a8090..7ad36ffd16 100644
--- a/jkube-kit/common/src/test/java/org/eclipse/jkube/kit/common/util/SpringBootUtilTest.java
+++ b/jkube-kit/common/src/test/java/org/eclipse/jkube/kit/common/util/SpringBootUtilTest.java
@@ -57,6 +57,7 @@ void getSpringBootApplicationPropertiesLoadsStandardProperties(@TempDir File tem
Properties result = SpringBootUtil.getSpringBootApplicationProperties(cl);
//Then
assertThat(result).containsOnly(
+ entry("jkube.internal.application-config-file.path", tempDir.toPath().resolve("target/classes/application.properties").toUri().toURL().toString()),
entry("spring.application.name", "demoservice"),
entry("server.port", "9090")
);
diff --git a/jkube-kit/jkube-kit-helidon/pom.xml b/jkube-kit/jkube-kit-helidon/pom.xml
index a9fdbfd85a..edc407f53f 100644
--- a/jkube-kit/jkube-kit-helidon/pom.xml
+++ b/jkube-kit/jkube-kit-helidon/pom.xml
@@ -65,6 +65,10 @@
org.assertj
assertj-core
+
+ org.mockito
+ mockito-core
+
diff --git a/jkube-kit/jkube-kit-helidon/src/main/java/org/eclipse/jkube/helidon/enricher/HelidonHealthCheckEnricher.java b/jkube-kit/jkube-kit-helidon/src/main/java/org/eclipse/jkube/helidon/enricher/HelidonHealthCheckEnricher.java
index 470e51501f..136416ca23 100644
--- a/jkube-kit/jkube-kit-helidon/src/main/java/org/eclipse/jkube/helidon/enricher/HelidonHealthCheckEnricher.java
+++ b/jkube-kit/jkube-kit-helidon/src/main/java/org/eclipse/jkube/helidon/enricher/HelidonHealthCheckEnricher.java
@@ -16,15 +16,23 @@
import org.eclipse.jkube.kit.enricher.api.JKubeEnricherContext;
import org.eclipse.jkube.microprofile.enricher.AbstractMicroprofileHealthCheckEnricher;
+import java.util.Properties;
+
import static org.eclipse.jkube.helidon.HelidonUtils.extractPort;
import static org.eclipse.jkube.helidon.HelidonUtils.getHelidonConfiguration;
import static org.eclipse.jkube.helidon.HelidonUtils.hasHelidonHealthDependency;
import static org.eclipse.jkube.kit.common.Configs.asInteger;
+import static org.eclipse.jkube.kit.common.util.PropertiesUtil.JKUBE_INTERNAL_APP_CONFIG_FILE_LOCATION;
public class HelidonHealthCheckEnricher extends AbstractMicroprofileHealthCheckEnricher {
private static final String DEFAULT_HELIDON_PORT = "8080";
+ private final Properties helidonApplicationConfiguration;
+
public HelidonHealthCheckEnricher(JKubeEnricherContext buildContext) {
super(buildContext, "jkube-healthcheck-helidon");
+ helidonApplicationConfiguration = getHelidonConfiguration(getContext().getProject());
+ log.debug("Helidon Application Config loaded from: %s",
+ helidonApplicationConfiguration.get(JKUBE_INTERNAL_APP_CONFIG_FILE_LOCATION));
}
@Override
@@ -34,6 +42,6 @@ protected boolean shouldAddProbe() {
@Override
protected int getPort() {
- return asInteger(extractPort(getHelidonConfiguration(getContext().getProject()), DEFAULT_HELIDON_PORT));
+ return asInteger(extractPort(helidonApplicationConfiguration, DEFAULT_HELIDON_PORT));
}
-}
\ No newline at end of file
+}
diff --git a/jkube-kit/jkube-kit-helidon/src/main/java/org/eclipse/jkube/helidon/generator/HelidonGenerator.java b/jkube-kit/jkube-kit-helidon/src/main/java/org/eclipse/jkube/helidon/generator/HelidonGenerator.java
index aa0ed1195e..5dec0f05b3 100644
--- a/jkube-kit/jkube-kit-helidon/src/main/java/org/eclipse/jkube/helidon/generator/HelidonGenerator.java
+++ b/jkube-kit/jkube-kit-helidon/src/main/java/org/eclipse/jkube/helidon/generator/HelidonGenerator.java
@@ -21,18 +21,24 @@
import java.util.List;
import java.util.Optional;
+import java.util.Properties;
import static org.eclipse.jkube.helidon.HelidonUtils.extractPort;
import static org.eclipse.jkube.helidon.HelidonUtils.getHelidonConfiguration;
import static org.eclipse.jkube.helidon.HelidonUtils.hasHelidonDependencies;
+import static org.eclipse.jkube.kit.common.util.PropertiesUtil.JKUBE_INTERNAL_APP_CONFIG_FILE_LOCATION;
public class HelidonGenerator extends JavaExecGenerator {
public static final String HELIDON = "helidon";
private final HelidonNestedGenerator nestedGenerator;
+ private final Properties helidonApplicationConfiguration;
public HelidonGenerator(GeneratorContext context) {
super(context, HELIDON);
nestedGenerator = HelidonNestedGenerator.from(context, getGeneratorConfig());
+ helidonApplicationConfiguration = getHelidonConfiguration(getContext().getProject());
+ log.debug("Helidon Application Config loaded from: %s",
+ helidonApplicationConfiguration.get(JKUBE_INTERNAL_APP_CONFIG_FILE_LOCATION));
}
@Override
@@ -62,7 +68,7 @@ protected Arguments getBuildEntryPoint() {
@Override
protected String getDefaultWebPort() {
- return extractPort(getHelidonConfiguration(getProject()), super.getDefaultWebPort());
+ return extractPort(helidonApplicationConfiguration, super.getDefaultWebPort());
}
@Override
diff --git a/jkube-kit/jkube-kit-helidon/src/test/java/org/eclipse/jkube/helidon/HelidonUtilsTest.java b/jkube-kit/jkube-kit-helidon/src/test/java/org/eclipse/jkube/helidon/HelidonUtilsTest.java
index 9dbf6fd89f..570f645739 100644
--- a/jkube-kit/jkube-kit-helidon/src/test/java/org/eclipse/jkube/helidon/HelidonUtilsTest.java
+++ b/jkube-kit/jkube-kit-helidon/src/test/java/org/eclipse/jkube/helidon/HelidonUtilsTest.java
@@ -92,6 +92,7 @@ void getHelidonConfiguration_whenApplicationYamlProvided_thenShouldExtractConfig
final Properties props = HelidonUtils.getHelidonConfiguration(javaProject);
// Then
assertThat(props).containsOnly(
+ entry("jkube.internal.application-config-file.path", HelidonUtilsTest.class.getResource("/utils-test/config/yaml/application.yml")),
entry("app.greeting", "Hello"),
entry("server.port", "8080"),
entry("server.host", "0.0.0.0"));
@@ -109,6 +110,7 @@ void getHelidonConfiguration_whenMicroprofilePropertiesProvided_thenShouldExtrac
final Properties props = HelidonUtils.getHelidonConfiguration(javaProject);
// Then
assertThat(props).containsOnly(
+ entry("jkube.internal.application-config-file.path", HelidonUtilsTest.class.getResource("/utils-test/config/properties/META-INF/microprofile-config.properties")),
entry("app.greeting", "Hello"),
entry("server.port", "8080"),
entry("server.host", "0.0.0.0"));
diff --git a/jkube-kit/jkube-kit-helidon/src/test/java/org/eclipse/jkube/helidon/enricher/HelidonHealthCheckEnricherTest.java b/jkube-kit/jkube-kit-helidon/src/test/java/org/eclipse/jkube/helidon/enricher/HelidonHealthCheckEnricherTest.java
index d914c0c167..7a14a0e8af 100644
--- a/jkube-kit/jkube-kit-helidon/src/test/java/org/eclipse/jkube/helidon/enricher/HelidonHealthCheckEnricherTest.java
+++ b/jkube-kit/jkube-kit-helidon/src/test/java/org/eclipse/jkube/helidon/enricher/HelidonHealthCheckEnricherTest.java
@@ -18,6 +18,7 @@
import io.fabric8.kubernetes.api.model.Probe;
import io.fabric8.kubernetes.api.model.apps.Deployment;
import io.fabric8.kubernetes.api.model.apps.DeploymentBuilder;
+import org.assertj.core.api.Assertions;
import org.assertj.core.api.AssertionsForInterfaceTypes;
import org.eclipse.jkube.kit.common.Dependency;
import org.eclipse.jkube.kit.common.JavaProject;
@@ -28,7 +29,9 @@
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import java.io.ByteArrayOutputStream;
import java.io.File;
+import java.io.PrintStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
@@ -42,11 +45,13 @@ class HelidonHealthCheckEnricherTest {
private JavaProject javaProject;
private Properties properties;
private KubernetesListBuilder klb;
+ private ByteArrayOutputStream out;
@BeforeEach
void setup() {
properties = new Properties();
klb = new KubernetesListBuilder();
+ out = new ByteArrayOutputStream();
klb.addToItems(new DeploymentBuilder()
.editOrNewSpec()
.editOrNewTemplate()
@@ -67,12 +72,29 @@ void setup() {
.dependenciesWithTransitive(new ArrayList<>())
.build();
context = JKubeEnricherContext.builder()
- .log(new KitLogger.SilentLogger())
+ .log(new KitLogger.PrintStreamLogger(new PrintStream(out)))
.project(javaProject)
.processorConfig(new ProcessorConfig())
.build();
}
+ @Test
+ void constructorShouldLogHelidonApplicationConfigPath() {
+ // Given
+ context = context.toBuilder()
+ .project(javaProject.toBuilder()
+ .compileClassPathElement(Objects.requireNonNull(getClass().getResource("/custom-port-microprofile-configuration")).getPath())
+ .build())
+ .build();
+ // When
+ HelidonHealthCheckEnricher helidonHealthCheckEnricher = new HelidonHealthCheckEnricher(context);
+ // Then
+ assertThat(helidonHealthCheckEnricher).isNotNull();
+ Assertions.assertThat(out.toString())
+ .contains("jkube-healthcheck-helidon: Helidon Application Config loaded from: " +
+ HelidonHealthCheckEnricherTest.class.getResource("/custom-port-microprofile-configuration/META-INF/microprofile-config.properties"));
+ }
+
@Test
void create_withNoMicroprofileDependency_shouldNotAddProbes() {
// Given
diff --git a/jkube-kit/jkube-kit-helidon/src/test/java/org/eclipse/jkube/helidon/generator/HelidonGeneratorTest.java b/jkube-kit/jkube-kit-helidon/src/test/java/org/eclipse/jkube/helidon/generator/HelidonGeneratorTest.java
index d74a85729a..5e3c469aff 100644
--- a/jkube-kit/jkube-kit-helidon/src/test/java/org/eclipse/jkube/helidon/generator/HelidonGeneratorTest.java
+++ b/jkube-kit/jkube-kit-helidon/src/test/java/org/eclipse/jkube/helidon/generator/HelidonGeneratorTest.java
@@ -34,13 +34,16 @@
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
+import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
+import java.io.PrintStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+import java.util.Objects;
import java.util.Properties;
import java.util.stream.Stream;
@@ -54,11 +57,13 @@ class HelidonGeneratorTest {
private Properties projectProps;
private JavaProject project;
private GeneratorContext ctx;
+ private ByteArrayOutputStream out;
@BeforeEach
public void setUp() throws IOException {
ProcessorConfig config = new ProcessorConfig();
projectProps = new Properties();
+ out = new ByteArrayOutputStream();
projectProps.put("jkube.generator.name", "helidon");
targetDir = Files.createDirectory(temporaryFolder.resolve("target")).toFile();
project = JavaProject.builder()
@@ -73,13 +78,30 @@ public void setUp() throws IOException {
.packaging("jar")
.build();
ctx = GeneratorContext.builder()
- .logger(new KitLogger.SilentLogger())
+ .logger(new KitLogger.PrintStreamLogger(new PrintStream(out)))
.project(project)
.config(config)
.strategy(JKubeBuildStrategy.s2i)
.build();
}
+ @Test
+ void constructorShouldLogHelidonApplicationConfigPath() {
+ // Given
+ ctx = ctx.toBuilder()
+ .project(project.toBuilder()
+ .compileClassPathElement(Objects.requireNonNull(getClass().getResource("/custom-port-microprofile-configuration")).getPath())
+ .build())
+ .build();
+ // When
+ HelidonGenerator helidonGenerator = new HelidonGenerator(ctx);
+ // Then
+ assertThat(helidonGenerator).isNotNull();
+ assertThat(out.toString())
+ .contains("helidon: Helidon Application Config loaded from: " +
+ HelidonGeneratorTest.class.getResource("/custom-port-microprofile-configuration/META-INF/microprofile-config.properties"));
+ }
+
@Test
@DisplayName("isApplicable, when valid ImageConfiguration present, then returns false")
void isApplicable_whenImageConfigurationPresent_thenReturnFalse() {
diff --git a/jkube-kit/jkube-kit-micronaut/src/main/java/org/eclipse/jkube/micronaut/enricher/MicronautHealthCheckEnricher.java b/jkube-kit/jkube-kit-micronaut/src/main/java/org/eclipse/jkube/micronaut/enricher/MicronautHealthCheckEnricher.java
index c3d2fb5730..0a792f538b 100644
--- a/jkube-kit/jkube-kit-micronaut/src/main/java/org/eclipse/jkube/micronaut/enricher/MicronautHealthCheckEnricher.java
+++ b/jkube-kit/jkube-kit-micronaut/src/main/java/org/eclipse/jkube/micronaut/enricher/MicronautHealthCheckEnricher.java
@@ -14,6 +14,7 @@
package org.eclipse.jkube.micronaut.enricher;
import java.util.Collections;
+import java.util.Properties;
import org.eclipse.jkube.kit.common.Configs;
import org.eclipse.jkube.kit.config.image.ImageConfiguration;
@@ -27,6 +28,7 @@
import lombok.Getter;
import static org.eclipse.jkube.kit.common.Configs.asInteger;
+import static org.eclipse.jkube.kit.common.util.PropertiesUtil.JKUBE_INTERNAL_APP_CONFIG_FILE_LOCATION;
import static org.eclipse.jkube.micronaut.MicronautUtils.extractPort;
import static org.eclipse.jkube.micronaut.MicronautUtils.getMicronautConfiguration;
import static org.eclipse.jkube.micronaut.MicronautUtils.hasMicronautPlugin;
@@ -34,6 +36,8 @@
public class MicronautHealthCheckEnricher extends AbstractHealthCheckEnricher {
+ private final Properties micronautApplicationConfiguration;
+
@AllArgsConstructor
private enum Config implements Configs.Config {
READINESS_PROBE_INITIAL_DELAY_SECONDS("readinessProbeInitialDelaySeconds", null),
@@ -55,6 +59,9 @@ private enum Config implements Configs.Config {
public MicronautHealthCheckEnricher(JKubeEnricherContext buildContext) {
super(buildContext, "jkube-healthcheck-micronaut");
+ micronautApplicationConfiguration = getMicronautConfiguration(getContext().getProject());
+ log.debug("Micronaut Application Config loaded from: %s",
+ micronautApplicationConfiguration.get(JKUBE_INTERNAL_APP_CONFIG_FILE_LOCATION));
}
@Override
@@ -77,7 +84,7 @@ private boolean isApplicable() {
if (!hasMicronautPlugin(getContext().getProject())){
return false;
}
- return isHealthEnabled(getMicronautConfiguration(getContext().getProject()));
+ return isHealthEnabled(micronautApplicationConfiguration);
}
private Probe buildProbe(Integer initialDelaySeconds, Integer periodSeconds){
diff --git a/jkube-kit/jkube-kit-micronaut/src/main/java/org/eclipse/jkube/micronaut/generator/MicronautGenerator.java b/jkube-kit/jkube-kit-micronaut/src/main/java/org/eclipse/jkube/micronaut/generator/MicronautGenerator.java
index 00cfd56753..a74ac1d12b 100644
--- a/jkube-kit/jkube-kit-micronaut/src/main/java/org/eclipse/jkube/micronaut/generator/MicronautGenerator.java
+++ b/jkube-kit/jkube-kit-micronaut/src/main/java/org/eclipse/jkube/micronaut/generator/MicronautGenerator.java
@@ -16,24 +16,30 @@
import java.util.List;
import java.util.Map;
import java.util.Optional;
+import java.util.Properties;
import org.eclipse.jkube.generator.api.GeneratorContext;
import org.eclipse.jkube.generator.javaexec.JavaExecGenerator;
import org.eclipse.jkube.kit.common.Arguments;
import org.eclipse.jkube.kit.common.AssemblyConfiguration;
import org.eclipse.jkube.kit.config.image.ImageConfiguration;
+import org.eclipse.jkube.micronaut.MicronautUtils;
+import static org.eclipse.jkube.kit.common.util.PropertiesUtil.JKUBE_INTERNAL_APP_CONFIG_FILE_LOCATION;
import static org.eclipse.jkube.micronaut.MicronautUtils.extractPort;
-import static org.eclipse.jkube.micronaut.MicronautUtils.getMicronautConfiguration;
import static org.eclipse.jkube.micronaut.MicronautUtils.hasMicronautPlugin;
public class MicronautGenerator extends JavaExecGenerator {
private final MicronautNestedGenerator nestedGenerator;
+ private final Properties micronautApplicationConfiguration;
public MicronautGenerator(GeneratorContext context) {
super(context, "micronaut");
this.nestedGenerator = MicronautNestedGenerator.from(context, getGeneratorConfig());
+ micronautApplicationConfiguration = MicronautUtils.getMicronautConfiguration(getContext().getProject());
+ log.debug("Micronaut Application Config loaded from: %s",
+ micronautApplicationConfiguration.get(JKUBE_INTERNAL_APP_CONFIG_FILE_LOCATION));
}
@Override
@@ -80,7 +86,7 @@ protected AssemblyConfiguration createAssembly() {
@Override
protected String getDefaultWebPort() {
return extractPort(
- getMicronautConfiguration(getProject()), super.getDefaultWebPort()
+ micronautApplicationConfiguration, super.getDefaultWebPort()
);
}
}
diff --git a/jkube-kit/jkube-kit-micronaut/src/test/java/org/eclipse/jkube/micronaut/MicronautUtilsGetMicronautConfigurationTest.java b/jkube-kit/jkube-kit-micronaut/src/test/java/org/eclipse/jkube/micronaut/MicronautUtilsGetMicronautConfigurationTest.java
index 5690f3e61f..fc4c628d62 100644
--- a/jkube-kit/jkube-kit-micronaut/src/test/java/org/eclipse/jkube/micronaut/MicronautUtilsGetMicronautConfigurationTest.java
+++ b/jkube-kit/jkube-kit-micronaut/src/test/java/org/eclipse/jkube/micronaut/MicronautUtilsGetMicronautConfigurationTest.java
@@ -52,9 +52,10 @@ void getMicronautConfigurationFromProperties(String directory, String nameSuffix
// When
final Properties props = getMicronautConfiguration(javaProject);
// Then
- assertThat(props).containsExactly(
+ assertThat(props).contains(
entry("micronaut.application.name", "port-config-test-" + nameSuffix),
- entry("micronaut.server.port", "1337"));
+ entry("micronaut.server.port", "1337"))
+ .containsKey("jkube.internal.application-config-file.path");
}
}
diff --git a/jkube-kit/jkube-kit-micronaut/src/test/java/org/eclipse/jkube/micronaut/MicronautUtilsTest.java b/jkube-kit/jkube-kit-micronaut/src/test/java/org/eclipse/jkube/micronaut/MicronautUtilsTest.java
index 89d12abdc7..6b1fcc93e7 100644
--- a/jkube-kit/jkube-kit-micronaut/src/test/java/org/eclipse/jkube/micronaut/MicronautUtilsTest.java
+++ b/jkube-kit/jkube-kit-micronaut/src/test/java/org/eclipse/jkube/micronaut/MicronautUtilsTest.java
@@ -85,7 +85,8 @@ void getMicronautConfigurationPrecedence() throws IOException {
// When
final Properties props = getMicronautConfiguration(javaProject);
// Then
- assertThat(props).containsExactly(
+ assertThat(props).containsOnly(
+ entry("jkube.internal.application-config-file.path", MicronautUtilsTest.class.getResource("/utils-test/port-config/properties/application.properties")),
entry("micronaut.application.name", "port-config-test-PROPERTIES"),
entry("micronaut.server.port", "1337"));
}
diff --git a/jkube-kit/jkube-kit-micronaut/src/test/java/org/eclipse/jkube/micronaut/enricher/MicronautHealthCheckEnricherTest.java b/jkube-kit/jkube-kit-micronaut/src/test/java/org/eclipse/jkube/micronaut/enricher/MicronautHealthCheckEnricherTest.java
index c36304b35d..c01f6446ce 100644
--- a/jkube-kit/jkube-kit-micronaut/src/test/java/org/eclipse/jkube/micronaut/enricher/MicronautHealthCheckEnricherTest.java
+++ b/jkube-kit/jkube-kit-micronaut/src/test/java/org/eclipse/jkube/micronaut/enricher/MicronautHealthCheckEnricherTest.java
@@ -13,8 +13,11 @@
*/
package org.eclipse.jkube.micronaut.enricher;
+import java.io.ByteArrayOutputStream;
import java.io.File;
+import java.io.PrintStream;
import java.util.Collections;
+import java.util.Objects;
import org.eclipse.jkube.kit.common.JavaProject;
import org.eclipse.jkube.kit.common.KitLogger;
@@ -44,6 +47,7 @@ class MicronautHealthCheckEnricherTest {
private JKubeEnricherContext context;
private JavaProject project;
private KubernetesListBuilder klb;
+ private ByteArrayOutputStream out;
@BeforeEach
void setUp() {
@@ -51,16 +55,34 @@ void setUp() {
.outputDirectory(new File("target"))
.build();
klb = new KubernetesListBuilder();
+ out = new ByteArrayOutputStream();
klb.addToItems(new ServiceBuilder()
.withNewMetadata().withName("make-it-real").endMetadata()
.build());
context = JKubeEnricherContext.builder()
- .log(new KitLogger.SilentLogger())
+ .log(new KitLogger.PrintStreamLogger(new PrintStream(out)))
.processorConfig(new ProcessorConfig())
.project(project)
.build();
}
+ @Test
+ void constructorShouldLogMicronautApplicationConfigPath() {
+ // Given
+ context = context.toBuilder()
+ .project(project.toBuilder()
+ .compileClassPathElement(Objects.requireNonNull(getClass().getResource("/utils-test/port-config/properties")).getPath())
+ .build())
+ .build();
+ // When
+ MicronautHealthCheckEnricher micronautHealthCheckEnricher = new MicronautHealthCheckEnricher(context);
+ // Then
+ assertThat(micronautHealthCheckEnricher).isNotNull();
+ assertThat(out.toString())
+ .contains("jkube-healthcheck-micronaut: Micronaut Application Config loaded from: " +
+ MicronautHealthCheckEnricherTest.class.getResource("/utils-test/port-config/properties/application.properties"));
+ }
+
@Test
void createWithNoDeployment() {
// When
diff --git a/jkube-kit/jkube-kit-micronaut/src/test/java/org/eclipse/jkube/micronaut/generator/MicronautGeneratorTest.java b/jkube-kit/jkube-kit-micronaut/src/test/java/org/eclipse/jkube/micronaut/generator/MicronautGeneratorTest.java
index 99da146189..e6a0a67952 100644
--- a/jkube-kit/jkube-kit-micronaut/src/test/java/org/eclipse/jkube/micronaut/generator/MicronautGeneratorTest.java
+++ b/jkube-kit/jkube-kit-micronaut/src/test/java/org/eclipse/jkube/micronaut/generator/MicronautGeneratorTest.java
@@ -13,10 +13,14 @@
*/
package org.eclipse.jkube.micronaut.generator;
+import java.io.ByteArrayOutputStream;
import java.io.File;
+import java.io.PrintStream;
+import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+import java.util.Objects;
import java.util.Properties;
import org.eclipse.jkube.generator.api.GeneratorContext;
@@ -38,21 +42,41 @@ class MicronautGeneratorTest {
private GeneratorContext ctx;
private MicronautGenerator micronautGenerator;
+ private ByteArrayOutputStream out;
@BeforeEach
- void setUp() {
+ void setUp(@TempDir Path temporaryFolder) {
final Properties projectProperties = new Properties();
+ out = new ByteArrayOutputStream();
projectProperties.put("jkube.generator.micronaut.mainClass", "com.example.Main");
ctx = GeneratorContext.builder()
- .logger(new KitLogger.SilentLogger())
+ .logger(new KitLogger.PrintStreamLogger(new PrintStream(out)))
.project(JavaProject.builder()
.version("1.33.7-SNAPSHOT")
.properties(projectProperties)
+ .outputDirectory(temporaryFolder.resolve("target").toFile())
.build())
.build();
micronautGenerator = new MicronautGenerator(ctx);
}
+ @Test
+ void constructorShouldLogHelidonApplicationConfigPath() {
+ // Given
+ ctx = ctx.toBuilder()
+ .project(ctx.getProject().toBuilder()
+ .compileClassPathElement(Objects.requireNonNull(MicronautGeneratorTest.class.getResource("/utils-test/port-config/properties")).getPath())
+ .build())
+ .build();
+ // When
+ micronautGenerator = new MicronautGenerator(ctx);
+ // Then
+ assertThat(micronautGenerator).isNotNull();
+ assertThat(out.toString())
+ .contains("micronaut: Micronaut Application Config loaded from: " +
+ MicronautGeneratorTest.class.getResource("/utils-test/port-config/properties/application.properties"));
+ }
+
@Test
void isApplicableWithNoPlugin() {
// When
diff --git a/jkube-kit/jkube-kit-quarkus/src/main/java/org/eclipse/jkube/quarkus/enricher/QuarkusHealthCheckEnricher.java b/jkube-kit/jkube-kit-quarkus/src/main/java/org/eclipse/jkube/quarkus/enricher/QuarkusHealthCheckEnricher.java
index ee4bfa5191..5e9e7b6c33 100644
--- a/jkube-kit/jkube-kit-quarkus/src/main/java/org/eclipse/jkube/quarkus/enricher/QuarkusHealthCheckEnricher.java
+++ b/jkube-kit/jkube-kit-quarkus/src/main/java/org/eclipse/jkube/quarkus/enricher/QuarkusHealthCheckEnricher.java
@@ -13,6 +13,7 @@
*/
package org.eclipse.jkube.quarkus.enricher;
+import java.util.Properties;
import java.util.function.Function;
import org.eclipse.jkube.kit.common.Configs;
@@ -28,6 +29,7 @@
import org.apache.commons.lang3.StringUtils;
import static org.eclipse.jkube.kit.common.Configs.asInteger;
+import static org.eclipse.jkube.kit.common.util.PropertiesUtil.JKUBE_INTERNAL_APP_CONFIG_FILE_LOCATION;
import static org.eclipse.jkube.quarkus.QuarkusUtils.QUARKUS_GROUP_ID;
import static org.eclipse.jkube.quarkus.QuarkusUtils.concatPath;
import static org.eclipse.jkube.quarkus.QuarkusUtils.isStartupEndpointSupported;
@@ -39,9 +41,13 @@
* Enriches Quarkus containers with health checks if the quarkus-smallrye-health is present
*/
public class QuarkusHealthCheckEnricher extends AbstractHealthCheckEnricher {
+ private final Properties quarkusApplicationConfiguration;
public QuarkusHealthCheckEnricher(JKubeEnricherContext buildContext) {
super(buildContext, "jkube-healthcheck-quarkus");
+ quarkusApplicationConfiguration = getQuarkusConfiguration(getContext().getProject());
+ log.debug("Quarkus Application Config loaded from: %s",
+ quarkusApplicationConfiguration.get(JKUBE_INTERNAL_APP_CONFIG_FILE_LOCATION));
}
@AllArgsConstructor
@@ -73,7 +79,7 @@ protected Probe getLivenessProbe() {
return discoverQuarkusHealthCheck(asInteger(getConfig(Config.LIVENESS_INITIAL_DELAY, "10")),
QuarkusUtils::resolveQuarkusLivenessPath);
}
-
+
@Override
protected Probe getStartupProbe() {
if (isStartupEndpointSupported(getContext().getProject())) {
@@ -89,7 +95,7 @@ private Probe discoverQuarkusHealthCheck(int initialDelay, Function configs) {
@Override
protected String getDefaultWebPort() {
- return extractPort(getProject(), getQuarkusConfiguration(getProject()), super.getDefaultWebPort());
+ return extractPort(getProject(), quarkusApplicationConfiguration, super.getDefaultWebPort());
}
@Override
diff --git a/jkube-kit/jkube-kit-quarkus/src/test/java/org/eclipse/jkube/quarkus/QuarkusUtilsTest.java b/jkube-kit/jkube-kit-quarkus/src/test/java/org/eclipse/jkube/quarkus/QuarkusUtilsTest.java
index c980e9e6b0..a63d97909a 100644
--- a/jkube-kit/jkube-kit-quarkus/src/test/java/org/eclipse/jkube/quarkus/QuarkusUtilsTest.java
+++ b/jkube-kit/jkube-kit-quarkus/src/test/java/org/eclipse/jkube/quarkus/QuarkusUtilsTest.java
@@ -109,6 +109,7 @@ void getQuarkusConfiguration_propertiesAndYamlProjectProperties_shouldUseProject
final Properties props = getQuarkusConfiguration(javaProject);
// Then
assertThat(props).containsOnly(
+ entry("jkube.internal.application-config-file.path", QuarkusUtilsTest.class.getResource("/utils-test/config/properties/application.properties")),
entry("quarkus.http.port", "42"),
entry("%dev.quarkus.http.port", "8082"));
}
@@ -124,6 +125,7 @@ void getQuarkusConfiguration_propertiesAndYaml_shouldUseProperties() {
final Properties props = getQuarkusConfiguration(javaProject);
// Then
assertThat(props).containsOnly(
+ entry("jkube.internal.application-config-file.path", QuarkusUtilsTest.class.getResource("/utils-test/config/properties/application.properties")),
entry("quarkus.http.port", "1337"),
entry("%dev.quarkus.http.port", "8082"));
}
@@ -138,6 +140,7 @@ void getQuarkusConfiguration_yamlOnly_shouldUseYaml() {
final Properties props = getQuarkusConfiguration(javaProject);
// Then
assertThat(props).containsOnly(
+ entry("jkube.internal.application-config-file.path", QuarkusUtilsTest.class.getResource("/utils-test/config/yaml/application.yml")),
entry("quarkus.http.port", "31337"),
entry("%dev.quarkus.http.port", "13373"));
}
diff --git a/jkube-kit/jkube-kit-quarkus/src/test/java/org/eclipse/jkube/quarkus/enricher/QuarkusHealthCheckEnricherTest.java b/jkube-kit/jkube-kit-quarkus/src/test/java/org/eclipse/jkube/quarkus/enricher/QuarkusHealthCheckEnricherTest.java
index 5fc807023b..2cbea55b4c 100644
--- a/jkube-kit/jkube-kit-quarkus/src/test/java/org/eclipse/jkube/quarkus/enricher/QuarkusHealthCheckEnricherTest.java
+++ b/jkube-kit/jkube-kit-quarkus/src/test/java/org/eclipse/jkube/quarkus/enricher/QuarkusHealthCheckEnricherTest.java
@@ -33,7 +33,9 @@
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
+import java.io.ByteArrayOutputStream;
import java.io.File;
+import java.io.PrintStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
@@ -48,11 +50,13 @@ class QuarkusHealthCheckEnricherTest {
private KubernetesListBuilder klb;
private JavaProject javaProject;
private JKubeEnricherContext context;
+ private ByteArrayOutputStream out;
@BeforeEach
void setUp() {
properties = new Properties();
klb = new KubernetesListBuilder();
+ out = new ByteArrayOutputStream();
// @formatter:off
klb.addToItems(new DeploymentBuilder()
.editOrNewSpec()
@@ -74,12 +78,29 @@ void setUp() {
.dependenciesWithTransitive(new ArrayList<>())
.build();
context = JKubeEnricherContext.builder()
- .log(new KitLogger.SilentLogger())
+ .log(new KitLogger.PrintStreamLogger(new PrintStream(out)))
.project(javaProject)
.processorConfig(new ProcessorConfig())
.build();
}
+ @Test
+ void constructorShouldLogQuarkusApplicationConfigPath() {
+ // Given
+ context = context.toBuilder()
+ .project(javaProject.toBuilder()
+ .compileClassPathElement(Objects.requireNonNull(getClass().getResource("/utils-test/config/properties")).getPath())
+ .build())
+ .build();
+ // When
+ QuarkusHealthCheckEnricher quarkusHealthCheckEnricher = new QuarkusHealthCheckEnricher(context);
+ // Then
+ assertThat(quarkusHealthCheckEnricher).isNotNull();
+ assertThat(out.toString())
+ .contains("jkube-healthcheck-quarkus: Quarkus Application Config loaded from: " +
+ QuarkusHealthCheckEnricherTest.class.getResource("/utils-test/config/properties/application.properties"));
+ }
+
@Test
void create_withCustomPath_shouldReturnCustomPath() {
// Given
diff --git a/jkube-kit/jkube-kit-quarkus/src/test/java/org/eclipse/jkube/quarkus/generator/QuarkusGeneratorTest.java b/jkube-kit/jkube-kit-quarkus/src/test/java/org/eclipse/jkube/quarkus/generator/QuarkusGeneratorTest.java
index aad82f905e..19bb1dd4f2 100644
--- a/jkube-kit/jkube-kit-quarkus/src/test/java/org/eclipse/jkube/quarkus/generator/QuarkusGeneratorTest.java
+++ b/jkube-kit/jkube-kit-quarkus/src/test/java/org/eclipse/jkube/quarkus/generator/QuarkusGeneratorTest.java
@@ -13,14 +13,17 @@
*/
package org.eclipse.jkube.quarkus.generator;
+import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
+import java.io.PrintStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
+import java.util.Objects;
import java.util.Properties;
import java.util.stream.Stream;
@@ -70,6 +73,7 @@ class QuarkusGeneratorTest {
private Properties projectProps;
private JavaProject project;
private GeneratorContext ctx;
+ private ByteArrayOutputStream out;
@BeforeEach
void setUp() throws IOException {
@@ -77,6 +81,7 @@ void setUp() throws IOException {
projectProps = new Properties();
projectProps.put("jkube.generator.name", "quarkus");
targetDir = Files.createDirectory(temporaryFolder.resolve("target")).toFile();
+ out = new ByteArrayOutputStream();
project = JavaProject.builder()
.version("0.0.1-SNAPSHOT")
.baseDirectory(targetDir)
@@ -86,13 +91,30 @@ void setUp() throws IOException {
.outputDirectory(targetDir)
.build();
ctx = GeneratorContext.builder()
- .logger(new KitLogger.SilentLogger())
+ .logger(new KitLogger.PrintStreamLogger(new PrintStream(out)))
.project(project)
.config(config)
.strategy(JKubeBuildStrategy.s2i)
.build();
}
+ @Test
+ void constructorShouldLogQuarkusApplicationConfigPath() {
+ // Given
+ ctx = ctx.toBuilder()
+ .project(project.toBuilder()
+ .compileClassPathElement(Objects.requireNonNull(getClass().getResource("/generator-extract-ports")).getPath())
+ .build())
+ .build();
+ // When
+ QuarkusGenerator quarkusGenerator = new QuarkusGenerator(ctx);
+ // Then
+ assertThat(quarkusGenerator).isNotNull();
+ assertThat(out.toString())
+ .contains("quarkus: Quarkus Application Config loaded from: " +
+ QuarkusGeneratorTest.class.getResource("/generator-extract-ports/application.properties"));
+ }
+
@Nested
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
@DisplayName("isApplicable")
diff --git a/jkube-kit/jkube-kit-spring-boot/src/main/java/org/eclipse/jkube/springboot/enricher/SpringBootHealthCheckEnricher.java b/jkube-kit/jkube-kit-spring-boot/src/main/java/org/eclipse/jkube/springboot/enricher/SpringBootHealthCheckEnricher.java
index 09f0f81dd3..58c357b6d6 100644
--- a/jkube-kit/jkube-kit-spring-boot/src/main/java/org/eclipse/jkube/springboot/enricher/SpringBootHealthCheckEnricher.java
+++ b/jkube-kit/jkube-kit-spring-boot/src/main/java/org/eclipse/jkube/springboot/enricher/SpringBootHealthCheckEnricher.java
@@ -19,11 +19,16 @@
import lombok.AllArgsConstructor;
import lombok.Getter;
import org.eclipse.jkube.kit.common.Configs;
+import org.eclipse.jkube.kit.common.util.JKubeProjectUtil;
import org.eclipse.jkube.kit.common.util.SpringBootConfiguration;
+import org.eclipse.jkube.kit.common.util.SpringBootUtil;
import org.eclipse.jkube.kit.enricher.api.JKubeEnricherContext;
import org.eclipse.jkube.kit.enricher.specific.AbstractHealthCheckEnricher;
import org.apache.commons.lang3.StringUtils;
+import java.util.Properties;
+
+import static org.eclipse.jkube.kit.common.util.PropertiesUtil.JKUBE_INTERNAL_APP_CONFIG_FILE_LOCATION;
import static org.eclipse.jkube.kit.common.util.SpringBootUtil.hasSpringWebFluxDependency;
/**
@@ -63,6 +68,11 @@ private enum Config implements Configs.Config {
public SpringBootHealthCheckEnricher(JKubeEnricherContext buildContext) {
super(buildContext, ENRICHER_NAME);
+ Properties springBootApplicationConfig = SpringBootUtil.getSpringBootApplicationProperties(
+ SpringBootUtil.getSpringBootActiveProfile(getContext().getProject()),
+ JKubeProjectUtil.getClassLoader(getContext().getProject()));
+ log.debug("Spring Boot Application Config loaded from: %s",
+ springBootApplicationConfig.get(JKUBE_INTERNAL_APP_CONFIG_FILE_LOCATION));
}
@Override
diff --git a/jkube-kit/jkube-kit-spring-boot/src/main/java/org/eclipse/jkube/springboot/generator/SpringBootGenerator.java b/jkube-kit/jkube-kit-spring-boot/src/main/java/org/eclipse/jkube/springboot/generator/SpringBootGenerator.java
index 967aaaa1b5..952b9ee50e 100644
--- a/jkube-kit/jkube-kit-spring-boot/src/main/java/org/eclipse/jkube/springboot/generator/SpringBootGenerator.java
+++ b/jkube-kit/jkube-kit-spring-boot/src/main/java/org/eclipse/jkube/springboot/generator/SpringBootGenerator.java
@@ -16,6 +16,7 @@
import java.util.List;
import java.util.Map;
import java.util.Optional;
+import java.util.Properties;
import org.eclipse.jkube.generator.api.GeneratorContext;
import org.eclipse.jkube.generator.api.GeneratorMode;
@@ -32,6 +33,7 @@
import lombok.Getter;
import org.apache.commons.lang3.StringUtils;
+import static org.eclipse.jkube.kit.common.util.PropertiesUtil.JKUBE_INTERNAL_APP_CONFIG_FILE_LOCATION;
import static org.eclipse.jkube.kit.common.util.SpringBootUtil.DEV_TOOLS_REMOTE_SECRET;
import static org.eclipse.jkube.kit.common.util.SpringBootUtil.isSpringBootRepackage;
import static org.eclipse.jkube.springboot.SpringBootDevtoolsUtils.addDevToolsFilesToFatJar;
@@ -58,6 +60,11 @@ public enum Config implements Configs.Config {
public SpringBootGenerator(GeneratorContext context) {
super(context, "spring-boot");
nestedGenerator = SpringBootNestedGenerator.from(context, getGeneratorConfig(), detectFatJar());
+ Properties springBootApplicationConfig = SpringBootUtil.getSpringBootApplicationProperties(
+ SpringBootUtil.getSpringBootActiveProfile(getContext().getProject()),
+ JKubeProjectUtil.getClassLoader(getContext().getProject()));
+ log.debug("Spring Boot Application Config loaded from: %s",
+ springBootApplicationConfig.get(JKUBE_INTERNAL_APP_CONFIG_FILE_LOCATION));
}
@Override
diff --git a/jkube-kit/jkube-kit-spring-boot/src/test/java/org/eclipse/jkube/springboot/enricher/AbstractSpringBootHealthCheckEnricherTestSupport.java b/jkube-kit/jkube-kit-spring-boot/src/test/java/org/eclipse/jkube/springboot/enricher/AbstractSpringBootHealthCheckEnricherTestSupport.java
index 612c74d037..f51ca945e1 100644
--- a/jkube-kit/jkube-kit-spring-boot/src/test/java/org/eclipse/jkube/springboot/enricher/AbstractSpringBootHealthCheckEnricherTestSupport.java
+++ b/jkube-kit/jkube-kit-spring-boot/src/test/java/org/eclipse/jkube/springboot/enricher/AbstractSpringBootHealthCheckEnricherTestSupport.java
@@ -13,13 +13,16 @@
*/
package org.eclipse.jkube.springboot.enricher;
+import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
+import java.io.PrintStream;
import java.net.URL;
import java.net.URLClassLoader;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.Collections;
+import java.util.Objects;
import java.util.Properties;
import java.util.TreeMap;
@@ -52,6 +55,7 @@
*/
public abstract class AbstractSpringBootHealthCheckEnricherTestSupport {
private Properties props;
+ private ByteArrayOutputStream out;
protected JKubeEnricherContext context;
@@ -60,9 +64,10 @@ public abstract class AbstractSpringBootHealthCheckEnricherTestSupport {
@BeforeEach
void init(@TempDir Path project) throws IOException {
props = new Properties();
+ out = new ByteArrayOutputStream();
projectClassLoaders = mock(ProjectClassLoaders.class, RETURNS_DEEP_STUBS);
context = spy(JKubeEnricherContext.builder()
- .log(new KitLogger.SilentLogger())
+ .log(new KitLogger.PrintStreamLogger(new PrintStream(out)))
.project(JavaProject.builder()
.properties(props)
.baseDirectory(project.toFile())
@@ -85,6 +90,23 @@ private boolean isSpringBootOne() {
return getSpringBootVersion().substring(0, getSpringBootVersion().indexOf('.')).equals("1");
}
+ @Test
+ void constructorShouldLogSpringBootApplicationConfigPath() {
+ // Given
+ context = context.toBuilder()
+ .project(context.getProject().toBuilder()
+ .compileClassPathElement(Objects.requireNonNull(getClass().getResource("/port-override-application-properties")).getPath())
+ .build())
+ .build();
+ // When
+ SpringBootHealthCheckEnricher springBootHealthCheckEnricher = new SpringBootHealthCheckEnricher(context);
+ // Then
+ assertThat(springBootHealthCheckEnricher).isNotNull();
+ assertThat(out.toString())
+ .contains("jkube-healthcheck-spring-boot: Spring Boot Application Config loaded from: " +
+ AbstractSpringBootHealthCheckEnricherTestSupport.class.getResource("/port-override-application-properties/application.properties"));
+ }
+
@Test
void zeroConfig() {
SpringBootHealthCheckEnricher enricher = new SpringBootHealthCheckEnricher(context);
diff --git a/jkube-kit/jkube-kit-spring-boot/src/test/java/org/eclipse/jkube/springboot/generator/SpringBootGeneratorTest.java b/jkube-kit/jkube-kit-spring-boot/src/test/java/org/eclipse/jkube/springboot/generator/SpringBootGeneratorTest.java
index 89d6a20a4c..a60a198813 100644
--- a/jkube-kit/jkube-kit-spring-boot/src/test/java/org/eclipse/jkube/springboot/generator/SpringBootGeneratorTest.java
+++ b/jkube-kit/jkube-kit-spring-boot/src/test/java/org/eclipse/jkube/springboot/generator/SpringBootGeneratorTest.java
@@ -13,8 +13,10 @@
*/
package org.eclipse.jkube.springboot.generator;
+import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
+import java.io.PrintStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.ArrayList;
@@ -44,11 +46,13 @@
class SpringBootGeneratorTest {
private GeneratorContext context;
+ private ByteArrayOutputStream out;
@BeforeEach
void setUp(@TempDir Path temporaryFolder) throws IOException {
+ out = new ByteArrayOutputStream();
context = GeneratorContext.builder()
- .logger(new KitLogger.SilentLogger())
+ .logger(new KitLogger.PrintStreamLogger(new PrintStream(out)))
.project(JavaProject.builder()
.outputDirectory(Files.createDirectory(temporaryFolder.resolve("target")).toFile())
.version("1.0.0")
@@ -56,6 +60,23 @@ void setUp(@TempDir Path temporaryFolder) throws IOException {
.build();
}
+ @Test
+ void constructorShouldLogSpringBootApplicationConfigPath() {
+ // Given
+ context = context.toBuilder()
+ .project(context.getProject().toBuilder()
+ .compileClassPathElement(Objects.requireNonNull(getClass().getResource("/port-override-application-properties")).getPath())
+ .build())
+ .build();
+ // When
+ SpringBootGenerator springBootGenerator = new SpringBootGenerator(context);
+ // Then
+ assertThat(springBootGenerator).isNotNull();
+ assertThat(out.toString())
+ .contains("spring-boot: Spring Boot Application Config loaded from: " +
+ SpringBootGeneratorTest.class.getResource("/port-override-application-properties/application.properties"));
+ }
+
@Test
@DisplayName("isApplicable, when valid ImageConfiguration present, then returns false")
void isApplicable_whenImageConfigurationPresent_thenReturnFalse() {
@@ -224,7 +245,7 @@ void getExtraJavaOptions_whenColorEnabled_thenAddColorOption() {
private void withPlugin(Plugin plugin) {
context = context.toBuilder()
- .project(JavaProject.builder().plugin(plugin).build())
+ .project(context.getProject().toBuilder().plugin(plugin).build())
.build();
}
}
diff --git a/jkube-kit/jkube-kit-thorntail-v2/src/main/java/org/eclipse/jkube/thorntail/v2/enricher/ThorntailV2HealthCheckEnricher.java b/jkube-kit/jkube-kit-thorntail-v2/src/main/java/org/eclipse/jkube/thorntail/v2/enricher/ThorntailV2HealthCheckEnricher.java
index 341ba313ed..4767e25d5b 100644
--- a/jkube-kit/jkube-kit-thorntail-v2/src/main/java/org/eclipse/jkube/thorntail/v2/enricher/ThorntailV2HealthCheckEnricher.java
+++ b/jkube-kit/jkube-kit-thorntail-v2/src/main/java/org/eclipse/jkube/thorntail/v2/enricher/ThorntailV2HealthCheckEnricher.java
@@ -24,15 +24,21 @@
import java.util.Properties;
+import static org.eclipse.jkube.kit.common.util.PropertiesUtil.JKUBE_INTERNAL_APP_CONFIG_FILE_LOCATION;
+
/**
* Enriches thorntail-v2 containers with health checks if the monitoring fraction is present.
*/
public class ThorntailV2HealthCheckEnricher extends AbstractHealthCheckEnricher {
private static final String IO_THORNTAIL = "io.thorntail";
+ private final Properties thorntailApplicationConfiguration;
public ThorntailV2HealthCheckEnricher(JKubeEnricherContext buildContext) {
super(buildContext, "jkube-healthcheck-thorntail-v2");
+ thorntailApplicationConfiguration = ThorntailUtil.getThorntailProperties(getContext().getProject());
+ log.debug("Thorntail Application Config loaded from: %s",
+ thorntailApplicationConfiguration.get(JKUBE_INTERNAL_APP_CONFIG_FILE_LOCATION));
}
@AllArgsConstructor
@@ -91,10 +97,9 @@ protected String getScheme() {
}
protected int getPort() {
- final Properties properties = ThorntailUtil.getThorntailProperties(getContext().getProject());
- properties.putAll(System.getProperties());
- if (properties.containsKey("thorntail.http.port")) {
- return Integer.parseInt((String) properties.get("thorntail.http.port"));
+ thorntailApplicationConfiguration.putAll(System.getProperties());
+ if (thorntailApplicationConfiguration.containsKey("thorntail.http.port")) {
+ return Integer.parseInt((String) thorntailApplicationConfiguration.get("thorntail.http.port"));
}
return Configs.asInt(getConfig(Config.PORT));
@@ -103,4 +108,4 @@ protected int getPort() {
protected String getPath() {
return getConfig(Config.PATH);
}
-}
\ No newline at end of file
+}
diff --git a/jkube-kit/jkube-kit-thorntail-v2/src/main/java/org/eclipse/jkube/thorntail/v2/generator/ThorntailV2Generator.java b/jkube-kit/jkube-kit-thorntail-v2/src/main/java/org/eclipse/jkube/thorntail/v2/generator/ThorntailV2Generator.java
index 760b98fbca..9e8ab69937 100644
--- a/jkube-kit/jkube-kit-thorntail-v2/src/main/java/org/eclipse/jkube/thorntail/v2/generator/ThorntailV2Generator.java
+++ b/jkube-kit/jkube-kit-thorntail-v2/src/main/java/org/eclipse/jkube/thorntail/v2/generator/ThorntailV2Generator.java
@@ -15,16 +15,21 @@
import org.eclipse.jkube.generator.api.GeneratorContext;
import org.eclipse.jkube.generator.javaexec.JavaExecGenerator;
+import org.eclipse.jkube.kit.common.util.ThorntailUtil;
import org.eclipse.jkube.kit.config.image.ImageConfiguration;
import org.eclipse.jkube.kit.common.util.JKubeProjectUtil;
import java.util.List;
import java.util.Map;
+import static org.eclipse.jkube.kit.common.util.PropertiesUtil.JKUBE_INTERNAL_APP_CONFIG_FILE_LOCATION;
+
public class ThorntailV2Generator extends JavaExecGenerator {
public ThorntailV2Generator(GeneratorContext context) {
super(context, "thorntail-v2", JDK.JDK_11);
+ log.debug("Thorntail Application Config loaded from %s",
+ ThorntailUtil.getThorntailProperties(getContext().getProject()).get(JKUBE_INTERNAL_APP_CONFIG_FILE_LOCATION));
}
@Override
diff --git a/jkube-kit/jkube-kit-thorntail-v2/src/test/java/org/eclipse/jkube/thorntail/v2/enricher/ThorntailV2HealthCheckEnricherTest.java b/jkube-kit/jkube-kit-thorntail-v2/src/test/java/org/eclipse/jkube/thorntail/v2/enricher/ThorntailV2HealthCheckEnricherTest.java
index 8bb7ae7d09..b1bf733628 100644
--- a/jkube-kit/jkube-kit-thorntail-v2/src/test/java/org/eclipse/jkube/thorntail/v2/enricher/ThorntailV2HealthCheckEnricherTest.java
+++ b/jkube-kit/jkube-kit-thorntail-v2/src/test/java/org/eclipse/jkube/thorntail/v2/enricher/ThorntailV2HealthCheckEnricherTest.java
@@ -13,10 +13,13 @@
*/
package org.eclipse.jkube.thorntail.v2.enricher;
+import java.io.ByteArrayOutputStream;
import java.io.IOException;
+import java.io.PrintStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.Collections;
+import java.util.Objects;
import java.util.Properties;
import org.eclipse.jkube.kit.common.Dependency;
@@ -42,6 +45,7 @@ class ThorntailV2HealthCheckEnricherTest {
private JKubeEnricherContext context;
private Properties properties;
private KubernetesListBuilder klb;
+ private ByteArrayOutputStream out;
@TempDir
private Path temporaryFolder;
@@ -51,6 +55,7 @@ void setUp() throws IOException {
properties = new Properties();
ProcessorConfig processorConfig = new ProcessorConfig();
klb = new KubernetesListBuilder();
+ out = new ByteArrayOutputStream();
// @formatter:off
klb.addToItems(new DeploymentBuilder()
.editOrNewSpec()
@@ -77,10 +82,27 @@ void setUp() throws IOException {
.outputDirectory(Files.createDirectory(temporaryFolder.resolve("target")).toFile())
.build())
.processorConfig(processorConfig)
- .log(new KitLogger.SilentLogger())
+ .log(new KitLogger.PrintStreamLogger(new PrintStream(out)))
.build();
}
+ @Test
+ void constructorShouldLogThorntailApplicationConfigPath() {
+ // Given
+ context = context.toBuilder()
+ .project(context.getProject().toBuilder()
+ .compileClassPathElement(Objects.requireNonNull(getClass().getResource("/application-config/properties")).getPath())
+ .build())
+ .build();
+ // When
+ ThorntailV2HealthCheckEnricher thorntailV2HealthCheckEnricher = new ThorntailV2HealthCheckEnricher(context);
+ // Then
+ assertThat(thorntailV2HealthCheckEnricher).isNotNull();
+ assertThat(out.toString())
+ .contains("jkube-healthcheck-thorntail-v2: Thorntail Application Config loaded from: " +
+ ThorntailV2HealthCheckEnricherTest.class.getResource("/application-config/properties/project-defaults.yml"));
+ }
+
@Test
void createWithDefaultsInKubernetes() {
// When
diff --git a/jkube-kit/jkube-kit-thorntail-v2/src/test/java/org/eclipse/jkube/thorntail/v2/generator/ThorntailV2GeneratorIsApplicableTest.java b/jkube-kit/jkube-kit-thorntail-v2/src/test/java/org/eclipse/jkube/thorntail/v2/generator/ThorntailV2GeneratorIsApplicableTest.java
index 227b62be75..0e528c24e3 100644
--- a/jkube-kit/jkube-kit-thorntail-v2/src/test/java/org/eclipse/jkube/thorntail/v2/generator/ThorntailV2GeneratorIsApplicableTest.java
+++ b/jkube-kit/jkube-kit-thorntail-v2/src/test/java/org/eclipse/jkube/thorntail/v2/generator/ThorntailV2GeneratorIsApplicableTest.java
@@ -17,31 +17,35 @@
import org.eclipse.jkube.generator.api.GeneratorContext;
import org.eclipse.jkube.kit.common.Dependency;
import org.eclipse.jkube.kit.common.JavaProject;
+import org.eclipse.jkube.kit.common.KitLogger;
import org.eclipse.jkube.kit.common.Plugin;
import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.io.TempDir;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
-import org.mockito.Mockito;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
import java.util.Collections;
import java.util.List;
import java.util.stream.Stream;
import static org.assertj.core.api.Assertions.assertThat;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
class ThorntailV2GeneratorIsApplicableTest {
- private JavaProject project;
private GeneratorContext context;
@BeforeEach
- void setUp() {
- project = mock(JavaProject.class, Mockito.RETURNS_DEEP_STUBS);
- context = mock(GeneratorContext.class, Mockito.RETURNS_DEEP_STUBS);
- when(context.getProject()).thenReturn(project);
+ void setUp(@TempDir Path temporaryFolder) throws IOException {
+ context = GeneratorContext.builder()
+ .project(JavaProject.builder()
+ .outputDirectory(Files.createDirectory(temporaryFolder.resolve("target")).toFile())
+ .build())
+ .logger(new KitLogger.SilentLogger())
+ .build();
}
public static Stream data() {
@@ -65,9 +69,11 @@ public static Stream data() {
void isApplicable(String testDescription, List pluginList, List dependencyList,
List gradlePluginList, boolean expectedValue) {
// Given
- when(project.getPlugins()).thenReturn(pluginList);
- when(project.getDependencies()).thenReturn(dependencyList);
- when(project.getGradlePlugins()).thenReturn(gradlePluginList);
+ context = context.toBuilder().project(context.getProject().toBuilder()
+ .plugins(pluginList)
+ .dependencies(dependencyList)
+ .gradlePlugins(gradlePluginList)
+ .build()).build();
// When
final boolean result = new ThorntailV2Generator(context).isApplicable(Collections.emptyList());
// Then
diff --git a/jkube-kit/jkube-kit-thorntail-v2/src/test/resources/application-config/properties/project-defaults.yml b/jkube-kit/jkube-kit-thorntail-v2/src/test/resources/application-config/properties/project-defaults.yml
new file mode 100644
index 0000000000..6ec8b83530
--- /dev/null
+++ b/jkube-kit/jkube-kit-thorntail-v2/src/test/resources/application-config/properties/project-defaults.yml
@@ -0,0 +1,3 @@
+thorntail:
+ http:
+ port: 8081
\ No newline at end of file