Class RestEmitter

  • All Implemented Interfaces:
    Emitter, java.io.Closeable, java.lang.AutoCloseable

    @ThreadSafe
    public class RestEmitter
    extends java.lang.Object
    implements Emitter
    • Constructor Detail

      • RestEmitter

        public RestEmitter​(RestEmitterConfig config)
        The default constructor, prefer using the `create` factory method.
        Parameters:
        config -
    • Method Detail

      • create

        public static RestEmitter create​(java.util.function.Consumer<RestEmitterConfig.RestEmitterConfigBuilder> builderSupplier)
        Constructing a REST Emitter follows a lambda-based fluent builder pattern using the `create` method. e.g. RestEmitter emitter = RestEmitter.create(b :: b .server("http://localhost:8080") // coordinates of gms server .extraHeaders(Collections.singletonMap("Custom-Header", "custom-val") ); You can also customize the underlying http client by calling the `customizeHttpAsyncClient` method on the builder. e.g. RestEmitter emitter = RestEmitter.create(b :: b .server("http://localhost:8080") .extraHeaders(Collections.singletonMap("Custom-Header", "custom-val") .customizeHttpAsyncClient(c :: c.setConnectionTimeToLive(30, TimeUnit.SECONDS)) );
        Parameters:
        builderSupplier -
        Returns:
        a constructed RestEmitter. Call #testConnection to make sure this emitter has a valid connection to the server
      • createWithDefaults

        public static RestEmitter createWithDefaults()
        Creates a RestEmitter with default settings.
        Returns:
        a constructed RestEmitter. Call #test_connection to validate that this emitter can communicate with the server.
      • emit

        public java.util.concurrent.Future<MetadataWriteResponse> emit​(com.linkedin.mxe.MetadataChangeProposal mcp,
                                                                       Callback callback)
                                                                throws java.io.IOException
        Description copied from interface: Emitter
        Asynchronously emit a MetadataChangeProposal event. Prefer using the sibling method that accepts a MetadataChangeProposalWrapper event as those are friendlier to construct.
        Specified by:
        emit in interface Emitter
        callback - if not null, is called from the IO thread. Should be a quick operation.
        Returns:
        a Future for callers to inspect the result of the operation or block until one is available
        Throws:
        java.io.IOException
      • testConnection

        public boolean testConnection()
                               throws java.io.IOException,
                                      java.util.concurrent.ExecutionException,
                                      java.lang.InterruptedException
        Description copied from interface: Emitter
        Test that the emitter can establish a valid connection to the DataHub platform
        Specified by:
        testConnection in interface Emitter
        Returns:
        true if a valid connection can be established, false or throws one of the exceptions otherwise
        Throws:
        java.io.IOException
        java.util.concurrent.ExecutionException
        java.lang.InterruptedException
      • close

        public void close()
                   throws java.io.IOException
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Throws:
        java.io.IOException
      • emit

        public java.util.concurrent.Future<MetadataWriteResponse> emit​(java.util.List<UpsertAspectRequest> request,
                                                                       Callback callback)
                                                                throws java.io.IOException
        Description copied from interface: Emitter
        Asynchronously emit a UpsertAspectRequest.
        Specified by:
        emit in interface Emitter
        Parameters:
        request - request with with metadata aspect to upsert into DataHub
        Returns:
        a Future for callers to inspect the result of the operation or block until one is available
        Throws:
        java.io.IOException