Skip to content

Commit

Permalink
fix fabric8io#3923: minimizing the need for a mapping provider by usi…
Browse files Browse the repository at this point in the history
…ng jandex
  • Loading branch information
shawkins committed Oct 19, 2022
1 parent f8dd11b commit e1e4725
Show file tree
Hide file tree
Showing 19 changed files with 164 additions and 402 deletions.
Expand Up @@ -16,24 +16,7 @@
package io.fabric8.camelk;

import io.fabric8.kubernetes.api.KubernetesResourceMappingProvider;
import io.fabric8.kubernetes.api.model.KubernetesResource;

import java.util.HashMap;
import java.util.Map;

public class CamelKV1ResourceMappingProvider implements KubernetesResourceMappingProvider {

public final Map<String, Class<? extends KubernetesResource>> mappings = new HashMap<>();

public CamelKV1ResourceMappingProvider() {
mappings.put("camel.apahce.org/v1#Build", io.fabric8.camelk.v1.Build.class);
mappings.put("camel.apahce.org/v1#CamelCatalog", io.fabric8.camelk.v1.CamelCatalog.class);
mappings.put("camel.apahce.org/v1#Integration", io.fabric8.camelk.v1.Integration.class);
mappings.put("camel.apahce.org/v1#IntegrationKit", io.fabric8.camelk.v1.IntegrationKit.class);
mappings.put("camel.apahce.org/v1#IntegrationPlatform", io.fabric8.camelk.v1.IntegrationPlatform.class);
}

public Map<String, Class<? extends KubernetesResource>> getMappings() {
return mappings;
}
}
Expand Up @@ -16,20 +16,7 @@
package io.fabric8.camelk;

import io.fabric8.kubernetes.api.KubernetesResourceMappingProvider;
import io.fabric8.kubernetes.api.model.KubernetesResource;

import java.util.HashMap;
import java.util.Map;

public class CamelKV1alpha1ResourceMappingProvider implements KubernetesResourceMappingProvider {

public final Map<String, Class<? extends KubernetesResource>> mappings = new HashMap<>();

public CamelKV1alpha1ResourceMappingProvider() {
mappings.put("camel.apache.org/v1alpha1#Kamelet", io.fabric8.camelk.v1alpha1.Kamelet.class);
}

public Map<String, Class<? extends KubernetesResource>> getMappings() {
return mappings;
}
}
Expand Up @@ -16,35 +16,7 @@
package io.fabric8.chaosmesh.api.model;

import io.fabric8.kubernetes.api.KubernetesResourceMappingProvider;
import io.fabric8.kubernetes.api.model.KubernetesResource;

import java.util.HashMap;
import java.util.Map;

