public abstract static class KeenClient.Builder
extends java.lang.Object
This builder doesn't include any default implementation for handling JSON serialization and de-serialization. Subclasses must provide one.
This builder defaults to using HttpURLConnection to handle HTTP requests.
To cache events in between batch uploads, this builder defaults to a RAM-based event store.
This builder defaults to a fixed thread pool (constructed with
Executors.newFixedThreadPool(int)) to run asynchronous requests.
| Constructor and Description |
|---|
Builder() |
| Modifier and Type | Method and Description |
|---|---|
KeenClient |
build()
Builds a new Keen client using the interfaces which have been specified explicitly on
this builder instance via the set* or with* methods, or the default interfaces if none
have been specified.
|
protected KeenClient |
buildInstance()
Builds an instance based on this builder.
|
protected KeenEventStore |
getDefaultEventStore()
Gets the default
KeenEventStore to use if none is explicitly set for this builder. |
protected HttpHandler |
getDefaultHttpHandler()
Gets the default
HttpHandler to use if none is explicitly set for this builder. |
protected abstract KeenJsonHandler |
getDefaultJsonHandler()
Gets the default
KeenJsonHandler to use if none is explicitly set for this builder. |
protected KeenNetworkStatusHandler |
getDefaultNetworkStatusHandler()
Gets the default
KeenNetworkStatusHandler to use if none is explicitly set for this builder. |
protected java.util.concurrent.Executor |
getDefaultPublishExecutor()
Gets the default
Executor to use if none is explicitly set for this builder. |
KeenEventStore |
getEventStore()
Gets the
KeenEventStore that this builder is currently configured to use for
storing events between batch publish operations. |
HttpHandler |
getHttpHandler()
Gets the
HttpHandler that this builder is currently configured to use for making
HTTP requests. |
KeenJsonHandler |
getJsonHandler()
Gets the
KeenJsonHandler that this builder is currently configured to use for
handling JSON operations. |
KeenNetworkStatusHandler |
getNetworkStatusHandler()
Gets the
KeenNetworkStatusHandler that this builder is currently configured to use. |
java.util.concurrent.Executor |
getPublishExecutor()
Gets the
Executor that this builder is currently configured to use for
asynchronous publishing operations. |
void |
setEventStore(KeenEventStore eventStore)
Sets the
KeenEventStore to use for storing events in between batch publish
operations. |
void |
setHttpHandler(HttpHandler httpHandler)
Sets the
HttpHandler to use for making HTTP requests. |
void |
setJsonHandler(KeenJsonHandler jsonHandler)
Sets the
KeenJsonHandler to use for handling JSON operations. |
void |
setNetworkStatusHandler(KeenNetworkStatusHandler networkStatusHandler)
Sets the
KeenNetworkStatusHandler to use. |
void |
setPublishExecutor(java.util.concurrent.Executor publishExecutor)
Sets the
Executor to use for asynchronous publishing operations. |
KeenClient.Builder |
withEventStore(KeenEventStore eventStore)
Sets the
KeenEventStore to use for storing events in between batch publish
operations. |
KeenClient.Builder |
withHttpHandler(HttpHandler httpHandler)
Sets the
HttpHandler to use for making HTTP requests. |
KeenClient.Builder |
withJsonHandler(KeenJsonHandler jsonHandler)
Sets the
KeenJsonHandler to use for handling JSON operations. |
KeenClient.Builder |
withNetworkStatusHandler(KeenNetworkStatusHandler networkStatusHandler)
Sets the
KeenNetworkStatusHandler to use. |
KeenClient.Builder |
withPublishExecutor(java.util.concurrent.Executor publishExecutor)
Sets the
Executor to use for asynchronous publishing operations. |
protected HttpHandler getDefaultHttpHandler() throws java.lang.Exception
HttpHandler to use if none is explicitly set for this builder.
This implementation returns a handler that will use HttpURLConnection
to make HTTP requests.
Subclasses should override this to provide an alternative default HttpHandler.HttpHandler.java.lang.Exception - If there is an error creating the HttpHandler.public HttpHandler getHttpHandler()
HttpHandler that this builder is currently configured to use for making
HTTP requests. If null, a default will be used instead.HttpHandler to use.public void setHttpHandler(HttpHandler httpHandler)
HttpHandler to use for making HTTP requests.httpHandler - The HttpHandler to use.public KeenClient.Builder withHttpHandler(HttpHandler httpHandler)
HttpHandler to use for making HTTP requests.httpHandler - The HttpHandler to use.protected abstract KeenJsonHandler getDefaultJsonHandler() throws java.lang.Exception
KeenJsonHandler to use if none is explicitly set for this builder.
Subclasses must override this to provide a default KeenJsonHandler.KeenJsonHandler.java.lang.Exception - If there is an error creating the KeenJsonHandler.public KeenJsonHandler getJsonHandler()
KeenJsonHandler that this builder is currently configured to use for
handling JSON operations. If null, a default will be used instead.KeenJsonHandler to use.public void setJsonHandler(KeenJsonHandler jsonHandler)
KeenJsonHandler to use for handling JSON operations.jsonHandler - The KeenJsonHandler to use.public KeenClient.Builder withJsonHandler(KeenJsonHandler jsonHandler)
KeenJsonHandler to use for handling JSON operations.jsonHandler - The KeenJsonHandler to use.protected KeenEventStore getDefaultEventStore() throws java.lang.Exception
KeenEventStore to use if none is explicitly set for this builder.
This implementation returns a RAM-based store.
Subclasses should override this to provide an alternative default KeenEventStore.KeenEventStore.java.lang.Exception - If there is an error creating the KeenEventStore.public KeenEventStore getEventStore()
KeenEventStore that this builder is currently configured to use for
storing events between batch publish operations. If null, a default will be used instead.KeenEventStore to use.public void setEventStore(KeenEventStore eventStore)
KeenEventStore to use for storing events in between batch publish
operations.eventStore - The KeenEventStore to use.public KeenClient.Builder withEventStore(KeenEventStore eventStore)
KeenEventStore to use for storing events in between batch publish
operations.eventStore - The KeenEventStore to use.protected java.util.concurrent.Executor getDefaultPublishExecutor()
throws java.lang.Exception
Executor to use if none is explicitly set for this builder.
This implementation returns a simple fixed thread pool with the number of threads equal
to the number of available processors.
Subclasses should override this to provide an alternative default Executor.Executor.java.lang.Exception - If there is an error creating the Executor.public java.util.concurrent.Executor getPublishExecutor()
Executor that this builder is currently configured to use for
asynchronous publishing operations. If null, a default will be used instead.Executor to use.public void setPublishExecutor(java.util.concurrent.Executor publishExecutor)
Executor to use for asynchronous publishing operations.publishExecutor - The Executor to use.public KeenClient.Builder withPublishExecutor(java.util.concurrent.Executor publishExecutor)
Executor to use for asynchronous publishing operations.publishExecutor - The Executor to use.protected KeenNetworkStatusHandler getDefaultNetworkStatusHandler()
KeenNetworkStatusHandler to use if none is explicitly set for this builder.
This implementation always returns true.
Subclasses should override this to provide an alternative default KeenNetworkStatusHandler.KeenNetworkStatusHandler.public KeenNetworkStatusHandler getNetworkStatusHandler()
KeenNetworkStatusHandler that this builder is currently configured to use.
If null, a default will be used instead.KeenNetworkStatusHandler to use.public void setNetworkStatusHandler(KeenNetworkStatusHandler networkStatusHandler)
KeenNetworkStatusHandler to use.networkStatusHandler - The KeenNetworkStatusHandler to use.public KeenClient.Builder withNetworkStatusHandler(KeenNetworkStatusHandler networkStatusHandler)
KeenNetworkStatusHandler to use.networkStatusHandler - The KeenNetworkStatusHandler to use.public KeenClient build()
protected KeenClient buildInstance()
KeenClient is constructed (i.e. by
providing a mock Environment.KeenClient.