001package io.avaje.jsonb;
002
003/**
004 * User defined components to register custom JsonAdapters with Jsonb.Builder.
005 * <p>
006 * These are service loaded when Jsonb starts. They can be specified in
007 * {@code META-INF/services/io.avaje.jsonb.JsonbComponent} or when using
008 * java module system via a {@code provides} clause in module-info.
009 */
010@FunctionalInterface
011public interface JsonbComponent {
012
013  /**
014   * Register JsonAdapters with the Builder.
015   */
016  void register(Jsonb.Builder builder);
017}