public class ChaosMeshResourceMappingProvider implements KubernetesResourceMappingProvider {

public final Map<String, Class<? extends KubernetesResource>> mappings = new HashMap<>();

public ChaosMeshResourceMappingProvider() {
mappings.put("chaos-mesh.org/v1alpha1#IOChaos", io.fabric8.chaosmesh.v1alpha1.IOChaos.class);
mappings.put("chaos-mesh.org/v1alpha1#KernelChaos", io.fabric8.chaosmesh.v1alpha1.KernelChaos.class);
mappings.put("chaos-mesh.org/v1alpha1#NetworkChaos", io.fabric8.chaosmesh.v1alpha1.NetworkChaos.class);
mappings.put("chaos-mesh.org/v1alpha1#PodChaos", io.fabric8.chaosmesh.v1alpha1.PodChaos.class);
mappings.put("chaos-mesh.org/v1alpha1#PodIOChaos", io.fabric8.chaosmesh.v1alpha1.PodIOChaos.class);
mappings.put("chaos-mesh.org/v1alpha1#PodHttpChaos", io.fabric8.chaosmesh.v1alpha1.PodHttpChaos.class);
mappings.put("chaos-mesh.org/v1alpha1#PodNetworkChaos", io.fabric8.chaosmesh.v1alpha1.PodNetworkChaos.class);
mappings.put("chaos-mesh.org/v1alpha1#StressChaos", io.fabric8.chaosmesh.v1alpha1.StressChaos.class);
mappings.put("chaos-mesh.org/v1alpha1#TimeChaos", io.fabric8.chaosmesh.v1alpha1.TimeChaos.class);
mappings.put("chaos-mesh.org/v1alpha1#JVMChaos", io.fabric8.chaosmesh.v1alpha1.JVMChaos.class);
mappings.put("chaos-mesh.org/v1alpha1#HTTPChaos", io.fabric8.chaosmesh.v1alpha1.HTTPChaos.class);
mappings.put("chaos-mesh.org/v1alpha1#DNSChaos", io.fabric8.chaosmesh.v1alpha1.DNSChaos.class);
mappings.put("chaos-mesh.org/v1alpha1#AWSChaos", io.fabric8.chaosmesh.v1alpha1.AWSChaos.class);
mappings.put("chaos-mesh.org/v1alpha1#GCPChaos", io.fabric8.chaosmesh.v1alpha1.GCPChaos.class);
mappings.put("chaos-mesh.org/v1alpha1#BlockChaos", io.fabric8.chaosmesh.v1alpha1.BlockChaos.class);
mappings.put("chaos-mesh.org/v1alpha1#PhysicalMachineChaos", io.fabric8.chaosmesh.v1alpha1.PhysicalMachineChaos.class);
}

public Map<String, Class<? extends KubernetesResource>> getMappings() {
return mappings;
}
}
Expand Up @@ -16,45 +16,7 @@
package io.fabric8.knative.api.model;

import io.fabric8.kubernetes.api.KubernetesResourceMappingProvider;
import io.fabric8.kubernetes.api.model.KubernetesResource;
import java.util.HashMap;
import java.util.Map;

public class KnativeResourceMappingProvider implements KubernetesResourceMappingProvider {

public final Map<String, Class<? extends KubernetesResource>> mappings = new HashMap<>();

public KnativeResourceMappingProvider() {
mappings.put("serving.knative.dev/v1#Configuration", io.fabric8.knative.serving.v1.Configuration.class);
mappings.put("serving.knative.dev/v1#Revision", io.fabric8.knative.serving.v1.Revision.class);
mappings.put("serving.knative.dev/v1#Service", io.fabric8.knative.serving.v1.Service.class);
mappings.put("serving.knative.dev/v1#Route", io.fabric8.knative.serving.v1.Route.class);

mappings.put("eventing.knative.dev/v1#Broker", io.fabric8.knative.eventing.v1.Broker.class);
mappings.put("eventing.knative.dev/v1#Channel", io.fabric8.knative.messaging.v1.Channel.class);
mappings.put("eventing.knative.dev/v1beta1#EventType", io.fabric8.knative.eventing.v1beta1.EventType.class);
mappings.put("eventing.knative.dev/v1#Trigger", io.fabric8.knative.eventing.v1.Trigger.class);
mappings.put("eventing.knative.dev/v1#Subscription", io.fabric8.knative.messaging.v1.Subscription.class);

mappings.put("messaging.knative.dev/v1#InMemoryChannel", io.fabric8.knative.messaging.v1.InMemoryChannel.class);
mappings.put("messaging.knative.dev/v1#Sequence", io.fabric8.knative.flows.v1.Sequence.class);
mappings.put("sources.knative.dev/v1#PingSource", io.fabric8.knative.sources.v1.PingSource.class);
mappings.put("sources.knative.dev/v1#ContainerSource", io.fabric8.knative.sources.v1.ContainerSource.class);
mappings.put("sources.knative.dev/v1#ApiServerSource", io.fabric8.knative.sources.v1.ApiServerSource.class);
mappings.put("sources.knative.dev/v1#SinkBinding", io.fabric8.knative.sources.v1.SinkBinding.class);
mappings.put("sources.knative.dev/v1alpha1#AwsSqsSource", io.fabric8.knative.eventing.contrib.awssqs.v1alpha1.AwsSqsSource.class);
mappings.put("sources.knative.dev/v1alpha1#CouchDbSource", io.fabric8.knative.eventing.contrib.couchdb.v1alpha1.CouchDbSource.class);
mappings.put("sources.knative.dev/v1alpha1#GitHubSource", io.fabric8.knative.eventing.contrib.github.v1alpha1.GitHubSource.class);
mappings.put("bindings.knative.dev/v1alpha1#GitHubBinding", io.fabric8.knative.eventing.contrib.github.v1alpha1.GitHubBinding.class);
mappings.put("sources.knative.dev/v1alpha1#GitLabSource", io.fabric8.knative.eventing.contrib.gitlab.v1alpha1.GitLabSource.class);
mappings.put("bindings.knative.dev/v1alpha1#GitLabBinding", io.fabric8.knative.eventing.contrib.gitlab.v1alpha1.GitLabBinding.class);
mappings.put("sources.knative.dev/v1alpha1#PrometheusSource", io.fabric8.knative.eventing.contrib.prometheus.v1alpha1.PrometheusSource.class);
mappings.put("sources.knative.dev/v1beta1#KafkaSource", io.fabric8.knative.eventing.contrib.kafka.v1beta1.KafkaSource.class);
mappings.put("messaging.knative.dev/v1beta1#KafkaChannel", io.fabric8.knative.eventing.contrib.kafka.v1beta1.KafkaChannel.class);
mappings.put("bindings.knative.dev/v1beta11#KafkaBinding", io.fabric8.knative.eventing.contrib.kafka.v1beta1.KafkaBinding.class);
}

public Map<String, Class<? extends KubernetesResource>> getMappings() {
return mappings;
}
}
Expand Up @@ -16,27 +16,7 @@
package io.fabric8.servicecatalog.api.model;

