diff --git a/CHANGELOG.md b/CHANGELOG.md index 9d27d91ce3..1d282f5e2c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ After this we will switch probably to real [Semantic Versioning 2.0.0](http://se * Fix 839: Sets Spring Boot generator color config property as String (http://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/ansi/AnsiOutput.Enabled.html) * Fix 1412: mvn deploy fails when using a Dockerfile during S2I build * Fix 796: Remove workaround to produce both .yaml and .json files +* Fix 1425: Added metadata visitors for imagestreams, build and buildconfig. ### 3.5-SNAPSHOT * Fix 1021: Avoids empty deployment selector value in generated yaml resource diff --git a/enricher/api/src/main/java/io/fabric8/maven/enricher/api/Kind.java b/enricher/api/src/main/java/io/fabric8/maven/enricher/api/Kind.java index fb90487c10..f7b350a6bf 100644 --- a/enricher/api/src/main/java/io/fabric8/maven/enricher/api/Kind.java +++ b/enricher/api/src/main/java/io/fabric8/maven/enricher/api/Kind.java @@ -28,8 +28,11 @@ public enum Kind { DEPLOYMENT_CONFIG, DAEMON_SET, STATEFUL_SET, + IMAGESTREAM, JOB, - POD_SPEC; + POD_SPEC, + BUILD_CONFIG, + BUILD; /** * Returns true if the kind is a controller diff --git a/plugin/src/main/java/io/fabric8/maven/plugin/enricher/EnricherManager.java b/plugin/src/main/java/io/fabric8/maven/plugin/enricher/EnricherManager.java index 91c315c8de..7132307a40 100644 --- a/plugin/src/main/java/io/fabric8/maven/plugin/enricher/EnricherManager.java +++ b/plugin/src/main/java/io/fabric8/maven/plugin/enricher/EnricherManager.java @@ -79,6 +79,10 @@ public EnricherManager(ResourceConfig resourceConfig, EnricherContext enricherCo new MetadataVisitor.DaemonSetBuilderVisitor(resourceConfig, this), new MetadataVisitor.StatefulSetBuilderVisitor(resourceConfig, this), new MetadataVisitor.JobBuilderVisitor(resourceConfig, this), + new MetadataVisitor.ImageStreamBuilderVisitor(resourceConfig, this), + new MetadataVisitor.BuildConfigBuilderVisitor(resourceConfig, this), + new MetadataVisitor.BuildBuilderVisitor(resourceConfig, this), + }; selectorVisitorCreators = new SelectorVisitor[] { diff --git a/plugin/src/main/java/io/fabric8/maven/plugin/enricher/MetadataVisitor.java b/plugin/src/main/java/io/fabric8/maven/plugin/enricher/MetadataVisitor.java index 92b0a51a4c..b63fcc71f3 100644 --- a/plugin/src/main/java/io/fabric8/maven/plugin/enricher/MetadataVisitor.java +++ b/plugin/src/main/java/io/fabric8/maven/plugin/enricher/MetadataVisitor.java @@ -30,6 +30,9 @@ import io.fabric8.maven.core.config.ProcessorConfig; import io.fabric8.maven.core.config.ResourceConfig; import io.fabric8.maven.enricher.api.Kind; +import io.fabric8.openshift.api.model.BuildBuilder; +import io.fabric8.openshift.api.model.BuildConfigBuilder; +import io.fabric8.openshift.api.model.ImageStreamBuilder; /** * Visitor which adds labels and annotations @@ -271,4 +274,52 @@ protected ObjectMeta getOrCreateMetadata(JobBuilder item) { return item.hasMetadata() ? item.buildMetadata() : item.withNewMetadata().endMetadata().buildMetadata(); } } -} + + public static class ImageStreamBuilderVisitor extends MetadataVisitor { + ImageStreamBuilderVisitor(ResourceConfig resourceConfig, EnricherManager enricher) { + super(resourceConfig, enricher); + } + + @Override + protected Kind getKind() { + return Kind.IMAGESTREAM; + } + + @Override + protected ObjectMeta getOrCreateMetadata(ImageStreamBuilder item) { + return item.hasMetadata() ? item.buildMetadata() : item.withNewMetadata().endMetadata().buildMetadata(); + } + } + + public static class BuildConfigBuilderVisitor extends MetadataVisitor { + BuildConfigBuilderVisitor(ResourceConfig resourceConfig, EnricherManager enricher) { + super(resourceConfig, enricher); + } + + @Override + protected Kind getKind() { + return Kind.BUILD_CONFIG; + } + + @Override + protected ObjectMeta getOrCreateMetadata(BuildConfigBuilder item) { + return item.hasMetadata() ? item.buildMetadata() : item.withNewMetadata().endMetadata().buildMetadata(); + } + } + + public static class BuildBuilderVisitor extends MetadataVisitor { + BuildBuilderVisitor(ResourceConfig resourceConfig, EnricherManager enricher) { + super(resourceConfig, enricher); + } + + @Override + protected Kind getKind() { + return Kind.BUILD; + } + + @Override + protected ObjectMeta getOrCreateMetadata(BuildBuilder item) { + return item.hasMetadata() ? item.buildMetadata() : item.withNewMetadata().endMetadata().buildMetadata(); + } + } +} \ No newline at end of file