Package io.openlineage.client
Class OpenLineageClientUtils
- java.lang.Object
-
- io.openlineage.client.OpenLineageClientUtils
-
public final class OpenLineageClientUtils extends java.lang.Object
Utility class forOpenLineageClient
that provides common functionalities for object mapping, JSON and YAML parsing, and URI manipulation.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description class
OpenLineageClientUtils.DisabledFacetsMixin
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static void
configureObjectMapper(java.lang.String... disableFacets)
Configures the object mapper to exclude specified facets from being serialized.static <T> T
convertValue(java.lang.Object fromValue, java.lang.Class<T> toValueType)
Converts the value of an object from one type to another.static <T> T
fromJson(@NonNull java.lang.String json, @NonNull com.fasterxml.jackson.core.type.TypeReference<T> type)
Converts the provided JSON string to an instance of the specified type.static OpenLineageYaml
loadOpenLineageJson(java.io.InputStream inputStream)
Loads and parses OpenLineage JSON configuration from anInputStream
.static OpenLineageYaml
loadOpenLineageYaml(ConfigPathProvider configPathProvider)
Loads and parses OpenLineage configuration from the provided paths.static OpenLineageYaml
loadOpenLineageYaml(java.io.InputStream inputStream)
Loads and parses OpenLineage YAML configuration from anInputStream
.static <T,F>
TmergeFacets(java.util.Map<java.lang.String,F> facetsMap, T facetsContainer, java.lang.Class<T> klass)
Merges the given facets map with an existing facets container, giving precedence to the values in the facets map.static com.fasterxml.jackson.databind.ObjectMapper
newObjectMapper()
Creates a newObjectMapper
instance configured with modules for JDK8 and JavaTime, including settings to ignore unknown properties and to not write dates as timestamps.static com.fasterxml.jackson.databind.ObjectMapper
newObjectMapper(com.fasterxml.jackson.core.JsonFactory jsonFactory)
Creates a newObjectMapper
instance configured with modules for JDK8 and JavaTime, including settings to ignore unknown properties and to not write dates as timestamps.static OpenLineage.RunEvent
runEventFromJson(@NonNull java.lang.String json)
Convenience method to convert a JSON string directly into aOpenLineage.RunEvent
instance.static java.lang.String
toJson(@NonNull java.lang.Object value)
Converts the provided value to a JSON string.static java.net.URI
toUri(@NonNull java.lang.String urlString)
Converts a string URL into anURI
object.
-
-
-
Method Detail
-
newObjectMapper
public static com.fasterxml.jackson.databind.ObjectMapper newObjectMapper()
Creates a newObjectMapper
instance configured with modules for JDK8 and JavaTime, including settings to ignore unknown properties and to not write dates as timestamps.- Returns:
- A configured
ObjectMapper
instance.
-
newObjectMapper
public static com.fasterxml.jackson.databind.ObjectMapper newObjectMapper(com.fasterxml.jackson.core.JsonFactory jsonFactory)
Creates a newObjectMapper
instance configured with modules for JDK8 and JavaTime, including settings to ignore unknown properties and to not write dates as timestamps.- Returns:
- A configured
ObjectMapper
instance.
-
configureObjectMapper
public static void configureObjectMapper(java.lang.String... disableFacets)
Configures the object mapper to exclude specified facets from being serialized.- Parameters:
disableFacets
- Array of facet names to be excluded from serialization.
-
toJson
public static java.lang.String toJson(@NonNull @NonNull java.lang.Object value) throws java.io.UncheckedIOException
Converts the provided value to a JSON string.- Parameters:
value
- The object to be converted to JSON.- Returns:
- A JSON string representation of the object.
- Throws:
java.io.UncheckedIOException
- If an I/O error occurs during conversion.
-
fromJson
public static <T> T fromJson(@NonNull @NonNull java.lang.String json, @NonNull @NonNull com.fasterxml.jackson.core.type.TypeReference<T> type) throws java.io.UncheckedIOException
Converts the provided JSON string to an instance of the specified type.- Type Parameters:
T
- The generic type of the return value.- Parameters:
json
- The JSON string to be converted.type
- The type to convert the JSON string into.- Returns:
- An instance of the specified type.
- Throws:
java.io.UncheckedIOException
- If an I/O error occurs during conversion.
-
runEventFromJson
public static OpenLineage.RunEvent runEventFromJson(@NonNull @NonNull java.lang.String json) throws java.io.UncheckedIOException
Convenience method to convert a JSON string directly into aOpenLineage.RunEvent
instance.- Parameters:
json
- The JSON string representing aOpenLineage.RunEvent
.- Returns:
- An instance of
OpenLineage.RunEvent
. - Throws:
java.io.UncheckedIOException
- If an I/O error occurs during conversion.
-
convertValue
public static <T> T convertValue(java.lang.Object fromValue, java.lang.Class<T> toValueType)
Converts the value of an object from one type to another.- Type Parameters:
T
- The generic type of the target type.- Parameters:
fromValue
- The object whose value is to be converted.toValueType
- The target type for the conversion.- Returns:
- An object of the target type with the value converted from the original object.
-
mergeFacets
public static <T,F> T mergeFacets(java.util.Map<java.lang.String,F> facetsMap, T facetsContainer, java.lang.Class<T> klass)
Merges the given facets map with an existing facets container, giving precedence to the values in the facets map.- Type Parameters:
T
- The type of the facets container.F
- The type of facets in the map.- Parameters:
facetsMap
- A map containing facets to be merged.facetsContainer
- The existing container of facets.klass
- The class of the facets container.- Returns:
- A new instance of the facets container with merged values.
-
toUri
public static java.net.URI toUri(@NonNull @NonNull java.lang.String urlString) throws OpenLineageClientException
Converts a string URL into anURI
object.- Parameters:
urlString
- The string URL to be converted.- Returns:
- An
URI
object. - Throws:
OpenLineageClientException
- If the given string does not conform to the URI specification.
-
loadOpenLineageYaml
public static OpenLineageYaml loadOpenLineageYaml(ConfigPathProvider configPathProvider) throws OpenLineageClientException
Loads and parses OpenLineage configuration from the provided paths. Throws anOpenLineageClientException
if one of the following conditions are met:- The provided configPathProvider is null
- No configuration file could be found at any of the provided paths
- Load the default configuration from the classpath if no file is found
- Parameters:
configPathProvider
- Provides the paths where the configuration files can be found.- Returns:
- An instance of
OpenLineageYaml
containing the parsed configuration. - Throws:
OpenLineageClientException
- According to the rules defined above.
-
loadOpenLineageYaml
public static OpenLineageYaml loadOpenLineageYaml(java.io.InputStream inputStream) throws OpenLineageClientException
Loads and parses OpenLineage YAML configuration from anInputStream
.- Parameters:
inputStream
- TheInputStream
from which to load the configuration.- Returns:
- An instance of
OpenLineageYaml
containing the parsed YAML configuration. - Throws:
OpenLineageClientException
- If an error occurs while reading or parsing the configuration.
-
loadOpenLineageJson
public static OpenLineageYaml loadOpenLineageJson(java.io.InputStream inputStream) throws OpenLineageClientException
Loads and parses OpenLineage JSON configuration from anInputStream
.- Parameters:
inputStream
- TheInputStream
from which to load the configuration.- Returns:
- An instance of
OpenLineageYaml
containing the parsed JSON configuration. - Throws:
OpenLineageClientException
- If an error occurs while reading or parsing the configuration.
-
-