import io.fabric8.kubernetes.api.KubernetesResourceMappingProvider;
import io.fabric8.kubernetes.api.model.KubernetesResource;

import java.util.HashMap;
import java.util.Map;

public class ServiceCatalogResourceMappingProvider implements KubernetesResourceMappingProvider {

public final Map<String, Class<? extends KubernetesResource>> mappings = new HashMap<>();

public ServiceCatalogResourceMappingProvider() {
mappings.put("servicecatalog.k8s.io/v1beta1#ClusterServiceBroker", ClusterServiceBroker.class);
mappings.put("servicecatalog.k8s.io/v1beta1#ClusterServiceClass", ClusterServiceClass.class);
mappings.put("servicecatalog.k8s.io/v1beta1#ClusterServicePlan", ClusterServicePlan.class);
mappings.put("servicecatalog.k8s.io/v1beta1#ServiceBroker", ServiceBroker.class);
mappings.put("servicecatalog.k8s.io/v1beta1#ServiceBinding", ServiceBinding.class);
mappings.put("servicecatalog.k8s.io/v1beta1#ServiceInstance", ServiceInstance.class);
mappings.put("servicecatalog.k8s.io/v1beta1#ServiceClass", ServiceClass.class);
mappings.put("servicecatalog.k8s.io/v1beta1#ServicePlan", ServicePlan.class);
}

public Map<String, Class<? extends KubernetesResource>> getMappings() {
return mappings;
}
}
Expand Up @@ -16,27 +16,7 @@
package io.fabric8.tekton;

import io.fabric8.kubernetes.api.KubernetesResourceMappingProvider;
import io.fabric8.kubernetes.api.model.KubernetesResource;

import java.util.HashMap;
import java.util.Map;

