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 b3e0cf3b65..e3b4b7be14 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 @@ -29,6 +29,18 @@ public static PrimaryResourcesRetriever fromLabel( return fromMetadata(nameKey, namespaceKey, true); } + public static PrimaryResourcesRetriever fromOwnerReference() { + return resource -> { + var ownerReferences = resource.getMetadata().getOwnerReferences(); + if (!ownerReferences.isEmpty()) { + return Set.of(new ResourceID(ownerReferences.get(0).getName(), + resource.getMetadata().getNamespace())); + } else { + return Collections.emptySet(); + } + }; + } + private static PrimaryResourcesRetriever fromMetadata( String nameKey, String namespaceKey, boolean isLabel) { return resource -> { diff --git a/sample-operators/tomcat-operator/src/main/java/io/javaoperatorsdk/operator/sample/TomcatReconciler.java b/sample-operators/tomcat-operator/src/main/java/io/javaoperatorsdk/operator/sample/TomcatReconciler.java index 6f91410594..bb67128f9e 100644 --- a/sample-operators/tomcat-operator/src/main/java/io/javaoperatorsdk/operator/sample/TomcatReconciler.java +++ b/sample-operators/tomcat-operator/src/main/java/io/javaoperatorsdk/operator/sample/TomcatReconciler.java @@ -4,7 +4,6 @@ import java.io.InputStream; import java.util.List; import java.util.Objects; -import java.util.Set; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -22,12 +21,11 @@ import io.javaoperatorsdk.operator.api.reconciler.EventSourceInitializer; 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.EventSource; import io.javaoperatorsdk.operator.processing.event.source.informer.InformerEventSource; +import io.javaoperatorsdk.operator.processing.event.source.informer.Mappers; import static io.javaoperatorsdk.operator.api.reconciler.Constants.NO_FINALIZER; -import static java.util.Collections.EMPTY_SET; /** * Runs a specified number of Tomcat app server Pods. It uses a Deployment to create the Pods. Also @@ -52,15 +50,7 @@ public List prepareEventSources(EventSourceContext context) .runnableInformer(0); return List.of(new InformerEventSource<>( - deploymentInformer, d -> { - var ownerReferences = d.getMetadata().getOwnerReferences(); - if (!ownerReferences.isEmpty()) { - return Set.of(new ResourceID(ownerReferences.get(0).getName(), - d.getMetadata().getNamespace())); - } else { - return EMPTY_SET; - } - })); + deploymentInformer, Mappers.fromOwnerReference())); } @Override