diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/informer/InformerConfiguration.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/informer/InformerConfiguration.java index 0d08b65f99..3252c87925 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/informer/InformerConfiguration.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/informer/InformerConfiguration.java @@ -10,8 +10,8 @@ import io.javaoperatorsdk.operator.api.config.ResourceConfiguration; import io.javaoperatorsdk.operator.api.reconciler.EventSourceContext; import io.javaoperatorsdk.operator.processing.event.ResourceID; -import io.javaoperatorsdk.operator.processing.event.source.AssociatedSecondaryResourceIdentifier; -import io.javaoperatorsdk.operator.processing.event.source.PrimaryResourcesRetriever; +import io.javaoperatorsdk.operator.processing.event.source.PrimaryToSecondaryMapper; +import io.javaoperatorsdk.operator.processing.event.source.SecondaryToPrimaryMapper; import io.javaoperatorsdk.operator.processing.event.source.informer.Mappers; public interface InformerConfiguration @@ -20,13 +20,13 @@ public interface InformerConfiguration extends DefaultResourceConfiguration implements InformerConfiguration { - private final PrimaryResourcesRetriever secondaryToPrimaryResourcesIdSet; - private final AssociatedSecondaryResourceIdentifier

associatedWith; + private final SecondaryToPrimaryMapper secondaryToPrimaryResourcesIdSet; + private final PrimaryToSecondaryMapper

associatedWith; protected DefaultInformerConfiguration(ConfigurationService service, String labelSelector, Class resourceClass, - PrimaryResourcesRetriever secondaryToPrimaryResourcesIdSet, - AssociatedSecondaryResourceIdentifier

associatedWith, + SecondaryToPrimaryMapper secondaryToPrimaryResourcesIdSet, + PrimaryToSecondaryMapper

associatedWith, Set namespaces) { super(labelSelector, resourceClass, namespaces); setConfigurationService(service); @@ -38,24 +38,24 @@ protected DefaultInformerConfiguration(ConfigurationService service, String labe } - public PrimaryResourcesRetriever getPrimaryResourcesRetriever() { + public SecondaryToPrimaryMapper getPrimaryResourcesRetriever() { return secondaryToPrimaryResourcesIdSet; } - public AssociatedSecondaryResourceIdentifier

getAssociatedResourceIdentifier() { + public PrimaryToSecondaryMapper

getAssociatedResourceIdentifier() { return associatedWith; } } - PrimaryResourcesRetriever getPrimaryResourcesRetriever(); + SecondaryToPrimaryMapper getPrimaryResourcesRetriever(); - AssociatedSecondaryResourceIdentifier

getAssociatedResourceIdentifier(); + PrimaryToSecondaryMapper

getAssociatedResourceIdentifier(); class InformerConfigurationBuilder { - private PrimaryResourcesRetriever secondaryToPrimaryResourcesIdSet; - private AssociatedSecondaryResourceIdentifier

associatedWith; + private SecondaryToPrimaryMapper secondaryToPrimaryResourcesIdSet; + private PrimaryToSecondaryMapper

associatedWith; private Set namespaces; private String labelSelector; private final Class resourceClass; @@ -68,13 +68,13 @@ private InformerConfigurationBuilder(Class resourceClass, } public InformerConfigurationBuilder withPrimaryResourcesRetriever( - PrimaryResourcesRetriever primaryResourcesRetriever) { - this.secondaryToPrimaryResourcesIdSet = primaryResourcesRetriever; + SecondaryToPrimaryMapper secondaryToPrimaryMapper) { + this.secondaryToPrimaryResourcesIdSet = secondaryToPrimaryMapper; return this; } public InformerConfigurationBuilder withAssociatedSecondaryResourceIdentifier( - AssociatedSecondaryResourceIdentifier

associatedWith) { + PrimaryToSecondaryMapper

associatedWith) { this.associatedWith = associatedWith; return this; } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentResource.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentResource.java index c94cec73d8..5ff8bc6947 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentResource.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentResource.java @@ -24,9 +24,9 @@ import io.javaoperatorsdk.operator.api.reconciler.dependent.Matcher.Result; import io.javaoperatorsdk.operator.api.reconciler.dependent.ResourceUpdatePreProcessor; import io.javaoperatorsdk.operator.processing.event.ResourceID; -import io.javaoperatorsdk.operator.processing.event.source.AssociatedSecondaryResourceIdentifier; import io.javaoperatorsdk.operator.processing.event.source.EventSource; -import io.javaoperatorsdk.operator.processing.event.source.PrimaryResourcesRetriever; +import io.javaoperatorsdk.operator.processing.event.source.PrimaryToSecondaryMapper; +import io.javaoperatorsdk.operator.processing.event.source.SecondaryToPrimaryMapper; import io.javaoperatorsdk.operator.processing.event.source.informer.InformerEventSource; import io.javaoperatorsdk.operator.processing.event.source.informer.Mappers; @@ -63,11 +63,11 @@ public void configureWith(KubernetesDependentResourceConfig config) { private void configureWith(ConfigurationService configService, String labelSelector, Set namespaces, boolean addOwnerReference) { final var primaryResourcesRetriever = - (this instanceof PrimaryResourcesRetriever) ? (PrimaryResourcesRetriever) this + (this instanceof SecondaryToPrimaryMapper) ? (SecondaryToPrimaryMapper) this : Mappers.fromOwnerReference(); - final AssociatedSecondaryResourceIdentifier

secondaryResourceIdentifier = - (this instanceof AssociatedSecondaryResourceIdentifier) - ? (AssociatedSecondaryResourceIdentifier

) this + final PrimaryToSecondaryMapper

secondaryResourceIdentifier = + (this instanceof PrimaryToSecondaryMapper) + ? (PrimaryToSecondaryMapper

) this : ResourceID::fromResource; InformerConfiguration ic = InformerConfiguration.from(configService, resourceType()) diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/AssociatedSecondaryResourceIdentifier.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/PrimaryToSecondaryMapper.java similarity index 75% rename from operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/AssociatedSecondaryResourceIdentifier.java rename to operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/PrimaryToSecondaryMapper.java index b402429baa..5e88c39727 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/AssociatedSecondaryResourceIdentifier.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/PrimaryToSecondaryMapper.java @@ -4,6 +4,6 @@ import io.javaoperatorsdk.operator.processing.event.ResourceID; @FunctionalInterface -public interface AssociatedSecondaryResourceIdentifier

{ +public interface PrimaryToSecondaryMapper

{ ResourceID associatedSecondaryID(P primary); } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/PrimaryResourcesRetriever.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/SecondaryToPrimaryMapper.java similarity index 83% rename from operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/PrimaryResourcesRetriever.java rename to operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/SecondaryToPrimaryMapper.java index 8f01a95bb3..7804ac0f82 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/PrimaryResourcesRetriever.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/SecondaryToPrimaryMapper.java @@ -5,7 +5,6 @@ import io.javaoperatorsdk.operator.processing.event.ResourceID; @FunctionalInterface -public interface PrimaryResourcesRetriever { - +public interface SecondaryToPrimaryMapper { Set associatedPrimaryResources(T dependentResource); } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/Mappers.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/Mappers.java index 21cd3b162a..1c0150b084 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/Mappers.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/Mappers.java @@ -5,38 +5,38 @@ import io.fabric8.kubernetes.api.model.HasMetadata; import io.javaoperatorsdk.operator.processing.event.ResourceID; -import io.javaoperatorsdk.operator.processing.event.source.PrimaryResourcesRetriever; +import io.javaoperatorsdk.operator.processing.event.source.SecondaryToPrimaryMapper; public class Mappers { private Mappers() {} - public static PrimaryResourcesRetriever fromAnnotation( + public static SecondaryToPrimaryMapper fromAnnotation( String nameKey) { return fromMetadata(nameKey, null, false); } - public static PrimaryResourcesRetriever fromAnnotation( + public static SecondaryToPrimaryMapper fromAnnotation( String nameKey, String namespaceKey) { return fromMetadata(nameKey, namespaceKey, false); } - public static PrimaryResourcesRetriever fromLabel( + public static SecondaryToPrimaryMapper fromLabel( String nameKey) { return fromMetadata(nameKey, null, true); } - public static PrimaryResourcesRetriever fromLabel( + public static SecondaryToPrimaryMapper fromLabel( String nameKey, String namespaceKey) { return fromMetadata(nameKey, namespaceKey, true); } - public static PrimaryResourcesRetriever fromOwnerReference() { + public static SecondaryToPrimaryMapper fromOwnerReference() { return resource -> ResourceID.fromFirstOwnerReference(resource).map(Set::of) .orElse(Collections.emptySet()); } - private static PrimaryResourcesRetriever fromMetadata( + private static SecondaryToPrimaryMapper fromMetadata( String nameKey, String namespaceKey, boolean isLabel) { return resource -> { final var metadata = resource.getMetadata(); diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/informer/InformerEventSourceTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/informer/InformerEventSourceTest.java index 4caf9b70d2..131454b3d2 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/informer/InformerEventSourceTest.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/informer/InformerEventSourceTest.java @@ -16,7 +16,7 @@ import io.javaoperatorsdk.operator.api.config.informer.InformerConfiguration; import io.javaoperatorsdk.operator.processing.event.EventHandler; import io.javaoperatorsdk.operator.processing.event.ResourceID; -import io.javaoperatorsdk.operator.processing.event.source.PrimaryResourcesRetriever; +import io.javaoperatorsdk.operator.processing.event.source.SecondaryToPrimaryMapper; import io.javaoperatorsdk.operator.sample.simple.TestCustomResource; import static org.mockito.ArgumentMatchers.any; @@ -50,16 +50,16 @@ void setup() { when(labeledResourceClientMock.runnableInformer(0)).thenReturn(informer); when(informerConfiguration.getPrimaryResourcesRetriever()) - .thenReturn(mock(PrimaryResourcesRetriever.class)); + .thenReturn(mock(SecondaryToPrimaryMapper.class)); informerEventSource = new InformerEventSource<>(informerConfiguration, clientMock); informerEventSource.setTemporalResourceCache(temporaryResourceCacheMock); informerEventSource.setEventHandler(eventHandlerMock); - PrimaryResourcesRetriever primaryResourcesRetriever = mock(PrimaryResourcesRetriever.class); + SecondaryToPrimaryMapper secondaryToPrimaryMapper = mock(SecondaryToPrimaryMapper.class); when(informerConfiguration.getPrimaryResourcesRetriever()) - .thenReturn(primaryResourcesRetriever); - when(primaryResourcesRetriever.associatedPrimaryResources(any())) + .thenReturn(secondaryToPrimaryMapper); + when(secondaryToPrimaryMapper.associatedPrimaryResources(any())) .thenReturn(Set.of(ResourceID.fromResource(testDeployment()))); } diff --git a/sample-operators/mysql-schema/src/main/java/io/javaoperatorsdk/operator/sample/dependent/SecretDependentResource.java b/sample-operators/mysql-schema/src/main/java/io/javaoperatorsdk/operator/sample/dependent/SecretDependentResource.java index 6c71252bb5..1b26eaf47a 100644 --- a/sample-operators/mysql-schema/src/main/java/io/javaoperatorsdk/operator/sample/dependent/SecretDependentResource.java +++ b/sample-operators/mysql-schema/src/main/java/io/javaoperatorsdk/operator/sample/dependent/SecretDependentResource.java @@ -11,13 +11,11 @@ import io.javaoperatorsdk.operator.api.reconciler.dependent.Matcher.Result; import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependentResource; import io.javaoperatorsdk.operator.processing.event.ResourceID; -import io.javaoperatorsdk.operator.processing.event.source.AssociatedSecondaryResourceIdentifier; +import io.javaoperatorsdk.operator.processing.event.source.PrimaryToSecondaryMapper; import io.javaoperatorsdk.operator.sample.MySQLSchema; -import static io.javaoperatorsdk.operator.sample.MySQLSchemaReconciler.*; - public class SecretDependentResource extends KubernetesDependentResource - implements AssociatedSecondaryResourceIdentifier, Creator { + implements PrimaryToSecondaryMapper, Creator { public static final String SECRET_FORMAT = "%s-secret"; public static final String USERNAME_FORMAT = "%s-user"; diff --git a/sample-operators/tomcat-operator/src/main/java/io/javaoperatorsdk/operator/sample/WebappReconciler.java b/sample-operators/tomcat-operator/src/main/java/io/javaoperatorsdk/operator/sample/WebappReconciler.java index 9e10c39ca8..694ff07d02 100644 --- a/sample-operators/tomcat-operator/src/main/java/io/javaoperatorsdk/operator/sample/WebappReconciler.java +++ b/sample-operators/tomcat-operator/src/main/java/io/javaoperatorsdk/operator/sample/WebappReconciler.java @@ -26,9 +26,9 @@ import io.javaoperatorsdk.operator.api.reconciler.Reconciler; import io.javaoperatorsdk.operator.api.reconciler.UpdateControl; import io.javaoperatorsdk.operator.processing.event.ResourceID; -import io.javaoperatorsdk.operator.processing.event.source.AssociatedSecondaryResourceIdentifier; import io.javaoperatorsdk.operator.processing.event.source.EventSource; -import io.javaoperatorsdk.operator.processing.event.source.PrimaryResourcesRetriever; +import io.javaoperatorsdk.operator.processing.event.source.PrimaryToSecondaryMapper; +import io.javaoperatorsdk.operator.processing.event.source.SecondaryToPrimaryMapper; import io.javaoperatorsdk.operator.processing.event.source.informer.InformerEventSource; import static io.javaoperatorsdk.operator.api.reconciler.Constants.NO_FINALIZER; @@ -52,7 +52,7 @@ public List prepareEventSources(EventSourceContext context) * customResourceId of the WebApp resource we traverse the cache and identify it based on naming * convention. */ - final PrimaryResourcesRetriever webappsMatchingTomcatName = + final SecondaryToPrimaryMapper webappsMatchingTomcatName = (Tomcat t) -> context.getPrimaryCache() .list(webApp -> webApp.getSpec().getTomcat().equals(t.getMetadata().getName())) .map(ResourceID::fromResource) @@ -61,7 +61,7 @@ public List prepareEventSources(EventSourceContext context) /* * We retrieve the Tomcat instance associated with out Webapp from its spec */ - final AssociatedSecondaryResourceIdentifier tomcatFromWebAppSpec = + final PrimaryToSecondaryMapper tomcatFromWebAppSpec = (Webapp webapp) -> new ResourceID( webapp.getSpec().getTomcat(), webapp.getMetadata().getNamespace()); diff --git a/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/WebPageReconcilerDependentResources.java b/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/WebPageReconcilerDependentResources.java index b4f6db1395..08a02e8a2c 100644 --- a/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/WebPageReconcilerDependentResources.java +++ b/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/WebPageReconcilerDependentResources.java @@ -14,8 +14,8 @@ import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependentResource; import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependentResourceConfig; import io.javaoperatorsdk.operator.processing.event.ResourceID; -import io.javaoperatorsdk.operator.processing.event.source.AssociatedSecondaryResourceIdentifier; import io.javaoperatorsdk.operator.processing.event.source.EventSource; +import io.javaoperatorsdk.operator.processing.event.source.PrimaryToSecondaryMapper; import static io.javaoperatorsdk.operator.ReconcilerUtils.loadYaml; import static io.javaoperatorsdk.operator.api.reconciler.Constants.NO_FINALIZER; @@ -163,7 +163,7 @@ public static String serviceName(WebPage webPage) { private class ConfigMapDependentResource extends CrudKubernetesDependentResource implements - AssociatedSecondaryResourceIdentifier { + PrimaryToSecondaryMapper { @Override protected ConfigMap desired(WebPage webPage, Context context) {