public class TektonTriggersResourceMappingProvider implements KubernetesResourceMappingProvider {

public final Map<String, Class<? extends KubernetesResource>> mappings = new HashMap<>();

public TektonTriggersResourceMappingProvider() {
mappings.put("triggers.tekton.dev/v1alpha1#TriggerTemplate", io.fabric8.tekton.triggers.v1alpha1.TriggerTemplate.class);
mappings.put("triggers.tekton.dev/v1alpha1#TriggerBinding", io.fabric8.tekton.triggers.v1alpha1.TriggerBinding.class);
mappings.put("triggers.tekton.dev/v1alpha1#EventListener", io.fabric8.tekton.triggers.v1alpha1.EventListener.class);
mappings.put("triggers.tekton.dev/v1alpha1#ClusterTriggerBinding",
io.fabric8.tekton.triggers.v1alpha1.ClusterTriggerBinding.class);
mappings.put("triggers.tekton.dev/v1alpha1#Trigger", io.fabric8.tekton.triggers.v1alpha1.Trigger.class);
mappings.put("triggers.tekton.dev/v1alpha1#ClusterInterceptor",
io.fabric8.tekton.triggers.v1alpha1.ClusterInterceptor.class);
}

public Map<String, Class<? extends KubernetesResource>> getMappings() {
return mappings;
}
}
Expand Up @@ -16,25 +16,7 @@
package io.fabric8.tekton;

import io.fabric8.kubernetes.api.KubernetesResourceMappingProvider;
import io.fabric8.kubernetes.api.model.KubernetesResource;

import java.util.HashMap;
import java.util.Map;

public class TektonTriggersResourceMappingProvider implements KubernetesResourceMappingProvider {

public final Map<String, Class<? extends KubernetesResource>> mappings = new HashMap<>();

public TektonTriggersResourceMappingProvider() {
mappings.put("triggers.tekton.dev/v1beta1#TriggerTemplate", io.fabric8.tekton.triggers.v1beta1.TriggerTemplate.class);
mappings.put("triggers.tekton.dev/v1beta1#TriggerBinding", io.fabric8.tekton.triggers.v1beta1.TriggerBinding.class);
mappings.put("triggers.tekton.dev/v1beta1#EventListener", io.fabric8.tekton.triggers.v1beta1.EventListener.class);
mappings.put("triggers.tekton.dev/v1beta1#ClusterTriggerBinding",
io.fabric8.tekton.triggers.v1beta1.ClusterTriggerBinding.class);
mappings.put("triggers.tekton.dev/v1beta1#Trigger", io.fabric8.tekton.triggers.v1beta1.Trigger.class);
}

public Map<String, Class<? extends KubernetesResource>> getMappings() {
return mappings;
}
}
Expand Up @@ -16,26 +16,7 @@
package io.fabric8.tekton;

import io.fabric8.kubernetes.api.KubernetesResourceMappingProvider;
import io.fabric8.kubernetes.api.model.KubernetesResource;

import java.util.HashMap;
import java.util.Map;

public class TektonV1alpha1ResourceMappingProvider implements KubernetesResourceMappingProvider {

public final Map<String, Class<? extends KubernetesResource>> mappings = new HashMap<>();

public TektonV1alpha1ResourceMappingProvider() {
mappings.put("tekton.dev/v1alpha1#Condition", io.fabric8.tekton.pipeline.v1alpha1.Condition.class);
mappings.put("tekton.dev/v1alpha1#Pipeline", io.fabric8.tekton.pipeline.v1alpha1.Pipeline.class);
mappings.put("tekton.dev/v1alpha1#PipelineRun", io.fabric8.tekton.pipeline.v1alpha1.PipelineRun.class);
mappings.put("tekton.dev/v1alpha1#Task", io.fabric8.tekton.pipeline.v1alpha1.Task.class);
mappings.put("tekton.dev/v1alpha1#TaskRun", io.fabric8.tekton.pipeline.v1alpha1.TaskRun.class);
mappings.put("tekton.dev/v1alpha1#ClusterTask", io.fabric8.tekton.pipeline.v1alpha1.ClusterTask.class);
mappings.put("tekton.dev/v1alpha1#PipelineResource", io.fabric8.tekton.resource.v1alpha1.PipelineResource.class);
}

public Map<String, Class<? extends KubernetesResource>> getMappings() {
return mappings;
}
}
Expand Up @@ -16,23 +16,7 @@
package io.fabric8.tekton;

import io.fabric8.kubernetes.api.KubernetesResourceMappingProvider;
import io.fabric8.kubernetes.api.model.KubernetesResource;

import java.util.HashMap;
import java.util.Map;

