snowdrop / istio-java-api

A Java API to generate Istio descriptors, inspired by Fabric8's kubernetes-model.
Apache License 2.0
112 stars 33 forks source link

Unable to deploy istio-spring-boot with me.snowdrop:istio-model:0.4-SNAPSHOT #3

Closed geoand closed 6 years ago

geoand commented 6 years ago

After making sure that the fmp-istio-enricher uses me.snowdrop:istio-model:0.4-SNAPSHOT I tried to deploy our Spring Boot Quick Start Istio following the instructions (mvn clean package fabric8:deploy -Pistio-openshift).

Although the error reported in #2 was cleared, I now get the following stacktrace

Caused by: java.lang.ClassCastException: io.fabric8.kubernetes.api.model.ObjectMetaBuilder cannot be cast to io.fabric8.kubernetes.api.builder.Visitable
        at io.fabric8.kubernetes.api.builder.BaseFluent.acceptInternal(BaseFluent.java:90)
        at io.fabric8.kubernetes.api.builder.BaseFluent.accept(BaseFluent.java:85)
        at io.fabric8.kubernetes.api.builder.BaseFluent.accept(BaseFluent.java:11)
        at io.fabric8.kubernetes.api.builder.BaseFluent.acceptInternal(BaseFluent.java:91)
        at io.fabric8.kubernetes.api.builder.BaseFluent.accept(BaseFluent.java:85)
        at io.fabric8.maven.enricher.standard.NameEnricher.addMissingResources(NameEnricher.java:59)
        at io.fabric8.maven.plugin.enricher.EnricherManager$1.apply(EnricherManager.java:114)
        at io.fabric8.maven.plugin.enricher.EnricherManager$1.apply(EnricherManager.java:111)
        at io.fabric8.maven.plugin.enricher.EnricherManager.loop(EnricherManager.java:214)
        at io.fabric8.maven.plugin.enricher.EnricherManager.createDefaultResources(EnricherManager.java:111)
        at io.fabric8.maven.plugin.enricher.EnricherManager.createDefaultResources(EnricherManager.java:106)
        at io.fabric8.maven.plugin.mojo.build.ResourceMojo.generateAppResources(ResourceMojo.java:544)
        at io.fabric8.maven.plugin.mojo.build.ResourceMojo.generateResources(ResourceMojo.java:456)
        at io.fabric8.maven.plugin.mojo.build.ResourceMojo.executeInternal(ResourceMojo.java:264)
        at io.fabric8.maven.plugin.mojo.AbstractFabric8Mojo.execute(AbstractFabric8Mojo.java:74)
        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)

After inspecting the classpath from the IDE, I saw that there are 2 classes named io.fabric8.kubernetes.api.model.ObjectMetaBuilder.

One from the io.fabric8:kubernetes-model:2.0.4 dependency and one from the me.snowdrop:istio-model:0.4-SNAPSHOT dependency.

The latter seems to be the one that's causing the problem since it does not implement io.fabric8.kubernetes.api.builder.Visitable