diff --git a/CHANGELOG.md b/CHANGELOG.md index 099c458538..01f30c354d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ After this we will switch probably to real [Semantic Versioning 2.0.0](http://se * Fix 690: Removes deprecated _legacyPortMapping_ property. * Fix 1458: Support for from Image configuration in openshift docker build strategy * Fix 732: Added 'skip' options to goals. +* Refactor 1520: Move XML configuration code from Mojo to enrichers * Fix 1486: Remove Kompose Support * Fix 1467: Wait timeout for build pod is too small * Fix 1466: Allow to configure noCache option for openshift docker build strategy diff --git a/core/src/main/java/io/fabric8/maven/core/util/FileUtil.java b/core/src/main/java/io/fabric8/maven/core/util/FileUtil.java index 9da55dd39e..d22415db70 100644 --- a/core/src/main/java/io/fabric8/maven/core/util/FileUtil.java +++ b/core/src/main/java/io/fabric8/maven/core/util/FileUtil.java @@ -15,13 +15,18 @@ */ package io.fabric8.maven.core.util; +import org.apache.maven.plugin.MojoExecutionException; +import io.fabric8.maven.docker.util.Logger; + import java.io.File; import java.io.IOException; +import java.net.MalformedURLException; import java.net.URISyntaxException; import java.net.URL; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; +import java.util.List; /** * File related methods which cannot be found elsewhere @@ -80,4 +85,43 @@ public static String getAbsolutePath(URL url) { throw new RuntimeException(e); } } + + public static void downloadRemotes(final File outputDirectory, List remotes, Logger log) { + + if (!outputDirectory.exists()) { + try { + Files.createDirectories(outputDirectory.toPath()); + } catch (IOException e) { + throw new IllegalArgumentException(e); + } + } + + remotes.stream() + .map(remote -> { + try { + return new URL(remote); + } catch (MalformedURLException e) { + throw new IllegalArgumentException(e); + } + }) + .forEach(url -> { + try { + IoUtil.download(log, url, new File(outputDirectory, getOutputName(url))); + } catch (MojoExecutionException e) { + throw new IllegalArgumentException(e); + } + }); + } + + private static String getOutputName(URL url) { + final String path = url.getPath(); + + final int slashIndex = path.lastIndexOf('/'); + if (slashIndex >= 0) { + return path.substring(slashIndex + 1); + } else { + throw new IllegalArgumentException(String.format("URL %s should contain a name file to be downloaded.", url.toString())); + } + + } } diff --git a/enricher/api/src/main/java/io/fabric8/maven/enricher/api/MavenEnricherContext.java b/enricher/api/src/main/java/io/fabric8/maven/enricher/api/MavenEnricherContext.java index 44b4c78ee8..8c7f47ef74 100644 --- a/enricher/api/src/main/java/io/fabric8/maven/enricher/api/MavenEnricherContext.java +++ b/enricher/api/src/main/java/io/fabric8/maven/enricher/api/MavenEnricherContext.java @@ -22,6 +22,8 @@ import java.util.Optional; import java.util.Set; +import com.google.gson.JsonObject; +import com.google.gson.JsonPrimitive; import io.fabric8.maven.core.config.ProcessorConfig; import io.fabric8.maven.core.config.ResourceConfig; import io.fabric8.maven.core.model.Configuration; @@ -53,6 +55,8 @@ public class MavenEnricherContext implements EnricherContext { // overall configuration for the build private Configuration configuration; + private Settings settings; + private MavenProject project; private Logger log; @@ -66,6 +70,10 @@ public Configuration getConfiguration() { return configuration; } + public Settings getSettings() { + return settings; + } + @Override public Logger getLog() { return log; @@ -133,6 +141,48 @@ public MavenProject getProject() { return project; } + //Method used in MOJO + public String getDockerJsonConfigString(final Settings settings, final String serverId) { + Server server = getServer(settings, serverId); + if (server == null) { + return ""; + } + + JsonObject auth = new JsonObject(); + auth.add("username", new JsonPrimitive(server.getUsername())); + auth.add("password", new JsonPrimitive(server.getPassword())); + + String mail = getConfigurationValue(server, "email"); + if (!StringUtils.isBlank(mail)) { + auth.add("email", new JsonPrimitive(mail)); + } + + JsonObject json = new JsonObject(); + json.add(serverId, auth); + return json.toString(); + } + + public Server getServer(final Settings settings, final String serverId) { + if (settings == null || StringUtils.isBlank(serverId)) { + return null; + } + return settings.getServer(serverId); + } + + private String getConfigurationValue(final Server server, final String key) { + + final Xpp3Dom configuration = (Xpp3Dom) server.getConfiguration(); + if (configuration == null) { + return null; + } + + final Xpp3Dom node = configuration.getChild(key); + if (node == null) { + return null; + } + + return node.getValue(); + } // ======================================================================================================= public static class Builder { @@ -177,6 +227,11 @@ public Builder openshiftDependencyResources(OpenShiftDependencyResources openShi return this; } + public Builder settings(Settings settings) { + ctx.settings = settings; + return this; + } + public MavenEnricherContext build() { ctx.configuration = new Configuration.Builder() diff --git a/enricher/standard/src/main/java/io/fabric8/maven/enricher/standard/ConfigMapEnricher.java b/enricher/standard/src/main/java/io/fabric8/maven/enricher/standard/ConfigMapEnricher.java index 31bf6a8523..5671583eb9 100644 --- a/enricher/standard/src/main/java/io/fabric8/maven/enricher/standard/ConfigMapEnricher.java +++ b/enricher/standard/src/main/java/io/fabric8/maven/enricher/standard/ConfigMapEnricher.java @@ -18,6 +18,8 @@ import io.fabric8.kubernetes.api.builder.TypedVisitor; import io.fabric8.kubernetes.api.model.ConfigMapBuilder; import io.fabric8.kubernetes.api.model.KubernetesListBuilder; +import io.fabric8.maven.core.config.ConfigMapEntry; +import io.fabric8.maven.core.config.ResourceConfig; import io.fabric8.maven.enricher.api.BaseEnricher; import io.fabric8.maven.enricher.api.MavenEnricherContext; import java.io.IOException; @@ -39,6 +41,7 @@ public ConfigMapEnricher(MavenEnricherContext enricherContext) { @Override public void addMissingResources(KubernetesListBuilder builder) { addAnnotations(builder); + addConfigMapFromXmlConfigurations(builder); } private void addAnnotations(KubernetesListBuilder builder) { @@ -82,4 +85,52 @@ private String getOutput(String key) { return key.substring(PREFIX_ANNOTATION.length()); } + private void addConfigMapFromXmlConfigurations(KubernetesListBuilder builder) { + io.fabric8.maven.core.config.ConfigMap configMap = getConfigMapFromXmlConfiguration(); + final Map configMapFromConfiguration; + try { + configMapFromConfiguration = createConfigMapFromConfiguration(configMap); + if(!configMapFromConfiguration.isEmpty()) { + ConfigMapBuilder element = new ConfigMapBuilder(); + element.withNewMetadata().withName("xmlconfig").endMetadata(); + element.addToData(configMapFromConfiguration); + + builder.addToConfigMapItems(element.build()); + } + } catch (IOException e) { + throw new IllegalArgumentException(e); + } + } + + private io.fabric8.maven.core.config.ConfigMap getConfigMapFromXmlConfiguration() { + ResourceConfig resourceConfig = getConfiguration().getResource().orElse(null); + if(resourceConfig != null && resourceConfig.getConfigMap() != null) { + return resourceConfig.getConfigMap(); + } + return null; + } + + private Map createConfigMapFromConfiguration(io.fabric8.maven.core.config.ConfigMap configMap) throws IOException { + final Map configMapData = new HashMap<>(); + + if (configMap != null) { + for (ConfigMapEntry configMapEntry : configMap.getEntries()) { + String name = configMapEntry.getName(); + final String value = configMapEntry.getValue(); + if (name != null && value != null) { + configMapData.put(name, value); + } else { + final String file = configMapEntry.getFile(); + if (file != null) { + if (name == null) { + name = Paths.get(file).getFileName().toString(); + } + configMapData.put(name, readContent(file)); + } + } + } + } + return configMapData; + } + } diff --git a/enricher/standard/src/main/java/io/fabric8/maven/enricher/standard/DefaultServiceEnricher.java b/enricher/standard/src/main/java/io/fabric8/maven/enricher/standard/DefaultServiceEnricher.java index 2bdeb590a5..e03ce41e2d 100644 --- a/enricher/standard/src/main/java/io/fabric8/maven/enricher/standard/DefaultServiceEnricher.java +++ b/enricher/standard/src/main/java/io/fabric8/maven/enricher/standard/DefaultServiceEnricher.java @@ -26,6 +26,9 @@ import io.fabric8.kubernetes.api.model.ServicePort; import io.fabric8.kubernetes.api.model.ServicePortBuilder; import io.fabric8.kubernetes.api.model.ServiceSpec; +import io.fabric8.maven.core.config.ResourceConfig; +import io.fabric8.maven.core.config.ServiceConfig; +import io.fabric8.maven.core.handler.ServiceHandler; import io.fabric8.maven.core.util.Configs; import io.fabric8.maven.core.util.MavenUtil; import io.fabric8.maven.core.util.kubernetes.KubernetesHelper; @@ -104,10 +107,39 @@ public void addMissingResources(KubernetesListBuilder builder) { } else { addDefaultService(builder, defaultService); } + + // Add Services configured via XML + addServices(builder); } // ======================================================================================================= + private void addServices(KubernetesListBuilder builder) { + ResourceConfig resources = new ResourceConfig(); + + if (resources != null && resources.getServices() != null) { + List serviceConfig = resources.getServices(); + ServiceHandler serviceHandler = new ServiceHandler(); + builder.addToServiceItems(toArray(serviceHandler.getServices(serviceConfig))); + } + } + + // convert list to array, never returns null. + private Service[] toArray(List services) { + if (services == null) { + return new Service[0]; + } + if (services instanceof ArrayList) { + return ((ArrayList) services).toArray(new Service[services.size()]); + } else { + Service[] ret = new Service[services.size()]; + for (int i = 0; i < services.size(); i++) { + ret[i] = services.get(i); + } + return ret; + } + } + private Service getDefaultService() { // No image config, no service diff --git a/enricher/standard/src/main/java/io/fabric8/maven/enricher/standard/SecretEnricher.java b/enricher/standard/src/main/java/io/fabric8/maven/enricher/standard/SecretEnricher.java index 4137061691..ebfd5c43a9 100644 --- a/enricher/standard/src/main/java/io/fabric8/maven/enricher/standard/SecretEnricher.java +++ b/enricher/standard/src/main/java/io/fabric8/maven/enricher/standard/SecretEnricher.java @@ -15,14 +15,23 @@ */ package io.fabric8.maven.enricher.standard; +import java.util.HashMap; +import java.util.List; import java.util.Map; import io.fabric8.kubernetes.api.builder.TypedVisitor; import io.fabric8.kubernetes.api.model.KubernetesListBuilder; +import io.fabric8.kubernetes.api.model.ObjectMeta; +import io.fabric8.kubernetes.api.model.ObjectMetaBuilder; +import io.fabric8.kubernetes.api.model.Secret; import io.fabric8.kubernetes.api.model.SecretBuilder; +import io.fabric8.maven.core.config.ResourceConfig; +import io.fabric8.maven.core.config.SecretConfig; import io.fabric8.maven.core.util.Base64Util; +import io.fabric8.maven.core.util.SecretConstants; import io.fabric8.maven.enricher.api.BaseEnricher; import io.fabric8.maven.enricher.api.MavenEnricherContext; +import org.apache.commons.lang3.StringUtils; public abstract class SecretEnricher extends BaseEnricher { @@ -58,6 +67,61 @@ public void visit(SecretBuilder secretBuilder) { secretBuilder.addToData(data); } }); + + addSecretsFromXmlConfiguration(builder); + } + + private void addSecretsFromXmlConfiguration(KubernetesListBuilder builder) { + log.verbose("Adding secrets resources from plugin configuration"); + List secrets = getSecretsFromXmlConfig(); + if (secrets == null || secrets.isEmpty()) { + return; + } + for (int i = 0; i < secrets.size(); i++) { + SecretConfig secretConfig = secrets.get(i); + if (StringUtils.isBlank(secretConfig.getName())) { + log.warn("Secret name is empty. You should provide a proper name for the secret"); + continue; + } + + Map data = new HashMap<>(); + String type = ""; + ObjectMeta metadata = new ObjectMetaBuilder() + .withNamespace(secretConfig.getNamespace()) + .withName(secretConfig.getName()) + .build(); + + // docker-registry + if (secretConfig.getDockerServerId() != null) { + MavenEnricherContext mavenContext = ((MavenEnricherContext)getContext()); + String dockerSecret = (mavenContext).getDockerJsonConfigString(mavenContext.getSettings(), secretConfig.getDockerServerId()); + if (StringUtils.isBlank(dockerSecret)) { + log.warn("Docker secret with id " + + secretConfig.getDockerServerId() + + " cannot be found in maven settings"); + continue; + } + data.put(SecretConstants.DOCKER_DATA_KEY, Base64Util.encodeToString(dockerSecret)); + type = SecretConstants.DOCKER_CONFIG_TYPE; + } + // TODO: generic secret (not supported for now) + + if (StringUtils.isBlank(type) || data.isEmpty()) { + log.warn("No data can be found for docker secret with id " + secretConfig.getDockerServerId()); + continue; + } + + Secret secret = new SecretBuilder().withData(data).withMetadata(metadata).withType(type).build(); + builder.addToSecretItems(i, secret); + } + } + + private List getSecretsFromXmlConfig() { + ResourceConfig resourceConfig = getConfiguration().getResource().orElse(null); + if(resourceConfig != null && resourceConfig.getSecrets() != null) { + return resourceConfig.getSecrets(); + } + return null; } protected abstract String getAnnotationKey(); diff --git a/plugin/src/main/java/io/fabric8/maven/plugin/mojo/build/ResourceMojo.java b/plugin/src/main/java/io/fabric8/maven/plugin/mojo/build/ResourceMojo.java index 5291111d0d..c9ca16323b 100644 --- a/plugin/src/main/java/io/fabric8/maven/plugin/mojo/build/ResourceMojo.java +++ b/plugin/src/main/java/io/fabric8/maven/plugin/mojo/build/ResourceMojo.java @@ -15,38 +15,24 @@ */ package io.fabric8.maven.plugin.mojo.build; -import com.google.gson.JsonObject; -import com.google.gson.JsonPrimitive; import io.fabric8.kubernetes.api.builder.TypedVisitor; import io.fabric8.kubernetes.api.model.ConfigMap; -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.ObjectMeta; -import io.fabric8.kubernetes.api.model.ObjectMetaBuilder; import io.fabric8.kubernetes.api.model.PodTemplateSpecBuilder; -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.apps.Deployment; import io.fabric8.maven.core.access.ClusterAccess; -import io.fabric8.maven.core.config.ConfigMapEntry; import io.fabric8.maven.core.config.MappingConfig; import io.fabric8.maven.core.config.OpenShiftBuildStrategy; import io.fabric8.maven.core.config.PlatformMode; import io.fabric8.maven.core.config.ProcessorConfig; import io.fabric8.maven.core.config.Profile; import io.fabric8.maven.core.config.ResourceConfig; -import io.fabric8.maven.core.config.SecretConfig; -import io.fabric8.maven.core.config.ServiceConfig; import io.fabric8.maven.core.handler.HandlerHub; -import io.fabric8.maven.core.handler.ReplicationControllerHandler; -import io.fabric8.maven.core.handler.ServiceHandler; import io.fabric8.maven.core.model.GroupArtifactVersion; -import io.fabric8.maven.core.util.Base64Util; import io.fabric8.maven.core.util.FileUtil; -import io.fabric8.maven.core.util.IoUtil; import io.fabric8.maven.core.util.MavenUtil; import io.fabric8.maven.core.util.OpenShiftDependencyResources; import io.fabric8.maven.core.util.OpenShiftOverrideResources; @@ -54,7 +40,6 @@ import io.fabric8.maven.core.util.ResourceClassifier; import io.fabric8.maven.core.util.ResourceFileType; import io.fabric8.maven.core.util.ResourceUtil; -import io.fabric8.maven.core.util.SecretConstants; import io.fabric8.maven.core.util.ValidationUtil; import io.fabric8.maven.core.util.kubernetes.Fabric8Annotations; import io.fabric8.maven.core.util.kubernetes.KubernetesHelper; @@ -86,11 +71,6 @@ import java.io.File; import java.io.FileFilter; import java.io.IOException; -import java.net.MalformedURLException; -import java.net.URL; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -111,11 +91,8 @@ import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.plugins.annotations.ResolutionScope; import org.apache.maven.project.MavenProjectHelper; -import org.apache.maven.settings.Server; -import org.apache.maven.settings.Settings; import org.apache.maven.shared.filtering.MavenFileFilter; import org.apache.maven.shared.filtering.MavenFilteringException; -import org.codehaus.plexus.util.xml.Xpp3Dom; import static io.fabric8.maven.core.util.Constants.RESOURCE_APP_CATALOG_ANNOTATION; import static io.fabric8.maven.core.util.ResourceFileType.yaml; @@ -462,7 +439,7 @@ private File resolveRemoteResources() { final List remotes = this.resources.getRemotes(); if (remotes != null && !remotes.isEmpty()) { final File tempDirectory = FileUtil.createTempDirectory(); - downloadRemotes(tempDirectory, remotes); + FileUtil.downloadRemotes(tempDirectory, remotes, this.log); return tempDirectory; } } @@ -470,45 +447,6 @@ private File resolveRemoteResources() { return null; } - private void downloadRemotes(final File outputDirectory, List remotes) { - - if (!outputDirectory.exists()) { - try { - Files.createDirectories(outputDirectory.toPath()); - } catch (IOException e) { - throw new IllegalArgumentException(e); - } - } - - remotes.stream() - .map(remote -> { - try { - return new URL(remote); - } catch (MalformedURLException e) { - throw new IllegalArgumentException(e); - } - }) - .forEach(url -> { - try { - IoUtil.download(this.log, url, new File(outputDirectory, getOutputName(url))); - } catch (MojoExecutionException e) { - throw new IllegalArgumentException(e); - } - }); - } - - private String getOutputName(URL url) { - final String path = url.getPath(); - - final int slashIndex = path.lastIndexOf('/'); - if (slashIndex >= 0) { - return path.substring(slashIndex + 1); - } else { - throw new IllegalArgumentException(String.format("URL %s should contain a name file to be downloaded.", url.toString())); - } - - } - private void updateKindFilenameMappings() { if (mappings != null) { final Map> mappingKindFilename = new HashMap<>(); @@ -689,6 +627,7 @@ private KubernetesList generateResources(List images, File r .project(project) .session(session) .config(extractEnricherConfig()) + .settings(settings) .resources(resources) .images(resolvedImages) .log(log) @@ -780,12 +719,6 @@ private KubernetesListBuilder generateAppResources(List imag builder = new KubernetesListBuilder(); } - // Add locally configured objects - if (resources != null) { - // TODO: Allow also support resources to be specified via XML - addConfiguredResources(builder, images); - } - // Create default resources for app resources only enricherManager.createDefaultResources(builder); @@ -972,16 +905,9 @@ private List getResolvedImages(List imag ret = ConfigHelper.resolveImages( log, images, - new ConfigHelper.Resolver() { - @Override - public List resolve(ImageConfiguration image) { - return imageConfigResolver.resolve(image, project, session); - } - }, + (ImageConfiguration image) -> imageConfigResolver.resolve(image, project, session), null, // no filter on image name yet (TODO: Maybe add this, too ?) - new ConfigHelper.Customizer() { - @Override - public List customizeConfig(List configs) { + (List configs) -> { try { GeneratorContext ctx = new GeneratorContext.Builder() .config(extractGeneratorConfig()) @@ -995,7 +921,6 @@ public List customizeConfig(List configs } catch (Exception e) { throw new IllegalArgumentException("Cannot extract generator: " + e, e); } - } }); Date now = getBuildReferenceDate(); @@ -1024,153 +949,6 @@ private Date getBuildReferenceDate() throws MojoExecutionException { } } - private void addConfiguredResources(KubernetesListBuilder builder, List images) { - - log.verbose("Adding resources from plugin configuration"); - addSecrets(builder); - addServices(builder, resources.getServices()); - addController(builder, images); - addConfigMapFromConfigurations(builder, this.resources.getConfigMap()); - } - - void addConfigMapFromConfigurations(KubernetesListBuilder builder, io.fabric8.maven.core.config.ConfigMap configMap) { - final Map configMapFromConfiguration; - try { - configMapFromConfiguration = createConfigMapFromConfiguration(configMap); - if(!configMapFromConfiguration.isEmpty()) { - ConfigMapBuilder element = new ConfigMapBuilder(); - element.withNewMetadata().withName("xmlconfig").endMetadata(); - element.addToData(configMapFromConfiguration); - - builder.addToConfigMapItems(element.build()); - } - } catch (IOException e) { - throw new IllegalArgumentException(e); - } - } - - private Map createConfigMapFromConfiguration(io.fabric8.maven.core.config.ConfigMap configMap) throws IOException { - final Map configMapData = new HashMap<>(); - - if (configMap != null) { - for (ConfigMapEntry configMapEntry : configMap.getEntries()) { - String name = configMapEntry.getName(); - final String value = configMapEntry.getValue(); - if (name != null && value != null) { - configMapData.put(name, value); - } else { - final String file = configMapEntry.getFile(); - if (file != null) { - if (name == null) { - name = Paths.get(file).getFileName().toString(); - } - configMapData.put(name, readContent(file)); - } - } - } - } - return configMapData; - } - - private String readContent(String location) throws IOException { - return new String(Files.readAllBytes(Paths.get(location))); - } - - private void addSecrets(KubernetesListBuilder builder) { - log.verbose("Adding secrets resources from plugin configuration"); - List secrets = resources.getSecrets(); - if (secrets == null || secrets.isEmpty()) { - return; - } - for (int i = 0; i < secrets.size(); i++) { - SecretConfig secretConfig = secrets.get(i); - if (StringUtils.isBlank(secretConfig.getName())) { - log.warn("Secret name is empty. You should provide a proper name for the secret"); - continue; - } - - Map data = new HashMap<>(); - String type = ""; - ObjectMeta metadata = new ObjectMetaBuilder() - .withNamespace(secretConfig.getNamespace()) - .withName(secretConfig.getName()) - .build(); - - // docker-registry - if (secretConfig.getDockerServerId() != null) { - String dockerSecret = getDockerJsonConfigString(settings, secretConfig.getDockerServerId()); - if (StringUtils.isBlank(dockerSecret)) { - log.warn("Docker secret with id " - + secretConfig.getDockerServerId() - + " cannot be found in maven settings"); - continue; - } - data.put(SecretConstants.DOCKER_DATA_KEY, Base64Util.encodeToString(dockerSecret)); - type = SecretConstants.DOCKER_CONFIG_TYPE; - } - // TODO: generic secret (not supported for now) - - if (StringUtils.isBlank(type) || data.isEmpty()) { - log.warn("No data can be found for docker secret with id " + secretConfig.getDockerServerId()); - continue; - } - - Secret secret = new SecretBuilder().withData(data).withMetadata(metadata).withType(type).build(); - builder.addToSecretItems(i, secret); - } - } - - //Method used in MOJO - public String getDockerJsonConfigString(final Settings settings, final String serverId) { - Server server = getServer(settings, serverId); - if (server == null) { - return ""; - } - - JsonObject auth = new JsonObject(); - auth.add("username", new JsonPrimitive(server.getUsername())); - auth.add("password", new JsonPrimitive(server.getPassword())); - - String mail = getConfigurationValue(server, "email"); - if (!StringUtils.isBlank(mail)) { - auth.add("email", new JsonPrimitive(mail)); - } - - JsonObject json = new JsonObject(); - json.add(serverId, auth); - return json.toString(); - } - - public Server getServer(final Settings settings, final String serverId) { - if (settings == null || StringUtils.isBlank(serverId)) { - return null; - } - return settings.getServer(serverId); - } - - private String getConfigurationValue(final Server server, final String key) { - - final Xpp3Dom configuration = (Xpp3Dom) server.getConfiguration(); - if (configuration == null) { - return null; - } - - final Xpp3Dom node = configuration.getChild(key); - if (node == null) { - return null; - } - - return node.getValue(); - } - - private void addController(KubernetesListBuilder builder, List images) { - // TODO: Change to ReplicaSet - ReplicationControllerHandler rcHandler = handlerHub.getReplicationControllerHandler(); - if (resources.getControllerName() != null) { - builder.addToReplicationControllerItems(rcHandler.getReplicationController(resources, images)); - } - } - private File[] mavenFilterFiles(File[] resourceFiles, File outDir) throws MojoExecutionException { if (!outDir.exists()) { if (!outDir.mkdirs()) { @@ -1193,29 +971,6 @@ private File[] mavenFilterFiles(File[] resourceFiles, File outDir) throws MojoEx return ret; } - private void addServices(KubernetesListBuilder builder, List serviceConfig) { - if (serviceConfig != null) { - ServiceHandler serviceHandler = handlerHub.getServiceHandler(); - builder.addToServiceItems(toArray(serviceHandler.getServices(serviceConfig))); - } - } - - // convert list to array, never returns null. - private Service[] toArray(List services) { - if (services == null) { - return new Service[0]; - } - if (services instanceof ArrayList) { - return ((ArrayList) services).toArray(new Service[services.size()]); - } else { - Service[] ret = new Service[services.size()]; - for (int i = 0; i < services.size(); i++) { - ret[i] = services.get(i); - } - return ret; - } - } - private boolean hasFabric8Dir() { return realResourceDir.isDirectory(); } @@ -1235,8 +990,4 @@ protected void writeResources(KubernetesList resources, ResourceClassifier class // Attach it to the Maven reactor so that it will also get deployed projectHelper.attachArtifact(project, this.resourceFileType.getArtifactType(), classifier.getValue(), file); } - - protected List getMappings() { - return mappings; - } } diff --git a/plugin/src/test/java/io/fabric8/maven/plugin/mojo/build/ResourceMojoTest.java b/plugin/src/test/java/io/fabric8/maven/plugin/mojo/build/ResourceMojoTest.java deleted file mode 100644 index 45ee5a8132..0000000000 --- a/plugin/src/test/java/io/fabric8/maven/plugin/mojo/build/ResourceMojoTest.java +++ /dev/null @@ -1,64 +0,0 @@ -/** - * Copyright 2016 Red Hat, Inc. - * - * Red Hat licenses this file to you under the Apache License, version - * 2.0 (the "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - * implied. See the License for the specific language governing - * permissions and limitations under the License. - */ -package io.fabric8.maven.plugin.mojo.build; - -import io.fabric8.kubernetes.api.model.ConfigMap; -import io.fabric8.kubernetes.api.model.KubernetesListBuilder; -import io.fabric8.maven.core.config.ConfigMapEntry; -import io.fabric8.maven.core.config.ResourceConfig; -import java.util.Map; -import org.junit.Test; - -import static org.assertj.core.api.Assertions.assertThat; - -public class ResourceMojoTest { - - @Test - public void should_add_config_map_content_from_configuration() { - - // Given - io.fabric8.maven.core.config.ConfigMap mockedConfigMap = new io.fabric8.maven.core.config.ConfigMap(); - - final ConfigMapEntry standardConfigMapEntry = new ConfigMapEntry(); - standardConfigMapEntry.setName("A"); - standardConfigMapEntry.setValue("B"); - mockedConfigMap.addEntry(standardConfigMapEntry); - - final ConfigMapEntry fileConfigMapEntry = new ConfigMapEntry(); - fileConfigMapEntry.setFile("src/test/resources/test-application.properties"); - mockedConfigMap.addEntry(fileConfigMapEntry); - - final ResourceConfig.Builder resourceConfigBuilder = new ResourceConfig.Builder(); - resourceConfigBuilder.withConfigMap(mockedConfigMap); - - final KubernetesListBuilder builder = new KubernetesListBuilder(); - ResourceMojo resourceMojo = new ResourceMojo(); - - // When - resourceMojo.addConfigMapFromConfigurations(builder, mockedConfigMap); - - // Then - final ConfigMap configMap = (ConfigMap) builder.buildFirstItem(); - - final Map data = configMap.getData(); - - assertThat(data) - .containsKey("test-application.properties") - .containsKey("A"); - - } - -}