@@ -279,13 +317,17 @@
+
+ org.sonarsource.scanner.maven
+ sonar-maven-plugin
+ ${version.sonar-maven-plugin}
+ org.apache.maven.pluginsmaven-enforcer-plugin
- ${version.maven-enforcer-plugin}dependency-convergence
@@ -313,7 +355,6 @@
org.projectlomboklombok-maven-plugin
- ${version.lombok-maven-plugin}delombok
@@ -356,7 +397,6 @@
org.apache.maven.pluginsmaven-gpg-plugin
- ${version.maven-gpg-plugin}sign-artifacts
@@ -365,9 +405,9 @@
sign
- ${gpg.passphrase}true
+ --batch--pinentry-modeloopback
@@ -378,7 +418,6 @@
org.apache.maven.pluginsmaven-enforcer-plugin
- ${version.maven-enforcer-plugin}enforce-no-snapshots
@@ -399,7 +438,6 @@
org.projectlomboklombok-maven-plugin
- ${version.lombok-maven-plugin}prepare-javadoc-sources
@@ -435,7 +473,6 @@
org.apache.maven.pluginsmaven-source-plugin
- ${version.maven-source-plugin}attach-sources
@@ -449,33 +486,6 @@
-
-
- milestone
-
-
-
- org.apache.maven.plugins
- maven-gpg-plugin
- ${version.maven-gpg-plugin}
-
-
- sign-artifacts
- verify
-
- sign
-
-
-
-
- true
- rhuss@redhat.com
-
-
-
-
-
-
jacoco
@@ -527,7 +537,6 @@
asciidoctor-maven-pluginhtml
- coderayleft
From 8f1917f328c5f1b6465e60a4b19880093e2d3157 Mon Sep 17 00:00:00 2001
From: Marc Nuri
Date: Wed, 5 Jul 2023 11:16:19 +0200
Subject: [PATCH 02/65] ci: configurations for SNAPSHOT release
Signed-off-by: Marc Nuri
---
pom.xml | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/pom.xml b/pom.xml
index 12b0c8d01e..6d0871360e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -72,6 +72,11 @@
+
+ ossrh
+ Sonatype OSS Repository (Snapshots)
+ https://oss.sonatype.org/content/repositories/snapshots
+ ossrhNexus Release Repository
@@ -112,6 +117,7 @@
3.2.13.1.24.6.1
+ 1.6.132.1.11.7.363.9.1.2184
@@ -322,6 +328,12 @@
sonar-maven-plugin${version.sonar-maven-plugin}
+
+ org.sonatype.plugins
+ nexus-staging-maven-plugin
+ ${version.nexus-staging-maven-plugin}
+ true
+
From 35e3a7f30c2a701612ae7bab55a304b1558db4c4 Mon Sep 17 00:00:00 2001
From: Marc Nuri
Date: Wed, 5 Jul 2023 13:01:50 +0200
Subject: [PATCH 03/65] ci: SNAPSHOT release pipeline for Jenkins
(https://ci.eclipse.org/jkube)
Signed-off-by: Marc Nuri
---
.../pipelines/release-snapshots.Jenkinsfile | 29 +++++++++++++++++++
1 file changed, 29 insertions(+)
create mode 100644 .jenkins/pipelines/release-snapshots.Jenkinsfile
diff --git a/.jenkins/pipelines/release-snapshots.Jenkinsfile b/.jenkins/pipelines/release-snapshots.Jenkinsfile
new file mode 100644
index 0000000000..d8b90a7105
--- /dev/null
+++ b/.jenkins/pipelines/release-snapshots.Jenkinsfile
@@ -0,0 +1,29 @@
+#!groovy
+
+pipeline {
+ agent any
+ tools {
+ maven 'apache-maven-latest'
+ jdk 'temurin-jdk8-latest'
+ }
+ stages {
+ stage('Release Snapshots') {
+ steps {
+ withCredentials([file(credentialsId: 'secret-subkeys.asc', variable: 'KEYRING')]) {
+ sh 'echo "Setting up GPG signing keys"'
+ sh 'gpg --batch --import "${KEYRING}"'
+ sh 'for fpr in $(gpg --list-keys --with-colons | awk -F: \'/fpr:/ {print $10}\' | sort -u); do echo -e "5\ny\n" | gpg --batch --command-fd 0 --expert --edit-key ${fpr} trust; done'
+ }
+ sshagent(['github-bot-ssh']) {
+ sh 'echo "Cloning Project"'
+ // sh 'git clone git@github.com:eclipse/jkube.git' // disabled temporarily, credentials not working
+ sh 'git clone https://github.com/eclipse/jkube.git'
+ }
+ dir('jkube') {
+ sh 'echo "Deploying Snapshots"'
+ sh 'mvn -V -B -e -U -Prelease -Denforcer.skip=true deploy'
+ }
+ }
+ }
+ }
+}
From 70e9ff96fbb1c8870ab6cd3987a26e93e054db9a Mon Sep 17 00:00:00 2001
From: Rohan Kumar
Date: Thu, 22 Jun 2023 21:03:01 +0530
Subject: [PATCH 04/65] fix (jkube-kit-helidon) : HelidonHealthCheckEnricher
should extract ports from properties
HelidonHealthCheckEnricher should be able to automatically detect
configured ports from `application.yml`/`microprofile-config.properties`
Signed-off-by: Rohan Kumar
---
.../enricher/HelidonHealthCheckEnricher.java | 6 +--
.../HelidonHealthCheckEnricherTest.java | 45 +++++++++++++++++++
.../HelidonGeneratorExposedPortsTest.java | 2 +-
.../application.yaml | 0
.../META-INF/microprofile-config.properties | 1 +
5 files changed, 50 insertions(+), 4 deletions(-)
rename jkube-kit/jkube-kit-helidon/src/test/resources/{generator-extract-ports => custom-port-configuration}/application.yaml (100%)
create mode 100644 jkube-kit/jkube-kit-helidon/src/test/resources/custom-port-microprofile-configuration/META-INF/microprofile-config.properties
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 588273cba3..a31d97912e 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,8 +16,8 @@
import org.eclipse.jkube.kit.enricher.api.JKubeEnricherContext;
import org.eclipse.jkube.microprofile.enricher.AbstractMicroprofileHealthCheckEnricher;
-import java.util.Optional;
-
+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;
@@ -34,6 +34,6 @@ protected boolean shouldAddProbe() {
@Override
protected int getPort() {
- return asInteger(Optional.ofNullable(getPortFromConfiguration()).orElse(DEFAULT_HELIDON_PORT));
+ return asInteger(extractPort(getHelidonConfiguration(getContext().getProject()), DEFAULT_HELIDON_PORT));
}
}
\ No newline at end of file
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 17960486ab..d91ab057a0 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
@@ -31,6 +31,7 @@
import java.io.File;
import java.util.ArrayList;
import java.util.List;
+import java.util.Objects;
import java.util.Properties;
import java.util.function.Supplier;
@@ -169,6 +170,50 @@ void create_withMicroprofileEnabledAndEnricherConfiguration_shouldProbesAsConfig
.hasFieldOrPropertyWithValue("startupProbe.httpGet.port.IntVal", 8080);
}
+ @Test
+ void create_whenPortConfiguredViaApplicationYaml_thenUseThatPort() {
+ // Given
+ withHelidonHealth();
+ withMicroprofileDependency("5.0");
+ context = context.toBuilder()
+ .project(context.getProject().toBuilder()
+ .compileClassPathElement(Objects.requireNonNull(getClass().getResource("/custom-port-configuration")).getPath())
+ .build())
+ .build();
+ HelidonHealthCheckEnricher helidonHealthCheckEnricher = new HelidonHealthCheckEnricher(context);
+
+ // When
+ helidonHealthCheckEnricher.create(PlatformMode.kubernetes, klb);
+
+ // Then
+ assertThat(getFirstContainerFromDeployment())
+ .hasFieldOrPropertyWithValue("livenessProbe.httpGet.port.IntVal", 1337)
+ .hasFieldOrPropertyWithValue("readinessProbe.httpGet.port.IntVal", 1337)
+ .hasFieldOrPropertyWithValue("startupProbe.httpGet.port.IntVal", 1337);
+ }
+
+ @Test
+ void create_whenPortConfiguredViaMicroprofileConfigProperties_thenUseThatPort() {
+ // Given
+ withHelidonHealth();
+ withMicroprofileDependency("5.0");
+ context = context.toBuilder()
+ .project(context.getProject().toBuilder()
+ .compileClassPathElement(Objects.requireNonNull(getClass().getResource("/custom-port-microprofile-configuration")).getPath())
+ .build())
+ .build();
+ HelidonHealthCheckEnricher helidonHealthCheckEnricher = new HelidonHealthCheckEnricher(context);
+
+ // When
+ helidonHealthCheckEnricher.create(PlatformMode.kubernetes, klb);
+
+ // Then
+ assertThat(getFirstContainerFromDeployment())
+ .hasFieldOrPropertyWithValue("livenessProbe.httpGet.port.IntVal", 1337)
+ .hasFieldOrPropertyWithValue("readinessProbe.httpGet.port.IntVal", 1337)
+ .hasFieldOrPropertyWithValue("startupProbe.httpGet.port.IntVal", 1337);
+ }
+
private void withMicroprofileDependency(String microProfileVersion) {
final List deps = new ArrayList<>(javaProject.getDependencies());
deps.add(Dependency.builder()
diff --git a/jkube-kit/jkube-kit-helidon/src/test/java/org/eclipse/jkube/helidon/generator/HelidonGeneratorExposedPortsTest.java b/jkube-kit/jkube-kit-helidon/src/test/java/org/eclipse/jkube/helidon/generator/HelidonGeneratorExposedPortsTest.java
index 824907438d..cc826fa697 100644
--- a/jkube-kit/jkube-kit-helidon/src/test/java/org/eclipse/jkube/helidon/generator/HelidonGeneratorExposedPortsTest.java
+++ b/jkube-kit/jkube-kit-helidon/src/test/java/org/eclipse/jkube/helidon/generator/HelidonGeneratorExposedPortsTest.java
@@ -91,7 +91,7 @@ void withApplicationYaml_shouldAddConfigured() throws IOException {
// Given
whenStandardJarInTarget();
ctx = ctx.toBuilder().project(ctx.getProject().toBuilder()
- .compileClassPathElement(HelidonGeneratorExposedPortsTest.class.getResource("/generator-extract-ports").getPath())
+ .compileClassPathElement(HelidonGeneratorExposedPortsTest.class.getResource("/custom-port-configuration").getPath())
.build())
.build();
// When
diff --git a/jkube-kit/jkube-kit-helidon/src/test/resources/generator-extract-ports/application.yaml b/jkube-kit/jkube-kit-helidon/src/test/resources/custom-port-configuration/application.yaml
similarity index 100%
rename from jkube-kit/jkube-kit-helidon/src/test/resources/generator-extract-ports/application.yaml
rename to jkube-kit/jkube-kit-helidon/src/test/resources/custom-port-configuration/application.yaml
diff --git a/jkube-kit/jkube-kit-helidon/src/test/resources/custom-port-microprofile-configuration/META-INF/microprofile-config.properties b/jkube-kit/jkube-kit-helidon/src/test/resources/custom-port-microprofile-configuration/META-INF/microprofile-config.properties
new file mode 100644
index 0000000000..d9c6b1ef6b
--- /dev/null
+++ b/jkube-kit/jkube-kit-helidon/src/test/resources/custom-port-microprofile-configuration/META-INF/microprofile-config.properties
@@ -0,0 +1 @@
+server.port=1337
From f340e480c44e58aec0c3176956ba727193f7c515 Mon Sep 17 00:00:00 2001
From: Rohan Kumar
Date: Wed, 5 Jul 2023 11:42:31 +0530
Subject: [PATCH 05/65] test (gradle-plugin/it) : Add integration test to
verify port is automatically detected from helidon properties
Signed-off-by: Rohan Kumar
---
.../it/src/it/helidon-properties/build.gradle | 66 +++++++++
.../expected/kubernetes.yml | 107 ++++++++++++++
.../helidon-properties/expected/openshift.yml | 122 ++++++++++++++++
.../it/gradle/helidon/GreetResource.java | 137 ++++++++++++++++++
.../it/gradle/helidon/GreetingProvider.java | 47 ++++++
.../src/main/resources/META-INF/beans.xml | 8 +
.../META-INF/microprofile-config.properties | 10 ++
.../plugin/tests/HelidonPropertiesIT.java | 66 +++++++++
8 files changed, 563 insertions(+)
create mode 100644 gradle-plugin/it/src/it/helidon-properties/build.gradle
create mode 100644 gradle-plugin/it/src/it/helidon-properties/expected/kubernetes.yml
create mode 100644 gradle-plugin/it/src/it/helidon-properties/expected/openshift.yml
create mode 100644 gradle-plugin/it/src/it/helidon-properties/src/main/java/org/eclipse/jkube/it/gradle/helidon/GreetResource.java
create mode 100644 gradle-plugin/it/src/it/helidon-properties/src/main/java/org/eclipse/jkube/it/gradle/helidon/GreetingProvider.java
create mode 100644 gradle-plugin/it/src/it/helidon-properties/src/main/resources/META-INF/beans.xml
create mode 100644 gradle-plugin/it/src/it/helidon-properties/src/main/resources/META-INF/microprofile-config.properties
create mode 100644 gradle-plugin/it/src/test/java/org/eclipse/jkube/gradle/plugin/tests/HelidonPropertiesIT.java
diff --git a/gradle-plugin/it/src/it/helidon-properties/build.gradle b/gradle-plugin/it/src/it/helidon-properties/build.gradle
new file mode 100644
index 0000000000..1f84317aae
--- /dev/null
+++ b/gradle-plugin/it/src/it/helidon-properties/build.gradle
@@ -0,0 +1,66 @@
+plugins {
+ id 'java'
+ id 'org.kordamp.gradle.jandex' version '0.6.0'
+ id 'application'
+ id 'org.eclipse.jkube.kubernetes' version "${jKubeVersion}"
+ id 'org.eclipse.jkube.openshift' version "${jKubeVersion}"
+}
+
+group = 'org.eclipse.jkube.integration.tests.gradle'
+version = '0.0.1-SNAPSHOT'
+sourceCompatibility = '11'
+targetCompatibility = '11'
+tasks.withType(JavaCompile) {
+ options.encoding = 'UTF-8'
+}
+
+ext {
+ helidonversion = '2.6.0'
+ mainClass='io.helidon.microprofile.cdi.Main'
+}
+
+repositories {
+ mavenLocal()
+ mavenCentral()
+ gradlePluginPortal()
+}
+
+dependencies {
+ // import Helidon BOM
+ implementation enforcedPlatform("io.helidon:helidon-dependencies:${project.helidonversion}")
+ implementation 'io.helidon.microprofile.bundles:helidon-microprofile'
+ implementation 'org.glassfish.jersey.media:jersey-media-json-binding'
+
+ runtimeOnly 'org.jboss:jandex'
+ runtimeOnly 'jakarta.activation:jakarta.activation-api'
+}
+
+task copyLibs(type: Copy) {
+ from configurations.runtimeClasspath
+ into 'build/libs/libs'
+}
+
+jar.dependsOn jandex
+copyLibs.dependsOn jar
+assemble.dependsOn copyLibs
+
+jar {
+ archiveFileName = "${project.name}.jar"
+ manifest {
+ attributes ('Main-Class': "${project.mainClass}" ,
+ 'Class-Path': configurations.runtimeClasspath.files.collect { "libs/$it.name" }.join(' ')
+ )
+ }
+}
+
+application {
+ mainClass = "${project.mainClass}"
+}
+
+kubernetes {
+ offline = true
+}
+
+openshift {
+ offline = true
+}
diff --git a/gradle-plugin/it/src/it/helidon-properties/expected/kubernetes.yml b/gradle-plugin/it/src/it/helidon-properties/expected/kubernetes.yml
new file mode 100644
index 0000000000..c88ab2120e
--- /dev/null
+++ b/gradle-plugin/it/src/it/helidon-properties/expected/kubernetes.yml
@@ -0,0 +1,107 @@
+---
+apiVersion: v1
+kind: List
+items:
+- apiVersion: v1
+ kind: Service
+ metadata:
+ annotations:
+ jkube.eclipse.org/git-commit: "@ignore@"
+ prometheus.io/path: "@ignore@"
+ prometheus.io/port: "@ignore@"
+ jkube.eclipse.org/git-url: "@ignore@"
+ prometheus.io/scrape: "@ignore@"
+ jkube.eclipse.org/git-branch: "@ignore@"
+ labels:
+ app: helidon-properties
+ provider: jkube
+ version: "@ignore@"
+ group: org.eclipse.jkube.integration.tests.gradle
+ name: helidon-properties
+ spec:
+ ports:
+ - name: http-alt
+ port: 8008
+ protocol: TCP
+ targetPort: 8008
+ selector:
+ app: helidon-properties
+ provider: jkube
+ group: org.eclipse.jkube.integration.tests.gradle
+- apiVersion: apps/v1
+ kind: Deployment
+ metadata:
+ annotations:
+ jkube.eclipse.org/git-commit: "@ignore@"
+ jkube.eclipse.org/git-url: "@ignore@"
+ jkube.eclipse.org/git-branch: "@ignore@"
+ labels:
+ app: helidon-properties
+ provider: jkube
+ version: "@ignore@"
+ group: org.eclipse.jkube.integration.tests.gradle
+ name: helidon-properties
+ spec:
+ replicas: 1
+ revisionHistoryLimit: 2
+ selector:
+ matchLabels:
+ app: helidon-properties
+ provider: jkube
+ group: org.eclipse.jkube.integration.tests.gradle
+ template:
+ metadata:
+ annotations:
+ jkube.eclipse.org/git-commit: "@ignore@"
+ jkube.eclipse.org/git-url: "@ignore@"
+ jkube.eclipse.org/git-branch: "@ignore@"
+ labels:
+ app: helidon-properties
+ provider: jkube
+ version: "@ignore@"
+ group: org.eclipse.jkube.integration.tests.gradle
+ name: helidon-properties
+ spec:
+ containers:
+ - env:
+ - name: KUBERNETES_NAMESPACE
+ valueFrom:
+ fieldRef:
+ fieldPath: metadata.namespace
+ - name: HOSTNAME
+ valueFrom:
+ fieldRef:
+ fieldPath: metadata.name
+ image: gradle/helidon-properties:latest
+ imagePullPolicy: IfNotPresent
+ livenessProbe:
+ failureThreshold: 3
+ httpGet:
+ path: /health/live
+ port: 8008
+ scheme: HTTP
+ initialDelaySeconds: 0
+ periodSeconds: 10
+ successThreshold: 1
+ name: helidon
+ ports:
+ - containerPort: 8008
+ name: http-alt
+ protocol: TCP
+ - containerPort: 9779
+ name: prometheus
+ protocol: TCP
+ - containerPort: 8778
+ name: jolokia
+ protocol: TCP
+ readinessProbe:
+ failureThreshold: 3
+ httpGet:
+ path: /health/ready
+ port: 8008
+ scheme: HTTP
+ initialDelaySeconds: 0
+ periodSeconds: 10
+ successThreshold: 1
+ securityContext:
+ privileged: false
diff --git a/gradle-plugin/it/src/it/helidon-properties/expected/openshift.yml b/gradle-plugin/it/src/it/helidon-properties/expected/openshift.yml
new file mode 100644
index 0000000000..b1dc6ffcca
--- /dev/null
+++ b/gradle-plugin/it/src/it/helidon-properties/expected/openshift.yml
@@ -0,0 +1,122 @@
+---
+apiVersion: v1
+kind: List
+items:
+- apiVersion: v1
+ kind: Service
+ metadata:
+ annotations:
+ jkube.eclipse.org/git-commit: "@ignore@"
+ app.openshift.io/vcs-ref: "@ignore@"
+ prometheus.io/path: "@ignore@"
+ prometheus.io/port: "@ignore@"
+ jkube.eclipse.org/git-url: "@ignore@"
+ prometheus.io/scrape: "@ignore@"
+ app.openshift.io/vcs-uri: "@ignore@"
+ jkube.eclipse.org/git-branch: "@ignore@"
+ labels:
+ app: helidon-properties
+ provider: jkube
+ version: "@ignore@"
+ group: org.eclipse.jkube.integration.tests.gradle
+ name: helidon-properties
+ spec:
+ ports:
+ - name: http-alt
+ port: 8008
+ protocol: TCP
+ targetPort: 8008
+ selector:
+ app: helidon-properties
+ provider: jkube
+ group: org.eclipse.jkube.integration.tests.gradle
+- apiVersion: apps.openshift.io/v1
+ kind: DeploymentConfig
+ metadata:
+ annotations:
+ jkube.eclipse.org/git-commit: "@ignore@"
+ jkube.eclipse.org/git-url: "@ignore@"
+ app.openshift.io/vcs-ref: "@ignore@"
+ app.openshift.io/vcs-uri: "@ignore@"
+ jkube.eclipse.org/git-branch: "@ignore@"
+ labels:
+ app: helidon-properties
+ provider: jkube
+ version: "@ignore@"
+ group: org.eclipse.jkube.integration.tests.gradle
+ name: helidon-properties
+ spec:
+ replicas: 1
+ revisionHistoryLimit: 2
+ selector:
+ app: helidon-properties
+ provider: jkube
+ group: org.eclipse.jkube.integration.tests.gradle
+ strategy:
+ rollingParams:
+ timeoutSeconds: 3600
+ type: Rolling
+ template:
+ metadata:
+ annotations:
+ jkube.eclipse.org/git-commit: "@ignore@"
+ jkube.eclipse.org/git-url: "@ignore@"
+ app.openshift.io/vcs-ref: "@ignore@"
+ app.openshift.io/vcs-uri: "@ignore@"
+ jkube.eclipse.org/git-branch: "@ignore@"
+ labels:
+ app: helidon-properties
+ provider: jkube
+ version: "@ignore@"
+ group: org.eclipse.jkube.integration.tests.gradle
+ name: helidon-properties
+ spec:
+ containers:
+ - env:
+ - name: KUBERNETES_NAMESPACE
+ valueFrom:
+ fieldRef:
+ fieldPath: metadata.namespace
+ image: helidon-properties:latest
+ imagePullPolicy: IfNotPresent
+ livenessProbe:
+ failureThreshold: 3
+ httpGet:
+ path: /health/live
+ port: 8008
+ scheme: HTTP
+ initialDelaySeconds: 0
+ periodSeconds: 10
+ successThreshold: 1
+ name: helidon
+ ports:
+ - containerPort: 8008
+ name: http-alt
+ protocol: TCP
+ - containerPort: 9779
+ name: prometheus
+ protocol: TCP
+ - containerPort: 8778
+ name: jolokia
+ protocol: TCP
+ readinessProbe:
+ failureThreshold: 3
+ httpGet:
+ path: /health/ready
+ port: 8008
+ scheme: HTTP
+ initialDelaySeconds: 0
+ periodSeconds: 10
+ successThreshold: 1
+ securityContext:
+ privileged: false
+ triggers:
+ - type: ConfigChange
+ - imageChangeParams:
+ automatic: true
+ containerNames:
+ - helidon
+ from:
+ kind: ImageStreamTag
+ name: helidon-properties:latest
+ type: ImageChange
\ No newline at end of file
diff --git a/gradle-plugin/it/src/it/helidon-properties/src/main/java/org/eclipse/jkube/it/gradle/helidon/GreetResource.java b/gradle-plugin/it/src/it/helidon-properties/src/main/java/org/eclipse/jkube/it/gradle/helidon/GreetResource.java
new file mode 100644
index 0000000000..0551f6785d
--- /dev/null
+++ b/gradle-plugin/it/src/it/helidon-properties/src/main/java/org/eclipse/jkube/it/gradle/helidon/GreetResource.java
@@ -0,0 +1,137 @@
+/**
+ * Copyright (c) 2019 Red Hat, Inc.
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at:
+ *
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ */
+package org.eclipse.jkube.it.gradle.helidon;
+
+import java.util.Collections;
+
+import javax.inject.Inject;
+import javax.json.Json;
+import javax.json.JsonBuilderFactory;
+import javax.json.JsonObject;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.GET;
+import javax.ws.rs.PUT;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+import org.eclipse.microprofile.openapi.annotations.enums.SchemaType;
+import org.eclipse.microprofile.openapi.annotations.media.Content;
+import org.eclipse.microprofile.openapi.annotations.media.Schema;
+import org.eclipse.microprofile.openapi.annotations.parameters.RequestBody;
+import org.eclipse.microprofile.openapi.annotations.responses.APIResponse;
+import org.eclipse.microprofile.openapi.annotations.responses.APIResponses;
+
+/**
+ * A simple JAX-RS resource to greet you. Examples:
+ *
+ * Get default greeting message:
+ * curl -X GET http://localhost:8080/greet
+ *
+ * Get greeting message for Joe:
+ * curl -X GET http://localhost:8080/greet/Joe
+ *
+ * Change greeting
+ * curl -X PUT -H "Content-Type: application/json" -d '{"greeting" : "Howdy"}' http://localhost:8080/greet/greeting
+ *
+ * The message is returned as a JSON object.
+ */
+@Path("/greet")
+public class GreetResource {
+
+ private static final JsonBuilderFactory JSON = Json.createBuilderFactory(Collections.emptyMap());
+
+ /**
+ * The greeting message provider.
+ */
+ private final GreetingProvider greetingProvider;
+
+ /**
+ * Using constructor injection to get a configuration property.
+ * By default this gets the value from META-INF/microprofile-config
+ *
+ * @param greetingConfig the configured greeting message
+ */
+ @Inject
+ public GreetResource(GreetingProvider greetingConfig) {
+ this.greetingProvider = greetingConfig;
+ }
+
+ /**
+ * Return a worldly greeting message.
+ *
+ * @return {@link JsonObject}
+ */
+ @GET
+ @Produces(MediaType.APPLICATION_JSON)
+ public JsonObject getDefaultMessage() {
+ return createResponse("World");
+ }
+
+ /**
+ * Return a greeting message using the name that was provided.
+ *
+ * @param name the name to greet
+ * @return {@link JsonObject}
+ */
+ @Path("/{name}")
+ @GET
+ @Produces(MediaType.APPLICATION_JSON)
+ public JsonObject getMessage(@PathParam("name") String name) {
+ return createResponse(name);
+ }
+
+ /**
+ * Set the greeting to use in future messages.
+ *
+ * @param jsonObject JSON containing the new greeting
+ * @return {@link Response}
+ */
+ @Path("/greeting")
+ @PUT
+ @Consumes(MediaType.APPLICATION_JSON)
+ @Produces(MediaType.APPLICATION_JSON)
+ @RequestBody(name = "greeting",
+ required = true,
+ content = @Content(mediaType = "application/json",
+ schema = @Schema(type = SchemaType.OBJECT, requiredProperties = { "greeting" })))
+ @APIResponses({
+ @APIResponse(name = "normal", responseCode = "204", description = "Greeting updated"),
+ @APIResponse(name = "missing 'greeting'", responseCode = "400",
+ description = "JSON did not contain setting for 'greeting'")})
+ public Response updateGreeting(JsonObject jsonObject) {
+
+ if (!jsonObject.containsKey("greeting")) {
+ JsonObject entity = JSON.createObjectBuilder()
+ .add("error", "No greeting provided")
+ .build();
+ return Response.status(Response.Status.BAD_REQUEST).entity(entity).build();
+ }
+
+ String newGreeting = jsonObject.getString("greeting");
+
+ greetingProvider.setMessage(newGreeting);
+ return Response.status(Response.Status.NO_CONTENT).build();
+ }
+
+ private JsonObject createResponse(String who) {
+ String msg = String.format("%s %s!", greetingProvider.getMessage(), who);
+
+ return JSON.createObjectBuilder()
+ .add("message", msg)
+ .build();
+ }
+}
diff --git a/gradle-plugin/it/src/it/helidon-properties/src/main/java/org/eclipse/jkube/it/gradle/helidon/GreetingProvider.java b/gradle-plugin/it/src/it/helidon-properties/src/main/java/org/eclipse/jkube/it/gradle/helidon/GreetingProvider.java
new file mode 100644
index 0000000000..aa70f3018a
--- /dev/null
+++ b/gradle-plugin/it/src/it/helidon-properties/src/main/java/org/eclipse/jkube/it/gradle/helidon/GreetingProvider.java
@@ -0,0 +1,47 @@
+/**
+ * Copyright (c) 2019 Red Hat, Inc.
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at:
+ *
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ */
+package org.eclipse.jkube.it.gradle.helidon;
+
+import java.util.concurrent.atomic.AtomicReference;
+
+import javax.enterprise.context.ApplicationScoped;
+import javax.inject.Inject;
+
+import org.eclipse.microprofile.config.inject.ConfigProperty;
+
+/**
+ * Provider for greeting message.
+ */
+@ApplicationScoped
+public class GreetingProvider {
+ private final AtomicReference message = new AtomicReference<>();
+
+ /**
+ * Create a new greeting provider, reading the message from configuration.
+ *
+ * @param message greeting to use
+ */
+ @Inject
+ public GreetingProvider(@ConfigProperty(name = "app.greeting") String message) {
+ this.message.set(message);
+ }
+
+ String getMessage() {
+ return message.get();
+ }
+
+ void setMessage(String message) {
+ this.message.set(message);
+ }
+}
diff --git a/gradle-plugin/it/src/it/helidon-properties/src/main/resources/META-INF/beans.xml b/gradle-plugin/it/src/it/helidon-properties/src/main/resources/META-INF/beans.xml
new file mode 100644
index 0000000000..5d94aab5a2
--- /dev/null
+++ b/gradle-plugin/it/src/it/helidon-properties/src/main/resources/META-INF/beans.xml
@@ -0,0 +1,8 @@
+
+
+
diff --git a/gradle-plugin/it/src/it/helidon-properties/src/main/resources/META-INF/microprofile-config.properties b/gradle-plugin/it/src/it/helidon-properties/src/main/resources/META-INF/microprofile-config.properties
new file mode 100644
index 0000000000..52388ad7ac
--- /dev/null
+++ b/gradle-plugin/it/src/it/helidon-properties/src/main/resources/META-INF/microprofile-config.properties
@@ -0,0 +1,10 @@
+
+# Application properties. This is the default greeting
+app.greeting=Hello
+
+# Microprofile server properties
+server.port=8008
+server.host=0.0.0.0
+
+# Turn on support for REST.request SimpleTimers for all JAX-RS endpoints
+metrics.rest-request.enabled=true
diff --git a/gradle-plugin/it/src/test/java/org/eclipse/jkube/gradle/plugin/tests/HelidonPropertiesIT.java b/gradle-plugin/it/src/test/java/org/eclipse/jkube/gradle/plugin/tests/HelidonPropertiesIT.java
new file mode 100644
index 0000000000..57831a62b5
--- /dev/null
+++ b/gradle-plugin/it/src/test/java/org/eclipse/jkube/gradle/plugin/tests/HelidonPropertiesIT.java
@@ -0,0 +1,66 @@
+/**
+ * Copyright (c) 2019 Red Hat, Inc.
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at:
+ *
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ */
+package org.eclipse.jkube.gradle.plugin.tests;
+
+import net.minidev.json.parser.ParseException;
+import org.eclipse.jkube.kit.common.ResourceVerify;
+import org.gradle.testkit.runner.BuildResult;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
+
+import java.io.IOException;
+
+import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
+
+class HelidonPropertiesIT {
+ @RegisterExtension
+ private final ITGradleRunnerExtension gradleRunner = new ITGradleRunnerExtension();
+
+ @Test
+ void k8sResource_whenRun_generatesK8sManifestsWithProbes() throws IOException, ParseException {
+ // When
+ final BuildResult result = gradleRunner.withITProject("helidon-properties")
+ .withArguments("build", "k8sResource", "--stacktrace")
+ .build();
+ // Then
+ ResourceVerify.verifyResourceDescriptors(gradleRunner.resolveDefaultKubernetesResourceFile(),
+ gradleRunner.resolveFile("expected", "kubernetes.yml"));
+ assertThat(result).extracting(BuildResult::getOutput).asString()
+ .contains("jkube-controller: Adding a default Deployment")
+ .contains("jkube-service: Adding a default service")
+ .contains("jkube-healthcheck-helidon: Adding readiness probe on port 8008")
+ .contains("jkube-healthcheck-helidon: Adding liveness probe on port 8008")
+ .contains("jkube-service-discovery: Using first mentioned service port '8008' ")
+ .contains("jkube-revision-history: Adding revision history limit to 2");
+ }
+
+ @Test
+ void ocResource_whenRun_generatesOpenShiftManifestsWithProbes() throws IOException, ParseException {
+ // When
+ final BuildResult result = gradleRunner.withITProject("helidon-properties")
+ .withArguments("build", "ocResource", "--stacktrace")
+ .build();
+ // Then
+ ResourceVerify.verifyResourceDescriptors(gradleRunner.resolveDefaultOpenShiftResourceFile(),
+ gradleRunner.resolveFile("expected", "openshift.yml"));
+ assertThat(result).extracting(BuildResult::getOutput).asString()
+ .contains("jkube-controller: Adding a default Deployment")
+ .contains("jkube-service: Adding a default service")
+ .contains("jkube-openshift-deploymentconfig: Converting Deployment to DeploymentConfig")
+ .contains("jkube-healthcheck-helidon: Adding readiness probe on port 8008")
+ .contains("jkube-healthcheck-helidon: Adding liveness probe on port 8008")
+ .contains("jkube-service-discovery: Using first mentioned service port '8008' ")
+ .contains("jkube-revision-history: Adding revision history limit to 2");
+ }
+}
From 6e7c8a53949a5533a0c828dda3076d35b49a6327 Mon Sep 17 00:00:00 2001
From: Marc Nuri
Date: Tue, 4 Jul 2023 13:03:59 +0200
Subject: [PATCH 06/65] refactor: initial simplification of ApplyService
Signed-off-by: Marc Nuri
---
.../kit/common/util/KubernetesHelper.java | 6 +-
.../kit/common/util/KubernetesHelperTest.java | 19 ++
.../kit/config/service/ApplyService.java | 213 +++++-------------
.../kit/config/service/ApplyServiceTest.java | 36 ++-
4 files changed, 116 insertions(+), 158 deletions(-)
diff --git a/jkube-kit/common/src/main/java/org/eclipse/jkube/kit/common/util/KubernetesHelper.java b/jkube-kit/common/src/main/java/org/eclipse/jkube/kit/common/util/KubernetesHelper.java
index 64cdbf62eb..e3d4a47f8a 100644
--- a/jkube-kit/common/src/main/java/org/eclipse/jkube/kit/common/util/KubernetesHelper.java
+++ b/jkube-kit/common/src/main/java/org/eclipse/jkube/kit/common/util/KubernetesHelper.java
@@ -40,6 +40,7 @@
import java.util.stream.Collectors;
import io.fabric8.kubernetes.api.model.HTTPHeader;
+import io.fabric8.kubernetes.api.model.KubernetesResource;
import io.fabric8.kubernetes.api.model.authorization.v1.ResourceAttributesBuilder;
import io.fabric8.kubernetes.api.model.authorization.v1.SelfSubjectAccessReview;
import io.fabric8.kubernetes.api.model.authorization.v1.SelfSubjectAccessReviewBuilder;
@@ -246,11 +247,12 @@ public static String getNamespace(HasMetadata entity) {
* @param entity entity as HasMetadata
* @return kind of resource
*/
- public static String getKind(HasMetadata entity) {
+ public static String getKind(KubernetesResource entity) {
if (entity != null) {
- // TODO use reflection to find the kind?
if (entity instanceof KubernetesList) {
return "List";
+ } else if (entity instanceof HasMetadata) {
+ return ((HasMetadata) entity).getKind();
} else {
return entity.getClass().getSimpleName();
}
diff --git a/jkube-kit/common/src/test/java/org/eclipse/jkube/kit/common/util/KubernetesHelperTest.java b/jkube-kit/common/src/test/java/org/eclipse/jkube/kit/common/util/KubernetesHelperTest.java
index 65999494e0..08203d15a8 100644
--- a/jkube-kit/common/src/test/java/org/eclipse/jkube/kit/common/util/KubernetesHelperTest.java
+++ b/jkube-kit/common/src/test/java/org/eclipse/jkube/kit/common/util/KubernetesHelperTest.java
@@ -24,8 +24,11 @@
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Stream;
+import io.fabric8.kubernetes.api.model.KubernetesResource;
+import io.fabric8.kubernetes.api.model.Pod;
import io.fabric8.kubernetes.api.model.authorization.v1.SelfSubjectAccessReview;
import io.fabric8.kubernetes.api.model.authorization.v1.SelfSubjectAccessReviewBuilder;
+import io.fabric8.kubernetes.api.model.runtime.RawExtension;
import io.fabric8.kubernetes.client.KubernetesClient;
import io.fabric8.kubernetes.client.server.mock.EnableKubernetesMockClient;
import io.fabric8.kubernetes.client.server.mock.KubernetesMockServer;
@@ -463,6 +466,22 @@ void hasAccessForAction_whenApiServerReturnsAccessReviewWithStatus_thenReturnAll
.hasFieldOrPropertyWithValue("spec.resourceAttributes.verb", "list");
}
+ @ParameterizedTest(name = "{index}: {0} returns {1}")
+ @MethodSource("getKindTestCases")
+ void getKind(KubernetesResource resource, String expectedKind) {
+ assertThat(KubernetesHelper.getKind(resource)).isEqualTo(expectedKind);
+ }
+
+ static Stream getKindTestCases() {
+ return Stream.of(
+ Arguments.of(new Pod(), "Pod"),
+ Arguments.of(new Template(), "Template"),
+ Arguments.of(new KubernetesList(), "List"),
+ Arguments.of(new RawExtension(), "RawExtension"),
+ Arguments.of(null, null)
+ );
+ }
+
private void assertLocalFragments(File[] fragments, int expectedSize) {
assertThat(fragments).hasSize(expectedSize);
assertThat(Arrays.stream(fragments).anyMatch( f -> f.getName().equals("deployment.yml"))).isTrue();
diff --git a/jkube-kit/config/service/src/main/java/org/eclipse/jkube/kit/config/service/ApplyService.java b/jkube-kit/config/service/src/main/java/org/eclipse/jkube/kit/config/service/ApplyService.java
index 1d39a1dc73..c0a2a56b33 100644
--- a/jkube-kit/config/service/src/main/java/org/eclipse/jkube/kit/config/service/ApplyService.java
+++ b/jkube-kit/config/service/src/main/java/org/eclipse/jkube/kit/config/service/ApplyService.java
@@ -24,11 +24,11 @@
import java.util.Map;
import java.util.Objects;
import java.util.Set;
-import java.util.function.Consumer;
import java.util.stream.Collectors;
import io.fabric8.kubernetes.api.model.GenericKubernetesResource;
import io.fabric8.kubernetes.api.model.HasMetadataComparator;
+import io.fabric8.kubernetes.api.model.Namespaced;
import io.fabric8.kubernetes.client.dsl.base.PatchContext;
import io.fabric8.kubernetes.client.dsl.base.PatchType;
import org.eclipse.jkube.kit.common.KitLogger;
@@ -127,7 +127,7 @@ public ApplyService(JKubeServiceHub serviceHub) {
/**
* Applies the given DTOs onto the Kubernetes master
*/
- public void apply(Object dto, String sourceName) {
+ public void apply(Object dto, String fileName) {
if (dto instanceof List) {
List
+
+ io.fabric8
+ mockwebserver
+
diff --git a/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/HelmUploader.java b/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/HelmUploader.java
index 9c66394bda..b3ddeb5b10 100644
--- a/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/HelmUploader.java
+++ b/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/HelmUploader.java
@@ -31,7 +31,7 @@ public HelmUploader(KitLogger logger) {
this.logger = logger;
}
- protected void uploadSingle(File file, HelmRepository repository)
+ void uploadSingle(File file, HelmRepository repository)
throws IOException, BadUploadException {
HttpURLConnection connection;
@@ -64,7 +64,7 @@ protected void uploadSingle(File file, HelmRepository repository)
connection.disconnect();
}
- protected void writeFileOnConnection(File file, HttpURLConnection connection) throws IOException {
+ private void writeFileOnConnection(File file, HttpURLConnection connection) throws IOException {
try (FileInputStream fileInputStream = new FileInputStream(file)) {
IOUtils.copy(fileInputStream, connection.getOutputStream());
}
diff --git a/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmRepoTypeTest.java b/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmRepoTypeTest.java
deleted file mode 100644
index 11707bd1f8..0000000000
--- a/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmRepoTypeTest.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/**
- * Copyright (c) 2019 Red Hat, Inc.
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at:
- *
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Red Hat, Inc. - initial API and implementation
- */
-package org.eclipse.jkube.kit.resource.helm;
-
-
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.io.TempDir;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.Authenticator;
-import java.net.HttpURLConnection;
-import java.net.InetAddress;
-import java.net.URL;
-import java.nio.file.Files;
-import java.util.Collections;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-class HelmRepoTypeTest {
-
- @TempDir
- File temporaryFolder;
-
- private HelmRepository.HelmRepositoryBuilder helmRepositoryBuilder;
-
- @BeforeEach
- void setUp() {
- helmRepositoryBuilder = HelmRepository.builder()
- .url("https://example.com/base/");
- }
-
- @Test
- void createConnection_withChartMuseumAndNoAuth_shouldReturnConnection() throws IOException {
- // When
- final HttpURLConnection result = HelmRepository.HelmRepoType.CHARTMUSEUM
- .createConnection(File.createTempFile("junit", "ext", temporaryFolder), helmRepositoryBuilder.build());
- // Then
- assertThat(result)
- .isNotNull()
- .hasFieldOrPropertyWithValue("url", new URL("https://example.com/base/"))
- .hasFieldOrPropertyWithValue("requestMethod", "POST")
- .hasFieldOrPropertyWithValue("doOutput", true)
- .extracting(HttpURLConnection::getRequestProperties)
- .hasFieldOrPropertyWithValue("Content-Type", Collections.singletonList("application/gzip"));
- assertThat(Authenticator.requestPasswordAuthentication(InetAddress.getLocalHost(), 443, "https", "test", "basic"))
- .isNull();
- }
-
- @Test
- void createConnection_withChartMuseumAndAuth_shouldReturnConnection() throws IOException {
- helmRepositoryBuilder.username("user").password("s3cret");
- // When
- final HttpURLConnection result = HelmRepository.HelmRepoType.CHARTMUSEUM
- .createConnection(File.createTempFile("junit", "ext", temporaryFolder), helmRepositoryBuilder.build());
- // Then
- assertThat(result)
- .isNotNull()
- .hasFieldOrPropertyWithValue("url", new URL("https://example.com/base/"))
- .hasFieldOrPropertyWithValue("requestMethod", "POST")
- .hasFieldOrPropertyWithValue("doOutput", true)
- .extracting(HttpURLConnection::getRequestProperties)
- .hasFieldOrPropertyWithValue("Content-Type", Collections.singletonList("application/gzip"));
- assertThat(Authenticator.requestPasswordAuthentication(InetAddress.getLocalHost(), 443, "https", "test", "basic"))
- .isNotNull()
- .hasFieldOrPropertyWithValue("userName", "user")
- .hasFieldOrPropertyWithValue("password", new char[]{'s', '3', 'c', 'r', 'e', 't'});
- }
-
- @Test
- void createConnection_withArtifactoryAndNoAuth_shouldReturnConnection() throws IOException {
- // When
- final HttpURLConnection result = HelmRepository.HelmRepoType.ARTIFACTORY
- .createConnection(Files.createFile(temporaryFolder.toPath().resolve("chart.tar")).toFile(),
- helmRepositoryBuilder.build());
- // Then
- assertThat(result)
- .isNotNull()
- .hasFieldOrPropertyWithValue("url", new URL("https://example.com/base/chart.tar"))
- .hasFieldOrPropertyWithValue("requestMethod", "PUT")
- .hasFieldOrPropertyWithValue("doOutput", true)
- .extracting(HttpURLConnection::getRequestProperties)
- .hasFieldOrPropertyWithValue("Content-Type", Collections.singletonList("application/gzip"));
- }
-
- @Test
- void createConnection_withNexusAndNoAuthAndTarGzExtension_shouldReturnConnectionToTgzUrl() throws IOException {
- // Given
- helmRepositoryBuilder.url("https://example.com");
- // When
- final HttpURLConnection result = HelmRepository.HelmRepoType.NEXUS
- .createConnection(Files.createFile(temporaryFolder.toPath().resolve("chart.tar.gz")).toFile(),
- helmRepositoryBuilder.build());
- // Then
- assertThat(result)
- .isNotNull()
- .hasFieldOrPropertyWithValue("url", new URL("https://example.com/chart.tgz"))
- .hasFieldOrPropertyWithValue("requestMethod", "PUT")
- .hasFieldOrPropertyWithValue("doOutput", true)
- .extracting(HttpURLConnection::getRequestProperties)
- .hasFieldOrPropertyWithValue("Content-Type", Collections.singletonList("application/gzip"));
- }
-
- @Test
- void createConnection_withNexusAndNoAuthAndTgzExtension_shouldReturnConnection() throws IOException {
- // When
- final HttpURLConnection result = HelmRepository.HelmRepoType.NEXUS
- .createConnection(Files.createFile(temporaryFolder.toPath().resolve("chart.tgz")).toFile(),
- helmRepositoryBuilder.build());
- // Then
- assertThat(result)
- .isNotNull()
- .hasFieldOrPropertyWithValue("url", new URL("https://example.com/base/chart.tgz"))
- .hasFieldOrPropertyWithValue("requestMethod", "PUT")
- .hasFieldOrPropertyWithValue("doOutput", true)
- .extracting(HttpURLConnection::getRequestProperties)
- .hasFieldOrPropertyWithValue("Content-Type", Collections.singletonList("application/gzip"));
- }
-}
diff --git a/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmRepositoryTest.java b/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmRepositoryTest.java
index d036380bbe..bcdf392774 100644
--- a/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmRepositoryTest.java
+++ b/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmRepositoryTest.java
@@ -41,7 +41,7 @@ void deserialize() throws Exception {
// Given
final String serializedChart = "{" +
"\"name\":\"repo-name\"," +
- "\"url\":\"http://example.com/url\"," +
+ "\"url\":\"https://example.com/url\"," +
"\"username\":\"user\"," +
"\"password\":\"pass\"," +
"\"type\":\"ARTIFACTORY\"}";
@@ -50,11 +50,11 @@ void deserialize() throws Exception {
// Then
assertThat(result)
.hasFieldOrPropertyWithValue("name", "repo-name")
- .hasFieldOrPropertyWithValue("url", "http://example.com/url")
+ .hasFieldOrPropertyWithValue("url", "https://example.com/url")
.hasFieldOrPropertyWithValue("username", "user")
.hasFieldOrPropertyWithValue("password", "pass")
.hasFieldOrPropertyWithValue("type", HelmRepoType.ARTIFACTORY)
- .hasToString("[repo-name / http://example.com/url]");
+ .hasToString("[repo-name / https://example.com/url]");
}
@Test
@@ -62,7 +62,7 @@ void builder() {
// Given
final HelmRepository.HelmRepositoryBuilder builder = HelmRepository.builder()
.name("repo-name")
- .url("http://example.com/url")
+ .url("https://example.com/url")
.username("user")
.password("pass")
.type(HelmRepoType.ARTIFACTORY);
@@ -71,11 +71,26 @@ void builder() {
// Then
assertThat(result)
.hasFieldOrPropertyWithValue("name", "repo-name")
- .hasFieldOrPropertyWithValue("url", "http://example.com/url")
+ .hasFieldOrPropertyWithValue("url", "https://example.com/url")
.hasFieldOrPropertyWithValue("username", "user")
.hasFieldOrPropertyWithValue("password", "pass")
- .hasFieldOrPropertyWithValue("type", HelmRepoType.ARTIFACTORY)
- .hasToString("[repo-name / http://example.com/url]");
+ .hasFieldOrPropertyWithValue("type", HelmRepoType.ARTIFACTORY);
}
+ @Test
+ void toString_returnsStringRepresentationWithNameAndUrl() {
+ // Given
+ final HelmRepository repository = HelmRepository.builder()
+ .name("repo-name")
+ .url("https://example.com/url")
+ .username("user")
+ .password("pass")
+ .type(HelmRepoType.ARTIFACTORY)
+ .build();
+ // When
+ final String result = repository.toString();
+ // Then
+ assertThat(result).isEqualTo("[repo-name / https://example.com/url]");
+
+ }
}
diff --git a/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmServiceTest.java b/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmServiceTest.java
index 706eb213fe..e8b870edae 100644
--- a/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmServiceTest.java
+++ b/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmServiceTest.java
@@ -39,20 +39,15 @@
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.io.TempDir;
import org.mockito.ArgumentCaptor;
-import org.mockito.MockedConstruction;
import org.mockito.MockedStatic;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException;
import static org.junit.jupiter.api.Assertions.assertThrows;
-import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.ArgumentMatchers.notNull;
-import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.mockConstruction;
import static org.mockito.Mockito.mockStatic;
-import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
class HelmServiceTest {
@@ -193,109 +188,4 @@ void createChartYamlWithDependencies() throws Exception {
Collections.singletonList(helmDependency));
}
}
-
- @Test
- void uploadChart_withValidRepository_shouldUpload()
- throws IOException, BadUploadException {
- try (MockedConstruction helmUploaderMockedConstruction = mockConstruction(HelmUploader.class,
- (mock, ctx) -> doNothing().when(mock).uploadSingle(any(File.class), any()))) {
- // Given
- final HelmRepository helmRepository = completeValidRepository().name("stable-repo").build();
- helmConfig
- .types(Collections.singletonList(HelmType.KUBERNETES))
- .chart("chartName")
- .version("1337")
- .chartExtension("tar.gz")
- .outputDir("target")
- .tarballOutputDir("target")
- .snapshotRepository(HelmRepository.builder().name("Snapshot-Repo").build())
- .stableRepository(helmRepository);
- // When
- helmService.uploadHelmChart(helmConfig.build());
- // Then
- ArgumentCaptor argumentCaptor = ArgumentCaptor.forClass(File.class);
- assertThat(helmUploaderMockedConstruction.constructed()).hasSize(1);
- HelmUploader constructedHelmUploader = helmUploaderMockedConstruction.constructed().get(0);
- verify(constructedHelmUploader).uploadSingle(argumentCaptor.capture(), eq(helmRepository));
- String fileName = "chartName-1337.tar.gz";
- assertThat(argumentCaptor.getValue())
- .hasName(fileName);
- }
- }
-
- @Test
- void uploadHelmChart_withInvalidRepositoryConfiguration_shouldFail() {
- // Given
- final HelmConfig helm = helmConfig.chart("chart").version("1337-SNAPSHOT")
- .snapshotRepository(HelmRepository.builder().name("INVALID").build())
- .build();
- // When
- final IllegalStateException result = assertThrows(IllegalStateException.class,
- () -> helmService.uploadHelmChart(helm));
- // Then
- assertThat(result).hasMessage("No repository or invalid repository configured for upload");
- }
-
- @Test
- void uploadHelmChart_withMissingRepositoryConfiguration_shouldFail() {
- // Given
- final HelmConfig helm = helmConfig.chart("chart").version("1337-SNAPSHOT").build();
- // When
- final IllegalStateException result = assertThrows(IllegalStateException.class,
- () -> helmService.uploadHelmChart(helm));
- // Then
- assertThat(result).hasMessage("No repository or invalid repository configured for upload");
- }
-
- @Test
- void uploadHelmChart_withServerConfigurationWithoutUsername_shouldFail() {
- // Given
- final HelmConfig helm = helmConfig.chart("chart").version("1337-SNAPSHOT")
- .snapshotRepository(completeValidRepository().username(null).build()).build();
- jKubeConfiguration.getRegistryConfig().getSettings()
- .add(RegistryServerConfiguration.builder().id("SNAP-REPO").build());
- // When
- final IllegalArgumentException result = assertThrows(IllegalArgumentException.class, () ->
- helmService.uploadHelmChart(helm));
- // Then
- assertThat(result).hasMessage("Repo SNAP-REPO was found in server list but has no username/password.");
- }
-
- @Test
- void uploadHelmChart_withServerConfigurationWithoutPassword_shouldFail() {
- // Given
- final HelmConfig helm = helmConfig.chart("chart").version("1337-SNAPSHOT")
- .snapshotRepository(completeValidRepository().password(null).build()).build();
- jKubeConfiguration.getRegistryConfig().getSettings()
- .add(RegistryServerConfiguration.builder().id("SNAP-REPO").build());
- // When
- final IllegalArgumentException result = assertThrows(IllegalArgumentException.class, () ->
- helmService.uploadHelmChart(helm));
- // Then
- assertThat(result).hasMessage("Repo SNAP-REPO has a username but no password defined.");
- }
-
-
- @Test
- void uploadHelmChart_withMissingServerConfiguration_shouldFail() {
- // Given
- final HelmConfig helm = helmConfig.chart("chart").version("1337-SNAPSHOT")
- .snapshotRepository(completeValidRepository().username(null).build()).build();
- jKubeConfiguration.getRegistryConfig().getSettings()
- .add(RegistryServerConfiguration.builder().id("DIFFERENT").build());
- // When
- final IllegalArgumentException result = assertThrows(IllegalArgumentException.class, () ->
- helmService.uploadHelmChart(helm));
- // Then
- assertThat(result).hasMessage("No credentials found for SNAP-REPO in configuration or settings.xml server list.");
- }
-
- private static HelmRepository.HelmRepositoryBuilder completeValidRepository() {
- return HelmRepository.builder()
- .name("SNAP-REPO")
- .type(HelmRepository.HelmRepoType.ARTIFACTORY)
- .url("https://example.com/artifactory")
- .username("User")
- .password("S3cret");
- }
}
diff --git a/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmServiceUploadIT.java b/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmServiceUploadIT.java
new file mode 100644
index 0000000000..b3205a2e95
--- /dev/null
+++ b/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmServiceUploadIT.java
@@ -0,0 +1,453 @@
+/**
+ * Copyright (c) 2019 Red Hat, Inc.
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at:
+ *
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ */
+package org.eclipse.jkube.kit.resource.helm;
+
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.ArrayDeque;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Queue;
+
+import io.fabric8.mockwebserver.Context;
+import io.fabric8.mockwebserver.DefaultMockServer;
+import io.fabric8.mockwebserver.MockServer;
+import io.fabric8.mockwebserver.ServerRequest;
+import io.fabric8.mockwebserver.ServerResponse;
+import io.fabric8.mockwebserver.dsl.HttpMethod;
+import io.fabric8.mockwebserver.internal.SimpleRequest;
+import okhttp3.mockwebserver.MockResponse;
+import okhttp3.mockwebserver.MockWebServer;
+import okhttp3.mockwebserver.RecordedRequest;
+import org.eclipse.jkube.kit.common.JKubeConfiguration;
+import org.eclipse.jkube.kit.common.JavaProject;
+import org.eclipse.jkube.kit.common.KitLogger;
+import org.eclipse.jkube.kit.common.RegistryConfig;
+import org.eclipse.jkube.kit.common.RegistryServerConfiguration;
+import org.eclipse.jkube.kit.common.util.Base64Util;
+import org.eclipse.jkube.kit.config.resource.ResourceServiceConfig;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.DisplayName;
+import org.junit.jupiter.api.Nested;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.io.TempDir;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.ValueSource;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+
+@DisplayName("HelmService.uploadHelmChart")
+class HelmServiceUploadIT {
+
+ private Map> responses;
+ private MockServer mockServer;
+ private KitLogger logger;
+ private HelmConfig helmConfig;
+ private RegistryServerConfiguration registryServerConfiguration;
+ private HelmService helmService;
+
+ @BeforeEach
+ void setUp(@TempDir Path temporaryFolder) throws IOException {
+ responses = new HashMap<>();
+ mockServer = new DefaultMockServer(new Context(), new MockWebServer(), responses, true);
+ logger = spy(new KitLogger.SilentLogger());
+ final Path helmOutput = Files.createDirectory(temporaryFolder.resolve("helm-output"));
+ Files.write(Files.createDirectory(helmOutput.resolve("kubernetes"))
+ .resolve("Helm-Chart-1337-SNAPSHOT.tar"), "archive content".getBytes(StandardCharsets.UTF_8));
+ helmConfig = HelmConfig.builder()
+ .chart("Helm-Chart")
+ .version("1337-SNAPSHOT")
+ .types(Collections.singletonList(HelmConfig.HelmType.KUBERNETES))
+ .snapshotRepository(HelmRepository.builder()
+ .type(HelmRepository.HelmRepoType.ARTIFACTORY)
+ .name("SNAP-REPO")
+ .url(mockServer.url("/"))
+ .build())
+ .outputDir(helmOutput.toFile().getAbsolutePath())
+ .tarballOutputDir(helmOutput.toFile().getAbsolutePath())
+ .chartExtension("tar")
+ .build();
+ registryServerConfiguration = RegistryServerConfiguration.builder()
+ .id("SNAP-REPO")
+ .username("user")
+ .password("pa33word")
+ .build();
+ helmService = new HelmService(
+ JKubeConfiguration.builder()
+ .project(JavaProject.builder().properties(new Properties()).build())
+ .registryConfig(RegistryConfig.builder()
+ .settings(Collections.singletonList(registryServerConfiguration)).build())
+ .build(),
+ new ResourceServiceConfig(),
+ logger);
+ }
+
+ @AfterEach
+ void tearDown() {
+ helmService = null;
+ }
+ @Test
+ @DisplayName("With no repository configuration throws Exception")
+ void withNoRepositoryConfiguration_shouldFail() {
+ // Given
+ helmConfig.setVersion("1337-SNAPSHOT");
+ helmConfig.setSnapshotRepository(null);
+ // When
+ final IllegalStateException result = assertThrows(IllegalStateException.class,
+ () -> helmService.uploadHelmChart(helmConfig));
+ // Then
+ assertThat(result).hasMessage("No repository or invalid repository configured for upload");
+ }
+
+ @Test
+ @DisplayName("With repository configuration missing URL throws Exception")
+ void withRepositoryConfigurationMissingUrl_shouldFail() {
+ // Given
+ helmConfig.setVersion("1337-SNAPSHOT");
+ helmConfig.setSnapshotRepository(HelmRepository.builder()
+ .type(HelmRepository.HelmRepoType.ARTIFACTORY)
+ .name("name")
+ .build());
+ // When
+ final IllegalStateException result = assertThrows(IllegalStateException.class,
+ () -> helmService.uploadHelmChart(helmConfig));
+ // Then
+ assertThat(result).hasMessage("No repository or invalid repository configured for upload");
+ }
+
+ @Test
+ @DisplayName("With repository configuration missing type throws Exception")
+ void withRepositoryConfigurationMissingType_shouldFail() {
+ // Given
+ helmConfig.setVersion("1337-SNAPSHOT");
+ helmConfig.setSnapshotRepository(HelmRepository.builder()
+ .name("name")
+ .url("https://example.com")
+ .build());
+ // When
+ final IllegalStateException result = assertThrows(IllegalStateException.class,
+ () -> helmService.uploadHelmChart(helmConfig));
+ // Then
+ assertThat(result).hasMessage("No repository or invalid repository configured for upload");
+ }
+
+ @Test
+ @DisplayName("With repository configuration missing name throws Exception")
+ void withRepositoryConfigurationMissingName_shouldFail() {
+ // Given
+ helmConfig.setVersion("1337-SNAPSHOT");
+ helmConfig.setSnapshotRepository(HelmRepository.builder()
+ .type(HelmRepository.HelmRepoType.ARTIFACTORY)
+ .url("https://example.com")
+ .build());
+ // When
+ final IllegalStateException result = assertThrows(IllegalStateException.class,
+ () -> helmService.uploadHelmChart(helmConfig));
+ // Then
+ assertThat(result).hasMessage("No repository or invalid repository configured for upload");
+ }
+
+ @Test
+ @DisplayName("With no server configuration throws Exception")
+ void withNoServerConfiguration_shouldFail() {
+ // Given
+ helmConfig.getSnapshotRepository().setName("NOT-SNAP-REPO");
+ // When
+ final IllegalArgumentException result = assertThrows(IllegalArgumentException.class, () ->
+ helmService.uploadHelmChart(helmConfig));
+ // Then
+ assertThat(result).hasMessage("No credentials found for NOT-SNAP-REPO in configuration or settings.xml server list.");
+ }
+
+ @Test
+ @DisplayName("With no server configuration and repository with username throws Exception")
+ void withNoServerConfigurationAndRepositoryWithUsername_shouldFail() {
+ // Given
+ helmConfig.getSnapshotRepository().setName("NOT-SNAP-REPO");
+ helmConfig.getSnapshotRepository().setUsername("user");
+ // When
+ final IllegalArgumentException result = assertThrows(IllegalArgumentException.class, () ->
+ helmService.uploadHelmChart(helmConfig));
+ // Then
+ assertThat(result).hasMessage("Repo NOT-SNAP-REPO has a username but no password defined.");
+ }
+
+ @Test
+ @DisplayName("With server configuration missing username throws Exception")
+ void withServerConfigurationWithoutUsername_shouldFail() {
+ // Given
+ registryServerConfiguration.setUsername(null);
+ // When
+ final IllegalArgumentException result = assertThrows(IllegalArgumentException.class, () ->
+ helmService.uploadHelmChart(helmConfig));
+ // Then
+ assertThat(result).hasMessage("Repo SNAP-REPO was found in server list but has no username/password.");
+ }
+
+ @Test
+ @DisplayName("With server configuration missing password throws Exception")
+ void withServerConfigurationWithoutPassword_shouldFail() {
+ // Given
+ registryServerConfiguration.setPassword(null);
+ // When
+ final IllegalArgumentException result = assertThrows(IllegalArgumentException.class, () ->
+ helmService.uploadHelmChart(helmConfig));
+ // Then
+ assertThat(result).hasMessage("Repo SNAP-REPO was found in server list but has no username/password.");
+ }
+
+ @Test
+ void withServerErrorAndErrorStream_shouldThrowException() {
+ // Given
+ mockServer.expect()
+ .put().withPath("/Helm-Chart-1337-SNAPSHOT.tar")
+ .andReturn(500, "Server error in ES")
+ .always();
+ // When
+ final BadUploadException result = assertThrows(BadUploadException.class,
+ () -> helmService.uploadHelmChart(helmConfig));
+ // Then
+ assertThat(result)
+ .isNotNull()
+ .hasMessage("Server error in ES");
+ }
+
+ @Test
+ void withServerErrorAndInputStream_shouldThrowException() {
+ // Given
+ mockServer.expect()
+ .put().withPath("/Helm-Chart-1337-SNAPSHOT.tar")
+ .andReturn(302, "Server error in IS")
+ .always();
+ // When
+ final BadUploadException result = assertThrows(BadUploadException.class,
+ () -> helmService.uploadHelmChart(helmConfig));
+ // Then
+ assertThat(result)
+ .isNotNull()
+ .hasMessage("Server error in IS");
+ }
+
+ @Test
+ void withServerErrorAndNoDetails_shouldThrowException() {
+ // Given
+ mockServer.expect()
+ .put().withPath("/Helm-Chart-1337-SNAPSHOT.tar")
+ .andReturn(404, "")
+ .always();
+ // When
+ final FileNotFoundException result = assertThrows(FileNotFoundException.class,
+ () -> helmService.uploadHelmChart(helmConfig));
+ // Then
+ assertThat(result).isNotNull();
+ }
+
+ @DisplayName("Authorizes with registry server credentials (PUT)")
+ @ParameterizedTest(name = "{index}: with repository type {0}")
+ @ValueSource(strings = {"ARTIFACTORY", "NEXUS"})
+ void withPutUpload_shouldUseRegistryServerCredentials(String repositoryType) throws Exception {
+ // Given
+ helmConfig.getSnapshotRepository().setType(repositoryType);
+ expect(HttpMethod.PUT, "/Helm-Chart-1337-SNAPSHOT.tar", new NeedsAuthorizationResponse());
+ // When
+ helmService.uploadHelmChart(helmConfig);
+ // Then
+ assertThat(mockServer.getLastRequest())
+ .extracting(r -> r.getHeader("Authorization"))
+ .isEqualTo("Basic " + Base64Util.encodeToString("user:pa33word"));
+ }
+
+ @DisplayName("Authorizes with registry server credentials (POST)")
+ @ParameterizedTest(name = "{index}: with repository type {0}")
+ @ValueSource(strings = {"CHARTMUSEUM"})
+ void withPostUpload_shouldUseRegistryServerCredentials(String repositoryType) throws Exception {
+ // Given
+ helmConfig.getSnapshotRepository().setType(repositoryType);
+ expect(HttpMethod.POST, "/", new NeedsAuthorizationResponse());
+ // When
+ helmService.uploadHelmChart(helmConfig);
+ // Then
+ assertThat(mockServer.getLastRequest())
+ .extracting(r -> r.getHeader("Authorization"))
+ .isEqualTo("Basic " + Base64Util.encodeToString("user:pa33word"));
+ }
+
+ @DisplayName("Authorizes with repository credentials -take precedence- (PUT)")
+ @ParameterizedTest(name = "{index}: with repository type {0}")
+ @ValueSource(strings = {"ARTIFACTORY", "NEXUS"})
+ void withPutUploadAndRepositoryCredentials_shouldUseRepositoryCredentials(String repositoryType) throws Exception {
+ // Given
+ helmConfig.getSnapshotRepository().setType(repositoryType);
+ helmConfig.getSnapshotRepository().setUsername("these");
+ helmConfig.getSnapshotRepository().setPassword("take-precedence");
+ expect(HttpMethod.PUT, "/Helm-Chart-1337-SNAPSHOT.tar", new NeedsAuthorizationResponse());
+ // When
+ helmService.uploadHelmChart(helmConfig);
+ // Then
+ assertThat(mockServer.getLastRequest())
+ .extracting(r -> r.getHeader("Authorization"))
+ .isEqualTo("Basic " + Base64Util.encodeToString("these:take-precedence"));
+ }
+
+ @DisplayName("Authorizes with repository credentials -take precedence- (POST)")
+ @ParameterizedTest(name = "{index}: with repository type {0}")
+ @ValueSource(strings = {"CHARTMUSEUM"})
+ void withPostUploadAndRepositoryCredentials_shouldUseRepositoryCredentials(String repositoryType) throws Exception {
+ // Given
+ helmConfig.getSnapshotRepository().setType(repositoryType);
+ helmConfig.getSnapshotRepository().setUsername("these");
+ helmConfig.getSnapshotRepository().setPassword("take-precedence");
+ expect(HttpMethod.POST, "/", new NeedsAuthorizationResponse());
+ // When
+ helmService.uploadHelmChart(helmConfig);
+ // Then
+ assertThat(mockServer.getLastRequest())
+ .extracting(r -> r.getHeader("Authorization"))
+ .isEqualTo("Basic " + Base64Util.encodeToString("these:take-precedence"));
+ }
+
+ @DisplayName("Logs success after successful PUT request")
+ @ParameterizedTest(name = "{index}: with repository type {0}")
+ @ValueSource(strings = {"ARTIFACTORY", "NEXUS"})
+ void withSuccessfulPutUpload_shouldLogSuccess(String repositoryType) throws Exception {
+ // Given
+ helmConfig.getSnapshotRepository().setType(repositoryType);
+ mockServer.expect()
+ .put().withPath("/Helm-Chart-1337-SNAPSHOT.tar")
+ .andReturn(201, "Upload successful")
+ .always();
+ // When
+ helmService.uploadHelmChart(helmConfig);
+ // Then
+ verify(logger).info("201 - Upload successful");
+ }
+
+ @DisplayName("Logs success after successful POST request")
+ @ParameterizedTest(name = "{index}: with repository type {0}")
+ @ValueSource(strings = {"CHARTMUSEUM"})
+ void withSuccessfulPostUpload_shouldLogSuccess(String repositoryType) throws Exception {
+ // Given
+ helmConfig.getSnapshotRepository().setType(repositoryType);
+ mockServer.expect()
+ .post().withPath("/")
+ .andReturn(201, "Upload successful")
+ .always();
+ // When
+ helmService.uploadHelmChart(helmConfig);
+ // Then
+ verify(logger).info("201 - Upload successful");
+ }
+
+ @DisplayName("Sends file in PUT request")
+ @ParameterizedTest(name = "{index}: with repository type {0}")
+ @ValueSource(strings = {"ARTIFACTORY", "NEXUS"})
+ void withSuccessfulPutUpload_shouldPutFile(String repositoryType) throws Exception {
+ // Given
+ helmConfig.getSnapshotRepository().setType(repositoryType);
+ mockServer.expect()
+ .put().withPath("/Helm-Chart-1337-SNAPSHOT.tar")
+ .andReturn(201, "Upload successful")
+ .always();
+ // When
+ helmService.uploadHelmChart(helmConfig);
+ // Then
+ assertThat(mockServer.getLastRequest().getBody().readUtf8())
+ .isEqualTo("archive content");
+ }
+
+ @DisplayName("Sends file in POST request")
+ @ParameterizedTest(name = "{index}: with repository type {0}")
+ @ValueSource(strings = {"CHARTMUSEUM"})
+ void withSuccessfulPostUpload_shouldPostFile(String repositoryType) throws Exception {
+ // Given
+ helmConfig.getSnapshotRepository().setType(repositoryType);
+ mockServer.expect()
+ .post().withPath("/")
+ .andReturn(201, "Upload successful")
+ .always();
+ // When
+ helmService.uploadHelmChart(helmConfig);
+ // Then
+ assertThat(mockServer.getLastRequest().getBody().readUtf8())
+ .isEqualTo("archive content");
+ }
+
+ @DisplayName("Nexus repository specifics")
+ @Nested
+ class Nexus {
+
+ @BeforeEach
+ void setUp() {
+ helmConfig.getSnapshotRepository().setType("NEXUS");
+ }
+
+ @Test
+ @DisplayName(".tar.gz extension is contracted to .tgz")
+ void tgzExtensionHandling() throws Exception {
+ // Given
+ helmConfig.setChartExtension("tar.gz");
+ Files.write(
+ Paths.get(helmConfig.getOutputDir()).resolve("kubernetes")
+ .resolve("Helm-Chart-1337-SNAPSHOT.tar.gz"),
+ "I'm a tar.gz, not a .tgz".getBytes(StandardCharsets.UTF_8));
+ mockServer.expect()
+ .put().withPath("/Helm-Chart-1337-SNAPSHOT.tgz")
+ .andReturn(201, "Upload successful")
+ .always();
+ // When
+ helmService.uploadHelmChart(helmConfig);
+ // Then
+ assertThat(mockServer.getLastRequest().getBody().readUtf8())
+ .isEqualTo("I'm a tar.gz, not a .tgz");
+ }
+ }
+
+ private void expect(HttpMethod method, String path, ServerResponse response) {
+ responses.computeIfAbsent(
+ new SimpleRequest(method, path),
+ k -> new ArrayDeque<>())
+ .add(response);
+ }
+
+ private static final class NeedsAuthorizationResponse implements ServerResponse {
+ @Override
+ public boolean isRepeatable() {
+ // always()
+ return true;
+ }
+
+ @Override
+ public MockResponse toMockResponse(RecordedRequest recordedRequest) {
+ if (recordedRequest.getHeader("Authorization") != null) {
+ return new MockResponse()
+ .setResponseCode(201).setBody("Upload successful");
+ } else {
+ return new MockResponse()
+ .setResponseCode(401)
+ .setHeader("WWW-Authenticate", "Basic")
+ .setBody("Unauthorized");
+ }
+ }
+ }
+}
diff --git a/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmUploaderTest.java b/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmUploaderTest.java
deleted file mode 100644
index e7170fe9d8..0000000000
--- a/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmUploaderTest.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/**
- * Copyright (c) 2019 Red Hat, Inc.
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at:
- *
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Red Hat, Inc. - initial API and implementation
- */
-package org.eclipse.jkube.kit.resource.helm;
-
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.IOException;
-import java.net.HttpURLConnection;
-
-import org.eclipse.jkube.kit.common.KitLogger;
-import org.junit.jupiter.api.AfterEach;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.io.TempDir;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.junit.jupiter.api.Assertions.assertThrows;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-class HelmUploaderTest {
-
- @TempDir
- File temporaryFolder;
-
- private KitLogger kitLogger;
-
- private HelmUploader helmUploader;
-
- @BeforeEach
- void setUp() {
- kitLogger = mock(KitLogger.class);
- helmUploader = new HelmUploader(kitLogger);
- }
-
- @AfterEach
- void tearDown() {
- kitLogger = null;
- helmUploader = null;
- }
-
- @Test
- void uploadSingle_withMissingType_shouldThrowException() {
- HelmRepository helmRepository = mock(HelmRepository.class);
- // Given
- File file = new File("test");
- when(helmRepository.getType()).thenReturn(null);
- // When
- final IllegalArgumentException result = assertThrows(IllegalArgumentException.class,
- () -> helmUploader.uploadSingle(file, helmRepository));
- // Then
- assertThat(result)
- .isNotNull()
- .hasMessage("Repository type missing. Check your plugin configuration.");
- }
-
- @Test
- void uploadSingle_withServerErrorAndErrorStream_shouldThrowException() throws IOException {
- HelmRepository helmRepository = mock(HelmRepository.class, RETURNS_DEEP_STUBS);
- HttpURLConnection httpURLConnection = mock(HttpURLConnection.class);
- // Given
- File file = File.createTempFile("test", "tmp", temporaryFolder);
- when(helmRepository.getType().createConnection(any(File.class), eq(helmRepository))).thenReturn(httpURLConnection);
- when(httpURLConnection.getResponseCode()).thenReturn(500);
- when(httpURLConnection.getErrorStream()).thenReturn(new ByteArrayInputStream("Server error in ES".getBytes()));
- when(httpURLConnection.getInputStream()).thenReturn(new ByteArrayInputStream("Server error in IS".getBytes()));
-
- // When
- final BadUploadException result = assertThrows(BadUploadException.class,
- () -> helmUploader.uploadSingle(file, helmRepository));
- // Then
- assertThat(result)
- .isNotNull()
- .hasMessage("Server error in ES");
- }
-
- @Test
- void uploadSingle_withServerErrorAndInputStream_shouldThrowException() throws IOException {
- // Given
- HelmRepository helmRepository = mock(HelmRepository.class, RETURNS_DEEP_STUBS);
- HttpURLConnection httpURLConnection = mock(HttpURLConnection.class);
- File file = File.createTempFile("test", "tmp", temporaryFolder);
- when(helmRepository.getType().createConnection(any(File.class), eq(helmRepository))).thenReturn(httpURLConnection);
- when(httpURLConnection.getResponseCode()).thenReturn(500);
- when(httpURLConnection.getErrorStream()).thenReturn(null);
- when(httpURLConnection.getInputStream()).thenReturn(new ByteArrayInputStream("Server error in IS".getBytes()));
- // When
- final BadUploadException result = assertThrows(BadUploadException.class,
- () -> helmUploader.uploadSingle(file, helmRepository));
- // Then
- assertThat(result)
- .isNotNull()
- .hasMessage("Server error in IS");
- }
-
- @Test
- void uploadSingle_withServerError_shouldThrowException() throws IOException {
- // Given
- HelmRepository helmRepository = mock(HelmRepository.class, RETURNS_DEEP_STUBS);
- HttpURLConnection httpURLConnection = mock(HttpURLConnection.class);
- File file = File.createTempFile("test", "tmp", temporaryFolder);
- when(helmRepository.getType().createConnection(any(File.class), eq(helmRepository))).thenReturn(httpURLConnection);
- when(httpURLConnection.getResponseCode()).thenReturn(500);
- when(httpURLConnection.getErrorStream()).thenReturn(null);
- when(httpURLConnection.getInputStream()).thenReturn(null);
- // When
- final BadUploadException result = assertThrows(BadUploadException.class,
- () -> helmUploader.uploadSingle(file, helmRepository));
- // Then
- assertThat(result)
- .isNotNull()
- .hasMessage("No details provided");
- }
-
- @Test
- void uploadSingle_withCreatedStatus_shouldDisconnect()throws IOException, BadUploadException {
- // Given
- HelmRepository helmRepository = mock(HelmRepository.class, RETURNS_DEEP_STUBS);
- HttpURLConnection httpURLConnection = mock(HttpURLConnection.class);
- File file = File.createTempFile("test", "tmp", temporaryFolder);
- when(helmRepository.getType().createConnection(any(File.class), eq(helmRepository))).thenReturn(httpURLConnection);
- when(httpURLConnection.getResponseCode()).thenReturn(201);
- when(httpURLConnection.getInputStream()).thenReturn(null);
- // When
- helmUploader.uploadSingle(file, helmRepository);
- // Then
- verify(httpURLConnection, times(1)).disconnect();
- }
-}
From 0ca194de004364726a0cb2420e7f990c6976e6ce Mon Sep 17 00:00:00 2001
From: Rohan Kumar
Date: Thu, 6 Jul 2023 20:20:09 +0530
Subject: [PATCH 24/65] test (jkube-kit-spring-boot) : Add more tests for
Spring Boot generator
+ Add SpringBootGeneratorIntegrationTest to test SpringBootGenerator
behavior
+ Add test for SpringBootConfigurationHelper for cases that are not
covered by AbstractSpringBootHealthCheckEnricherTest
+ Add additional missing test cases in SprignBootGeneratorTest
Signed-off-by: Rohan Kumar
---
.../SpringBootConfigurationHelperTest.java | 44 +++
.../SpringBootGeneratorIntegrationTest.java | 306 ++++++++++++++++++
.../generator/SpringBootGeneratorTest.java | 116 +++++++
.../application.properties | 1 +
.../application.properties | 1 +
5 files changed, 468 insertions(+)
create mode 100644 jkube-kit/common/src/test/java/org/eclipse/jkube/kit/common/util/SpringBootConfigurationHelperTest.java
create mode 100644 jkube-kit/jkube-kit-spring-boot/src/test/java/org/eclipse/jkube/springboot/generator/SpringBootGeneratorIntegrationTest.java
create mode 100644 jkube-kit/jkube-kit-spring-boot/src/test/resources/devtools-application-properties/application.properties
create mode 100644 jkube-kit/jkube-kit-spring-boot/src/test/resources/port-override-application-properties/application.properties
diff --git a/jkube-kit/common/src/test/java/org/eclipse/jkube/kit/common/util/SpringBootConfigurationHelperTest.java b/jkube-kit/common/src/test/java/org/eclipse/jkube/kit/common/util/SpringBootConfigurationHelperTest.java
new file mode 100644
index 0000000000..cc99a0a13e
--- /dev/null
+++ b/jkube-kit/common/src/test/java/org/eclipse/jkube/kit/common/util/SpringBootConfigurationHelperTest.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) 2019 Red Hat, Inc.
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at:
+ *
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ */
+package org.eclipse.jkube.kit.common.util;
+
+import org.junit.jupiter.api.Test;
+
+import java.util.Optional;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+class SpringBootConfigurationHelperTest {
+ @Test
+ void undefinedSpringBootVersion_shouldDefaultToSpringBoot1ConfigurationProperties() {
+ // Given
+ Optional springBootVersion = Optional.of("undefined");
+ SpringBootConfigurationHelper springBootConfigurationHelper = new SpringBootConfigurationHelper(springBootVersion);
+
+ // When + Then
+ assertSpringBoot1ConfigurationProperties(springBootConfigurationHelper);
+ }
+
+ private void assertSpringBoot1ConfigurationProperties(SpringBootConfigurationHelper springBootConfigurationHelper) {
+ assertThat(springBootConfigurationHelper.getManagementPortPropertyKey()).isEqualTo("management.port");
+ assertThat(springBootConfigurationHelper.getServerPortPropertyKey()).isEqualTo("server.port");
+ assertThat(springBootConfigurationHelper.getServerKeystorePropertyKey()).isEqualTo("server.ssl.key-store");
+ assertThat(springBootConfigurationHelper.getManagementKeystorePropertyKey()).isEqualTo("management.ssl.key-store");
+ assertThat(springBootConfigurationHelper.getServletPathPropertyKey()).isEqualTo("server.servlet-path");
+ assertThat(springBootConfigurationHelper.getServerContextPathPropertyKey()).isEqualTo("server.context-path");
+ assertThat(springBootConfigurationHelper.getManagementContextPathPropertyKey()).isEqualTo("management.context-path");
+ assertThat(springBootConfigurationHelper.getActuatorBasePathPropertyKey()).isEmpty();
+ assertThat(springBootConfigurationHelper.getActuatorDefaultBasePath()).isEmpty();
+ }
+}
diff --git a/jkube-kit/jkube-kit-spring-boot/src/test/java/org/eclipse/jkube/springboot/generator/SpringBootGeneratorIntegrationTest.java b/jkube-kit/jkube-kit-spring-boot/src/test/java/org/eclipse/jkube/springboot/generator/SpringBootGeneratorIntegrationTest.java
new file mode 100644
index 0000000000..d376551d26
--- /dev/null
+++ b/jkube-kit/jkube-kit-spring-boot/src/test/java/org/eclipse/jkube/springboot/generator/SpringBootGeneratorIntegrationTest.java
@@ -0,0 +1,306 @@
+/**
+ * Copyright (c) 2019 Red Hat, Inc.
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at:
+ *
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ */
+package org.eclipse.jkube.springboot.generator;
+
+import org.assertj.core.api.InstanceOfAssertFactories;
+import org.eclipse.jkube.generator.api.GeneratorContext;
+import org.eclipse.jkube.generator.api.GeneratorMode;
+import org.eclipse.jkube.generator.javaexec.FatJarDetector;
+import org.eclipse.jkube.kit.common.Assembly;
+import org.eclipse.jkube.kit.common.AssemblyConfiguration;
+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.eclipse.jkube.kit.config.image.ImageConfiguration;
+import org.eclipse.jkube.kit.config.image.build.BuildConfiguration;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.DisplayName;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.io.TempDir;
+import org.mockito.MockedConstruction;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+import java.util.Properties;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.mockConstruction;
+import static org.mockito.Mockito.when;
+
+class SpringBootGeneratorIntegrationTest {
+ private File targetDir;
+ private Properties properties;
+ @TempDir
+ Path temporaryFolder;
+
+ private GeneratorContext context;
+
+ @BeforeEach
+ void setUp() throws IOException {
+ properties = new Properties();
+ targetDir = Files.createDirectory(temporaryFolder.resolve("target")).toFile();
+ JavaProject javaProject = JavaProject.builder()
+ .baseDirectory(temporaryFolder.toFile())
+ .buildDirectory(targetDir.getAbsoluteFile())
+ .buildPackageDirectory(targetDir.getAbsoluteFile())
+ .outputDirectory(targetDir)
+ .properties(properties)
+ .version("1.0.0")
+ .dependency(Dependency.builder()
+ .groupId("org.springframework.boot")
+ .artifactId("spring-boot-web")
+ .version("2.7.2")
+ .build())
+ .plugin(Plugin.builder()
+ .groupId("org.springframework.boot")
+ .artifactId("spring-boot-maven-plugin")
+ .version("2.7.2")
+ .build())
+ .buildFinalName("sample")
+ .build();
+ context = GeneratorContext.builder()
+ .logger(new KitLogger.SilentLogger())
+ .project(javaProject)
+ .build();
+ }
+
+ @Test
+ @DisplayName("customize, with standard packaging, has image name")
+ void customize_withStandardPackaging_thenImageNameContainsGroupArtifactAndLatestTag() {
+ // Given
+ withCustomMainClass();
+ SpringBootGenerator springBootGenerator = new SpringBootGenerator(context);
+ List images = new ArrayList<>();
+
+ // When
+ images = springBootGenerator.customize(images, false);
+
+ // Then
+ assertThat(images)
+ .singleElement(InstanceOfAssertFactories.type(ImageConfiguration.class))
+ .hasFieldOrPropertyWithValue("name", "%g/%a:%l");
+ }
+
+ @Test
+ @DisplayName("customize, with standard packaging, has image alias")
+ void customize_withStandardPackaging_thenImageAliasSpringBoot() {
+ // Given
+ withCustomMainClass();
+ SpringBootGenerator springBootGenerator = new SpringBootGenerator(context);
+ List images = new ArrayList<>();
+
+ // When
+ images = springBootGenerator.customize(images, false);
+
+ // Then
+ assertThat(images)
+ .singleElement(InstanceOfAssertFactories.type(ImageConfiguration.class))
+ .hasFieldOrPropertyWithValue("alias", "spring-boot");
+ }
+
+ @Test
+ @DisplayName("customize, with standard packaging, has image from")
+ void customize_withStandardPackaging_hasFrom() {
+ // Given
+ withCustomMainClass();
+ SpringBootGenerator springBootGenerator = new SpringBootGenerator(context);
+ List images = new ArrayList<>();
+
+ // When
+ images = springBootGenerator.customize(images, false);
+
+ // Then
+ assertThat(images)
+ .singleElement(InstanceOfAssertFactories.type(ImageConfiguration.class))
+ .extracting(ImageConfiguration::getBuild)
+ .extracting(BuildConfiguration::getFrom)
+ .asString()
+ .startsWith("quay.io/jkube/jkube-java");
+ }
+
+ @Test
+ @DisplayName("customize, with standard packaging, has default web port")
+ void customize_withStandardPackaging_thenImageHasDefaultWebPort() {
+ // Given
+ withCustomMainClass();
+ SpringBootGenerator springBootGenerator = new SpringBootGenerator(context);
+ List images = new ArrayList<>();
+
+ // When
+ images = springBootGenerator.customize(images, false);
+
+ // Then
+ assertThat(images)
+ .singleElement()
+ .extracting("buildConfiguration.ports").asList()
+ .contains("8080");
+ }
+
+ @Test
+ @DisplayName("customize, with standard packaging, has Jolokia port")
+ void customize_withStandardPackaging_hasJolokiaPort() {
+ // When
+ final List result = new SpringBootGenerator(context).customize(new ArrayList<>(), true);
+ // Then
+ assertThat(result).singleElement()
+ .extracting("buildConfiguration.ports").asList()
+ .contains("8778");
+ }
+
+ @Test
+ @DisplayName("customize, with standard packaging, has Prometheus port")
+ void customize_withStandardPackaging_hasPrometheusPort() {
+ // When
+ final List result = new SpringBootGenerator(context).customize(new ArrayList<>(), true);
+ // Then
+ assertThat(result).singleElement()
+ .extracting("buildConfiguration.ports").asList()
+ .contains("9779");
+ }
+
+ @Test
+ @DisplayName("customize, in Kubernetes and jar artifact, should create assembly")
+ void customize_inKubernetesAndJarArtifact_shouldCreateAssembly() throws IOException {
+ try (MockedConstruction ignore = mockConstruction(FatJarDetector.class, (mock, ctx) -> {
+ FatJarDetector.Result fatJarDetectorResult = mock(FatJarDetector.Result.class);
+ when(mock.scan()).thenReturn(fatJarDetectorResult);
+ when(fatJarDetectorResult.getArchiveFile()).thenReturn(targetDir.toPath().resolve("sample.jar").toFile());
+ })) {
+ // Given
+ Files.createFile(targetDir.toPath().resolve("sample.jar"));
+
+ // When
+ final List resultImages = new SpringBootGenerator(context).customize(new ArrayList<>(), false);
+
+ // Then
+ assertThat(resultImages)
+ .isNotNull()
+ .singleElement()
+ .extracting(ImageConfiguration::getBuild)
+ .extracting(BuildConfiguration::getAssembly)
+ .hasFieldOrPropertyWithValue("targetDir", "/deployments")
+ .hasFieldOrPropertyWithValue("excludeFinalOutputArtifact", true)
+ .extracting(AssemblyConfiguration::getLayers)
+ .asList().hasSize(1)
+ .satisfies(layers -> assertThat(layers).element(0).asInstanceOf(InstanceOfAssertFactories.type(Assembly.class))
+ .extracting(Assembly::getFileSets)
+ .asList().element(2)
+ .hasFieldOrPropertyWithValue("outputDirectory", new File("."))
+ .extracting("includes").asList()
+ .containsExactly("sample.jar"));
+ }
+ }
+
+ @Test
+ @DisplayName("customize, with standard packaging, has java environment variables")
+ void customize_withStandardPackaging_thenImageHasJavaMainClassAndJavaAppDirEnvVars() {
+ // Given
+ withCustomMainClass();
+ SpringBootGenerator springBootGenerator = new SpringBootGenerator(context);
+ List images = new ArrayList<>();
+
+ // When
+ images = springBootGenerator.customize(images, false);
+
+ // Then
+ assertThat(images)
+ .singleElement(InstanceOfAssertFactories.type(ImageConfiguration.class))
+ .extracting(ImageConfiguration::getBuild)
+ .extracting(BuildConfiguration::getEnv)
+ .asInstanceOf(InstanceOfAssertFactories.MAP)
+ .containsEntry("JAVA_MAIN_CLASS", "org.example.Foo")
+ .containsEntry("JAVA_APP_DIR", "/deployments");
+ }
+
+ @Test
+ @DisplayName("customize, with custom port in application.properties, has overridden web port in image")
+ void customize_whenApplicationPortOverridden_shouldUseOverriddenWebPort() {
+ // Given
+ withCustomMainClass();
+ context = context.toBuilder()
+ .project(context.getProject().toBuilder()
+ .compileClassPathElement(Objects.requireNonNull(getClass().getResource("/port-override-application-properties")).getPath())
+ .build())
+ .build();
+ SpringBootGenerator springBootGenerator = new SpringBootGenerator(context);
+ List images = new ArrayList<>();
+
+ // When
+ images = springBootGenerator.customize(images, false);
+
+ // Then
+ assertThat(images)
+ .singleElement()
+ .extracting("buildConfiguration.ports").asList()
+ .contains("8081");
+ }
+
+ @Test
+ @DisplayName("customize, when generator mode WATCH, then add Spring Boot Devtools environment variable to image")
+ void customize_whenGeneratorModeWatch_shouldAddSpringBootDevtoolsSecretEnvVar() {
+ // Given
+ withCustomMainClass();
+ context = context.toBuilder()
+ .generatorMode(GeneratorMode.WATCH)
+ .project(context.getProject().toBuilder()
+ .compileClassPathElement(Objects.requireNonNull(getClass().getResource("/devtools-application-properties")).getPath())
+ .build())
+ .build();
+ SpringBootGenerator springBootGenerator = new SpringBootGenerator(context);
+ List images = new ArrayList<>();
+
+ // When
+ images = springBootGenerator.customize(images, false);
+
+ // Then
+ assertThat(images)
+ .singleElement(InstanceOfAssertFactories.type(ImageConfiguration.class))
+ .extracting(ImageConfiguration::getBuild)
+ .extracting(BuildConfiguration::getEnv)
+ .asInstanceOf(InstanceOfAssertFactories.MAP)
+ .containsEntry("SPRING_DEVTOOLS_REMOTE_SECRET", "some-secret");
+ }
+
+ @Test
+ @DisplayName("customize, when color configuration provided, then add spring.output.ansi.enabled property to JAVA_OPTIONS environment variable")
+ void customize_withColorConfiguration_shouldAddAnsiEnabledPropertyToJavaOptions() {
+ // Given
+ properties.put("jkube.generator.spring-boot.color", "always");
+ withCustomMainClass();
+ List images = new ArrayList<>();
+ SpringBootGenerator springBootGenerator = new SpringBootGenerator(context);
+
+ // When
+ images = springBootGenerator.customize(images, false);
+
+ // Then
+ assertThat(images)
+ .singleElement(InstanceOfAssertFactories.type(ImageConfiguration.class))
+ .extracting(ImageConfiguration::getBuild)
+ .extracting(BuildConfiguration::getEnv)
+ .asInstanceOf(InstanceOfAssertFactories.MAP)
+ .containsEntry("JAVA_OPTIONS", "-Dspring.output.ansi.enabled=always");
+ }
+
+ private void withCustomMainClass() {
+ properties.put("jkube.generator.spring-boot.mainClass", "org.example.Foo");
+ }
+}
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 830a180c43..109b81a9d5 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,6 +13,7 @@
*/
package org.eclipse.jkube.springboot.generator;
+import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
@@ -20,8 +21,12 @@
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Properties;
import org.eclipse.jkube.generator.api.GeneratorContext;
+import org.eclipse.jkube.generator.api.GeneratorMode;
import org.eclipse.jkube.kit.common.JavaProject;
import org.eclipse.jkube.kit.common.KitLogger;
import org.eclipse.jkube.kit.common.Plugin;
@@ -29,10 +34,12 @@
import org.eclipse.jkube.kit.config.image.build.BuildConfiguration;
import org.assertj.core.api.InstanceOfAssertFactories;
import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.io.TempDir;
import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatIllegalStateException;
class SpringBootGeneratorTest {
@@ -49,6 +56,22 @@ void setUp(@TempDir Path temporaryFolder) throws IOException {
.build();
}
+ @Test
+ @DisplayName("isApplicable, when valid ImageConfiguration present, then returns false")
+ void isApplicable_whenImageConfigurationPresent_thenReturnFalse() {
+ // Given
+ final List configs = Collections.singletonList(ImageConfiguration.builder()
+ .name("foo:latest")
+ .build(BuildConfiguration.builder()
+ .from("foo-base:latest")
+ .build())
+ .build());
+ // When
+ boolean result = new SpringBootGenerator(context).isApplicable(configs);
+ // Then
+ assertThat(result).isFalse();
+ }
+
@Test
void isApplicable_withNoImageConfigurations_shouldReturnFalse() {
// When
@@ -106,6 +129,99 @@ void customize_withEmptyList_shouldReturnAddedImage() {
.containsEntry("JAVA_APP_DIR", "/deployments");
}
+ @Test
+ void isFatJar_whenSpringBootRepackageAndNoMainClass_thenReturnTrue() {
+ // Given
+ context = context.toBuilder()
+ .project(context.getProject().toBuilder().plugin(Plugin.builder()
+ .groupId("org.springframework.boot")
+ .artifactId("spring-boot-maven-plugin")
+ .executions(Collections.singletonList("repackage"))
+ .build())
+ .build())
+ .build();
+ SpringBootGenerator springBootGenerator = new SpringBootGenerator(context);
+
+ // When
+ boolean result = springBootGenerator.isFatJar();
+
+ // Then
+ assertThat(result).isTrue();
+ }
+
+ @Test
+ void getEnv_whenGeneratorModeWatch_thenAddSpringBootDevtoolsEnvVar() {
+ // Given
+ context = context.toBuilder().generatorMode(GeneratorMode.WATCH)
+ .project(context.getProject().toBuilder().compileClassPathElement(Objects.requireNonNull(getClass().getResource("/devtools-application-properties")).getPath())
+ .build())
+ .build();
+ SpringBootGenerator springBootGenerator = new SpringBootGenerator(context);
+
+ // When
+ Map result = springBootGenerator.getEnv(true);
+
+ // Then
+ assertThat(result)
+ .containsEntry("SPRING_DEVTOOLS_REMOTE_SECRET", "some-secret");
+ }
+
+ @Test
+ void customize_whenGeneratorModeWatchAndNoDevtoolsRemoteSecret_shouldThrowException(@TempDir File temporaryFolder) {
+ // Given
+ context = context.toBuilder()
+ .project(context.getProject().toBuilder()
+ .baseDirectory(temporaryFolder)
+ .build())
+ .generatorMode(GeneratorMode.WATCH)
+ .build();
+
+ // When + Then
+ assertThatIllegalStateException()
+ .isThrownBy(() -> new SpringBootGenerator(context).customize(new ArrayList<>(), false))
+ .withMessage("No spring.devtools.remote.secret found in application.properties. Plugin has added it, please re-run goals");
+ }
+
+ @Test
+ void customize_whenGeneratorModeWatchAndDevtoolsSecretPresent_thenAddDevtoolsSecretEnvVar() {
+ // Given
+ Properties properties = new Properties();
+ properties.put("jkube.generator.spring-boot.mainClass", "org.example.Foo");
+ context = context.toBuilder()
+ .generatorMode(GeneratorMode.WATCH)
+ .project(context.getProject().toBuilder()
+ .properties(properties)
+ .compileClassPathElement(Objects.requireNonNull(getClass().getResource("/devtools-application-properties")).getPath())
+ .build())
+ .build();
+
+ // When
+ List imageConfigurations = new SpringBootGenerator(context).customize(new ArrayList<>(), false);
+
+ // Then
+ assertThat(imageConfigurations)
+ .singleElement(InstanceOfAssertFactories.type(ImageConfiguration.class))
+ .extracting(ImageConfiguration::getBuild)
+ .extracting(BuildConfiguration::getEnv)
+ .asInstanceOf(InstanceOfAssertFactories.MAP)
+ .containsEntry("SPRING_DEVTOOLS_REMOTE_SECRET", "some-secret");
+ }
+
+ @Test
+ void getExtraJavaOptions_whenColorEnabled_thenAddColorOption() {
+ // Given
+ Properties properties = new Properties();
+ properties.put("jkube.generator.spring-boot.color", "detect");
+ context = context.toBuilder().project(context.getProject().toBuilder().properties(properties).build()).build();
+ SpringBootGenerator springBootGenerator = new SpringBootGenerator(context);
+
+ // When
+ List javaOptions = springBootGenerator.getExtraJavaOptions();
+
+ // Then
+ assertThat(javaOptions).contains("-Dspring.output.ansi.enabled=detect");
+ }
+
private void withPlugin(Plugin plugin) {
context = context.toBuilder()
.project(JavaProject.builder().plugin(plugin).build())
diff --git a/jkube-kit/jkube-kit-spring-boot/src/test/resources/devtools-application-properties/application.properties b/jkube-kit/jkube-kit-spring-boot/src/test/resources/devtools-application-properties/application.properties
new file mode 100644
index 0000000000..51acd0c109
--- /dev/null
+++ b/jkube-kit/jkube-kit-spring-boot/src/test/resources/devtools-application-properties/application.properties
@@ -0,0 +1 @@
+spring.devtools.remote.secret=some-secret
\ No newline at end of file
diff --git a/jkube-kit/jkube-kit-spring-boot/src/test/resources/port-override-application-properties/application.properties b/jkube-kit/jkube-kit-spring-boot/src/test/resources/port-override-application-properties/application.properties
new file mode 100644
index 0000000000..bafddced85
--- /dev/null
+++ b/jkube-kit/jkube-kit-spring-boot/src/test/resources/port-override-application-properties/application.properties
@@ -0,0 +1 @@
+server.port=8081
\ No newline at end of file
From 2022659d98e7933e418690c095c148e974c4a1e2 Mon Sep 17 00:00:00 2001
From: Marc Nuri
Date: Tue, 11 Jul 2023 13:06:51 +0200
Subject: [PATCH 25/65] test: SpringBootConfigurationHelperTest has specific
assertions
Signed-off-by: Marc Nuri
---
.../SpringBootConfigurationHelperTest.java | 177 ++++++++++++++++--
.../SpringBootGeneratorIntegrationTest.java | 10 +-
2 files changed, 164 insertions(+), 23 deletions(-)
diff --git a/jkube-kit/common/src/test/java/org/eclipse/jkube/kit/common/util/SpringBootConfigurationHelperTest.java b/jkube-kit/common/src/test/java/org/eclipse/jkube/kit/common/util/SpringBootConfigurationHelperTest.java
index cc99a0a13e..7a0ba90e3d 100644
--- a/jkube-kit/common/src/test/java/org/eclipse/jkube/kit/common/util/SpringBootConfigurationHelperTest.java
+++ b/jkube-kit/common/src/test/java/org/eclipse/jkube/kit/common/util/SpringBootConfigurationHelperTest.java
@@ -13,32 +13,173 @@
*/
package org.eclipse.jkube.kit.common.util;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.DisplayName;
+import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.ValueSource;
import java.util.Optional;
+import java.util.Properties;
import static org.assertj.core.api.Assertions.assertThat;
class SpringBootConfigurationHelperTest {
- @Test
- void undefinedSpringBootVersion_shouldDefaultToSpringBoot1ConfigurationProperties() {
- // Given
- Optional springBootVersion = Optional.of("undefined");
- SpringBootConfigurationHelper springBootConfigurationHelper = new SpringBootConfigurationHelper(springBootVersion);
-
- // When + Then
- assertSpringBoot1ConfigurationProperties(springBootConfigurationHelper);
+
+ private Properties properties;
+
+ @BeforeEach
+ void setUp() {
+ properties = new Properties();
+ properties.put("management.port", "1");
+ properties.put("management.server.port", "2");
+ properties.put("server.port", "1");
}
- private void assertSpringBoot1ConfigurationProperties(SpringBootConfigurationHelper springBootConfigurationHelper) {
- assertThat(springBootConfigurationHelper.getManagementPortPropertyKey()).isEqualTo("management.port");
- assertThat(springBootConfigurationHelper.getServerPortPropertyKey()).isEqualTo("server.port");
- assertThat(springBootConfigurationHelper.getServerKeystorePropertyKey()).isEqualTo("server.ssl.key-store");
- assertThat(springBootConfigurationHelper.getManagementKeystorePropertyKey()).isEqualTo("management.ssl.key-store");
- assertThat(springBootConfigurationHelper.getServletPathPropertyKey()).isEqualTo("server.servlet-path");
- assertThat(springBootConfigurationHelper.getServerContextPathPropertyKey()).isEqualTo("server.context-path");
- assertThat(springBootConfigurationHelper.getManagementContextPathPropertyKey()).isEqualTo("management.context-path");
- assertThat(springBootConfigurationHelper.getActuatorBasePathPropertyKey()).isEmpty();
- assertThat(springBootConfigurationHelper.getActuatorDefaultBasePath()).isEmpty();
+ @Nested
+ @DisplayName("With '2.0' Spring Boot Version")
+ class SpringBoot2 {
+ private SpringBootConfigurationHelper springBootConfigurationHelper;
+
+ @BeforeEach
+ void setUp() {
+ springBootConfigurationHelper = new SpringBootConfigurationHelper(Optional.of("2.0"));
+ }
+
+ @Test
+ @DisplayName("getManagementPort defaults to 'management.server.port'")
+ void getManagementPort() {
+ assertThat(springBootConfigurationHelper.getManagementPort(properties)).isEqualTo(2);
+ }
+
+ @Test
+ @DisplayName("getServerPort defaults to 'server.port'")
+ void getServerPort() {
+ assertThat(springBootConfigurationHelper.getServerPort(properties)).isEqualTo(1);
+ }
+
+ @Test
+ @DisplayName("getServerKeystorePropertyKey defaults to 'server.ssl.key-store'")
+ void getServerKeystorePropertyKey() {
+ assertThat(springBootConfigurationHelper.getServerKeystorePropertyKey()).isEqualTo("server.ssl.key-store");
+ }
+
+ @Test
+ @DisplayName("getManagementKeystorePropertyKey defaults to 'management.server.ssl.key-store'")
+ void getManagementKeystorePropertyKey() {
+ assertThat(springBootConfigurationHelper.getManagementKeystorePropertyKey())
+ .isEqualTo("management.server.ssl.key-store");
+ }
+
+ @Test
+ @DisplayName("getServletPathPropertyKey defaults to 'server.servlet.path'")
+ void getServletPathPropertyKey() {
+ assertThat(springBootConfigurationHelper.getServletPathPropertyKey()).isEqualTo("server.servlet.path");
+ }
+
+ @Test
+ @DisplayName("getServerContextPathPropertyKey defaults to 'server.servlet.context-path'")
+ void getServerContextPathPropertyKey() {
+ assertThat(springBootConfigurationHelper.getServerContextPathPropertyKey())
+ .isEqualTo("server.servlet.context-path");
+ }
+
+ @Test
+ @DisplayName("getManagementContextPathPropertyKey defaults to 'management.server.servlet.context-path'")
+ void getManagementContextPathPropertyKey() {
+ assertThat(springBootConfigurationHelper.getManagementContextPathPropertyKey())
+ .isEqualTo("management.server.servlet.context-path");
+ }
+
+ @Test
+ @DisplayName("getActuatorBasePathPropertyKey defaults to 'management.endpoints.web.base-path'")
+ void getActuatorBasePathPropertyKey() {
+ assertThat(springBootConfigurationHelper.getActuatorBasePathPropertyKey())
+ .isEqualTo("management.endpoints.web.base-path");
+ }
+
+ @Test
+ @DisplayName("getActuatorDefaultBasePath defaults to '/actuator'")
+ void getActuatorDefaultBasePath() {
+ assertThat(springBootConfigurationHelper.getActuatorDefaultBasePath()).isEqualTo("/actuator");
+ }
+ }
+
+ @Nested
+ @DisplayName("With '1.0' (or undefined) Spring Boot Version")
+ class SpringBoot1 {
+
+ @ParameterizedTest(name = "{0}")
+ @ValueSource(strings = { "1.0", "undefined" })
+ @DisplayName("getManagementPort defaults to 'management.port' (Spring Boot 1)")
+ void getManagementPort(String version) {
+ assertThat(new SpringBootConfigurationHelper(Optional.of(version)).getManagementPort(properties))
+ .isEqualTo(1);
+ }
+
+ @ParameterizedTest(name = "{0}")
+ @ValueSource(strings = { "1.0", "undefined" })
+ @DisplayName("getServerPort defaults to 'server.port' (Spring Boot 1)")
+ void getServerPort(String version) {
+ assertThat(new SpringBootConfigurationHelper(Optional.of(version)).getServerPort(properties))
+ .isEqualTo(1);
+ }
+
+ @ParameterizedTest(name = "{0}")
+ @ValueSource(strings = { "1.0", "undefined" })
+ @DisplayName("getServerKeystorePropertyKey defaults to 'server.ssl.key-store' (Spring Boot 1)")
+ void getServerKeystorePropertyKey(String version) {
+ assertThat(new SpringBootConfigurationHelper(Optional.of(version)).getServerKeystorePropertyKey())
+ .isEqualTo("server.ssl.key-store");
+ }
+
+ @ParameterizedTest(name = "{0}")
+ @ValueSource(strings = { "1.0", "undefined" })
+ @DisplayName("getManagementKeystorePropertyKey defaults to 'management.ssl.key-store' (Spring Boot 1)")
+ void getManagementKeystorePropertyKey(String version) {
+ assertThat(new SpringBootConfigurationHelper(Optional.of(version)).getManagementKeystorePropertyKey())
+ .isEqualTo("management.ssl.key-store");
+ }
+
+ @ParameterizedTest(name = "{0}")
+ @ValueSource(strings = { "1.0", "undefined" })
+ @DisplayName("getServletPathPropertyKey defaults to 'server.servlet-path' (Spring Boot 1)")
+ void getServletPathPropertyKey(String version) {
+ assertThat(new SpringBootConfigurationHelper(Optional.of(version)).getServletPathPropertyKey())
+ .isEqualTo("server.servlet-path");
+ }
+
+ @ParameterizedTest(name = "{0}")
+ @ValueSource(strings = { "1.0", "undefined" })
+ @DisplayName("getServerContextPathPropertyKey defaults to 'server.context-path' (Spring Boot 1)")
+ void getServerContextPathPropertyKey(String version) {
+ assertThat(new SpringBootConfigurationHelper(Optional.of(version)).getServerContextPathPropertyKey())
+ .isEqualTo("server.context-path");
+ }
+
+ @ParameterizedTest(name = "{0}")
+ @ValueSource(strings = { "1.0", "undefined" })
+ @DisplayName("getManagementContextPathPropertyKey defaults to 'management.context-path' (Spring Boot 1)")
+ void getManagementContextPathPropertyKey(String version) {
+ assertThat(new SpringBootConfigurationHelper(Optional.of(version)).getManagementContextPathPropertyKey())
+ .isEqualTo("management.context-path");
+ }
+
+ @ParameterizedTest(name = "{0}")
+ @ValueSource(strings = { "1.0", "undefined" })
+ @DisplayName("getActuatorBasePathPropertyKey defaults to '' (Spring Boot 1)")
+ void getActuatorBasePathPropertyKey(String version) {
+ assertThat(new SpringBootConfigurationHelper(Optional.of(version)).getActuatorBasePathPropertyKey())
+ .isEmpty();
+ }
+
+ @ParameterizedTest(name = "{0}")
+ @ValueSource(strings = { "1.0", "undefined" })
+ @DisplayName("getActuatorDefaultBasePath defaults to '' (Spring Boot 1)")
+ void getActuatorDefaultBasePath(String version) {
+ assertThat(new SpringBootConfigurationHelper(Optional.of(version)).getActuatorDefaultBasePath()).
+ isEmpty();
+ }
}
}
diff --git a/jkube-kit/jkube-kit-spring-boot/src/test/java/org/eclipse/jkube/springboot/generator/SpringBootGeneratorIntegrationTest.java b/jkube-kit/jkube-kit-spring-boot/src/test/java/org/eclipse/jkube/springboot/generator/SpringBootGeneratorIntegrationTest.java
index d376551d26..9b352f420a 100644
--- a/jkube-kit/jkube-kit-spring-boot/src/test/java/org/eclipse/jkube/springboot/generator/SpringBootGeneratorIntegrationTest.java
+++ b/jkube-kit/jkube-kit-spring-boot/src/test/java/org/eclipse/jkube/springboot/generator/SpringBootGeneratorIntegrationTest.java
@@ -83,7 +83,7 @@ void setUp() throws IOException {
}
@Test
- @DisplayName("customize, with standard packaging, has image name")
+ @DisplayName("customize, with standard packaging, has standard image name")
void customize_withStandardPackaging_thenImageNameContainsGroupArtifactAndLatestTag() {
// Given
withCustomMainClass();
@@ -100,7 +100,7 @@ void customize_withStandardPackaging_thenImageNameContainsGroupArtifactAndLatest
}
@Test
- @DisplayName("customize, with standard packaging, has image alias")
+ @DisplayName("customize, with standard packaging, has 'spring-boot' image alias")
void customize_withStandardPackaging_thenImageAliasSpringBoot() {
// Given
withCustomMainClass();
@@ -117,7 +117,7 @@ void customize_withStandardPackaging_thenImageAliasSpringBoot() {
}
@Test
- @DisplayName("customize, with standard packaging, has image from")
+ @DisplayName("customize, with standard packaging, has image from based on standard Java Exec generator image")
void customize_withStandardPackaging_hasFrom() {
// Given
withCustomMainClass();
@@ -137,7 +137,7 @@ void customize_withStandardPackaging_hasFrom() {
}
@Test
- @DisplayName("customize, with standard packaging, has default web port")
+ @DisplayName("customize, with standard packaging, has '8080' web port")
void customize_withStandardPackaging_thenImageHasDefaultWebPort() {
// Given
withCustomMainClass();
@@ -280,7 +280,7 @@ void customize_whenGeneratorModeWatch_shouldAddSpringBootDevtoolsSecretEnvVar()
}
@Test
- @DisplayName("customize, when color configuration provided, then add spring.output.ansi.enabled property to JAVA_OPTIONS environment variable")
+ @DisplayName("customize, when color configuration provided, enables ANSI color output")
void customize_withColorConfiguration_shouldAddAnsiEnabledPropertyToJavaOptions() {
// Given
properties.put("jkube.generator.spring-boot.color", "always");
From 37b3f05d0ef09a99d7ea24ad3f9590d143389141 Mon Sep 17 00:00:00 2001
From: Marc Nuri
Date: Thu, 6 Jul 2023 11:18:26 +0200
Subject: [PATCH 26/65] test: ApplyService tests prior to further refactoring
and method consolidation
Signed-off-by: Marc Nuri
---
.../kit/config/service/ApplyService.java | 54 ++---
.../config/service/ApplyServiceCrudTest.java | 225 ++++++++++++++++++
2 files changed, 250 insertions(+), 29 deletions(-)
create mode 100644 jkube-kit/config/service/src/test/java/org/eclipse/jkube/kit/config/service/ApplyServiceCrudTest.java
diff --git a/jkube-kit/config/service/src/main/java/org/eclipse/jkube/kit/config/service/ApplyService.java b/jkube-kit/config/service/src/main/java/org/eclipse/jkube/kit/config/service/ApplyService.java
index c0a2a56b33..d0e586a0a6 100644
--- a/jkube-kit/config/service/src/main/java/org/eclipse/jkube/kit/config/service/ApplyService.java
+++ b/jkube-kit/config/service/src/main/java/org/eclipse/jkube/kit/config/service/ApplyService.java
@@ -944,46 +944,41 @@ public boolean applyNamespace(Namespace entity) {
}
/**
- * Creates and return a project in openshift
- * @param project
- * @return
+ * Creates an OpenShift Project
*/
- public boolean applyProject(Project project) {
- return applyProjectRequest(new ProjectRequestBuilder()
- .withDisplayName(project.getMetadata().getName())
- .withMetadata(project.getMetadata()).build());
+ public void applyProject(Project project) {
+ applyProjectRequest(new ProjectRequestBuilder()
+ .withDisplayName(project.getMetadata().getName())
+ .withMetadata(project.getMetadata()).build());
}
/**
* Returns true if the ProjectRequest is created
*/
- public boolean applyProjectRequest(ProjectRequest entity) {
+ public void applyProjectRequest(ProjectRequest entity) {
+ final String projectName = getOrCreateMetadata(entity).getName();
+ Objects.requireNonNull(projectName, "No name for " + entity);
// Check whether project creation attempted before
- if (projectsCreated.contains(getName(entity))) {
- return false;
+ if (projectsCreated.contains(projectName)) {
+ return;
}
- String currentNamespace = getOrCreateMetadata(entity).getName();
- log.info("Creating project: " + currentNamespace);
- String name = getName(entity);
- Objects.requireNonNull(name, "No name for " + entity);
+ log.info("Creating project: " + projectName);
if (!OpenshiftHelper.isOpenShift(kubernetesClient)) {
- log.warn("Cannot check for Project " + currentNamespace + " as not running against OpenShift!");
- return false;
+ log.warn("Cannot check for Project " + projectName + " as not running against OpenShift!");
+ return;
}
- boolean exists = checkNamespace(name);
+ boolean exists = checkNamespace(projectName);
// We may want to be more fine-grained on the phase of the project
if (!exists) {
try {
Object answer = asOpenShiftClient().projectrequests().create(entity);
// Add project to created projects
- projectsCreated.add(name);
- logGeneratedEntity("Created ProjectRequest: ", currentNamespace, entity, answer);
- return true;
+ projectsCreated.add(projectName);
+ logGeneratedEntity("Created ProjectRequest: ", projectName, entity, answer);
} catch (Exception e) {
- onApplyError("Failed to create ProjectRequest: " + name + " due " + e.getMessage(), e);
+ onApplyError("Failed to create ProjectRequest: " + projectName + " due " + e.getMessage(), e);
}
}
- return false;
}
private void doCreate(HasMetadata resource, String namespace, String fileName) {
@@ -1064,20 +1059,20 @@ public void applyReplicationController(ReplicationController replicationControll
public void applyPod(Pod pod, String sourceName) {
String currentNamespace = applicableNamespace(pod, namespace, fallbackNamespace);
- String id = getName(pod);
- Objects.requireNonNull(id, "No name for " + pod + " " + sourceName);
+ final String name = getName(pod);
+ Objects.requireNonNull(name, "No name for " + pod + " " + sourceName);
if (isServicesOnlyMode()) {
- log.debug("Only processing Services right now so ignoring Pod: " + currentNamespace + ":" + id);
+ log.debug("Only processing Services right now so ignoring Pod: " + currentNamespace + ":" + name);
return;
}
- Pod old = kubernetesClient.pods().inNamespace(currentNamespace).withName(id).get();
+ Pod old = kubernetesClient.pods().inNamespace(currentNamespace).withName(name).get();
if (isRunning(old)) {
if (UserConfigurationCompare.configEqual(pod, old)) {
log.info("Pod has not changed so not doing anything");
} else {
if (isRecreateMode()) {
- log.info("Deleting Pod: " + id);
- kubernetesClient.pods().inNamespace(currentNamespace).withName(id).delete();
+ log.info("Deleting Pod: " + name);
+ kubernetesClient.pods().inNamespace(currentNamespace).withName(name).delete();
doCreate(pod, currentNamespace, sourceName);
} else {
doPatchEntity(old, pod, currentNamespace, sourceName);
@@ -1085,7 +1080,8 @@ public void applyPod(Pod pod, String sourceName) {
}
} else {
if (!isAllowCreate()) {
- log.warn("Creation disabled so not creating a pod from " + sourceName + " namespace " + currentNamespace + " name " + getName(pod));
+ log.warn("Creation disabled so not creating a pod from %s in namespace %s with name %s",
+ sourceName, currentNamespace, name);
} else {
doCreate(pod, currentNamespace, sourceName);
}
diff --git a/jkube-kit/config/service/src/test/java/org/eclipse/jkube/kit/config/service/ApplyServiceCrudTest.java b/jkube-kit/config/service/src/test/java/org/eclipse/jkube/kit/config/service/ApplyServiceCrudTest.java
new file mode 100644
index 0000000000..d7b8dba613
--- /dev/null
+++ b/jkube-kit/config/service/src/test/java/org/eclipse/jkube/kit/config/service/ApplyServiceCrudTest.java
@@ -0,0 +1,225 @@
+/*
+ * Copyright (c) 2019 Red Hat, Inc.
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at:
+ *
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ */
+package org.eclipse.jkube.kit.config.service;
+
+import io.fabric8.kubernetes.api.model.APIGroupBuilder;
+import io.fabric8.kubernetes.api.model.APIGroupList;
+import io.fabric8.kubernetes.api.model.ConfigMapBuilder;
+import io.fabric8.kubernetes.api.model.HasMetadata;
+import io.fabric8.kubernetes.api.model.KubernetesList;
+import io.fabric8.kubernetes.api.model.KubernetesListBuilder;
+import io.fabric8.kubernetes.api.model.Pod;
+import io.fabric8.kubernetes.api.model.PodBuilder;
+import io.fabric8.kubernetes.api.model.ServiceBuilder;
+import io.fabric8.kubernetes.client.KubernetesClient;
+import io.fabric8.kubernetes.client.server.mock.EnableKubernetesMockClient;
+import io.fabric8.kubernetes.client.server.mock.KubernetesMockServer;
+import io.fabric8.openshift.api.model.Project;
+import io.fabric8.openshift.api.model.ProjectBuilder;
+import io.fabric8.openshift.api.model.ProjectRequestBuilder;
+import io.fabric8.openshift.client.OpenShiftClient;
+import org.eclipse.jkube.kit.common.JKubeConfiguration;
+import org.eclipse.jkube.kit.common.KitLogger;
+import org.eclipse.jkube.kit.config.access.ClusterAccess;
+import org.eclipse.jkube.kit.config.access.ClusterConfiguration;
+import org.eclipse.jkube.kit.config.resource.RuntimeMode;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.DisplayName;
+import org.junit.jupiter.api.Test;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.ArgumentMatchers.startsWith;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+
+@EnableKubernetesMockClient(crud = true)
+class ApplyServiceCrudTest {
+
+ KubernetesMockServer kubernetesMockServer;
+ KubernetesClient kubernetesClient;
+ private KitLogger log;
+ private APIGroupList apiGroupList;
+ private ApplyService applyService;
+
+ @BeforeEach
+ void setUp() {
+ log = spy(new KitLogger.SilentLogger());
+ apiGroupList = new APIGroupList();
+ final JKubeServiceHub serviceHub = JKubeServiceHub.builder()
+ .log(log)
+ .configuration(JKubeConfiguration.builder().build())
+ .platformMode(RuntimeMode.KUBERNETES)
+ .clusterAccess(new ClusterAccess(ClusterConfiguration.from(kubernetesClient.getConfiguration()).build()))
+ .build();
+ applyService = new ApplyService(serviceHub);
+ applyService.setNamespace("default");
+ kubernetesMockServer.expect()
+ .get()
+ .withPath("/apis")
+ .andReply(200, rr -> apiGroupList)
+ .always();
+ }
+
+ @Test
+ @DisplayName("apply from List with nested objects, should apply all objects")
+ void applyWithNestedObjectsInList() {
+ // Given
+ final List super HasMetadata> toApply = Arrays.asList(
+ new PodBuilder().withNewMetadata().withName("a-pod").endMetadata().build(),
+ new ConfigMapBuilder().withNewMetadata().withName("a-config-map").endMetadata().build()
+ );
+ // When
+ applyService.apply(toApply, "list.yml");
+ // Then
+ assertThat(kubernetesClient)
+ .returns("a-pod", c -> c.pods().inNamespace("default").withName("a-pod").get().getMetadata().getName())
+ .returns("a-config-map", c -> c.configMaps().inNamespace("default").withName("a-config-map").get().getMetadata().getName());
+ }
+
+ @Test
+ @DisplayName("apply from KubernetesList with nested objects, should apply all objects")
+ void applyWithNestedObjectsInKubernetesList() {
+ // Given
+ final KubernetesList toApply = new KubernetesListBuilder()
+ .addToItems(new PodBuilder().withNewMetadata().withName("a-pod").endMetadata().build())
+ .addToItems(new ConfigMapBuilder().withNewMetadata().withName("a-config-map").endMetadata().build())
+ .build();
+ // When
+ applyService.apply(toApply, "list.yml");
+ // Then
+ assertThat(kubernetesClient)
+ .returns("a-pod", c -> c.pods().inNamespace("default").withName("a-pod").get().getMetadata().getName())
+ .returns("a-config-map", c -> c.configMaps().inNamespace("default").withName("a-config-map").get().getMetadata().getName());
+ }
+
+ @Test
+ @DisplayName("apply from recursive List with nested objects, should apply only objects")
+ void applyWithNestedObjectsInRecursiveList() {
+ // Given
+ final List toApply = new ArrayList<>();
+ toApply.add(new PodBuilder().withNewMetadata().withName("a-pod").endMetadata().build());
+ toApply.add(new ConfigMapBuilder().withNewMetadata().withName("a-config-map").endMetadata().build());
+ //noinspection CollectionAddedToSelf
+ toApply.add(toApply);
+ // When
+ applyService.apply(toApply, "list.yml");
+ // Then
+ assertThat(kubernetesClient)
+ .returns("a-pod", c -> c.pods().inNamespace("default").withName("a-pod").get().getMetadata().getName())
+ .returns("a-config-map", c -> c.configMaps().inNamespace("default").withName("a-config-map").get().getMetadata().getName());
+ }
+
+ @Test
+ @DisplayName("apply in services mode, should apply only services")
+ void applyInServicesMode() {
+ // Given
+ final KubernetesList toApply = new KubernetesListBuilder()
+ .addToItems(new PodBuilder().withNewMetadata().withName("a-pod").endMetadata().build())
+ .addToItems(new ServiceBuilder().withNewMetadata().withName("a-service").endMetadata().build())
+ .build();
+ applyService.setServicesOnlyMode(true);
+ // When
+ applyService.apply(toApply, "list.yml");
+ // Then
+ assertThat(kubernetesClient)
+ .returns(null, c -> c.pods().inNamespace("default").withName("a-pod").get())
+ .returns("a-service", c -> c.services().inNamespace("default").withName("a-service").get().getMetadata().getName());
+ }
+
+ @Test
+ @DisplayName("apply with new resource and creation disabled, should do nothing")
+ void applyWithNewResourceAndCreationDisabled() {
+ // Given
+ final Pod toApply = new PodBuilder().withNewMetadata()
+ .withName("a-pod")
+ .endMetadata().build();
+ applyService.setAllowCreate(false);
+ // When
+ applyService.apply(toApply, "pod.yml");
+ // Then
+ assertThat(kubernetesClient.pods().inNamespace("default").withName("a-pod").get())
+ .isNull();
+ verify(log).warn("Creation disabled so not creating a pod from %s in namespace %s with name %s",
+ "pod.yml", "default", "a-pod");
+ }
+
+ @Test
+ @DisplayName("apply with existing resource, should update the resource")
+ void applyWithExistingResource() {
+ // Given
+ final Pod toApply = new PodBuilder().withNewMetadata()
+ .withName("a-pod")
+ .endMetadata().build();
+ final Pod original = kubernetesClient.resource(toApply).inNamespace("default").create();
+ // When
+ applyService.apply(toApply, "pod.yml");
+ // Then
+ assertThat(kubernetesClient.pods().inNamespace("default").withName("a-pod").get())
+ .hasFieldOrPropertyWithValue("metadata.uid", original.getMetadata().getUid())
+ .hasFieldOrPropertyWithValue("metadata.creationTimestamp", original.getMetadata().getCreationTimestamp());
+ }
+
+ @Test
+ @DisplayName("apply with existing resource, in recreate mode, should delete and recreate resource")
+ void applyWithExistingResourceInRecreateMode() {
+ // Given
+ final Pod toApply = new PodBuilder().withNewMetadata()
+ .withName("a-pod")
+ .endMetadata().build();
+ final Pod original = kubernetesClient.resource(toApply).inNamespace("default").create();
+ applyService.setRecreateMode(true);
+ // When
+ applyService.apply(toApply, "pod.yml");
+ // Then
+ assertThat(kubernetesClient.pods().inNamespace("default").withName("a-pod").get())
+ .extracting("metadata.uid")
+ .isNotEqualTo(original.getMetadata().getUid());
+ }
+
+ @Test
+ @DisplayName("apply with Project, in vanilla Kubernetes, should do nothing")
+ void applyProjectInKubernetes() {
+ // Given
+ final Project toApply = new ProjectBuilder().withNewMetadata()
+ .withName("a-project")
+ .endMetadata().build();
+ // When
+ applyService.apply(toApply, "project.yml");
+ // Then
+ assertThat(kubernetesClient.adapt(OpenShiftClient.class).projects().withName("a-project").get())
+ .isNull();
+ verify(log).warn("Cannot check for Project a-project as not running against OpenShift!");
+ }
+
+ @Test
+ @DisplayName("apply with Project, in OpenShift, should request Project")
+ void applyProjectInOpenShift() {
+ // Given
+ final Project toApply = new ProjectBuilder().withNewMetadata()
+ .withName("a-project")
+ .endMetadata().build();
+ apiGroupList.getGroups().add(new APIGroupBuilder().withName("build.openshift.io").withApiVersion("v1").build());
+ // When
+ applyService.apply(toApply, "project.yml");
+ // Then
+ // Hack to retrieve the ProjectRequest from the mock API server (the real OpenShift API won't allow the get operation)
+ assertThat(kubernetesClient.resource(new ProjectRequestBuilder().withNewMetadata().withName("a-project").endMetadata().build()).get())
+ .isNotNull();
+ verify(log).info(startsWith("Created ProjectRequest:"));
+ }
+}
From 0bf40bd8f83b34841d1b4b601759cf9c977c3dfa Mon Sep 17 00:00:00 2001
From: Marc Nuri
Date: Tue, 11 Jul 2023 14:49:56 +0200
Subject: [PATCH 27/65] ci: Sonar has complete report
"Could not find ref 'master' in refs/heads, refs/remotes/upstream or refs/remotes/origin. You may see unexpected issues and changes. Please make sure to fetch this ref before pull request analysis."
Signed-off-by: Marc Nuri
---
.jenkins/pipelines/sonar.Jenkinsfile | 3 +++
1 file changed, 3 insertions(+)
diff --git a/.jenkins/pipelines/sonar.Jenkinsfile b/.jenkins/pipelines/sonar.Jenkinsfile
index 6134259c02..e186f416df 100644
--- a/.jenkins/pipelines/sonar.Jenkinsfile
+++ b/.jenkins/pipelines/sonar.Jenkinsfile
@@ -15,6 +15,9 @@ pipeline {
when { changeRequest() }
steps {
sh 'echo "Building Project and analyzing with Sonar"'
+ // Required by Sonar to compare coverage info, etc. with master
+ sh 'git remote add upstream https://github.com/eclipse/jkube.git'
+ sh 'git fetch upstream'
// Needs install instad of verify since ITs rely on artifacts from previous modules
sh './mvnw -V -B -e -Pjacoco,sonar install ' +
'-Dsonar.pullrequest.key=${CHANGE_ID} ' +
From 1ac4f7cbd304f7e516d7f3104a03c84c0ad48f46 Mon Sep 17 00:00:00 2001
From: Rohan Kumar
Date: Tue, 11 Jul 2023 18:11:51 +0530
Subject: [PATCH 28/65] feat (jkube-kit/common) : Add HTTP utility methods to
Fabric8HttpUtil
Add various methods required for performing HTTP requests to
Fabric8HttpUtil. Use Fabric8 K8s Client's HttpResponse abstractions for HTTP
requests.
Signed-off-by: Rohan Kumar
---
.../kit/common/util/Fabric8HttpUtil.java | 71 +++++++++++++++++++
.../kit/common/util/Fabric8HttpUtilTest.java | 68 ++++++++++++++++++
.../common/util/TestFabric8HttpResponse.java | 62 ++++++++++++++++
3 files changed, 201 insertions(+)
create mode 100644 jkube-kit/common/src/main/java/org/eclipse/jkube/kit/common/util/Fabric8HttpUtil.java
create mode 100644 jkube-kit/common/src/test/java/org/eclipse/jkube/kit/common/util/Fabric8HttpUtilTest.java
create mode 100644 jkube-kit/common/src/test/java/org/eclipse/jkube/kit/common/util/TestFabric8HttpResponse.java
diff --git a/jkube-kit/common/src/main/java/org/eclipse/jkube/kit/common/util/Fabric8HttpUtil.java b/jkube-kit/common/src/main/java/org/eclipse/jkube/kit/common/util/Fabric8HttpUtil.java
new file mode 100644
index 0000000000..0041fe7bc4
--- /dev/null
+++ b/jkube-kit/common/src/main/java/org/eclipse/jkube/kit/common/util/Fabric8HttpUtil.java
@@ -0,0 +1,71 @@
+/**
+ * Copyright (c) 2019 Red Hat, Inc.
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at:
+ *
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ */
+package org.eclipse.jkube.kit.common.util;
+
+import io.fabric8.kubernetes.client.http.HttpResponse;
+
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
+import java.util.HashMap;
+import java.util.Map;
+
+import static org.apache.commons.lang3.StringUtils.strip;
+
+public class Fabric8HttpUtil {
+ private static final String WWW_AUTHENTICATE = "WWW-Authenticate";
+
+ private Fabric8HttpUtil() { }
+
+ /**
+ * Parse WWW-Authenticate Header as map
+ *
+ * @param response Http Response of a particular request
+ * @return map containing various components of header as key value pairs
+ */
+ public static Map extractAuthenticationChallengeIntoMap(HttpResponse response) {
+ String wwwAuthenticateHeader = response.header(WWW_AUTHENTICATE);
+ String[] wwwAuthenticateHeaders = wwwAuthenticateHeader.split(",");
+ Map result = new HashMap<>();
+ for (String challenge : wwwAuthenticateHeaders) {
+ if (challenge.contains("=")) {
+ String[] challengeParts = challenge.split("=");
+ if (challengeParts.length == 2) {
+ result.put(challengeParts[0], strip(challengeParts[1], "\""));
+ }
+ }
+ }
+ return result;
+ }
+
+
+ /**
+ * Create Form Data String from map
+ *
+ * @param formData map containing key value pairs for form data
+ * @return URL encoded value of form data
+ */
+ public static String toFormData(Map formData) throws UnsupportedEncodingException {
+ StringBuilder result = new StringBuilder();
+ for (Map.Entry e : formData.entrySet()) {
+ if (result.length() > 0) {
+ result.append("&");
+ }
+ result.append(URLEncoder.encode(e.getKey(), StandardCharsets.UTF_8.name()));
+ result.append("=");
+ result.append(URLEncoder.encode(e.getValue(), StandardCharsets.UTF_8.name()));
+ }
+ return result.toString();
+ }
+}
diff --git a/jkube-kit/common/src/test/java/org/eclipse/jkube/kit/common/util/Fabric8HttpUtilTest.java b/jkube-kit/common/src/test/java/org/eclipse/jkube/kit/common/util/Fabric8HttpUtilTest.java
new file mode 100644
index 0000000000..e99fe45832
--- /dev/null
+++ b/jkube-kit/common/src/test/java/org/eclipse/jkube/kit/common/util/Fabric8HttpUtilTest.java
@@ -0,0 +1,68 @@
+/**
+ * Copyright (c) 2019 Red Hat, Inc.
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at:
+ *
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ */
+package org.eclipse.jkube.kit.common.util;
+
+import io.fabric8.kubernetes.client.http.HttpResponse;
+import org.junit.jupiter.api.Test;
+
+import java.io.UnsupportedEncodingException;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import static java.net.HttpURLConnection.HTTP_OK;
+import static org.assertj.core.api.Assertions.assertThat;
+
+class Fabric8HttpUtilTest {
+
+ @Test
+ void toFormData_whenDataProvidedAsMap_thenCreateFormDataPayload() throws UnsupportedEncodingException {
+ // Given
+ Map formDataMap = new HashMap<>();
+ formDataMap.put("grant_type", "password");
+ formDataMap.put("refresh_token", "secret");
+ formDataMap.put("service", "auth.example.com");
+ formDataMap.put("scope", "repository=myuser/test-chart:pull");
+ formDataMap.put("client id", "Eclipse&JKube");
+ formDataMap.put("username", "?myuser");
+ formDataMap.put("password", "secret");
+
+ // When
+ String formDataPayload = Fabric8HttpUtil.toFormData(formDataMap);
+
+ // Then
+ assertThat(formDataPayload)
+ .isEqualTo("client+id=Eclipse%26JKube&refresh_token=secret&password=secret&grant_type=password&service=auth.example.com&scope=repository%3Dmyuser%2Ftest-chart%3Apull&username=%3Fmyuser");
+ }
+
+ @Test
+ void extractAuthenticationChallengeIntoMap_whenWwwHeaderProvided_thenParseDataIntoMap() {
+ // Given
+ String wwwAuthenticateValue = "Bearer realm=\"https://auth.example.com/token\",service=\"registry.example.com\",scope=\"repository:myuser/test-chart:pull\"";
+ Map> responseHeaders = new HashMap<>();
+ responseHeaders.put("WWW-Authenticate", Collections.singletonList(wwwAuthenticateValue));
+ HttpResponse response = new TestFabric8HttpResponse(HTTP_OK, responseHeaders, null, null);
+
+ // When
+ Map wwwAuthenticateAsMap = Fabric8HttpUtil.extractAuthenticationChallengeIntoMap(response);
+
+ // Then
+ assertThat(wwwAuthenticateAsMap)
+ .hasSize(3)
+ .containsEntry("Bearer realm", "https://auth.example.com/token")
+ .containsEntry("service", "registry.example.com")
+ .containsEntry("scope", "repository:myuser/test-chart:pull");
+ }
+}
diff --git a/jkube-kit/common/src/test/java/org/eclipse/jkube/kit/common/util/TestFabric8HttpResponse.java b/jkube-kit/common/src/test/java/org/eclipse/jkube/kit/common/util/TestFabric8HttpResponse.java
new file mode 100644
index 0000000000..7cc1c536c5
--- /dev/null
+++ b/jkube-kit/common/src/test/java/org/eclipse/jkube/kit/common/util/TestFabric8HttpResponse.java
@@ -0,0 +1,62 @@
+/**
+ * Copyright (c) 2019 Red Hat, Inc.
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at:
+ *
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ */
+package org.eclipse.jkube.kit.common.util;
+
+import io.fabric8.kubernetes.client.http.HttpRequest;
+import io.fabric8.kubernetes.client.http.HttpResponse;
+import org.apache.commons.lang3.StringUtils;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+
+public class TestFabric8HttpResponse implements HttpResponse {
+ private final int code;
+ private final Map> headers;
+ private final String body;
+ private final String message;
+
+ public TestFabric8HttpResponse(int code, Map> headers, String body, String message) {
+ this.code = code;
+ this.headers = headers;
+ this.body = body;
+ this.message = message;
+ }
+
+ @Override
+ public int code() { return code; }
+
+ @Override
+ public byte[] body() {
+ if (StringUtils.isNotBlank(body)) {
+ return body.getBytes();
+ }
+ return null;
+ }
+
+ @Override
+ public HttpRequest request() { return null; }
+
+ @Override
+ public Optional> previousResponse() { return Optional.empty(); }
+
+ @Override
+ public List headers(String s) { return headers.get(s); }
+
+ @Override
+ public Map> headers() { return headers; }
+
+ @Override
+ public String message() { return message; }
+}
From 4fff79df20f5bb5d048aa664652899ca4b60fb93 Mon Sep 17 00:00:00 2001
From: Marc Nuri
Date: Wed, 12 Jul 2023 10:28:48 +0200
Subject: [PATCH 29/65] test: apply service behaviors tested regardless of
underlying method
Signed-off-by: Marc Nuri
---
.../kit/config/service/ApplyService.java | 13 ++--
.../config/service/ApplyServiceCrudTest.java | 70 +++++++++++--------
2 files changed, 50 insertions(+), 33 deletions(-)
diff --git a/jkube-kit/config/service/src/main/java/org/eclipse/jkube/kit/config/service/ApplyService.java b/jkube-kit/config/service/src/main/java/org/eclipse/jkube/kit/config/service/ApplyService.java
index d0e586a0a6..7cf59a6587 100644
--- a/jkube-kit/config/service/src/main/java/org/eclipse/jkube/kit/config/service/ApplyService.java
+++ b/jkube-kit/config/service/src/main/java/org/eclipse/jkube/kit/config/service/ApplyService.java
@@ -397,7 +397,8 @@ public void applyServiceAccount(ServiceAccount serviceAccount, String sourceName
}
} else {
if (!isAllowCreate()) {
- log.warn("Creation disabled so not creating a ServiceAccount from " + sourceName + " namespace " + currentNamespace + " name " + getName(serviceAccount));
+ log.warn("Creation disabled so not creating a %s from %s in namespace %s with name %s",
+ "ServiceAccount", sourceName, currentNamespace, id);
} else {
doCreate(serviceAccount, currentNamespace, sourceName);
}
@@ -804,7 +805,8 @@ public void applyService(Service service, String sourceName) {
}
} else {
if (!isAllowCreate()) {
- log.warn("Creation disabled so not creating a Service from " + sourceName + " namespace " + currentNamespace + " name " + getName(service));
+ log.warn("Creation disabled so not creating a %s from %s in namespace %s with name %s",
+ "Service", sourceName, currentNamespace, id);
} else {
doCreate(service, currentNamespace, sourceName);
}
@@ -841,7 +843,8 @@ public void applyResource(T resource, String sourceNam
}
} else {
if (!isAllowCreate()) {
- log.warn("Creation disabled so not creating a " + kind + " from " + sourceName + " namespace " + currentNamespace + " name " + getName(resource));
+ log.warn("Creation disabled so not creating a %s from %s in namespace %s with name %s",
+ kind, sourceName, currentNamespace, id);
} else {
doCreate(resource, currentNamespace, sourceName);
}
@@ -1080,8 +1083,8 @@ public void applyPod(Pod pod, String sourceName) {
}
} else {
if (!isAllowCreate()) {
- log.warn("Creation disabled so not creating a pod from %s in namespace %s with name %s",
- sourceName, currentNamespace, name);
+ log.warn("Creation disabled so not creating a %s from %s in namespace %s with name %s",
+ "Pod", sourceName, currentNamespace, name);
} else {
doCreate(pod, currentNamespace, sourceName);
}
diff --git a/jkube-kit/config/service/src/test/java/org/eclipse/jkube/kit/config/service/ApplyServiceCrudTest.java b/jkube-kit/config/service/src/test/java/org/eclipse/jkube/kit/config/service/ApplyServiceCrudTest.java
index d7b8dba613..7962e3c5d0 100644
--- a/jkube-kit/config/service/src/test/java/org/eclipse/jkube/kit/config/service/ApplyServiceCrudTest.java
+++ b/jkube-kit/config/service/src/test/java/org/eclipse/jkube/kit/config/service/ApplyServiceCrudTest.java
@@ -19,9 +19,10 @@
import io.fabric8.kubernetes.api.model.HasMetadata;
import io.fabric8.kubernetes.api.model.KubernetesList;
import io.fabric8.kubernetes.api.model.KubernetesListBuilder;
-import io.fabric8.kubernetes.api.model.Pod;
import io.fabric8.kubernetes.api.model.PodBuilder;
+import io.fabric8.kubernetes.api.model.ServiceAccountBuilder;
import io.fabric8.kubernetes.api.model.ServiceBuilder;
+import io.fabric8.kubernetes.api.model.apps.DeploymentBuilder;
import io.fabric8.kubernetes.client.KubernetesClient;
import io.fabric8.kubernetes.client.server.mock.EnableKubernetesMockClient;
import io.fabric8.kubernetes.client.server.mock.KubernetesMockServer;
@@ -37,10 +38,14 @@
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.MethodSource;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
+import java.util.stream.Stream;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.ArgumentMatchers.startsWith;
@@ -130,67 +135,76 @@ void applyInServicesMode() {
// Given
final KubernetesList toApply = new KubernetesListBuilder()
.addToItems(new PodBuilder().withNewMetadata().withName("a-pod").endMetadata().build())
+ .addToItems(new DeploymentBuilder().withNewMetadata().withName("a-deployment").endMetadata().build())
.addToItems(new ServiceBuilder().withNewMetadata().withName("a-service").endMetadata().build())
+ .addToItems(new ServiceAccountBuilder().withNewMetadata().withName("a-sa").endMetadata().build())
.build();
applyService.setServicesOnlyMode(true);
// When
applyService.apply(toApply, "list.yml");
// Then
assertThat(kubernetesClient)
+ .returns(null, c -> c.apps().deployments().inNamespace("default").withName("a-deployment").get())
.returns(null, c -> c.pods().inNamespace("default").withName("a-pod").get())
+ .returns(null, c -> c.serviceAccounts().inNamespace("default").withName("a-sa").get())
.returns("a-service", c -> c.services().inNamespace("default").withName("a-service").get().getMetadata().getName());
}
- @Test
- @DisplayName("apply with new resource and creation disabled, should do nothing")
- void applyWithNewResourceAndCreationDisabled() {
+ @DisplayName("apply with new resources and creation disabled, should do nothing")
+ @ParameterizedTest
+ @MethodSource("applyResourcesData")
+ void applyWithNewResourceAndCreationDisabled(HasMetadata toApplyResource) {
// Given
- final Pod toApply = new PodBuilder().withNewMetadata()
- .withName("a-pod")
- .endMetadata().build();
applyService.setAllowCreate(false);
// When
- applyService.apply(toApply, "pod.yml");
+ applyService.apply(toApplyResource, "resource.yml");
// Then
- assertThat(kubernetesClient.pods().inNamespace("default").withName("a-pod").get())
+ assertThat(kubernetesClient.resource(toApplyResource).inNamespace("default").get())
.isNull();
- verify(log).warn("Creation disabled so not creating a pod from %s in namespace %s with name %s",
- "pod.yml", "default", "a-pod");
+ verify(log).warn("Creation disabled so not creating a %s from %s in namespace %s with name %s",
+ toApplyResource.getKind(), "resource.yml", "default", "a-resource");
}
- @Test
@DisplayName("apply with existing resource, should update the resource")
- void applyWithExistingResource() {
+ @ParameterizedTest
+ @MethodSource("applyResourcesData")
+ void applyWithExistingResources(HasMetadata toApplyResource) {
// Given
- final Pod toApply = new PodBuilder().withNewMetadata()
- .withName("a-pod")
- .endMetadata().build();
- final Pod original = kubernetesClient.resource(toApply).inNamespace("default").create();
+ final HasMetadata original = kubernetesClient.resource(toApplyResource).inNamespace("default").create();
+ toApplyResource.getMetadata().getAnnotations().put("updated", "true");
// When
- applyService.apply(toApply, "pod.yml");
+ applyService.apply(toApplyResource, "resource.yml");
// Then
- assertThat(kubernetesClient.pods().inNamespace("default").withName("a-pod").get())
+ assertThat(kubernetesClient.resource(toApplyResource).inNamespace("default").get())
.hasFieldOrPropertyWithValue("metadata.uid", original.getMetadata().getUid())
- .hasFieldOrPropertyWithValue("metadata.creationTimestamp", original.getMetadata().getCreationTimestamp());
+ .hasFieldOrPropertyWithValue("metadata.creationTimestamp", original.getMetadata().getCreationTimestamp())
+ .hasFieldOrPropertyWithValue("metadata.annotations.updated", "true");
}
- @Test
@DisplayName("apply with existing resource, in recreate mode, should delete and recreate resource")
- void applyWithExistingResourceInRecreateMode() {
+ @ParameterizedTest
+ @MethodSource("applyResourcesData")
+ void applyWithExistingResourceInRecreateMode(HasMetadata toApplyResource) {
// Given
- final Pod toApply = new PodBuilder().withNewMetadata()
- .withName("a-pod")
- .endMetadata().build();
- final Pod original = kubernetesClient.resource(toApply).inNamespace("default").create();
applyService.setRecreateMode(true);
+ final HasMetadata original = kubernetesClient.resource(toApplyResource).inNamespace("default").create();
// When
- applyService.apply(toApply, "pod.yml");
+ applyService.apply(toApplyResource, "resource.yml");
// Then
- assertThat(kubernetesClient.pods().inNamespace("default").withName("a-pod").get())
+ assertThat(kubernetesClient.resource(toApplyResource).inNamespace("default").get())
.extracting("metadata.uid")
.isNotEqualTo(original.getMetadata().getUid());
}
+ static Stream applyResourcesData() {
+ return Stream.of(
+ Arguments.of(new PodBuilder().withNewMetadata().withName("a-resource").endMetadata().build()),
+ Arguments.of(new DeploymentBuilder().withNewMetadata().withName("a-resource").endMetadata().build()),
+ Arguments.of(new ServiceBuilder().withNewMetadata().withName("a-resource").endMetadata().withNewSpec().endSpec().build()),
+ Arguments.of(new ServiceAccountBuilder().withNewMetadata().withName("a-resource").endMetadata().build())
+ );
+ }
+
@Test
@DisplayName("apply with Project, in vanilla Kubernetes, should do nothing")
void applyProjectInKubernetes() {
From a35ac20284f59ad520b95327d2b7b1e5292ca09d Mon Sep 17 00:00:00 2001
From: Marc Nuri
Date: Wed, 12 Jul 2023 11:10:09 +0200
Subject: [PATCH 30/65] refactor: remove redundant applyResource calls
Signed-off-by: Marc Nuri
---
.../kit/config/service/ApplyService.java | 46 ++++---------------
.../config/service/ApplyServiceCrudTest.java | 34 ++++++++++----
2 files changed, 34 insertions(+), 46 deletions(-)
diff --git a/jkube-kit/config/service/src/main/java/org/eclipse/jkube/kit/config/service/ApplyService.java b/jkube-kit/config/service/src/main/java/org/eclipse/jkube/kit/config/service/ApplyService.java
index 7cf59a6587..d11d09d371 100644
--- a/jkube-kit/config/service/src/main/java/org/eclipse/jkube/kit/config/service/ApplyService.java
+++ b/jkube-kit/config/service/src/main/java/org/eclipse/jkube/kit/config/service/ApplyService.java
@@ -40,7 +40,6 @@
import org.eclipse.jkube.kit.config.service.ingresscontroller.IngressControllerDetectorManager;
import org.eclipse.jkube.kit.config.service.kubernetes.KubernetesClientUtil;
-import io.fabric8.kubernetes.api.model.ConfigMap;
import io.fabric8.kubernetes.api.model.HasMetadata;
import io.fabric8.kubernetes.api.model.KubernetesList;
import io.fabric8.kubernetes.api.model.Namespace;
@@ -53,18 +52,11 @@
import io.fabric8.kubernetes.api.model.Service;
import io.fabric8.kubernetes.api.model.ServiceAccount;
import io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinition;
-import io.fabric8.kubernetes.api.model.apps.DaemonSet;
-import io.fabric8.kubernetes.api.model.apps.Deployment;
-import io.fabric8.kubernetes.api.model.apps.ReplicaSet;
-import io.fabric8.kubernetes.api.model.apps.StatefulSet;
import io.fabric8.kubernetes.api.model.batch.v1.Job;
import io.fabric8.kubernetes.api.model.extensions.Ingress;
-import io.fabric8.kubernetes.api.model.networking.v1.NetworkPolicy;
-import io.fabric8.kubernetes.api.model.rbac.Role;
import io.fabric8.kubernetes.api.model.rbac.RoleBinding;
import io.fabric8.kubernetes.client.KubernetesClient;
import io.fabric8.kubernetes.client.KubernetesClientException;
-import io.fabric8.kubernetes.client.dsl.MixedOperation;
import io.fabric8.kubernetes.client.dsl.Resource;
import io.fabric8.openshift.api.model.BuildConfig;
import io.fabric8.openshift.api.model.DeploymentConfig;
@@ -166,14 +158,12 @@ private void applyEntity(Object dto, String sourceName) {
} else if (dto instanceof DeploymentConfig) {
DeploymentConfig resource = (DeploymentConfig) dto;
if (OpenshiftHelper.isOpenShift(kubernetesClient)) {
- applyResource(resource, sourceName, asOpenShiftClient().deploymentConfigs());
+ applyResource(resource, sourceName);
} else {
log.warn("Not connected to OpenShift cluster so cannot apply entity %s", dto);
}
} else if (dto instanceof RoleBinding) {
applyRoleBinding((RoleBinding) dto, sourceName);
- } else if (dto instanceof Role) {
- applyResource((Role) dto, sourceName, kubernetesClient.rbac().roles());
} else if (dto instanceof ImageStream) {
applyImageStream((ImageStream) dto, sourceName);
} else if (dto instanceof OAuthClient) {
@@ -184,21 +174,11 @@ private void applyEntity(Object dto, String sourceName) {
applyServiceAccount((ServiceAccount) dto, sourceName);
} else if (dto instanceof Secret) {
applySecret((Secret) dto, sourceName);
- } else if (dto instanceof ConfigMap) {
- applyResource((ConfigMap) dto, sourceName, kubernetesClient.configMaps());
- } else if (dto instanceof DaemonSet) {
- applyResource((DaemonSet) dto, sourceName, kubernetesClient.apps().daemonSets());
- } else if (dto instanceof Deployment) {
- applyResource((Deployment) dto, sourceName, kubernetesClient.apps().deployments());
- } else if (dto instanceof ReplicaSet) {
- applyResource((ReplicaSet) dto, sourceName, kubernetesClient.apps().replicaSets());
- } else if (dto instanceof StatefulSet) {
- applyResource((StatefulSet) dto, sourceName, kubernetesClient.apps().statefulSets());
} else if (dto instanceof Ingress) {
- applyResource((Ingress) dto, sourceName, kubernetesClient.extensions().ingresses());
+ applyResource((Ingress) dto, sourceName);
ingressControllerDetectorManager.detect();
- }else if (dto instanceof io.fabric8.kubernetes.api.model.networking.v1.Ingress) {
- applyResource((io.fabric8.kubernetes.api.model.networking.v1.Ingress) dto, sourceName, kubernetesClient.network().v1().ingresses());
+ } else if (dto instanceof io.fabric8.kubernetes.api.model.networking.v1.Ingress) {
+ applyResource((io.fabric8.kubernetes.api.model.networking.v1.Ingress) dto, sourceName);
ingressControllerDetectorManager.detect();
} else if (dto instanceof PersistentVolumeClaim) {
applyPersistentVolumeClaim((PersistentVolumeClaim) dto, sourceName);
@@ -206,8 +186,6 @@ private void applyEntity(Object dto, String sourceName) {
applyCustomResourceDefinition((CustomResourceDefinition) dto, sourceName);
} else if (dto instanceof Job) {
applyJob((Job) dto, sourceName);
- } else if (dto instanceof NetworkPolicy) {
- applyResource( (NetworkPolicy) dto, sourceName, kubernetesClient.network().networkPolicies());
} else if (dto instanceof Namespace) {
applyNamespace((Namespace) dto);
} else if (dto instanceof Project) {
@@ -215,13 +193,7 @@ private void applyEntity(Object dto, String sourceName) {
} else if (dto instanceof GenericKubernetesResource) {
applyGenericKubernetesResource((GenericKubernetesResource) dto, sourceName);
} else if (dto instanceof HasMetadata) {
- HasMetadata entity = (HasMetadata) dto;
- try {
- log.info("Applying %s %s from %s", getKind(entity), getName(entity), sourceName);
- kubernetesClient.resource(entity).inNamespace(applicableNamespace((HasMetadata) dto, namespace, fallbackNamespace)).createOrReplace();
- } catch (Exception e) {
- onApplyError("Failed to create " + getKind(entity) + " from " + sourceName + ". " + e, e);
- }
+ applyResource((HasMetadata) dto, sourceName);
} else {
throw new IllegalArgumentException("Unknown entity type " + dto);
}
@@ -813,7 +785,7 @@ public void applyService(Service service, String sourceName) {
}
}
- public void applyResource(T resource, String sourceName, MixedOperation> resources) {
+ public void applyResource(T resource, String sourceName) {
String currentNamespace = applicableNamespace(resource, namespace, fallbackNamespace);
String id = getName(resource);
String kind = getKind(resource);
@@ -822,19 +794,19 @@ public void applyResource(T resource, String sourceNam
log.debug("Ignoring " + kind + ": " + currentNamespace + ":" + id);
return;
}
- T old = resources.inNamespace(currentNamespace).withName(id).get();
+ T old = kubernetesClient.resource(resource).inNamespace(currentNamespace).get();
if (isRunning(old)) {
if (UserConfigurationCompare.configEqual(resource, old)) {
log.info(kind + " has not changed so not doing anything");
} else {
if (isRecreateMode()) {
log.info("Deleting " + kind + ": " + id);
- resources.inNamespace(currentNamespace).withName(id).delete();
+ kubernetesClient.resource(resource).inNamespace(currentNamespace).delete();
doCreate(resource, currentNamespace, sourceName);
} else {
log.info("Updating " + kind + " from " + sourceName);
try {
- Object answer = resources.inNamespace(currentNamespace).withName(id).replace(resource);
+ Object answer = kubernetesClient.resource(resource).inNamespace(currentNamespace).replace();
logGeneratedEntity("Updated " + kind + ": ", currentNamespace, resource, answer);
} catch (Exception e) {
onApplyError("Failed to update " + kind + " from " + sourceName + ". " + e + ". " + resource, e);
diff --git a/jkube-kit/config/service/src/test/java/org/eclipse/jkube/kit/config/service/ApplyServiceCrudTest.java b/jkube-kit/config/service/src/test/java/org/eclipse/jkube/kit/config/service/ApplyServiceCrudTest.java
index 7962e3c5d0..060b44ee44 100644
--- a/jkube-kit/config/service/src/test/java/org/eclipse/jkube/kit/config/service/ApplyServiceCrudTest.java
+++ b/jkube-kit/config/service/src/test/java/org/eclipse/jkube/kit/config/service/ApplyServiceCrudTest.java
@@ -22,7 +22,11 @@
import io.fabric8.kubernetes.api.model.PodBuilder;
import io.fabric8.kubernetes.api.model.ServiceAccountBuilder;
import io.fabric8.kubernetes.api.model.ServiceBuilder;
+import io.fabric8.kubernetes.api.model.apps.DaemonSetBuilder;
import io.fabric8.kubernetes.api.model.apps.DeploymentBuilder;
+import io.fabric8.kubernetes.api.model.apps.ReplicaSetBuilder;
+import io.fabric8.kubernetes.api.model.apps.StatefulSetBuilder;
+import io.fabric8.kubernetes.api.model.rbac.RoleBuilder;
import io.fabric8.kubernetes.client.KubernetesClient;
import io.fabric8.kubernetes.client.server.mock.EnableKubernetesMockClient;
import io.fabric8.kubernetes.client.server.mock.KubernetesMockServer;
@@ -134,20 +138,28 @@ void applyWithNestedObjectsInRecursiveList() {
void applyInServicesMode() {
// Given
final KubernetesList toApply = new KubernetesListBuilder()
- .addToItems(new PodBuilder().withNewMetadata().withName("a-pod").endMetadata().build())
- .addToItems(new DeploymentBuilder().withNewMetadata().withName("a-deployment").endMetadata().build())
- .addToItems(new ServiceBuilder().withNewMetadata().withName("a-service").endMetadata().build())
- .addToItems(new ServiceAccountBuilder().withNewMetadata().withName("a-sa").endMetadata().build())
+ .addToItems(new PodBuilder().withNewMetadata().withName("a-resource").endMetadata().build())
+ .addToItems(new DeploymentBuilder().withNewMetadata().withName("a-resource").endMetadata().build())
+ .addToItems(new ServiceBuilder().withNewMetadata().withName("a-resource").endMetadata().build())
+ .addToItems(new ServiceAccountBuilder().withNewMetadata().withName("a-resource").endMetadata().build())
+ .addToItems(new RoleBuilder().withNewMetadata().withName("a-resource").endMetadata().build())
+ .addToItems(new DaemonSetBuilder().withNewMetadata().withName("a-resource").endMetadata().build())
+ .addToItems(new ReplicaSetBuilder().withNewMetadata().withName("a-resource").endMetadata().build())
+ .addToItems(new StatefulSetBuilder().withNewMetadata().withName("a-resource").endMetadata().build())
.build();
applyService.setServicesOnlyMode(true);
// When
applyService.apply(toApply, "list.yml");
// Then
assertThat(kubernetesClient)
- .returns(null, c -> c.apps().deployments().inNamespace("default").withName("a-deployment").get())
- .returns(null, c -> c.pods().inNamespace("default").withName("a-pod").get())
- .returns(null, c -> c.serviceAccounts().inNamespace("default").withName("a-sa").get())
- .returns("a-service", c -> c.services().inNamespace("default").withName("a-service").get().getMetadata().getName());
+ .returns(null, c -> c.apps().deployments().inNamespace("default").withName("a-resource").get())
+ .returns(null, c -> c.pods().inNamespace("default").withName("a-resource").get())
+ .returns(null, c -> c.serviceAccounts().inNamespace("default").withName("a-resource").get())
+ .returns(null, c -> c.rbac().roles().inNamespace("default").withName("a-resource").get())
+ .returns(null, c -> c.apps().daemonSets().inNamespace("default").withName("a-resource").get())
+ .returns(null, c -> c.apps().replicaSets().inNamespace("default").withName("a-resource").get())
+ .returns(null, c -> c.apps().statefulSets().inNamespace("default").withName("a-resource").get())
+ .returns("a-resource", c -> c.services().inNamespace("default").withName("a-resource").get().getMetadata().getName());
}
@DisplayName("apply with new resources and creation disabled, should do nothing")
@@ -201,7 +213,11 @@ static Stream applyResourcesData() {
Arguments.of(new PodBuilder().withNewMetadata().withName("a-resource").endMetadata().build()),
Arguments.of(new DeploymentBuilder().withNewMetadata().withName("a-resource").endMetadata().build()),
Arguments.of(new ServiceBuilder().withNewMetadata().withName("a-resource").endMetadata().withNewSpec().endSpec().build()),
- Arguments.of(new ServiceAccountBuilder().withNewMetadata().withName("a-resource").endMetadata().build())
+ Arguments.of(new ServiceAccountBuilder().withNewMetadata().withName("a-resource").endMetadata().build()),
+ Arguments.of(new RoleBuilder().withNewMetadata().withName("a-resource").endMetadata().build()),
+ Arguments.of(new DaemonSetBuilder().withNewMetadata().withName("a-resource").endMetadata().build()),
+ Arguments.of(new ReplicaSetBuilder().withNewMetadata().withName("a-resource").endMetadata().build()),
+ Arguments.of(new StatefulSetBuilder().withNewMetadata().withName("a-resource").endMetadata().build())
);
}
From d63d280b2ae1bef8c19b5639bf4abd87af38bd26 Mon Sep 17 00:00:00 2001
From: Marc Nuri
Date: Tue, 11 Jul 2023 16:34:48 +0200
Subject: [PATCH 31/65] ci: replace CircleCI test job with Jenkins
Signed-off-by: Marc Nuri
---
.circleci/config.yml | 19 -------------------
.jenkins/pipelines/sonar.Jenkinsfile | 4 ++++
2 files changed, 4 insertions(+), 19 deletions(-)
diff --git a/.circleci/config.yml b/.circleci/config.yml
index e219462a95..49ffa37465 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -15,24 +15,6 @@
version: 2.1
jobs:
- test:
- docker:
- - image: cimg/openjdk:11.0
- steps:
- - checkout
- - restore_cache:
- key: maven-test-{{ .Branch }}-{{ .Revision }}-{{ checksum "pom.xml" }}
- - run:
- command: |
- # Run maven build
- ./mvnw -B -Pjacoco clean install
- # Run codeocov analysis
- bash <(curl -s https://codecov.io/bash)
- - save_cache:
- key: maven-test-{{ .Branch }}-{{ .Revision }}-{{ checksum "pom.xml" }}
- paths:
- - ~/.m2
-
build:
docker:
- image: cimg/openjdk:8.0
@@ -60,4 +42,3 @@ workflows:
all:
jobs:
- build
- - test
diff --git a/.jenkins/pipelines/sonar.Jenkinsfile b/.jenkins/pipelines/sonar.Jenkinsfile
index e186f416df..41dd7968b6 100644
--- a/.jenkins/pipelines/sonar.Jenkinsfile
+++ b/.jenkins/pipelines/sonar.Jenkinsfile
@@ -23,6 +23,8 @@ pipeline {
'-Dsonar.pullrequest.key=${CHANGE_ID} ' +
'-Dsonar.pullrequest.branch=${GIT_BRANCH} ' +
'-Dsonar.pullrequest.base=master'
+ // CodeCov
+ sh 'wget -O - https://codecov.io/bash | bash'
}
}
stage('Sonar (main)') {
@@ -31,6 +33,8 @@ pipeline {
sh 'echo "Building Project and analyzing with Sonar"'
// Needs install instad of verify since ITs rely on artifacts from previous modules
sh './mvnw -V -B -e -Pjacoco,sonar install'
+ // CodeCov
+ sh 'wget -O - https://codecov.io/bash | bash'
}
}
}
From adb4dd89708c94f845cff206ac3c54abaf8e5552 Mon Sep 17 00:00:00 2001
From: Marc Nuri
Date: Wed, 12 Jul 2023 09:28:50 +0200
Subject: [PATCH 32/65] ci: replace CircleCI Java 8 job with Jenkins
Signed-off-by: Marc Nuri
---
.circleci/config.yml | 44 ---------------------------
.jenkins/pipelines/java-8.Jenkinsfile | 29 ++++++++++++++++++
2 files changed, 29 insertions(+), 44 deletions(-)
delete mode 100644 .circleci/config.yml
create mode 100644 .jenkins/pipelines/java-8.Jenkinsfile
diff --git a/.circleci/config.yml b/.circleci/config.yml
deleted file mode 100644
index 49ffa37465..0000000000
--- a/.circleci/config.yml
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# Copyright (c) 2019 Red Hat, Inc.
-# This program and the accompanying materials are made
-# available under the terms of the Eclipse Public License 2.0
-# which is available at:
-#
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-# Red Hat, Inc. - initial API and implementation
-#
-
-version: 2.1
-
-jobs:
- build:
- docker:
- - image: cimg/openjdk:8.0
- steps:
- - checkout
- - restore_cache:
- key: maven-build-{{ .Branch }}-{{ .Revision }}-{{ checksum "pom.xml" }}
- - run:
- command: |
- if [[ `javac -version 2>&1` == *"1.8.0"* ]]; then
- echo "Java 8 Present."
- else
- echo "Java 8 Not Present."
- exit 1
- fi
- # Run maven build
- ./mvnw clean install
- - save_cache:
- key: maven-build-{{ .Branch }}-{{ .Revision }}-{{ checksum "pom.xml" }}
- paths:
- - ~/.m2
-
-workflows:
- version: 2
- all:
- jobs:
- - build
diff --git a/.jenkins/pipelines/java-8.Jenkinsfile b/.jenkins/pipelines/java-8.Jenkinsfile
new file mode 100644
index 0000000000..bb6ade18d8
--- /dev/null
+++ b/.jenkins/pipelines/java-8.Jenkinsfile
@@ -0,0 +1,29 @@
+#!groovy
+
+pipeline {
+ agent any
+ tools {
+ maven 'apache-maven-latest'
+ // https://wiki.eclipse.org/Jenkins#JDK
+ jdk 'temurin-jdk8-latest'
+ }
+ options {
+ disableConcurrentBuilds(abortPrevious: true)
+ }
+ stages {
+ stage('Build & Test (Java 8)') {
+ steps {
+ sh 'echo "Building Project with Java 8"'
+ sh '''
+ if [[ `javac -version 2>&1` == *"1.8.0"* ]]; then
+ echo "Java 8 Present."
+ else
+ echo "Java 8 Not Present."
+ exit 1
+ fi
+ '''
+ sh './mvnw -V -B -e install'
+ }
+ }
+ }
+}
From c354872afc73a2388d0802335b20ec46057a861d Mon Sep 17 00:00:00 2001
From: Rohan Kumar
Date: Tue, 11 Jul 2023 17:47:57 +0530
Subject: [PATCH 33/65] refactor (jkube-kit/resource/helm) : Add
HelmUploaderManager to manage different Helm repository uploaders
HelmUploaderManager would use PluginServiceFactory to detect applicable
Helm repository uploaders
Signed-off-by: Rohan Kumar
---
.../jkube/kit/common/util/AsyncUtil.java | 17 ++++
.../jkube/kit/common/util/AsyncUtilTest.java | 50 +++++++++++
.../ArtifactoryHelmRepositoryUploader.java | 30 +++++++
.../ChartMuseumHelmRepositoryUploader.java | 30 +++++++
.../jkube/kit/resource/helm/HelmService.java | 4 +-
.../jkube/kit/resource/helm/HelmUploader.java | 59 +-----------
.../resource/helm/HelmUploaderManager.java | 40 +++++++++
.../helm/NexusHelmRepositoryUploader.java | 33 +++++++
.../helm/StandardRepositoryUploader.java | 89 +++++++++++++++++++
.../resources/META-INF/jkube/helm-uploaders | 3 +
.../resource/helm/HelmServiceUploadIT.java | 3 +-
.../helm/HelmUploaderManagerTest.java | 47 ++++++++++
12 files changed, 346 insertions(+), 59 deletions(-)
create mode 100644 jkube-kit/common/src/test/java/org/eclipse/jkube/kit/common/util/AsyncUtilTest.java
create mode 100644 jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/ArtifactoryHelmRepositoryUploader.java
create mode 100644 jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/ChartMuseumHelmRepositoryUploader.java
create mode 100644 jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/HelmUploaderManager.java
create mode 100644 jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/NexusHelmRepositoryUploader.java
create mode 100644 jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/StandardRepositoryUploader.java
create mode 100644 jkube-kit/resource/helm/src/main/resources/META-INF/jkube/helm-uploaders
create mode 100644 jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmUploaderManagerTest.java
diff --git a/jkube-kit/common/src/main/java/org/eclipse/jkube/kit/common/util/AsyncUtil.java b/jkube-kit/common/src/main/java/org/eclipse/jkube/kit/common/util/AsyncUtil.java
index 4945bdf589..9990f1e6bb 100644
--- a/jkube-kit/common/src/main/java/org/eclipse/jkube/kit/common/util/AsyncUtil.java
+++ b/jkube-kit/common/src/main/java/org/eclipse/jkube/kit/common/util/AsyncUtil.java
@@ -13,10 +13,14 @@
*/
package org.eclipse.jkube.kit.common.util;
+import java.time.Duration;
import java.util.concurrent.Callable;
import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.function.Supplier;
@@ -56,4 +60,17 @@ public static Function, CompletableFuture> await(Supplier
return ret;
});
}
+
+ public static T get(CompletableFuture completableFuture, Duration duration) {
+ try {
+ return completableFuture.get(duration.toMillis(), TimeUnit.MILLISECONDS);
+ } catch (ExecutionException e) {
+ throw new IllegalStateException(e);
+ } catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
+ throw new IllegalStateException(e);
+ } catch (TimeoutException e) {
+ throw new IllegalStateException("Failure while waiting to get future ", e);
+ }
+ }
}
diff --git a/jkube-kit/common/src/test/java/org/eclipse/jkube/kit/common/util/AsyncUtilTest.java b/jkube-kit/common/src/test/java/org/eclipse/jkube/kit/common/util/AsyncUtilTest.java
new file mode 100644
index 0000000000..93888f7a57
--- /dev/null
+++ b/jkube-kit/common/src/test/java/org/eclipse/jkube/kit/common/util/AsyncUtilTest.java
@@ -0,0 +1,50 @@
+/**
+ * Copyright (c) 2019 Red Hat, Inc.
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at:
+ *
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ */
+package org.eclipse.jkube.kit.common.util;
+
+import org.junit.jupiter.api.Test;
+
+import java.io.IOException;
+import java.time.Duration;
+import java.util.concurrent.CompletableFuture;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatIllegalStateException;
+
+class AsyncUtilTest {
+ @Test
+ void get_whenFuturePresent_thenReturnValue() {
+ // Given
+ CompletableFuture completableFuture = CompletableFuture.completedFuture("foo");
+
+ // When
+ String result = AsyncUtil.get(completableFuture, Duration.ofMinutes(1));
+
+ // Then
+ assertThat(result).isEqualTo("foo");
+ }
+
+ @Test
+ void get_whenFutureCompletedExceptionally_then() {
+ // Given
+ CompletableFuture completableFuture = new CompletableFuture<>();
+ completableFuture.completeExceptionally(new IOException("io exception"));
+
+ // When
+ // Then
+ assertThatIllegalStateException()
+ .isThrownBy(() -> AsyncUtil.get(completableFuture, Duration.ofMinutes(1)))
+ .withMessageContaining("io exception");
+ }
+}
diff --git a/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/ArtifactoryHelmRepositoryUploader.java b/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/ArtifactoryHelmRepositoryUploader.java
new file mode 100644
index 0000000000..362bbeb367
--- /dev/null
+++ b/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/ArtifactoryHelmRepositoryUploader.java
@@ -0,0 +1,30 @@
+/**
+ * Copyright (c) 2019 Red Hat, Inc.
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at:
+ *
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ */
+package org.eclipse.jkube.kit.resource.helm;
+
+import org.eclipse.jkube.kit.common.KitLogger;
+
+import java.io.File;
+
+public class ArtifactoryHelmRepositoryUploader extends StandardRepositoryUploader {
+
+ public ArtifactoryHelmRepositoryUploader(KitLogger logger) {
+ super("PUT", logger, HelmRepository.HelmRepoType.ARTIFACTORY);
+ }
+
+ @Override
+ public String url(File helmChart, HelmRepository repository) {
+ return formatRepositoryURL(helmChart, repository);
+ }
+}
diff --git a/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/ChartMuseumHelmRepositoryUploader.java b/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/ChartMuseumHelmRepositoryUploader.java
new file mode 100644
index 0000000000..9906687bd6
--- /dev/null
+++ b/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/ChartMuseumHelmRepositoryUploader.java
@@ -0,0 +1,30 @@
+/**
+ * Copyright (c) 2019 Red Hat, Inc.
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at:
+ *
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ */
+package org.eclipse.jkube.kit.resource.helm;
+
+import org.eclipse.jkube.kit.common.KitLogger;
+
+import java.io.File;
+
+public class ChartMuseumHelmRepositoryUploader extends StandardRepositoryUploader {
+
+ public ChartMuseumHelmRepositoryUploader(KitLogger logger) {
+ super("POST", logger, HelmRepository.HelmRepoType.CHARTMUSEUM);
+ }
+
+ @Override
+ public String url(File helmChart, HelmRepository repository) {
+ return repository.getUrl();
+ }
+}
diff --git a/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/HelmService.java b/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/HelmService.java
index f40635eac0..97d5083f98 100644
--- a/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/HelmService.java
+++ b/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/HelmService.java
@@ -160,7 +160,7 @@ private void uploadHelmChart(HelmConfig helmConfig, HelmRepository helmRepositor
throws IOException, BadUploadException {
for (HelmConfig.HelmType helmType : helmConfig.getTypes()) {
- final HelmUploader helmUploader = new HelmUploader(logger);
+ final HelmUploaderManager helmUploaderManager = new HelmUploaderManager(logger);
logger.info("Uploading Helm Chart \"%s\" to %s", helmConfig.getChart(), helmRepository.getName());
logger.debug("OutputDir: %s", helmConfig.getOutputDir());
@@ -170,7 +170,7 @@ private void uploadHelmChart(HelmConfig helmConfig, HelmRepository helmRepositor
final File tarballFile = new File(tarballOutputDir, String.format("%s-%s%s.%s",
helmConfig.getChart(), helmConfig.getVersion(), resolveHelmClassifier(helmConfig), helmConfig.getChartExtension()));
- helmUploader.uploadSingle(tarballFile, helmRepository);
+ helmUploaderManager.getHelmUploader(helmRepository.getType()).uploadSingle(tarballFile, helmRepository);
}
}
diff --git a/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/HelmUploader.java b/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/HelmUploader.java
index b3ddeb5b10..26b46b504b 100644
--- a/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/HelmUploader.java
+++ b/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/HelmUploader.java
@@ -14,60 +14,9 @@
package org.eclipse.jkube.kit.resource.helm;
import java.io.File;
-import java.io.FileInputStream;
import java.io.IOException;
-import java.net.HttpURLConnection;
-import java.nio.charset.Charset;
-import org.eclipse.jkube.kit.common.KitLogger;
-
-import org.apache.commons.io.IOUtils;
-
-public class HelmUploader {
-
- private final KitLogger logger;
-
- public HelmUploader(KitLogger logger) {
- this.logger = logger;
- }
-
- void uploadSingle(File file, HelmRepository repository)
- throws IOException, BadUploadException {
- HttpURLConnection connection;
-
- if (repository.getType() == null) {
- throw new IllegalArgumentException(
- "Repository type missing. Check your plugin configuration.");
- }
-
- connection = repository.getType().createConnection(file, repository);
-
- writeFileOnConnection(file, connection);
-
- if (connection.getResponseCode() >= HttpURLConnection.HTTP_MULT_CHOICE) {
- String response;
- if (connection.getErrorStream() != null) {
- response = IOUtils.toString(connection.getErrorStream(), Charset.defaultCharset());
- } else if (connection.getInputStream() != null) {
- response = IOUtils.toString(connection.getInputStream(), Charset.defaultCharset());
- } else {
- response = "No details provided";
- }
- throw new BadUploadException(response);
- } else {
- String message = Integer.toString(connection.getResponseCode());
- if (connection.getInputStream() != null) {
- message += " - " + IOUtils.toString(connection.getInputStream(), Charset.defaultCharset());
- }
- logger.info(message);
- }
- connection.disconnect();
- }
-
- private void writeFileOnConnection(File file, HttpURLConnection connection) throws IOException {
- try (FileInputStream fileInputStream = new FileInputStream(file)) {
- IOUtils.copy(fileInputStream, connection.getOutputStream());
- }
- }
-
-}
+public interface HelmUploader {
+ HelmRepository.HelmRepoType getType();
+ void uploadSingle(File file, HelmRepository repository) throws IOException, BadUploadException ;
+}
\ No newline at end of file
diff --git a/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/HelmUploaderManager.java b/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/HelmUploaderManager.java
new file mode 100644
index 0000000000..2d8d67b836
--- /dev/null
+++ b/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/HelmUploaderManager.java
@@ -0,0 +1,40 @@
+/**
+ * Copyright (c) 2019 Red Hat, Inc.
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at:
+ *
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ */
+package org.eclipse.jkube.kit.resource.helm;
+
+import org.eclipse.jkube.kit.common.KitLogger;
+import org.eclipse.jkube.kit.common.util.PluginServiceFactory;
+
+import java.util.List;
+
+public class HelmUploaderManager {
+ private static final String[] SERVICE_PATHS = new String[] {
+ "META-INF/jkube/helm-uploaders"
+ };
+
+ private final List helmUploaderList;
+
+ public HelmUploaderManager(KitLogger log) {
+ this.helmUploaderList = new PluginServiceFactory<>(log).createServiceObjects(SERVICE_PATHS);
+ }
+
+ public HelmUploader getHelmUploader(HelmRepository.HelmRepoType type) {
+ for (HelmUploader helmUploader : helmUploaderList) {
+ if (helmUploader.getType().equals(type)) {
+ return helmUploader;
+ }
+ }
+ throw new IllegalStateException("Could not find Helm Uploader for type " + type);
+ }
+}
\ No newline at end of file
diff --git a/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/NexusHelmRepositoryUploader.java b/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/NexusHelmRepositoryUploader.java
new file mode 100644
index 0000000000..dd0cc4380b
--- /dev/null
+++ b/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/NexusHelmRepositoryUploader.java
@@ -0,0 +1,33 @@
+/**
+ * Copyright (c) 2019 Red Hat, Inc.
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at:
+ *
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ */
+package org.eclipse.jkube.kit.resource.helm;
+
+import org.eclipse.jkube.kit.common.KitLogger;
+
+import java.io.File;
+
+public class NexusHelmRepositoryUploader extends StandardRepositoryUploader {
+ public NexusHelmRepositoryUploader(KitLogger logger) {
+ super("PUT", logger, HelmRepository.HelmRepoType.NEXUS);
+ }
+
+ @Override
+ public String url(File helmChart, HelmRepository repository) {
+ String url = formatRepositoryURL(helmChart, repository);
+ if (url.endsWith(".tar.gz")) {
+ url = url.replaceAll("tar.gz$", "tgz");
+ }
+ return url;
+ }
+}
diff --git a/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/StandardRepositoryUploader.java b/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/StandardRepositoryUploader.java
new file mode 100644
index 0000000000..e03bb4d203
--- /dev/null
+++ b/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/StandardRepositoryUploader.java
@@ -0,0 +1,89 @@
+/**
+ * Copyright (c) 2019 Red Hat, Inc.
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at:
+ *
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ */
+package org.eclipse.jkube.kit.resource.helm;
+
+import io.fabric8.kubernetes.client.RequestConfigBuilder;
+import io.fabric8.kubernetes.client.http.HttpClient;
+import io.fabric8.kubernetes.client.http.HttpRequest;
+import io.fabric8.kubernetes.client.http.HttpResponse;
+import io.fabric8.kubernetes.client.utils.HttpClientUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.eclipse.jkube.kit.common.KitLogger;
+import org.eclipse.jkube.kit.common.util.Base64Util;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.time.Duration;
+
+import static org.eclipse.jkube.kit.common.util.AsyncUtil.get;
+
+public abstract class StandardRepositoryUploader implements HelmUploader {
+ private final String method;
+ private final KitLogger logger;
+ private final HelmRepository.HelmRepoType type;
+ private static final long HELM_UPLOAD_TIMEOUT_MINUTES = 30;
+
+ protected StandardRepositoryUploader(String method, KitLogger logger, HelmRepository.HelmRepoType type) {
+ this.method = method;
+ this.logger = logger;
+ this.type = type;
+ }
+
+ public abstract String url(File helmChart, HelmRepository repository);
+
+ @Override
+ public HelmRepository.HelmRepoType getType() {
+ return type;
+ }
+
+ @Override
+ public void uploadSingle(File file, HelmRepository repository) throws IOException, BadUploadException {
+ String uploadUrl = url(file, repository);
+
+ try (HttpClient httpClient = HttpClientUtils.getHttpClientFactory().newBuilder().tag(new RequestConfigBuilder().withRequestRetryBackoffLimit(0).build()).build()) {
+ HttpRequest.Builder httpRequestBuilder = httpClient.newHttpRequestBuilder();
+ httpRequestBuilder.uri(uploadUrl);
+ // At this point username and password are always populated since this is requirement in HelmService
+ httpRequestBuilder.header("Authorization", String.format("Basic %s", Base64Util.encodeToString(repository.getUsername() + ":" + repository.getPassword())));
+ httpRequestBuilder.method(method, "application/gzip", Files.newInputStream(file.toPath()), file.length());
+ HttpResponse response = get(httpClient.sendAsync(httpRequestBuilder.build(), byte[].class), Duration.ofMinutes(HELM_UPLOAD_TIMEOUT_MINUTES));
+ handleHttpResponse(response);
+ }
+ }
+
+ private void handleHttpResponse(HttpResponse response) throws BadUploadException {
+ if (!response.isSuccessful()) {
+ String responseStr;
+ if (response.body() != null) {
+ responseStr = new String(response.body());
+ } else if (StringUtils.isNotBlank(response.message())) {
+ responseStr = response.message();
+ } else {
+ responseStr = "No details provided";
+ }
+ throw new BadUploadException(responseStr);
+ } else {
+ String message = Integer.toString(response.code());
+ if (response.body() != null) {
+ message += " - " + new String(response.body());
+ }
+ logger.info(message);
+ }
+ }
+
+ protected String formatRepositoryURL(File file, HelmRepository repository) {
+ return String.format("%s%s", StringUtils.appendIfMissing(repository.getUrl(), "/"), file.getName());
+ }
+}
diff --git a/jkube-kit/resource/helm/src/main/resources/META-INF/jkube/helm-uploaders b/jkube-kit/resource/helm/src/main/resources/META-INF/jkube/helm-uploaders
new file mode 100644
index 0000000000..1c88bb86bf
--- /dev/null
+++ b/jkube-kit/resource/helm/src/main/resources/META-INF/jkube/helm-uploaders
@@ -0,0 +1,3 @@
+org.eclipse.jkube.kit.resource.helm.ArtifactoryHelmRepositoryUploader,100
+org.eclipse.jkube.kit.resource.helm.ChartMuseumHelmRepositoryUploader,100
+org.eclipse.jkube.kit.resource.helm.NexusHelmRepositoryUploader,100
\ No newline at end of file
diff --git a/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmServiceUploadIT.java b/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmServiceUploadIT.java
index b3205a2e95..449f387d75 100644
--- a/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmServiceUploadIT.java
+++ b/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmServiceUploadIT.java
@@ -13,7 +13,6 @@
*/
package org.eclipse.jkube.kit.resource.helm;
-import java.io.FileNotFoundException;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
@@ -257,7 +256,7 @@ void withServerErrorAndNoDetails_shouldThrowException() {
.andReturn(404, "")
.always();
// When
- final FileNotFoundException result = assertThrows(FileNotFoundException.class,
+ final BadUploadException result = assertThrows(BadUploadException.class,
() -> helmService.uploadHelmChart(helmConfig));
// Then
assertThat(result).isNotNull();
diff --git a/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmUploaderManagerTest.java b/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmUploaderManagerTest.java
new file mode 100644
index 0000000000..4722612c15
--- /dev/null
+++ b/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmUploaderManagerTest.java
@@ -0,0 +1,47 @@
+/**
+ * Copyright (c) 2019 Red Hat, Inc.
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at:
+ *
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ */
+package org.eclipse.jkube.kit.resource.helm;
+
+import org.eclipse.jkube.kit.common.KitLogger;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.MethodSource;
+
+import java.util.stream.Stream;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+class HelmUploaderManagerTest {
+ private static Stream testData() {
+ return Stream.of(
+ Arguments.of("ARTIFACTORY", ArtifactoryHelmRepositoryUploader.class),
+ Arguments.of("NEXUS", NexusHelmRepositoryUploader.class),
+ Arguments.of("CHARTMUSEUM", ChartMuseumHelmRepositoryUploader.class)
+ );
+ }
+
+ @ParameterizedTest
+ @MethodSource("testData")
+ void getHelmUploader_whenValidHelmTypeProvided_thenReturnAppropriateUploader(HelmRepository.HelmRepoType type, Class extends HelmUploader> helmUploaderType) {
+ // Given
+ HelmUploaderManager helmUploaderManager = new HelmUploaderManager(new KitLogger.SilentLogger());
+
+ // When
+ HelmUploader helmUploader = helmUploaderManager.getHelmUploader(type);
+
+ // Then
+ assertThat(helmUploader)
+ .isInstanceOf(helmUploaderType);
+ }
+}
From f0d95abfc601ac862a2501b2e2ccc6ccfbb0ee80 Mon Sep 17 00:00:00 2001
From: Marc Nuri
Date: Thu, 13 Jul 2023 10:23:27 +0200
Subject: [PATCH 34/65] ci: fix doc-preview works on master branch
Signed-off-by: Marc Nuri
---
.jenkins/pipelines/doc-preview.Jenkinsfile | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/.jenkins/pipelines/doc-preview.Jenkinsfile b/.jenkins/pipelines/doc-preview.Jenkinsfile
index 68649d3136..d1d24c1a47 100644
--- a/.jenkins/pipelines/doc-preview.Jenkinsfile
+++ b/.jenkins/pipelines/doc-preview.Jenkinsfile
@@ -16,12 +16,8 @@ pipeline {
steps {
sh 'echo "Generating project documentation"'
sh './scripts/generateDoc.sh'
+ archiveArtifacts artifacts: 'docs-generated/*.html,docs-generated/*.txt,docs-generated/*.css', fingerprint: true
}
}
}
- post {
- success {
- archiveArtifacts artifacts: 'docs-generated/*.html,docs-generated/*.txt,docs-generated/*.css', fingerprint: true
- }
- }
}
From b016b35b83c3e5a37fd65282ee7f16d85d316e5c Mon Sep 17 00:00:00 2001
From: Marc Nuri
Date: Wed, 12 Jul 2023 13:03:54 +0200
Subject: [PATCH 35/65] refactor: remove consolidate redundant applyXxx methods
into applyResource
Signed-off-by: Marc Nuri
---
.../kit/config/service/ApplyService.java | 241 ++----------------
.../kit/config/service/PatchService.java | 119 +--------
.../config/service/ApplyServiceCrudTest.java | 62 ++++-
.../kit/config/service/DebugServiceTest.java | 9 +-
.../{openshift => }/PatchServiceTest.java | 62 +----
5 files changed, 91 insertions(+), 402 deletions(-)
rename jkube-kit/config/service/src/test/java/org/eclipse/jkube/kit/config/service/{openshift => }/PatchServiceTest.java (59%)
diff --git a/jkube-kit/config/service/src/main/java/org/eclipse/jkube/kit/config/service/ApplyService.java b/jkube-kit/config/service/src/main/java/org/eclipse/jkube/kit/config/service/ApplyService.java
index d11d09d371..7c8cd92027 100644
--- a/jkube-kit/config/service/src/main/java/org/eclipse/jkube/kit/config/service/ApplyService.java
+++ b/jkube-kit/config/service/src/main/java/org/eclipse/jkube/kit/config/service/ApplyService.java
@@ -45,16 +45,11 @@
import io.fabric8.kubernetes.api.model.Namespace;
import io.fabric8.kubernetes.api.model.ObjectMeta;
import io.fabric8.kubernetes.api.model.PersistentVolumeClaim;
-import io.fabric8.kubernetes.api.model.Pod;
import io.fabric8.kubernetes.api.model.ReplicationController;
import io.fabric8.kubernetes.api.model.ReplicationControllerSpec;
-import io.fabric8.kubernetes.api.model.Secret;
import io.fabric8.kubernetes.api.model.Service;
-import io.fabric8.kubernetes.api.model.ServiceAccount;
-import io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinition;
import io.fabric8.kubernetes.api.model.batch.v1.Job;
import io.fabric8.kubernetes.api.model.extensions.Ingress;
-import io.fabric8.kubernetes.api.model.rbac.RoleBinding;
import io.fabric8.kubernetes.client.KubernetesClient;
import io.fabric8.kubernetes.client.KubernetesClientException;
import io.fabric8.kubernetes.client.dsl.Resource;
@@ -145,12 +140,8 @@ public boolean isAlreadyApplied(HasMetadata resource) {
* Applies the given DTOs onto the Kubernetes master
*/
private void applyEntity(Object dto, String sourceName) {
- if (dto instanceof Pod) {
- applyPod((Pod) dto, sourceName);
- } else if (dto instanceof ReplicationController) {
+ if (dto instanceof ReplicationController) {
applyReplicationController((ReplicationController) dto, sourceName);
- } else if (dto instanceof Service) {
- applyService((Service) dto, sourceName);
} else if (dto instanceof Route) {
applyRoute((Route) dto, sourceName);
} else if (dto instanceof BuildConfig) {
@@ -162,18 +153,12 @@ private void applyEntity(Object dto, String sourceName) {
} else {
log.warn("Not connected to OpenShift cluster so cannot apply entity %s", dto);
}
- } else if (dto instanceof RoleBinding) {
- applyRoleBinding((RoleBinding) dto, sourceName);
} else if (dto instanceof ImageStream) {
applyImageStream((ImageStream) dto, sourceName);
} else if (dto instanceof OAuthClient) {
applyOAuthClient((OAuthClient) dto, sourceName);
} else if (dto instanceof Template) {
applyTemplate((Template) dto, sourceName);
- } else if (dto instanceof ServiceAccount) {
- applyServiceAccount((ServiceAccount) dto, sourceName);
- } else if (dto instanceof Secret) {
- applySecret((Secret) dto, sourceName);
} else if (dto instanceof Ingress) {
applyResource((Ingress) dto, sourceName);
ingressControllerDetectorManager.detect();
@@ -182,8 +167,6 @@ private void applyEntity(Object dto, String sourceName) {
ingressControllerDetectorManager.detect();
} else if (dto instanceof PersistentVolumeClaim) {
applyPersistentVolumeClaim((PersistentVolumeClaim) dto, sourceName);
- } else if (dto instanceof CustomResourceDefinition) {
- applyCustomResourceDefinition((CustomResourceDefinition) dto, sourceName);
} else if (dto instanceof Job) {
applyJob((Job) dto, sourceName);
} else if (dto instanceof Namespace) {
@@ -338,45 +321,6 @@ protected void doCreateTemplate(Template entity, String namespace, String source
}
}
- /**
- * Creates/updates a service account and processes it returning the processed DTOs
- */
- public void applyServiceAccount(ServiceAccount serviceAccount, String sourceName) {
- String currentNamespace = applicableNamespace(serviceAccount, namespace, fallbackNamespace);
- String id = getName(serviceAccount);
- Objects.requireNonNull(id, "No name for " + serviceAccount + " " + sourceName);
- if (isServicesOnlyMode()) {
- log.debug("Only processing Services right now so ignoring ServiceAccount: " + id);
- return;
- }
- ServiceAccount old = kubernetesClient.serviceAccounts().inNamespace(currentNamespace).withName(id).get();
- if (isRunning(old)) {
- if (UserConfigurationCompare.configEqual(serviceAccount, old)) {
- log.info("ServiceAccount has not changed so not doing anything");
- } else {
- if (isRecreateMode()) {
- kubernetesClient.serviceAccounts().inNamespace(currentNamespace).withName(id).delete();
- doCreate(serviceAccount, currentNamespace, sourceName);
- } else {
- log.info("Updating a ServiceAccount from " + sourceName);
- try {
- Object answer = kubernetesClient.serviceAccounts().inNamespace(currentNamespace).withName(id).replace(serviceAccount);
- logGeneratedEntity("Updated ServiceAccount: ", currentNamespace, serviceAccount, answer);
- } catch (Exception e) {
- onApplyError("Failed to update ServiceAccount from " + sourceName + ". " + e + ". " + serviceAccount, e);
- }
- }
- }
- } else {
- if (!isAllowCreate()) {
- log.warn("Creation disabled so not creating a %s from %s in namespace %s with name %s",
- "ServiceAccount", sourceName, currentNamespace, id);
- } else {
- doCreate(serviceAccount, currentNamespace, sourceName);
- }
- }
- }
-
public void applyPersistentVolumeClaim(PersistentVolumeClaim entity, String sourceName) {
// we cannot update PVCs
boolean alwaysRecreate = true;
@@ -408,80 +352,20 @@ public void applyPersistentVolumeClaim(PersistentVolumeClaim entity, String sour
}
} else {
if (!isAllowCreate()) {
- log.warn("Creation disabled so not creating a PersistentVolumeClaim from " + sourceName + " namespace " + currentNamespace + " name " + getName(entity));
+ log.warn("Creation disabled so not creating a %s from %s in namespace %s with name %s",
+ "PersistentVolumeClaim", sourceName, currentNamespace, id);
} else {
doCreate(entity, currentNamespace, sourceName);
}
}
}
- public void applyCustomResourceDefinition(CustomResourceDefinition entity, String fileName) {
- final String name = getName(entity);
- Objects.requireNonNull(name, "No name for CustomResourceDefinition " + fileName);
- if (isServicesOnlyMode()) {
- log.debug("Only processing Services right now so ignoring Custom Resource Definition: %s", name);
- return;
- }
- CustomResourceDefinition old = kubernetesClient.apiextensions().v1().customResourceDefinitions().withName(name).get();
- if (isRunning(old)) {
- if (UserConfigurationCompare.configEqual(entity, old)) {
- log.info("Custom Resource Definition has not changed so not doing anything");
- } else {
- if (isRecreateMode()) {
- log.info("Deleting Custom Resource Definition: %s", name);
- kubernetesClient.apiextensions().v1().customResourceDefinitions().withName(name).delete();
- doCreate(entity, null, fileName);
- } else {
- doPatchEntity(old, entity, null, fileName);
- }
- }
- } else {
- if (!isAllowCreate()) {
- log.warn("Creation disabled so not creating a Custom Resource Definition from " + fileName + " name " + getName(entity));
- } else {
- doCreate(entity, null, fileName);
- }
- }
- }
-
protected boolean isBound(PersistentVolumeClaim claim) {
return claim != null &&
claim.getStatus() != null &&
"Bound".equals(claim.getStatus().getPhase());
}
- public void applySecret(Secret secret, String sourceName) {
- String currentNamespace = applicableNamespace(secret, namespace, fallbackNamespace);
- String id = getName(secret);
- Objects.requireNonNull(id, "No name for " + secret + " " + sourceName);
- if (isServicesOnlyMode()) {
- log.debug("Only processing Services right now so ignoring Secrets: " + id);
- return;
- }
-
- Secret old = kubernetesClient.secrets().inNamespace(currentNamespace).withName(id).get();
- // check if the secret already exists or not
- if (isRunning(old)) {
- // if the secret already exists and is the same, then do nothing
- if (UserConfigurationCompare.configEqual(secret, old)) {
- log.info("Secret has not changed so not doing anything");
- } else {
- if (isRecreateMode()) {
- kubernetesClient.secrets().inNamespace(currentNamespace).withName(id).delete();
- doCreate(secret, currentNamespace, sourceName);
- } else {
- doPatchEntity(old, secret, currentNamespace, sourceName);
- }
- }
- } else {
- if (!isAllowCreate()) {
- log.warn("Creation disabled so not creating a Secret from " + sourceName + " namespace " + currentNamespace + " name " + getName(secret));
- } else {
- doCreate(secret, currentNamespace, sourceName);
- }
- }
- }
-
private void logGeneratedEntity(String message, String namespace, HasMetadata entity, Object result) {
if (logJsonDir != null) {
final File directory = StringUtils.isBlank(namespace) ? logJsonDir : new File(logJsonDir, namespace);
@@ -638,44 +522,6 @@ public void doCreateBuildConfig(BuildConfig entity, String namespace , String so
}
}
- public void applyRoleBinding(RoleBinding entity, String sourceName) {
- String id = getName(entity);
-
- Objects.requireNonNull(id, "No name for " + entity + " " + sourceName);
- String currentNamespace = applicableNamespace(entity, namespace, fallbackNamespace);
-
- RoleBinding old = kubernetesClient.rbac().roleBindings().inNamespace(currentNamespace).withName(id).get();
- if (isRunning(old)) {
- if (UserConfigurationCompare.configEqual(entity, old)) {
- log.info("RoleBinding has not changed so not doing anything");
- } else {
- if (isRecreateMode()) {
- log.info("Deleting RoleBinding: " + id);
- kubernetesClient.rbac().roleBindings().inNamespace(currentNamespace).withName(id).delete();
- doCreate(entity, currentNamespace, sourceName);
- } else {
- log.info("Updating RoleBinding from " + sourceName);
- try {
- String resourceVersion = KubernetesHelper.getResourceVersion(old);
- ObjectMeta metadata = getOrCreateMetadata(entity);
- metadata.setNamespace(currentNamespace);
- metadata.setResourceVersion(resourceVersion);
- Object answer = kubernetesClient.rbac().roleBindings().inNamespace(currentNamespace).withName(id).replace(entity);
- logGeneratedEntity("Updated RoleBinding: ", currentNamespace, entity, answer);
- } catch (Exception e) {
- onApplyError("Failed to update RoleBinding from " + sourceName + ". " + e + ". " + entity, e);
- }
- }
- }
- } else {
- if (!isAllowCreate()) {
- log.warn("Creation disabled so not creating RoleBinding from " + sourceName + " namespace " + currentNamespace + " name " + getName(entity));
- } else {
- doCreate(entity, currentNamespace, sourceName);
- }
- }
- }
-
public void applyImageStream(ImageStream entity, String sourceName) {
if (OpenshiftHelper.isOpenShift(kubernetesClient)) {
String kind = getKind(entity);
@@ -754,43 +600,12 @@ public void applyList(KubernetesList list, String sourceName) {
}
}
- public void applyService(Service service, String sourceName) {
- String currentNamespace = applicableNamespace(service, namespace, fallbackNamespace);
- String id = getName(service);
- Objects.requireNonNull(id, "No name for " + service + " " + sourceName);
- if (isIgnoreServiceMode()) {
- log.debug("Ignoring Service: " + currentNamespace + ":" + id);
- return;
- }
- Service old = kubernetesClient.services().inNamespace(currentNamespace).withName(id).get();
- if (isRunning(old)) {
- if (UserConfigurationCompare.configEqual(service, old)) {
- log.info("Service has not changed so not doing anything");
- } else {
- if (isRecreateMode()) {
- log.info("Deleting Service: " + id);
- kubernetesClient.services().inNamespace(currentNamespace).withName(id).delete();
- doCreate(service, currentNamespace, sourceName);
- } else {
- doPatchEntity(old, service, currentNamespace, sourceName);
- }
- }
- } else {
- if (!isAllowCreate()) {
- log.warn("Creation disabled so not creating a %s from %s in namespace %s with name %s",
- "Service", sourceName, currentNamespace, id);
- } else {
- doCreate(service, currentNamespace, sourceName);
- }
- }
- }
-
- public void applyResource(T resource, String sourceName) {
+ public void applyResource(T resource, String sourceName) {
String currentNamespace = applicableNamespace(resource, namespace, fallbackNamespace);
String id = getName(resource);
String kind = getKind(resource);
Objects.requireNonNull(id, "No name for " + resource + " " + sourceName);
- if (isServicesOnlyMode()) {
+ if (isServicesOnlyMode() && !(resource instanceof Service)) {
log.debug("Ignoring " + kind + ": " + currentNamespace + ":" + id);
return;
}
@@ -806,17 +621,23 @@ public void applyResource(T resource, String sourceNam
} else {
log.info("Updating " + kind + " from " + sourceName);
try {
- Object answer = kubernetesClient.resource(resource).inNamespace(currentNamespace).replace();
- logGeneratedEntity("Updated " + kind + ": ", currentNamespace, resource, answer);
+ T updatedResource = kubernetesClient
+ .resource(resource)
+ .inNamespace(currentNamespace)
+ .patch();
+ logGeneratedEntity("Updated " + kind + ": ", currentNamespace, resource, updatedResource);
} catch (Exception e) {
onApplyError("Failed to update " + kind + " from " + sourceName + ". " + e + ". " + resource, e);
}
}
}
} else {
- if (!isAllowCreate()) {
+ if (!isAllowCreate() && resource instanceof Namespaced) {
log.warn("Creation disabled so not creating a %s from %s in namespace %s with name %s",
kind, sourceName, currentNamespace, id);
+ } else if (!isAllowCreate()) {
+ log.warn("Creation disabled so not creating a %s from %s with name %s",
+ kind, sourceName, id);
} else {
doCreate(resource, currentNamespace, sourceName);
}
@@ -1023,42 +844,12 @@ public void applyReplicationController(ReplicationController replicationControll
}
}
}
- } else {
- if (!isAllowCreate()) {
- log.warn("Creation disabled so not creating a ReplicationController from " + sourceName + " namespace " + currentNamespace + " name " + getName(replicationController));
- } else {
- doCreate(replicationController, currentNamespace, sourceName);
- }
- }
- }
-
- public void applyPod(Pod pod, String sourceName) {
- String currentNamespace = applicableNamespace(pod, namespace, fallbackNamespace);
- final String name = getName(pod);
- Objects.requireNonNull(name, "No name for " + pod + " " + sourceName);
- if (isServicesOnlyMode()) {
- log.debug("Only processing Services right now so ignoring Pod: " + currentNamespace + ":" + name);
- return;
- }
- Pod old = kubernetesClient.pods().inNamespace(currentNamespace).withName(name).get();
- if (isRunning(old)) {
- if (UserConfigurationCompare.configEqual(pod, old)) {
- log.info("Pod has not changed so not doing anything");
- } else {
- if (isRecreateMode()) {
- log.info("Deleting Pod: " + name);
- kubernetesClient.pods().inNamespace(currentNamespace).withName(name).delete();
- doCreate(pod, currentNamespace, sourceName);
- } else {
- doPatchEntity(old, pod, currentNamespace, sourceName);
- }
- }
} else {
if (!isAllowCreate()) {
log.warn("Creation disabled so not creating a %s from %s in namespace %s with name %s",
- "Pod", sourceName, currentNamespace, name);
+ "ReplicationController", sourceName, currentNamespace, id);
} else {
- doCreate(pod, currentNamespace, sourceName);
+ doCreate(replicationController, currentNamespace, sourceName);
}
}
}
diff --git a/jkube-kit/config/service/src/main/java/org/eclipse/jkube/kit/config/service/PatchService.java b/jkube-kit/config/service/src/main/java/org/eclipse/jkube/kit/config/service/PatchService.java
index 1baf97f59e..f9c13482d3 100644
--- a/jkube-kit/config/service/src/main/java/org/eclipse/jkube/kit/config/service/PatchService.java
+++ b/jkube-kit/config/service/src/main/java/org/eclipse/jkube/kit/config/service/PatchService.java
@@ -16,19 +16,11 @@
import io.fabric8.kubernetes.api.model.HasMetadata;
import io.fabric8.kubernetes.api.model.PersistentVolumeClaim;
import io.fabric8.kubernetes.api.model.PersistentVolumeClaimBuilder;
-import io.fabric8.kubernetes.api.model.Pod;
-import io.fabric8.kubernetes.api.model.PodBuilder;
import io.fabric8.kubernetes.api.model.ReplicationController;
import io.fabric8.kubernetes.api.model.ReplicationControllerBuilder;
-import io.fabric8.kubernetes.api.model.Secret;
-import io.fabric8.kubernetes.api.model.SecretBuilder;
-import io.fabric8.kubernetes.api.model.Service;
-import io.fabric8.kubernetes.api.model.ServiceBuilder;
-import io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinitionBuilder;
import io.fabric8.kubernetes.api.model.batch.v1.Job;
import io.fabric8.kubernetes.api.model.batch.v1.JobBuilder;
import io.fabric8.kubernetes.client.KubernetesClient;
-import io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinition;
import io.fabric8.openshift.api.model.BuildConfig;
import io.fabric8.openshift.api.model.BuildConfigBuilder;
import io.fabric8.openshift.api.model.ImageStream;
@@ -64,14 +56,10 @@ interface EntityPatcher {
static {
patchers = new HashMap<>();
- patchers.put("Pod", podPatcher());
patchers.put("ReplicationController", rcPatcher());
- patchers.put("Service", servicePatcher());
patchers.put("BuildConfig", bcPatcher());
patchers.put("ImageStream", isPatcher());
- patchers.put("Secret", secretPatcher());
patchers.put("PersistentVolumeClaim", pvcPatcher());
- patchers.put("CustomResourceDefinition", crdPatcher());
patchers.put("Job", jobPatcher());
patchers.put("Route", routePatcher());
}
@@ -85,40 +73,13 @@ public T compareAndPatchEntity(String namespace, T newDt
if (dispatcher == null) {
throw new IllegalArgumentException("Internal: No patcher for " + newDto.getKind() + " found");
}
- /**
+ /*
* This is done in order to fix https://github.com/openshift/origin/issues/19905
*/
newDto.getMetadata().setResourceVersion(oldDto.getMetadata().getResourceVersion());
return dispatcher.patch(kubernetesClient, namespace, newDto, oldDto);
}
- private static EntityPatcher podPatcher() {
- return (KubernetesClient client, String namespace, Pod newObj, Pod oldObj) -> {
- if (UserConfigurationCompare.configEqual(newObj, oldObj)) {
- return oldObj;
- }
-
- PodBuilder entity =
- new PodBuilder(client.pods()
- .inNamespace(namespace)
- .withName(oldObj.getMetadata().getName())
- .get());
-
-
- if (!UserConfigurationCompare.configEqual(newObj.getMetadata(), oldObj.getMetadata())) {
- entity.withMetadata(newObj.getMetadata());
- }
-
- if(!UserConfigurationCompare.configEqual(newObj.getSpec(), oldObj.getSpec())) {
- entity.withSpec(newObj.getSpec());
- }
- return client.pods()
- .inNamespace(namespace)
- .withName(oldObj.getMetadata().getName())
- .edit(p -> entity.build());
- };
- }
-
private static EntityPatcher rcPatcher() {
return (KubernetesClient client, String namespace, ReplicationController newObj, ReplicationController oldObj) -> {
if (UserConfigurationCompare.configEqual(newObj, oldObj)) {
@@ -145,60 +106,6 @@ private static EntityPatcher rcPatcher() {
};
}
- private static EntityPatcher servicePatcher() {
- return (KubernetesClient client, String namespace, Service newObj, Service oldObj) -> {
- if (UserConfigurationCompare.configEqual(newObj, oldObj)) {
- return oldObj;
- }
-
- ServiceBuilder entity =
- new ServiceBuilder(client.services()
- .inNamespace(namespace)
- .withName(newObj.getMetadata().getName())
- .get());
-
- if (!UserConfigurationCompare.configEqual(newObj.getMetadata(), oldObj.getMetadata())) {
- entity.withMetadata(newObj.getMetadata());
- }
-
- if(!UserConfigurationCompare.configEqual(newObj.getSpec(), oldObj.getSpec())) {
- entity.withSpec(newObj.getSpec());
- }
- return client.services()
- .inNamespace(namespace)
- .withName(newObj.getMetadata().getName())
- .patch(entity.build());
- };
- }
-
- private static EntityPatcher secretPatcher() {
- return (KubernetesClient client, String namespace, Secret newObj, Secret oldObj) -> {
- if (UserConfigurationCompare.configEqual(newObj, oldObj)) {
- return oldObj;
- }
- SecretBuilder entity =
- new SecretBuilder(client.secrets()
- .inNamespace(namespace)
- .withName(oldObj.getMetadata().getName())
- .get());
-
- if (!UserConfigurationCompare.configEqual(newObj.getMetadata(), oldObj.getMetadata())) {
- entity.withMetadata(newObj.getMetadata());
- }
-
- if(!UserConfigurationCompare.configEqual(newObj.getData(), oldObj.getData())) {
- entity.withData(newObj.getData());
- }
- if(!UserConfigurationCompare.configEqual(newObj.getStringData(), oldObj.getStringData())) {
- entity.withStringData(newObj.getStringData());
- }
- return client.secrets()
- .inNamespace(namespace)
- .withName(oldObj.getMetadata().getName())
- .edit(p -> entity.build());
- };
- }
-
private static EntityPatcher pvcPatcher() {
return (KubernetesClient client, String namespace, PersistentVolumeClaim newObj, PersistentVolumeClaim oldObj) -> {
if (UserConfigurationCompare.configEqual(newObj, oldObj)) {
@@ -224,30 +131,6 @@ private static EntityPatcher pvcPatcher() {
};
}
- private static EntityPatcher crdPatcher() {
- return (KubernetesClient client, String namespace, CustomResourceDefinition newObj, CustomResourceDefinition oldObj) -> {
- if (UserConfigurationCompare.configEqual(newObj, oldObj)) {
- return oldObj;
- }
-
- CustomResourceDefinitionBuilder entity =
- new CustomResourceDefinitionBuilder(client.apiextensions().v1().customResourceDefinitions()
- .withName(oldObj.getMetadata().getName())
- .get());
-
- if (!UserConfigurationCompare.configEqual(newObj.getMetadata(), oldObj.getMetadata())) {
- entity.withMetadata(newObj.getMetadata());
- }
-
- if (!UserConfigurationCompare.configEqual(newObj.getSpec(), oldObj.getSpec())) {
- entity.withSpec(newObj.getSpec());
- }
- return client.apiextensions().v1().customResourceDefinitions()
- .withName(oldObj.getMetadata().getName())
- .edit(p -> entity.build());
- };
- }
-
private static EntityPatcher jobPatcher() {
return (KubernetesClient client, String namespace, Job newObj, Job oldObj) -> {
if (UserConfigurationCompare.configEqual(newObj, oldObj)) {
diff --git a/jkube-kit/config/service/src/test/java/org/eclipse/jkube/kit/config/service/ApplyServiceCrudTest.java b/jkube-kit/config/service/src/test/java/org/eclipse/jkube/kit/config/service/ApplyServiceCrudTest.java
index 060b44ee44..265aef3576 100644
--- a/jkube-kit/config/service/src/test/java/org/eclipse/jkube/kit/config/service/ApplyServiceCrudTest.java
+++ b/jkube-kit/config/service/src/test/java/org/eclipse/jkube/kit/config/service/ApplyServiceCrudTest.java
@@ -19,13 +19,18 @@
import io.fabric8.kubernetes.api.model.HasMetadata;
import io.fabric8.kubernetes.api.model.KubernetesList;
import io.fabric8.kubernetes.api.model.KubernetesListBuilder;
+import io.fabric8.kubernetes.api.model.PersistentVolumeClaimBuilder;
import io.fabric8.kubernetes.api.model.PodBuilder;
+import io.fabric8.kubernetes.api.model.ReplicationControllerBuilder;
+import io.fabric8.kubernetes.api.model.SecretBuilder;
import io.fabric8.kubernetes.api.model.ServiceAccountBuilder;
import io.fabric8.kubernetes.api.model.ServiceBuilder;
+import io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinitionBuilder;
import io.fabric8.kubernetes.api.model.apps.DaemonSetBuilder;
import io.fabric8.kubernetes.api.model.apps.DeploymentBuilder;
import io.fabric8.kubernetes.api.model.apps.ReplicaSetBuilder;
import io.fabric8.kubernetes.api.model.apps.StatefulSetBuilder;
+import io.fabric8.kubernetes.api.model.rbac.RoleBindingBuilder;
import io.fabric8.kubernetes.api.model.rbac.RoleBuilder;
import io.fabric8.kubernetes.client.KubernetesClient;
import io.fabric8.kubernetes.client.server.mock.EnableKubernetesMockClient;
@@ -143,9 +148,14 @@ void applyInServicesMode() {
.addToItems(new ServiceBuilder().withNewMetadata().withName("a-resource").endMetadata().build())
.addToItems(new ServiceAccountBuilder().withNewMetadata().withName("a-resource").endMetadata().build())
.addToItems(new RoleBuilder().withNewMetadata().withName("a-resource").endMetadata().build())
+ .addToItems(new RoleBindingBuilder().withNewMetadata().withName("a-resource").endMetadata().build())
.addToItems(new DaemonSetBuilder().withNewMetadata().withName("a-resource").endMetadata().build())
.addToItems(new ReplicaSetBuilder().withNewMetadata().withName("a-resource").endMetadata().build())
.addToItems(new StatefulSetBuilder().withNewMetadata().withName("a-resource").endMetadata().build())
+ .addToItems(new ReplicationControllerBuilder().withNewMetadata().withName("a-resource").endMetadata().build())
+ .addToItems(new PersistentVolumeClaimBuilder().withNewMetadata().withName("a-resource").endMetadata().build())
+ .addToItems(new CustomResourceDefinitionBuilder().withNewMetadata().withName("a-resource").endMetadata().build())
+ .addToItems(new SecretBuilder().withNewMetadata().withName("a-resource").endMetadata().build())
.build();
applyService.setServicesOnlyMode(true);
// When
@@ -156,16 +166,20 @@ void applyInServicesMode() {
.returns(null, c -> c.pods().inNamespace("default").withName("a-resource").get())
.returns(null, c -> c.serviceAccounts().inNamespace("default").withName("a-resource").get())
.returns(null, c -> c.rbac().roles().inNamespace("default").withName("a-resource").get())
+ .returns(null, c -> c.rbac().roleBindings().inNamespace("default").withName("a-resource").get())
.returns(null, c -> c.apps().daemonSets().inNamespace("default").withName("a-resource").get())
.returns(null, c -> c.apps().replicaSets().inNamespace("default").withName("a-resource").get())
.returns(null, c -> c.apps().statefulSets().inNamespace("default").withName("a-resource").get())
+ .returns(null, c -> c.replicationControllers().inNamespace("default").withName("a-resource").get())
+ .returns(null, c -> c.persistentVolumeClaims().inNamespace("default").withName("a-resource").get())
+ .returns(null, c -> c.apiextensions().v1().customResourceDefinitions().withName("a-resource").get())
.returns("a-resource", c -> c.services().inNamespace("default").withName("a-resource").get().getMetadata().getName());
}
- @DisplayName("apply with new resources and creation disabled, should do nothing")
+ @DisplayName("apply with new namespaced resource and creation disabled, should do nothing")
@ParameterizedTest
- @MethodSource("applyResourcesData")
- void applyWithNewResourceAndCreationDisabled(HasMetadata toApplyResource) {
+ @MethodSource("applyNamespacedResourcesData")
+ void applyWithNewNamespacedResourceAndCreationDisabled(HasMetadata toApplyResource) {
// Given
applyService.setAllowCreate(false);
// When
@@ -177,10 +191,25 @@ void applyWithNewResourceAndCreationDisabled(HasMetadata toApplyResource) {
toApplyResource.getKind(), "resource.yml", "default", "a-resource");
}
+ @DisplayName("apply with new cluster-scoped resource and creation disabled, should do nothing")
+ @ParameterizedTest
+ @MethodSource("applyClusterScopedResourcesData")
+ void applyWithNewResourceAndCreationDisabled(HasMetadata toApplyResource) {
+ // Given
+ applyService.setAllowCreate(false);
+ // When
+ applyService.apply(toApplyResource, "resource.yml");
+ // Then
+ assertThat(kubernetesClient.resource(toApplyResource).inNamespace("default").get())
+ .isNull();
+ verify(log).warn("Creation disabled so not creating a %s from %s with name %s",
+ toApplyResource.getKind(), "resource.yml", "a-resource");
+ }
+
@DisplayName("apply with existing resource, should update the resource")
@ParameterizedTest
- @MethodSource("applyResourcesData")
- void applyWithExistingResources(HasMetadata toApplyResource) {
+ @MethodSource("applyAllResourcesData")
+ void applyWithExistingNamespacedResources(HasMetadata toApplyResource) {
// Given
final HasMetadata original = kubernetesClient.resource(toApplyResource).inNamespace("default").create();
toApplyResource.getMetadata().getAnnotations().put("updated", "true");
@@ -195,8 +224,8 @@ void applyWithExistingResources(HasMetadata toApplyResource) {
@DisplayName("apply with existing resource, in recreate mode, should delete and recreate resource")
@ParameterizedTest
- @MethodSource("applyResourcesData")
- void applyWithExistingResourceInRecreateMode(HasMetadata toApplyResource) {
+ @MethodSource("applyAllResourcesData")
+ void applyWithExistingNamespacedResourceInRecreateMode(HasMetadata toApplyResource) {
// Given
applyService.setRecreateMode(true);
final HasMetadata original = kubernetesClient.resource(toApplyResource).inNamespace("default").create();
@@ -208,19 +237,34 @@ void applyWithExistingResourceInRecreateMode(HasMetadata toApplyResource) {
.isNotEqualTo(original.getMetadata().getUid());
}
- static Stream applyResourcesData() {
+ static Stream applyNamespacedResourcesData() {
return Stream.of(
Arguments.of(new PodBuilder().withNewMetadata().withName("a-resource").endMetadata().build()),
Arguments.of(new DeploymentBuilder().withNewMetadata().withName("a-resource").endMetadata().build()),
Arguments.of(new ServiceBuilder().withNewMetadata().withName("a-resource").endMetadata().withNewSpec().endSpec().build()),
Arguments.of(new ServiceAccountBuilder().withNewMetadata().withName("a-resource").endMetadata().build()),
Arguments.of(new RoleBuilder().withNewMetadata().withName("a-resource").endMetadata().build()),
+ Arguments.of(new RoleBindingBuilder().withNewMetadata().withName("a-resource").endMetadata().build()),
Arguments.of(new DaemonSetBuilder().withNewMetadata().withName("a-resource").endMetadata().build()),
Arguments.of(new ReplicaSetBuilder().withNewMetadata().withName("a-resource").endMetadata().build()),
- Arguments.of(new StatefulSetBuilder().withNewMetadata().withName("a-resource").endMetadata().build())
+ Arguments.of(new StatefulSetBuilder().withNewMetadata().withName("a-resource").endMetadata().build()),
+ Arguments.of(new ReplicationControllerBuilder().withNewMetadata().withName("a-resource").endMetadata().withNewSpec().endSpec().build()),
+ Arguments.of(new SecretBuilder().withNewMetadata().withName("a-resource").endMetadata().build())
);
}
+ static Stream applyClusterScopedResourcesData() {
+ return Stream.of(
+ Arguments.of(new CustomResourceDefinitionBuilder().withNewMetadata().withName("a-resource").endMetadata()
+ .withNewSpec().withNewNames().withKind("Custom").withPlural("customs").endNames().endSpec()
+ .build())
+ );
+ }
+
+ static Stream applyAllResourcesData() {
+ return Stream.concat(applyNamespacedResourcesData(), applyClusterScopedResourcesData());
+ }
+
@Test
@DisplayName("apply with Project, in vanilla Kubernetes, should do nothing")
void applyProjectInKubernetes() {
diff --git a/jkube-kit/config/service/src/test/java/org/eclipse/jkube/kit/config/service/DebugServiceTest.java b/jkube-kit/config/service/src/test/java/org/eclipse/jkube/kit/config/service/DebugServiceTest.java
index 4d307d4677..0ae73a6809 100644
--- a/jkube-kit/config/service/src/test/java/org/eclipse/jkube/kit/config/service/DebugServiceTest.java
+++ b/jkube-kit/config/service/src/test/java/org/eclipse/jkube/kit/config/service/DebugServiceTest.java
@@ -13,6 +13,7 @@
*/
package org.eclipse.jkube.kit.config.service;
+import com.fasterxml.jackson.databind.JsonNode;
import io.fabric8.kubernetes.api.model.APIGroupListBuilder;
import io.fabric8.kubernetes.api.model.ConfigMap;
import io.fabric8.kubernetes.api.model.LabelSelector;
@@ -39,6 +40,7 @@
import io.fabric8.openshift.api.model.DeploymentConfigBuilder;
import io.fabric8.openshift.api.model.DeploymentConfigSpecBuilder;
import io.fabric8.openshift.client.OpenShiftClient;
+import io.fabric8.zjsonpatch.JsonPatch;
import okhttp3.mockwebserver.RecordedRequest;
import org.assertj.core.groups.Tuple;
import org.eclipse.jkube.kit.common.JKubeConfiguration;
@@ -341,10 +343,13 @@ private static DeploymentConfig initDeploymentConfig() {
}
private Deployment withDeploymentRollout(Deployment deployment) {
- mockServer.expect().put()
+ mockServer.expect().patch()
.withPath("/apis/apps/v1/namespaces/test/deployments/" + deployment.getMetadata().getName())
.andReply(200, r -> {
- final Deployment d = Serialization.unmarshal(r.getBody().inputStream(), Deployment.class);
+ final Deployment d = Serialization.convertValue(
+ JsonPatch.apply(Serialization.unmarshal(r.getBody().inputStream(), JsonNode.class),
+ Serialization.convertValue(deployment, JsonNode.class)),
+ Deployment.class);
kubernetesClient.resource(new PodBuilder()
.withMetadata(new ObjectMetaBuilder(d.getSpec().getTemplate().getMetadata())
.withName("pod-in-debug-mode")
diff --git a/jkube-kit/config/service/src/test/java/org/eclipse/jkube/kit/config/service/openshift/PatchServiceTest.java b/jkube-kit/config/service/src/test/java/org/eclipse/jkube/kit/config/service/PatchServiceTest.java
similarity index 59%
rename from jkube-kit/config/service/src/test/java/org/eclipse/jkube/kit/config/service/openshift/PatchServiceTest.java
rename to jkube-kit/config/service/src/test/java/org/eclipse/jkube/kit/config/service/PatchServiceTest.java
index 9917c73f94..2903b664e9 100644
--- a/jkube-kit/config/service/src/test/java/org/eclipse/jkube/kit/config/service/openshift/PatchServiceTest.java
+++ b/jkube-kit/config/service/src/test/java/org/eclipse/jkube/kit/config/service/PatchServiceTest.java
@@ -11,22 +11,18 @@
* Contributors:
* Red Hat, Inc. - initial API and implementation
*/
-package org.eclipse.jkube.kit.config.service.openshift;
+package org.eclipse.jkube.kit.config.service;
import io.fabric8.kubernetes.api.model.ConfigMap;
import io.fabric8.kubernetes.api.model.ConfigMapBuilder;
-import io.fabric8.kubernetes.api.model.IntOrString;
-import io.fabric8.kubernetes.api.model.Secret;
-import io.fabric8.kubernetes.api.model.SecretBuilder;
-import io.fabric8.kubernetes.api.model.Service;
-import io.fabric8.kubernetes.api.model.ServiceBuilder;
+import io.fabric8.kubernetes.api.model.ReplicationController;
+import io.fabric8.kubernetes.api.model.ReplicationControllerBuilder;
import io.fabric8.kubernetes.client.server.mock.EnableKubernetesMockClient;
import io.fabric8.kubernetes.client.server.mock.KubernetesMockServer;
import io.fabric8.openshift.api.model.Route;
import io.fabric8.openshift.api.model.RouteBuilder;
import io.fabric8.openshift.client.OpenShiftClient;
import org.eclipse.jkube.kit.common.util.UserConfigurationCompare;
-import org.eclipse.jkube.kit.config.service.PatchService;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -50,55 +46,25 @@ void setUp() {
@Test
void resourcePatching() {
- Service oldService = new ServiceBuilder()
- .withNewMetadata().withName("service1").endMetadata()
+ ReplicationController old = new ReplicationControllerBuilder()
+ .withNewMetadata().withName("resource").endMetadata()
.withNewSpec()
- .withClusterIP("192.168.1.3")
.withSelector(Collections.singletonMap("app", "MyApp"))
- .addNewPort()
- .withProtocol("TCP")
- .withTargetPort(new IntOrString("9376"))
- .withPort(80)
- .endPort()
.endSpec()
.build();
- Service newService = new ServiceBuilder()
- .withNewMetadata().withName("service1").addToAnnotations(Collections.singletonMap("app", "org.eclipse.jkube")).endMetadata()
- .withSpec(oldService.getSpec())
+ ReplicationController newResource = new ReplicationControllerBuilder()
+ .withNewMetadata().withName("resource").addToAnnotations(Collections.singletonMap("app", "org.eclipse.jkube")).endMetadata()
+ .withSpec(old.getSpec())
.build();
- mockServer.expect().get().withPath("/api/v1/namespaces/test/services/service1").andReturn(200, oldService).always();
- mockServer.expect().patch().withPath("/api/v1/namespaces/test/services/service1").andReturn(200, new ServiceBuilder().withMetadata(newService.getMetadata()).withSpec(oldService.getSpec()).build()).once();
+ mockServer.expect().get().withPath("/api/v1/namespaces/test/replicationcontrollers/resource")
+ .andReturn(200, old).always();
+ mockServer.expect().patch().withPath("/api/v1/namespaces/test/replicationcontrollers/resource")
+ .andReturn(200, new ReplicationControllerBuilder(newResource).build()).once();
- Service patchedService = patchService.compareAndPatchEntity("test", newService, oldService);
+ ReplicationController patchedService = patchService.compareAndPatchEntity("test", old, newResource);
- assertThat(UserConfigurationCompare.configEqual(patchedService.getMetadata(), newService.getMetadata())).isTrue();
- }
-
- @Test
- void secretPatching() {
- Secret oldSecret = new SecretBuilder()
- .withNewMetadata().withName("secret").endMetadata()
- .addToData("test", "dGVzdA==")
- .build();
- Secret newSecret = new SecretBuilder()
- .withNewMetadata().withName("secret").endMetadata()
- .addToStringData("test", "test")
- .build();
- WebServerEventCollector collector = new WebServerEventCollector();
- mockServer.expect().get().withPath("/api/v1/namespaces/test/secrets/secret")
- .andReply(collector.record("get-secret").andReturn(200, oldSecret)).always();
- mockServer.expect().patch().withPath("/api/v1/namespaces/test/secrets/secret")
- .andReply(collector.record("patch-secret")
- .andReturn(200, new SecretBuilder().withMetadata(newSecret.getMetadata())
- .addToStringData(oldSecret.getData()).build())).once();
-
- patchService.compareAndPatchEntity("test", newSecret, oldSecret);
- collector.assertEventsRecordedInOrder("get-secret", "get-secret", "patch-secret");
- // Due to recent patch related improvements in KubernetesClient now edit call requires 2 GET requests
- // for resource from server instead of 3 GET requests.
- assertThat(collector.getBodies().get(2))
- .isEqualTo("[{\"op\":\"remove\",\"path\":\"/data\"},{\"op\":\"add\",\"path\":\"/stringData\",\"value\":{\"test\":\"test\"}}]");
+ assertThat(UserConfigurationCompare.configEqual(patchedService.getMetadata(), newResource.getMetadata())).isTrue();
}
@Test
From 552d5e9aeb56f2515e321d0c8753fb97da2b39e5 Mon Sep 17 00:00:00 2001
From: Marc Nuri
Date: Fri, 14 Jul 2023 11:51:07 +0200
Subject: [PATCH 36/65] quickstarts: bootstrapped an Apache Camel 3 + Karaf
example
We have now 2 quickstarts to demonstrate the usage of Apache Camel and Apache Karaf
with both Apache Camel 2 and Apache Camel 3
Signed-off-by: Marc Nuri
---
quickstarts/maven/karaf-camel-2-log/README.md | 61 +++++++
.../pom.xml | 10 +-
.../quickstart/karaf/OrderGenerator.java | 0
.../OSGI-INF/blueprint/camel-log.xml | 0
.../assembly/etc/org.ops4j.pax.logging.cfg | 0
.../src/main/resources/data/order1.xml | 0
.../src/main/resources/data/order2.xml | 0
.../src/main/resources/data/order3.xml | 0
.../src/main/resources/data/order4.xml | 0
.../src/main/resources/data/order5.xml | 0
.../README.md | 4 +-
quickstarts/maven/karaf-camel-3-log/pom.xml | 164 ++++++++++++++++++
.../quickstart/karaf/OrderGenerator.java | 34 ++++
.../OSGI-INF/blueprint/camel-log.xml | 72 ++++++++
.../assembly/etc/org.ops4j.pax.logging.cfg | 34 ++++
.../src/main/resources/data/order1.xml | 41 +++++
.../src/main/resources/data/order2.xml | 41 +++++
.../src/main/resources/data/order3.xml | 41 +++++
.../src/main/resources/data/order4.xml | 41 +++++
.../src/main/resources/data/order5.xml | 41 +++++
20 files changed, 577 insertions(+), 7 deletions(-)
create mode 100644 quickstarts/maven/karaf-camel-2-log/README.md
rename quickstarts/maven/{karaf-camel-log => karaf-camel-2-log}/pom.xml (93%)
rename quickstarts/maven/{karaf-camel-log => karaf-camel-2-log}/src/main/java/org/eclipse/jkube/quickstart/karaf/OrderGenerator.java (100%)
rename quickstarts/maven/{karaf-camel-log => karaf-camel-2-log}/src/main/resources/OSGI-INF/blueprint/camel-log.xml (100%)
rename quickstarts/maven/{karaf-camel-log => karaf-camel-2-log}/src/main/resources/assembly/etc/org.ops4j.pax.logging.cfg (100%)
rename quickstarts/maven/{karaf-camel-log => karaf-camel-2-log}/src/main/resources/data/order1.xml (100%)
rename quickstarts/maven/{karaf-camel-log => karaf-camel-2-log}/src/main/resources/data/order2.xml (100%)
rename quickstarts/maven/{karaf-camel-log => karaf-camel-2-log}/src/main/resources/data/order3.xml (100%)
rename quickstarts/maven/{karaf-camel-log => karaf-camel-2-log}/src/main/resources/data/order4.xml (100%)
rename quickstarts/maven/{karaf-camel-log => karaf-camel-2-log}/src/main/resources/data/order5.xml (100%)
rename quickstarts/maven/{karaf-camel-log => karaf-camel-3-log}/README.md (93%)
create mode 100644 quickstarts/maven/karaf-camel-3-log/pom.xml
create mode 100644 quickstarts/maven/karaf-camel-3-log/src/main/java/org/eclipse/jkube/quickstart/karaf/OrderGenerator.java
create mode 100644 quickstarts/maven/karaf-camel-3-log/src/main/resources/OSGI-INF/blueprint/camel-log.xml
create mode 100644 quickstarts/maven/karaf-camel-3-log/src/main/resources/assembly/etc/org.ops4j.pax.logging.cfg
create mode 100644 quickstarts/maven/karaf-camel-3-log/src/main/resources/data/order1.xml
create mode 100644 quickstarts/maven/karaf-camel-3-log/src/main/resources/data/order2.xml
create mode 100644 quickstarts/maven/karaf-camel-3-log/src/main/resources/data/order3.xml
create mode 100644 quickstarts/maven/karaf-camel-3-log/src/main/resources/data/order4.xml
create mode 100644 quickstarts/maven/karaf-camel-3-log/src/main/resources/data/order5.xml
diff --git a/quickstarts/maven/karaf-camel-2-log/README.md b/quickstarts/maven/karaf-camel-2-log/README.md
new file mode 100644
index 0000000000..679b4fd194
--- /dev/null
+++ b/quickstarts/maven/karaf-camel-2-log/README.md
@@ -0,0 +1,61 @@
+---
+name: "Maven :: Karaf Camel 2 Log"
+description: |
+ Simple Apache Camel 2 application on top of Apache Karaf that logs a series of messages to the Server log.
+ The application also generates and processes random orders using Camel routes.
+---
+# Eclipse JKube Karaf Quickstart - Camel Log
+
+This quickstart shows a simple Apache Camel 2 application that logs a series of messages to the Server log and
+generates and processes random orders.
+
+## Features
+
+### Camel Log
+
+A Camel route defined in [camel-log.xml](src/main/resources/OSGI-INF/blueprint/camel-log.xml) (``)
+will log some greeting messages to the Server log every second.
+
+The format and contents of the log messages is controlled in [org.ops4j.pax.logging.cfg
+](src/main/resources/assembly/etc/org.ops4j.pax.logging.cfg) (`log4j2.appender.hello.name=hello-stdout`).
+
+
+### Order generation and processing
+
+Two Camel route defined in [camel-log.xml](src/main/resources/OSGI-INF/blueprint/camel-log.xml)
+(`` & ``), generates and processes some fake orders
+every 5 seconds.
+- Orders will be generated in `${KARAF_HOME}/work/orders/input`
+- Orders will be processed and moved to `${KARAF_HOME}/work/orders/processed`
+- Both actions will be logged to the Server output using a different logger.
+
+
+## Building
+
+The quickstart can be built with `mvn clean install`.
+
+This will generate an Apache Karaf assembly ready to be deployed or run locally ( `./target/assembly/bin/karaf run`).
+
+## Deploying to Kubernetes
+
+Make sure you have access to a K8s cluster.
+
+Deploy the application:
+```
+mvn k8s:build k8s:resource k8s:apply
+```
+
+Once the process is finished, you can retrieve the logs with `mvn k8s:log`. This should print the log messages
+from the previously described Camel routes.
+
+## Deploying to OpenShift
+
+Make sure you have access to an OpenShift cluster.
+
+Deploy the application:
+```
+mvn oc:build oc:resource oc:apply
+```
+
+Once the process is finished, you can retrieve the logs with `mvn oc:log`. This should print the log messages
+from the previously described Camel routes.
diff --git a/quickstarts/maven/karaf-camel-log/pom.xml b/quickstarts/maven/karaf-camel-2-log/pom.xml
similarity index 93%
rename from quickstarts/maven/karaf-camel-log/pom.xml
rename to quickstarts/maven/karaf-camel-2-log/pom.xml
index 09ce9df463..7863dd1eda 100644
--- a/quickstarts/maven/karaf-camel-log/pom.xml
+++ b/quickstarts/maven/karaf-camel-2-log/pom.xml
@@ -19,13 +19,13 @@
4.0.0org.eclipse.jkube.quickstarts.maven
- karaf-camel-log
+ karaf-camel-2-log1.13.1bundle
- Eclipse JKube :: Quickstarts :: Maven :: Karaf Camel Log
+ Eclipse JKube :: Quickstarts :: Maven :: Karaf Camel 2 Log
- Simple Apache Camel application on top of Apache Karaf that logs a series of messages to the Server log.
+ Simple Apache Camel 2 application on top of Apache Karaf that logs a series of messages to the Server log.
The application also generates and processes random orders using Camel routes.
@@ -33,8 +33,8 @@
1111${project.version}
- 2.25.4
- 4.3.5
+ 2.25.4
+ 4.4.3
diff --git a/quickstarts/maven/karaf-camel-log/src/main/java/org/eclipse/jkube/quickstart/karaf/OrderGenerator.java b/quickstarts/maven/karaf-camel-2-log/src/main/java/org/eclipse/jkube/quickstart/karaf/OrderGenerator.java
similarity index 100%
rename from quickstarts/maven/karaf-camel-log/src/main/java/org/eclipse/jkube/quickstart/karaf/OrderGenerator.java
rename to quickstarts/maven/karaf-camel-2-log/src/main/java/org/eclipse/jkube/quickstart/karaf/OrderGenerator.java
diff --git a/quickstarts/maven/karaf-camel-log/src/main/resources/OSGI-INF/blueprint/camel-log.xml b/quickstarts/maven/karaf-camel-2-log/src/main/resources/OSGI-INF/blueprint/camel-log.xml
similarity index 100%
rename from quickstarts/maven/karaf-camel-log/src/main/resources/OSGI-INF/blueprint/camel-log.xml
rename to quickstarts/maven/karaf-camel-2-log/src/main/resources/OSGI-INF/blueprint/camel-log.xml
diff --git a/quickstarts/maven/karaf-camel-log/src/main/resources/assembly/etc/org.ops4j.pax.logging.cfg b/quickstarts/maven/karaf-camel-2-log/src/main/resources/assembly/etc/org.ops4j.pax.logging.cfg
similarity index 100%
rename from quickstarts/maven/karaf-camel-log/src/main/resources/assembly/etc/org.ops4j.pax.logging.cfg
rename to quickstarts/maven/karaf-camel-2-log/src/main/resources/assembly/etc/org.ops4j.pax.logging.cfg
diff --git a/quickstarts/maven/karaf-camel-log/src/main/resources/data/order1.xml b/quickstarts/maven/karaf-camel-2-log/src/main/resources/data/order1.xml
similarity index 100%
rename from quickstarts/maven/karaf-camel-log/src/main/resources/data/order1.xml
rename to quickstarts/maven/karaf-camel-2-log/src/main/resources/data/order1.xml
diff --git a/quickstarts/maven/karaf-camel-log/src/main/resources/data/order2.xml b/quickstarts/maven/karaf-camel-2-log/src/main/resources/data/order2.xml
similarity index 100%
rename from quickstarts/maven/karaf-camel-log/src/main/resources/data/order2.xml
rename to quickstarts/maven/karaf-camel-2-log/src/main/resources/data/order2.xml
diff --git a/quickstarts/maven/karaf-camel-log/src/main/resources/data/order3.xml b/quickstarts/maven/karaf-camel-2-log/src/main/resources/data/order3.xml
similarity index 100%
rename from quickstarts/maven/karaf-camel-log/src/main/resources/data/order3.xml
rename to quickstarts/maven/karaf-camel-2-log/src/main/resources/data/order3.xml
diff --git a/quickstarts/maven/karaf-camel-log/src/main/resources/data/order4.xml b/quickstarts/maven/karaf-camel-2-log/src/main/resources/data/order4.xml
similarity index 100%
rename from quickstarts/maven/karaf-camel-log/src/main/resources/data/order4.xml
rename to quickstarts/maven/karaf-camel-2-log/src/main/resources/data/order4.xml
diff --git a/quickstarts/maven/karaf-camel-log/src/main/resources/data/order5.xml b/quickstarts/maven/karaf-camel-2-log/src/main/resources/data/order5.xml
similarity index 100%
rename from quickstarts/maven/karaf-camel-log/src/main/resources/data/order5.xml
rename to quickstarts/maven/karaf-camel-2-log/src/main/resources/data/order5.xml
diff --git a/quickstarts/maven/karaf-camel-log/README.md b/quickstarts/maven/karaf-camel-3-log/README.md
similarity index 93%
rename from quickstarts/maven/karaf-camel-log/README.md
rename to quickstarts/maven/karaf-camel-3-log/README.md
index 07d561c2c2..fa6a1efbd1 100644
--- a/quickstarts/maven/karaf-camel-log/README.md
+++ b/quickstarts/maven/karaf-camel-3-log/README.md
@@ -1,12 +1,12 @@
---
-name: "Maven :: Karaf Camel Log"
+name: "Maven :: Karaf Camel 3 Log"
description: |
Simple Apache Camel application on top of Apache Karaf that logs a series of messages to the Server log.
The application also generates and processes random orders using Camel routes.
---
# Eclipse JKube Karaf Quickstart - Camel Log
-This quickstart shows a simple Apache Camel application that logs a series of messages to the Server log and
+This quickstart shows a simple Apache Camel 3 application that logs a series of messages to the Server log and
generates and processes random orders.
## Features
diff --git a/quickstarts/maven/karaf-camel-3-log/pom.xml b/quickstarts/maven/karaf-camel-3-log/pom.xml
new file mode 100644
index 0000000000..23b0c35681
--- /dev/null
+++ b/quickstarts/maven/karaf-camel-3-log/pom.xml
@@ -0,0 +1,164 @@
+
+
+
+ 4.0.0
+
+ org.eclipse.jkube.quickstarts.maven
+ karaf-camel-3-log
+ 1.13.1
+ bundle
+ Eclipse JKube :: Quickstarts :: Maven :: Karaf Camel 3 Log
+
+
+ Simple Apache Camel 3 application on top of Apache Karaf that logs a series of messages to the Server log.
+ The application also generates and processes random orders using Camel routes.
+
+
+
+ 11
+ 11
+ ${project.version}
+ 3.21.0
+ 4.4.3
+
+
+
+
+ org.apache.camel.karaf
+ apache-camel
+ ${camel.version}
+ features
+ xml
+
+
+ org.apache.camel.karaf
+ camel-core-osgi
+ ${camel.version}
+
+
+ org.apache.karaf.features
+ framework
+ ${karaf.version}
+ kar
+
+
+ org.apache.karaf.features
+ framework
+ ${karaf.version}
+ features
+ xml
+ runtime
+
+
+ org.apache.karaf.features
+ standard
+ ${karaf.version}
+ features
+ xml
+
+
+
+
+
+
+ src/main/resources
+ true
+
+
+
+
+ org.apache.felix
+ maven-bundle-plugin
+ true
+
+
+
+ *
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-install-plugin
+
+
+ default-install
+
+ install
+
+ install
+
+
+
+
+ org.apache.karaf.tooling
+ karaf-maven-plugin
+ ${karaf.version}
+ true
+
+
+ karaf-assembly
+
+ assembly
+
+ install
+
+
+
+ 11
+ framework
+ true
+ false
+ false
+
+ framework
+ jaas
+ log
+ shell
+ bundle
+ feature
+ system
+ scr
+ management
+ identity
+ aries-blueprint
+ camel-core
+ camel-blueprint
+
+
+ mvn:${project.groupId}/${project.artifactId}/${project.version};start-level=80
+
+
+
+
+ org.eclipse.jkube
+ kubernetes-maven-plugin
+ ${jkube.version}
+
+
+ org.eclipse.jkube
+ openshift-maven-plugin
+ ${jkube.version}
+
+
+
+
+
diff --git a/quickstarts/maven/karaf-camel-3-log/src/main/java/org/eclipse/jkube/quickstart/karaf/OrderGenerator.java b/quickstarts/maven/karaf-camel-3-log/src/main/java/org/eclipse/jkube/quickstart/karaf/OrderGenerator.java
new file mode 100644
index 0000000000..29b4c0dc2f
--- /dev/null
+++ b/quickstarts/maven/karaf-camel-3-log/src/main/java/org/eclipse/jkube/quickstart/karaf/OrderGenerator.java
@@ -0,0 +1,34 @@
+/*
+ * Copyright (c) 2019 Red Hat, Inc.
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at:
+ *
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ */
+package org.eclipse.jkube.quickstart.karaf;
+
+import org.apache.camel.CamelContext;
+
+import java.io.InputStream;
+import java.util.Random;
+
+public class OrderGenerator {
+ private int count = 1;
+ private Random random = new Random();
+
+ public InputStream generateOrder(CamelContext camelContext) {
+ final int number = random.nextInt(5) + 1;
+ final String orderSource = String.format("data/order%s.xml", number);
+ return camelContext.getClassResolver().loadResourceAsStream(orderSource);
+ }
+
+ public String generateFileName() {
+ return String.format("order%s.xml", count++);
+ }
+}
diff --git a/quickstarts/maven/karaf-camel-3-log/src/main/resources/OSGI-INF/blueprint/camel-log.xml b/quickstarts/maven/karaf-camel-3-log/src/main/resources/OSGI-INF/blueprint/camel-log.xml
new file mode 100644
index 0000000000..a7b0b7f06c
--- /dev/null
+++ b/quickstarts/maven/karaf-camel-3-log/src/main/resources/OSGI-INF/blueprint/camel-log.xml
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Hello from Camel!
+
+
+
+
+
+
diff --git a/quickstarts/maven/karaf-camel-3-log/src/main/resources/assembly/etc/org.ops4j.pax.logging.cfg b/quickstarts/maven/karaf-camel-3-log/src/main/resources/assembly/etc/org.ops4j.pax.logging.cfg
new file mode 100644
index 0000000000..e04c936fa2
--- /dev/null
+++ b/quickstarts/maven/karaf-camel-3-log/src/main/resources/assembly/etc/org.ops4j.pax.logging.cfg
@@ -0,0 +1,34 @@
+#
+# Copyright (c) 2019 Red Hat, Inc.
+# This program and the accompanying materials are made
+# available under the terms of the Eclipse Public License 2.0
+# which is available at:
+#
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+# Red Hat, Inc. - initial API and implementation
+#
+
+log4j2.rootLogger.level=WARN
+log4j2.rootLogger.appenderRef.Console.ref=global-stdout
+
+log4j2.logger.jkube.name=org.eclipse.jkube.quickstart.karaf
+log4j2.logger.jkube.level=INFO
+
+log4j2.logger.jkube-hello.name=org.eclipse.jkube.quickstart.karaf.hello
+log4j2.logger.jkube-hello.level=INFO
+log4j2.logger.jkube-hello.additivity=false
+log4j2.logger.jkube-hello.appenderRef.hello.ref=hello-stdout
+
+log4j2.appender.console.name=global-stdout
+log4j2.appender.console.type=Console
+log4j2.appender.console.layout.type=PatternLayout
+log4j2.appender.console.layout.pattern=%d{ISO8601} | %-5.5p | %-16.16t | %-32.32c{1} | %X{bundle.id} - %X{bundle.name} - %X{bundle.version} | %m%n
+
+log4j2.appender.hello.name=hello-stdout
+log4j2.appender.hello.type=Console
+log4j2.appender.hello.layout.type=PatternLayout
+log4j2.appender.hello.layout.pattern=>>> %highlight{%m}%n
diff --git a/quickstarts/maven/karaf-camel-3-log/src/main/resources/data/order1.xml b/quickstarts/maven/karaf-camel-3-log/src/main/resources/data/order1.xml
new file mode 100644
index 0000000000..1bd608c1f7
--- /dev/null
+++ b/quickstarts/maven/karaf-camel-3-log/src/main/resources/data/order1.xml
@@ -0,0 +1,41 @@
+
+
+
+
+
+ Antwerp Zoo
+ Antwerp
+ BE
+
+
+ 1985-10-25
+
+
+
+
+ Bactrian Camel
+
+ 1
+
+
+
+ Dromedary (Arabian Camel)
+
+ 10
+
+
+
diff --git a/quickstarts/maven/karaf-camel-3-log/src/main/resources/data/order2.xml b/quickstarts/maven/karaf-camel-3-log/src/main/resources/data/order2.xml
new file mode 100644
index 0000000000..f1745418e9
--- /dev/null
+++ b/quickstarts/maven/karaf-camel-3-log/src/main/resources/data/order2.xml
@@ -0,0 +1,41 @@
+
+
+
+
+
+ Bristol Zoo Gardens
+ Bristol
+ UK
+
+
+ 2015-10-21
+
+
+
+
+ Wild bactrian camel
+
+ 2
+
+
+
+ Camel
+
+ 200
+
+
+
diff --git a/quickstarts/maven/karaf-camel-3-log/src/main/resources/data/order3.xml b/quickstarts/maven/karaf-camel-3-log/src/main/resources/data/order3.xml
new file mode 100644
index 0000000000..8f8d895431
--- /dev/null
+++ b/quickstarts/maven/karaf-camel-3-log/src/main/resources/data/order3.xml
@@ -0,0 +1,41 @@
+
+
+
+
+
+ Columbus Zoo and Aquarium
+ Columbus
+ US
+
+
+ 1955-11-05
+
+
+
+
+ Camel
+
+ 100
+
+
+
+ Llama
+
+ 1
+
+
+
diff --git a/quickstarts/maven/karaf-camel-3-log/src/main/resources/data/order4.xml b/quickstarts/maven/karaf-camel-3-log/src/main/resources/data/order4.xml
new file mode 100644
index 0000000000..d7cc6e37d4
--- /dev/null
+++ b/quickstarts/maven/karaf-camel-3-log/src/main/resources/data/order4.xml
@@ -0,0 +1,41 @@
+
+
+
+
+
+ Dartmoor Zoological Park
+ Devon
+ UK
+
+
+ 1985-10-26
+
+
+
+
+ Horse
+
+ 1
+
+
+
+ Camel
+
+ 337
+
+
+
diff --git a/quickstarts/maven/karaf-camel-3-log/src/main/resources/data/order5.xml b/quickstarts/maven/karaf-camel-3-log/src/main/resources/data/order5.xml
new file mode 100644
index 0000000000..2cd7754170
--- /dev/null
+++ b/quickstarts/maven/karaf-camel-3-log/src/main/resources/data/order5.xml
@@ -0,0 +1,41 @@
+
+
+
+
+
+ Erie Zoo
+ Erie
+ US
+
+
+ 1955-11-12
+
+
+
+
+ Dromedary (Arabian Camel)
+
+ 13
+
+
+
+ Camel
+
+ 37
+
+
+
From 5a9b0ff5b243dd2d9fa1a9de921c35cfe7b70ffd Mon Sep 17 00:00:00 2001
From: Marc Nuri
Date: Mon, 17 Jul 2023 12:46:00 +0200
Subject: [PATCH 37/65] feat: MappingConfig supports defining apiVersion
Signed-off-by: Marc Nuri
---
.../it/fragments-custom-mapping/build.gradle | 5 +
.../expected/kubernetes.yml | 18 ++++
.../expected/openshift.yml | 18 ++++
.../src/main/jkube/first-fl.yaml | 0
.../src/main/jkube/full.yaml | 2 +
.../kit/config/resource/MappingConfig.java | 4 +-
.../config/resource/MappingConfigTest.java | 36 ++++++-
.../src/test/resources/mapping-config.json | 3 +-
.../api/util/KubernetesResourceFragments.java | 95 +++++++++----------
.../util/KubernetesResourceFragmentsTest.java | 66 +++++++++----
.../custom2.yaml | 17 ++++
.../custom3.yaml | 17 ++++
.../hello-c1.yaml | 16 ++++
.../hello-c3.yaml | 13 +++
.../provided-api-version-c2.yaml | 16 ++++
.../generic/DependencyEnricherTest.java | 2 -
.../service/DefaultResourceService.java | 2 -
17 files changed, 249 insertions(+), 81 deletions(-)
create mode 100644 gradle-plugin/it/src/it/fragments-custom-mapping/src/main/jkube/first-fl.yaml
create mode 100644 gradle-plugin/it/src/it/fragments-custom-mapping/src/main/jkube/full.yaml
create mode 100644 jkube-kit/enricher/api/src/test/resources/kubernetes-resource-fragments/complete-directory-custom-mappings/custom2.yaml
create mode 100644 jkube-kit/enricher/api/src/test/resources/kubernetes-resource-fragments/complete-directory-custom-mappings/custom3.yaml
create mode 100644 jkube-kit/enricher/api/src/test/resources/kubernetes-resource-fragments/complete-directory-custom-mappings/hello-c1.yaml
create mode 100644 jkube-kit/enricher/api/src/test/resources/kubernetes-resource-fragments/complete-directory-custom-mappings/hello-c3.yaml
create mode 100644 jkube-kit/enricher/api/src/test/resources/kubernetes-resource-fragments/complete-directory-custom-mappings/provided-api-version-c2.yaml
diff --git a/gradle-plugin/it/src/it/fragments-custom-mapping/build.gradle b/gradle-plugin/it/src/it/fragments-custom-mapping/build.gradle
index c006d27f08..4a24a50e30 100644
--- a/gradle-plugin/it/src/it/fragments-custom-mapping/build.gradle
+++ b/gradle-plugin/it/src/it/fragments-custom-mapping/build.gradle
@@ -19,6 +19,11 @@ def extensionConfig = {
kind = 'Template'
filenameTypes = 'my_template, mtpl'
}
+ mapping {
+ kind = 'Full'
+ apiVersion = 'full.example.com/v1'
+ filenameTypes = 'full, fl'
+ }
}
images {
image {
diff --git a/gradle-plugin/it/src/it/fragments-custom-mapping/expected/kubernetes.yml b/gradle-plugin/it/src/it/fragments-custom-mapping/expected/kubernetes.yml
index 678cff76c7..e40e9878df 100644
--- a/gradle-plugin/it/src/it/fragments-custom-mapping/expected/kubernetes.yml
+++ b/gradle-plugin/it/src/it/fragments-custom-mapping/expected/kubernetes.yml
@@ -51,6 +51,15 @@ items:
name: repository-fragments-custom-mapping
securityContext:
privileged: false
+ - apiVersion: full.example.com/v1
+ kind: Full
+ metadata:
+ labels:
+ app: fragments-custom-mapping
+ provider: jkube
+ version: "@ignore@"
+ group: org.eclipse.jkube.integration.tests.gradle
+ name: first
- apiVersion: my.unique.crd/v1alfa1
kind: Template
metadata:
@@ -60,6 +69,15 @@ items:
version: "@ignore@"
group: org.eclipse.jkube.integration.tests.gradle
name: first
+ - apiVersion: full.example.com/v1
+ kind: Full
+ metadata:
+ labels:
+ app: fragments-custom-mapping
+ provider: jkube
+ version: "@ignore@"
+ group: org.eclipse.jkube.integration.tests.gradle
+ name: second
- apiVersion: my.unique.crd/v1alfa1
kind: Template
metadata:
diff --git a/gradle-plugin/it/src/it/fragments-custom-mapping/expected/openshift.yml b/gradle-plugin/it/src/it/fragments-custom-mapping/expected/openshift.yml
index d9df0755d2..ee8fc5b320 100644
--- a/gradle-plugin/it/src/it/fragments-custom-mapping/expected/openshift.yml
+++ b/gradle-plugin/it/src/it/fragments-custom-mapping/expected/openshift.yml
@@ -62,6 +62,15 @@ items:
kind: ImageStreamTag
name: fragments-custom-mapping:latest
type: ImageChange
+ - apiVersion: full.example.com/v1
+ kind: Full
+ metadata:
+ labels:
+ app: fragments-custom-mapping
+ provider: jkube
+ version: "@ignore@"
+ group: org.eclipse.jkube.integration.tests.gradle
+ name: first
- apiVersion: my.unique.crd/v1alfa1
kind: Template
metadata:
@@ -71,6 +80,15 @@ items:
version: "@ignore@"
group: org.eclipse.jkube.integration.tests.gradle
name: first
+ - apiVersion: full.example.com/v1
+ kind: Full
+ metadata:
+ labels:
+ app: fragments-custom-mapping
+ provider: jkube
+ version: "@ignore@"
+ group: org.eclipse.jkube.integration.tests.gradle
+ name: second
- apiVersion: my.unique.crd/v1alfa1
kind: Template
metadata:
diff --git a/gradle-plugin/it/src/it/fragments-custom-mapping/src/main/jkube/first-fl.yaml b/gradle-plugin/it/src/it/fragments-custom-mapping/src/main/jkube/first-fl.yaml
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/gradle-plugin/it/src/it/fragments-custom-mapping/src/main/jkube/full.yaml b/gradle-plugin/it/src/it/fragments-custom-mapping/src/main/jkube/full.yaml
new file mode 100644
index 0000000000..c1412a4f88
--- /dev/null
+++ b/gradle-plugin/it/src/it/fragments-custom-mapping/src/main/jkube/full.yaml
@@ -0,0 +1,2 @@
+metadata:
+ name: second
diff --git a/jkube-kit/config/resource/src/main/java/org/eclipse/jkube/kit/config/resource/MappingConfig.java b/jkube-kit/config/resource/src/main/java/org/eclipse/jkube/kit/config/resource/MappingConfig.java
index 8d2b4a6f31..933ae66d0c 100644
--- a/jkube-kit/config/resource/src/main/java/org/eclipse/jkube/kit/config/resource/MappingConfig.java
+++ b/jkube-kit/config/resource/src/main/java/org/eclipse/jkube/kit/config/resource/MappingConfig.java
@@ -27,7 +27,7 @@
public class MappingConfig {
private String kind;
-
+ private String apiVersion;
private String filenameTypes;
public String[] getFilenamesAsArray() {
@@ -38,6 +38,6 @@ public String[] getFilenamesAsArray() {
}
public boolean isValid() {
- return kind != null && filenameTypes != null && filenameTypes.length() > 0;
+ return kind != null && filenameTypes != null && filenameTypes.length() > 0;
}
}
diff --git a/jkube-kit/config/resource/src/test/java/org/eclipse/jkube/kit/config/resource/MappingConfigTest.java b/jkube-kit/config/resource/src/test/java/org/eclipse/jkube/kit/config/resource/MappingConfigTest.java
index 21e61070c1..2d5409d0c9 100644
--- a/jkube-kit/config/resource/src/test/java/org/eclipse/jkube/kit/config/resource/MappingConfigTest.java
+++ b/jkube-kit/config/resource/src/test/java/org/eclipse/jkube/kit/config/resource/MappingConfigTest.java
@@ -32,6 +32,7 @@ void rawDeserialization() throws IOException {
// Then
assertThat(result)
.hasFieldOrPropertyWithValue("kind", "CronTab")
+ .hasFieldOrPropertyWithValue("apiVersion", "custom-cron-tab.example.com/v1")
.hasFieldOrPropertyWithValue("filenameTypes", "crontab,cr");
}
@@ -54,29 +55,54 @@ void getFilenamesAsArray_whenTypesPresent_thenReturnsArray() {
}
@Test
- void isValid_withInvalidObject_shouldReturnFalse() {
+ void isValid_withMissingKind_shouldReturnFalse() {
// Given
MappingConfig config = MappingConfig.builder()
- .build();
-
+ .apiVersion("custom-cron-tab.example.com/v1")
+ .filenameTypes("crontab,cr")
+ .build();
// When
boolean result = config.isValid();
+ // Then
+ assertThat(result).isFalse();
+ }
+ @Test
+ void isValid_withMissingFileNameTypes_shouldReturnFalse() {
+ // Given
+ MappingConfig config = MappingConfig.builder()
+ .apiVersion("custom-cron-tab.example.com/v1")
+ .kind("Foo")
+ .build();
+ // When
+ boolean result = config.isValid();
// Then
assertThat(result).isFalse();
}
@Test
- void isValid_withValidObject_shouldReturnTrue() {
+ void isValid_withKindAndFileName_shouldReturnTrue() {
// Given
MappingConfig config = MappingConfig.builder()
.kind("Foo")
.filenameTypes("foos")
.build();
-
// When
boolean result = config.isValid();
+ // Then
+ assertThat(result).isTrue();
+ }
+ @Test
+ void isValid_withKindAndApiVersionAndFileName_shouldReturnTrue() {
+ // Given
+ MappingConfig config = MappingConfig.builder()
+ .kind("Foo")
+ .apiVersion("custom-cron-tab.example.com/v1")
+ .filenameTypes("foos")
+ .build();
+ // When
+ boolean result = config.isValid();
// Then
assertThat(result).isTrue();
}
diff --git a/jkube-kit/config/resource/src/test/resources/mapping-config.json b/jkube-kit/config/resource/src/test/resources/mapping-config.json
index 38d8102971..ce1d09d3b0 100644
--- a/jkube-kit/config/resource/src/test/resources/mapping-config.json
+++ b/jkube-kit/config/resource/src/test/resources/mapping-config.json
@@ -1,4 +1,5 @@
{
"kind": "CronTab",
+ "apiVersion": "custom-cron-tab.example.com/v1",
"filenameTypes": "crontab,cr"
-}
\ No newline at end of file
+}
diff --git a/jkube-kit/enricher/api/src/main/java/org/eclipse/jkube/kit/enricher/api/util/KubernetesResourceFragments.java b/jkube-kit/enricher/api/src/main/java/org/eclipse/jkube/kit/enricher/api/util/KubernetesResourceFragments.java
index 13b77da248..638147736f 100644
--- a/jkube-kit/enricher/api/src/main/java/org/eclipse/jkube/kit/enricher/api/util/KubernetesResourceFragments.java
+++ b/jkube-kit/enricher/api/src/main/java/org/eclipse/jkube/kit/enricher/api/util/KubernetesResourceFragments.java
@@ -20,11 +20,9 @@
import org.eclipse.jkube.kit.common.util.KindFilenameMapperUtil;
import org.eclipse.jkube.kit.common.util.Serialization;
import org.eclipse.jkube.kit.config.resource.MappingConfig;
-import org.eclipse.jkube.kit.config.resource.ResourceVersioning;
import java.io.File;
import java.io.IOException;
-import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
@@ -32,27 +30,39 @@
import java.util.Map;
import java.util.Optional;
import java.util.Set;
-import java.util.function.BiConsumer;
+import java.util.function.Consumer;
import java.util.regex.Matcher;
import static org.eclipse.jkube.kit.common.util.KubernetesHelper.FILENAME_PATTERN;
+import static org.eclipse.jkube.kit.enricher.api.util.KubernetesResourceUtil.DEFAULT_RESOURCE_VERSIONING;
public class KubernetesResourceFragments {
- private static final Map FILENAME_TO_KIND_MAPPER = new HashMap<>();
+ private static final Map FILENAME_TO_MAPPING_CONFIG_MAPPER = new HashMap<>();
private static final Map KIND_TO_FILENAME_MAPPER = new HashMap<>();
- private static final BiConsumer> KIND_FILENAME_MAPPER_UPDATER = (kind, fileNameTypes) -> {
+ private static final Consumer KIND_FILENAME_MAPPER_UPDATER = mappingConfig -> {
+ if (!mappingConfig.isValid()) {
+ throw new IllegalArgumentException(String.format("Invalid mapping for Kind %s and Filename Types %s",
+ mappingConfig.getKind(), mappingConfig.getFilenameTypes()));
+ }
+ final String[] fileNameTypes = mappingConfig.getFilenamesAsArray();
for (String filenameType : fileNameTypes) {
- FILENAME_TO_KIND_MAPPER.put(filenameType, kind);
+ FILENAME_TO_MAPPING_CONFIG_MAPPER.put(filenameType.toLowerCase(), mappingConfig);
}
// In previous version, last one wins, so we do the same.
- KIND_TO_FILENAME_MAPPER.put(kind, fileNameTypes.get(fileNameTypes.size() - 1));
+ KIND_TO_FILENAME_MAPPER.put(mappingConfig.getKind(), fileNameTypes[fileNameTypes.length- 1]);
};
static final Set EXCLUDED_RESOURCE_FILENAME_SUFFIXES = new HashSet<>();
static {
EXCLUDED_RESOURCE_FILENAME_SUFFIXES.add(".helm.yaml");
EXCLUDED_RESOURCE_FILENAME_SUFFIXES.add(".helm.yml");
- KindFilenameMapperUtil.loadMappings().forEach(KIND_FILENAME_MAPPER_UPDATER);
+ KindFilenameMapperUtil.loadMappings()
+ .entrySet().stream()
+ .map(mc -> MappingConfig.builder()
+ .kind(mc.getKey())
+ .filenameTypes(String.join(",", mc.getValue()))
+ .build())
+ .forEach(KIND_FILENAME_MAPPER_UPDATER);
}
private KubernetesResourceFragments() {
@@ -64,16 +74,7 @@ private KubernetesResourceFragments() {
*/
public static void updateKindFilenameMappings(List mappings) {
if (mappings != null) {
- final Map> mappingKindFilename = new HashMap<>();
- for (MappingConfig mappingConfig : mappings) {
- if (mappingConfig.isValid()) {
- mappingKindFilename.put(mappingConfig.getKind(), Arrays.asList(mappingConfig.getFilenamesAsArray()));
- } else {
- throw new IllegalArgumentException(String.format("Invalid mapping for Kind %s and Filename Types %s",
- mappingConfig.getKind(), mappingConfig.getFilenameTypes()));
- }
- }
- mappingKindFilename.forEach(KIND_FILENAME_MAPPER_UPDATER);
+ mappings.forEach(KIND_FILENAME_MAPPER_UPDATER);
}
}
@@ -82,27 +83,22 @@ public static String getNameWithSuffix(String name, String kind) {
return String.format("%s-%s", name.replace(".", "_"), suffix != null ? suffix : "cr");
}
-
/**
* Read all Kubernetes resource fragments from a directory and create a {@link KubernetesListBuilder} which
* can be adapted later.
*
- * @param apiVersions the api versions to use
* @param defaultName the default name to use when none is given
* @param resourceFiles files to add.
* @return the list builder
* @throws IOException in case file is not found
*/
- public static KubernetesListBuilder readResourceFragmentsFrom(
- ResourceVersioning apiVersions, String defaultName, File... resourceFiles)
- throws IOException {
-
+ public static KubernetesListBuilder readResourceFragmentsFrom(String defaultName, File... resourceFiles) throws IOException {
final KubernetesListBuilder builder = new KubernetesListBuilder();
if (resourceFiles != null) {
for (File file : resourceFiles) {
if (EXCLUDED_RESOURCE_FILENAME_SUFFIXES.stream()
.noneMatch(s -> file.getName().toLowerCase(Locale.ROOT).endsWith(s))) {
- builder.addToItems(getResource(apiVersions, file, defaultName));
+ builder.addToItems(getResource(file, defaultName));
}
}
}
@@ -119,15 +115,20 @@ public static KubernetesListBuilder readResourceFragmentsFrom(
*
apiVersion - API version (given as parameter to this method)
*
*
- * @param apiVersions the API versions to add if not given.
* @param file file to read.
* @param appName resource name specifying resources belonging to this application
* @return HasMetadata object for resource
* @throws IOException in case file loading is failed
*/
- private static HasMetadata getResource(
- ResourceVersioning apiVersions, File file, String appName) throws IOException {
- final Map fragment = readAndEnrichFragment(apiVersions, file, appName);
+ private static HasMetadata getResource(File file, String appName) throws IOException {
+ final Map fragment = Optional.ofNullable(Serialization.unmarshal(file, new TypeReference
-## Rebranding Notice :loudspeaker:
+## Contents
+- [Introduction](#introduction)
+ - [Kubernetes Maven Plugin](#kubernetes-maven-plugin)
+ - [Kubernetes Gradle Plugin](#kubernetes-gradle-plugin)
+ - [OpenShift Maven Plugin](#openshift-maven-plugin)
+ - [OpenShift Gradle Plugin](#openshift-gradle-plugin)
+- [Migrating from Fabric8 Maven Plugin to Kubernetes/OpenShift Maven Plugin](https://www.eclipse.org/jkube/docs/migration-guide)
+- [Getting Started](#getting-started)
+ - [Maven Quickstarts](./quickstarts/maven)
+ - [Gradle Quickstarts](./quickstarts/gradle)
+ - [Hello World using Eclipse JKube](#hello-world-using-eclipse-jkube)
+ - [Troubleshooting](#troubleshooting)
+- [Rebranding Notice](#rebranding-notice--loudspeaker-)
+- [Contributing](https://www.eclipse.org/jkube/contributing/)
+- [Add your organization to ADOPTERS](./ADOPTERS.md)
+- [FAQs](https://www.eclipse.org/jkube/docs/kubernetes-maven-plugin/#faq)
-This project is not an effort from scratch. It was earlier called
-[Fabric8 Maven Plugin](https://github.com/fabric8io/fabric8-maven-plugin).
-It is just refactored and rebranded version of the project targeted towards Java developers who are working on top of
-Kubernetes. For more information about history, please see [REBRANDING.md](./REBRANDING.md)
## Introduction
@@ -35,43 +46,81 @@ This project contains various building blocks for the Kubernetes Java developer
### Kubernetes Maven Plugin
-[![Maven Central](https://img.shields.io/maven-central/v/org.eclipse.jkube/kubernetes-maven-plugin.svg?label=Maven%20Central)](https://search.maven.org/search?q=g:%22org.eclipse.jkube%22%20AND%20a:%22kubernetes-maven-plugin%22)
-[![Documentation](https://img.shields.io/badge/plugin-documentation-lightgrey)](https://www.eclipse.org/jkube/docs/kubernetes-maven-plugin)
-
-[![Sample Demo KMP](./kubernetes-maven-plugin/kmp.png)](https://asciinema.org/a/335724)
+- [![Maven Central](https://img.shields.io/maven-central/v/org.eclipse.jkube/kubernetes-maven-plugin.svg?label=Maven%20Central)](https://search.maven.org/search?q=g:%22org.eclipse.jkube%22%20AND%20a:%22kubernetes-maven-plugin%22)
+- [![Documentation](https://img.shields.io/badge/plugin-documentation-lightgrey)](https://www.eclipse.org/jkube/docs/kubernetes-maven-plugin)
+- Add to project:
+ ```xml
+
+ org.eclipse.jkube
+ kubernetes-maven-plugin
+ ${jkube.version}
+
+ ```
+- Run the JKube commands, for instance:
+ ```shell
+ mvn package k8s:build k8s:push k8s:resource k8s:apply
+ ```
+- :tv: Watch 2-minute demo on YouTube:
+
+[![KubernetesMavenPluginDemo](https://img.youtube.com/vi/FHz5q8ERtPk/0.jpg)](https://youtu.be/FHz5q8ERtPk)
+
+
+### Kubernetes Gradle Plugin
+- [![Maven Central](https://img.shields.io/maven-central/v/org.eclipse.jkube.kubernetes/org.eclipse.jkube.kubernetes.gradle.plugin.svg?label=Maven%20Central)](https://search.maven.org/search?q=g:%22org.eclipse.jkube.kubernetes%22%20AND%20a:%22org.eclipse.jkube.kubernetes.gradle.plugin%22)
+- [![Documentation](https://img.shields.io/badge/plugin-documentation-lightgrey)](https://www.eclipse.org/jkube/docs/kubernetes-gradle-plugin/)
+- Add to project:
+ ```groovy
+ plugins {
+ id "org.eclipse.jkube.kubernetes" version "${jKubeVersion}"
+ }
+ ```
+- Run the JKube commands, for instance:
+ ```shell
+ gradle build k8sBuild k8sPush k8sResource k8sApply
+ ```
+- :tv: Watch 2-minute demo on YouTube:
+
+[![KubernetesGradlePluginDemo](https://img.youtube.com/vi/TUYl2Vw8bnQ/0.jpg)](https://youtu.be/TUYl2Vw8bnQ)
+
+### OpenShift Gradle Plugin
+- [![Maven Central](https://img.shields.io/maven-central/v/org.eclipse.jkube.openshift/org.eclipse.jkube.openshift.gradle.plugin.svg?label=Maven%20Central)](https://search.maven.org/search?q=g:%22org.eclipse.jkube.openshift%22%20AND%20a:%22org.eclipse.jkube.openshift.gradle.plugin%22)
+- [![Documentation](https://img.shields.io/badge/plugin-documentation-lightgrey)](https://www.eclipse.org/jkube/docs/openshift-gradle-plugin/)
+- Add to project:
+ ```groovy
+ plugins {
+ id "org.eclipse.jkube.openshift" version "${jKubeVersion}"
+ }
+ ```
+- Run the JKube commands, for instance:
+ ```shell
+ gradle build ocBuild ocResource ocApply
+ ```
+- :tv: Watch 2-minute demo on YouTube:
+
+[![OpenShiftGradlePluginDemo](https://img.youtube.com/vi/uMxEzLdqcik/0.jpg)](https://youtu.be/uMxEzLdqcik)
### OpenShift Maven Plugin
-[![Maven Central](https://img.shields.io/maven-central/v/org.eclipse.jkube/openshift-maven-plugin.svg?label=Maven%20Central)](https://search.maven.org/search?q=g:%22org.eclipse.jkube%22%20AND%20a:%22openshift-maven-plugin%22)
-[![Documentation](https://img.shields.io/badge/plugin-documentation-lightgrey)](https://www.eclipse.org/jkube/docs/openshift-maven-plugin)
-
-[![Sample Demo OMP](./openshift-maven-plugin/omp.png)](https://asciinema.org/a/335743)
-
-### JKube Kit
-
-JKube Kit is the core engine powering our Maven plugins.
-
-The main difference between Fabric8 Maven Plugin and JKube is the extraction and decoupling of the core components from
-Maven. This enables other projects and frameworks to reuse all of JKube's functionality by exposing it through a public API.
+- [![Maven Central](https://img.shields.io/maven-central/v/org.eclipse.jkube/openshift-maven-plugin.svg?label=Maven%20Central)](https://search.maven.org/search?q=g:%22org.eclipse.jkube%22%20AND%20a:%22openshift-maven-plugin%22)
+- [![Documentation](https://img.shields.io/badge/plugin-documentation-lightgrey)](https://www.eclipse.org/jkube/docs/openshift-maven-plugin)
+- Add to project:
+ ```xml
+
+ org.eclipse.jkube
+ openshift-maven-plugin
+ ${jkube.version}
+
+ ```
+- Run the JKube commands, for instance:
+ ```shell
+ mvn package oc:build oc:resource oc:apply
+ ```
+- :tv: Watch 2-minute demo on YouTube:
+
+[![OpenShiftMavenPluginDemo](https://img.youtube.com/vi/ZJzfD-bDxpc/0.jpg)](https://youtu.be/ZJzfD-bDxpc)
- * **Generator** framework for automatically generating Docker images by examining project information.
- [![Maven Central](https://img.shields.io/maven-central/v/org.eclipse.jkube/jkube-kit-generator-api.svg?label=Maven%20Central)](https://search.maven.org/search?q=g:%22org.eclipse.jkube%22%20AND%20a:%22jkube-kit-generator-api%22) [![Javadocs](http://www.javadoc.io/badge/org.eclipse.jkube/jkube-kit-generator-api.svg?color=blue)](http://www.javadoc.io/doc/org.eclipse.jkube/jkube-kit-generator-api)
- * **Enricher** framework for creating and enhancing Kubernetes and OpenShift resources.
- [![Maven Central](https://img.shields.io/maven-central/v/org.eclipse.jkube/jkube-kit-enricher-api.svg?label=Maven%20Central)](https://search.maven.org/search?q=g:%22org.eclipse.jkube%22%20AND%20a:%22jkube-kit-enricher-api%22) [![Javadocs](http://www.javadoc.io/badge/org.eclipse.jkube/jkube-kit-enricher-api.svg?color=blue)](http://www.javadoc.io/doc/org.eclipse.jkube/jkube-kit-enricher-api)
- * **Profile** combining the configuration for generators and enrichers.
- [![Maven Central](https://img.shields.io/maven-central/v/org.eclipse.jkube/jkube-kit-profiles.svg?label=Maven%20Central)](https://search.maven.org/search?q=g:%22org.eclipse.jkube%22%20AND%20a:%22jkube-kit-profiles%22) [![Javadocs](http://www.javadoc.io/badge/org.eclipse.jkube/jkube-kit-profiles.svg?color=blue)](http://www.javadoc.io/doc/org.eclipse.jkube/jkube-kit-profiles)
- * **Resource configuration** model objects for a simplified configuration of Kubernetes and OpenShift resources.
- [![Maven Central](https://img.shields.io/maven-central/v/org.eclipse.jkube/jkube-kit-config-resource.svg?label=Maven%20Central)](https://search.maven.org/search?q=g:%22org.eclipse.jkube%22%20AND%20a:%22jkube-kit-config-resource%22) [![Javadocs](http://www.javadoc.io/badge/org.eclipse.jkube/jkube-kit-config-resource.svg?color=blue)](http://www.javadoc.io/doc/org.eclipse.jkube/jkube-kit-config-resource)
- * **Image configuration** model objects for modeling Docker image configuration as used in docker-maven-plugin.
- [![Maven Central](https://img.shields.io/maven-central/v/org.eclipse.jkube/jkube-kit-config-image.svg?label=Maven%20Central)](https://search.maven.org/search?q=g:%22org.eclipse.jkube%22%20AND%20a:%22jkube-kit-config-image%22) [![Javadocs](http://www.javadoc.io/badge/org.eclipse.jkube/jkube-kit-config-image.svg?color=blue)](http://www.javadoc.io/doc/org.eclipse.jkube/jkube-kit-config-image)
-
-Some thin adapter Maven specific modules like [jkube-kit-enricher-maven](enricher/maven/pom.xml) and
-[jkube-kit-generator-maven](generator/maven/pom.xml) are provided as glue to get to the Maven specific build information
- like the project's coordinates.
## Getting started
-
-Check out our [Maven quickstarts](https://github.com/eclipse/jkube/tree/master/quickstarts/maven) to see how JKube fits
-with the Java framework of your choice.https://github.com/eclipse/jkube/tree/master/quickstarts/maven
+You can take a look at our quickstarts in [quickstarts](./quickstarts) directory that contain sample maven and gradle projects using the latest version of jkube plugin.
### Hello World using Eclipse JKube
@@ -107,7 +156,7 @@ $ mvn k8s:log
[INFO] k8s: [NEW] helloworld-7c4665f464-xwskj status: Running
```
-## Troubleshooting
+#### Troubleshooting
If you experience problems using minikube that pod's status shows 'ImagePullBackOff' and not 'Completed' you must share the minikube's docker daemon environment with your shell with:
```shell script
@@ -119,3 +168,11 @@ $ eval $(minikube docker-env -u)
````
If you don't want to type the command for every new terminal you open, you can add the command to your `.bash_profile`
on mac or `.zshrc`.
+
+## Rebranding Notice :loudspeaker:
+
+This project is not an effort from scratch. It was earlier called
+[Fabric8 Maven Plugin](https://github.com/fabric8io/fabric8-maven-plugin).
+It is just refactored and rebranded version of the project targeted towards Java developers who are working on top of
+Kubernetes. For more information about history, please see [REBRANDING.md](./REBRANDING.md)
+
diff --git a/jkube-kit/README.md b/jkube-kit/README.md
index 238ffa85f4..0b4a516be4 100644
--- a/jkube-kit/README.md
+++ b/jkube-kit/README.md
@@ -1,5 +1,13 @@
## JKube-Kit
+JKube Kit is the core engine powering our Maven plugins.
+
+The main difference between Fabric8 Maven Plugin and JKube is the extraction and decoupling of the core components from
+Maven. This enables other projects and frameworks to reuse all of JKube's functionality by exposing it through a public API.
+
+Some thin adapter Maven specific modules like [jkube-kit-enricher-maven](enricher/maven/pom.xml) and
+[jkube-kit-generator-maven](generator/maven/pom.xml) are provided as glue to get to the Maven specific build information
+like the project's coordinates.
This project contains various building blocks for the JKube developer toolbox.
Actually it contains the following abstractions which has been extracted from both projects:
From bb8e9358f6b996b22efe7073b6774411e9081455 Mon Sep 17 00:00:00 2001
From: Marc Nuri
Date: Mon, 17 Jul 2023 15:52:28 +0200
Subject: [PATCH 39/65] doc: documentation for Kind/Filename mapping with
apiVersion
Signed-off-by: Marc Nuri
---
CHANGELOG.md | 1 +
.../inc/_kind-filename-type-mapping.adoc | 29 ----------
.../asciidoc/inc/examples/_fragments.adoc | 2 +-
.../doc/src/main/asciidoc/index.adoc | 4 +-
.../asciidoc/inc/mapping-config/_index.adoc | 55 +++++++++++++++++++
.../doc/src/main/asciidoc/inc/_appendix.adoc | 33 -----------
.../src/main/asciidoc/inc/_introduction.adoc | 2 +-
.../doc/src/main/asciidoc/index.adoc | 5 +-
8 files changed, 62 insertions(+), 69 deletions(-)
delete mode 100644 gradle-plugin/doc/src/main/asciidoc/inc/_kind-filename-type-mapping.adoc
create mode 100644 jkube-kit/doc/src/main/asciidoc/inc/mapping-config/_index.adoc
delete mode 100644 kubernetes-maven-plugin/doc/src/main/asciidoc/inc/_appendix.adoc
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 21736adc46..74d8e6a857 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -26,6 +26,7 @@ Usage:
* Fix #1929: Docker Image Name parsing fix
* Fix #1985: Update outdated methods in Spring Boot CRD Maven Quickstart
* Fix #2116: Remove user field from ImageName class
+* Fix #2219: Kind/Filename mappings include optional apiVersion configuration
* Fix #2224: Quarkus native base image read from properties (configurable)
* Fix #2228: Quarkus native base image uses UBI 8.7
diff --git a/gradle-plugin/doc/src/main/asciidoc/inc/_kind-filename-type-mapping.adoc b/gradle-plugin/doc/src/main/asciidoc/inc/_kind-filename-type-mapping.adoc
deleted file mode 100644
index e5c44fa931..0000000000
--- a/gradle-plugin/doc/src/main/asciidoc/inc/_kind-filename-type-mapping.adoc
+++ /dev/null
@@ -1,29 +0,0 @@
-[[kind-filename-mapping]]
-= Kind/Filename Mapping
-
-[[appendix-kind-mapping]]
-== Default Kind/Filename Mapping
-include::{plugindir}/src/main/resources/META-INF/jkube/kind-filename-type-mapping-default.adoc[]
-
-[[custom-kind-mapping]]
-== Custom Kind/Filename Mapping
-
-You can add your custom `Kind/Filename` mappings.
-To do it you have two approaches:
-
-* Setting an environment variable or system property called `jkube.mapping` pointing out to a `.properties` files with pairs `=>filename1>, `
-By default if no environment variable nor system property is set, scan for a file located at classpath `/META-INF/jkube.kind-filename-type-mapping-default.properties`.
-
-* By embedding in task configuration the mapping:
-
-[source,groovy,indent=0,subs="verbatim,quotes,attributes"]
-----
-kubernetes {
- mappings {
- mapping {
- kind = "Var"
- filenameTypes = "foo, bar"
- }
- }
-}
-----
\ No newline at end of file
diff --git a/gradle-plugin/doc/src/main/asciidoc/inc/examples/_fragments.adoc b/gradle-plugin/doc/src/main/asciidoc/inc/examples/_fragments.adoc
index aa5aa5edc5..a507dfc515 100644
--- a/gradle-plugin/doc/src/main/asciidoc/inc/examples/_fragments.adoc
+++ b/gradle-plugin/doc/src/main/asciidoc/inc/examples/_fragments.adoc
@@ -36,7 +36,7 @@ The resource fragments are in `src/main/jkube`.
As you can see, there is no `metadata` section as would be expected for Kubernetes resources because it will be automatically added by the `{plugin}`. The object's `Kind`, if not given, is automatically derived from the
filename. In this case, the `{plugin}` will create a `Deployment` because the file is called `deployment.yml`. Similar mappings between file names and resource type exist for each supported resource kind, the
-complete list of which (along with associated abbreviations) can be found in the <>.
+complete list of which (along with associated abbreviations) can be found in the <> section.
Additionally, if you name your fragment using a name prefix followed by a dash and the mapped file name, the plugin will automatically use that name for your resource. So, for example, if you name your deployment fragment
`myapp-deployment.yml`, the plugin will name your resource `myapp`. In the absence of such provided name for your resource, a name will be automatically derived from your project's metadata (in particular, its project `name` as specified in your `build.gradle`).
diff --git a/gradle-plugin/doc/src/main/asciidoc/index.adoc b/gradle-plugin/doc/src/main/asciidoc/index.adoc
index 070ccd3629..9b7ac1db8c 100644
--- a/gradle-plugin/doc/src/main/asciidoc/index.adoc
+++ b/gradle-plugin/doc/src/main/asciidoc/index.adoc
@@ -9,7 +9,7 @@
:toc-title: {plugin}
:doctype: book
:icons: font
-:plugindir: ../../../../../kubernetes
+:plugindir: {docdir}../../../../../kubernetes
:kitdoc-path: {docdir}/../../../../../jkube-kit/doc/src/main/asciidoc
:plugin-type: gradle
:plugin-configuration-type: Groovy DSL
@@ -41,6 +41,6 @@ include::inc/_registry.adoc[]
include::inc/_authentication.adoc[]
-include::inc/_kind-filename-type-mapping.adoc[]
+include::{kitdoc-path}/inc/mapping-config/_index.adoc[]
diff --git a/jkube-kit/doc/src/main/asciidoc/inc/mapping-config/_index.adoc b/jkube-kit/doc/src/main/asciidoc/inc/mapping-config/_index.adoc
new file mode 100644
index 0000000000..68c88f5925
--- /dev/null
+++ b/jkube-kit/doc/src/main/asciidoc/inc/mapping-config/_index.adoc
@@ -0,0 +1,55 @@
+[[kind-filename-mapping]]
+= Kind/Filename Mapping
+
+[[default-kind-filename-mapping]]
+== Default Kind/Filename Mapping
+
+include::{plugindir}/src/main/resources/META-INF/jkube/kind-filename-type-mapping-default.adoc[]
+
+[[custom-kind-mapping]]
+== Custom Kind/Filename Mapping
+
+You can add your custom `Kind/Filename` mappings.
+To do it you have two approaches:
+
+* Setting an environment variable or system property called `jkube.mapping` pointing out to a `.properties` files with pairs `=>, `
+By default if no environment variable nor system property is set, JKube looks for a file located at classpath `/META-INF/jkube.kind-filename-type-mapping-default.properties`.
+
+* By defining the Mapping in the plugin's configuration
+
+ifeval::["{plugin-type}" == "maven"]
+[source,xml,indent=0,subs="verbatim,quotes,attributes"]
+----
+
+ org.eclipse.jkube
+ {plugin}
+
+
+
+ Var
+ foo, bar
+ api.example.com/v1
+
+
+
+
+----
+endif::[]
+
+ifeval::["{plugin-type}" == "gradle"]
+[source,groovy,indent=0,subs="verbatim,quotes,attributes"]
+----
+kubernetes {
+ mappings {
+ mapping {
+ kind = "Var" // <1>
+ filenameTypes = "foo, bar" // <2>
+ apiVersion = "api.example.com/v1" // <3>
+ }
+ }
+}
+----
+endif::[]
+<1> The kind name (mandatory)
+<2> The filename types (mandatory), a comma-separated list of filenames to map to the specified kind
+<3> The apiVersion (optional)
diff --git a/kubernetes-maven-plugin/doc/src/main/asciidoc/inc/_appendix.adoc b/kubernetes-maven-plugin/doc/src/main/asciidoc/inc/_appendix.adoc
deleted file mode 100644
index efaeef4136..0000000000
--- a/kubernetes-maven-plugin/doc/src/main/asciidoc/inc/_appendix.adoc
+++ /dev/null
@@ -1,33 +0,0 @@
-[[appendix]]
-= Appendix
-
-== Kind/Filename Type Mapping
-
-[[appendix-kind-mapping]]
-include::{plugindir}/src/main/resources/META-INF/jkube/kind-filename-type-mapping-default.adoc[]
-
-== Custom Kind/Filename Mapping
-
-You can add your custom `Kind/Filename` mappings.
-To do it you have two approaches:
-
-* Setting an environment variable or system property called `jkube.mapping` pointing out to a `.properties` files with pairs `=>filename1>, `
-By default if no environment variable nor system property is set, scan for a file located at classpath `/META-INF/jkube.kind-filename-type-mapping-default.properties`.
-
-* By embedding in MOJO configuration the mapping:
-
-[source,xml,indent=0,subs="verbatim,quotes,attributes"]
-----
-
- org.eclipse.jkube
- {plugin}
-
-
-
- Var
- foo, bar
-
-
-
-
-----
\ No newline at end of file
diff --git a/kubernetes-maven-plugin/doc/src/main/asciidoc/inc/_introduction.adoc b/kubernetes-maven-plugin/doc/src/main/asciidoc/inc/_introduction.adoc
index db87b24d8e..5c98e6284f 100644
--- a/kubernetes-maven-plugin/doc/src/main/asciidoc/inc/_introduction.adoc
+++ b/kubernetes-maven-plugin/doc/src/main/asciidoc/inc/_introduction.adoc
@@ -391,7 +391,7 @@ The resource fragments are in `src/main/jkube`.
As you can see, there is no `metadata` section as would be expected for Kubernetes resources because it will be automatically added by the `{plugin}`. The object's `Kind`, if not given, is automatically derived from the
filename. In this case, the `{plugin}` will create a `Deployment` because the file is called `deployment.yml`. Similar mappings between file names and resource type exist for each supported resource kind, the
-complete list of which (along with associated abbreviations) can be found in the <>.
+complete list of which (along with associated abbreviations) can be found in the <> section.
diff --git a/kubernetes-maven-plugin/doc/src/main/asciidoc/index.adoc b/kubernetes-maven-plugin/doc/src/main/asciidoc/index.adoc
index 2d76d7a04f..c31ac1238e 100644
--- a/kubernetes-maven-plugin/doc/src/main/asciidoc/index.adoc
+++ b/kubernetes-maven-plugin/doc/src/main/asciidoc/index.adoc
@@ -10,7 +10,7 @@ Roland Huß, James Strachan;
:toc-title: {plugin}
:doctype: book
:icons: font
-:plugindir: ../../../../../plugin
+:plugindir: {docdir}../../../../../plugin
:kitdoc-path: {docdir}/../../../../../jkube-kit/doc/src/main/asciidoc
:plugin-type: maven
:plugin-configuration-type: XML
@@ -45,5 +45,4 @@ include::inc/_integrations.adoc[]
include::inc/_faq.adoc[]
-include::inc/_appendix.adoc[]
-
+include::{kitdoc-path}/inc/mapping-config/_index.adoc[]
From f0c3da83159ea507c990f84ed2f250bccfc55185 Mon Sep 17 00:00:00 2001
From: Rohan Kumar
Date: Thu, 6 Jul 2023 13:51:53 +0530
Subject: [PATCH 40/65] refactor (jkube-kit-spring-boot) : Move devtools
utility methods out of SpringBootGenerator
I see a lot of utility methods in SpringBootGenerator which are specific
to spring boot devtools. Move these methods to a new utility SpringBootDevtoolsUtils
class.
Signed-off-by: Rohan Kumar
---
.../kit/common/util/SpringBootUtilTest.java | 117 ----------
.../jkube/kit/common/util/SpringBootUtil.java | 8 +
.../kit/common/util/SpringBootUtilTest.java | 156 +++++++++++++-
.../util/springboot}/invalid-application.yml | 0
.../resources/application.properties | 1 +
...est-application-with-multiple-profiles.yml | 0
.../util/springboot}/test-application.yml | 0
.../springboot/SpringBootDevtoolsUtils.java | 192 +++++++++++++++++
.../generator/SpringBootGenerator.java | 198 ++---------------
.../SpringBootDevtoolsUtilsTest.java | 202 ++++++++++++++++++
.../application.properties | 2 +-
11 files changed, 572 insertions(+), 304 deletions(-)
delete mode 100644 jkube-kit/common-maven/src/test/java/org/eclipse/jkube/kit/common/util/SpringBootUtilTest.java
rename jkube-kit/{common-maven/src/test/resources/util => common/src/test/resources/util/springboot}/invalid-application.yml (100%)
create mode 100644 jkube-kit/common/src/test/resources/util/springboot/resources/application.properties
rename jkube-kit/{common-maven/src/test/resources/util => common/src/test/resources/util/springboot}/test-application-with-multiple-profiles.yml (100%)
rename jkube-kit/{common-maven/src/test/resources/util => common/src/test/resources/util/springboot}/test-application.yml (100%)
create mode 100644 jkube-kit/jkube-kit-spring-boot/src/main/java/org/eclipse/jkube/springboot/SpringBootDevtoolsUtils.java
create mode 100644 jkube-kit/jkube-kit-spring-boot/src/test/java/org/eclipse/jkube/springboot/SpringBootDevtoolsUtilsTest.java
diff --git a/jkube-kit/common-maven/src/test/java/org/eclipse/jkube/kit/common/util/SpringBootUtilTest.java b/jkube-kit/common-maven/src/test/java/org/eclipse/jkube/kit/common/util/SpringBootUtilTest.java
deleted file mode 100644
index 5e7bb7e94b..0000000000
--- a/jkube-kit/common-maven/src/test/java/org/eclipse/jkube/kit/common/util/SpringBootUtilTest.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/**
- * Copyright (c) 2019 Red Hat, Inc.
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at:
- *
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Red Hat, Inc. - initial API and implementation
- */
-package org.eclipse.jkube.kit.common.util;
-
-import java.net.URL;
-import java.util.Collections;
-import java.util.Map;
-import java.util.Properties;
-
-import org.eclipse.jkube.kit.common.JavaProject;
-import org.eclipse.jkube.kit.common.Plugin;
-import org.junit.jupiter.api.Test;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.assertj.core.api.Assertions.entry;
-import static org.junit.jupiter.api.Assertions.assertThrows;
-
-/**
- * Checking the behaviour of utility methods.
- */
-class SpringBootUtilTest {
-
- @Test
- void testYamlToPropertiesParsing() {
-
- Properties props = YamlUtil.getPropertiesFromYamlResource(SpringBootUtilTest.class.getResource("/util/test-application.yml"));
- assertThat(props).isNotEmpty()
- .contains(
- entry("management.port", "8081"),
- entry("spring.datasource.url", "jdbc:mysql://127.0.0.1:3306"),
- entry("example.nested.items[0].value", "value0"),
- entry("example.nested.items[1].value", "value1"),
- entry("example.nested.items[2].elements[0].element[0].subelement", "sub0"),
- entry("example.nested.items[2].elements[0].element[1].subelement", "sub1"),
- entry("example.1", "integerKeyElement"));
- }
-
- @Test
- void testInvalidFileThrowsException() {
- URL resource = SpringBootUtil.class.getResource("/util/invalid-application.yml");
- assertThrows(IllegalStateException.class, () -> YamlUtil.getPropertiesFromYamlResource(resource));
- }
-
- @Test
- void testNonExistentYamlToPropertiesParsing() {
- Properties props = YamlUtil.getPropertiesFromYamlResource(SpringBootUtilTest.class.getResource("/this-file-does-not-exist"));
- assertThat(props).isNotNull().isEmpty();
- }
-
- @Test
- void testMultipleProfilesParsing() {
- Properties props = SpringBootUtil.getPropertiesFromApplicationYamlResource(null, getClass().getResource("/util/test-application-with-multiple-profiles.yml"));
-
- assertThat(props).isNotEmpty()
- .contains(
- entry("spring.application.name", "spring-boot-k8-recipes"),
- entry("management.endpoints.enabled-by-default", "false"),
- entry("management.endpoint.health.enabled", "true"))
- .doesNotContainEntry("cloud.kubernetes.reload.enabled", null);
-
- props = SpringBootUtil.getPropertiesFromApplicationYamlResource("kubernetes", getClass().getResource("/util/test-application-with-multiple-profiles.yml"));
-
- assertThat(props)
- .containsEntry("cloud.kubernetes.reload.enabled", "true")
- .doesNotContain(
- entry("cloud.kubernetes.reload.enabled", null),
- entry("spring.application.name", null));
- }
-
- @Test
- void getSpringBootPluginConfiguration_whenSpringBootMavenPluginPresent_thenReturnsPluginConfiguration() {
- // Given
- JavaProject javaProject = JavaProject.builder()
- .plugin(Plugin.builder()
- .groupId("org.springframework.boot")
- .artifactId("spring-boot-maven-plugin")
- .configuration(Collections.singletonMap("layout", "ZIP"))
- .build())
- .build();
-
- // When
- Map configuration = SpringBootUtil.getSpringBootPluginConfiguration(javaProject);
-
- // Then
- assertThat(configuration).isNotNull().containsEntry("layout", "ZIP");
- }
-
- @Test
- void getSpringBootPluginConfiguration_whenSpringBootGradlePluginPresent_thenReturnsPluginConfiguration() {
- // Given
- JavaProject javaProject = JavaProject.builder()
- .plugin(Plugin.builder()
- .groupId("org.springframework.boot")
- .artifactId("org.springframework.boot.gradle.plugin")
- .configuration(Collections.singletonMap("mainClass", "com.example.ExampleApplication"))
- .build())
- .build();
-
- // When
- Map configuration = SpringBootUtil.getSpringBootPluginConfiguration(javaProject);
-
- // Then
- assertThat(configuration).isNotNull().containsEntry("mainClass", "com.example.ExampleApplication");
- }
-
-}
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 944088c447..9235abd9ed 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
@@ -103,5 +103,13 @@ public static Map getSpringBootPluginConfiguration(JavaProject j
}
return Collections.emptyMap();
}
+
+ public static boolean isSpringBootRepackage(JavaProject project) {
+ Plugin plugin = JKubeProjectUtil.getPlugin(project, SpringBootConfigurationHelper.SPRING_BOOT_MAVEN_PLUGIN_ARTIFACT_ID);
+ return Optional.ofNullable(plugin)
+ .map(Plugin::getExecutions)
+ .map(e -> e.contains("repackage"))
+ .orElse(false);
+ }
}
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 2dea533cb8..db67488029 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
@@ -16,18 +16,23 @@
import org.apache.commons.io.FileUtils;
import org.eclipse.jkube.kit.common.Dependency;
import org.eclipse.jkube.kit.common.JavaProject;
+import org.eclipse.jkube.kit.common.Plugin;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.io.TempDir;
import org.junit.jupiter.api.BeforeEach;
import java.io.File;
import java.io.IOException;
+import java.net.URL;
import java.net.URLClassLoader;
import java.util.Arrays;
import java.util.Collections;
+import java.util.Map;
+import java.util.Objects;
import java.util.Optional;
import java.util.Properties;
+import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import static org.assertj.core.api.Assertions.assertThat;
@@ -45,7 +50,7 @@ public void setUp() {
@Test
void testGetSpringBootApplicationProperties(@TempDir File temporaryFolder) throws IOException {
//Given
- File applicationProp = new File(getClass().getResource("/util/spring-boot-application.properties").getPath());
+ File applicationProp = new File(Objects.requireNonNull(getClass().getResource("/util/spring-boot-application.properties")).getPath());
String springActiveProfile = null;
File targetFolder = new File(temporaryFolder, "target");
File classesInTarget = new File(targetFolder, "classes");
@@ -110,4 +115,153 @@ void testGetSpringBootActiveProfileWhenNotNull() {
void testGetSpringBootActiveProfileWhenNull() {
assertThat(SpringBootUtil.getSpringBootActiveProfile(null)).isNull();
}
+
+ @Test
+ void getSpringBootApplicationProperties_withCompileClassloader_shouldLoadProperties() {
+ // Given
+ JavaProject javaProject = JavaProject.builder()
+ .compileClassPathElement(Objects.requireNonNull(getClass().getResource("/util/springboot/resources")).getPath())
+ .outputDirectory(new File("target"))
+ .build();
+ URLClassLoader compileClassLoader = JKubeProjectUtil.getClassLoader(javaProject);
+
+ // When
+ Properties properties = SpringBootUtil.getSpringBootApplicationProperties(compileClassLoader);
+
+ // Then
+ assertThat(properties)
+ .containsEntry("server.port", "8081");
+ }
+
+
+ @Test
+ void testYamlToPropertiesParsing() {
+
+ Properties props = YamlUtil.getPropertiesFromYamlResource(getClass().getResource("/util/springboot/test-application.yml"));
+ assertThat(props).isNotEmpty()
+ .contains(
+ entry("management.port", "8081"),
+ entry("spring.datasource.url", "jdbc:mysql://127.0.0.1:3306"),
+ entry("example.nested.items[0].value", "value0"),
+ entry("example.nested.items[1].value", "value1"),
+ entry("example.nested.items[2].elements[0].element[0].subelement", "sub0"),
+ entry("example.nested.items[2].elements[0].element[1].subelement", "sub1"),
+ entry("example.1", "integerKeyElement"));
+ }
+
+ @Test
+ void testInvalidFileThrowsException() {
+ URL resource = SpringBootUtil.class.getResource("/util/springboot/invalid-application.yml");
+ assertThrows(IllegalStateException.class, () -> YamlUtil.getPropertiesFromYamlResource(resource));
+ }
+
+ @Test
+ void testNonExistentYamlToPropertiesParsing() {
+ Properties props = YamlUtil.getPropertiesFromYamlResource(getClass().getResource("/this-file-does-not-exist"));
+ assertThat(props).isNotNull().isEmpty();
+ }
+
+ @Test
+ void testMultipleProfilesParsing() {
+ Properties props = SpringBootUtil.getPropertiesFromApplicationYamlResource(null, getClass().getResource("/util/springboot/test-application-with-multiple-profiles.yml"));
+
+ assertThat(props).isNotEmpty()
+ .contains(
+ entry("spring.application.name", "spring-boot-k8-recipes"),
+ entry("management.endpoints.enabled-by-default", "false"),
+ entry("management.endpoint.health.enabled", "true"))
+ .doesNotContainEntry("cloud.kubernetes.reload.enabled", null);
+
+ props = SpringBootUtil.getPropertiesFromApplicationYamlResource("kubernetes", getClass().getResource("/util/springboot/test-application-with-multiple-profiles.yml"));
+
+ assertThat(props)
+ .containsEntry("cloud.kubernetes.reload.enabled", "true")
+ .doesNotContain(
+ entry("cloud.kubernetes.reload.enabled", null),
+ entry("spring.application.name", null));
+ }
+
+ @Test
+ void getSpringBootPluginConfiguration_whenNothingPresent_thenReturnsEmptyMap() {
+ // Given
+ JavaProject javaProject = JavaProject.builder().build();
+
+ // When
+ Map configuration = SpringBootUtil.getSpringBootPluginConfiguration(javaProject);
+
+ // Then
+ assertThat(configuration).isEmpty();
+ }
+
+ @Test
+ void getSpringBootPluginConfiguration_whenSpringBootMavenPluginPresent_thenReturnsPluginConfiguration() {
+ // Given
+ JavaProject javaProject = JavaProject.builder()
+ .plugin(Plugin.builder()
+ .groupId("org.springframework.boot")
+ .artifactId("spring-boot-maven-plugin")
+ .configuration(Collections.singletonMap("layout", "ZIP"))
+ .build())
+ .build();
+
+ // When
+ Map configuration = SpringBootUtil.getSpringBootPluginConfiguration(javaProject);
+
+ // Then
+ assertThat(configuration).isNotNull().containsEntry("layout", "ZIP");
+ }
+
+ @Test
+ void getSpringBootPluginConfiguration_whenSpringBootGradlePluginPresent_thenReturnsPluginConfiguration() {
+ // Given
+ JavaProject javaProject = JavaProject.builder()
+ .plugin(Plugin.builder()
+ .groupId("org.springframework.boot")
+ .artifactId("org.springframework.boot.gradle.plugin")
+ .configuration(Collections.singletonMap("mainClass", "com.example.ExampleApplication"))
+ .build())
+ .build();
+
+ // When
+ Map configuration = SpringBootUtil.getSpringBootPluginConfiguration(javaProject);
+
+ // Then
+ assertThat(configuration).isNotNull().containsEntry("mainClass", "com.example.ExampleApplication");
+ }
+
+ @Test
+ void isSpringBootRepackage_whenPluginHasRepackageExecution_thenReturnTrue() {
+ // Given
+ JavaProject javaProject = JavaProject.builder()
+ .plugin(Plugin.builder()
+ .groupId("org.springframework.boot")
+ .artifactId("spring-boot-maven-plugin")
+ .executions(Collections.singletonList("repackage"))
+ .build())
+ .build();
+
+ // When
+ boolean result = SpringBootUtil.isSpringBootRepackage(javaProject);
+
+ // Then
+ assertThat(result).isTrue();
+ }
+
+ @Test
+ void isSpringBootRepackage_whenNoExecution_thenReturnFalse() {
+ // Given
+ JavaProject javaProject = JavaProject.builder()
+ .plugin(Plugin.builder()
+ .groupId("org.springframework.boot")
+ .artifactId("spring-boot-maven-plugin")
+ .executions(Collections.emptyList())
+ .build())
+ .build();
+
+ // When
+ boolean result = SpringBootUtil.isSpringBootRepackage(javaProject);
+
+ // Then
+ assertThat(result).isFalse();
+ }
}
diff --git a/jkube-kit/common-maven/src/test/resources/util/invalid-application.yml b/jkube-kit/common/src/test/resources/util/springboot/invalid-application.yml
similarity index 100%
rename from jkube-kit/common-maven/src/test/resources/util/invalid-application.yml
rename to jkube-kit/common/src/test/resources/util/springboot/invalid-application.yml
diff --git a/jkube-kit/common/src/test/resources/util/springboot/resources/application.properties b/jkube-kit/common/src/test/resources/util/springboot/resources/application.properties
new file mode 100644
index 0000000000..bafddced85
--- /dev/null
+++ b/jkube-kit/common/src/test/resources/util/springboot/resources/application.properties
@@ -0,0 +1 @@
+server.port=8081
\ No newline at end of file
diff --git a/jkube-kit/common-maven/src/test/resources/util/test-application-with-multiple-profiles.yml b/jkube-kit/common/src/test/resources/util/springboot/test-application-with-multiple-profiles.yml
similarity index 100%
rename from jkube-kit/common-maven/src/test/resources/util/test-application-with-multiple-profiles.yml
rename to jkube-kit/common/src/test/resources/util/springboot/test-application-with-multiple-profiles.yml
diff --git a/jkube-kit/common-maven/src/test/resources/util/test-application.yml b/jkube-kit/common/src/test/resources/util/springboot/test-application.yml
similarity index 100%
rename from jkube-kit/common-maven/src/test/resources/util/test-application.yml
rename to jkube-kit/common/src/test/resources/util/springboot/test-application.yml
diff --git a/jkube-kit/jkube-kit-spring-boot/src/main/java/org/eclipse/jkube/springboot/SpringBootDevtoolsUtils.java b/jkube-kit/jkube-kit-spring-boot/src/main/java/org/eclipse/jkube/springboot/SpringBootDevtoolsUtils.java
new file mode 100644
index 0000000000..7de2ca76ca
--- /dev/null
+++ b/jkube-kit/jkube-kit-spring-boot/src/main/java/org/eclipse/jkube/springboot/SpringBootDevtoolsUtils.java
@@ -0,0 +1,192 @@
+/**
+ * Copyright (c) 2019 Red Hat, Inc.
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at:
+ *
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ */
+package org.eclipse.jkube.springboot;
+
+import com.google.common.base.Strings;
+import org.apache.commons.io.FileUtils;
+import org.eclipse.jkube.generator.javaexec.FatJarDetector;
+import org.eclipse.jkube.kit.common.JavaProject;
+import org.eclipse.jkube.kit.common.util.JKubeProjectUtil;
+import org.eclipse.jkube.kit.common.util.SpringBootUtil;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.file.Files;
+import java.util.Collections;
+import java.util.List;
+import java.util.Properties;
+import java.util.UUID;
+import java.util.zip.CRC32;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipInputStream;
+import java.util.zip.ZipOutputStream;
+
+import static org.eclipse.jkube.kit.common.util.SpringBootConfigurationHelper.DEV_TOOLS_REMOTE_SECRET;
+import static org.eclipse.jkube.kit.common.util.SpringBootConfigurationHelper.SPRING_BOOT_DEVTOOLS_ARTIFACT_ID;
+import static org.eclipse.jkube.kit.common.util.SpringBootConfigurationHelper.SPRING_BOOT_GROUP_ID;
+
+public class SpringBootDevtoolsUtils {
+ private SpringBootDevtoolsUtils() { }
+
+ public static boolean ensureSpringDevToolSecretToken(JavaProject project) {
+ Properties properties = SpringBootUtil.getSpringBootApplicationProperties(
+ SpringBootUtil.getSpringBootActiveProfile(project),
+ JKubeProjectUtil.getClassLoader(project));
+ String remoteSecret = properties.getProperty(DEV_TOOLS_REMOTE_SECRET);
+ if (Strings.isNullOrEmpty(remoteSecret)) {
+ addSecretTokenToApplicationProperties(project);
+ return false;
+ }
+ return true;
+ }
+
+ private static void addSecretTokenToApplicationProperties(JavaProject project) {
+ String newToken = UUID.randomUUID().toString();
+
+ // We always add to application.properties, even when an application.yml exists, since both
+ // files are evaluated by Spring Boot.
+ appendSecretTokenToFile(project, "target/classes/application.properties", newToken);
+ appendSecretTokenToFile(project, "src/main/resources/application.properties", newToken);
+ }
+
+ private static void appendSecretTokenToFile(JavaProject project, String path, String token) {
+ File file = new File(project.getBaseDirectory(), path);
+ boolean dirCreated = file.getParentFile().mkdirs();
+ if (!dirCreated) {
+ throw new IllegalStateException("Failure in creating directory " + file.getParentFile().getAbsolutePath());
+ }
+ String text = String.format("%s" +
+ "# Remote secret added by jkube-kit-plugin\n" +
+ "%s=%s\n",
+ file.exists() ? "\n" : "", DEV_TOOLS_REMOTE_SECRET, token);
+
+ try (FileWriter writer = new FileWriter(file, true)) {
+ writer.append(text);
+ } catch (IOException e) {
+ throw new IllegalStateException("Failed to append to file: " + file + ". " + e, e);
+ }
+ }
+
+ public static void addDevToolsFilesToFatJar(JavaProject project, FatJarDetector.Result fatJarDetectResult) {
+ File target = getFatJarFile(fatJarDetectResult);
+ try {
+ File devToolsFile = getSpringBootDevToolsJar(project);
+ File applicationPropertiesFile = new File(project.getBaseDirectory(), "target/classes/application.properties");
+ copyFilesToFatJar(Collections.singletonList(devToolsFile), Collections.singletonList(applicationPropertiesFile), target);
+ } catch (Exception e) {
+ throw new IllegalStateException("Failed to add devtools files to fat jar " + target + ". " + e, e);
+ }
+ }
+
+ private static void copyFilesToFatJar(List libs, List classes, File target) throws IOException {
+ File tmpZip = File.createTempFile(target.getName(), null);
+ Files.delete(tmpZip.toPath());
+
+ // Using Apache commons rename, because renameTo has issues across file systems
+ FileUtils.moveFile(target, tmpZip);
+
+ byte[] buffer = new byte[8192];
+ try (ZipInputStream zin = new ZipInputStream(new FileInputStream(tmpZip));
+ ZipOutputStream out = new ZipOutputStream(new FileOutputStream(target))) {
+ for (ZipEntry ze = zin.getNextEntry(); ze != null; ze = zin.getNextEntry()) {
+ if (matchesFatJarEntry(libs, ze.getName(), true) || matchesFatJarEntry(classes, ze.getName(), false)) {
+ continue;
+ }
+ out.putNextEntry(ze);
+ for(int read = zin.read(buffer); read > -1; read = zin.read(buffer)){
+ out.write(buffer, 0, read);
+ }
+ out.closeEntry();
+ }
+
+ for (File lib : libs) {
+ try (InputStream in = new FileInputStream(lib)) {
+ out.putNextEntry(createZipEntry(lib, getFatJarFullPath(lib, true)));
+ for (int read = in.read(buffer); read > -1; read = in.read(buffer)) {
+ out.write(buffer, 0, read);
+ }
+ out.closeEntry();
+ }
+ }
+
+ for (File cls : classes) {
+ try (InputStream in = new FileInputStream(cls)) {
+ out.putNextEntry(createZipEntry(cls, getFatJarFullPath(cls, false)));
+ for (int read = in.read(buffer); read > -1; read = in.read(buffer)) {
+ out.write(buffer, 0, read);
+ }
+ out.closeEntry();
+ }
+ }
+ }
+ Files.delete(tmpZip.toPath());
+ }
+
+ private static boolean matchesFatJarEntry(List fatJarEntries, String path, boolean lib) {
+ for (File e : fatJarEntries) {
+ String fullPath = getFatJarFullPath(e, lib);
+ if (fullPath.equals(path)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private static String getFatJarFullPath(File file, boolean lib) {
+ if (lib) {
+ return "BOOT-INF/lib/" + file.getName();
+ }
+ return "BOOT-INF/classes/" + file.getName();
+ }
+
+ private static ZipEntry createZipEntry(File file, String fullPath) throws IOException {
+ ZipEntry entry = new ZipEntry(fullPath);
+
+ byte[] buffer = new byte[8192];
+ int bytesRead = -1;
+ try (InputStream is = new FileInputStream(file)) {
+ CRC32 crc = new CRC32();
+ int size = 0;
+ while ((bytesRead = is.read(buffer)) != -1) {
+ crc.update(buffer, 0, bytesRead);
+ size += bytesRead;
+ }
+ entry.setSize(size);
+ entry.setCompressedSize(size);
+ entry.setCrc(crc.getValue());
+ entry.setMethod(ZipEntry.STORED);
+ return entry;
+ }
+ }
+ private static File getFatJarFile(FatJarDetector.Result fatJarDetectResult) {
+ if (fatJarDetectResult == null) {
+ throw new IllegalStateException("No fat jar built yet. Please ensure that the 'package' phase has run");
+ }
+ return fatJarDetectResult.getArchiveFile();
+ }
+
+ private static File getSpringBootDevToolsJar(JavaProject project) {
+ String version = SpringBootUtil.getSpringBootDevToolsVersion(project)
+ .orElseThrow(() -> new IllegalStateException("Unable to find the spring-boot version"));
+ final File devToolsJar = JKubeProjectUtil.resolveArtifact(project, SPRING_BOOT_GROUP_ID, SPRING_BOOT_DEVTOOLS_ARTIFACT_ID, version, "jar");
+ if (!devToolsJar.exists()) {
+ throw new IllegalArgumentException("devtools need to be included in repacked archive, please set to false in plugin configuration");
+ }
+ return devToolsJar;
+ }
+}
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 0b574f880f..db981edc3c 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
@@ -13,44 +13,27 @@
*/
package org.eclipse.jkube.springboot.generator;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Collections;
import java.util.List;
import java.util.Map;
-import java.util.Optional;
import java.util.Properties;
-import java.util.UUID;
-import java.util.zip.CRC32;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipInputStream;
-import java.util.zip.ZipOutputStream;
import org.eclipse.jkube.generator.api.GeneratorContext;
import org.eclipse.jkube.generator.api.GeneratorMode;
-import org.eclipse.jkube.generator.javaexec.FatJarDetector;
import org.eclipse.jkube.generator.javaexec.JavaExecGenerator;
import org.eclipse.jkube.kit.common.Configs;
-import org.eclipse.jkube.kit.common.JavaProject;
-import org.eclipse.jkube.kit.common.Plugin;
import org.eclipse.jkube.kit.common.util.JKubeProjectUtil;
import org.eclipse.jkube.kit.common.util.SpringBootConfigurationHelper;
import org.eclipse.jkube.kit.common.util.SpringBootUtil;
import org.eclipse.jkube.kit.config.image.ImageConfiguration;
-import com.google.common.base.Strings;
import lombok.AllArgsConstructor;
import lombok.Getter;
-import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringUtils;
import static org.eclipse.jkube.kit.common.util.SpringBootConfigurationHelper.DEV_TOOLS_REMOTE_SECRET;
-import static org.eclipse.jkube.kit.common.util.SpringBootConfigurationHelper.SPRING_BOOT_DEVTOOLS_ARTIFACT_ID;
-import static org.eclipse.jkube.kit.common.util.SpringBootConfigurationHelper.SPRING_BOOT_GROUP_ID;
+import static org.eclipse.jkube.kit.common.util.SpringBootUtil.isSpringBootRepackage;
+import static org.eclipse.jkube.springboot.SpringBootDevtoolsUtils.addDevToolsFilesToFatJar;
+import static org.eclipse.jkube.springboot.SpringBootDevtoolsUtils.ensureSpringDevToolSecretToken;
import static org.eclipse.jkube.springboot.generator.SpringBootGenerator.Config.COLOR;
/**
@@ -82,9 +65,13 @@ public boolean isApplicable(List configs) {
@Override
public List customize(List configs, boolean isPrePackagePhase) {
if (getContext().getGeneratorMode() == GeneratorMode.WATCH) {
- ensureSpringDevToolSecretToken();
- if (!isPrePackagePhase ) {
- addDevToolsFilesToFatJar();
+ boolean isDevtoolsSecretPresent = ensureSpringDevToolSecretToken(getProject());
+ if (!isDevtoolsSecretPresent) {
+ log.verbose("Generating the spring devtools token in property: " + DEV_TOOLS_REMOTE_SECRET);
+ throw new IllegalStateException("No spring.devtools.remote.secret found in application.properties. Plugin has added it, please re-run goals");
+ }
+ if (!isPrePackagePhase && isFatJar()) {
+ addDevToolsFilesToFatJar(getProject(), detectFatJar());
}
}
return super.customize(configs, isPrePackagePhase);
@@ -118,11 +105,13 @@ protected List getExtraJavaOptions() {
@Override
protected boolean isFatJar() {
- if (!hasMainClass() && isSpringBootRepackage()) {
+ if (!hasMainClass() && isSpringBootRepackage(getProject())) {
+ log.verbose("Using fat jar packaging as the spring boot plugin is using `repackage` goal execution");
return true;
}
return super.isFatJar();
}
+
@Override
protected String getDefaultWebPort() {
Properties properties = SpringBootUtil.getSpringBootApplicationProperties(
@@ -131,165 +120,4 @@ protected String getDefaultWebPort() {
SpringBootConfigurationHelper propertyHelper = new SpringBootConfigurationHelper(SpringBootUtil.getSpringBootVersion(getProject()));
return properties.getProperty(propertyHelper.getServerPortPropertyKey(), super.getDefaultWebPort());
}
-
- // =============================================================================
-
- private void ensureSpringDevToolSecretToken() {
- Properties properties = SpringBootUtil.getSpringBootApplicationProperties(
- SpringBootUtil.getSpringBootActiveProfile(getProject()),
- JKubeProjectUtil.getClassLoader(getProject()));
- String remoteSecret = properties.getProperty(DEV_TOOLS_REMOTE_SECRET);
- if (Strings.isNullOrEmpty(remoteSecret)) {
- addSecretTokenToApplicationProperties();
- throw new IllegalStateException("No spring.devtools.remote.secret found in application.properties. Plugin has added it, please re-run goals");
- }
- }
-
- private void addDevToolsFilesToFatJar() {
- if (isFatJar()) {
- File target = getFatJarFile();
- try {
- File devToolsFile = getSpringBootDevToolsJar();
- File applicationPropertiesFile = new File(getProject().getBaseDirectory(), "target/classes/application.properties");
- copyFilesToFatJar(Collections.singletonList(devToolsFile), Collections.singletonList(applicationPropertiesFile), target);
- } catch (Exception e) {
- throw new IllegalStateException("Failed to add devtools files to fat jar " + target + ". " + e, e);
- }
- }
- }
-
- private File getFatJarFile() {
- FatJarDetector.Result fatJarDetectResult = detectFatJar();
- if (fatJarDetectResult == null) {
- throw new IllegalStateException("No fat jar built yet. Please ensure that the 'package' phase has run");
- }
- return fatJarDetectResult.getArchiveFile();
- }
-
- private void copyFilesToFatJar(List libs, List classes, File target) throws IOException {
- File tmpZip = File.createTempFile(target.getName(), null);
- tmpZip.delete();
-
- // Using Apache commons rename, because renameTo has issues across file systems
- FileUtils.moveFile(target, tmpZip);
-
- byte[] buffer = new byte[8192];
- try (ZipInputStream zin = new ZipInputStream(new FileInputStream(tmpZip));
- ZipOutputStream out = new ZipOutputStream(new FileOutputStream(target))) {
- for (ZipEntry ze = zin.getNextEntry(); ze != null; ze = zin.getNextEntry()) {
- if (matchesFatJarEntry(libs, ze.getName(), true) || matchesFatJarEntry(classes, ze.getName(), false)) {
- continue;
- }
- out.putNextEntry(ze);
- for(int read = zin.read(buffer); read > -1; read = zin.read(buffer)){
- out.write(buffer, 0, read);
- }
- out.closeEntry();
- }
-
- for (File lib : libs) {
- try (InputStream in = new FileInputStream(lib)) {
- out.putNextEntry(createZipEntry(lib, getFatJarFullPath(lib, true)));
- for (int read = in.read(buffer); read > -1; read = in.read(buffer)) {
- out.write(buffer, 0, read);
- }
- out.closeEntry();
- }
- }
-
- for (File cls : classes) {
- try (InputStream in = new FileInputStream(cls)) {
- out.putNextEntry(createZipEntry(cls, getFatJarFullPath(cls, false)));
- for (int read = in.read(buffer); read > -1; read = in.read(buffer)) {
- out.write(buffer, 0, read);
- }
- out.closeEntry();
- }
- }
- }
- tmpZip.delete();
- }
-
- private boolean matchesFatJarEntry(List fatJarEntries, String path, boolean lib) {
- for (File e : fatJarEntries) {
- String fullPath = getFatJarFullPath(e, lib);
- if (fullPath.equals(path)) {
- return true;
- }
- }
- return false;
- }
-
- private String getFatJarFullPath(File file, boolean lib) {
- if (lib) {
- return "BOOT-INF/lib/" + file.getName();
- }
- return "BOOT-INF/classes/" + file.getName();
- }
-
- private ZipEntry createZipEntry(File file, String fullPath) throws IOException {
- ZipEntry entry = new ZipEntry(fullPath);
-
- byte[] buffer = new byte[8192];
- int bytesRead = -1;
- try (InputStream is = new FileInputStream(file)) {
- CRC32 crc = new CRC32();
- int size = 0;
- while ((bytesRead = is.read(buffer)) != -1) {
- crc.update(buffer, 0, bytesRead);
- size += bytesRead;
- }
- entry.setSize(size);
- entry.setCompressedSize(size);
- entry.setCrc(crc.getValue());
- entry.setMethod(ZipEntry.STORED);
- return entry;
- }
- }
-
- private void addSecretTokenToApplicationProperties() {
- String newToken = UUID.randomUUID().toString();
- log.verbose("Generating the spring devtools token in property: " + DEV_TOOLS_REMOTE_SECRET);
-
- // We always add to application.properties, even when an application.yml exists, since both
- // files are evaluated by Spring Boot.
- appendSecretTokenToFile("target/classes/application.properties", newToken);
- appendSecretTokenToFile("src/main/resources/application.properties", newToken);
- }
-
- private void appendSecretTokenToFile(String path, String token) {
- File file = new File(getProject().getBaseDirectory(), path);
- file.getParentFile().mkdirs();
- String text = String.format("%s" +
- "# Remote secret added by jkube-kit-plugin\n" +
- "%s=%s\n",
- file.exists() ? "\n" : "", DEV_TOOLS_REMOTE_SECRET, token);
-
- try (FileWriter writer = new FileWriter(file, true)) {
- writer.append(text);
- } catch (IOException e) {
- throw new IllegalStateException("Failed to append to file: " + file + ". " + e, e);
- }
- }
-
- private boolean isSpringBootRepackage() {
- JavaProject project = getProject();
- Plugin plugin = JKubeProjectUtil.getPlugin(project, SpringBootConfigurationHelper.SPRING_BOOT_MAVEN_PLUGIN_ARTIFACT_ID);
- if (Optional.ofNullable(plugin).map(Plugin::getExecutions).map(e -> e.contains("repackage")).orElse(false)) {
- log.verbose("Using fat jar packaging as the spring boot plugin is using `repackage` goal execution");
- return true;
- }
- return false;
- }
-
- private File getSpringBootDevToolsJar() {
- String version = SpringBootUtil.getSpringBootDevToolsVersion(getProject())
- .orElseThrow(() -> new IllegalStateException("Unable to find the spring-boot version"));
- final File devToolsJar = JKubeProjectUtil.resolveArtifact(getProject(), SPRING_BOOT_GROUP_ID, SPRING_BOOT_DEVTOOLS_ARTIFACT_ID, version, "jar");
- if (!devToolsJar.exists()) {
- throw new IllegalArgumentException("devtools need to be included in repacked archive, please set to false in plugin configuration");
- }
- return devToolsJar;
- }
-
}
diff --git a/jkube-kit/jkube-kit-spring-boot/src/test/java/org/eclipse/jkube/springboot/SpringBootDevtoolsUtilsTest.java b/jkube-kit/jkube-kit-spring-boot/src/test/java/org/eclipse/jkube/springboot/SpringBootDevtoolsUtilsTest.java
new file mode 100644
index 0000000000..5487d97e9a
--- /dev/null
+++ b/jkube-kit/jkube-kit-spring-boot/src/test/java/org/eclipse/jkube/springboot/SpringBootDevtoolsUtilsTest.java
@@ -0,0 +1,202 @@
+/**
+ * Copyright (c) 2019 Red Hat, Inc.
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at:
+ *
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ */
+package org.eclipse.jkube.springboot;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.util.Objects;
+import java.util.jar.Attributes;
+import java.util.jar.JarFile;
+import java.util.jar.JarOutputStream;
+import java.util.jar.Manifest;
+
+import org.eclipse.jkube.generator.javaexec.FatJarDetector;
+import org.eclipse.jkube.kit.common.Dependency;
+import org.eclipse.jkube.kit.common.JavaProject;
+import org.eclipse.jkube.kit.common.KitLogger;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.io.TempDir;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatIllegalStateException;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+class SpringBootDevtoolsUtilsTest {
+ private KitLogger kitLogger;
+
+ @TempDir
+ private File temporaryFolder;
+
+ @BeforeEach
+ void setup() {
+ kitLogger = spy(new KitLogger.SilentLogger());
+ }
+
+ @Test
+ void ensureSpringDevToolSecretToken_whenNoTokenFound_thenAppendTokenAndThrowException() throws IOException {
+ // Given
+ JavaProject javaProject = createSpringBootJavaProject();
+
+ // When
+ boolean result = SpringBootDevtoolsUtils.ensureSpringDevToolSecretToken(javaProject);
+
+ // Then
+ assertThat(result).isFalse();
+ Path srcApplicationProperties = temporaryFolder.toPath()
+ .resolve("src").resolve("main").resolve("resources").resolve("application.properties");
+ Path targetApplicationProperties = temporaryFolder.toPath()
+ .resolve("target").resolve("classes").resolve("application.properties");
+ assertThat(new String(Files.readAllBytes(srcApplicationProperties)))
+ .contains("# Remote secret added by jkube-kit-plugin")
+ .contains("spring.devtools.remote.secret=");
+ assertThat(new String(Files.readAllBytes(targetApplicationProperties)))
+ .contains("# Remote secret added by jkube-kit-plugin")
+ .contains("spring.devtools.remote.secret=");
+ }
+
+ @Test
+ void ensureSpringDevToolSecretToken_whenTokenAlreadyPresent_thenDoNothing() {
+ // Given
+ JavaProject javaProject = createSpringBootJavaProject().toBuilder()
+ .compileClassPathElement(Objects.requireNonNull(getClass().getResource("/devtools-application-properties")).getPath())
+ .build();
+
+ // When
+ boolean result = SpringBootDevtoolsUtils.ensureSpringDevToolSecretToken(javaProject);
+
+ // Then
+ assertThat(result).isTrue();
+ verify(kitLogger, times(0)).verbose(anyString());
+ }
+
+ @Test
+ void addDevToolsFilesToFatJar_whenNoFatJar_thenThrowException() {
+ // Given
+ JavaProject javaProject = createSpringBootJavaProject();
+
+ // When + Then
+ assertThatIllegalStateException()
+ .isThrownBy(() -> SpringBootDevtoolsUtils.addDevToolsFilesToFatJar(javaProject, null))
+ .withMessage("No fat jar built yet. Please ensure that the 'package' phase has run");
+ }
+
+ @Test
+ void addDevToolsFilesToFatJar_whenFatJarButNoDevtools_thenThrowException() throws IOException {
+ // Given
+ File outputDir = new File(temporaryFolder, "target");
+ File fatJar = new File(outputDir, "fat.jar");
+ assertThat(outputDir.mkdir()).isTrue();
+ assertThat(fatJar.createNewFile()).isTrue();
+ JavaProject javaProject = createSpringBootJavaProject();
+ FatJarDetector.Result fatJarDetectorResult = mock(FatJarDetector.Result.class);
+ when(fatJarDetectorResult.getArchiveFile()).thenReturn(fatJar);
+
+ // When
+ assertThatIllegalStateException()
+ .isThrownBy(() -> SpringBootDevtoolsUtils.addDevToolsFilesToFatJar(javaProject, fatJarDetectorResult))
+ .withMessageContaining("Cannot find artifact spring-boot-devtools-2.7.2.jar within the resolved resources");
+ }
+
+ @Test
+ void addDevToolsFilesToFatJar_whenFatJarButNoDevtoolsJarNotExist_thenThrowException() throws IOException {
+ // Given
+ File outputDir = new File(temporaryFolder, "target");
+ File fatJar = new File(outputDir, "fat.jar");
+ assertThat(outputDir.mkdir()).isTrue();
+ assertThat(fatJar.createNewFile()).isTrue();
+ FatJarDetector.Result fatJarDetectorResult = mock(FatJarDetector.Result.class);
+ when(fatJarDetectorResult.getArchiveFile()).thenReturn(fatJar);
+ JavaProject javaProject = createSpringBootJavaProject().toBuilder()
+ .dependency(Dependency.builder()
+ .groupId("org.springframework.boot")
+ .artifactId("spring-boot-devtools")
+ .version("2.7.2")
+ .type("jar")
+ .file(new File("i-dont-exist.jar"))
+ .build())
+ .build();
+
+ // When
+ assertThatIllegalStateException()
+ .isThrownBy(() -> SpringBootDevtoolsUtils.addDevToolsFilesToFatJar(javaProject, fatJarDetectorResult))
+ .withMessageContaining("devtools need to be included in repacked archive, please set to false in plugin configuration");
+ }
+
+ @Test
+ void addDevToolsFilesToFatJar_whenFatJar_thenFatJarUpdatedWithSpringBootDevtoolsJarAndApplicationProperties() throws IOException {
+ // Given
+ File outputDir = new File(temporaryFolder, "target");
+ File outputClassesDir = new File(outputDir, "classes");
+ File outputApplicationProperties = new File(outputClassesDir, "application.properties");
+ File fatJar = new File(outputDir, "fat.jar");
+ File devtoolsJar = new File(temporaryFolder, "spring-boot-devtools-2.7.2.jar");
+ assertThat(outputDir.mkdir()).isTrue();
+ assertThat(outputClassesDir.mkdir()).isTrue();
+ assertThat(fatJar.createNewFile()).isTrue();
+ assertThat(fatJar).isEmpty();
+ createDummyJar(fatJar);
+ assertThat(devtoolsJar.createNewFile()).isTrue();
+ assertThat(outputApplicationProperties.createNewFile()).isTrue();
+ JavaProject javaProject = createSpringBootJavaProject().toBuilder()
+ .dependency(Dependency.builder()
+ .groupId("org.springframework.boot")
+ .artifactId("spring-boot-devtools")
+ .version("2.7.2")
+ .type("jar")
+ .file(devtoolsJar)
+ .build())
+ .build();
+ FatJarDetector.Result fatJarDetectorResult = mock(FatJarDetector.Result.class);
+ when(fatJarDetectorResult.getArchiveFile()).thenReturn(fatJar);
+
+ // When
+ SpringBootDevtoolsUtils.addDevToolsFilesToFatJar(javaProject, fatJarDetectorResult);
+
+ // When + Then
+ assertThat(fatJar).isNotEmpty();
+ try (JarFile jarFile = new JarFile(fatJar)) {
+ assertThat(jarFile.getJarEntry("BOOT-INF/lib/spring-boot-devtools-2.7.2.jar")).isNotNull();
+ assertThat(jarFile.getJarEntry("BOOT-INF/classes/application.properties")).isNotNull();
+ }
+ }
+
+ private JavaProject createSpringBootJavaProject() {
+ return JavaProject.builder()
+ .baseDirectory(temporaryFolder)
+ .outputDirectory(temporaryFolder.toPath().resolve("target").toFile())
+ .dependency(Dependency.builder()
+ .groupId("org.springframework.boot")
+ .artifactId("spring-boot-web")
+ .version("2.7.2")
+ .build())
+ .build();
+ }
+
+ private void createDummyJar(File jarFile) throws IOException {
+ Manifest manifest = new Manifest();
+ manifest.getMainAttributes().put(Attributes.Name.MANIFEST_VERSION, "1.0");
+ manifest.getMainAttributes().put(Attributes.Name.MAIN_CLASS, "org.example.Foo");
+ JarOutputStream jarOutputStream = new JarOutputStream(Files.newOutputStream(jarFile.toPath()), manifest);
+ jarOutputStream.closeEntry();
+ }
+}
diff --git a/jkube-kit/jkube-kit-spring-boot/src/test/resources/devtools-application-properties/application.properties b/jkube-kit/jkube-kit-spring-boot/src/test/resources/devtools-application-properties/application.properties
index 51acd0c109..a9ce5ec549 100644
--- a/jkube-kit/jkube-kit-spring-boot/src/test/resources/devtools-application-properties/application.properties
+++ b/jkube-kit/jkube-kit-spring-boot/src/test/resources/devtools-application-properties/application.properties
@@ -1 +1 @@
-spring.devtools.remote.secret=some-secret
\ No newline at end of file
+spring.devtools.remote.secret=some-secret
From e40255d7ac51901c94cdad0be47a8f75a7aca57d Mon Sep 17 00:00:00 2001
From: Marc Nuri
Date: Tue, 18 Jul 2023 07:30:27 +0200
Subject: [PATCH 41/65] ci: codecov analysis with secret token
Signed-off-by: Marc Nuri
---
.jenkins/pipelines/sonar.Jenkinsfile | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/.jenkins/pipelines/sonar.Jenkinsfile b/.jenkins/pipelines/sonar.Jenkinsfile
index 41dd7968b6..a409288e94 100644
--- a/.jenkins/pipelines/sonar.Jenkinsfile
+++ b/.jenkins/pipelines/sonar.Jenkinsfile
@@ -24,7 +24,9 @@ pipeline {
'-Dsonar.pullrequest.branch=${GIT_BRANCH} ' +
'-Dsonar.pullrequest.base=master'
// CodeCov
- sh 'wget -O - https://codecov.io/bash | bash'
+ withCredentials([string(credentialsId: 'CODECOV_TOKEN', variable: 'CODECOV_TOKEN')]) {
+ sh 'wget -O - https://codecov.io/bash | bash -s -- -t $CODECOV_TOKEN'
+ }
}
}
stage('Sonar (main)') {
From 6db3af1ecdd7595e4411dccc0872fb4823909536 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 18 Jul 2023 05:47:26 +0000
Subject: [PATCH 42/65] chore(deps): Bump maven-plugin-annotations from 3.6.0
to 3.9.0
Bumps [maven-plugin-annotations](https://github.com/apache/maven-plugin-tools) from 3.6.0 to 3.9.0.
- [Release notes](https://github.com/apache/maven-plugin-tools/releases)
- [Commits](https://github.com/apache/maven-plugin-tools/compare/maven-plugin-tools-3.6.0...maven-plugin-tools-3.9.0)
---
updated-dependencies:
- dependency-name: org.apache.maven.plugin-tools:maven-plugin-annotations
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
jkube-kit/parent/pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/jkube-kit/parent/pom.xml b/jkube-kit/parent/pom.xml
index c0689938b0..661f1f0795 100644
--- a/jkube-kit/parent/pom.xml
+++ b/jkube-kit/parent/pom.xml
@@ -52,7 +52,7 @@
3.6.03.6.33.3.1
- 3.6.0
+ 3.9.00.2.21.0.76${version.kubernetes-client}
From 67f2824cac61c7c846d4435b7f6a2ef0896ffe48 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 18 Jul 2023 05:35:53 +0000
Subject: [PATCH 43/65] chore(deps): Bump commons-io from 2.8.0 to 2.13.0
Bumps commons-io from 2.8.0 to 2.13.0.
---
updated-dependencies:
- dependency-name: commons-io:commons-io
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pom.xml b/pom.xml
index 1eced2c925..06ac7ccabd 100644
--- a/pom.xml
+++ b/pom.xml
@@ -91,7 +91,7 @@
2.2.03.23.13.4.0
- 2.8.0
+ 2.13.06.1.12.4.2131.1-jre
From 8078c48186e242e734bf3f0c38b3eeba9835b349 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 18 Jul 2023 23:05:43 +0000
Subject: [PATCH 44/65] chore(deps): Bump version.junit5 from 5.9.2 to 5.9.3
Bumps `version.junit5` from 5.9.2 to 5.9.3.
Updates `junit-jupiter-engine` from 5.9.2 to 5.9.3
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.9.2...r5.9.3)
Updates `junit-jupiter-params` from 5.9.2 to 5.9.3
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.9.2...r5.9.3)
---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter-engine
dependency-type: direct:production
update-type: version-update:semver-patch
- dependency-name: org.junit.jupiter:junit-jupiter-params
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pom.xml b/pom.xml
index 06ac7ccabd..80bac9954d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -99,7 +99,7 @@
0.8.101.492.4.10
- 5.9.2
+ 5.9.36.7.24.21.18.28
From cae7cef294f8935b1fd2c753c04ed997a9d36fb7 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 19 Jul 2023 23:55:18 +0000
Subject: [PATCH 45/65] chore(deps-dev): Bump assertj-core from 3.23.1 to
3.24.2
Bumps assertj-core from 3.23.1 to 3.24.2.
---
updated-dependencies:
- dependency-name: org.assertj:assertj-core
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pom.xml b/pom.xml
index 80bac9954d..87c5c8c5e4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -89,7 +89,7 @@
UTF-82.2.22.2.0
- 3.23.1
+ 3.24.23.4.02.13.06.1.1
From fdc0b310442892e6662c86f5ab8e5638e3ef14c3 Mon Sep 17 00:00:00 2001
From: Marc Nuri
Date: Thu, 20 Jul 2023 10:09:46 +0200
Subject: [PATCH 46/65] ci:fix: license check pipeline recurses into
sub-projects
Signed-off-by: Marc Nuri
---
pom.xml | 1 +
1 file changed, 1 insertion(+)
diff --git a/pom.xml b/pom.xml
index 87c5c8c5e4..7bb82dfd99 100644
--- a/pom.xml
+++ b/pom.xml
@@ -142,6 +142,7 @@
${version.license-maven-plugin}true
+ trueRed Hat, Inc.
From 5da6068d7756784aef9569568ee80f98da97e296 Mon Sep 17 00:00:00 2001
From: Marc Nuri
Date: Thu, 20 Jul 2023 11:21:41 +0200
Subject: [PATCH 47/65] chore: update license headers to comply with updated
license maven plugin config
Signed-off-by: Marc Nuri
---
gradle-plugin/it/src/it/autotls/build.gradle | 13 +++++++++++++
gradle-plugin/it/src/it/configmap/build.gradle | 13 +++++++++++++
.../configmap/src/main/java/zero/Application.java | 2 +-
.../src/main/java/zero/HelloController.java | 2 +-
gradle-plugin/it/src/it/controller/build.gradle | 13 +++++++++++++
gradle-plugin/it/src/it/debug-mode/build.gradle | 13 +++++++++++++
.../src/it/dependency-resources/settings.gradle | 13 +++++++++++++
.../it/src/it/dockerfile-simple/build.gradle | 13 +++++++++++++
gradle-plugin/it/src/it/expose/build.gradle | 13 +++++++++++++
.../src/it/extension-configuration/build.gradle | 13 +++++++++++++
.../src/it/fragments-custom-mapping/build.gradle | 13 +++++++++++++
.../src/main/jkube/first-fl.yaml | 14 ++++++++++++++
.../src/main/jkube/first-mtpl.yaml | 14 ++++++++++++++
.../src/main/jkube/full.yaml | 14 ++++++++++++++
.../src/main/jkube/second-my_template.yml | 14 ++++++++++++++
.../it/src/it/git-annotations/build.gradle | 13 +++++++++++++
.../groovy-dsl-container-resources/build.gradle | 13 +++++++++++++
.../it/src/it/groovy-dsl-image/build.gradle | 13 +++++++++++++
.../it/src/it/helidon-properties/build.gradle | 13 +++++++++++++
.../jkube/it/gradle/helidon/GreetResource.java | 2 +-
.../jkube/it/gradle/helidon/GreetingProvider.java | 2 +-
.../src/main/resources/META-INF/beans.xml | 15 +++++++++++++++
.../META-INF/microprofile-config.properties | 14 ++++++++++++++
gradle-plugin/it/src/it/helidon/build.gradle | 13 +++++++++++++
.../jkube/it/gradle/helidon/GreetResource.java | 2 +-
.../jkube/it/gradle/helidon/GreetingProvider.java | 2 +-
.../helidon/src/main/resources/META-INF/beans.xml | 15 +++++++++++++++
.../META-INF/microprofile-config.properties | 14 ++++++++++++++
gradle-plugin/it/src/it/helm-dsl/build.gradle | 13 +++++++++++++
.../it/src/it/helm-fragment-and-dsl/build.gradle | 13 +++++++++++++
.../src/main/jkube/Chart.helm.yaml | 14 ++++++++++++++
.../it/src/it/helm-fragment/build.gradle | 13 +++++++++++++
.../helm-fragment/src/main/jkube/Chart.helm.yaml | 14 ++++++++++++++
.../it/src/it/helm-properties/build.gradle | 13 +++++++++++++
.../it/src/it/helm-properties/gradle.properties | 14 ++++++++++++++
.../it/src/it/helm-zero-config/build.gradle | 13 +++++++++++++
.../it/src/it/imagechangetrigger/build.gradle | 13 +++++++++++++
.../it/src/it/imagepullpolicy/build.gradle | 13 +++++++++++++
gradle-plugin/it/src/it/ingress/build.gradle | 13 +++++++++++++
.../it/src/it/initcontainers/build.gradle | 13 +++++++++++++
.../it/src/it/java-options-env-merge/build.gradle | 13 +++++++++++++
gradle-plugin/it/src/it/metadata/build.gradle | 13 +++++++++++++
.../it/src/it/multi-environments/build.gradle | 13 +++++++++++++
.../it/src/it/multiple-services/build.gradle | 13 +++++++++++++
gradle-plugin/it/src/it/name/build.gradle | 13 +++++++++++++
gradle-plugin/it/src/it/namespace/build.gradle | 13 +++++++++++++
gradle-plugin/it/src/it/openliberty/build.gradle | 13 +++++++++++++
.../tests/gradle/openliberty/HelloController.java | 2 +-
.../openliberty/OpenlibertyRestApplication.java | 2 +-
.../src/it/probes-groovy-dsl-config/build.gradle | 13 +++++++++++++
.../ProbesGroovyDSLConfigResource.java | 2 +-
.../ProbesGroovyDslConfigApplication.java | 2 +-
.../it/src/it/project-label/build.gradle | 13 +++++++++++++
.../it/src/it/revisionhistory/build.gradle | 13 +++++++++++++
gradle-plugin/it/src/it/route/build.gradle | 13 +++++++++++++
gradle-plugin/it/src/it/secret-file/build.gradle | 13 +++++++++++++
.../it/src/it/security-hardening/build.gradle | 13 +++++++++++++
gradle-plugin/it/src/it/service/build.gradle | 13 +++++++++++++
.../it/src/it/serviceaccount/build.gradle | 13 +++++++++++++
.../build.gradle | 13 +++++++++++++
.../serviceaccounts-via-groovy-dsl/build.gradle | 13 +++++++++++++
gradle-plugin/it/src/it/simple/build.gradle | 13 +++++++++++++
.../it/src/it/smallrye-health/build.gradle | 13 +++++++++++++
.../it/src/it/smallrye-health/settings.gradle | 13 +++++++++++++
.../jkube/it/gradle/smallrye/HelloServlet.java | 2 +-
.../smallrye/health/CDIBasedHealthCheck.java | 2 +-
.../smallrye/health/CDIBasedLivenessCheck.java | 2 +-
.../smallrye/health/CDIBasedReadinessCheck.java | 2 +-
.../smallrye/health/CDIBasedStartupCheck.java | 2 +-
.../src/it/spring-boot-with-fragment/build.gradle | 13 +++++++++++++
.../jkube/it/gradle/spring/boot/Application.java | 2 +-
gradle-plugin/it/src/it/spring-boot/build.gradle | 13 +++++++++++++
.../jkube/it/gradle/spring/boot/Application.java | 2 +-
.../it/src/it/triggersannotation/build.gradle | 13 +++++++++++++
gradle-plugin/it/src/it/vertx/build.gradle | 13 +++++++++++++
.../jkube/it/gradle/vertx/MainVerticle.java | 2 +-
.../it/src/it/volume-permission/build.gradle | 13 +++++++++++++
.../jkube/gradle/plugin/tests/AutoTLSIT.java | 2 +-
.../jkube/gradle/plugin/tests/ConfigMapIT.java | 2 +-
.../jkube/gradle/plugin/tests/DebugModeIT.java | 2 +-
.../gradle/plugin/tests/DefaultControllerIT.java | 2 +-
.../gradle/plugin/tests/DefaultMetadataIT.java | 2 +-
.../plugin/tests/DependencyResourcesIT.java | 2 +-
.../gradle/plugin/tests/DockerfileSimpleIT.java | 2 +-
.../jkube/gradle/plugin/tests/ExposeIT.java | 2 +-
.../jkube/gradle/plugin/tests/FileSecretIT.java | 2 +-
.../jkube/gradle/plugin/tests/FragmentsIT.java | 2 +-
.../gradle/plugin/tests/GitAnnotationsIT.java | 2 +-
.../tests/GroovyDSLContainerResourcesIT.java | 2 +-
.../gradle/plugin/tests/GroovyDSLImageIT.java | 2 +-
.../jkube/gradle/plugin/tests/HelidonIT.java | 2 +-
.../gradle/plugin/tests/HelidonPropertiesIT.java | 2 +-
.../eclipse/jkube/gradle/plugin/tests/HelmIT.java | 2 +-
.../plugin/tests/ITGradleRunnerExtension.java | 2 +-
.../gradle/plugin/tests/ImageChangeTriggerIT.java | 2 +-
.../gradle/plugin/tests/ImagePullPolicyIT.java | 2 +-
.../jkube/gradle/plugin/tests/IngressIT.java | 2 +-
.../gradle/plugin/tests/InitContainersIT.java | 2 +-
.../plugin/tests/JavaOptionsEnvMergeIT.java | 2 +-
.../tests/KubernetesConfiguredControllerIT.java | 2 +-
.../plugin/tests/KubernetesExtensionIT.java | 2 +-
.../gradle/plugin/tests/MultiEnvironmentsIT.java | 2 +-
.../gradle/plugin/tests/MultipleServicesIT.java | 2 +-
.../eclipse/jkube/gradle/plugin/tests/NameIT.java | 2 +-
.../jkube/gradle/plugin/tests/NamespaceIT.java | 2 +-
.../jkube/gradle/plugin/tests/OpenLibertyIT.java | 2 +-
.../tests/OpenShiftConfiguredControllerIT.java | 2 +-
.../gradle/plugin/tests/ProbesGroovyDSLIT.java | 2 +-
.../jkube/gradle/plugin/tests/ProjectLabelIT.java | 2 +-
.../gradle/plugin/tests/ResourceValidationIT.java | 2 +-
.../gradle/plugin/tests/RevisionHistoryIT.java | 2 +-
.../jkube/gradle/plugin/tests/RouteIT.java | 2 +-
.../gradle/plugin/tests/SecurityHardeningIT.java | 2 +-
.../gradle/plugin/tests/ServiceAccountIT.java | 2 +-
.../tests/ServiceAccountNameViaGroovyDSLIT.java | 2 +-
.../jkube/gradle/plugin/tests/ServiceIT.java | 2 +-
.../jkube/gradle/plugin/tests/SimpleIT.java | 2 +-
.../jkube/gradle/plugin/tests/SmallRyeIT.java | 2 +-
.../jkube/gradle/plugin/tests/SpringBootIT.java | 2 +-
.../plugin/tests/SpringBootWithFragmentIT.java | 2 +-
.../gradle/plugin/tests/TriggersAnnotationIT.java | 2 +-
.../jkube/gradle/plugin/tests/VertxIT.java | 2 +-
.../gradle/plugin/tests/VolumePermissionIT.java | 2 +-
.../jkube/gradle/plugin/AbstractJKubePlugin.java | 2 +-
.../eclipse/jkube/gradle/plugin/GradleLogger.java | 2 +-
.../eclipse/jkube/gradle/plugin/GradleUtil.java | 2 +-
.../eclipse/jkube/gradle/plugin/GroovyUtil.java | 2 +-
.../eclipse/jkube/gradle/plugin/JKubePlugin.java | 2 +-
.../jkube/gradle/plugin/KubernetesExtension.java | 2 +-
.../jkube/gradle/plugin/KubernetesPlugin.java | 2 +-
.../gradle/plugin/task/AbstractJKubeTask.java | 2 +-
.../jkube/gradle/plugin/task/JKubeTask.java | 2 +-
.../gradle/plugin/task/KubernetesApplyTask.java | 2 +-
.../gradle/plugin/task/KubernetesBuildTask.java | 2 +-
.../plugin/task/KubernetesConfigViewTask.java | 2 +-
.../gradle/plugin/task/KubernetesDebugTask.java | 2 +-
.../plugin/task/KubernetesHelmPushTask.java | 2 +-
.../gradle/plugin/task/KubernetesHelmTask.java | 2 +-
.../gradle/plugin/task/KubernetesJKubeTask.java | 2 +-
.../gradle/plugin/task/KubernetesLogTask.java | 2 +-
.../gradle/plugin/task/KubernetesPushTask.java | 2 +-
.../plugin/task/KubernetesRemoteDevTask.java | 2 +-
.../plugin/task/KubernetesResourceTask.java | 2 +-
.../plugin/task/KubernetesUndeployTask.java | 2 +-
.../gradle/plugin/task/KubernetesWatchTask.java | 2 +-
.../jkube/gradle/plugin/task/TaskUtil.java | 2 +-
.../jkube/gradle/plugin/GradleUtilTest.java | 2 +-
.../jkube/gradle/plugin/GroovyUtilTest.java | 2 +-
.../jkube/gradle/plugin/JKubePluginTest.java | 2 +-
.../plugin/KubernetesExtensionPropertyTest.java | 2 +-
.../gradle/plugin/KubernetesExtensionTest.java | 2 +-
.../plugin/KubernetesPluginRegisterTaskTest.java | 2 +-
.../jkube/gradle/plugin/KubernetesPluginTest.java | 2 +-
.../gradle/plugin/TestKubernetesExtension.java | 2 +-
.../plugin/task/KubernetesApplyTaskTest.java | 2 +-
.../plugin/task/KubernetesBuildTaskTest.java | 2 +-
.../plugin/task/KubernetesConfigViewTaskTest.java | 2 +-
.../plugin/task/KubernetesDebugTaskTest.java | 2 +-
.../plugin/task/KubernetesHelmPushTaskTest.java | 2 +-
.../plugin/task/KubernetesHelmTaskTest.java | 2 +-
.../gradle/plugin/task/KubernetesLogTaskTest.java | 2 +-
.../plugin/task/KubernetesPushTaskTest.java | 2 +-
.../plugin/task/KubernetesRemoteDevTaskTest.java | 2 +-
.../plugin/task/KubernetesResourceTaskTest.java | 2 +-
.../plugin/task/KubernetesUndeployTaskTest.java | 2 +-
.../plugin/task/KubernetesWatchTaskTest.java | 2 +-
.../plugin/task/TaskEnvironmentExtension.java | 2 +-
.../jkube/gradle/plugin/task/TaskUtilTest.java | 2 +-
.../jkube/gradle/plugin/OpenShiftExtension.java | 2 +-
.../jkube/gradle/plugin/OpenShiftPlugin.java | 2 +-
.../gradle/plugin/task/OpenShiftApplyTask.java | 2 +-
.../gradle/plugin/task/OpenShiftBuildTask.java | 2 +-
.../gradle/plugin/task/OpenShiftDebugTask.java | 2 +-
.../gradle/plugin/task/OpenShiftHelmPushTask.java | 2 +-
.../gradle/plugin/task/OpenShiftHelmTask.java | 2 +-
.../gradle/plugin/task/OpenShiftJKubeTask.java | 2 +-
.../gradle/plugin/task/OpenShiftPushTask.java | 2 +-
.../plugin/task/OpenShiftRemoteDevTask.java | 2 +-
.../gradle/plugin/task/OpenShiftResourceTask.java | 2 +-
.../gradle/plugin/task/OpenShiftUndeployTask.java | 2 +-
.../gradle/plugin/task/OpenShiftWatchTask.java | 2 +-
.../plugin/OpenShiftExtensionPropertyTest.java | 2 +-
.../gradle/plugin/OpenShiftExtensionTest.java | 2 +-
.../plugin/OpenShiftPluginRegisterTaskTest.java | 2 +-
.../jkube/gradle/plugin/OpenShiftPluginTest.java | 2 +-
.../gradle/plugin/TestOpenShiftExtension.java | 2 +-
.../plugin/task/OpenShiftApplyTaskTest.java | 2 +-
.../plugin/task/OpenShiftBuildTaskTest.java | 2 +-
.../plugin/task/OpenShiftDebugTaskTest.java | 2 +-
.../plugin/task/OpenShiftHelmPushTaskTest.java | 2 +-
.../gradle/plugin/task/OpenShiftHelmTaskTest.java | 2 +-
.../gradle/plugin/task/OpenShiftPushTaskTest.java | 2 +-
.../plugin/task/OpenShiftRemoteDevTaskTest.java | 2 +-
.../plugin/task/OpenShiftResourceTaskTest.java | 2 +-
.../plugin/task/OpenShiftUndeployTaskTest.java | 2 +-
.../plugin/task/OpenShiftWatchTaskTest.java | 2 +-
.../plugin/task/TaskEnvironmentExtension.java | 2 +-
.../java/org/eclipse/jkube/api/JKubePlugin.java | 2 +-
.../jkube/kit/build/api/RegistryContext.java | 2 +-
.../build/api/assembly/ArchiverCustomizer.java | 2 +-
.../api/assembly/AssemblyConfigurationSource.java | 2 +-
.../api/assembly/AssemblyConfigurationUtils.java | 2 +-
.../kit/build/api/assembly/AssemblyFiles.java | 2 +-
.../kit/build/api/assembly/AssemblyManager.java | 2 +-
.../jkube/kit/build/api/assembly/BuildDirs.java | 2 +-
.../build/api/assembly/JKubeBuildTarArchiver.java | 2 +-
.../jkube/kit/build/api/auth/AuthConfig.java | 2 +-
.../jkube/kit/build/api/auth/RegistryAuth.java | 2 +-
.../kit/build/api/auth/RegistryAuthConfig.java | 2 +-
.../kit/build/api/auth/RegistryAuthHandler.java | 2 +-
.../handler/FromConfigRegistryAuthHandler.java | 2 +-
.../handler/OpenShiftRegistryAuthHandler.java | 2 +-
.../SystemPropertyRegistryAuthHandler.java | 2 +-
.../jkube/kit/build/api/helper/BuildUtil.java | 2 +-
.../kit/build/api/helper/DockerFileUtil.java | 2 +-
.../api/helper/KubernetesConfigAuthUtil.java | 2 +-
.../jkube/kit/build/api/helper/RegistryUtil.java | 2 +-
.../jkube/kit/build/api/model/Container.java | 2 +-
.../kit/build/api/model/ContainerDetails.java | 2 +-
.../build/api/model/ContainersListElement.java | 2 +-
.../jkube/kit/build/api/model/ExecDetails.java | 2 +-
.../jkube/kit/build/api/model/Network.java | 2 +-
.../kit/build/api/model/NetworkCreateConfig.java | 2 +-
.../kit/build/api/model/NetworksListElement.java | 2 +-
.../jkube/kit/build/api/model/PortMapping.java | 2 +-
.../kit/build/api/model/VolumeCreateConfig.java | 2 +-
.../assembly/AssemblyConfigurationSourceTest.java | 2 +-
.../assembly/AssemblyConfigurationUtilsTest.java | 2 +-
...AssemblyManagerCreateDockerTarArchiveTest.java | 2 +-
.../build/api/assembly/AssemblyManagerTest.java | 2 +-
...rVerifyAssemblyReferencedInDockerfileTest.java | 2 +-
.../kit/build/api/auth/RegistryAuthTest.java | 2 +-
.../FromConfigRegistryAuthHandlerTest.java | 2 +-
.../handler/OpenShiftRegistryAuthHandlerTest.java | 2 +-
.../SystemPropertyRegistryAuthHandlerTest.java | 2 +-
.../jkube/kit/build/api/helper/BuildUtilTest.java | 2 +-
.../kit/build/api/helper/DockerFileUtilTest.java | 2 +-
.../api/helper/KubernetesConfigAuthUtilTest.java | 2 +-
.../jkube/kit/build/api/helper/PathTestUtil.java | 2 +-
.../kit/build/api/helper/RegistryUtilTest.java | 2 +-
.../eclipse/jkube/kit/build/core/GavLabel.java | 2 +-
.../kit/build/service/docker/ArchiveService.java | 2 +-
.../kit/build/service/docker/BuildService.java | 2 +-
.../build/service/docker/ContainerTracker.java | 2 +-
.../build/service/docker/DockerAccessFactory.java | 2 +-
.../build/service/docker/DockerServiceHub.java | 2 +-
.../kit/build/service/docker/ImagePullCache.java | 2 +-
.../build/service/docker/ImagePullManager.java | 2 +-
.../kit/build/service/docker/QueryService.java | 2 +-
.../kit/build/service/docker/RegistryService.java | 2 +-
.../kit/build/service/docker/RunService.java | 2 +-
.../kit/build/service/docker/VolumeService.java | 2 +-
.../kit/build/service/docker/WaitService.java | 2 +-
.../kit/build/service/docker/WatchService.java | 2 +-
.../build/service/docker/access/BuildOptions.java | 2 +-
.../docker/access/ContainerCreateConfig.java | 2 +-
.../docker/access/ContainerHostConfig.java | 2 +-
.../docker/access/ContainerNetworkingConfig.java | 2 +-
.../service/docker/access/CreateImageOptions.java | 2 +-
.../build/service/docker/access/DockerAccess.java | 2 +-
.../docker/access/DockerAccessException.java | 2 +-
.../docker/access/DockerConnectionDetector.java | 2 +-
.../service/docker/access/DockerMachine.java | 2 +-
.../service/docker/access/ExecException.java | 2 +-
.../build/service/docker/access/KeyStoreUtil.java | 2 +-
.../build/service/docker/access/UrlBuilder.java | 2 +-
.../access/chunked/BuildJsonResponseHandler.java | 2 +-
.../access/chunked/EntityStreamReaderUtil.java | 2 +-
.../chunked/PullOrPushResponseJsonHandler.java | 2 +-
.../access/hc/ApacheHttpClientDelegate.java | 2 +-
.../access/hc/DockerAccessWithHcClient.java | 2 +-
.../hc/HcChunkedResponseHandlerWrapper.java | 2 +-
.../docker/access/hc/http/HttpClientBuilder.java | 2 +-
.../access/hc/http/HttpRequestException.java | 2 +-
.../hc/unix/UnixConnectionSocketFactory.java | 2 +-
.../service/docker/access/hc/unix/UnixSocket.java | 2 +-
.../access/hc/unix/UnixSocketClientBuilder.java | 2 +-
.../hc/util/AbstractNativeClientBuilder.java | 2 +-
.../hc/util/AbstractNativeSocketFactory.java | 2 +-
.../docker/access/hc/util/ClientBuilder.java | 2 +-
.../service/docker/access/hc/win/NamedPipe.java | 2 +-
.../access/hc/win/NamedPipeClientBuilder.java | 2 +-
.../hc/win/NpipeConnectionSocketFactory.java | 2 +-
.../docker/access/hc/win/NpipeSocketAddress.java | 2 +-
.../docker/access/log/DefaultLogCallback.java | 2 +-
.../service/docker/access/log/LogCallback.java | 2 +-
.../service/docker/access/log/LogDispatcher.java | 2 +-
.../service/docker/access/log/LogGetHandle.java | 2 +-
.../service/docker/access/log/LogOutputSpec.java | 2 +-
.../docker/access/log/LogOutputSpecFactory.java | 2 +-
.../service/docker/access/log/LogRequestor.java | 2 +-
.../docker/access/log/SharedPrintStream.java | 2 +-
.../service/docker/auth/AuthConfigFactory.java | 2 +-
.../docker/auth/CredentialHelperClient.java | 2 +-
.../docker/auth/DockerRegistryAuthHandler.java | 2 +-
.../docker/auth/ecr/AwsSdkAuthConfigFactory.java | 2 +-
.../service/docker/auth/ecr/AwsSdkHelper.java | 2 +-
.../build/service/docker/auth/ecr/AwsSigner4.java | 2 +-
.../docker/auth/ecr/AwsSigner4Request.java | 2 +-
.../service/docker/auth/ecr/EcrExtendedAuth.java | 2 +-
.../docker/config/DockerMachineConfiguration.java | 2 +-
.../docker/config/VolumeConfiguration.java | 2 +-
.../config/handler/ExternalConfigHandler.java | 2 +-
.../handler/ExternalConfigHandlerException.java | 2 +-
.../config/handler/ImageConfigResolver.java | 2 +-
.../docker/config/handler/property/ConfigKey.java | 2 +-
.../handler/property/PropertyConfigHandler.java | 2 +-
.../config/handler/property/PropertyMode.java | 2 +-
.../handler/property/ValueCombinePolicy.java | 2 +-
.../config/handler/property/ValueProvider.java | 2 +-
.../service/docker/helper/AnsiLoggerFacade.java | 2 +-
.../build/service/docker/helper/AutoPullMode.java | 2 +-
.../build/service/docker/helper/ConfigHelper.java | 2 +-
.../docker/helper/ContainerNamingUtil.java | 2 +-
.../service/docker/helper/DockerPathUtil.java | 2 +-
.../build/service/docker/helper/EnvCommand.java | 2 +-
.../docker/helper/FormatParameterReplacer.java | 2 +-
.../service/docker/helper/ImageNameFormatter.java | 2 +-
.../service/docker/helper/LocalSocketUtil.java | 2 +-
.../build/service/docker/helper/RequestUtil.java | 2 +-
.../docker/helper/StartContainerExecutor.java | 2 +-
.../service/docker/helper/StartOrderResolver.java | 2 +-
.../service/docker/helper/SuffixFileFilter.java | 2 +-
.../kit/build/service/docker/helper/Task.java | 2 +-
.../build/service/docker/helper/Timestamp.java | 2 +-
.../service/docker/helper/VolumeBindingUtil.java | 2 +-
.../service/docker/wait/ExitCodeChecker.java | 2 +-
.../service/docker/wait/HealthCheckChecker.java | 2 +-
.../service/docker/wait/HttpPingChecker.java | 2 +-
.../service/docker/wait/LogMatchCallback.java | 2 +-
.../build/service/docker/wait/LogWaitChecker.java | 2 +-
.../docker/wait/LogWaitCheckerCallback.java | 2 +-
.../docker/wait/PreconditionFailedException.java | 2 +-
.../build/service/docker/wait/TcpPortChecker.java | 2 +-
.../build/service/docker/wait/WaitChecker.java | 2 +-
.../service/docker/wait/WaitTimeoutException.java | 2 +-
.../kit/build/service/docker/wait/WaitUtil.java | 2 +-
.../build/service/docker/watch/CopyFilesTask.java | 2 +-
.../kit/build/service/docker/watch/ExecTask.java | 2 +-
.../build/service/docker/watch/WatchContext.java | 2 +-
.../service/docker/watch/WatchException.java | 2 +-
.../build/service/docker/BuildServiceTest.java | 2 +-
.../service/docker/ImagePullManagerTest.java | 2 +-
.../service/docker/RegistryServicePullIT.java | 2 +-
.../service/docker/RegistryServicePushIT.java | 2 +-
.../build/service/docker/RegistryServiceTest.java | 2 +-
.../build/service/docker/WatchServiceTest.java | 2 +-
.../service/docker/access/BuildConfigTest.java | 2 +-
.../access/KeyStoreUtilLoadPrivateKeyTest.java | 2 +-
.../service/docker/access/KeyStoreUtilTest.java | 2 +-
.../access/hc/ApacheHttpClientDelegateTest.java | 2 +-
.../hc/DockerAccessWithHcClientMockitoTest.java | 2 +-
.../access/hc/DockerAccessWithHcClientTest.java | 2 +-
.../hc/HcChunkedResponseHandlerWrapperTest.java | 2 +-
.../docker/access/hc/unix/UnixSocketTest.java | 2 +-
.../docker/auth/AuthConfigFactoryTest.java | 3 +--
.../docker/auth/CredentialHelperClientTest.java | 2 +-
.../auth/ecr/AwsSdkAuthConfigFactoryTest.java | 2 +-
.../docker/auth/ecr/AwsSigner4RequestTest.java | 2 +-
.../auth/ecr/DockerRegistryAuthHandlerTest.java | 2 +-
.../docker/auth/ecr/EcrExtendedAuthTest.java | 2 +-
.../handler/RegistryServerConfigurationTest.java | 2 +-
.../property/PropertyConfigHandlerTest.java | 2 +-
.../docker/helper/AnsiLoggerFacadeTest.java | 2 +-
.../service/docker/helper/AutoPullModeTest.java | 2 +-
.../service/docker/helper/ConfigHelperTest.java | 2 +-
.../docker/helper/ImageNameFormatterTest.java | 2 +-
.../jkube/kit/service/jib/JibServiceUtil.java | 2 +-
.../jkube/kit/service/jib/JibServiceUtilTest.java | 2 +-
.../eclipse/jkube/kit/common/ResourceVerify.java | 2 +-
.../java/org/eclipse/jkube/maven/it/Verify.java | 2 +-
.../factory/NoSuchBeanDefinitionException.java | 2 +-
.../jkube/kit/common/ResourceVerifyTest.java | 2 +-
.../eclipse/jkube/kit/common/util/AnsiLogger.java | 2 +-
.../common/util/MavenConfigurationExtractor.java | 2 +-
.../eclipse/jkube/kit/common/util/MavenUtil.java | 2 +-
.../kit/common/util/MojoExecutionService.java | 2 +-
.../jkube/kit/common/util/MojoParameters.java | 2 +-
.../kit/common/util/AnsiLoggerFallbackTest.java | 2 +-
.../jkube/kit/common/util/AnsiLoggerTest.java | 2 +-
.../util/MavenConfigurationExtractorTest.java | 2 +-
.../jkube/kit/common/util/MavenUtilTest.java | 2 +-
.../org/eclipse/jkube/kit/common/Arguments.java | 2 +-
.../org/eclipse/jkube/kit/common/Assembly.java | 2 +-
.../jkube/kit/common/AssemblyConfiguration.java | 2 +-
.../eclipse/jkube/kit/common/AssemblyFile.java | 2 +-
.../jkube/kit/common/AssemblyFileEntry.java | 2 +-
.../eclipse/jkube/kit/common/AssemblyFileSet.java | 2 +-
.../eclipse/jkube/kit/common/AssemblyMode.java | 2 +-
.../org/eclipse/jkube/kit/common/Configs.java | 2 +-
.../eclipse/jkube/kit/common/DebugConstants.java | 2 +-
.../org/eclipse/jkube/kit/common/Dependency.java | 2 +-
.../eclipse/jkube/kit/common/ExternalCommand.java | 2 +-
.../kit/common/IngressControllerDetector.java | 2 +-
.../jkube/kit/common/JKubeConfiguration.java | 2 +-
.../jkube/kit/common/JKubeFileInterpolator.java | 2 +-
.../org/eclipse/jkube/kit/common/JavaProject.java | 2 +-
.../org/eclipse/jkube/kit/common/JsonFactory.java | 2 +-
.../org/eclipse/jkube/kit/common/KitLogger.java | 2 +-
.../org/eclipse/jkube/kit/common/Maintainer.java | 2 +-
.../java/org/eclipse/jkube/kit/common/Named.java | 2 +-
.../java/org/eclipse/jkube/kit/common/Plugin.java | 2 +-
.../eclipse/jkube/kit/common/PrefixedLogger.java | 2 +-
.../eclipse/jkube/kit/common/RegistryConfig.java | 2 +-
.../kit/common/RegistryServerConfiguration.java | 2 +-
.../jkube/kit/common/ResourceFileType.java | 2 +-
.../org/eclipse/jkube/kit/common/TimeUtil.java | 2 +-
.../kit/common/archive/ArchiveCompression.java | 2 +-
.../kit/common/archive/AssemblyFileSetUtils.java | 2 +-
.../kit/common/archive/AssemblyFileUtils.java | 2 +-
.../kit/common/archive/JKubeTarArchiver.java | 2 +-
.../jkube/kit/common/service/MigrateService.java | 2 +-
.../eclipse/jkube/kit/common/util/AnsiUtil.java | 2 +-
.../jkube/kit/common/util/AsciiDocParser.java | 2 +-
.../eclipse/jkube/kit/common/util/AsyncUtil.java | 2 +-
.../eclipse/jkube/kit/common/util/Base64Util.java | 2 +-
.../kit/common/util/BuildReferenceDateUtil.java | 2 +-
.../eclipse/jkube/kit/common/util/ClassUtil.java | 2 +-
.../jkube/kit/common/util/CommandLine.java | 2 +-
.../jkube/kit/common/util/DekorateUtil.java | 2 +-
.../eclipse/jkube/kit/common/util/EnvUtil.java | 2 +-
.../jkube/kit/common/util/Fabric8HttpUtil.java | 2 +-
.../eclipse/jkube/kit/common/util/FileUtil.java | 2 +-
.../eclipse/jkube/kit/common/util/GitUtil.java | 2 +-
.../org/eclipse/jkube/kit/common/util/IoUtil.java | 2 +-
.../jkube/kit/common/util/JKubeProjectUtil.java | 2 +-
.../kit/common/util/KindFilenameMapperUtil.java | 2 +-
.../jkube/kit/common/util/KubernetesHelper.java | 2 +-
.../jkube/kit/common/util/LazyBuilder.java | 2 +-
.../eclipse/jkube/kit/common/util/MapUtil.java | 2 +-
.../jkube/kit/common/util/OpenshiftHelper.java | 2 +-
.../kit/common/util/PluginServiceFactory.java | 2 +-
.../eclipse/jkube/kit/common/util/PodHelper.java | 2 +-
.../kit/common/util/ProjectClassLoaders.java | 2 +-
.../kit/common/util/PropertiesMappingParser.java | 2 +-
.../jkube/kit/common/util/PropertiesUtil.java | 2 +-
.../jkube/kit/common/util/ResourceClassifier.java | 2 +-
.../jkube/kit/common/util/ResourceUtil.java | 2 +-
.../kit/common/util/SemanticVersionUtil.java | 2 +-
.../jkube/kit/common/util/Serialization.java | 2 +-
.../jkube/kit/common/util/Slf4jKitLogger.java | 2 +-
.../util/SpringBootConfigurationHelper.java | 2 +-
.../jkube/kit/common/util/SpringBootUtil.java | 2 +-
.../jkube/kit/common/util/TemplateUtil.java | 2 +-
.../jkube/kit/common/util/ThorntailUtil.java | 2 +-
.../kit/common/util/UserConfigurationCompare.java | 2 +-
.../jkube/kit/common/util/ValidationUtil.java | 2 +-
.../eclipse/jkube/kit/common/util/XMLUtil.java | 2 +-
.../eclipse/jkube/kit/common/util/YamlUtil.java | 2 +-
.../util/validator/IgnorePortValidationRule.java | 2 +-
.../validator/IgnoreResourceMemoryLimitRule.java | 2 +-
.../common/util/validator/ResourceValidator.java | 2 +-
.../kit/common/util/validator/ValidationRule.java | 2 +-
.../eclipse/jkube/kit/common/ArgumentsTest.java | 2 +-
.../kit/common/AssemblyConfigurationTest.java | 2 +-
.../jkube/kit/common/ConfigsAsBooleanTest.java | 2 +-
.../org/eclipse/jkube/kit/common/ConfigsTest.java | 2 +-
.../jkube/kit/common/JKubeConfigurationTest.java | 2 +-
.../kit/common/JKubeFileInterpolatorTest.java | 2 +-
.../eclipse/jkube/kit/common/JavaProjectTest.java | 2 +-
.../eclipse/jkube/kit/common/MaintainerTest.java | 2 +-
.../jkube/kit/common/RegistryConfigTest.java | 2 +-
.../jkube/kit/common/TestHttpStaticServer.java | 2 +-
.../archive/AssemblyFileSetUtilsExcludesTest.java | 2 +-
...blyFileSetUtilsProcessAssemblyFileSetTest.java | 2 +-
.../common/archive/AssemblyFileSetUtilsTest.java | 2 +-
.../kit/common/archive/AssemblyFileUtilsTest.java | 2 +-
.../kit/common/archive/JKubeTarArchiverTest.java | 2 +-
.../kit/common/assertj/ArchiveAssertions.java | 2 +-
.../jkube/kit/common/assertj/FileAssertions.java | 2 +-
.../kit/common/service/MigrateServiceTest.java | 2 +-
.../jkube/kit/common/util/AsciiDocParserTest.java | 2 +-
.../jkube/kit/common/util/AsyncUtilTest.java | 2 +-
.../jkube/kit/common/util/Base64UtilTest.java | 2 +-
.../common/util/BuildReferenceDateUtilTest.java | 2 +-
.../jkube/kit/common/util/ClassUtilTest.java | 2 +-
.../jkube/kit/common/util/CommandlineTest.java | 2 +-
.../jkube/kit/common/util/DekorateUtilTest.java | 2 +-
.../jkube/kit/common/util/EnvUtilTest.java | 2 +-
.../kit/common/util/Fabric8HttpUtilTest.java | 2 +-
.../jkube/kit/common/util/FileUtilTest.java | 2 +-
.../eclipse/jkube/kit/common/util/IoUtilTest.java | 2 +-
.../kit/common/util/JKubeProjectUtilTest.java | 2 +-
.../common/util/KindFilenameMapperUtilTest.java | 2 +-
.../kit/common/util/KubernetesHelperTest.java | 2 +-
.../jkube/kit/common/util/LazyBuilderTest.java | 2 +-
.../jkube/kit/common/util/MapUtilTest.java | 2 +-
.../common/util/OpenshiftHelperStatusTest.java | 2 +-
.../kit/common/util/OpenshiftHelperTest.java | 2 +-
.../PluginServiceFactoryNestedContextTest.java | 2 +-
.../kit/common/util/PluginServiceFactoryTest.java | 2 +-
.../jkube/kit/common/util/PodHelperTest.java | 2 +-
.../kit/common/util/ProjectClassLoadersTest.java | 2 +-
.../common/util/PropertiesMappingParserTest.java | 2 +-
.../jkube/kit/common/util/PropertiesUtilTest.java | 2 +-
.../jkube/kit/common/util/ResourceUtilTest.java | 2 +-
.../kit/common/util/SemanticVersionUtilTest.java | 2 +-
.../jkube/kit/common/util/SerializationTest.java | 2 +-
.../jkube/kit/common/util/Slf4jKitLoggerTest.java | 2 +-
.../util/SpringBootConfigurationHelperTest.java | 2 +-
.../jkube/kit/common/util/SpringBootUtilTest.java | 2 +-
.../jkube/kit/common/util/TemplateUtilTest.java | 2 +-
.../kit/common/util/TestFabric8HttpResponse.java | 2 +-
.../jkube/kit/common/util/ThorntailUtilTest.java | 2 +-
.../common/util/UserConfigurationCompareTest.java | 2 +-
.../jkube/kit/common/util/XMLUtilTest.java | 2 +-
.../jkube/kit/common/util/YamlUtilTest.java | 2 +-
.../kit/common/util/mainclass/one/sub/Bogus1.java | 2 +-
.../kit/common/util/mainclass/one/sub/Bogus2.java | 2 +-
.../kit/common/util/mainclass/one/sub/Bogus3.java | 2 +-
.../common/util/mainclass/one/sub/OneMain.java | 2 +-
.../kit/common/util/mainclass/two/OneMain.java | 2 +-
.../two/another/sub/a/bit/deeper/TwoMain.java | 2 +-
.../kit/common/util/mainclass/zero/Bogus.java | 2 +-
.../util/validator/ResourceValidatorTest.java | 2 +-
.../kit/config/image/ImageConfiguration.java | 2 +-
.../eclipse/jkube/kit/config/image/ImageName.java | 2 +-
.../jkube/kit/config/image/LogConfiguration.java | 2 +-
.../jkube/kit/config/image/NetworkConfig.java | 2 +-
.../jkube/kit/config/image/RestartPolicy.java | 2 +-
.../kit/config/image/RunImageConfiguration.java | 2 +-
.../kit/config/image/RunVolumeConfiguration.java | 2 +-
.../jkube/kit/config/image/UlimitConfig.java | 2 +-
.../jkube/kit/config/image/WaitConfiguration.java | 2 +-
.../kit/config/image/WatchImageConfiguration.java | 2 +-
.../eclipse/jkube/kit/config/image/WatchMode.java | 2 +-
.../config/image/build/BuildConfiguration.java | 2 +-
.../config/image/build/BuildImageSelectMode.java | 2 +-
.../jkube/kit/config/image/build/CleanupMode.java | 2 +-
.../kit/config/image/build/DockerFileBuilder.java | 2 +-
.../kit/config/image/build/DockerFileKeyword.java | 2 +-
.../kit/config/image/build/DockerFileOption.java | 2 +-
.../image/build/HealthCheckConfiguration.java | 2 +-
.../kit/config/image/build/HealthCheckMode.java | 2 +-
.../kit/config/image/build/ImagePullPolicy.java | 2 +-
.../config/image/build/JKubeBuildStrategy.java | 2 +-
.../image/build/RegistryAuthConfiguration.java | 2 +-
.../image/build/util/BuildLabelAnnotations.java | 2 +-
.../kit/config/image/ImageConfigurationTest.java | 2 +-
.../config/image/ImageNameFullNameParseTest.java | 2 +-
.../jkube/kit/config/image/ImageNameTest.java | 2 +-
.../image/build/BuildConfigurationTest.java | 2 +-
.../kit/config/image/build/CleanupModeTest.java | 2 +-
.../config/image/build/DockerFileBuilderTest.java | 2 +-
.../config/image/build/HealthCheckConfigTest.java | 2 +-
.../jkube/kit/config/access/ClusterAccess.java | 2 +-
.../kit/config/access/ClusterConfiguration.java | 2 +-
.../kit/config/resource/BuildRecreateMode.java | 2 +-
.../jkube/kit/config/resource/ConfigMap.java | 2 +-
.../jkube/kit/config/resource/ConfigMapEntry.java | 2 +-
.../config/resource/ContainerResourcesConfig.java | 2 +-
.../config/resource/ControllerResourceConfig.java | 2 +-
.../kit/config/resource/EnricherManager.java | 2 +-
.../kit/config/resource/GroupArtifactVersion.java | 2 +-
.../jkube/kit/config/resource/IngressConfig.java | 2 +-
.../kit/config/resource/IngressRuleConfig.java | 2 +-
.../config/resource/IngressRulePathConfig.java | 2 +-
.../resource/IngressRulePathResourceConfig.java | 2 +-
.../kit/config/resource/IngressTlsConfig.java | 2 +-
.../kit/config/resource/InitContainerConfig.java | 2 +-
.../kit/config/resource/JKubeAnnotations.java | 2 +-
.../jkube/kit/config/resource/MappingConfig.java | 2 +-
.../jkube/kit/config/resource/MetaDataConfig.java | 2 +-
.../jkube/kit/config/resource/MetricsConfig.java | 2 +-
.../kit/config/resource/OpenShiftAnnotations.java | 2 +-
.../jkube/kit/config/resource/PlatformMode.java | 2 +-
.../jkube/kit/config/resource/ProbeConfig.java | 2 +-
.../kit/config/resource/ProcessorConfig.java | 2 +-
.../jkube/kit/config/resource/ResourceConfig.java | 2 +-
.../kit/config/resource/ResourceService.java | 2 +-
.../config/resource/ResourceServiceConfig.java | 2 +-
.../kit/config/resource/ResourceVersioning.java | 2 +-
.../jkube/kit/config/resource/RuntimeMode.java | 2 +-
.../jkube/kit/config/resource/SecretConfig.java | 2 +-
.../kit/config/resource/ServiceAccountConfig.java | 2 +-
.../jkube/kit/config/resource/ServiceConfig.java | 2 +-
.../kit/config/resource/ServiceProtocol.java | 2 +-
.../jkube/kit/config/resource/VolumeConfig.java | 2 +-
.../jkube/kit/config/resource/VolumeType.java | 2 +-
.../kit/config/access/ClusterAccessTest.java | 2 +-
.../config/access/ClusterConfigurationTest.java | 2 +-
.../resource/ContainerResourcesConfigTest.java | 2 +-
.../resource/ControllerResourceConfigTest.java | 2 +-
.../kit/config/resource/IngressConfigTest.java | 2 +-
.../config/resource/InitContainerConfigTest.java | 2 +-
.../kit/config/resource/JKubeAnnotationsTest.java | 2 +-
.../kit/config/resource/MappingConfigTest.java | 2 +-
.../kit/config/resource/ProcessorConfigTest.java | 2 +-
.../kit/config/resource/ResourceConfigTest.java | 2 +-
.../config/resource/ResourceVersioningTest.java | 2 +-
.../config/service/AbstractImageBuildService.java | 2 +-
.../jkube/kit/config/service/ApplyService.java | 2 +-
.../jkube/kit/config/service/BuildService.java | 2 +-
.../kit/config/service/BuildServiceConfig.java | 2 +-
.../kit/config/service/BuildServiceManager.java | 2 +-
.../jkube/kit/config/service/DebugService.java | 2 +-
.../kit/config/service/JKubeServiceException.java | 2 +-
.../jkube/kit/config/service/JKubeServiceHub.java | 2 +-
.../jkube/kit/config/service/PatchService.java | 2 +-
.../jkube/kit/config/service/PodLogService.java | 2 +-
.../kit/config/service/PortForwardService.java | 2 +-
.../jkube/kit/config/service/UndeployService.java | 2 +-
.../ContourIngressControllerDetector.java | 2 +-
.../IngressControllerDetectorManager.java | 2 +-
.../KongIngressControllerDetector.java | 2 +-
.../NginxIngressControllerDetector.java | 2 +-
.../OpenShiftIngressControllerDetector.java | 2 +-
.../service/kubernetes/DockerBuildService.java | 2 +-
.../service/kubernetes/JibBuildService.java | 2 +-
.../service/kubernetes/KubernetesClientUtil.java | 2 +-
.../kubernetes/KubernetesUndeployService.java | 2 +-
.../service/openshift/ImageStreamService.java | 2 +-
.../openshift/OpenShiftBuildServiceUtils.java | 2 +-
.../service/openshift/OpenshiftBuildService.java | 2 +-
.../openshift/OpenshiftUndeployService.java | 2 +-
.../service/plugins/DefaultPluginService.java | 2 +-
.../kit/config/service/plugins/PluginManager.java | 2 +-
.../kit/config/service/plugins/PluginService.java | 2 +-
.../service/portforward/PortForwardMonitor.java | 2 +-
.../portforward/PortForwardPodWatcher.java | 2 +-
.../service/portforward/PortForwardTask.java | 2 +-
.../kit/config/service/ApplyServiceTest.java | 3 +--
.../kit/config/service/DebugServiceTest.java | 2 +-
.../service/JKubeServiceHubBuildServiceTest.java | 2 +-
.../kit/config/service/JKubeServiceHubTest.java | 2 +-
.../kit/config/service/PatchServiceTest.java | 2 +-
.../service/PortForwardServicePortOrderTest.java | 2 +-
.../config/service/PortForwardServiceTest.java | 3 +--
.../ContourIngressControllerDetectorTest.java | 2 +-
.../IngressControllerDetectorManagerTest.java | 2 +-
.../KongIngressControllerDetectorTest.java | 2 +-
.../NginxIngressControllerDetectorTest.java | 2 +-
.../OpenShiftIngressControllerDetectorTest.java | 2 +-
.../kubernetes/DockerBuildServiceTest.java | 2 +-
.../JibBuildServiceBuildIntegrationTest.java | 2 +-
.../JibBuildServiceGetApplicableRegistryTest.java | 2 +-
.../service/kubernetes/JibBuildServiceTest.java | 2 +-
.../kubernetes/KubernetesClientUtilTest.java | 2 +-
.../kubernetes/KubernetesUndeployServiceTest.java | 3 +--
.../service/openshift/ImageStreamServiceTest.java | 2 +-
.../openshift/OpenShiftBuildServiceTest.java | 2 +-
.../openshift/OpenShiftBuildServiceUtilsTest.java | 2 +-
.../OpenshiftBuildServiceIntegrationTest.java | 2 +-
.../openshift/OpenshiftUndeployServiceTest.java | 2 +-
.../openshift/WebServerEventCollector.java | 2 +-
.../config/service/plugins/PluginManagerTest.java | 2 +-
.../config/service/plugins/PluginServiceTest.java | 2 +-
.../portforward/PortForwardMonitorTest.java | 2 +-
.../portforward/PortForwardPodWatcherTest.java | 2 +-
.../service/portforward/PortForwardTaskTest.java | 2 +-
.../jkube/kit/enricher/api/BaseEnricher.java | 2 +-
.../kit/enricher/api/DefaultEnricherManager.java | 2 +-
.../eclipse/jkube/kit/enricher/api/Enricher.java | 2 +-
.../jkube/kit/enricher/api/EnricherConfig.java | 2 +-
.../jkube/kit/enricher/api/EnricherContext.java | 2 +-
.../kit/enricher/api/JKubeEnricherContext.java | 2 +-
.../jkube/kit/enricher/api/ServiceExposer.java | 2 +-
.../kit/enricher/api/model/Configuration.java | 2 +-
.../jkube/kit/enricher/api/model/Dependency.java | 2 +-
.../jkube/kit/enricher/api/model/KindAndName.java | 2 +-
.../jkube/kit/enricher/api/util/Constants.java | 2 +-
.../jkube/kit/enricher/api/util/GoTimeUtil.java | 2 +-
.../api/util/KubernetesResourceFragments.java | 2 +-
.../enricher/api/util/KubernetesResourceUtil.java | 2 +-
.../eclipse/jkube/kit/enricher/api/util/Misc.java | 2 +-
.../kit/enricher/api/util/SecretConstants.java | 2 +-
.../kit/enricher/api/visitor/MetadataVisitor.java | 2 +-
.../kit/enricher/handler/ContainerHandler.java | 2 +-
.../kit/enricher/handler/ControllerHandler.java | 2 +-
.../handler/ControllerHandlerLazyBuilder.java | 2 +-
.../kit/enricher/handler/CronJobHandler.java | 2 +-
.../kit/enricher/handler/DaemonSetHandler.java | 2 +-
.../enricher/handler/DeploymentConfigHandler.java | 2 +-
.../kit/enricher/handler/DeploymentHandler.java | 2 +-
.../jkube/kit/enricher/handler/HandlerHub.java | 2 +-
.../jkube/kit/enricher/handler/JobHandler.java | 2 +-
.../kit/enricher/handler/NamespaceHandler.java | 2 +-
.../kit/enricher/handler/PodTemplateHandler.java | 2 +-
.../jkube/kit/enricher/handler/ProbeHandler.java | 2 +-
.../kit/enricher/handler/ProjectHandler.java | 2 +-
.../kit/enricher/handler/ReplicaSetHandler.java | 2 +-
.../handler/ReplicationControllerHandler.java | 2 +-
.../kit/enricher/handler/ServiceHandler.java | 2 +-
.../kit/enricher/handler/StatefulSetHandler.java | 2 +-
.../api/BaseEnricherGetReplicaCountTest.java | 2 +-
.../jkube/kit/enricher/api/BaseEnricherTest.java | 2 +-
.../enricher/api/DefaultEnricherManagerTest.java | 2 +-
.../kit/enricher/api/EnricherConfigTest.java | 2 +-
.../enricher/api/JKubeEnricherContextTest.java | 2 +-
.../kit/enricher/api/ServiceExposerTest.java | 2 +-
.../kit/enricher/api/model/KindAndNameTest.java | 2 +-
.../kit/enricher/api/util/GoTimeUtilTest.java | 2 +-
.../api/util/KubernetesResourceFragmentsTest.java | 2 +-
.../api/util/KubernetesResourceUtilTest.java | 2 +-
.../enricher/api/visitor/MetadataVisitorTest.java | 2 +-
.../enricher/handler/ContainerHandlerTest.java | 2 +-
.../kit/enricher/handler/CronJobHandlerTest.java | 2 +-
.../enricher/handler/DaemonSetHandlerTest.java | 2 +-
.../handler/DeploymentConfigHandlerTest.java | 2 +-
.../enricher/handler/DeploymentHandlerTest.java | 2 +-
.../handler/HandlerHubControllerTest.java | 2 +-
.../kit/enricher/handler/HandlerHubTest.java | 2 +-
.../kit/enricher/handler/JobHandlerTest.java | 2 +-
.../enricher/handler/PodTemplateHandlerTest.java | 2 +-
.../enricher/handler/ProbeHandlerHTTPUrlTest.java | 2 +-
.../kit/enricher/handler/ProbeHandlerTest.java | 2 +-
.../enricher/handler/ReplicaSetHandlerTest.java | 2 +-
.../handler/ReplicationControllerHandlerTest.java | 2 +-
.../kit/enricher/handler/ServiceHandlerTest.java | 2 +-
.../enricher/handler/StatefulSetHandlerTest.java | 2 +-
.../jkube/enricher/generic/ConfigMapEnricher.java | 2 +-
.../ContainerEnvJavaOptionsMergeEnricher.java | 2 +-
.../ControllerViaPluginConfigurationEnricher.java | 2 +-
.../jkube/enricher/generic/DebugEnricher.java | 2 +-
.../generic/DefaultControllerEnricher.java | 2 +-
.../enricher/generic/DefaultMetadataEnricher.java | 2 +-
.../generic/DefaultNamespaceEnricher.java | 2 +-
.../enricher/generic/DefaultServiceEnricher.java | 2 +-
.../enricher/generic/DependencyEnricher.java | 2 +-
.../generic/DockerRegistrySecretEnricher.java | 2 +-
.../enricher/generic/FileDataSecretEnricher.java | 2 +-
.../jkube/enricher/generic/GitEnricher.java | 2 +-
.../jkube/enricher/generic/ImageEnricher.java | 2 +-
.../enricher/generic/ImagePullPolicyEnricher.java | 2 +-
.../jkube/enricher/generic/IngressEnricher.java | 2 +-
.../generic/MavenIssueManagementEnricher.java | 2 +-
.../jkube/enricher/generic/MavenScmEnricher.java | 2 +-
.../jkube/enricher/generic/NameEnricher.java | 2 +-
...PersistentVolumeClaimStorageClassEnricher.java | 2 +-
.../enricher/generic/PodAnnotationEnricher.java | 2 +-
.../jkube/enricher/generic/PortNameEnricher.java | 2 +-
.../enricher/generic/ProjectLabelEnricher.java | 2 +-
.../enricher/generic/ReplicaCountEnricher.java | 2 +-
.../enricher/generic/RevisionHistoryEnricher.java | 2 +-
.../jkube/enricher/generic/SecretEnricher.java | 2 +-
.../generic/SecurityHardeningEnricher.java | 2 +-
.../enricher/generic/ServiceAccountEnricher.java | 2 +-
.../generic/TriggersAnnotationEnricher.java | 2 +-
.../generic/VolumePermissionEnricher.java | 2 +-
.../ExtensionsV1beta1IngressConverter.java | 2 +-
.../ingress/NetworkingV1IngressGenerator.java | 2 +-
.../generic/openshift/AutoTLSEnricher.java | 2 +-
.../openshift/DeploymentConfigEnricher.java | 2 +-
.../openshift/ImageChangeTriggerEnricher.java | 2 +-
.../generic/openshift/ProjectEnricher.java | 2 +-
.../enricher/generic/openshift/RouteEnricher.java | 2 +-
.../enricher/generic/ConfigMapEnricherTest.java | 2 +-
.../generic/ContainerEnvJavaOptionsMergeTest.java | 2 +-
.../ContainerEnvJavaOptionsMergeVisitorTest.java | 2 +-
...trollerViaPluginConfigurationEnricherTest.java | 2 +-
.../jkube/enricher/generic/DebugEnricherTest.java | 2 +-
.../DefaultControllerEnricherCreateTest.java | 2 +-
.../generic/DefaultControllerEnricherTest.java | 2 +-
.../generic/DefaultMetadataEnricherTest.java | 2 +-
.../generic/DefaultNamespaceEnricherTest.java | 2 +-
...DefaultServiceEnricherAddMissingPartsTest.java | 2 +-
...DefaultServiceEnricherExternalServiceTest.java | 2 +-
.../generic/DefaultServiceEnricherTest.java | 2 +-
.../enricher/generic/DependencyEnricherTest.java | 2 +-
.../generic/DockerRegistrySecretEnricherTest.java | 2 +-
.../generic/FileDataSecretEnricherTest.java | 2 +-
.../jkube/enricher/generic/GitEnricherTest.java | 2 +-
.../jkube/enricher/generic/ImageEnricherTest.java | 2 +-
.../generic/ImagePullPolicyEnricherTest.java | 2 +-
.../generic/IngressEnricherBehavioralTest.java | 2 +-
.../enricher/generic/IngressEnricherTest.java | 2 +-
.../generic/MavenIssueManagementEnricherTest.java | 2 +-
.../generic/MavenProjectEnricherTest.java | 2 +-
.../enricher/generic/MavenScmEnricherTest.java | 2 +-
.../jkube/enricher/generic/NameEnricherTest.java | 2 +-
...istentVolumeClaimStorageClassEnricherTest.java | 2 +-
.../generic/PodAnnotationEnricherTest.java | 2 +-
.../enricher/generic/PortNameEnricherTest.java | 2 +-
.../generic/ProjectLabelEnricherTest.java | 2 +-
.../generic/ReplicaCountEnricherTest.java | 2 +-
.../generic/RevisionHistoryEnricherTest.java | 2 +-
.../generic/SecurityHardeningEnricherTest.java | 2 +-
.../generic/ServiceAccountEnricherTest.java | 2 +-
.../generic/TriggersAnnotationEnricherTest.java | 2 +-
.../generic/VolumePermissionEnricherTest.java | 2 +-
.../ExtensionsV1Beta1IngressConverterTest.java | 2 +-
.../ingress/NetworkingV1IngressGeneratorTest.java | 2 +-
.../generic/openshift/AutoTLSEnricherTest.java | 2 +-
.../openshift/DeploymentConfigEnricherTest.java | 2 +-
.../openshift/ImageChangeTriggerEnricherTest.java | 2 +-
.../generic/openshift/ProjectEnricherTest.java | 2 +-
.../openshift/RouteEnricherBehavioralTest.java | 2 +-
.../generic/openshift/RouteEnricherTest.java | 2 +-
.../specific/AbstractHealthCheckEnricher.java | 2 +-
.../specific/DockerHealthCheckEnricher.java | 2 +-
.../specific/KarafHealthCheckEnricher.java | 2 +-
.../kit/enricher/specific/PrometheusEnricher.java | 2 +-
.../specific/ServiceDiscoveryEnricher.java | 2 +-
.../specific/WebAppHealthCheckEnricher.java | 2 +-
.../specific/AbstractHealthCheckEnricherTest.java | 2 +-
.../specific/DockerHealthCheckEnricherTest.java | 2 +-
.../enricher/specific/PrometheusEnricherTest.java | 2 +-
.../specific/ServiceDiscoveryEnricherTest.java | 2 +-
.../specific/WebAppHealthCheckEnricherTest.java | 2 +-
.../jkube/generator/api/DefaultImageLookup.java | 2 +-
.../eclipse/jkube/generator/api/FromSelector.java | 2 +-
.../eclipse/jkube/generator/api/Generator.java | 2 +-
.../jkube/generator/api/GeneratorConfig.java | 2 +-
.../jkube/generator/api/GeneratorContext.java | 2 +-
.../jkube/generator/api/GeneratorManager.java | 2 +-
.../jkube/generator/api/GeneratorMode.java | 2 +-
.../jkube/generator/api/PortsExtractor.java | 2 +-
.../api/support/AbstractPortsExtractor.java | 2 +-
.../generator/api/support/BaseGenerator.java | 2 +-
.../jkube/generator/api/FromSelectorTest.java | 2 +-
.../jkube/generator/api/GeneratorManagerTest.java | 2 +-
.../api/support/AbstractPortsExtractorTest.java | 2 +-
.../generator/api/support/BaseGeneratorTest.java | 2 +-
.../jkube/generator/javaexec/FatJarDetector.java | 2 +-
.../generator/javaexec/JavaExecGenerator.java | 2 +-
.../generator/javaexec/MainClassDetector.java | 2 +-
.../generator/javaexec/FatJarDetectorTest.java | 2 +-
.../JavaExecGeneratorCustomPropertiesTest.java | 2 +-
...vaExecGeneratorMainClassDeterminationTest.java | 2 +-
.../generator/javaexec/JavaExecGeneratorTest.java | 2 +-
.../generator/javaexec/JavaRunGeneratorTest.java | 2 +-
.../jkube/generator/karaf/KarafGenerator.java | 2 +-
.../jkube/generator/karaf/KarafGeneratorTest.java | 2 +-
.../jkube/generator/webapp/AppServerDetector.java | 2 +-
.../jkube/generator/webapp/AppServerHandler.java | 2 +-
.../jkube/generator/webapp/WebAppGenerator.java | 2 +-
.../webapp/handler/AbstractAppServerHandler.java | 2 +-
.../webapp/handler/CustomAppServerHandler.java | 2 +-
.../webapp/handler/JettyAppSeverHandler.java | 2 +-
.../webapp/handler/TomcatAppSeverHandler.java | 2 +-
.../webapp/handler/WildFlyAppSeverHandler.java | 2 +-
.../webapp/AppServerAutoDetectionTest.java | 2 +-
.../generator/webapp/WebAppGeneratorTest.java | 2 +-
.../webapp/handler/JettyAppServerHandlerTest.java | 2 +-
.../handler/TomcatAppServerHandlerTest.java | 2 +-
.../handler/WildFlyAppServerHandlerTest.java | 2 +-
jkube-kit/jkube-kit-helidon/pom.xml | 15 +++++++++++++++
.../enricher/HelidonHealthCheckEnricher.java | 2 +-
.../generator/AbstractHelidonNestedGenerator.java | 2 +-
.../helidon/generator/HelidonNestedGenerator.java | 2 +-
.../jkube/helidon/generator/NativeGenerator.java | 2 +-
.../helidon/generator/StandardGenerator.java | 2 +-
.../enricher/HelidonHealthCheckEnricherTest.java | 2 +-
.../eclipse/jkube/micronaut/MicronautUtils.java | 2 +-
.../enricher/MicronautHealthCheckEnricher.java | 2 +-
.../micronaut/generator/MicronautGenerator.java | 2 +-
...cronautUtilsGetMicronautConfigurationTest.java | 2 +-
.../jkube/micronaut/MicronautUtilsTest.java | 2 +-
.../MicronautHealthCheckEnricherTest.java | 2 +-
.../generator/MicronautGeneratorTest.java | 2 +-
.../microprofile/MicroprofileHealthUtil.java | 2 +-
.../AbstractMicroprofileHealthCheckEnricher.java | 2 +-
.../microprofile/MicroprofileHealthUtilTest.java | 2 +-
...stractMicroprofileHealthCheckEnricherTest.java | 2 +-
.../jkube/openliberty/OpenLibertyUtils.java | 2 +-
.../enricher/OpenLibertyHealthCheckEnricher.java | 2 +-
.../generator/OpenLibertyGenerator.java | 2 +-
.../jkube/openliberty/OpenLibertyUtilsTest.java | 2 +-
.../OpenLibertyHealthCheckEnricherTest.java | 2 +-
.../OpenLibertyGeneratorIsApplicableTest.java | 2 +-
.../generator/OpenLibertyGeneratorTest.java | 2 +-
.../org/eclipse/jkube/quarkus/QuarkusUtils.java | 2 +-
.../enricher/QuarkusHealthCheckEnricher.java | 2 +-
.../generator/AbstractQuarkusNestedGenerator.java | 2 +-
.../jkube/quarkus/generator/FastJarGenerator.java | 2 +-
.../quarkus/generator/LegacyJarGenerator.java | 2 +-
.../jkube/quarkus/generator/NativeGenerator.java | 2 +-
.../jkube/quarkus/generator/QuarkusGenerator.java | 2 +-
.../quarkus/generator/QuarkusNestedGenerator.java | 2 +-
.../jkube/quarkus/generator/UberJarGenerator.java | 2 +-
.../eclipse/jkube/quarkus/QuarkusUtilsTest.java | 2 +-
.../enricher/QuarkusHealthCheckEnricherTest.java | 2 +-
.../QuarkusGeneratorExposedPortsTest.java | 2 +-
.../quarkus/generator/QuarkusGeneratorTest.java | 2 +-
.../generator/QuarkusNestedGeneratorTest.java | 2 +-
.../org/eclipse/jkube/smallrye/SmallRyeUtils.java | 2 +-
.../enricher/SmallRyeHealthCheckEnricher.java | 2 +-
.../eclipse/jkube/smallrye/SmallRyeUtilsTest.java | 2 +-
.../enricher/SmallRyeHealthCheckEnricherTest.java | 2 +-
.../jkube/springboot/SpringBootDevtoolsUtils.java | 2 +-
.../enricher/SpringBootHealthCheckEnricher.java | 2 +-
.../springboot/generator/SpringBootGenerator.java | 2 +-
.../springboot/watcher/SpringBootWatcher.java | 2 +-
.../springboot/SpringBootDevtoolsUtilsTest.java | 2 +-
...tSpringBootHealthCheckEnricherTestSupport.java | 2 +-
.../SpringBoot1HealthCheckEnricherTest.java | 2 +-
.../SpringBoot2HealthCheckEnricherTest.java | 2 +-
.../SpringBootGeneratorIntegrationTest.java | 2 +-
.../generator/SpringBootGeneratorTest.java | 2 +-
.../watcher/SpringBootWatcherIntegrationTest.java | 2 +-
.../springboot/watcher/SpringBootWatcherTest.java | 2 +-
.../enricher/ThorntailV2HealthCheckEnricher.java | 2 +-
.../v2/generator/ThorntailV2Generator.java | 2 +-
.../ThorntailV2HealthCheckEnricherTest.java | 2 +-
.../ThorntailV2GeneratorIsApplicableTest.java | 2 +-
.../vertx/enricher/VertxHealthCheckEnricher.java | 2 +-
.../eclipse/jkube/vertx/generator/Constants.java | 2 +-
.../jkube/vertx/generator/VertxGenerator.java | 2 +-
.../vertx/generator/VertxPortsExtractor.java | 2 +-
.../enricher/VertxHealthCheckEnricherTest.java | 2 +-
.../generator/VertxGeneratorIsApplicableTest.java | 2 +-
.../jkube/vertx/generator/VertxGeneratorTest.java | 2 +-
.../vertx/generator/VertxPortsExtractorTest.java | 2 +-
.../jkube/wildfly/jar/WildflyJarUtils.java | 2 +-
.../enricher/WildflyJARHealthCheckEnricher.java | 2 +-
.../jar/generator/WildflyJARGenerator.java | 2 +-
.../jkube/wildfly/jar/WildflyJarUtilsTest.java | 2 +-
.../WildflyJARHealthCheckEnricherTest.java | 2 +-
.../jar/generator/WildflyJARGeneratorTest.java | 2 +-
.../org/eclipse/jkube/kit/profile/Profile.java | 2 +-
.../eclipse/jkube/kit/profile/ProfileUtil.java | 2 +-
.../jkube/kit/profile/ProfileUtilTest.java | 2 +-
.../remotedev/KubernetesSshServiceForwarder.java | 2 +-
.../eclipse/jkube/kit/remotedev/LocalService.java | 2 +-
.../jkube/kit/remotedev/LocalServiceManager.java | 2 +-
.../jkube/kit/remotedev/PortForwarder.java | 2 +-
.../kit/remotedev/RemoteDevelopmentConfig.java | 2 +-
.../kit/remotedev/RemoteDevelopmentContext.java | 2 +-
.../kit/remotedev/RemoteDevelopmentService.java | 2 +-
.../jkube/kit/remotedev/RemoteService.java | 2 +-
.../KubernetesSshServiceForwarderTest.java | 2 +-
.../kit/remotedev/LocalServiceManagerTest.java | 2 +-
.../jkube/kit/remotedev/PortForwarderTest.java | 2 +-
.../remotedev/RemoteDevelopmentServiceTest.java | 2 +-
.../jkube/kit/remotedev/SshServerExtension.java | 2 +-
.../helm/ArtifactoryHelmRepositoryUploader.java | 2 +-
.../kit/resource/helm/BadUploadException.java | 2 +-
.../eclipse/jkube/kit/resource/helm/Chart.java | 2 +-
.../helm/ChartMuseumHelmRepositoryUploader.java | 2 +-
.../kit/resource/helm/GeneratedChartListener.java | 2 +-
.../jkube/kit/resource/helm/HelmConfig.java | 2 +-
.../jkube/kit/resource/helm/HelmDependency.java | 2 +-
.../jkube/kit/resource/helm/HelmParameter.java | 2 +-
.../jkube/kit/resource/helm/HelmRepository.java | 2 +-
.../helm/HelmRepositoryConnectionUtils.java | 2 +-
.../jkube/kit/resource/helm/HelmService.java | 2 +-
.../jkube/kit/resource/helm/HelmServiceUtil.java | 2 +-
.../jkube/kit/resource/helm/HelmUploader.java | 2 +-
.../kit/resource/helm/HelmUploaderManager.java | 2 +-
.../helm/NexusHelmRepositoryUploader.java | 2 +-
.../resource/helm/StandardRepositoryUploader.java | 2 +-
.../jkube/kit/resource/helm/ChartTest.java | 2 +-
.../jkube/kit/resource/helm/HelmConfigTest.java | 2 +-
.../kit/resource/helm/HelmDependencyTest.java | 2 +-
.../kit/resource/helm/HelmRepositoryTest.java | 2 +-
.../jkube/kit/resource/helm/HelmServiceIT.java | 2 +-
.../jkube/kit/resource/helm/HelmServiceTest.java | 2 +-
.../kit/resource/helm/HelmServiceUploadIT.java | 2 +-
.../kit/resource/helm/HelmServiceUtilTest.java | 2 +-
.../resource/helm/HelmUploaderManagerTest.java | 2 +-
.../resource/service/DefaultResourceService.java | 2 +-
.../jkube/kit/resource/service/TemplateUtil.java | 2 +-
.../jkube/kit/resource/service/WriteUtil.java | 2 +-
.../service/DefaultResourceServiceTest.java | 2 +-
.../kit/resource/service/TemplateUtilTest.java | 2 +-
.../jkube/kit/resource/service/WriteUtilTest.java | 2 +-
.../eclipse/jkube/watcher/api/BaseWatcher.java | 2 +-
.../org/eclipse/jkube/watcher/api/Watcher.java | 2 +-
.../eclipse/jkube/watcher/api/WatcherConfig.java | 2 +-
.../eclipse/jkube/watcher/api/WatcherContext.java | 2 +-
.../eclipse/jkube/watcher/api/WatcherManager.java | 2 +-
.../jkube/watcher/api/WatcherManagerTest.java | 2 +-
.../watcher/standard/DockerImageWatcher.java | 2 +-
.../jkube/watcher/standard/ExecListenerLatch.java | 2 +-
.../jkube/watcher/standard/PodExecutor.java | 2 +-
.../DockerImageWatcherRestartContainerTest.java | 2 +-
.../watcher/standard/DockerImageWatcherTest.java | 2 +-
.../watcher/standard/ExecListenerLatchTest.java | 2 +-
.../jkube/watcher/standard/PodExecutorTest.java | 2 +-
.../configmap/src/main/java/zero/Application.java | 2 +-
.../src/main/java/zero/HelloController.java | 2 +-
.../it/src/it/configmap/verify.groovy | 2 +-
.../java/io/vertx/example/SimpleWebVerticle.java | 2 +-
.../it/src/it/custom-environment/verify.groovy | 2 +-
.../it/src/it/custom-raw-resources/verify.groovy | 2 +-
.../it/src/it/dependency-resources/verify.groovy | 2 +-
.../it/deployment-strategy-type-919/verify.groovy | 2 +-
.../it/src/it/docker-health-checks/verify.groovy | 2 +-
.../src/main/java/zero/Application.java | 2 +-
.../src/main/java/zero/HelloController.java | 2 +-
.../it/src/it/env-metadata/verify.groovy | 2 +-
.../it/src/it/fragments/verify.groovy | 2 +-
.../it/src/it/helm-and-fragments/verify.groovy | 2 +-
.../src/main/java/zero/Application.java | 2 +-
.../it/src/it/ingress-xml-config/verify.groovy | 2 +-
.../src/it/java-options-env-merge/verify.groovy | 2 +-
.../it/metadata-labels-annotations/verify.groovy | 2 +-
.../namespace/src/main/java/zero/Application.java | 2 +-
.../it/src/it/namespace/verify.groovy | 2 +-
.../src/main/java/probe/Application.java | 2 +-
.../src/main/java/probe/HelloController.java | 2 +-
.../it/src/it/probes-xml-config/verify.groovy | 2 +-
.../it/src/it/raw-resources/verify.groovy | 2 +-
.../maven/sample/spring/boot/Application.java | 2 +-
.../it/src/it/registry-286/verify.groovy | 2 +-
.../java/io/vertx/example/SimpleWebVerticle.java | 2 +-
.../it/src/it/remote-resources/verify.groovy | 2 +-
.../maven/sample/spring/boot/Application.java | 2 +-
.../maven/sample/spring/boot/HelloController.java | 2 +-
.../it/src/it/revisionhistory/verify.groovy | 2 +-
.../src/main/java/hello/Application.java | 2 +-
.../it/src/it/secret-config/verify.groovy | 2 +-
.../sidecar/src/main/java/zero/Application.java | 2 +-
.../src/main/java/zero/HelloController.java | 2 +-
.../it/src/it/sidecar/verify.groovy | 2 +-
.../src/main/java/zero/Application.java | 2 +-
.../src/main/java/zero/HelloController.java | 2 +-
.../src/it/simple-maven-issue-mgmt/verify.groovy | 2 +-
.../src/main/java/zero/Application.java | 2 +-
.../src/main/java/zero/HelloController.java | 2 +-
.../it/src/it/simple-maven-scm/verify.groovy | 2 +-
.../src/main/java/zero/Application.java | 2 +-
.../src/main/java/zero/HelloController.java | 2 +-
.../it/simple-with-route-flag-false/verify.groovy | 2 +-
.../src/main/java/zero/Application.java | 2 +-
.../src/main/java/zero/HelloController.java | 2 +-
.../it/simple-with-route-flag-true/verify.groovy | 2 +-
.../it/simple/src/main/java/zero/Application.java | 2 +-
.../src/main/java/zero/HelloController.java | 2 +-
.../it/src/it/simple/verify.groovy | 2 +-
.../maven/sample/spring/boot/Application.java | 2 +-
.../maven/sample/spring/boot/HelloController.java | 2 +-
.../it/src/it/spring-boot/verify.groovy | 2 +-
.../maven/sample/spring/boot/Application.java | 2 +-
.../it/src/it/statefulset/verify.groovy | 2 +-
.../maven/sample/vertx/HttpApplication.java | 2 +-
.../it/src/it/vertx-default/verify.groovy | 2 +-
.../maven/sample/vertx/HttpApplication.java | 2 +-
.../it/src/it/vertx-health-check/verify.groovy | 2 +-
.../java/io/vertx/example/SimpleWebVerticle.java | 2 +-
.../it/src/it/vertx/verify.groovy | 2 +-
.../verify.groovy | 2 +-
.../verify.groovy | 2 +-
.../it/src/it/xml-image-multilayer/verify.groovy | 2 +-
.../it/src/it/xml-image/verify.groovy | 2 +-
.../maven/plugin/mojo/KitLoggerProvider.java | 2 +-
.../jkube/maven/plugin/mojo/ManifestProvider.java | 2 +-
.../plugin/mojo/build/AbstractDockerMojo.java | 2 +-
.../plugin/mojo/build/AbstractJKubeMojo.java | 2 +-
.../jkube/maven/plugin/mojo/build/ApplyMojo.java | 2 +-
.../jkube/maven/plugin/mojo/build/BuildMojo.java | 2 +-
.../jkube/maven/plugin/mojo/build/HelmMojo.java | 2 +-
.../maven/plugin/mojo/build/HelmPushMojo.java | 2 +-
.../jkube/maven/plugin/mojo/build/PushMojo.java | 2 +-
.../maven/plugin/mojo/build/ResourceMojo.java | 2 +-
.../maven/plugin/mojo/develop/DebugMojo.java | 2 +-
.../maven/plugin/mojo/develop/DeployMojo.java | 2 +-
.../jkube/maven/plugin/mojo/develop/LogMojo.java | 2 +-
.../maven/plugin/mojo/develop/RemoteDevMojo.java | 2 +-
.../maven/plugin/mojo/develop/UndeployMojo.java | 2 +-
.../maven/plugin/mojo/develop/WatchMojo.java | 2 +-
.../jkube/maven/plugin/mojo/util/MigrateMojo.java | 2 +-
.../mojo/GeneratedPluginDescriptorTest.java | 2 +-
.../maven/plugin/mojo/build/ApplyMojoTest.java | 2 +-
.../maven/plugin/mojo/build/BuildMojoTest.java | 2 +-
.../plugin/mojo/build/HelmMojoPluginTest.java | 2 +-
.../maven/plugin/mojo/build/HelmMojoTest.java | 2 +-
.../maven/plugin/mojo/build/HelmPushMojoTest.java | 2 +-
.../plugin/mojo/build/ResourceMojoPluginTest.java | 2 +-
.../maven/plugin/mojo/build/ResourceMojoTest.java | 2 +-
.../maven/plugin/mojo/build/SkipGoalsTest.java | 2 +-
.../maven/plugin/mojo/develop/DebugMojoTest.java | 2 +-
.../maven/plugin/mojo/develop/LogMojoTest.java | 2 +-
.../plugin/mojo/develop/RemoteDevMojoTest.java | 2 +-
.../plugin/mojo/develop/UndeployMojoTest.java | 2 +-
.../maven/plugin/mojo/develop/WatchMojoTest.java | 2 +-
.../configmap/src/main/java/zero/Application.java | 2 +-
.../src/main/java/zero/HelloController.java | 2 +-
.../it/src/it/configmap/verify.groovy | 2 +-
.../java/io/vertx/example/SimpleWebVerticle.java | 2 +-
.../it/src/it/custom-environment/verify.groovy | 2 +-
.../it/src/it/custom-raw-resources/verify.groovy | 2 +-
.../it/deployment-strategy-type-919/verify.groovy | 2 +-
.../it/src/it/docker-health-checks/verify.groovy | 2 +-
.../src/main/java/zero/Application.java | 2 +-
.../src/main/java/zero/HelloController.java | 2 +-
.../it/src/it/env-metadata/verify.groovy | 2 +-
.../project/src/main/java/zero/Application.java | 2 +-
.../it/src/it/project/verify.groovy | 2 +-
.../it/src/it/raw-resources/verify.groovy | 2 +-
.../maven/sample/spring/boot/Application.java | 2 +-
.../it/src/it/registry-286/verify.groovy | 2 +-
.../java/io/vertx/example/SimpleWebVerticle.java | 2 +-
.../it/src/it/remote-resources/verify.groovy | 2 +-
.../maven/sample/spring/boot/Application.java | 2 +-
.../maven/sample/spring/boot/HelloController.java | 2 +-
.../it/src/it/revisionhistory/verify.groovy | 2 +-
.../src/main/java/hello/Application.java | 2 +-
.../it/src/it/secret-config/verify.groovy | 2 +-
.../sidecar/src/main/java/zero/Application.java | 2 +-
.../src/main/java/zero/HelloController.java | 2 +-
.../it/src/it/sidecar/verify.groovy | 2 +-
.../src/main/java/zero/Application.java | 2 +-
.../src/main/java/zero/HelloController.java | 2 +-
.../src/it/simple-maven-issue-mgmt/verify.groovy | 2 +-
.../src/main/java/zero/Application.java | 2 +-
.../src/main/java/zero/HelloController.java | 2 +-
.../it/src/it/simple-maven-scm/verify.groovy | 2 +-
.../src/main/java/zero/Application.java | 2 +-
.../src/main/java/zero/HelloController.java | 2 +-
.../it/simple-with-route-flag-false/verify.groovy | 2 +-
.../src/main/java/zero/Application.java | 2 +-
.../src/main/java/zero/HelloController.java | 2 +-
.../it/simple-with-route-flag-true/verify.groovy | 2 +-
.../it/simple/src/main/java/zero/Application.java | 2 +-
.../src/main/java/zero/HelloController.java | 2 +-
.../it/src/it/simple/verify.groovy | 2 +-
.../maven/sample/spring/boot/Application.java | 2 +-
.../maven/sample/spring/boot/HelloController.java | 2 +-
.../it/src/it/spring-boot/verify.groovy | 2 +-
.../maven/sample/spring/boot/Application.java | 2 +-
.../it/src/it/statefulset/verify.groovy | 2 +-
.../maven/sample/vertx/HttpApplication.java | 2 +-
.../it/src/it/vertx-default/verify.groovy | 2 +-
.../maven/sample/vertx/HttpApplication.java | 2 +-
.../it/src/it/vertx-health-check/verify.groovy | 2 +-
.../java/io/vertx/example/SimpleWebVerticle.java | 2 +-
.../it/src/it/vertx/verify.groovy | 2 +-
.../verify.groovy | 2 +-
.../verify.groovy | 2 +-
.../jkube/maven/plugin/mojo/OpenShift.java | 2 +-
.../plugin/mojo/build/OpenshiftApplyMojo.java | 2 +-
.../plugin/mojo/build/OpenshiftBuildMojo.java | 2 +-
.../plugin/mojo/build/OpenshiftHelmMojo.java | 2 +-
.../plugin/mojo/build/OpenshiftHelmPushMojo.java | 2 +-
.../plugin/mojo/build/OpenshiftPushMojo.java | 2 +-
.../plugin/mojo/build/OpenshiftResourceMojo.java | 2 +-
.../mojo/develop/OpenShiftRemoteDevMojo.java | 2 +-
.../plugin/mojo/develop/OpenshiftDebugMojo.java | 2 +-
.../plugin/mojo/develop/OpenshiftDeployMojo.java | 2 +-
.../plugin/mojo/develop/OpenshiftLogMojo.java | 2 +-
.../mojo/develop/OpenshiftUndeployMojo.java | 2 +-
.../plugin/mojo/develop/OpenshiftWatchMojo.java | 2 +-
.../plugin/mojo/util/OpenShiftMigrateMojo.java | 2 +-
.../OpenShiftGeneratedPluginDescriptorTest.java | 2 +-
.../mojo/build/OpenShiftResourceMojoTest.java | 2 +-
.../mojo/develop/OpenShiftRemoteDevMojoTest.java | 2 +-
.../mojo/develop/OpenshiftUndeployMojoTest.java | 2 +-
1138 files changed, 1873 insertions(+), 1082 deletions(-)
diff --git a/gradle-plugin/it/src/it/autotls/build.gradle b/gradle-plugin/it/src/it/autotls/build.gradle
index 09cee378d5..96be238029 100644
--- a/gradle-plugin/it/src/it/autotls/build.gradle
+++ b/gradle-plugin/it/src/it/autotls/build.gradle
@@ -1,3 +1,16 @@
+/*
+ * Copyright (c) 2019 Red Hat, Inc.
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at:
+ *
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ */
plugins {
id 'org.eclipse.jkube.openshift' version "${jKubeVersion}"
id 'java'
diff --git a/gradle-plugin/it/src/it/configmap/build.gradle b/gradle-plugin/it/src/it/configmap/build.gradle
index 4143d04231..a7d6327547 100644
--- a/gradle-plugin/it/src/it/configmap/build.gradle
+++ b/gradle-plugin/it/src/it/configmap/build.gradle
@@ -1,3 +1,16 @@
+/*
+ * Copyright (c) 2019 Red Hat, Inc.
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at:
+ *
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ */
plugins {
id 'org.eclipse.jkube.kubernetes' version "${jKubeVersion}"
id 'org.eclipse.jkube.openshift' version "${jKubeVersion}"
diff --git a/gradle-plugin/it/src/it/configmap/src/main/java/zero/Application.java b/gradle-plugin/it/src/it/configmap/src/main/java/zero/Application.java
index f02013c575..3f0b57dc14 100644
--- a/gradle-plugin/it/src/it/configmap/src/main/java/zero/Application.java
+++ b/gradle-plugin/it/src/it/configmap/src/main/java/zero/Application.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/gradle-plugin/it/src/it/configmap/src/main/java/zero/HelloController.java b/gradle-plugin/it/src/it/configmap/src/main/java/zero/HelloController.java
index 638e2e6177..339bb95a7e 100644
--- a/gradle-plugin/it/src/it/configmap/src/main/java/zero/HelloController.java
+++ b/gradle-plugin/it/src/it/configmap/src/main/java/zero/HelloController.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/gradle-plugin/it/src/it/controller/build.gradle b/gradle-plugin/it/src/it/controller/build.gradle
index 07b1f5ead6..cb180fd1e9 100644
--- a/gradle-plugin/it/src/it/controller/build.gradle
+++ b/gradle-plugin/it/src/it/controller/build.gradle
@@ -1,3 +1,16 @@
+/*
+ * Copyright (c) 2019 Red Hat, Inc.
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at:
+ *
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ */
plugins {
id 'org.eclipse.jkube.kubernetes' version "${jKubeVersion}"
id 'org.eclipse.jkube.openshift' version "${jKubeVersion}"
diff --git a/gradle-plugin/it/src/it/debug-mode/build.gradle b/gradle-plugin/it/src/it/debug-mode/build.gradle
index 918506aa34..7393188d84 100644
--- a/gradle-plugin/it/src/it/debug-mode/build.gradle
+++ b/gradle-plugin/it/src/it/debug-mode/build.gradle
@@ -1,3 +1,16 @@
+/*
+ * Copyright (c) 2019 Red Hat, Inc.
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at:
+ *
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ */
plugins {
id 'org.eclipse.jkube.kubernetes' version "${jKubeVersion}"
id 'org.eclipse.jkube.openshift' version "${jKubeVersion}"
diff --git a/gradle-plugin/it/src/it/dependency-resources/settings.gradle b/gradle-plugin/it/src/it/dependency-resources/settings.gradle
index 0c7ac9aca5..c71a14ca4d 100644
--- a/gradle-plugin/it/src/it/dependency-resources/settings.gradle
+++ b/gradle-plugin/it/src/it/dependency-resources/settings.gradle
@@ -1,3 +1,16 @@
+/*
+ * Copyright (c) 2019 Red Hat, Inc.
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at:
+ *
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ */
rootProject.name = 'jkube-gradle-sample-dependency-resources'
include 'dependency', 'dependent'
diff --git a/gradle-plugin/it/src/it/dockerfile-simple/build.gradle b/gradle-plugin/it/src/it/dockerfile-simple/build.gradle
index 20201e970b..c9f1ec408d 100644
--- a/gradle-plugin/it/src/it/dockerfile-simple/build.gradle
+++ b/gradle-plugin/it/src/it/dockerfile-simple/build.gradle
@@ -1,3 +1,16 @@
+/*
+ * Copyright (c) 2019 Red Hat, Inc.
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at:
+ *
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ */
plugins {
id 'org.eclipse.jkube.kubernetes' version "${jKubeVersion}"
id 'org.eclipse.jkube.openshift' version "${jKubeVersion}"
diff --git a/gradle-plugin/it/src/it/expose/build.gradle b/gradle-plugin/it/src/it/expose/build.gradle
index 5e5c2b6120..fcccfebabe 100644
--- a/gradle-plugin/it/src/it/expose/build.gradle
+++ b/gradle-plugin/it/src/it/expose/build.gradle
@@ -1,3 +1,16 @@
+/*
+ * Copyright (c) 2019 Red Hat, Inc.
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at:
+ *
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ */
plugins {
id 'org.eclipse.jkube.kubernetes' version "${jKubeVersion}"
id 'org.eclipse.jkube.openshift' version "${jKubeVersion}"
diff --git a/gradle-plugin/it/src/it/extension-configuration/build.gradle b/gradle-plugin/it/src/it/extension-configuration/build.gradle
index 4d328af017..69a7750db6 100644
--- a/gradle-plugin/it/src/it/extension-configuration/build.gradle
+++ b/gradle-plugin/it/src/it/extension-configuration/build.gradle
@@ -1,3 +1,16 @@
+/*
+ * Copyright (c) 2019 Red Hat, Inc.
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at:
+ *
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ */
plugins {
id 'org.eclipse.jkube.kubernetes' version "${jKubeVersion}"
id 'org.eclipse.jkube.openshift' version "${jKubeVersion}"
diff --git a/gradle-plugin/it/src/it/fragments-custom-mapping/build.gradle b/gradle-plugin/it/src/it/fragments-custom-mapping/build.gradle
index 4a24a50e30..15fb9645a2 100644
--- a/gradle-plugin/it/src/it/fragments-custom-mapping/build.gradle
+++ b/gradle-plugin/it/src/it/fragments-custom-mapping/build.gradle
@@ -1,3 +1,16 @@
+/*
+ * Copyright (c) 2019 Red Hat, Inc.
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at:
+ *
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ */
plugins {
id 'org.eclipse.jkube.kubernetes' version "${jKubeVersion}"
id 'org.eclipse.jkube.openshift' version "${jKubeVersion}"
diff --git a/gradle-plugin/it/src/it/fragments-custom-mapping/src/main/jkube/first-fl.yaml b/gradle-plugin/it/src/it/fragments-custom-mapping/src/main/jkube/first-fl.yaml
index e69de29bb2..80e95c2564 100644
--- a/gradle-plugin/it/src/it/fragments-custom-mapping/src/main/jkube/first-fl.yaml
+++ b/gradle-plugin/it/src/it/fragments-custom-mapping/src/main/jkube/first-fl.yaml
@@ -0,0 +1,14 @@
+#
+# Copyright (c) 2019 Red Hat, Inc.
+# This program and the accompanying materials are made
+# available under the terms of the Eclipse Public License 2.0
+# which is available at:
+#
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+# Red Hat, Inc. - initial API and implementation
+#
+
diff --git a/gradle-plugin/it/src/it/fragments-custom-mapping/src/main/jkube/first-mtpl.yaml b/gradle-plugin/it/src/it/fragments-custom-mapping/src/main/jkube/first-mtpl.yaml
index 26a7d8c759..0fa863d32e 100644
--- a/gradle-plugin/it/src/it/fragments-custom-mapping/src/main/jkube/first-mtpl.yaml
+++ b/gradle-plugin/it/src/it/fragments-custom-mapping/src/main/jkube/first-mtpl.yaml
@@ -1 +1,15 @@
+#
+# Copyright (c) 2019 Red Hat, Inc.
+# This program and the accompanying materials are made
+# available under the terms of the Eclipse Public License 2.0
+# which is available at:
+#
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+# Red Hat, Inc. - initial API and implementation
+#
+
apiVersion: my.unique.crd/v1alfa1
diff --git a/gradle-plugin/it/src/it/fragments-custom-mapping/src/main/jkube/full.yaml b/gradle-plugin/it/src/it/fragments-custom-mapping/src/main/jkube/full.yaml
index c1412a4f88..2f445c39ad 100644
--- a/gradle-plugin/it/src/it/fragments-custom-mapping/src/main/jkube/full.yaml
+++ b/gradle-plugin/it/src/it/fragments-custom-mapping/src/main/jkube/full.yaml
@@ -1,2 +1,16 @@
+#
+# Copyright (c) 2019 Red Hat, Inc.
+# This program and the accompanying materials are made
+# available under the terms of the Eclipse Public License 2.0
+# which is available at:
+#
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+# Red Hat, Inc. - initial API and implementation
+#
+
metadata:
name: second
diff --git a/gradle-plugin/it/src/it/fragments-custom-mapping/src/main/jkube/second-my_template.yml b/gradle-plugin/it/src/it/fragments-custom-mapping/src/main/jkube/second-my_template.yml
index 26a7d8c759..0fa863d32e 100644
--- a/gradle-plugin/it/src/it/fragments-custom-mapping/src/main/jkube/second-my_template.yml
+++ b/gradle-plugin/it/src/it/fragments-custom-mapping/src/main/jkube/second-my_template.yml
@@ -1 +1,15 @@
+#
+# Copyright (c) 2019 Red Hat, Inc.
+# This program and the accompanying materials are made
+# available under the terms of the Eclipse Public License 2.0
+# which is available at:
+#
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+# Red Hat, Inc. - initial API and implementation
+#
+
apiVersion: my.unique.crd/v1alfa1
diff --git a/gradle-plugin/it/src/it/git-annotations/build.gradle b/gradle-plugin/it/src/it/git-annotations/build.gradle
index a5d77e6327..de827308e3 100644
--- a/gradle-plugin/it/src/it/git-annotations/build.gradle
+++ b/gradle-plugin/it/src/it/git-annotations/build.gradle
@@ -1,3 +1,16 @@
+/*
+ * Copyright (c) 2019 Red Hat, Inc.
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at:
+ *
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ */
plugins {
id 'org.eclipse.jkube.kubernetes' version "${jKubeVersion}"
id 'org.eclipse.jkube.openshift' version "${jKubeVersion}"
diff --git a/gradle-plugin/it/src/it/groovy-dsl-container-resources/build.gradle b/gradle-plugin/it/src/it/groovy-dsl-container-resources/build.gradle
index c41999ef5a..58e86daa5c 100644
--- a/gradle-plugin/it/src/it/groovy-dsl-container-resources/build.gradle
+++ b/gradle-plugin/it/src/it/groovy-dsl-container-resources/build.gradle
@@ -1,3 +1,16 @@
+/*
+ * Copyright (c) 2019 Red Hat, Inc.
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at:
+ *
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ */
plugins {
id 'org.eclipse.jkube.kubernetes' version "${jKubeVersion}"
diff --git a/gradle-plugin/it/src/it/groovy-dsl-image/build.gradle b/gradle-plugin/it/src/it/groovy-dsl-image/build.gradle
index 276d8cbf4e..3340ad3067 100644
--- a/gradle-plugin/it/src/it/groovy-dsl-image/build.gradle
+++ b/gradle-plugin/it/src/it/groovy-dsl-image/build.gradle
@@ -1,3 +1,16 @@
+/*
+ * Copyright (c) 2019 Red Hat, Inc.
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at:
+ *
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ */
plugins {
id 'org.eclipse.jkube.kubernetes' version "${jKubeVersion}"
diff --git a/gradle-plugin/it/src/it/helidon-properties/build.gradle b/gradle-plugin/it/src/it/helidon-properties/build.gradle
index 1f84317aae..cac3aa7780 100644
--- a/gradle-plugin/it/src/it/helidon-properties/build.gradle
+++ b/gradle-plugin/it/src/it/helidon-properties/build.gradle
@@ -1,3 +1,16 @@
+/*
+ * Copyright (c) 2019 Red Hat, Inc.
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at:
+ *
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ */
plugins {
id 'java'
id 'org.kordamp.gradle.jandex' version '0.6.0'
diff --git a/gradle-plugin/it/src/it/helidon-properties/src/main/java/org/eclipse/jkube/it/gradle/helidon/GreetResource.java b/gradle-plugin/it/src/it/helidon-properties/src/main/java/org/eclipse/jkube/it/gradle/helidon/GreetResource.java
index 0551f6785d..46458360a2 100644
--- a/gradle-plugin/it/src/it/helidon-properties/src/main/java/org/eclipse/jkube/it/gradle/helidon/GreetResource.java
+++ b/gradle-plugin/it/src/it/helidon-properties/src/main/java/org/eclipse/jkube/it/gradle/helidon/GreetResource.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/gradle-plugin/it/src/it/helidon-properties/src/main/java/org/eclipse/jkube/it/gradle/helidon/GreetingProvider.java b/gradle-plugin/it/src/it/helidon-properties/src/main/java/org/eclipse/jkube/it/gradle/helidon/GreetingProvider.java
index aa70f3018a..59d340ac3a 100644
--- a/gradle-plugin/it/src/it/helidon-properties/src/main/java/org/eclipse/jkube/it/gradle/helidon/GreetingProvider.java
+++ b/gradle-plugin/it/src/it/helidon-properties/src/main/java/org/eclipse/jkube/it/gradle/helidon/GreetingProvider.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/gradle-plugin/it/src/it/helidon-properties/src/main/resources/META-INF/beans.xml b/gradle-plugin/it/src/it/helidon-properties/src/main/resources/META-INF/beans.xml
index 5d94aab5a2..7183e39eb2 100644
--- a/gradle-plugin/it/src/it/helidon-properties/src/main/resources/META-INF/beans.xml
+++ b/gradle-plugin/it/src/it/helidon-properties/src/main/resources/META-INF/beans.xml
@@ -1,4 +1,19 @@
+
+
+
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 a31d97912e..470e51501f 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
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/jkube-kit-helidon/src/main/java/org/eclipse/jkube/helidon/generator/AbstractHelidonNestedGenerator.java b/jkube-kit/jkube-kit-helidon/src/main/java/org/eclipse/jkube/helidon/generator/AbstractHelidonNestedGenerator.java
index 0904993191..df5fd5b6ca 100644
--- a/jkube-kit/jkube-kit-helidon/src/main/java/org/eclipse/jkube/helidon/generator/AbstractHelidonNestedGenerator.java
+++ b/jkube-kit/jkube-kit-helidon/src/main/java/org/eclipse/jkube/helidon/generator/AbstractHelidonNestedGenerator.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/jkube-kit-helidon/src/main/java/org/eclipse/jkube/helidon/generator/HelidonNestedGenerator.java b/jkube-kit/jkube-kit-helidon/src/main/java/org/eclipse/jkube/helidon/generator/HelidonNestedGenerator.java
index 75f2c030b8..eb8a231c32 100644
--- a/jkube-kit/jkube-kit-helidon/src/main/java/org/eclipse/jkube/helidon/generator/HelidonNestedGenerator.java
+++ b/jkube-kit/jkube-kit-helidon/src/main/java/org/eclipse/jkube/helidon/generator/HelidonNestedGenerator.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/jkube-kit-helidon/src/main/java/org/eclipse/jkube/helidon/generator/NativeGenerator.java b/jkube-kit/jkube-kit-helidon/src/main/java/org/eclipse/jkube/helidon/generator/NativeGenerator.java
index 5fe29c79ba..7f4bd20946 100644
--- a/jkube-kit/jkube-kit-helidon/src/main/java/org/eclipse/jkube/helidon/generator/NativeGenerator.java
+++ b/jkube-kit/jkube-kit-helidon/src/main/java/org/eclipse/jkube/helidon/generator/NativeGenerator.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/jkube-kit-helidon/src/main/java/org/eclipse/jkube/helidon/generator/StandardGenerator.java b/jkube-kit/jkube-kit-helidon/src/main/java/org/eclipse/jkube/helidon/generator/StandardGenerator.java
index 5c57229379..e6490b067f 100644
--- a/jkube-kit/jkube-kit-helidon/src/main/java/org/eclipse/jkube/helidon/generator/StandardGenerator.java
+++ b/jkube-kit/jkube-kit-helidon/src/main/java/org/eclipse/jkube/helidon/generator/StandardGenerator.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.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 d91ab057a0..d914c0c167 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
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/jkube-kit-micronaut/src/main/java/org/eclipse/jkube/micronaut/MicronautUtils.java b/jkube-kit/jkube-kit-micronaut/src/main/java/org/eclipse/jkube/micronaut/MicronautUtils.java
index 7c2c69f73c..4436174a18 100644
--- a/jkube-kit/jkube-kit-micronaut/src/main/java/org/eclipse/jkube/micronaut/MicronautUtils.java
+++ b/jkube-kit/jkube-kit-micronaut/src/main/java/org/eclipse/jkube/micronaut/MicronautUtils.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
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 a7fad52a04..e5f68d1383 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
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
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 d61d89f12a..1b0ade4639 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
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
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 5380fdff82..0edbd797a5 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
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
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 d8e77e1955..e923773831 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
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
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 b64d09ce78..439002ac78 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
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
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 1ebe01c405..531843d1f8 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
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/jkube-kit-microprofile/src/main/java/org/eclipse/jkube/microprofile/MicroprofileHealthUtil.java b/jkube-kit/jkube-kit-microprofile/src/main/java/org/eclipse/jkube/microprofile/MicroprofileHealthUtil.java
index 8582ef8a8f..2d3f792c6b 100644
--- a/jkube-kit/jkube-kit-microprofile/src/main/java/org/eclipse/jkube/microprofile/MicroprofileHealthUtil.java
+++ b/jkube-kit/jkube-kit-microprofile/src/main/java/org/eclipse/jkube/microprofile/MicroprofileHealthUtil.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/jkube-kit-microprofile/src/main/java/org/eclipse/jkube/microprofile/enricher/AbstractMicroprofileHealthCheckEnricher.java b/jkube-kit/jkube-kit-microprofile/src/main/java/org/eclipse/jkube/microprofile/enricher/AbstractMicroprofileHealthCheckEnricher.java
index 6a8ae7ccb3..feadcdda62 100644
--- a/jkube-kit/jkube-kit-microprofile/src/main/java/org/eclipse/jkube/microprofile/enricher/AbstractMicroprofileHealthCheckEnricher.java
+++ b/jkube-kit/jkube-kit-microprofile/src/main/java/org/eclipse/jkube/microprofile/enricher/AbstractMicroprofileHealthCheckEnricher.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/jkube-kit-microprofile/src/test/java/org/eclipse/jkube/microprofile/MicroprofileHealthUtilTest.java b/jkube-kit/jkube-kit-microprofile/src/test/java/org/eclipse/jkube/microprofile/MicroprofileHealthUtilTest.java
index e60f65004f..a7a81061e6 100644
--- a/jkube-kit/jkube-kit-microprofile/src/test/java/org/eclipse/jkube/microprofile/MicroprofileHealthUtilTest.java
+++ b/jkube-kit/jkube-kit-microprofile/src/test/java/org/eclipse/jkube/microprofile/MicroprofileHealthUtilTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/jkube-kit-microprofile/src/test/java/org/eclipse/jkube/microprofile/enricher/AbstractMicroprofileHealthCheckEnricherTest.java b/jkube-kit/jkube-kit-microprofile/src/test/java/org/eclipse/jkube/microprofile/enricher/AbstractMicroprofileHealthCheckEnricherTest.java
index 081ed5ac09..529b40e0e0 100644
--- a/jkube-kit/jkube-kit-microprofile/src/test/java/org/eclipse/jkube/microprofile/enricher/AbstractMicroprofileHealthCheckEnricherTest.java
+++ b/jkube-kit/jkube-kit-microprofile/src/test/java/org/eclipse/jkube/microprofile/enricher/AbstractMicroprofileHealthCheckEnricherTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/jkube-kit-openliberty/src/main/java/org/eclipse/jkube/openliberty/OpenLibertyUtils.java b/jkube-kit/jkube-kit-openliberty/src/main/java/org/eclipse/jkube/openliberty/OpenLibertyUtils.java
index 89cfe9e7fe..d93bd19f9b 100644
--- a/jkube-kit/jkube-kit-openliberty/src/main/java/org/eclipse/jkube/openliberty/OpenLibertyUtils.java
+++ b/jkube-kit/jkube-kit-openliberty/src/main/java/org/eclipse/jkube/openliberty/OpenLibertyUtils.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/jkube-kit-openliberty/src/main/java/org/eclipse/jkube/openliberty/enricher/OpenLibertyHealthCheckEnricher.java b/jkube-kit/jkube-kit-openliberty/src/main/java/org/eclipse/jkube/openliberty/enricher/OpenLibertyHealthCheckEnricher.java
index dd49fe805a..8a89f23759 100644
--- a/jkube-kit/jkube-kit-openliberty/src/main/java/org/eclipse/jkube/openliberty/enricher/OpenLibertyHealthCheckEnricher.java
+++ b/jkube-kit/jkube-kit-openliberty/src/main/java/org/eclipse/jkube/openliberty/enricher/OpenLibertyHealthCheckEnricher.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/jkube-kit-openliberty/src/main/java/org/eclipse/jkube/openliberty/generator/OpenLibertyGenerator.java b/jkube-kit/jkube-kit-openliberty/src/main/java/org/eclipse/jkube/openliberty/generator/OpenLibertyGenerator.java
index 8e6ba2812e..9defeba947 100644
--- a/jkube-kit/jkube-kit-openliberty/src/main/java/org/eclipse/jkube/openliberty/generator/OpenLibertyGenerator.java
+++ b/jkube-kit/jkube-kit-openliberty/src/main/java/org/eclipse/jkube/openliberty/generator/OpenLibertyGenerator.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/jkube-kit-openliberty/src/test/java/org/eclipse/jkube/openliberty/OpenLibertyUtilsTest.java b/jkube-kit/jkube-kit-openliberty/src/test/java/org/eclipse/jkube/openliberty/OpenLibertyUtilsTest.java
index 0b05d0b7f5..c66c66717f 100644
--- a/jkube-kit/jkube-kit-openliberty/src/test/java/org/eclipse/jkube/openliberty/OpenLibertyUtilsTest.java
+++ b/jkube-kit/jkube-kit-openliberty/src/test/java/org/eclipse/jkube/openliberty/OpenLibertyUtilsTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/jkube-kit-openliberty/src/test/java/org/eclipse/jkube/openliberty/enricher/OpenLibertyHealthCheckEnricherTest.java b/jkube-kit/jkube-kit-openliberty/src/test/java/org/eclipse/jkube/openliberty/enricher/OpenLibertyHealthCheckEnricherTest.java
index fd2d1785c1..deb2a23de6 100644
--- a/jkube-kit/jkube-kit-openliberty/src/test/java/org/eclipse/jkube/openliberty/enricher/OpenLibertyHealthCheckEnricherTest.java
+++ b/jkube-kit/jkube-kit-openliberty/src/test/java/org/eclipse/jkube/openliberty/enricher/OpenLibertyHealthCheckEnricherTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/jkube-kit-openliberty/src/test/java/org/eclipse/jkube/openliberty/generator/OpenLibertyGeneratorIsApplicableTest.java b/jkube-kit/jkube-kit-openliberty/src/test/java/org/eclipse/jkube/openliberty/generator/OpenLibertyGeneratorIsApplicableTest.java
index 7432658967..8c1c5ae87e 100644
--- a/jkube-kit/jkube-kit-openliberty/src/test/java/org/eclipse/jkube/openliberty/generator/OpenLibertyGeneratorIsApplicableTest.java
+++ b/jkube-kit/jkube-kit-openliberty/src/test/java/org/eclipse/jkube/openliberty/generator/OpenLibertyGeneratorIsApplicableTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/jkube-kit-openliberty/src/test/java/org/eclipse/jkube/openliberty/generator/OpenLibertyGeneratorTest.java b/jkube-kit/jkube-kit-openliberty/src/test/java/org/eclipse/jkube/openliberty/generator/OpenLibertyGeneratorTest.java
index da1ceba6a8..c25c2feb95 100644
--- a/jkube-kit/jkube-kit-openliberty/src/test/java/org/eclipse/jkube/openliberty/generator/OpenLibertyGeneratorTest.java
+++ b/jkube-kit/jkube-kit-openliberty/src/test/java/org/eclipse/jkube/openliberty/generator/OpenLibertyGeneratorTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/jkube-kit-quarkus/src/main/java/org/eclipse/jkube/quarkus/QuarkusUtils.java b/jkube-kit/jkube-kit-quarkus/src/main/java/org/eclipse/jkube/quarkus/QuarkusUtils.java
index ca088fd791..147bf7c41f 100644
--- a/jkube-kit/jkube-kit-quarkus/src/main/java/org/eclipse/jkube/quarkus/QuarkusUtils.java
+++ b/jkube-kit/jkube-kit-quarkus/src/main/java/org/eclipse/jkube/quarkus/QuarkusUtils.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
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 5019d99936..b395d214c8 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
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/jkube-kit-quarkus/src/main/java/org/eclipse/jkube/quarkus/generator/AbstractQuarkusNestedGenerator.java b/jkube-kit/jkube-kit-quarkus/src/main/java/org/eclipse/jkube/quarkus/generator/AbstractQuarkusNestedGenerator.java
index 5182cb23b5..f69b7820ea 100644
--- a/jkube-kit/jkube-kit-quarkus/src/main/java/org/eclipse/jkube/quarkus/generator/AbstractQuarkusNestedGenerator.java
+++ b/jkube-kit/jkube-kit-quarkus/src/main/java/org/eclipse/jkube/quarkus/generator/AbstractQuarkusNestedGenerator.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/jkube-kit-quarkus/src/main/java/org/eclipse/jkube/quarkus/generator/FastJarGenerator.java b/jkube-kit/jkube-kit-quarkus/src/main/java/org/eclipse/jkube/quarkus/generator/FastJarGenerator.java
index b08b3b0ae5..389497b8ce 100644
--- a/jkube-kit/jkube-kit-quarkus/src/main/java/org/eclipse/jkube/quarkus/generator/FastJarGenerator.java
+++ b/jkube-kit/jkube-kit-quarkus/src/main/java/org/eclipse/jkube/quarkus/generator/FastJarGenerator.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/jkube-kit-quarkus/src/main/java/org/eclipse/jkube/quarkus/generator/LegacyJarGenerator.java b/jkube-kit/jkube-kit-quarkus/src/main/java/org/eclipse/jkube/quarkus/generator/LegacyJarGenerator.java
index 95514e92eb..7e6e739cf1 100644
--- a/jkube-kit/jkube-kit-quarkus/src/main/java/org/eclipse/jkube/quarkus/generator/LegacyJarGenerator.java
+++ b/jkube-kit/jkube-kit-quarkus/src/main/java/org/eclipse/jkube/quarkus/generator/LegacyJarGenerator.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/jkube-kit-quarkus/src/main/java/org/eclipse/jkube/quarkus/generator/NativeGenerator.java b/jkube-kit/jkube-kit-quarkus/src/main/java/org/eclipse/jkube/quarkus/generator/NativeGenerator.java
index 45689f05b0..8f0d9f0de7 100644
--- a/jkube-kit/jkube-kit-quarkus/src/main/java/org/eclipse/jkube/quarkus/generator/NativeGenerator.java
+++ b/jkube-kit/jkube-kit-quarkus/src/main/java/org/eclipse/jkube/quarkus/generator/NativeGenerator.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/jkube-kit-quarkus/src/main/java/org/eclipse/jkube/quarkus/generator/QuarkusGenerator.java b/jkube-kit/jkube-kit-quarkus/src/main/java/org/eclipse/jkube/quarkus/generator/QuarkusGenerator.java
index f2e3c67bf5..d3171899f1 100644
--- a/jkube-kit/jkube-kit-quarkus/src/main/java/org/eclipse/jkube/quarkus/generator/QuarkusGenerator.java
+++ b/jkube-kit/jkube-kit-quarkus/src/main/java/org/eclipse/jkube/quarkus/generator/QuarkusGenerator.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/jkube-kit-quarkus/src/main/java/org/eclipse/jkube/quarkus/generator/QuarkusNestedGenerator.java b/jkube-kit/jkube-kit-quarkus/src/main/java/org/eclipse/jkube/quarkus/generator/QuarkusNestedGenerator.java
index 273b91a728..483b239e9d 100644
--- a/jkube-kit/jkube-kit-quarkus/src/main/java/org/eclipse/jkube/quarkus/generator/QuarkusNestedGenerator.java
+++ b/jkube-kit/jkube-kit-quarkus/src/main/java/org/eclipse/jkube/quarkus/generator/QuarkusNestedGenerator.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/jkube-kit-quarkus/src/main/java/org/eclipse/jkube/quarkus/generator/UberJarGenerator.java b/jkube-kit/jkube-kit-quarkus/src/main/java/org/eclipse/jkube/quarkus/generator/UberJarGenerator.java
index 419454981d..51af30a82e 100644
--- a/jkube-kit/jkube-kit-quarkus/src/main/java/org/eclipse/jkube/quarkus/generator/UberJarGenerator.java
+++ b/jkube-kit/jkube-kit-quarkus/src/main/java/org/eclipse/jkube/quarkus/generator/UberJarGenerator.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
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 50187d8ac4..c980e9e6b0 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
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
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 01c186b627..c1186d8934 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
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/jkube-kit-quarkus/src/test/java/org/eclipse/jkube/quarkus/generator/QuarkusGeneratorExposedPortsTest.java b/jkube-kit/jkube-kit-quarkus/src/test/java/org/eclipse/jkube/quarkus/generator/QuarkusGeneratorExposedPortsTest.java
index 0d520c20f1..a195a33b0b 100644
--- a/jkube-kit/jkube-kit-quarkus/src/test/java/org/eclipse/jkube/quarkus/generator/QuarkusGeneratorExposedPortsTest.java
+++ b/jkube-kit/jkube-kit-quarkus/src/test/java/org/eclipse/jkube/quarkus/generator/QuarkusGeneratorExposedPortsTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
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 1241545134..38ef8df0fb 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
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/jkube-kit-quarkus/src/test/java/org/eclipse/jkube/quarkus/generator/QuarkusNestedGeneratorTest.java b/jkube-kit/jkube-kit-quarkus/src/test/java/org/eclipse/jkube/quarkus/generator/QuarkusNestedGeneratorTest.java
index a6450d1ded..39663b37bf 100644
--- a/jkube-kit/jkube-kit-quarkus/src/test/java/org/eclipse/jkube/quarkus/generator/QuarkusNestedGeneratorTest.java
+++ b/jkube-kit/jkube-kit-quarkus/src/test/java/org/eclipse/jkube/quarkus/generator/QuarkusNestedGeneratorTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/jkube-kit-smallrye/src/main/java/org/eclipse/jkube/smallrye/SmallRyeUtils.java b/jkube-kit/jkube-kit-smallrye/src/main/java/org/eclipse/jkube/smallrye/SmallRyeUtils.java
index 1998f45518..e9734526ed 100644
--- a/jkube-kit/jkube-kit-smallrye/src/main/java/org/eclipse/jkube/smallrye/SmallRyeUtils.java
+++ b/jkube-kit/jkube-kit-smallrye/src/main/java/org/eclipse/jkube/smallrye/SmallRyeUtils.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/jkube-kit-smallrye/src/main/java/org/eclipse/jkube/smallrye/enricher/SmallRyeHealthCheckEnricher.java b/jkube-kit/jkube-kit-smallrye/src/main/java/org/eclipse/jkube/smallrye/enricher/SmallRyeHealthCheckEnricher.java
index e142f4c529..b2d9e1dba8 100644
--- a/jkube-kit/jkube-kit-smallrye/src/main/java/org/eclipse/jkube/smallrye/enricher/SmallRyeHealthCheckEnricher.java
+++ b/jkube-kit/jkube-kit-smallrye/src/main/java/org/eclipse/jkube/smallrye/enricher/SmallRyeHealthCheckEnricher.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/jkube-kit-smallrye/src/test/java/org/eclipse/jkube/smallrye/SmallRyeUtilsTest.java b/jkube-kit/jkube-kit-smallrye/src/test/java/org/eclipse/jkube/smallrye/SmallRyeUtilsTest.java
index b96802ddb4..326fbda95f 100644
--- a/jkube-kit/jkube-kit-smallrye/src/test/java/org/eclipse/jkube/smallrye/SmallRyeUtilsTest.java
+++ b/jkube-kit/jkube-kit-smallrye/src/test/java/org/eclipse/jkube/smallrye/SmallRyeUtilsTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/jkube-kit-smallrye/src/test/java/org/eclipse/jkube/smallrye/enricher/SmallRyeHealthCheckEnricherTest.java b/jkube-kit/jkube-kit-smallrye/src/test/java/org/eclipse/jkube/smallrye/enricher/SmallRyeHealthCheckEnricherTest.java
index 39c30f42a1..3747b40c24 100644
--- a/jkube-kit/jkube-kit-smallrye/src/test/java/org/eclipse/jkube/smallrye/enricher/SmallRyeHealthCheckEnricherTest.java
+++ b/jkube-kit/jkube-kit-smallrye/src/test/java/org/eclipse/jkube/smallrye/enricher/SmallRyeHealthCheckEnricherTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/jkube-kit-spring-boot/src/main/java/org/eclipse/jkube/springboot/SpringBootDevtoolsUtils.java b/jkube-kit/jkube-kit-spring-boot/src/main/java/org/eclipse/jkube/springboot/SpringBootDevtoolsUtils.java
index 7de2ca76ca..b5a1323c83 100644
--- a/jkube-kit/jkube-kit-spring-boot/src/main/java/org/eclipse/jkube/springboot/SpringBootDevtoolsUtils.java
+++ b/jkube-kit/jkube-kit-spring-boot/src/main/java/org/eclipse/jkube/springboot/SpringBootDevtoolsUtils.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
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 824339ba32..1ea40a2f19 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
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
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 db981edc3c..764ff8e099 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
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/jkube-kit-spring-boot/src/main/java/org/eclipse/jkube/springboot/watcher/SpringBootWatcher.java b/jkube-kit/jkube-kit-spring-boot/src/main/java/org/eclipse/jkube/springboot/watcher/SpringBootWatcher.java
index 0652b4107a..68dad5249f 100644
--- a/jkube-kit/jkube-kit-spring-boot/src/main/java/org/eclipse/jkube/springboot/watcher/SpringBootWatcher.java
+++ b/jkube-kit/jkube-kit-spring-boot/src/main/java/org/eclipse/jkube/springboot/watcher/SpringBootWatcher.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/jkube-kit-spring-boot/src/test/java/org/eclipse/jkube/springboot/SpringBootDevtoolsUtilsTest.java b/jkube-kit/jkube-kit-spring-boot/src/test/java/org/eclipse/jkube/springboot/SpringBootDevtoolsUtilsTest.java
index 5487d97e9a..53fbb1eea4 100644
--- a/jkube-kit/jkube-kit-spring-boot/src/test/java/org/eclipse/jkube/springboot/SpringBootDevtoolsUtilsTest.java
+++ b/jkube-kit/jkube-kit-spring-boot/src/test/java/org/eclipse/jkube/springboot/SpringBootDevtoolsUtilsTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
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 7046de780a..ee07e5bf2b 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
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/jkube-kit-spring-boot/src/test/java/org/eclipse/jkube/springboot/enricher/SpringBoot1HealthCheckEnricherTest.java b/jkube-kit/jkube-kit-spring-boot/src/test/java/org/eclipse/jkube/springboot/enricher/SpringBoot1HealthCheckEnricherTest.java
index 3be22d5c40..c266a92005 100644
--- a/jkube-kit/jkube-kit-spring-boot/src/test/java/org/eclipse/jkube/springboot/enricher/SpringBoot1HealthCheckEnricherTest.java
+++ b/jkube-kit/jkube-kit-spring-boot/src/test/java/org/eclipse/jkube/springboot/enricher/SpringBoot1HealthCheckEnricherTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/jkube-kit-spring-boot/src/test/java/org/eclipse/jkube/springboot/enricher/SpringBoot2HealthCheckEnricherTest.java b/jkube-kit/jkube-kit-spring-boot/src/test/java/org/eclipse/jkube/springboot/enricher/SpringBoot2HealthCheckEnricherTest.java
index 507f09777b..3e288cf607 100644
--- a/jkube-kit/jkube-kit-spring-boot/src/test/java/org/eclipse/jkube/springboot/enricher/SpringBoot2HealthCheckEnricherTest.java
+++ b/jkube-kit/jkube-kit-spring-boot/src/test/java/org/eclipse/jkube/springboot/enricher/SpringBoot2HealthCheckEnricherTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/jkube-kit-spring-boot/src/test/java/org/eclipse/jkube/springboot/generator/SpringBootGeneratorIntegrationTest.java b/jkube-kit/jkube-kit-spring-boot/src/test/java/org/eclipse/jkube/springboot/generator/SpringBootGeneratorIntegrationTest.java
index 9b352f420a..60633943c3 100644
--- a/jkube-kit/jkube-kit-spring-boot/src/test/java/org/eclipse/jkube/springboot/generator/SpringBootGeneratorIntegrationTest.java
+++ b/jkube-kit/jkube-kit-spring-boot/src/test/java/org/eclipse/jkube/springboot/generator/SpringBootGeneratorIntegrationTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
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 109b81a9d5..89d6a20a4c 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
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/jkube-kit-spring-boot/src/test/java/org/eclipse/jkube/springboot/watcher/SpringBootWatcherIntegrationTest.java b/jkube-kit/jkube-kit-spring-boot/src/test/java/org/eclipse/jkube/springboot/watcher/SpringBootWatcherIntegrationTest.java
index d33857bc69..d0ca04bf21 100644
--- a/jkube-kit/jkube-kit-spring-boot/src/test/java/org/eclipse/jkube/springboot/watcher/SpringBootWatcherIntegrationTest.java
+++ b/jkube-kit/jkube-kit-spring-boot/src/test/java/org/eclipse/jkube/springboot/watcher/SpringBootWatcherIntegrationTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/jkube-kit-spring-boot/src/test/java/org/eclipse/jkube/springboot/watcher/SpringBootWatcherTest.java b/jkube-kit/jkube-kit-spring-boot/src/test/java/org/eclipse/jkube/springboot/watcher/SpringBootWatcherTest.java
index aafe94839a..c7583fe33a 100644
--- a/jkube-kit/jkube-kit-spring-boot/src/test/java/org/eclipse/jkube/springboot/watcher/SpringBootWatcherTest.java
+++ b/jkube-kit/jkube-kit-spring-boot/src/test/java/org/eclipse/jkube/springboot/watcher/SpringBootWatcherTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
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 7f66999486..c85b4cc7b3 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
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
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 9d5e730114..760b98fbca 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
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
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 1a200ff0b6..868ded0487 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
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
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 07ec4eec0a..227b62be75 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
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/jkube-kit-vertx/src/main/java/org/eclipse/jkube/vertx/enricher/VertxHealthCheckEnricher.java b/jkube-kit/jkube-kit-vertx/src/main/java/org/eclipse/jkube/vertx/enricher/VertxHealthCheckEnricher.java
index 926ac99496..ed5bf9e772 100644
--- a/jkube-kit/jkube-kit-vertx/src/main/java/org/eclipse/jkube/vertx/enricher/VertxHealthCheckEnricher.java
+++ b/jkube-kit/jkube-kit-vertx/src/main/java/org/eclipse/jkube/vertx/enricher/VertxHealthCheckEnricher.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/jkube-kit-vertx/src/main/java/org/eclipse/jkube/vertx/generator/Constants.java b/jkube-kit/jkube-kit-vertx/src/main/java/org/eclipse/jkube/vertx/generator/Constants.java
index a0a6b5cb43..4afd748ed9 100644
--- a/jkube-kit/jkube-kit-vertx/src/main/java/org/eclipse/jkube/vertx/generator/Constants.java
+++ b/jkube-kit/jkube-kit-vertx/src/main/java/org/eclipse/jkube/vertx/generator/Constants.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/jkube-kit-vertx/src/main/java/org/eclipse/jkube/vertx/generator/VertxGenerator.java b/jkube-kit/jkube-kit-vertx/src/main/java/org/eclipse/jkube/vertx/generator/VertxGenerator.java
index 50aa73aa47..13e46f6339 100644
--- a/jkube-kit/jkube-kit-vertx/src/main/java/org/eclipse/jkube/vertx/generator/VertxGenerator.java
+++ b/jkube-kit/jkube-kit-vertx/src/main/java/org/eclipse/jkube/vertx/generator/VertxGenerator.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/jkube-kit-vertx/src/main/java/org/eclipse/jkube/vertx/generator/VertxPortsExtractor.java b/jkube-kit/jkube-kit-vertx/src/main/java/org/eclipse/jkube/vertx/generator/VertxPortsExtractor.java
index b092e5447e..91d403bd57 100644
--- a/jkube-kit/jkube-kit-vertx/src/main/java/org/eclipse/jkube/vertx/generator/VertxPortsExtractor.java
+++ b/jkube-kit/jkube-kit-vertx/src/main/java/org/eclipse/jkube/vertx/generator/VertxPortsExtractor.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/jkube-kit-vertx/src/test/java/org/eclipse/jkube/vertx/enricher/VertxHealthCheckEnricherTest.java b/jkube-kit/jkube-kit-vertx/src/test/java/org/eclipse/jkube/vertx/enricher/VertxHealthCheckEnricherTest.java
index eb70d95eb5..936b4d94eb 100644
--- a/jkube-kit/jkube-kit-vertx/src/test/java/org/eclipse/jkube/vertx/enricher/VertxHealthCheckEnricherTest.java
+++ b/jkube-kit/jkube-kit-vertx/src/test/java/org/eclipse/jkube/vertx/enricher/VertxHealthCheckEnricherTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/jkube-kit-vertx/src/test/java/org/eclipse/jkube/vertx/generator/VertxGeneratorIsApplicableTest.java b/jkube-kit/jkube-kit-vertx/src/test/java/org/eclipse/jkube/vertx/generator/VertxGeneratorIsApplicableTest.java
index 420f7a7466..b4a575de21 100644
--- a/jkube-kit/jkube-kit-vertx/src/test/java/org/eclipse/jkube/vertx/generator/VertxGeneratorIsApplicableTest.java
+++ b/jkube-kit/jkube-kit-vertx/src/test/java/org/eclipse/jkube/vertx/generator/VertxGeneratorIsApplicableTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/jkube-kit-vertx/src/test/java/org/eclipse/jkube/vertx/generator/VertxGeneratorTest.java b/jkube-kit/jkube-kit-vertx/src/test/java/org/eclipse/jkube/vertx/generator/VertxGeneratorTest.java
index 283a02f9fe..65daae976e 100644
--- a/jkube-kit/jkube-kit-vertx/src/test/java/org/eclipse/jkube/vertx/generator/VertxGeneratorTest.java
+++ b/jkube-kit/jkube-kit-vertx/src/test/java/org/eclipse/jkube/vertx/generator/VertxGeneratorTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/jkube-kit-vertx/src/test/java/org/eclipse/jkube/vertx/generator/VertxPortsExtractorTest.java b/jkube-kit/jkube-kit-vertx/src/test/java/org/eclipse/jkube/vertx/generator/VertxPortsExtractorTest.java
index e633af88d6..40e4f11508 100644
--- a/jkube-kit/jkube-kit-vertx/src/test/java/org/eclipse/jkube/vertx/generator/VertxPortsExtractorTest.java
+++ b/jkube-kit/jkube-kit-vertx/src/test/java/org/eclipse/jkube/vertx/generator/VertxPortsExtractorTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/jkube-kit-wildfly-jar/src/main/java/org/eclipse/jkube/wildfly/jar/WildflyJarUtils.java b/jkube-kit/jkube-kit-wildfly-jar/src/main/java/org/eclipse/jkube/wildfly/jar/WildflyJarUtils.java
index 06f8014c72..e1d44d4274 100644
--- a/jkube-kit/jkube-kit-wildfly-jar/src/main/java/org/eclipse/jkube/wildfly/jar/WildflyJarUtils.java
+++ b/jkube-kit/jkube-kit-wildfly-jar/src/main/java/org/eclipse/jkube/wildfly/jar/WildflyJarUtils.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/jkube-kit-wildfly-jar/src/main/java/org/eclipse/jkube/wildfly/jar/enricher/WildflyJARHealthCheckEnricher.java b/jkube-kit/jkube-kit-wildfly-jar/src/main/java/org/eclipse/jkube/wildfly/jar/enricher/WildflyJARHealthCheckEnricher.java
index 119fe73655..0a9da88fe7 100644
--- a/jkube-kit/jkube-kit-wildfly-jar/src/main/java/org/eclipse/jkube/wildfly/jar/enricher/WildflyJARHealthCheckEnricher.java
+++ b/jkube-kit/jkube-kit-wildfly-jar/src/main/java/org/eclipse/jkube/wildfly/jar/enricher/WildflyJARHealthCheckEnricher.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/jkube-kit-wildfly-jar/src/main/java/org/eclipse/jkube/wildfly/jar/generator/WildflyJARGenerator.java b/jkube-kit/jkube-kit-wildfly-jar/src/main/java/org/eclipse/jkube/wildfly/jar/generator/WildflyJARGenerator.java
index 69bb2e64ad..85ff74dbc2 100644
--- a/jkube-kit/jkube-kit-wildfly-jar/src/main/java/org/eclipse/jkube/wildfly/jar/generator/WildflyJARGenerator.java
+++ b/jkube-kit/jkube-kit-wildfly-jar/src/main/java/org/eclipse/jkube/wildfly/jar/generator/WildflyJARGenerator.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/jkube-kit-wildfly-jar/src/test/java/org/eclipse/jkube/wildfly/jar/WildflyJarUtilsTest.java b/jkube-kit/jkube-kit-wildfly-jar/src/test/java/org/eclipse/jkube/wildfly/jar/WildflyJarUtilsTest.java
index ee9603ee07..3e115fbec0 100644
--- a/jkube-kit/jkube-kit-wildfly-jar/src/test/java/org/eclipse/jkube/wildfly/jar/WildflyJarUtilsTest.java
+++ b/jkube-kit/jkube-kit-wildfly-jar/src/test/java/org/eclipse/jkube/wildfly/jar/WildflyJarUtilsTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/jkube-kit-wildfly-jar/src/test/java/org/eclipse/jkube/wildfly/jar/enricher/WildflyJARHealthCheckEnricherTest.java b/jkube-kit/jkube-kit-wildfly-jar/src/test/java/org/eclipse/jkube/wildfly/jar/enricher/WildflyJARHealthCheckEnricherTest.java
index 3fe5b8664e..df2dd17bb2 100644
--- a/jkube-kit/jkube-kit-wildfly-jar/src/test/java/org/eclipse/jkube/wildfly/jar/enricher/WildflyJARHealthCheckEnricherTest.java
+++ b/jkube-kit/jkube-kit-wildfly-jar/src/test/java/org/eclipse/jkube/wildfly/jar/enricher/WildflyJARHealthCheckEnricherTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/jkube-kit-wildfly-jar/src/test/java/org/eclipse/jkube/wildfly/jar/generator/WildflyJARGeneratorTest.java b/jkube-kit/jkube-kit-wildfly-jar/src/test/java/org/eclipse/jkube/wildfly/jar/generator/WildflyJARGeneratorTest.java
index 84f8b1a3ed..57d6725bb8 100644
--- a/jkube-kit/jkube-kit-wildfly-jar/src/test/java/org/eclipse/jkube/wildfly/jar/generator/WildflyJARGeneratorTest.java
+++ b/jkube-kit/jkube-kit-wildfly-jar/src/test/java/org/eclipse/jkube/wildfly/jar/generator/WildflyJARGeneratorTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/profile/src/main/java/org/eclipse/jkube/kit/profile/Profile.java b/jkube-kit/profile/src/main/java/org/eclipse/jkube/kit/profile/Profile.java
index 8028c265fb..de863de3c7 100644
--- a/jkube-kit/profile/src/main/java/org/eclipse/jkube/kit/profile/Profile.java
+++ b/jkube-kit/profile/src/main/java/org/eclipse/jkube/kit/profile/Profile.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/profile/src/main/java/org/eclipse/jkube/kit/profile/ProfileUtil.java b/jkube-kit/profile/src/main/java/org/eclipse/jkube/kit/profile/ProfileUtil.java
index 5de6ffabd1..27f78882dd 100644
--- a/jkube-kit/profile/src/main/java/org/eclipse/jkube/kit/profile/ProfileUtil.java
+++ b/jkube-kit/profile/src/main/java/org/eclipse/jkube/kit/profile/ProfileUtil.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/profile/src/test/java/org/eclipse/jkube/kit/profile/ProfileUtilTest.java b/jkube-kit/profile/src/test/java/org/eclipse/jkube/kit/profile/ProfileUtilTest.java
index ad74932a05..b4f6cd7ee8 100644
--- a/jkube-kit/profile/src/test/java/org/eclipse/jkube/kit/profile/ProfileUtilTest.java
+++ b/jkube-kit/profile/src/test/java/org/eclipse/jkube/kit/profile/ProfileUtilTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/remote-dev/src/main/java/org/eclipse/jkube/kit/remotedev/KubernetesSshServiceForwarder.java b/jkube-kit/remote-dev/src/main/java/org/eclipse/jkube/kit/remotedev/KubernetesSshServiceForwarder.java
index 5d8b9c438c..448142bc9f 100644
--- a/jkube-kit/remote-dev/src/main/java/org/eclipse/jkube/kit/remotedev/KubernetesSshServiceForwarder.java
+++ b/jkube-kit/remote-dev/src/main/java/org/eclipse/jkube/kit/remotedev/KubernetesSshServiceForwarder.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/remote-dev/src/main/java/org/eclipse/jkube/kit/remotedev/LocalService.java b/jkube-kit/remote-dev/src/main/java/org/eclipse/jkube/kit/remotedev/LocalService.java
index d26af80f74..2a7e6268d6 100644
--- a/jkube-kit/remote-dev/src/main/java/org/eclipse/jkube/kit/remotedev/LocalService.java
+++ b/jkube-kit/remote-dev/src/main/java/org/eclipse/jkube/kit/remotedev/LocalService.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/remote-dev/src/main/java/org/eclipse/jkube/kit/remotedev/LocalServiceManager.java b/jkube-kit/remote-dev/src/main/java/org/eclipse/jkube/kit/remotedev/LocalServiceManager.java
index 7032f0e4c8..8bb2453b1f 100644
--- a/jkube-kit/remote-dev/src/main/java/org/eclipse/jkube/kit/remotedev/LocalServiceManager.java
+++ b/jkube-kit/remote-dev/src/main/java/org/eclipse/jkube/kit/remotedev/LocalServiceManager.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/remote-dev/src/main/java/org/eclipse/jkube/kit/remotedev/PortForwarder.java b/jkube-kit/remote-dev/src/main/java/org/eclipse/jkube/kit/remotedev/PortForwarder.java
index 50263498e8..28bfec87b3 100644
--- a/jkube-kit/remote-dev/src/main/java/org/eclipse/jkube/kit/remotedev/PortForwarder.java
+++ b/jkube-kit/remote-dev/src/main/java/org/eclipse/jkube/kit/remotedev/PortForwarder.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/remote-dev/src/main/java/org/eclipse/jkube/kit/remotedev/RemoteDevelopmentConfig.java b/jkube-kit/remote-dev/src/main/java/org/eclipse/jkube/kit/remotedev/RemoteDevelopmentConfig.java
index c06e2ec4e7..15304d30db 100644
--- a/jkube-kit/remote-dev/src/main/java/org/eclipse/jkube/kit/remotedev/RemoteDevelopmentConfig.java
+++ b/jkube-kit/remote-dev/src/main/java/org/eclipse/jkube/kit/remotedev/RemoteDevelopmentConfig.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/remote-dev/src/main/java/org/eclipse/jkube/kit/remotedev/RemoteDevelopmentContext.java b/jkube-kit/remote-dev/src/main/java/org/eclipse/jkube/kit/remotedev/RemoteDevelopmentContext.java
index d8135dd368..cb9cc4b51a 100644
--- a/jkube-kit/remote-dev/src/main/java/org/eclipse/jkube/kit/remotedev/RemoteDevelopmentContext.java
+++ b/jkube-kit/remote-dev/src/main/java/org/eclipse/jkube/kit/remotedev/RemoteDevelopmentContext.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/remote-dev/src/main/java/org/eclipse/jkube/kit/remotedev/RemoteDevelopmentService.java b/jkube-kit/remote-dev/src/main/java/org/eclipse/jkube/kit/remotedev/RemoteDevelopmentService.java
index ca0034753a..b4ca62f5a7 100644
--- a/jkube-kit/remote-dev/src/main/java/org/eclipse/jkube/kit/remotedev/RemoteDevelopmentService.java
+++ b/jkube-kit/remote-dev/src/main/java/org/eclipse/jkube/kit/remotedev/RemoteDevelopmentService.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/remote-dev/src/main/java/org/eclipse/jkube/kit/remotedev/RemoteService.java b/jkube-kit/remote-dev/src/main/java/org/eclipse/jkube/kit/remotedev/RemoteService.java
index eece94b633..4093fd4e59 100644
--- a/jkube-kit/remote-dev/src/main/java/org/eclipse/jkube/kit/remotedev/RemoteService.java
+++ b/jkube-kit/remote-dev/src/main/java/org/eclipse/jkube/kit/remotedev/RemoteService.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/remote-dev/src/test/java/org/eclipse/jkube/kit/remotedev/KubernetesSshServiceForwarderTest.java b/jkube-kit/remote-dev/src/test/java/org/eclipse/jkube/kit/remotedev/KubernetesSshServiceForwarderTest.java
index 36bfd7a88f..7f28202467 100644
--- a/jkube-kit/remote-dev/src/test/java/org/eclipse/jkube/kit/remotedev/KubernetesSshServiceForwarderTest.java
+++ b/jkube-kit/remote-dev/src/test/java/org/eclipse/jkube/kit/remotedev/KubernetesSshServiceForwarderTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/remote-dev/src/test/java/org/eclipse/jkube/kit/remotedev/LocalServiceManagerTest.java b/jkube-kit/remote-dev/src/test/java/org/eclipse/jkube/kit/remotedev/LocalServiceManagerTest.java
index 84959f19c4..01b087e314 100644
--- a/jkube-kit/remote-dev/src/test/java/org/eclipse/jkube/kit/remotedev/LocalServiceManagerTest.java
+++ b/jkube-kit/remote-dev/src/test/java/org/eclipse/jkube/kit/remotedev/LocalServiceManagerTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/remote-dev/src/test/java/org/eclipse/jkube/kit/remotedev/PortForwarderTest.java b/jkube-kit/remote-dev/src/test/java/org/eclipse/jkube/kit/remotedev/PortForwarderTest.java
index a434456879..05b1fe48b1 100644
--- a/jkube-kit/remote-dev/src/test/java/org/eclipse/jkube/kit/remotedev/PortForwarderTest.java
+++ b/jkube-kit/remote-dev/src/test/java/org/eclipse/jkube/kit/remotedev/PortForwarderTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/remote-dev/src/test/java/org/eclipse/jkube/kit/remotedev/RemoteDevelopmentServiceTest.java b/jkube-kit/remote-dev/src/test/java/org/eclipse/jkube/kit/remotedev/RemoteDevelopmentServiceTest.java
index 6297f7a82c..2fc692e7ea 100644
--- a/jkube-kit/remote-dev/src/test/java/org/eclipse/jkube/kit/remotedev/RemoteDevelopmentServiceTest.java
+++ b/jkube-kit/remote-dev/src/test/java/org/eclipse/jkube/kit/remotedev/RemoteDevelopmentServiceTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/remote-dev/src/test/java/org/eclipse/jkube/kit/remotedev/SshServerExtension.java b/jkube-kit/remote-dev/src/test/java/org/eclipse/jkube/kit/remotedev/SshServerExtension.java
index 088de3a848..872c374a40 100644
--- a/jkube-kit/remote-dev/src/test/java/org/eclipse/jkube/kit/remotedev/SshServerExtension.java
+++ b/jkube-kit/remote-dev/src/test/java/org/eclipse/jkube/kit/remotedev/SshServerExtension.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/ArtifactoryHelmRepositoryUploader.java b/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/ArtifactoryHelmRepositoryUploader.java
index 362bbeb367..25f44e9fc6 100644
--- a/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/ArtifactoryHelmRepositoryUploader.java
+++ b/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/ArtifactoryHelmRepositoryUploader.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/BadUploadException.java b/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/BadUploadException.java
index 52aa01b8aa..d863336e27 100644
--- a/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/BadUploadException.java
+++ b/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/BadUploadException.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/Chart.java b/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/Chart.java
index 60fc084a43..63bb15c824 100644
--- a/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/Chart.java
+++ b/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/Chart.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/ChartMuseumHelmRepositoryUploader.java b/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/ChartMuseumHelmRepositoryUploader.java
index 9906687bd6..38d40d3ef1 100644
--- a/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/ChartMuseumHelmRepositoryUploader.java
+++ b/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/ChartMuseumHelmRepositoryUploader.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/GeneratedChartListener.java b/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/GeneratedChartListener.java
index 39a9121cb0..97220a0754 100644
--- a/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/GeneratedChartListener.java
+++ b/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/GeneratedChartListener.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/HelmConfig.java b/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/HelmConfig.java
index f3e4982b75..89c54e6b5d 100644
--- a/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/HelmConfig.java
+++ b/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/HelmConfig.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/HelmDependency.java b/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/HelmDependency.java
index 5b2a5808ff..b850a3cf22 100644
--- a/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/HelmDependency.java
+++ b/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/HelmDependency.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/HelmParameter.java b/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/HelmParameter.java
index 238e15b87d..004d55ee3b 100644
--- a/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/HelmParameter.java
+++ b/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/HelmParameter.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/HelmRepository.java b/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/HelmRepository.java
index 9ffdd57b15..98e4f99b45 100644
--- a/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/HelmRepository.java
+++ b/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/HelmRepository.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/HelmRepositoryConnectionUtils.java b/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/HelmRepositoryConnectionUtils.java
index 21bac009ff..401c70d9f5 100644
--- a/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/HelmRepositoryConnectionUtils.java
+++ b/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/HelmRepositoryConnectionUtils.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/HelmService.java b/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/HelmService.java
index 97d5083f98..192c44c1e7 100644
--- a/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/HelmService.java
+++ b/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/HelmService.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/HelmServiceUtil.java b/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/HelmServiceUtil.java
index fd39450f58..ffcd047a49 100644
--- a/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/HelmServiceUtil.java
+++ b/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/HelmServiceUtil.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/HelmUploader.java b/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/HelmUploader.java
index 26b46b504b..c72d9845a8 100644
--- a/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/HelmUploader.java
+++ b/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/HelmUploader.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/HelmUploaderManager.java b/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/HelmUploaderManager.java
index 2d8d67b836..c10718d904 100644
--- a/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/HelmUploaderManager.java
+++ b/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/HelmUploaderManager.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/NexusHelmRepositoryUploader.java b/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/NexusHelmRepositoryUploader.java
index dd0cc4380b..be5e62fc96 100644
--- a/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/NexusHelmRepositoryUploader.java
+++ b/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/NexusHelmRepositoryUploader.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/StandardRepositoryUploader.java b/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/StandardRepositoryUploader.java
index e03bb4d203..0979d538da 100644
--- a/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/StandardRepositoryUploader.java
+++ b/jkube-kit/resource/helm/src/main/java/org/eclipse/jkube/kit/resource/helm/StandardRepositoryUploader.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/ChartTest.java b/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/ChartTest.java
index 00122c3912..2a50cbbd5d 100644
--- a/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/ChartTest.java
+++ b/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/ChartTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmConfigTest.java b/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmConfigTest.java
index 9b425fa393..f0d9a30de4 100644
--- a/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmConfigTest.java
+++ b/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmConfigTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmDependencyTest.java b/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmDependencyTest.java
index 2993c9ed4f..b64c4f8b4f 100644
--- a/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmDependencyTest.java
+++ b/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmDependencyTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmRepositoryTest.java b/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmRepositoryTest.java
index bcdf392774..5fff4006dc 100644
--- a/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmRepositoryTest.java
+++ b/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmRepositoryTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmServiceIT.java b/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmServiceIT.java
index 4277416cfa..c7aee9a4b9 100644
--- a/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmServiceIT.java
+++ b/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmServiceIT.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmServiceTest.java b/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmServiceTest.java
index e8b870edae..3cf3f68c09 100644
--- a/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmServiceTest.java
+++ b/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmServiceTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmServiceUploadIT.java b/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmServiceUploadIT.java
index 449f387d75..aac06aa401 100644
--- a/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmServiceUploadIT.java
+++ b/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmServiceUploadIT.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmServiceUtilTest.java b/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmServiceUtilTest.java
index 683667bdee..1c6471f9d1 100644
--- a/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmServiceUtilTest.java
+++ b/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmServiceUtilTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmUploaderManagerTest.java b/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmUploaderManagerTest.java
index 4722612c15..8c22557bbb 100644
--- a/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmUploaderManagerTest.java
+++ b/jkube-kit/resource/helm/src/test/java/org/eclipse/jkube/kit/resource/helm/HelmUploaderManagerTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/resource/service/src/main/java/org/eclipse/jkube/kit/resource/service/DefaultResourceService.java b/jkube-kit/resource/service/src/main/java/org/eclipse/jkube/kit/resource/service/DefaultResourceService.java
index a22c6bb83d..36defc64ce 100644
--- a/jkube-kit/resource/service/src/main/java/org/eclipse/jkube/kit/resource/service/DefaultResourceService.java
+++ b/jkube-kit/resource/service/src/main/java/org/eclipse/jkube/kit/resource/service/DefaultResourceService.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/resource/service/src/main/java/org/eclipse/jkube/kit/resource/service/TemplateUtil.java b/jkube-kit/resource/service/src/main/java/org/eclipse/jkube/kit/resource/service/TemplateUtil.java
index bc1808e720..319c440717 100644
--- a/jkube-kit/resource/service/src/main/java/org/eclipse/jkube/kit/resource/service/TemplateUtil.java
+++ b/jkube-kit/resource/service/src/main/java/org/eclipse/jkube/kit/resource/service/TemplateUtil.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/resource/service/src/main/java/org/eclipse/jkube/kit/resource/service/WriteUtil.java b/jkube-kit/resource/service/src/main/java/org/eclipse/jkube/kit/resource/service/WriteUtil.java
index 242af7ed42..13824f1459 100644
--- a/jkube-kit/resource/service/src/main/java/org/eclipse/jkube/kit/resource/service/WriteUtil.java
+++ b/jkube-kit/resource/service/src/main/java/org/eclipse/jkube/kit/resource/service/WriteUtil.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/resource/service/src/test/java/org/eclipse/jkube/kit/resource/service/DefaultResourceServiceTest.java b/jkube-kit/resource/service/src/test/java/org/eclipse/jkube/kit/resource/service/DefaultResourceServiceTest.java
index 6bb357233d..c2f8e74b8d 100644
--- a/jkube-kit/resource/service/src/test/java/org/eclipse/jkube/kit/resource/service/DefaultResourceServiceTest.java
+++ b/jkube-kit/resource/service/src/test/java/org/eclipse/jkube/kit/resource/service/DefaultResourceServiceTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/resource/service/src/test/java/org/eclipse/jkube/kit/resource/service/TemplateUtilTest.java b/jkube-kit/resource/service/src/test/java/org/eclipse/jkube/kit/resource/service/TemplateUtilTest.java
index 5b8bbe1ee7..1fc717ef25 100644
--- a/jkube-kit/resource/service/src/test/java/org/eclipse/jkube/kit/resource/service/TemplateUtilTest.java
+++ b/jkube-kit/resource/service/src/test/java/org/eclipse/jkube/kit/resource/service/TemplateUtilTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/resource/service/src/test/java/org/eclipse/jkube/kit/resource/service/WriteUtilTest.java b/jkube-kit/resource/service/src/test/java/org/eclipse/jkube/kit/resource/service/WriteUtilTest.java
index f6069859bf..c0fea32af9 100644
--- a/jkube-kit/resource/service/src/test/java/org/eclipse/jkube/kit/resource/service/WriteUtilTest.java
+++ b/jkube-kit/resource/service/src/test/java/org/eclipse/jkube/kit/resource/service/WriteUtilTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/watcher/api/src/main/java/org/eclipse/jkube/watcher/api/BaseWatcher.java b/jkube-kit/watcher/api/src/main/java/org/eclipse/jkube/watcher/api/BaseWatcher.java
index d393883200..0641492fc1 100644
--- a/jkube-kit/watcher/api/src/main/java/org/eclipse/jkube/watcher/api/BaseWatcher.java
+++ b/jkube-kit/watcher/api/src/main/java/org/eclipse/jkube/watcher/api/BaseWatcher.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/watcher/api/src/main/java/org/eclipse/jkube/watcher/api/Watcher.java b/jkube-kit/watcher/api/src/main/java/org/eclipse/jkube/watcher/api/Watcher.java
index 869dd3c3ac..e626221caa 100644
--- a/jkube-kit/watcher/api/src/main/java/org/eclipse/jkube/watcher/api/Watcher.java
+++ b/jkube-kit/watcher/api/src/main/java/org/eclipse/jkube/watcher/api/Watcher.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/watcher/api/src/main/java/org/eclipse/jkube/watcher/api/WatcherConfig.java b/jkube-kit/watcher/api/src/main/java/org/eclipse/jkube/watcher/api/WatcherConfig.java
index b59606b988..3adb833054 100644
--- a/jkube-kit/watcher/api/src/main/java/org/eclipse/jkube/watcher/api/WatcherConfig.java
+++ b/jkube-kit/watcher/api/src/main/java/org/eclipse/jkube/watcher/api/WatcherConfig.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/watcher/api/src/main/java/org/eclipse/jkube/watcher/api/WatcherContext.java b/jkube-kit/watcher/api/src/main/java/org/eclipse/jkube/watcher/api/WatcherContext.java
index bf37433c38..a9c3b9d93c 100644
--- a/jkube-kit/watcher/api/src/main/java/org/eclipse/jkube/watcher/api/WatcherContext.java
+++ b/jkube-kit/watcher/api/src/main/java/org/eclipse/jkube/watcher/api/WatcherContext.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/watcher/api/src/main/java/org/eclipse/jkube/watcher/api/WatcherManager.java b/jkube-kit/watcher/api/src/main/java/org/eclipse/jkube/watcher/api/WatcherManager.java
index 0127531ef8..01a244715e 100644
--- a/jkube-kit/watcher/api/src/main/java/org/eclipse/jkube/watcher/api/WatcherManager.java
+++ b/jkube-kit/watcher/api/src/main/java/org/eclipse/jkube/watcher/api/WatcherManager.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/watcher/api/src/test/java/org/eclipse/jkube/watcher/api/WatcherManagerTest.java b/jkube-kit/watcher/api/src/test/java/org/eclipse/jkube/watcher/api/WatcherManagerTest.java
index 51c531ba42..5f742e2722 100644
--- a/jkube-kit/watcher/api/src/test/java/org/eclipse/jkube/watcher/api/WatcherManagerTest.java
+++ b/jkube-kit/watcher/api/src/test/java/org/eclipse/jkube/watcher/api/WatcherManagerTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/watcher/standard/src/main/java/org/eclipse/jkube/watcher/standard/DockerImageWatcher.java b/jkube-kit/watcher/standard/src/main/java/org/eclipse/jkube/watcher/standard/DockerImageWatcher.java
index f89cc961ed..17eba41bd1 100644
--- a/jkube-kit/watcher/standard/src/main/java/org/eclipse/jkube/watcher/standard/DockerImageWatcher.java
+++ b/jkube-kit/watcher/standard/src/main/java/org/eclipse/jkube/watcher/standard/DockerImageWatcher.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/watcher/standard/src/main/java/org/eclipse/jkube/watcher/standard/ExecListenerLatch.java b/jkube-kit/watcher/standard/src/main/java/org/eclipse/jkube/watcher/standard/ExecListenerLatch.java
index 10e18fa1fe..b73f6ac32b 100644
--- a/jkube-kit/watcher/standard/src/main/java/org/eclipse/jkube/watcher/standard/ExecListenerLatch.java
+++ b/jkube-kit/watcher/standard/src/main/java/org/eclipse/jkube/watcher/standard/ExecListenerLatch.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/watcher/standard/src/main/java/org/eclipse/jkube/watcher/standard/PodExecutor.java b/jkube-kit/watcher/standard/src/main/java/org/eclipse/jkube/watcher/standard/PodExecutor.java
index f32b80e7cc..77b00941d1 100644
--- a/jkube-kit/watcher/standard/src/main/java/org/eclipse/jkube/watcher/standard/PodExecutor.java
+++ b/jkube-kit/watcher/standard/src/main/java/org/eclipse/jkube/watcher/standard/PodExecutor.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/watcher/standard/src/test/java/org/eclipse/jkube/watcher/standard/DockerImageWatcherRestartContainerTest.java b/jkube-kit/watcher/standard/src/test/java/org/eclipse/jkube/watcher/standard/DockerImageWatcherRestartContainerTest.java
index 8716649591..8ea8ee05ce 100644
--- a/jkube-kit/watcher/standard/src/test/java/org/eclipse/jkube/watcher/standard/DockerImageWatcherRestartContainerTest.java
+++ b/jkube-kit/watcher/standard/src/test/java/org/eclipse/jkube/watcher/standard/DockerImageWatcherRestartContainerTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/watcher/standard/src/test/java/org/eclipse/jkube/watcher/standard/DockerImageWatcherTest.java b/jkube-kit/watcher/standard/src/test/java/org/eclipse/jkube/watcher/standard/DockerImageWatcherTest.java
index 0368a74b90..3a1260c997 100644
--- a/jkube-kit/watcher/standard/src/test/java/org/eclipse/jkube/watcher/standard/DockerImageWatcherTest.java
+++ b/jkube-kit/watcher/standard/src/test/java/org/eclipse/jkube/watcher/standard/DockerImageWatcherTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/watcher/standard/src/test/java/org/eclipse/jkube/watcher/standard/ExecListenerLatchTest.java b/jkube-kit/watcher/standard/src/test/java/org/eclipse/jkube/watcher/standard/ExecListenerLatchTest.java
index 83d44241e0..acc52d17e0 100644
--- a/jkube-kit/watcher/standard/src/test/java/org/eclipse/jkube/watcher/standard/ExecListenerLatchTest.java
+++ b/jkube-kit/watcher/standard/src/test/java/org/eclipse/jkube/watcher/standard/ExecListenerLatchTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/jkube-kit/watcher/standard/src/test/java/org/eclipse/jkube/watcher/standard/PodExecutorTest.java b/jkube-kit/watcher/standard/src/test/java/org/eclipse/jkube/watcher/standard/PodExecutorTest.java
index f4500f0fd8..83f60882f8 100644
--- a/jkube-kit/watcher/standard/src/test/java/org/eclipse/jkube/watcher/standard/PodExecutorTest.java
+++ b/jkube-kit/watcher/standard/src/test/java/org/eclipse/jkube/watcher/standard/PodExecutorTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/configmap/src/main/java/zero/Application.java b/kubernetes-maven-plugin/it/src/it/configmap/src/main/java/zero/Application.java
index 15176271d2..cb7f3f6414 100644
--- a/kubernetes-maven-plugin/it/src/it/configmap/src/main/java/zero/Application.java
+++ b/kubernetes-maven-plugin/it/src/it/configmap/src/main/java/zero/Application.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/configmap/src/main/java/zero/HelloController.java b/kubernetes-maven-plugin/it/src/it/configmap/src/main/java/zero/HelloController.java
index f2e3183c5d..df1753a4e4 100644
--- a/kubernetes-maven-plugin/it/src/it/configmap/src/main/java/zero/HelloController.java
+++ b/kubernetes-maven-plugin/it/src/it/configmap/src/main/java/zero/HelloController.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/configmap/verify.groovy b/kubernetes-maven-plugin/it/src/it/configmap/verify.groovy
index 49df99b5d6..75b68b6f13 100644
--- a/kubernetes-maven-plugin/it/src/it/configmap/verify.groovy
+++ b/kubernetes-maven-plugin/it/src/it/configmap/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/custom-environment/src/main/java/io/vertx/example/SimpleWebVerticle.java b/kubernetes-maven-plugin/it/src/it/custom-environment/src/main/java/io/vertx/example/SimpleWebVerticle.java
index 88351a7b90..1dea5fccdf 100644
--- a/kubernetes-maven-plugin/it/src/it/custom-environment/src/main/java/io/vertx/example/SimpleWebVerticle.java
+++ b/kubernetes-maven-plugin/it/src/it/custom-environment/src/main/java/io/vertx/example/SimpleWebVerticle.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/custom-environment/verify.groovy b/kubernetes-maven-plugin/it/src/it/custom-environment/verify.groovy
index 4c8b31ca60..cdb72ef103 100644
--- a/kubernetes-maven-plugin/it/src/it/custom-environment/verify.groovy
+++ b/kubernetes-maven-plugin/it/src/it/custom-environment/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/custom-raw-resources/verify.groovy b/kubernetes-maven-plugin/it/src/it/custom-raw-resources/verify.groovy
index f9d854add8..611bd26fe3 100644
--- a/kubernetes-maven-plugin/it/src/it/custom-raw-resources/verify.groovy
+++ b/kubernetes-maven-plugin/it/src/it/custom-raw-resources/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/dependency-resources/verify.groovy b/kubernetes-maven-plugin/it/src/it/dependency-resources/verify.groovy
index 7e5e7fbd1b..9b7465fd0f 100644
--- a/kubernetes-maven-plugin/it/src/it/dependency-resources/verify.groovy
+++ b/kubernetes-maven-plugin/it/src/it/dependency-resources/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/deployment-strategy-type-919/verify.groovy b/kubernetes-maven-plugin/it/src/it/deployment-strategy-type-919/verify.groovy
index f1a2e45d39..b6fcd01ed5 100644
--- a/kubernetes-maven-plugin/it/src/it/deployment-strategy-type-919/verify.groovy
+++ b/kubernetes-maven-plugin/it/src/it/deployment-strategy-type-919/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/docker-health-checks/verify.groovy b/kubernetes-maven-plugin/it/src/it/docker-health-checks/verify.groovy
index 6a68fbd71a..0166ea6dc2 100644
--- a/kubernetes-maven-plugin/it/src/it/docker-health-checks/verify.groovy
+++ b/kubernetes-maven-plugin/it/src/it/docker-health-checks/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/env-metadata/src/main/java/zero/Application.java b/kubernetes-maven-plugin/it/src/it/env-metadata/src/main/java/zero/Application.java
index 15176271d2..cb7f3f6414 100644
--- a/kubernetes-maven-plugin/it/src/it/env-metadata/src/main/java/zero/Application.java
+++ b/kubernetes-maven-plugin/it/src/it/env-metadata/src/main/java/zero/Application.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/env-metadata/src/main/java/zero/HelloController.java b/kubernetes-maven-plugin/it/src/it/env-metadata/src/main/java/zero/HelloController.java
index f2e3183c5d..df1753a4e4 100644
--- a/kubernetes-maven-plugin/it/src/it/env-metadata/src/main/java/zero/HelloController.java
+++ b/kubernetes-maven-plugin/it/src/it/env-metadata/src/main/java/zero/HelloController.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/env-metadata/verify.groovy b/kubernetes-maven-plugin/it/src/it/env-metadata/verify.groovy
index 6a68fbd71a..0166ea6dc2 100644
--- a/kubernetes-maven-plugin/it/src/it/env-metadata/verify.groovy
+++ b/kubernetes-maven-plugin/it/src/it/env-metadata/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/fragments/verify.groovy b/kubernetes-maven-plugin/it/src/it/fragments/verify.groovy
index 4d90677304..469881514f 100644
--- a/kubernetes-maven-plugin/it/src/it/fragments/verify.groovy
+++ b/kubernetes-maven-plugin/it/src/it/fragments/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/helm-and-fragments/verify.groovy b/kubernetes-maven-plugin/it/src/it/helm-and-fragments/verify.groovy
index 708ed41b48..439a3af126 100644
--- a/kubernetes-maven-plugin/it/src/it/helm-and-fragments/verify.groovy
+++ b/kubernetes-maven-plugin/it/src/it/helm-and-fragments/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/ingress-xml-config/src/main/java/zero/Application.java b/kubernetes-maven-plugin/it/src/it/ingress-xml-config/src/main/java/zero/Application.java
index 15176271d2..cb7f3f6414 100644
--- a/kubernetes-maven-plugin/it/src/it/ingress-xml-config/src/main/java/zero/Application.java
+++ b/kubernetes-maven-plugin/it/src/it/ingress-xml-config/src/main/java/zero/Application.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/ingress-xml-config/verify.groovy b/kubernetes-maven-plugin/it/src/it/ingress-xml-config/verify.groovy
index 9ff3549c5a..05f5cf6df6 100644
--- a/kubernetes-maven-plugin/it/src/it/ingress-xml-config/verify.groovy
+++ b/kubernetes-maven-plugin/it/src/it/ingress-xml-config/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/java-options-env-merge/verify.groovy b/kubernetes-maven-plugin/it/src/it/java-options-env-merge/verify.groovy
index 8c33c45b21..87fb254ecc 100644
--- a/kubernetes-maven-plugin/it/src/it/java-options-env-merge/verify.groovy
+++ b/kubernetes-maven-plugin/it/src/it/java-options-env-merge/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/metadata-labels-annotations/verify.groovy b/kubernetes-maven-plugin/it/src/it/metadata-labels-annotations/verify.groovy
index 6a68fbd71a..0166ea6dc2 100644
--- a/kubernetes-maven-plugin/it/src/it/metadata-labels-annotations/verify.groovy
+++ b/kubernetes-maven-plugin/it/src/it/metadata-labels-annotations/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/namespace/src/main/java/zero/Application.java b/kubernetes-maven-plugin/it/src/it/namespace/src/main/java/zero/Application.java
index bfbc53ad89..370e6b6103 100644
--- a/kubernetes-maven-plugin/it/src/it/namespace/src/main/java/zero/Application.java
+++ b/kubernetes-maven-plugin/it/src/it/namespace/src/main/java/zero/Application.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/namespace/verify.groovy b/kubernetes-maven-plugin/it/src/it/namespace/verify.groovy
index 0939d6d745..b7742ef68e 100644
--- a/kubernetes-maven-plugin/it/src/it/namespace/verify.groovy
+++ b/kubernetes-maven-plugin/it/src/it/namespace/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/probes-xml-config/src/main/java/probe/Application.java b/kubernetes-maven-plugin/it/src/it/probes-xml-config/src/main/java/probe/Application.java
index 15176271d2..cb7f3f6414 100644
--- a/kubernetes-maven-plugin/it/src/it/probes-xml-config/src/main/java/probe/Application.java
+++ b/kubernetes-maven-plugin/it/src/it/probes-xml-config/src/main/java/probe/Application.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/probes-xml-config/src/main/java/probe/HelloController.java b/kubernetes-maven-plugin/it/src/it/probes-xml-config/src/main/java/probe/HelloController.java
index f2e3183c5d..df1753a4e4 100644
--- a/kubernetes-maven-plugin/it/src/it/probes-xml-config/src/main/java/probe/HelloController.java
+++ b/kubernetes-maven-plugin/it/src/it/probes-xml-config/src/main/java/probe/HelloController.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/probes-xml-config/verify.groovy b/kubernetes-maven-plugin/it/src/it/probes-xml-config/verify.groovy
index baf550699d..21bb953935 100644
--- a/kubernetes-maven-plugin/it/src/it/probes-xml-config/verify.groovy
+++ b/kubernetes-maven-plugin/it/src/it/probes-xml-config/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/raw-resources/verify.groovy b/kubernetes-maven-plugin/it/src/it/raw-resources/verify.groovy
index 4d90677304..469881514f 100644
--- a/kubernetes-maven-plugin/it/src/it/raw-resources/verify.groovy
+++ b/kubernetes-maven-plugin/it/src/it/raw-resources/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/registry-286/src/main/java/io/fabric8/maven/sample/spring/boot/Application.java b/kubernetes-maven-plugin/it/src/it/registry-286/src/main/java/io/fabric8/maven/sample/spring/boot/Application.java
index 70b07e455d..a7ce18b3e5 100644
--- a/kubernetes-maven-plugin/it/src/it/registry-286/src/main/java/io/fabric8/maven/sample/spring/boot/Application.java
+++ b/kubernetes-maven-plugin/it/src/it/registry-286/src/main/java/io/fabric8/maven/sample/spring/boot/Application.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/registry-286/verify.groovy b/kubernetes-maven-plugin/it/src/it/registry-286/verify.groovy
index 4c8b31ca60..cdb72ef103 100644
--- a/kubernetes-maven-plugin/it/src/it/registry-286/verify.groovy
+++ b/kubernetes-maven-plugin/it/src/it/registry-286/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/remote-resources/src/main/java/io/vertx/example/SimpleWebVerticle.java b/kubernetes-maven-plugin/it/src/it/remote-resources/src/main/java/io/vertx/example/SimpleWebVerticle.java
index 88351a7b90..1dea5fccdf 100644
--- a/kubernetes-maven-plugin/it/src/it/remote-resources/src/main/java/io/vertx/example/SimpleWebVerticle.java
+++ b/kubernetes-maven-plugin/it/src/it/remote-resources/src/main/java/io/vertx/example/SimpleWebVerticle.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/remote-resources/verify.groovy b/kubernetes-maven-plugin/it/src/it/remote-resources/verify.groovy
index 3370cd801a..f542272740 100644
--- a/kubernetes-maven-plugin/it/src/it/remote-resources/verify.groovy
+++ b/kubernetes-maven-plugin/it/src/it/remote-resources/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/revisionhistory/src/main/java/io/fabric8/maven/sample/spring/boot/Application.java b/kubernetes-maven-plugin/it/src/it/revisionhistory/src/main/java/io/fabric8/maven/sample/spring/boot/Application.java
index ca965ece1c..ead1018db6 100644
--- a/kubernetes-maven-plugin/it/src/it/revisionhistory/src/main/java/io/fabric8/maven/sample/spring/boot/Application.java
+++ b/kubernetes-maven-plugin/it/src/it/revisionhistory/src/main/java/io/fabric8/maven/sample/spring/boot/Application.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/revisionhistory/src/main/java/io/fabric8/maven/sample/spring/boot/HelloController.java b/kubernetes-maven-plugin/it/src/it/revisionhistory/src/main/java/io/fabric8/maven/sample/spring/boot/HelloController.java
index 4b37b8f49f..796a195deb 100644
--- a/kubernetes-maven-plugin/it/src/it/revisionhistory/src/main/java/io/fabric8/maven/sample/spring/boot/HelloController.java
+++ b/kubernetes-maven-plugin/it/src/it/revisionhistory/src/main/java/io/fabric8/maven/sample/spring/boot/HelloController.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/revisionhistory/verify.groovy b/kubernetes-maven-plugin/it/src/it/revisionhistory/verify.groovy
index 92d1c1142f..bac31614e5 100644
--- a/kubernetes-maven-plugin/it/src/it/revisionhistory/verify.groovy
+++ b/kubernetes-maven-plugin/it/src/it/revisionhistory/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/secret-config/src/main/java/hello/Application.java b/kubernetes-maven-plugin/it/src/it/secret-config/src/main/java/hello/Application.java
index 1d1b0b1bd1..4df192c3a9 100644
--- a/kubernetes-maven-plugin/it/src/it/secret-config/src/main/java/hello/Application.java
+++ b/kubernetes-maven-plugin/it/src/it/secret-config/src/main/java/hello/Application.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/secret-config/verify.groovy b/kubernetes-maven-plugin/it/src/it/secret-config/verify.groovy
index b31644f7a1..c437d118ba 100644
--- a/kubernetes-maven-plugin/it/src/it/secret-config/verify.groovy
+++ b/kubernetes-maven-plugin/it/src/it/secret-config/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/sidecar/src/main/java/zero/Application.java b/kubernetes-maven-plugin/it/src/it/sidecar/src/main/java/zero/Application.java
index 15176271d2..cb7f3f6414 100644
--- a/kubernetes-maven-plugin/it/src/it/sidecar/src/main/java/zero/Application.java
+++ b/kubernetes-maven-plugin/it/src/it/sidecar/src/main/java/zero/Application.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/sidecar/src/main/java/zero/HelloController.java b/kubernetes-maven-plugin/it/src/it/sidecar/src/main/java/zero/HelloController.java
index f2e3183c5d..df1753a4e4 100644
--- a/kubernetes-maven-plugin/it/src/it/sidecar/src/main/java/zero/HelloController.java
+++ b/kubernetes-maven-plugin/it/src/it/sidecar/src/main/java/zero/HelloController.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/sidecar/verify.groovy b/kubernetes-maven-plugin/it/src/it/sidecar/verify.groovy
index 4c8b31ca60..cdb72ef103 100644
--- a/kubernetes-maven-plugin/it/src/it/sidecar/verify.groovy
+++ b/kubernetes-maven-plugin/it/src/it/sidecar/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/simple-maven-issue-mgmt/src/main/java/zero/Application.java b/kubernetes-maven-plugin/it/src/it/simple-maven-issue-mgmt/src/main/java/zero/Application.java
index 15176271d2..cb7f3f6414 100644
--- a/kubernetes-maven-plugin/it/src/it/simple-maven-issue-mgmt/src/main/java/zero/Application.java
+++ b/kubernetes-maven-plugin/it/src/it/simple-maven-issue-mgmt/src/main/java/zero/Application.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/simple-maven-issue-mgmt/src/main/java/zero/HelloController.java b/kubernetes-maven-plugin/it/src/it/simple-maven-issue-mgmt/src/main/java/zero/HelloController.java
index f2e3183c5d..df1753a4e4 100644
--- a/kubernetes-maven-plugin/it/src/it/simple-maven-issue-mgmt/src/main/java/zero/HelloController.java
+++ b/kubernetes-maven-plugin/it/src/it/simple-maven-issue-mgmt/src/main/java/zero/HelloController.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/simple-maven-issue-mgmt/verify.groovy b/kubernetes-maven-plugin/it/src/it/simple-maven-issue-mgmt/verify.groovy
index 6a68fbd71a..0166ea6dc2 100644
--- a/kubernetes-maven-plugin/it/src/it/simple-maven-issue-mgmt/verify.groovy
+++ b/kubernetes-maven-plugin/it/src/it/simple-maven-issue-mgmt/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/simple-maven-scm/src/main/java/zero/Application.java b/kubernetes-maven-plugin/it/src/it/simple-maven-scm/src/main/java/zero/Application.java
index 15176271d2..cb7f3f6414 100644
--- a/kubernetes-maven-plugin/it/src/it/simple-maven-scm/src/main/java/zero/Application.java
+++ b/kubernetes-maven-plugin/it/src/it/simple-maven-scm/src/main/java/zero/Application.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/simple-maven-scm/src/main/java/zero/HelloController.java b/kubernetes-maven-plugin/it/src/it/simple-maven-scm/src/main/java/zero/HelloController.java
index f2e3183c5d..df1753a4e4 100644
--- a/kubernetes-maven-plugin/it/src/it/simple-maven-scm/src/main/java/zero/HelloController.java
+++ b/kubernetes-maven-plugin/it/src/it/simple-maven-scm/src/main/java/zero/HelloController.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/simple-maven-scm/verify.groovy b/kubernetes-maven-plugin/it/src/it/simple-maven-scm/verify.groovy
index 6a68fbd71a..0166ea6dc2 100644
--- a/kubernetes-maven-plugin/it/src/it/simple-maven-scm/verify.groovy
+++ b/kubernetes-maven-plugin/it/src/it/simple-maven-scm/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/simple-with-route-flag-false/src/main/java/zero/Application.java b/kubernetes-maven-plugin/it/src/it/simple-with-route-flag-false/src/main/java/zero/Application.java
index 15176271d2..cb7f3f6414 100644
--- a/kubernetes-maven-plugin/it/src/it/simple-with-route-flag-false/src/main/java/zero/Application.java
+++ b/kubernetes-maven-plugin/it/src/it/simple-with-route-flag-false/src/main/java/zero/Application.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/simple-with-route-flag-false/src/main/java/zero/HelloController.java b/kubernetes-maven-plugin/it/src/it/simple-with-route-flag-false/src/main/java/zero/HelloController.java
index f2e3183c5d..df1753a4e4 100644
--- a/kubernetes-maven-plugin/it/src/it/simple-with-route-flag-false/src/main/java/zero/HelloController.java
+++ b/kubernetes-maven-plugin/it/src/it/simple-with-route-flag-false/src/main/java/zero/HelloController.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/simple-with-route-flag-false/verify.groovy b/kubernetes-maven-plugin/it/src/it/simple-with-route-flag-false/verify.groovy
index 8546ba95df..8adacbb754 100644
--- a/kubernetes-maven-plugin/it/src/it/simple-with-route-flag-false/verify.groovy
+++ b/kubernetes-maven-plugin/it/src/it/simple-with-route-flag-false/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/simple-with-route-flag-true/src/main/java/zero/Application.java b/kubernetes-maven-plugin/it/src/it/simple-with-route-flag-true/src/main/java/zero/Application.java
index 15176271d2..cb7f3f6414 100644
--- a/kubernetes-maven-plugin/it/src/it/simple-with-route-flag-true/src/main/java/zero/Application.java
+++ b/kubernetes-maven-plugin/it/src/it/simple-with-route-flag-true/src/main/java/zero/Application.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/simple-with-route-flag-true/src/main/java/zero/HelloController.java b/kubernetes-maven-plugin/it/src/it/simple-with-route-flag-true/src/main/java/zero/HelloController.java
index f2e3183c5d..df1753a4e4 100644
--- a/kubernetes-maven-plugin/it/src/it/simple-with-route-flag-true/src/main/java/zero/HelloController.java
+++ b/kubernetes-maven-plugin/it/src/it/simple-with-route-flag-true/src/main/java/zero/HelloController.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/simple-with-route-flag-true/verify.groovy b/kubernetes-maven-plugin/it/src/it/simple-with-route-flag-true/verify.groovy
index 8546ba95df..8adacbb754 100644
--- a/kubernetes-maven-plugin/it/src/it/simple-with-route-flag-true/verify.groovy
+++ b/kubernetes-maven-plugin/it/src/it/simple-with-route-flag-true/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/simple/src/main/java/zero/Application.java b/kubernetes-maven-plugin/it/src/it/simple/src/main/java/zero/Application.java
index 15176271d2..cb7f3f6414 100644
--- a/kubernetes-maven-plugin/it/src/it/simple/src/main/java/zero/Application.java
+++ b/kubernetes-maven-plugin/it/src/it/simple/src/main/java/zero/Application.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/simple/src/main/java/zero/HelloController.java b/kubernetes-maven-plugin/it/src/it/simple/src/main/java/zero/HelloController.java
index f2e3183c5d..df1753a4e4 100644
--- a/kubernetes-maven-plugin/it/src/it/simple/src/main/java/zero/HelloController.java
+++ b/kubernetes-maven-plugin/it/src/it/simple/src/main/java/zero/HelloController.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/simple/verify.groovy b/kubernetes-maven-plugin/it/src/it/simple/verify.groovy
index 00eff7ae61..6eb8ff0f9d 100644
--- a/kubernetes-maven-plugin/it/src/it/simple/verify.groovy
+++ b/kubernetes-maven-plugin/it/src/it/simple/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/spring-boot/src/main/java/io/fabric8/maven/sample/spring/boot/Application.java b/kubernetes-maven-plugin/it/src/it/spring-boot/src/main/java/io/fabric8/maven/sample/spring/boot/Application.java
index ca965ece1c..ead1018db6 100644
--- a/kubernetes-maven-plugin/it/src/it/spring-boot/src/main/java/io/fabric8/maven/sample/spring/boot/Application.java
+++ b/kubernetes-maven-plugin/it/src/it/spring-boot/src/main/java/io/fabric8/maven/sample/spring/boot/Application.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/spring-boot/src/main/java/io/fabric8/maven/sample/spring/boot/HelloController.java b/kubernetes-maven-plugin/it/src/it/spring-boot/src/main/java/io/fabric8/maven/sample/spring/boot/HelloController.java
index 4b37b8f49f..796a195deb 100644
--- a/kubernetes-maven-plugin/it/src/it/spring-boot/src/main/java/io/fabric8/maven/sample/spring/boot/HelloController.java
+++ b/kubernetes-maven-plugin/it/src/it/spring-boot/src/main/java/io/fabric8/maven/sample/spring/boot/HelloController.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/spring-boot/verify.groovy b/kubernetes-maven-plugin/it/src/it/spring-boot/verify.groovy
index 87f553e23f..1f6a1cb514 100644
--- a/kubernetes-maven-plugin/it/src/it/spring-boot/verify.groovy
+++ b/kubernetes-maven-plugin/it/src/it/spring-boot/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/statefulset/src/main/java/io/fabric8/maven/sample/spring/boot/Application.java b/kubernetes-maven-plugin/it/src/it/statefulset/src/main/java/io/fabric8/maven/sample/spring/boot/Application.java
index 70b07e455d..a7ce18b3e5 100644
--- a/kubernetes-maven-plugin/it/src/it/statefulset/src/main/java/io/fabric8/maven/sample/spring/boot/Application.java
+++ b/kubernetes-maven-plugin/it/src/it/statefulset/src/main/java/io/fabric8/maven/sample/spring/boot/Application.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/statefulset/verify.groovy b/kubernetes-maven-plugin/it/src/it/statefulset/verify.groovy
index 6a68fbd71a..0166ea6dc2 100644
--- a/kubernetes-maven-plugin/it/src/it/statefulset/verify.groovy
+++ b/kubernetes-maven-plugin/it/src/it/statefulset/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/vertx-default/src/main/java/io/fabric8/maven/sample/vertx/HttpApplication.java b/kubernetes-maven-plugin/it/src/it/vertx-default/src/main/java/io/fabric8/maven/sample/vertx/HttpApplication.java
index 37712d6e79..e10f7b7adc 100644
--- a/kubernetes-maven-plugin/it/src/it/vertx-default/src/main/java/io/fabric8/maven/sample/vertx/HttpApplication.java
+++ b/kubernetes-maven-plugin/it/src/it/vertx-default/src/main/java/io/fabric8/maven/sample/vertx/HttpApplication.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/vertx-default/verify.groovy b/kubernetes-maven-plugin/it/src/it/vertx-default/verify.groovy
index 4c8b31ca60..cdb72ef103 100644
--- a/kubernetes-maven-plugin/it/src/it/vertx-default/verify.groovy
+++ b/kubernetes-maven-plugin/it/src/it/vertx-default/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/vertx-health-check/src/main/java/io/fabric8/maven/sample/vertx/HttpApplication.java b/kubernetes-maven-plugin/it/src/it/vertx-health-check/src/main/java/io/fabric8/maven/sample/vertx/HttpApplication.java
index 37712d6e79..e10f7b7adc 100644
--- a/kubernetes-maven-plugin/it/src/it/vertx-health-check/src/main/java/io/fabric8/maven/sample/vertx/HttpApplication.java
+++ b/kubernetes-maven-plugin/it/src/it/vertx-health-check/src/main/java/io/fabric8/maven/sample/vertx/HttpApplication.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/vertx-health-check/verify.groovy b/kubernetes-maven-plugin/it/src/it/vertx-health-check/verify.groovy
index 92d1c1142f..bac31614e5 100644
--- a/kubernetes-maven-plugin/it/src/it/vertx-health-check/verify.groovy
+++ b/kubernetes-maven-plugin/it/src/it/vertx-health-check/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/vertx/src/main/java/io/vertx/example/SimpleWebVerticle.java b/kubernetes-maven-plugin/it/src/it/vertx/src/main/java/io/vertx/example/SimpleWebVerticle.java
index 88351a7b90..1dea5fccdf 100644
--- a/kubernetes-maven-plugin/it/src/it/vertx/src/main/java/io/vertx/example/SimpleWebVerticle.java
+++ b/kubernetes-maven-plugin/it/src/it/vertx/src/main/java/io/vertx/example/SimpleWebVerticle.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/vertx/verify.groovy b/kubernetes-maven-plugin/it/src/it/vertx/verify.groovy
index 4c8b31ca60..cdb72ef103 100644
--- a/kubernetes-maven-plugin/it/src/it/vertx/verify.groovy
+++ b/kubernetes-maven-plugin/it/src/it/vertx/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/volume-enricher-custom-storage-class/verify.groovy b/kubernetes-maven-plugin/it/src/it/volume-enricher-custom-storage-class/verify.groovy
index 25e143e7b7..006d98c339 100644
--- a/kubernetes-maven-plugin/it/src/it/volume-enricher-custom-storage-class/verify.groovy
+++ b/kubernetes-maven-plugin/it/src/it/volume-enricher-custom-storage-class/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/volume-enricher-default-storage-class/verify.groovy b/kubernetes-maven-plugin/it/src/it/volume-enricher-default-storage-class/verify.groovy
index 6a68fbd71a..0166ea6dc2 100644
--- a/kubernetes-maven-plugin/it/src/it/volume-enricher-default-storage-class/verify.groovy
+++ b/kubernetes-maven-plugin/it/src/it/volume-enricher-default-storage-class/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/xml-image-multilayer/verify.groovy b/kubernetes-maven-plugin/it/src/it/xml-image-multilayer/verify.groovy
index 772a430a91..7ebf3962ad 100644
--- a/kubernetes-maven-plugin/it/src/it/xml-image-multilayer/verify.groovy
+++ b/kubernetes-maven-plugin/it/src/it/xml-image-multilayer/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/it/src/it/xml-image/verify.groovy b/kubernetes-maven-plugin/it/src/it/xml-image/verify.groovy
index 8b4173e149..f82f706a9e 100644
--- a/kubernetes-maven-plugin/it/src/it/xml-image/verify.groovy
+++ b/kubernetes-maven-plugin/it/src/it/xml-image/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/KitLoggerProvider.java b/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/KitLoggerProvider.java
index 13bbc056b3..50aaae808c 100644
--- a/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/KitLoggerProvider.java
+++ b/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/KitLoggerProvider.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/ManifestProvider.java b/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/ManifestProvider.java
index 18ef81954a..935d75f19c 100644
--- a/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/ManifestProvider.java
+++ b/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/ManifestProvider.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/AbstractDockerMojo.java b/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/AbstractDockerMojo.java
index f51e3a4930..b1e2a62968 100644
--- a/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/AbstractDockerMojo.java
+++ b/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/AbstractDockerMojo.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/AbstractJKubeMojo.java b/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/AbstractJKubeMojo.java
index 8c112ae4d8..d3643dd88f 100644
--- a/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/AbstractJKubeMojo.java
+++ b/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/AbstractJKubeMojo.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/ApplyMojo.java b/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/ApplyMojo.java
index e44a79fba3..20fe8a91bf 100644
--- a/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/ApplyMojo.java
+++ b/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/ApplyMojo.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/BuildMojo.java b/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/BuildMojo.java
index be452989a0..33281408a5 100644
--- a/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/BuildMojo.java
+++ b/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/BuildMojo.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/HelmMojo.java b/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/HelmMojo.java
index d4c3883674..e6440bc4a6 100644
--- a/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/HelmMojo.java
+++ b/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/HelmMojo.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/HelmPushMojo.java b/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/HelmPushMojo.java
index b23962fb4b..3dd7fbd99d 100644
--- a/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/HelmPushMojo.java
+++ b/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/HelmPushMojo.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/PushMojo.java b/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/PushMojo.java
index bf4d03df23..393be8ca53 100644
--- a/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/PushMojo.java
+++ b/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/PushMojo.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/ResourceMojo.java b/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/ResourceMojo.java
index 9499a4b86f..b40c44de24 100644
--- a/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/ResourceMojo.java
+++ b/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/ResourceMojo.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/develop/DebugMojo.java b/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/develop/DebugMojo.java
index 54de2d2853..fb10e61ec5 100644
--- a/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/develop/DebugMojo.java
+++ b/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/develop/DebugMojo.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/develop/DeployMojo.java b/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/develop/DeployMojo.java
index aa12734347..92d5f3d3de 100644
--- a/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/develop/DeployMojo.java
+++ b/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/develop/DeployMojo.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/develop/LogMojo.java b/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/develop/LogMojo.java
index b80ef42da8..8926401efa 100644
--- a/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/develop/LogMojo.java
+++ b/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/develop/LogMojo.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/develop/RemoteDevMojo.java b/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/develop/RemoteDevMojo.java
index 826350e9b6..430cff09c6 100644
--- a/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/develop/RemoteDevMojo.java
+++ b/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/develop/RemoteDevMojo.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/develop/UndeployMojo.java b/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/develop/UndeployMojo.java
index 8405f27e6f..9e8754ad9e 100644
--- a/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/develop/UndeployMojo.java
+++ b/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/develop/UndeployMojo.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/develop/WatchMojo.java b/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/develop/WatchMojo.java
index cde3c51559..5b25cb6763 100644
--- a/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/develop/WatchMojo.java
+++ b/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/develop/WatchMojo.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/util/MigrateMojo.java b/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/util/MigrateMojo.java
index 4ca18da8da..16698e796a 100644
--- a/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/util/MigrateMojo.java
+++ b/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/util/MigrateMojo.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/GeneratedPluginDescriptorTest.java b/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/GeneratedPluginDescriptorTest.java
index 241e82c049..00f093cf88 100644
--- a/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/GeneratedPluginDescriptorTest.java
+++ b/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/GeneratedPluginDescriptorTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/build/ApplyMojoTest.java b/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/build/ApplyMojoTest.java
index 068101da12..47078d9f0d 100644
--- a/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/build/ApplyMojoTest.java
+++ b/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/build/ApplyMojoTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/build/BuildMojoTest.java b/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/build/BuildMojoTest.java
index 2e0ae51e12..e1c9fbbf16 100644
--- a/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/build/BuildMojoTest.java
+++ b/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/build/BuildMojoTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/build/HelmMojoPluginTest.java b/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/build/HelmMojoPluginTest.java
index 1ee69a7253..dcfc80401d 100644
--- a/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/build/HelmMojoPluginTest.java
+++ b/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/build/HelmMojoPluginTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/build/HelmMojoTest.java b/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/build/HelmMojoTest.java
index 7c3e9e3d89..931c2150b2 100644
--- a/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/build/HelmMojoTest.java
+++ b/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/build/HelmMojoTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/build/HelmPushMojoTest.java b/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/build/HelmPushMojoTest.java
index fb18800f71..8268795cc1 100644
--- a/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/build/HelmPushMojoTest.java
+++ b/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/build/HelmPushMojoTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/build/ResourceMojoPluginTest.java b/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/build/ResourceMojoPluginTest.java
index a9c71a21ac..52a27c25b9 100644
--- a/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/build/ResourceMojoPluginTest.java
+++ b/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/build/ResourceMojoPluginTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/build/ResourceMojoTest.java b/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/build/ResourceMojoTest.java
index b3003fb0d9..3f05436ba8 100644
--- a/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/build/ResourceMojoTest.java
+++ b/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/build/ResourceMojoTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/build/SkipGoalsTest.java b/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/build/SkipGoalsTest.java
index bbd5a26eec..b206aa3f3c 100644
--- a/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/build/SkipGoalsTest.java
+++ b/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/build/SkipGoalsTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/develop/DebugMojoTest.java b/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/develop/DebugMojoTest.java
index 3747bf6997..4cfdb209e2 100644
--- a/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/develop/DebugMojoTest.java
+++ b/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/develop/DebugMojoTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/develop/LogMojoTest.java b/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/develop/LogMojoTest.java
index f6a65d6f38..2790ca1840 100644
--- a/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/develop/LogMojoTest.java
+++ b/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/develop/LogMojoTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/develop/RemoteDevMojoTest.java b/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/develop/RemoteDevMojoTest.java
index 55fb937c1f..0220019b27 100644
--- a/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/develop/RemoteDevMojoTest.java
+++ b/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/develop/RemoteDevMojoTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/develop/UndeployMojoTest.java b/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/develop/UndeployMojoTest.java
index 40a9ccb384..6dc76e6f0d 100644
--- a/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/develop/UndeployMojoTest.java
+++ b/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/develop/UndeployMojoTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/develop/WatchMojoTest.java b/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/develop/WatchMojoTest.java
index bbfdaa02d6..da98723827 100644
--- a/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/develop/WatchMojoTest.java
+++ b/kubernetes-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/develop/WatchMojoTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/configmap/src/main/java/zero/Application.java b/openshift-maven-plugin/it/src/it/configmap/src/main/java/zero/Application.java
index 15176271d2..cb7f3f6414 100644
--- a/openshift-maven-plugin/it/src/it/configmap/src/main/java/zero/Application.java
+++ b/openshift-maven-plugin/it/src/it/configmap/src/main/java/zero/Application.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/configmap/src/main/java/zero/HelloController.java b/openshift-maven-plugin/it/src/it/configmap/src/main/java/zero/HelloController.java
index f2e3183c5d..df1753a4e4 100644
--- a/openshift-maven-plugin/it/src/it/configmap/src/main/java/zero/HelloController.java
+++ b/openshift-maven-plugin/it/src/it/configmap/src/main/java/zero/HelloController.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/configmap/verify.groovy b/openshift-maven-plugin/it/src/it/configmap/verify.groovy
index 64eb3cbd2e..a68df2b070 100644
--- a/openshift-maven-plugin/it/src/it/configmap/verify.groovy
+++ b/openshift-maven-plugin/it/src/it/configmap/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/custom-environment/src/main/java/io/vertx/example/SimpleWebVerticle.java b/openshift-maven-plugin/it/src/it/custom-environment/src/main/java/io/vertx/example/SimpleWebVerticle.java
index 88351a7b90..1dea5fccdf 100644
--- a/openshift-maven-plugin/it/src/it/custom-environment/src/main/java/io/vertx/example/SimpleWebVerticle.java
+++ b/openshift-maven-plugin/it/src/it/custom-environment/src/main/java/io/vertx/example/SimpleWebVerticle.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/custom-environment/verify.groovy b/openshift-maven-plugin/it/src/it/custom-environment/verify.groovy
index c883195193..b9f7b0e8a8 100644
--- a/openshift-maven-plugin/it/src/it/custom-environment/verify.groovy
+++ b/openshift-maven-plugin/it/src/it/custom-environment/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/custom-raw-resources/verify.groovy b/openshift-maven-plugin/it/src/it/custom-raw-resources/verify.groovy
index 96c9641d61..8747ceee16 100644
--- a/openshift-maven-plugin/it/src/it/custom-raw-resources/verify.groovy
+++ b/openshift-maven-plugin/it/src/it/custom-raw-resources/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/deployment-strategy-type-919/verify.groovy b/openshift-maven-plugin/it/src/it/deployment-strategy-type-919/verify.groovy
index 4f0ca4ded8..80e12fb8bb 100644
--- a/openshift-maven-plugin/it/src/it/deployment-strategy-type-919/verify.groovy
+++ b/openshift-maven-plugin/it/src/it/deployment-strategy-type-919/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/docker-health-checks/verify.groovy b/openshift-maven-plugin/it/src/it/docker-health-checks/verify.groovy
index 4f0ca4ded8..80e12fb8bb 100644
--- a/openshift-maven-plugin/it/src/it/docker-health-checks/verify.groovy
+++ b/openshift-maven-plugin/it/src/it/docker-health-checks/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/env-metadata/src/main/java/zero/Application.java b/openshift-maven-plugin/it/src/it/env-metadata/src/main/java/zero/Application.java
index 15176271d2..cb7f3f6414 100644
--- a/openshift-maven-plugin/it/src/it/env-metadata/src/main/java/zero/Application.java
+++ b/openshift-maven-plugin/it/src/it/env-metadata/src/main/java/zero/Application.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/env-metadata/src/main/java/zero/HelloController.java b/openshift-maven-plugin/it/src/it/env-metadata/src/main/java/zero/HelloController.java
index f2e3183c5d..df1753a4e4 100644
--- a/openshift-maven-plugin/it/src/it/env-metadata/src/main/java/zero/HelloController.java
+++ b/openshift-maven-plugin/it/src/it/env-metadata/src/main/java/zero/HelloController.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/env-metadata/verify.groovy b/openshift-maven-plugin/it/src/it/env-metadata/verify.groovy
index 4f0ca4ded8..80e12fb8bb 100644
--- a/openshift-maven-plugin/it/src/it/env-metadata/verify.groovy
+++ b/openshift-maven-plugin/it/src/it/env-metadata/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/project/src/main/java/zero/Application.java b/openshift-maven-plugin/it/src/it/project/src/main/java/zero/Application.java
index bfbc53ad89..370e6b6103 100644
--- a/openshift-maven-plugin/it/src/it/project/src/main/java/zero/Application.java
+++ b/openshift-maven-plugin/it/src/it/project/src/main/java/zero/Application.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/project/verify.groovy b/openshift-maven-plugin/it/src/it/project/verify.groovy
index 538ead5807..9c8f85f81e 100644
--- a/openshift-maven-plugin/it/src/it/project/verify.groovy
+++ b/openshift-maven-plugin/it/src/it/project/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/raw-resources/verify.groovy b/openshift-maven-plugin/it/src/it/raw-resources/verify.groovy
index efa32cb1ef..3ebd889a8f 100644
--- a/openshift-maven-plugin/it/src/it/raw-resources/verify.groovy
+++ b/openshift-maven-plugin/it/src/it/raw-resources/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/registry-286/src/main/java/io/fabric8/maven/sample/spring/boot/Application.java b/openshift-maven-plugin/it/src/it/registry-286/src/main/java/io/fabric8/maven/sample/spring/boot/Application.java
index 70b07e455d..a7ce18b3e5 100644
--- a/openshift-maven-plugin/it/src/it/registry-286/src/main/java/io/fabric8/maven/sample/spring/boot/Application.java
+++ b/openshift-maven-plugin/it/src/it/registry-286/src/main/java/io/fabric8/maven/sample/spring/boot/Application.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/registry-286/verify.groovy b/openshift-maven-plugin/it/src/it/registry-286/verify.groovy
index c883195193..b9f7b0e8a8 100644
--- a/openshift-maven-plugin/it/src/it/registry-286/verify.groovy
+++ b/openshift-maven-plugin/it/src/it/registry-286/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/remote-resources/src/main/java/io/vertx/example/SimpleWebVerticle.java b/openshift-maven-plugin/it/src/it/remote-resources/src/main/java/io/vertx/example/SimpleWebVerticle.java
index 88351a7b90..1dea5fccdf 100644
--- a/openshift-maven-plugin/it/src/it/remote-resources/src/main/java/io/vertx/example/SimpleWebVerticle.java
+++ b/openshift-maven-plugin/it/src/it/remote-resources/src/main/java/io/vertx/example/SimpleWebVerticle.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/remote-resources/verify.groovy b/openshift-maven-plugin/it/src/it/remote-resources/verify.groovy
index eb707f80f1..899f071688 100644
--- a/openshift-maven-plugin/it/src/it/remote-resources/verify.groovy
+++ b/openshift-maven-plugin/it/src/it/remote-resources/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/revisionhistory/src/main/java/io/fabric8/maven/sample/spring/boot/Application.java b/openshift-maven-plugin/it/src/it/revisionhistory/src/main/java/io/fabric8/maven/sample/spring/boot/Application.java
index ca965ece1c..ead1018db6 100644
--- a/openshift-maven-plugin/it/src/it/revisionhistory/src/main/java/io/fabric8/maven/sample/spring/boot/Application.java
+++ b/openshift-maven-plugin/it/src/it/revisionhistory/src/main/java/io/fabric8/maven/sample/spring/boot/Application.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/revisionhistory/src/main/java/io/fabric8/maven/sample/spring/boot/HelloController.java b/openshift-maven-plugin/it/src/it/revisionhistory/src/main/java/io/fabric8/maven/sample/spring/boot/HelloController.java
index 4b37b8f49f..796a195deb 100644
--- a/openshift-maven-plugin/it/src/it/revisionhistory/src/main/java/io/fabric8/maven/sample/spring/boot/HelloController.java
+++ b/openshift-maven-plugin/it/src/it/revisionhistory/src/main/java/io/fabric8/maven/sample/spring/boot/HelloController.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/revisionhistory/verify.groovy b/openshift-maven-plugin/it/src/it/revisionhistory/verify.groovy
index dec19ec938..6c16290495 100644
--- a/openshift-maven-plugin/it/src/it/revisionhistory/verify.groovy
+++ b/openshift-maven-plugin/it/src/it/revisionhistory/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/secret-config/src/main/java/hello/Application.java b/openshift-maven-plugin/it/src/it/secret-config/src/main/java/hello/Application.java
index 1d1b0b1bd1..4df192c3a9 100644
--- a/openshift-maven-plugin/it/src/it/secret-config/src/main/java/hello/Application.java
+++ b/openshift-maven-plugin/it/src/it/secret-config/src/main/java/hello/Application.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/secret-config/verify.groovy b/openshift-maven-plugin/it/src/it/secret-config/verify.groovy
index 89c39b4ff5..9c8a8f47ff 100644
--- a/openshift-maven-plugin/it/src/it/secret-config/verify.groovy
+++ b/openshift-maven-plugin/it/src/it/secret-config/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/sidecar/src/main/java/zero/Application.java b/openshift-maven-plugin/it/src/it/sidecar/src/main/java/zero/Application.java
index 15176271d2..cb7f3f6414 100644
--- a/openshift-maven-plugin/it/src/it/sidecar/src/main/java/zero/Application.java
+++ b/openshift-maven-plugin/it/src/it/sidecar/src/main/java/zero/Application.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/sidecar/src/main/java/zero/HelloController.java b/openshift-maven-plugin/it/src/it/sidecar/src/main/java/zero/HelloController.java
index f2e3183c5d..df1753a4e4 100644
--- a/openshift-maven-plugin/it/src/it/sidecar/src/main/java/zero/HelloController.java
+++ b/openshift-maven-plugin/it/src/it/sidecar/src/main/java/zero/HelloController.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/sidecar/verify.groovy b/openshift-maven-plugin/it/src/it/sidecar/verify.groovy
index c883195193..b9f7b0e8a8 100644
--- a/openshift-maven-plugin/it/src/it/sidecar/verify.groovy
+++ b/openshift-maven-plugin/it/src/it/sidecar/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/simple-maven-issue-mgmt/src/main/java/zero/Application.java b/openshift-maven-plugin/it/src/it/simple-maven-issue-mgmt/src/main/java/zero/Application.java
index 15176271d2..cb7f3f6414 100644
--- a/openshift-maven-plugin/it/src/it/simple-maven-issue-mgmt/src/main/java/zero/Application.java
+++ b/openshift-maven-plugin/it/src/it/simple-maven-issue-mgmt/src/main/java/zero/Application.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/simple-maven-issue-mgmt/src/main/java/zero/HelloController.java b/openshift-maven-plugin/it/src/it/simple-maven-issue-mgmt/src/main/java/zero/HelloController.java
index f2e3183c5d..df1753a4e4 100644
--- a/openshift-maven-plugin/it/src/it/simple-maven-issue-mgmt/src/main/java/zero/HelloController.java
+++ b/openshift-maven-plugin/it/src/it/simple-maven-issue-mgmt/src/main/java/zero/HelloController.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/simple-maven-issue-mgmt/verify.groovy b/openshift-maven-plugin/it/src/it/simple-maven-issue-mgmt/verify.groovy
index 4f0ca4ded8..80e12fb8bb 100644
--- a/openshift-maven-plugin/it/src/it/simple-maven-issue-mgmt/verify.groovy
+++ b/openshift-maven-plugin/it/src/it/simple-maven-issue-mgmt/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/simple-maven-scm/src/main/java/zero/Application.java b/openshift-maven-plugin/it/src/it/simple-maven-scm/src/main/java/zero/Application.java
index 15176271d2..cb7f3f6414 100644
--- a/openshift-maven-plugin/it/src/it/simple-maven-scm/src/main/java/zero/Application.java
+++ b/openshift-maven-plugin/it/src/it/simple-maven-scm/src/main/java/zero/Application.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/simple-maven-scm/src/main/java/zero/HelloController.java b/openshift-maven-plugin/it/src/it/simple-maven-scm/src/main/java/zero/HelloController.java
index f2e3183c5d..df1753a4e4 100644
--- a/openshift-maven-plugin/it/src/it/simple-maven-scm/src/main/java/zero/HelloController.java
+++ b/openshift-maven-plugin/it/src/it/simple-maven-scm/src/main/java/zero/HelloController.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/simple-maven-scm/verify.groovy b/openshift-maven-plugin/it/src/it/simple-maven-scm/verify.groovy
index 4f0ca4ded8..80e12fb8bb 100644
--- a/openshift-maven-plugin/it/src/it/simple-maven-scm/verify.groovy
+++ b/openshift-maven-plugin/it/src/it/simple-maven-scm/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/simple-with-route-flag-false/src/main/java/zero/Application.java b/openshift-maven-plugin/it/src/it/simple-with-route-flag-false/src/main/java/zero/Application.java
index 15176271d2..cb7f3f6414 100644
--- a/openshift-maven-plugin/it/src/it/simple-with-route-flag-false/src/main/java/zero/Application.java
+++ b/openshift-maven-plugin/it/src/it/simple-with-route-flag-false/src/main/java/zero/Application.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/simple-with-route-flag-false/src/main/java/zero/HelloController.java b/openshift-maven-plugin/it/src/it/simple-with-route-flag-false/src/main/java/zero/HelloController.java
index f2e3183c5d..df1753a4e4 100644
--- a/openshift-maven-plugin/it/src/it/simple-with-route-flag-false/src/main/java/zero/HelloController.java
+++ b/openshift-maven-plugin/it/src/it/simple-with-route-flag-false/src/main/java/zero/HelloController.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/simple-with-route-flag-false/verify.groovy b/openshift-maven-plugin/it/src/it/simple-with-route-flag-false/verify.groovy
index 21b4370b54..2a690bba48 100644
--- a/openshift-maven-plugin/it/src/it/simple-with-route-flag-false/verify.groovy
+++ b/openshift-maven-plugin/it/src/it/simple-with-route-flag-false/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/simple-with-route-flag-true/src/main/java/zero/Application.java b/openshift-maven-plugin/it/src/it/simple-with-route-flag-true/src/main/java/zero/Application.java
index 15176271d2..cb7f3f6414 100644
--- a/openshift-maven-plugin/it/src/it/simple-with-route-flag-true/src/main/java/zero/Application.java
+++ b/openshift-maven-plugin/it/src/it/simple-with-route-flag-true/src/main/java/zero/Application.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/simple-with-route-flag-true/src/main/java/zero/HelloController.java b/openshift-maven-plugin/it/src/it/simple-with-route-flag-true/src/main/java/zero/HelloController.java
index f2e3183c5d..df1753a4e4 100644
--- a/openshift-maven-plugin/it/src/it/simple-with-route-flag-true/src/main/java/zero/HelloController.java
+++ b/openshift-maven-plugin/it/src/it/simple-with-route-flag-true/src/main/java/zero/HelloController.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/simple-with-route-flag-true/verify.groovy b/openshift-maven-plugin/it/src/it/simple-with-route-flag-true/verify.groovy
index 74b296d8a6..9fc29f819f 100644
--- a/openshift-maven-plugin/it/src/it/simple-with-route-flag-true/verify.groovy
+++ b/openshift-maven-plugin/it/src/it/simple-with-route-flag-true/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/simple/src/main/java/zero/Application.java b/openshift-maven-plugin/it/src/it/simple/src/main/java/zero/Application.java
index 15176271d2..cb7f3f6414 100644
--- a/openshift-maven-plugin/it/src/it/simple/src/main/java/zero/Application.java
+++ b/openshift-maven-plugin/it/src/it/simple/src/main/java/zero/Application.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/simple/src/main/java/zero/HelloController.java b/openshift-maven-plugin/it/src/it/simple/src/main/java/zero/HelloController.java
index f2e3183c5d..df1753a4e4 100644
--- a/openshift-maven-plugin/it/src/it/simple/src/main/java/zero/HelloController.java
+++ b/openshift-maven-plugin/it/src/it/simple/src/main/java/zero/HelloController.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/simple/verify.groovy b/openshift-maven-plugin/it/src/it/simple/verify.groovy
index 4f0ca4ded8..80e12fb8bb 100644
--- a/openshift-maven-plugin/it/src/it/simple/verify.groovy
+++ b/openshift-maven-plugin/it/src/it/simple/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/spring-boot/src/main/java/io/fabric8/maven/sample/spring/boot/Application.java b/openshift-maven-plugin/it/src/it/spring-boot/src/main/java/io/fabric8/maven/sample/spring/boot/Application.java
index ca965ece1c..ead1018db6 100644
--- a/openshift-maven-plugin/it/src/it/spring-boot/src/main/java/io/fabric8/maven/sample/spring/boot/Application.java
+++ b/openshift-maven-plugin/it/src/it/spring-boot/src/main/java/io/fabric8/maven/sample/spring/boot/Application.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/spring-boot/src/main/java/io/fabric8/maven/sample/spring/boot/HelloController.java b/openshift-maven-plugin/it/src/it/spring-boot/src/main/java/io/fabric8/maven/sample/spring/boot/HelloController.java
index 4b37b8f49f..796a195deb 100644
--- a/openshift-maven-plugin/it/src/it/spring-boot/src/main/java/io/fabric8/maven/sample/spring/boot/HelloController.java
+++ b/openshift-maven-plugin/it/src/it/spring-boot/src/main/java/io/fabric8/maven/sample/spring/boot/HelloController.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/spring-boot/verify.groovy b/openshift-maven-plugin/it/src/it/spring-boot/verify.groovy
index 1376d04850..90723e5a2b 100644
--- a/openshift-maven-plugin/it/src/it/spring-boot/verify.groovy
+++ b/openshift-maven-plugin/it/src/it/spring-boot/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/statefulset/src/main/java/io/fabric8/maven/sample/spring/boot/Application.java b/openshift-maven-plugin/it/src/it/statefulset/src/main/java/io/fabric8/maven/sample/spring/boot/Application.java
index 70b07e455d..a7ce18b3e5 100644
--- a/openshift-maven-plugin/it/src/it/statefulset/src/main/java/io/fabric8/maven/sample/spring/boot/Application.java
+++ b/openshift-maven-plugin/it/src/it/statefulset/src/main/java/io/fabric8/maven/sample/spring/boot/Application.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/statefulset/verify.groovy b/openshift-maven-plugin/it/src/it/statefulset/verify.groovy
index 4f0ca4ded8..80e12fb8bb 100644
--- a/openshift-maven-plugin/it/src/it/statefulset/verify.groovy
+++ b/openshift-maven-plugin/it/src/it/statefulset/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/vertx-default/src/main/java/io/fabric8/maven/sample/vertx/HttpApplication.java b/openshift-maven-plugin/it/src/it/vertx-default/src/main/java/io/fabric8/maven/sample/vertx/HttpApplication.java
index 37712d6e79..e10f7b7adc 100644
--- a/openshift-maven-plugin/it/src/it/vertx-default/src/main/java/io/fabric8/maven/sample/vertx/HttpApplication.java
+++ b/openshift-maven-plugin/it/src/it/vertx-default/src/main/java/io/fabric8/maven/sample/vertx/HttpApplication.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/vertx-default/verify.groovy b/openshift-maven-plugin/it/src/it/vertx-default/verify.groovy
index c883195193..b9f7b0e8a8 100644
--- a/openshift-maven-plugin/it/src/it/vertx-default/verify.groovy
+++ b/openshift-maven-plugin/it/src/it/vertx-default/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/vertx-health-check/src/main/java/io/fabric8/maven/sample/vertx/HttpApplication.java b/openshift-maven-plugin/it/src/it/vertx-health-check/src/main/java/io/fabric8/maven/sample/vertx/HttpApplication.java
index 37712d6e79..e10f7b7adc 100644
--- a/openshift-maven-plugin/it/src/it/vertx-health-check/src/main/java/io/fabric8/maven/sample/vertx/HttpApplication.java
+++ b/openshift-maven-plugin/it/src/it/vertx-health-check/src/main/java/io/fabric8/maven/sample/vertx/HttpApplication.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/vertx-health-check/verify.groovy b/openshift-maven-plugin/it/src/it/vertx-health-check/verify.groovy
index dec19ec938..6c16290495 100644
--- a/openshift-maven-plugin/it/src/it/vertx-health-check/verify.groovy
+++ b/openshift-maven-plugin/it/src/it/vertx-health-check/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/vertx/src/main/java/io/vertx/example/SimpleWebVerticle.java b/openshift-maven-plugin/it/src/it/vertx/src/main/java/io/vertx/example/SimpleWebVerticle.java
index 88351a7b90..1dea5fccdf 100644
--- a/openshift-maven-plugin/it/src/it/vertx/src/main/java/io/vertx/example/SimpleWebVerticle.java
+++ b/openshift-maven-plugin/it/src/it/vertx/src/main/java/io/vertx/example/SimpleWebVerticle.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/vertx/verify.groovy b/openshift-maven-plugin/it/src/it/vertx/verify.groovy
index c883195193..b9f7b0e8a8 100644
--- a/openshift-maven-plugin/it/src/it/vertx/verify.groovy
+++ b/openshift-maven-plugin/it/src/it/vertx/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/volume-enricher-custom-storage-class/verify.groovy b/openshift-maven-plugin/it/src/it/volume-enricher-custom-storage-class/verify.groovy
index 64eb3cbd2e..a68df2b070 100644
--- a/openshift-maven-plugin/it/src/it/volume-enricher-custom-storage-class/verify.groovy
+++ b/openshift-maven-plugin/it/src/it/volume-enricher-custom-storage-class/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/it/src/it/volume-enricher-default-storage-class/verify.groovy b/openshift-maven-plugin/it/src/it/volume-enricher-default-storage-class/verify.groovy
index 4f0ca4ded8..80e12fb8bb 100644
--- a/openshift-maven-plugin/it/src/it/volume-enricher-default-storage-class/verify.groovy
+++ b/openshift-maven-plugin/it/src/it/volume-enricher-default-storage-class/verify.groovy
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/OpenShift.java b/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/OpenShift.java
index 2c4bf89ec5..c0353330d5 100644
--- a/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/OpenShift.java
+++ b/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/OpenShift.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/OpenshiftApplyMojo.java b/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/OpenshiftApplyMojo.java
index 9dba3818c1..a5e1371ee7 100644
--- a/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/OpenshiftApplyMojo.java
+++ b/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/OpenshiftApplyMojo.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/OpenshiftBuildMojo.java b/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/OpenshiftBuildMojo.java
index 43884068d1..0c9357139a 100644
--- a/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/OpenshiftBuildMojo.java
+++ b/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/OpenshiftBuildMojo.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/OpenshiftHelmMojo.java b/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/OpenshiftHelmMojo.java
index f0bd0bff74..1c9c3a1fee 100644
--- a/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/OpenshiftHelmMojo.java
+++ b/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/OpenshiftHelmMojo.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/OpenshiftHelmPushMojo.java b/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/OpenshiftHelmPushMojo.java
index 98476e7f0b..b52ddbb355 100644
--- a/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/OpenshiftHelmPushMojo.java
+++ b/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/OpenshiftHelmPushMojo.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/OpenshiftPushMojo.java b/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/OpenshiftPushMojo.java
index 8b3a65f799..3495915d01 100644
--- a/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/OpenshiftPushMojo.java
+++ b/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/OpenshiftPushMojo.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/OpenshiftResourceMojo.java b/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/OpenshiftResourceMojo.java
index a5546df6b2..6cae499d99 100644
--- a/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/OpenshiftResourceMojo.java
+++ b/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/OpenshiftResourceMojo.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/develop/OpenShiftRemoteDevMojo.java b/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/develop/OpenShiftRemoteDevMojo.java
index 30d40eda11..fc92d60dd6 100644
--- a/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/develop/OpenShiftRemoteDevMojo.java
+++ b/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/develop/OpenShiftRemoteDevMojo.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/develop/OpenshiftDebugMojo.java b/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/develop/OpenshiftDebugMojo.java
index 4e83f6a9e4..4826f2469f 100644
--- a/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/develop/OpenshiftDebugMojo.java
+++ b/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/develop/OpenshiftDebugMojo.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/develop/OpenshiftDeployMojo.java b/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/develop/OpenshiftDeployMojo.java
index 31aab53e0a..4d0e0b40c4 100644
--- a/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/develop/OpenshiftDeployMojo.java
+++ b/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/develop/OpenshiftDeployMojo.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/develop/OpenshiftLogMojo.java b/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/develop/OpenshiftLogMojo.java
index 619eefa1c3..7e78bb1b16 100644
--- a/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/develop/OpenshiftLogMojo.java
+++ b/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/develop/OpenshiftLogMojo.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/develop/OpenshiftUndeployMojo.java b/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/develop/OpenshiftUndeployMojo.java
index 6df7e78490..2e14c1fd08 100644
--- a/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/develop/OpenshiftUndeployMojo.java
+++ b/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/develop/OpenshiftUndeployMojo.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/develop/OpenshiftWatchMojo.java b/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/develop/OpenshiftWatchMojo.java
index b94b18aaeb..f50e87c80c 100644
--- a/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/develop/OpenshiftWatchMojo.java
+++ b/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/develop/OpenshiftWatchMojo.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/util/OpenShiftMigrateMojo.java b/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/util/OpenShiftMigrateMojo.java
index fcb51337c2..e3b1e0597d 100644
--- a/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/util/OpenShiftMigrateMojo.java
+++ b/openshift-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/util/OpenShiftMigrateMojo.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/OpenShiftGeneratedPluginDescriptorTest.java b/openshift-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/OpenShiftGeneratedPluginDescriptorTest.java
index 9a350d2b3d..3cd55f80fe 100644
--- a/openshift-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/OpenShiftGeneratedPluginDescriptorTest.java
+++ b/openshift-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/OpenShiftGeneratedPluginDescriptorTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/build/OpenShiftResourceMojoTest.java b/openshift-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/build/OpenShiftResourceMojoTest.java
index 392f4d2f47..2b425f539f 100644
--- a/openshift-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/build/OpenShiftResourceMojoTest.java
+++ b/openshift-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/build/OpenShiftResourceMojoTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/develop/OpenShiftRemoteDevMojoTest.java b/openshift-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/develop/OpenShiftRemoteDevMojoTest.java
index bf4e579ac1..6d9b580453 100644
--- a/openshift-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/develop/OpenShiftRemoteDevMojoTest.java
+++ b/openshift-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/develop/OpenShiftRemoteDevMojoTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
diff --git a/openshift-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/develop/OpenshiftUndeployMojoTest.java b/openshift-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/develop/OpenshiftUndeployMojoTest.java
index 1c079a66b1..ec9f175830 100644
--- a/openshift-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/develop/OpenshiftUndeployMojoTest.java
+++ b/openshift-maven-plugin/plugin/src/test/java/org/eclipse/jkube/maven/plugin/mojo/develop/OpenshiftUndeployMojoTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
From ae60db8fb387786d67f349b92ae10f61739d8490 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 20 Jul 2023 23:23:58 +0000
Subject: [PATCH 48/65] chore(deps): Bump com.networknt:json-schema-validator
Bumps [com.networknt:json-schema-validator](https://github.com/networknt/json-schema-validator) from 1.0.76 to 1.0.86.
- [Release notes](https://github.com/networknt/json-schema-validator/releases)
- [Changelog](https://github.com/networknt/json-schema-validator/blob/master/CHANGELOG.md)
- [Commits](https://github.com/networknt/json-schema-validator/compare/1.0.76...1.0.86)
---
updated-dependencies:
- dependency-name: com.networknt:json-schema-validator
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
jkube-kit/parent/pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/jkube-kit/parent/pom.xml b/jkube-kit/parent/pom.xml
index 661f1f0795..0858444dfa 100644
--- a/jkube-kit/parent/pom.xml
+++ b/jkube-kit/parent/pom.xml
@@ -54,7 +54,7 @@
3.3.13.9.00.2.2
- 1.0.76
+ 1.0.86${version.kubernetes-client}2.6.00.0.7
From 77bbc4477492c4c5b6ad25ad089174e62c80e9bd Mon Sep 17 00:00:00 2001
From: Prafful Rastogi <76156838+Prafful-Rastogi@users.noreply.github.com>
Date: Mon, 24 Jul 2023 19:26:56 +0530
Subject: [PATCH 49/65] doc : Add documentation for using jkube snapshots
(#2297)
* doc : Add documentation for using jkube snapshots
Signed-off-by: prafful-rastogi
* doc : Add documentation for using jkube snapshots
Signed-off-by: prafful-rastogi
* doc : Add documentation for using jkube snapshots
Signed-off-by: prafful-rastogi
* doc : Add documentation for using jkube snapshots
Signed-off-by: prafful-rastogi
---------
Signed-off-by: prafful-rastogi
---
README.md | 35 +++++++++++++--------
USING-SNAPSHOT-ARTIFACTS.md | 61 +++++++++++++++++++++++++++++++++++++
2 files changed, 83 insertions(+), 13 deletions(-)
create mode 100644 USING-SNAPSHOT-ARTIFACTS.md
diff --git a/README.md b/README.md
index e3ef748de6..8fd087d765 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,5 @@
# Eclipse JKube
+
> Cloud-Native Java Applications without a hassle
[![Circle CI](https://circleci.com/gh/eclipse/jkube/tree/master.svg?style=shield)](https://circleci.com/gh/eclipse/jkube/tree/master)
@@ -8,7 +9,6 @@
[![Gitter](https://badges.gitter.im/eclipse/jkube.svg)](https://gitter.im/eclipse/jkube?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
[![Twitter](https://img.shields.io/twitter/follow/jkubeio?style=social)](https://twitter.com/jkubeio)
-