public class TektonV1beta1ResourceMappingProvider implements KubernetesResourceMappingProvider {

public final Map<String, Class<? extends KubernetesResource>> mappings = new HashMap<>();

public TektonV1beta1ResourceMappingProvider() {
mappings.put("tekton.dev/v1beta1#Pipeline", io.fabric8.tekton.pipeline.v1beta1.Pipeline.class);
mappings.put("tekton.dev/v1beta1#PipelineRun", io.fabric8.tekton.pipeline.v1beta1.PipelineRun.class);
mappings.put("tekton.dev/v1beta1#Task", io.fabric8.tekton.pipeline.v1beta1.Task.class);
mappings.put("tekton.dev/v1beta1#TaskRun", io.fabric8.tekton.pipeline.v1beta1.TaskRun.class);
mappings.put("tekton.dev/v1beta1#ClusterTask", io.fabric8.tekton.pipeline.v1beta1.ClusterTask.class);
}

public Map<String, Class<? extends KubernetesResource>> getMappings() {
return mappings;
}}
}
Expand Up @@ -16,22 +16,7 @@
package io.fabric8.volumesnapshot.api.model;

import io.fabric8.kubernetes.api.KubernetesResourceMappingProvider;
import io.fabric8.kubernetes.api.model.KubernetesResource;

import java.util.HashMap;
import java.util.Map;

public class VolumeSnapshotResourceMappingProvider implements KubernetesResourceMappingProvider {

public final Map<String, Class<? extends KubernetesResource>> mappings = new HashMap<>();

public VolumeSnapshotResourceMappingProvider() {
mappings.put("snapshot.storage.k8s.io/v1#VolumeSnapshot", VolumeSnapshot.class);
mappings.put("snapshot.storage.k8s.io/v1#VolumeSnapshotClass", VolumeSnapshotClass.class);
mappings.put("snapshot.storage.k8s.io/v1#VolumeSnapshotContent", VolumeSnapshotContent.class);
}

public Map<String, Class<? extends KubernetesResource>> getMappings() {
return mappings;
}
}
4 changes: 4 additions & 0 deletions kubernetes-model-generator/kubernetes-model-core/pom.xml
Expand Up @@ -116,6 +116,10 @@
<groupId>io.fabric8</groupId>
<artifactId>kubernetes-model-common</artifactId>
</dependency>
<dependency>
<groupId>org.jboss</groupId>
<artifactId>jandex</artifactId>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
Expand Down
Expand Up @@ -17,9 +17,20 @@

import io.fabric8.kubernetes.api.model.KubernetesResource;

import java.util.Map;
import java.util.function.Consumer;

/**
* Only required when running in a runtime, such as OSGI, that does
* not provide resource access outside of a module's own classloader.
*/
public interface KubernetesResourceMappingProvider {

Map<String, Class<? extends KubernetesResource>> getMappings();
/**
* Implement this method if you are not providing a jandex index.
*
* @param classConsumer
*/
default void provideClasses(Consumer<Class<? extends KubernetesResource>> classConsumer) {

}
}
Expand Up @@ -23,6 +23,9 @@
import com.fasterxml.jackson.databind.JsonDeserializer;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import io.fabric8.kubernetes.model.annotation.Generated;
import io.fabric8.kubernetes.model.annotation.Group;
import io.fabric8.kubernetes.model.annotation.Kind;
import io.fabric8.kubernetes.model.annotation.Version;
import io.sundr.builder.annotations.Buildable;

import java.util.ArrayList;
Expand All @@ -42,6 +45,9 @@
"metadata",
"items",
})
@Version("v1")
@Group("")
@Kind("List")
@JsonDeserialize(using = JsonDeserializer.None.class)
@Buildable(editableEnabled = false, validationEnabled = false, generateBuilderPackage = true, builderPackage = "io.fabric8.kubernetes.api.builder")
public class KubernetesList extends DefaultKubernetesResourceList<HasMetadata> implements KubernetesResource {
Expand Down

This file was deleted.

0 comments on commit e1e4725

Please sign in to comment.