class DynamicSharedIndexInformerExample {
  private static final Logger logger = LoggerFactory.getLogger(DynamicSharedIndexInformerExample.class.getSimpleName());

  public static void main(String[] args) {<FILL_FUNCTION_BODY>}
}

    ResourceDefinitionContext context = new ResourceDefinitionContext.Builder()
        .withGroup("demo.fabric8.io")
        .withVersion("v1")
        .withPlural("dummies")
        .withKind("Dummy")
        .withNamespaced(true)
        .build();

    try (KubernetesClient client = new KubernetesClientBuilder().build();
        SharedIndexInformer<GenericKubernetesResource> informer = client.genericKubernetesResources(context).inAnyNamespace()
            .runnableInformer(60 * 1000L);) {
      informer.addEventHandler(new ResourceEventHandler<GenericKubernetesResource>() {
        @Override
        public void onAdd(GenericKubernetesResource genericKubernetesResource) {
          logger.info("ADD {}/{}", genericKubernetesResource.getMetadata().getNamespace(),
              genericKubernetesResource.getMetadata().getName());
        }

        @Override
        public void onUpdate(GenericKubernetesResource genericKubernetesResource, GenericKubernetesResource t1) {
          logger.info("UPDATE {}/{}", genericKubernetesResource.getMetadata().getNamespace(),
              genericKubernetesResource.getMetadata().getName());
        }

        @Override
        public void onDelete(GenericKubernetesResource genericKubernetesResource, boolean b) {
          logger.info("DELETE {}/{}", genericKubernetesResource.getMetadata().getNamespace(),
              genericKubernetesResource.getMetadata().getName());
        }
      });

      TimeUnit.MINUTES.sleep(10);
    } catch (InterruptedException interruptedException) {
      Thread.currentThread().interrupt();
      logger.error("interrupted: {}", interruptedException.getMessage());
    }
  
<no_super_class>